{"version":3,"sources":["../../node_modules/react-icons/lib/esm/iconsManifest.js","../../node_modules/react-icons/lib/esm/iconContext.js","../../node_modules/react-icons/lib/esm/iconBase.js","../../node_modules/react/jsx-runtime.js","../../node_modules/react/index.js","../../node_modules/prop-types/index.js","../../node_modules/recharts/es6/util/DataUtils.js","../../node_modules/node-libs-browser/node_modules/buffer/index.js","../../node_modules/ipfs-http-client/cjs/src/lib/configure.js","../../node_modules/ipfs-http-client/cjs/src/lib/to-url-search-params.js","../../node_modules/classnames/index.js","../../../../src/utils/leb128.ts","../../../src/types.ts","../../../../src/utils/hash.ts","../../../src/idl.ts","../../node_modules/lodash/isNil.js","../../src/constants.ts","../../src/crypt.ts","../../src/deferred.ts","../../src/emulator.ts","../../src/environment.ts","../../src/errors.ts","../../src/obj.ts","../../src/compat.ts","../../node_modules/recharts-scale/es6/util/utils.js","../../node_modules/recharts-scale/es6/util/arithmetic.js","../../node_modules/recharts-scale/es6/getNiceTickValues.js","../../node_modules/d3-shape/src/offset/none.js","../../node_modules/d3-shape/src/order/none.js","../../node_modules/d3-shape/src/stack.js","../../node_modules/recharts/es6/util/ChartUtils.js","../../node_modules/d3-shape/src/offset/expand.js","../../node_modules/d3-shape/src/offset/silhouette.js","../../node_modules/d3-shape/src/offset/wiggle.js","../../node_modules/@sentry/hub/node_modules/tslib/tslib.es6.js","../../node_modules/recharts/es6/util/types.js","../../node_modules/lodash/isFunction.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../../node_modules/@sentry/tracing/node_modules/tslib/tslib.es6.js","../../node_modules/inherits/inherits_browser.js","../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../node_modules/multiformats/cjs/src/cid.js","../../node_modules/safe-buffer/index.js","../../../src/index.ts","../../node_modules/lodash/isArray.js","../../node_modules/@sentry/utils/node_modules/tslib/tslib.es6.js","../../node_modules/recharts/es6/util/ReactUtils.js","../../node_modules/d3-scale/src/init.js","../../src/utils.ts","../../src/logger.ts","../../node_modules/decimal.js-light/decimal.js","../../node_modules/webpack/buildin/global.js","../../node_modules/process/browser.js","../../src/index.ts","../../node_modules/d3-shape/src/constant.js","../../modules/createNameContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-scale/src/constant.js","../../../../src/canisters/management_idl.ts","../../../../src/canisters/management.ts","../../../src/errors.ts","../../../../../src/vendor/bls/bls.ts","../../../../src/utils/bls.ts","../../../src/certificate.ts","../../../../src/polling/strategy.ts","../../../../src/polling/index.ts","../../../src/actor.ts","../../../../src/canisters/asset_idl.ts","../../../../src/canisters/asset.ts","../../node_modules/react-icons/io5/index.esm.js","../../src/is.ts","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/recharts/es6/util/PolarUtils.js","../../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../../node_modules/recharts/es6/container/Layer.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/ipfs-http-client/cjs/src/lib/object-to-camel.js","../../src/global.ts","../../../src/platformLoggerService.ts","../../../src/logger.ts","../../../src/constants.ts","../../../src/internal.ts","../../../src/firebaseApp.ts","../../../src/api.ts","../../../src/indexeddb.ts","../../../src/heartbeatService.ts","../../../src/registerCoreComponents.ts","../../node_modules/lodash/get.js","../../node_modules/skynet-js/node_modules/tweetnacl/nacl-fast.js","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/multiaddr/src/index.js","../../node_modules/bn.js/lib/bn.js","../index.ts","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../src/object.ts","../../node_modules/lodash/isObject.js","../../node_modules/d3-scale/src/linear.js","../../../src/request_id.ts","../../node_modules/moment/moment.js","../../../../src/agent/index.ts","../../node_modules/@firebase/webchannel-wrapper/dist/index.esm2017.js","../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/recharts/es6/util/Events.js","../../node_modules/@sentry/minimal/node_modules/tslib/tslib.es6.js","../../node_modules/slugify/slugify.js","../../node_modules/resolve-pathname/esm/resolve-pathname.js","../../node_modules/value-equal/esm/value-equal.js","../../node_modules/history/esm/history.js","../../node_modules/axios/lib/utils.js","../../node_modules/arweave/node_modules/axios/lib/utils.js","../node_modules/axios/lib/utils.js","../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../node_modules/cborg/cjs/lib/token.js","../../node_modules/native-abort-controller/src/index.js","../../node_modules/minimalistic-assert/index.js","../../node_modules/elliptic/lib/elliptic/utils.js","../../node_modules/recharts/es6/util/DOMUtils.js","../../../../src/identity/der.ts","../../../../src/identity/ed25519.ts","../../../../src/identity/delegation.ts","../../../../src/identity/webauthn.ts","../../src/node.ts","../../node_modules/err-code/index.js","../../node_modules/recharts/es6/component/Label.js","../../../src/cbor.ts","../../node_modules/react-i18next/dist/es/utils.js","../../src/time.ts","../../node_modules/cborg/cjs/lib/common.js","../../node_modules/ipfs-core-utils/cjs/src/multipart-request.browser.js","../../node_modules/ipfs-http-client/cjs/src/lib/abort-signal.js","../../node_modules/hash.js/lib/hash/utils.js","../../node_modules/video-react/lib/utils/index.js","../../node_modules/lodash/_root.js","../../node_modules/randombytes/browser.js","../../node_modules/recharts/es6/util/Global.js","../../node_modules/d3-format/src/exponent.js","../../node_modules/recharts/es6/util/CartesianUtils.js","../../node_modules/react-intersection-observer/dist/react-intersection-observer.esm.js","../../src/LazyImageFull.tsx","../../src/LazyImage.tsx","../../../src/component.ts","../../../src/provider.ts","../../../src/component_container.ts","../../node_modules/multiformats/cjs/src/bases/base.js","../../node_modules/cborg/cjs/lib/0uint.js","../../../../../src/common/lib/utils.ts","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/d3-format/src/formatDecimal.js","../../node_modules/@react-hook/latest/dist/module/index.js","../../node_modules/@react-hook/debounce/dist/module/index.js","../../node_modules/@react-hook/event/dist/module/index.js","../../node_modules/@react-hook/window-size/dist/module/index.js","../../node_modules/query-string/index.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/react-i18next/dist/es/context.js","../../node_modules/video-react/lib/index.js","../../node_modules/path-browserify/index.js","../../node_modules/react-icons/md/index.esm.js","../../source/LocaleDataStore.js","../../source/resolveLocale.js","../../source/PluralRuleFunctions.js","../../source/getPluralRulesLocale.js","../../source/PluralRules.js","../../source/RelativeTimeFormat.js","../../source/cache.js","../../source/locale.js","../../source/isStyleObject.js","../../../source/steps/units.js","../../../source/steps/getStepDenominator.js","../../source/round.js","../../../source/steps/getStepMinTime.js","../../../source/steps/getStep.js","../../../source/steps/getTimeToNextUpdateForUnit.js","../../../source/steps/getTimeToNextUpdate.js","../../../source/steps/round.js","../../../source/style/round.js","../../../source/style/roundMinute.js","../../../source/steps/approximate.js","../../../source/style/approximate.js","../../../source/style/approximateTime.js","../../../source/steps/helpers.js","../../../source/style/twitter.js","../../../source/style/twitterNow.js","../../../source/style/twitterMinute.js","../../../source/style/twitterMinuteNow.js","../../../source/style/twitterFirstMinute.js","../../../source/style/mini.js","../../../source/style/miniNow.js","../../../source/style/miniMinute.js","../../../source/style/miniMinuteNow.js","../../source/TimeAgo.js","../../../source/style/getStyleByName.js","../../node_modules/multiformats/cjs/src/bytes.js","../../node_modules/cipher-base/index.js","../../node_modules/@babel/runtime/helpers/objectSpread.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/_baseIteratee.js","../../src/span.ts","../../../../../src/agent/http/transforms.ts","../../src/env.ts","../../node_modules/mdurl/encode.js","../../node_modules/borc/src/index.js","../../node_modules/react-spinners/ClipLoader.js","../node_modules/axios/index.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/lodash/isString.js","../../node_modules/recharts/es6/util/ShallowEqual.js","../../node_modules/react-smooth/es6/setRafTimeout.js","../../node_modules/react-smooth/es6/AnimateManager.js","../../node_modules/react-smooth/es6/util.js","../../node_modules/react-smooth/es6/easing.js","../../node_modules/react-smooth/es6/configUpdate.js","../../node_modules/react-smooth/es6/Animate.js","../../node_modules/react-smooth/es6/AnimateGroupChild.js","../../node_modules/react-smooth/es6/AnimateGroup.js","../../node_modules/react-smooth/es6/index.js","../../node_modules/raf/index.js","../../src/misc.ts","../../node_modules/uint8arrays/cjs/src/to-string.js","../../node_modules/protobufjs/src/util/minimal.js","../../node_modules/events/events.js","../../node_modules/string_decoder/lib/string_decoder.js","../../node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/lodash/_getNative.js","../../src/hubextensions.ts","../../node_modules/base64-js/index.js","../../node_modules/url-parse/index.js","../../node_modules/lodash/upperFirst.js","../../node_modules/d3-scale/src/number.js","../../node_modules/recharts/es6/component/Text.js","../../src/string.ts","../../node_modules/@dfinity/identity/node_modules/tweetnacl/nacl-fast.js","../../node_modules/react-modal/lib/index.js","../../../src/utils.ts","../../node_modules/@babel/runtime/helpers/extends.js","../../node_modules/webpack/buildin/module.js","../../node_modules/multiformats/cjs/src/hashes/digest.js","../../node_modules/hash-base/node_modules/readable-stream/errors-browser.js","../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/sha.js/hash.js","../../node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/identity.js","../../src/idletransaction.ts","../../src/transaction.ts","../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../../node_modules/ipfs-http-client/cjs/src/index.js","../../node_modules/use-mobile-detect-hook/build/index.js","../../node_modules/lodash/sortBy.js","../../node_modules/d3-array/src/ascending.js","../../node_modules/d3-shape/src/array.js","../../node_modules/recharts/es6/shape/Dot.js","../../node_modules/buffer-pipe/index.js","../../node_modules/lodash/range.js","../../node_modules/lodash/isNaN.js","../../node_modules/lodash/uniqBy.js","../../src/implementation/constants.ts","../../src/implementation/error.ts","../../src/implementation/location.ts","../../src/implementation/failrequest.ts","../../src/implementation/type.ts","../../src/implementation/url.ts","../../src/implementation/connection.ts","../../src/implementation/request.ts","../../src/implementation/backoff.ts","../../src/implementation/fs.ts","../../src/implementation/string.ts","../../src/platform/browser/base64.ts","../../src/implementation/blob.ts","../../src/implementation/json.ts","../../src/implementation/path.ts","../../src/implementation/metadata.ts","../../src/implementation/requestinfo.ts","../../src/implementation/requests.ts","../../src/implementation/taskenums.ts","../../src/implementation/observer.ts","../../src/implementation/async.ts","../../src/platform/browser/connection.ts","../../src/task.ts","../../src/reference.ts","../../src/service.ts","../../src/api.ts","../../node_modules/recharts/es6/cartesian/CartesianAxis.js","../../src/hub.ts","../../node_modules/bignumber.js/bignumber.js","../../node_modules/cborg/cjs/lib/byte-utils.js","../../node_modules/uint8arrays/cjs/src/from-string.js","../../node_modules/create-hash/browser.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/buffer-xor/index.js","../../node_modules/hash.js/lib/hash/common.js","../../node_modules/asn1.js/lib/asn1/base/buffer.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/isArrayLike.js","../../node_modules/object-assign/index.js","../../node_modules/react-dom/index.js","../../node_modules/d3-scale/src/ordinal.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/recharts/es6/container/Surface.js","../../node_modules/d3-array/src/number.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/recharts/es6/shape/Rectangle.js","../../node_modules/serialize-query-params/esm/serialize.js","../../node_modules/serialize-query-params/esm/params.js","../../node_modules/serialize-query-params/esm/updateLocation.js","../../node_modules/use-query-params/esm/shallowEqual.js","../../node_modules/use-query-params/esm/helpers.js","../../node_modules/use-query-params/esm/updateUrlQuery.js","../../node_modules/use-query-params/esm/LocationProvider.js","../../node_modules/use-query-params/esm/memoizedQueryParser.js","../../node_modules/use-query-params/esm/useQueryParam.js","../../node_modules/use-query-params/esm/QueryParams.js","../../node_modules/use-query-params/esm/QueryParamProvider.js","../../node_modules/d3-shape/src/noop.js","../../node_modules/d3-shape/src/curve/basis.js","../../node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/curve/monotone.js","../../node_modules/d3-shape/src/curve/natural.js","../../node_modules/d3-shape/src/curve/step.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-shape/src/area.js","../../node_modules/recharts/es6/shape/Curve.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-shape/src/symbol/circle.js","../../node_modules/d3-shape/src/symbol/cross.js","../../node_modules/d3-shape/src/symbol/diamond.js","../../node_modules/d3-shape/src/symbol/square.js","../../node_modules/d3-shape/src/symbol/star.js","../../node_modules/d3-shape/src/symbol/triangle.js","../../node_modules/d3-shape/src/symbol/wye.js","../../node_modules/recharts/es6/shape/Symbols.js","../../node_modules/d3-shape/src/symbol.js","../../node_modules/recharts/es6/component/DefaultLegendContent.js","../../node_modules/recharts/es6/component/Legend.js","../../src/syncpromise.ts","../../node_modules/lodash/max.js","../../node_modules/lodash/min.js","../../src/sum.js","../../src/mean.js","../../src/sum_nth_power_deviations.js","../../src/variance.js","../../src/standard_deviation.js","../../src/mode_sorted.js","../../src/numeric_sort.js","../../src/min.js","../../src/max.js","../../src/sum_simple.js","../../src/quantile_sorted.js","../../src/quickselect.js","../../src/quantile.js","../../src/quantile_rank_sorted.js","../../src/interquartile_range.js","../../src/median.js","../../src/median_absolute_deviation.js","../../src/shuffle_in_place.js","../../src/shuffle.js","../../src/sample.js","../../src/make_matrix.js","../../src/unique_count_sorted.js","../../src/ckmeans.js","../../src/sample_covariance.js","../../src/sample_variance.js","../../src/sample_standard_deviation.js","../../src/sample_correlation.js","../../src/combine_means.js","../../src/mean_simple.js","../../src/root_mean_square.js","../../src/bayesian_classifier.js","../../src/perceptron.js","../../src/epsilon.js","../../src/factorial.js","../../src/gammaln.js","../../src/chi_squared_distribution_table.js","../../src/kernel_density_estimation.js","../../src/standard_normal_table.js","../../src/error_function.js","../../src/inverse_error_function.js","../../src/sign.js","../../src/euclidean_distance.js","../../src/k_means_cluster.js","../../src/silhouette.js","../../src/relative_error.js","../../src/add_to_mean.js","../../src/approx_equal.js","../../src/bernoulli_distribution.js","../../src/binomial_distribution.js","../../src/bisect.js","../../src/chi_squared_goodness_of_fit.js","../../src/chunk.js","../../src/coefficient_of_variation.js","../../src/combinations.js","../../src/combinations_replacement.js","../../src/combine_variances.js","../../src/cumulative_std_logistic_probability.js","../../src/cumulative_std_normal_probability.js","../../src/equal_interval_breaks.js","../../src/extent.js","../../src/extent_sorted.js","../../src/gamma.js","../../src/geometric_mean.js","../../src/harmonic_mean.js","../../src/linear_regression.js","../../src/linear_regression_line.js","../../src/log_average.js","../../src/logit.js","../../src/max_sorted.js","../../src/median_sorted.js","../../src/min_sorted.js","../../src/mode.js","../../src/mode_fast.js","../../src/permutation_test.js","../../src/permutations_heap.js","../../src/poisson_distribution.js","../../src/probit.js","../../src/product.js","../../src/quantile_rank.js","../../src/r_squared.js","../../src/sample_kurtosis.js","../../src/sample_rank_correlation.js","../../src/sample_skewness.js","../../src/sample_with_replacement.js","../../src/silhouette_metric.js","../../src/subtract_from_mean.js","../../src/t_test.js","../../src/t_test_two_sample.js","../../src/wilcoxon_rank_sum.js","../../src/z_score.js","../../node_modules/recharts/es6/component/DefaultTooltipContent.js","../../node_modules/recharts/es6/component/Tooltip.js","../../node_modules/borc/src/constants.js","../../node_modules/multiformats/cjs/src/varint.js","../../node_modules/multiformats/cjs/src/bases/base58.js","../../node_modules/node-fetch/browser.js","../../node_modules/it-last/index.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/utils.js","../../node_modules/process-nextick-args/index.js","../../node_modules/browserify-aes/aes.js","../../node_modules/evp_bytestokey/index.js","../../node_modules/elliptic/lib/elliptic/curve/base.js","../../node_modules/parse-asn1/index.js","../../../../src/common/common.ts","../../node_modules/arweave/node_modules/axios/lib/defaults.js","../../node_modules/arweave/node_modules/axios/lib/cancel/Cancel.js","../../../../../src/common/lib/error.ts","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/cancel/Cancel.js","../../node_modules/video-react/lib/actions/player.js","../../node_modules/video-react/lib/utils/dom.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_isIterateeCall.js","../../../src/auth.ts","../../../../../src/agent/http/types.ts","../../node_modules/react-is/index.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-format/src/precisionPrefix.js","../../node_modules/d3-format/src/precisionRound.js","../../node_modules/d3-format/src/precisionFixed.js","../../src/stacktrace.ts","../../node_modules/js-sha256/src/sha256.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/react-helmet/es/Helmet.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/throttle-debounce/dist/index.esm.js","../../../../src/web/index.ts","../../node_modules/is-buffer/index.js","../../node_modules/lodash/every.js","../../node_modules/lodash/isEqual.js","../../node_modules/react-transition-group/index.js","../../node_modules/d3-scale/src/identity.js","../../node_modules/d3-scale/src/nice.js","../../node_modules/d3-scale/src/log.js","../../node_modules/d3-scale/src/symlog.js","../../node_modules/d3-scale/src/pow.js","../../node_modules/d3-scale/src/radial.js","../../node_modules/d3-array/src/max.js","../../node_modules/d3-array/src/min.js","../../node_modules/d3-array/src/quickselect.js","../../node_modules/d3-array/src/quantile.js","../../node_modules/d3-scale/src/quantile.js","../../node_modules/d3-scale/src/quantize.js","../../node_modules/d3-scale/src/threshold.js","../../node_modules/d3-time/src/duration.js","../../node_modules/d3-time/src/interval.js","../../node_modules/d3-time/src/millisecond.js","../../node_modules/d3-time/src/second.js","../../node_modules/d3-time/src/minute.js","../../node_modules/d3-time/src/hour.js","../../node_modules/d3-time/src/day.js","../../node_modules/d3-time/src/week.js","../../node_modules/d3-time/src/month.js","../../node_modules/d3-time/src/year.js","../../node_modules/d3-time/src/utcMinute.js","../../node_modules/d3-time/src/utcHour.js","../../node_modules/d3-time/src/utcDay.js","../../node_modules/d3-time/src/utcWeek.js","../../node_modules/d3-time/src/utcMonth.js","../../node_modules/d3-time/src/utcYear.js","../../node_modules/d3-time/src/ticks.js","../../node_modules/d3-time-format/src/locale.js","../../node_modules/d3-time-format/src/defaultLocale.js","../../node_modules/d3-scale/src/time.js","../../node_modules/d3-scale/src/utcTime.js","../../node_modules/d3-scale/src/sequential.js","../../node_modules/d3-scale/src/sequentialQuantile.js","../../node_modules/d3-interpolate/src/piecewise.js","../../node_modules/d3-scale/src/diverging.js","webpack:///../node_modules/tslib/tslib.es6.js?6dbe","../../../src/file.ts","../../../src/file-selector.ts","../../node_modules/react-dropzone/dist/es/utils/index.js","../../node_modules/react-dropzone/dist/es/index.js","../../node_modules/react-easy-crop/node_modules/tslib/tslib.es6.js","../../src/helpers.ts","../../src/index.tsx","../../src/scope.ts","../../node_modules/blakejs/index.js","../../node_modules/hls.js/dist/hls.js","../../node_modules/reduce-css-calc/dist/index.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/toArray.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/i18next/dist/esm/i18next.js","../../node_modules/recharts/es6/util/IfOverflowMatches.js","../../node_modules/recharts/es6/util/LogUtils.js","../../node_modules/recharts/es6/cartesian/ReferenceDot.js","../../node_modules/recharts/es6/cartesian/ReferenceLine.js","../../node_modules/recharts/es6/cartesian/ReferenceArea.js","../../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../../node_modules/recharts/es6/util/CssPrefixUtils.js","../../node_modules/recharts/es6/cartesian/Brush.js","../../node_modules/webpack/buildin/harmony-module.js","../../node_modules/borc/src/utils.js","../../node_modules/multiformats/cjs/src/bases/base32.js","../../node_modules/cborg/cjs/lib/2bytes.js","../../node_modules/multiformats/cjs/src/hashes/hasher.js","../../node_modules/ipfs-http-client/cjs/src/lib/core.js","../../node_modules/multiaddr/src/protocols-table.js","../../node_modules/multiaddr/node_modules/varint/index.js","../../node_modules/ipfs-http-client/cjs/src/dht/response-types.js","../../node_modules/axios/lib/defaults.js","../../node_modules/md5.js/index.js","../../node_modules/util-deprecate/browser.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../node_modules/ripemd160/index.js","../../node_modules/sha.js/index.js","../../node_modules/readable-stream/readable-browser.js","../../node_modules/readable-stream/node_modules/safe-buffer/index.js","../../node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/timers-browserify/main.js","../../node_modules/des.js/lib/des/cipher.js","../../node_modules/browserify-aes/browser.js","../../node_modules/browserify-aes/modes/index.js","../../node_modules/brorand/index.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../node_modules/browserify-rsa/index.js","../../node_modules/elliptic/lib/elliptic.js","../../node_modules/elliptic/lib/elliptic/curves.js","../../node_modules/hash.js/lib/hash.js","../../node_modules/safer-buffer/safer.js","../../node_modules/asn1.js/lib/asn1/base/node.js","../../node_modules/asn1.js/lib/asn1/base/reporter.js","../../node_modules/asn1.js/lib/asn1/constants/der.js","../../../../../src/common/lib/transaction.ts","../../node_modules/node-libs-browser/node_modules/util/util.js","../../node_modules/arconnect/index.es.js","../../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../../node_modules/video-react/lib/actions/video.js","../../node_modules/video-react/lib/components/Slider.js","../../node_modules/video-react/lib/components/control-bar/PlaybackRateMenuButton.js","../../node_modules/video-react/lib/components/menu/MenuButton.js","../../node_modules/lodash/_baseEach.js","../../node_modules/lodash/isArguments.js","../../node_modules/lodash/_isIndex.js","../../node_modules/lodash/isLength.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/d3-array/src/range.js","../../node_modules/d3-scale/src/band.js","../../node_modules/lodash/isNumber.js","../../src/browser.ts","../../src/supports.ts","../../../../src/utils/base32.ts","../../node_modules/path-to-regexp/index.js","../../node_modules/sjcl/sjcl.js","../../node_modules/extend/index.js","../../node_modules/d3-format/src/formatSpecifier.js","../../node_modules/d3-array/src/bisector.js","../../src/tracing.ts","../../../src/SessionFacade.ts","../../node_modules/ieee754/index.js","../../node_modules/isarray/index.js","../../../../src/agent/api.ts","../../../../../src/agent/http/index.ts","../../node_modules/borc/src/decoder.js","../../node_modules/borc/src/simple.js","../../node_modules/borc/src/tagged.js","../../node_modules/borc/node_modules/iso-url/index.js","../../node_modules/borc/node_modules/iso-url/src/url-browser.js","../value.ts","../../../../src/agent/proxy.ts","../../../src/ClientRegistryService.ts","../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../../node_modules/cborg/cjs/lib/jump.js","../../node_modules/cborg/cjs/lib/1negint.js","../../node_modules/cborg/cjs/lib/3string.js","../../node_modules/cborg/cjs/lib/4array.js","../../node_modules/cborg/cjs/lib/5map.js","../../node_modules/cborg/cjs/lib/6tag.js","../../node_modules/cborg/cjs/lib/7float.js","../../node_modules/multiformats/cjs/src/hashes/identity.js","../../node_modules/multiformats/cjs/src/basics.js","../../node_modules/uint8arrays/cjs/src/util/bases.js","../../node_modules/uint8arrays/cjs/src/concat.js","../../node_modules/ipfs-utils/src/env.js","../../node_modules/debug/src/browser.js","../../node_modules/ipfs-utils/src/http.js","../../node_modules/ipfs-utils/src/http/error.js","../../node_modules/merge-options/index.js","../../node_modules/iso-url/src/url-browser.js","../../node_modules/ipfs-http-client/cjs/src/lib/mode-to-string.js","../../node_modules/ipfs-http-client/cjs/src/lib/parse-mtime.js","../../node_modules/ipfs-http-client/cjs/src/bitswap/stat.js","../../node_modules/ipfs-http-client/cjs/src/block/get.js","../../node_modules/it-peekable/index.js","../../node_modules/browser-readablestream-to-it/index.js","../../node_modules/ipfs-core-utils/cjs/src/files/utils.js","../../node_modules/protobufjs/src/writer.js","../../node_modules/protobufjs/src/reader.js","../../node_modules/ipfs-http-client/cjs/src/dag/put.js","../../node_modules/ipfs-http-client/cjs/src/lib/object-to-camel-with-metadata.js","../../node_modules/ipfs-http-client/cjs/src/files/stat.js","../../node_modules/ipfs-http-client/cjs/src/pin/add-all.js","../../node_modules/ipfs-core-utils/cjs/src/pins/normalise-input.js","../../node_modules/ipfs-http-client/cjs/src/pin/rm-all.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/service/utils.js","../../node_modules/ipfs-http-client/cjs/src/repo/stat.js","../../node_modules/ipfs-http-client/cjs/src/add-all.js","../../node_modules/ipfs-http-client/cjs/src/id.js","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/enhanceError.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/core/createError.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/cancel/Cancel.js","../../node_modules/hash-base/index.js","../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/sha.js/sha256.js","../../node_modules/sha.js/sha512.js","../../node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/create-hmac/browser.js","../../node_modules/create-hash/md5.js","../../node_modules/pbkdf2/browser.js","../../node_modules/pbkdf2/lib/precondition.js","../../node_modules/pbkdf2/lib/default-encoding.js","../../node_modules/pbkdf2/lib/sync-browser.js","../../node_modules/pbkdf2/lib/to-buffer.js","../../node_modules/des.js/lib/des/utils.js","../../node_modules/des.js/lib/des/des.js","../../node_modules/browserify-aes/modes/ctr.js","../../node_modules/browserify-aes/incr32.js","../../node_modules/browserify-aes/authCipher.js","../../node_modules/browserify-aes/streamCipher.js","../../node_modules/diffie-hellman/lib/generatePrime.js","../../node_modules/miller-rabin/lib/mr.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","../../node_modules/minimalistic-crypto-utils/lib/utils.js","../../node_modules/elliptic/lib/elliptic/curve/index.js","../../node_modules/hash.js/lib/hash/sha/common.js","../../node_modules/hash.js/lib/hash/sha/256.js","../../node_modules/hash.js/lib/hash/sha/512.js","../../node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","../../node_modules/asn1.js/lib/asn1.js","../../node_modules/asn1.js/lib/asn1/encoders/index.js","../../node_modules/asn1.js/lib/asn1/encoders/der.js","../../node_modules/asn1.js/lib/asn1/decoders/index.js","../../node_modules/asn1.js/lib/asn1/decoders/der.js","../../node_modules/public-encrypt/mgf.js","../../node_modules/public-encrypt/xor.js","../../node_modules/public-encrypt/withPublic.js","../../node_modules/blakejs/util.js","../../node_modules/arweave/node_modules/axios/lib/helpers/bind.js","../../node_modules/arweave/node_modules/axios/lib/helpers/buildURL.js","../../node_modules/arweave/node_modules/axios/lib/core/enhanceError.js","../../node_modules/arweave/node_modules/axios/lib/adapters/xhr.js","../../node_modules/arweave/node_modules/axios/lib/core/createError.js","../../node_modules/arweave/node_modules/axios/lib/cancel/isCancel.js","../../node_modules/arweave/node_modules/axios/lib/core/mergeConfig.js","../../node_modules/arweave/node_modules/axios/lib/env/data.js","../../../../../src/common/lib/merkle.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../../node_modules/@firebase/firestore/dist/index.esm2017.js","../../node_modules/react-modal/lib/helpers/tabbable.js","../../node_modules/react-modal/lib/helpers/ariaAppHider.js","../../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../../node_modules/video-react/lib/reducers/index.js","../../node_modules/video-react/lib/utils/fullscreen.js","../../node_modules/video-react/lib/components/BigPlayButton.js","../../node_modules/video-react/lib/components/LoadingSpinner.js","../../node_modules/video-react/lib/components/PosterImage.js","../../node_modules/video-react/lib/components/Video.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../node_modules/video-react/lib/components/Bezel.js","../../node_modules/video-react/lib/components/Shortcut.js","../../node_modules/video-react/lib/components/control-bar/ControlBar.js","../../node_modules/video-react/lib/components/control-bar/ProgressControl.js","../../node_modules/video-react/lib/components/control-bar/SeekBar.js","../../node_modules/video-react/lib/components/control-bar/PlayProgressBar.js","../../node_modules/video-react/lib/components/control-bar/LoadProgressBar.js","../../node_modules/video-react/lib/components/control-bar/MouseTimeDisplay.js","../../node_modules/video-react/lib/components/control-bar/PlayToggle.js","../../node_modules/video-react/lib/components/control-bar/ForwardControl.js","../../node_modules/video-react/lib/components/control-bar/ForwardReplayControl.js","../../node_modules/video-react/lib/components/control-bar/ReplayControl.js","../../node_modules/video-react/lib/components/control-bar/FullscreenToggle.js","../../node_modules/video-react/lib/components/time-controls/RemainingTimeDisplay.js","../../node_modules/video-react/lib/components/time-controls/CurrentTimeDisplay.js","../../node_modules/video-react/lib/components/time-controls/DurationDisplay.js","../../node_modules/video-react/lib/components/time-controls/TimeDivider.js","../../node_modules/video-react/lib/components/control-bar/VolumeMenuButton.js","../../node_modules/video-react/lib/components/ClickableComponent.js","../../node_modules/lodash/_baseForOwn.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/isBuffer.js","../../node_modules/lodash/isTypedArray.js","../../node_modules/lodash/_baseUnary.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/_Set.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_baseFindIndex.js","../../node_modules/lodash/toFinite.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/_baseFlatten.js","../../node_modules/lodash/_baseMap.js","../../node_modules/lodash/_defineProperty.js","../../node_modules/lodash/_hasUnicode.js","../../node_modules/lodash/_baseExtremum.js","../../node_modules/reduce-css-calc/dist/lib/reducer.js","../../node_modules/react-transition-group/Transition.js","../../node_modules/react-transition-group/utils/PropTypes.js","../../node_modules/react-transition-group/TransitionGroup.js","../../node_modules/charenc/charenc.js","../../src/memo.ts","../../src/session.ts","../../../../src/utils/getCrc.ts","../../../../src/utils/sha224.ts","../../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../../node_modules/mini-create-react-context/dist/esm/index.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../node_modules/react-side-effect/lib/index.js","../../node_modules/react-fast-compare/index.js","../../node_modules/normalize-wheel/index.js","../../node_modules/axios/index.js","../../node_modules/js-base64/base64.js","../../node_modules/mime/lite.js","../../node_modules/url-join/lib/url-join.js","../../node_modules/base32-decode/index.js","../../node_modules/base32-encode/index.js","../../node_modules/idb/build/idb.js","../../index.ts","../../node_modules/attr-accept/dist/es/index.js","../../node_modules/void-elements/index.js","../../node_modules/invariant/browser.js","../../node_modules/react-linkify/dist/index.js","../../node_modules/react-markdown/node_modules/react-is/index.js","../../node_modules/style-to-object/index.js","../../node_modules/recharts/es6/chart/generateCategoricalChart.js","../../node_modules/lodash/find.js","../../node_modules/lodash/throttle.js","../../node_modules/lodash/isBoolean.js","../../node_modules/lodash/flatMap.js","../../node_modules/lodash/some.js","../../node_modules/lodash/mapValues.js","../../src/comparator.ts","../../node_modules/recharts/es6/shape/Cross.js","../../node_modules/recharts/es6/shape/Sector.js","../../node_modules/eventemitter3/index.js","../../node_modules/lodash/last.js","../../node_modules/recharts/es6/cartesian/XAxis.js","../../node_modules/recharts/es6/cartesian/YAxis.js","../../node_modules/react-icons/fi/index.esm.js","../../src/components/utils/escapeRegExp.ts","../../src/components/utils/parseAbbrValue.ts","../../src/components/utils/cleanValue.ts","../../src/components/utils/removeSeparators.ts","../../src/components/utils/removeInvalidChars.ts","../../src/components/utils/getSuffix.ts","../../src/components/utils/formatValue.ts","../../src/components/utils/getLocaleConfig.ts","../../src/components/utils/isNumber.ts","../../src/components/CurrencyInput.tsx","../../src/components/utils/repositionCursor.ts","../../src/components/utils/fixedDecimalValue.ts","../../src/components/utils/padTrimValue.ts","../../node_modules/sha1/sha1.js","../../node_modules/react-icons/io/index.esm.js","../../node_modules/react-icons/bi/index.esm.js","../../node_modules/tus-js-client/lib.esm/error.js","../../node_modules/tus-js-client/lib.esm/logger.js","../../node_modules/tus-js-client/lib.esm/upload.js","../../node_modules/tus-js-client/lib.esm/uuid.js","../../node_modules/tus-js-client/lib.esm/noopUrlStorage.js","../../node_modules/tus-js-client/lib.esm/browser/urlStorage.js","../../node_modules/tus-js-client/lib.esm/browser/httpStack.js","../../node_modules/tus-js-client/lib.esm/browser/isReactNative.js","../../node_modules/tus-js-client/lib.esm/browser/sources/isCordova.js","../../node_modules/tus-js-client/lib.esm/browser/sources/FileSource.js","../../node_modules/tus-js-client/lib.esm/browser/sources/readAsByteArray.js","../../node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js","../../node_modules/tus-js-client/lib.esm/browser/fileReader.js","../../node_modules/tus-js-client/lib.esm/browser/uriToBlob.js","../../node_modules/tus-js-client/lib.esm/browser/index.js","../../node_modules/tus-js-client/lib.esm/browser/fingerprint.js","../../node_modules/skynet-js/dist/mjs/utils/url.js","../../node_modules/skynet-js/dist/mjs/skylink/parse.js","../../node_modules/skynet-js/dist/mjs/utils/validation.js","../../node_modules/skynet-js/dist/mjs/utils/string.js","../../node_modules/skynet-js/dist/mjs/utils/file.js","../../node_modules/skynet-js/dist/mjs/utils/options.js","../../node_modules/skynet-js/dist/mjs/utils/number.js","../../node_modules/skynet-js/dist/mjs/utils/encoding.js","../../node_modules/skynet-js/dist/mjs/crypto.js","../../node_modules/skynet-js/dist/mjs/skylink/sia.js","../../node_modules/skynet-js/dist/mjs/skylink/format.js","../../node_modules/skynet-js/dist/mjs/upload.js","../../node_modules/skynet-js/dist/mjs/registry.js","../../node_modules/skynet-js/dist/mjs/download.js","../../node_modules/skynet-js/dist/mjs/mysky/encrypted_files.js","../../node_modules/skynet-js/dist/mjs/mysky/tweak.js","../../node_modules/skynet-js/dist/mjs/skydb.js","../../node_modules/skynet-js/dist/mjs/utils/array.js","../../node_modules/skynet-js/dist/mjs/file.js","../../node_modules/skynet-js/dist/mjs/pin.js","../../node_modules/post-me/dist/index.mjs","../../node_modules/skynet-js/dist/mjs/mysky/connector.js","../../node_modules/skynet-js/dist/mjs/mysky/utils.js","../../node_modules/skynet-js/dist/mjs/mysky/index.js","../../node_modules/skynet-js/dist/mjs/client.js","../../../../src/integrations/node/express.ts","../../../../src/integrations/node/postgres.ts","../../../../src/integrations/node/mysql.ts","../../../../src/integrations/node/mongo.ts","../../../src/browser/backgroundtab.ts","../../../../../src/browser/web-vitals/lib/bindReporter.ts","../../../../../src/browser/web-vitals/lib/initMetric.ts","../../../../../src/browser/web-vitals/lib/generateUniqueID.ts","../../../../../src/browser/web-vitals/lib/observe.ts","../../../../../src/browser/web-vitals/lib/onHidden.ts","../../../../../src/browser/web-vitals/lib/getVisibilityWatcher.ts","../../../../src/browser/web-vitals/getLCP.ts","../../../src/browser/metrics.ts","../../../../src/browser/web-vitals/getCLS.ts","../../../../src/browser/web-vitals/getFID.ts","../../../src/browser/request.ts","../../../src/browser/router.ts","../../../src/browser/browsertracing.ts","../../node_modules/d3-color/src/define.js","../../node_modules/d3-color/src/color.js","../../node_modules/d3-interpolate/src/basis.js","../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/basisClosed.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/recharts/es6/component/LabelList.js","../../node_modules/recharts/es6/cartesian/ErrorBar.js","../../node_modules/recharts/es6/cartesian/Line.js","../../node_modules/react-hook-inview/dist/esm/useObserver.js","../../src/instrument.ts","../../node_modules/d3-array/src/ticks.js","../../node_modules/intersection-observer/intersection-observer.js","../../node_modules/react/cjs/react.production.min.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/strict-uri-encode/index.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../../src/CoordinatorService.ts","../../node_modules/webpack/buildin/amd-options.js","../../node_modules/borc/src/diagnose.js","../../node_modules/borc/src/decoder.asm.js","../../node_modules/borc/node_modules/iso-url/src/relative.js","../../node_modules/borc/src/encoder.js","../serializer.ts","../../../../src/canisters/coordinator.js","../../../src/Storage.ts","../../../../src/canisters/clientRegistry.js","../../../../src/canisters/constants.ts","../../../src/AnalyticsStoreService.ts","../../../../src/canisters/analyticsStore.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/path-to-regexp/node_modules/isarray/index.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-spinners/helpers/index.js","../../node_modules/react-spinners/helpers/proptypes.js","../../node_modules/react-spinners/helpers/colors.js","../../node_modules/react-spinners/helpers/unitConverter.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/ipfs-core-utils/cjs/src/multibases.js","../../node_modules/ipfs-core-utils/cjs/src/multicodecs.js","../../node_modules/ipfs-core-utils/cjs/src/multihashes.js","../../node_modules/@ipld/dag-pb/cjs/src/index.js","../../node_modules/multiformats/cjs/vendor/varint.js","../../node_modules/multiformats/cjs/vendor/base-x.js","../../node_modules/@ipld/dag-pb/cjs/src/pb-decode.js","../../node_modules/@ipld/dag-pb/cjs/src/pb-encode.js","../../node_modules/@ipld/dag-pb/cjs/src/util.js","../../node_modules/@ipld/dag-cbor/cjs/index.js","../../node_modules/cborg/cjs/cborg.js","../../node_modules/cborg/cjs/lib/encode.js","../../node_modules/cborg/cjs/lib/is.js","../../node_modules/cborg/cjs/lib/bl.js","../../node_modules/cborg/cjs/lib/decode.js","../../node_modules/multiformats/cjs/src/bases/identity.js","../../node_modules/multiformats/cjs/src/bases/base2.js","../../node_modules/multiformats/cjs/src/bases/base8.js","../../node_modules/multiformats/cjs/src/bases/base10.js","../../node_modules/multiformats/cjs/src/bases/base16.js","../../node_modules/multiformats/cjs/src/bases/base36.js","../../node_modules/multiformats/cjs/src/bases/base64.js","../../node_modules/multiformats/cjs/src/hashes/sha2-browser.js","../../node_modules/multiformats/cjs/src/codecs/raw.js","../../node_modules/multiformats/cjs/src/codecs/json.js","../../node_modules/multiformats/cjs/src/index.js","../../node_modules/ipfs-http-client/cjs/src/bitswap/index.js","../../node_modules/ipfs-http-client/cjs/src/bitswap/wantlist.js","../../node_modules/multiaddr/src/codec.js","../../node_modules/multiaddr/src/convert.js","../../node_modules/multiaddr/src/ip.js","../../node_modules/is-ip/index.js","../../node_modules/ip-regex/index.js","../../node_modules/multiaddr/node_modules/varint/encode.js","../../node_modules/multiaddr/node_modules/varint/decode.js","../../node_modules/multiaddr/node_modules/varint/length.js","../../node_modules/uint8arrays/cjs/src/equals.js","../../node_modules/is-electron/index.js","../../node_modules/parse-duration/index.mjs","../../node_modules/debug/src/common.js","../../node_modules/debug/node_modules/ms/index.js","../../node_modules/ipfs-utils/src/http/fetch.browser.js","../../node_modules/ipfs-utils/src/fetch.js","../../node_modules/native-fetch/src/index.js","../../node_modules/merge-options/node_modules/is-plain-obj/index.js","../../node_modules/iso-url/index.js","../../node_modules/iso-url/src/relative.js","../../node_modules/ipfs-utils/node_modules/any-signal/index.js","../../node_modules/ipfs-core-utils/cjs/src/to-url-string.js","../../node_modules/multiaddr-to-uri/index.js","../../node_modules/ipfs-core-utils/cjs/src/agent.browser.js","../../node_modules/ipfs-http-client/cjs/src/bitswap/wantlist-for-peer.js","../../node_modules/ipfs-http-client/cjs/src/bitswap/unwant.js","../../node_modules/ipfs-http-client/cjs/src/block/index.js","../../node_modules/ipfs-http-client/cjs/src/block/put.js","../../node_modules/ipfs-core-utils/cjs/src/files/normalise-input.browser.js","../../node_modules/ipfs-core-utils/cjs/src/files/normalise-content.browser.js","../../node_modules/it-all/index.js","../../node_modules/ipfs-core-utils/cjs/src/files/normalise.js","../../node_modules/it-map/index.js","../../node_modules/ipfs-unixfs/cjs/src/index.js","../../node_modules/ipfs-unixfs/cjs/src/unixfs.js","../../node_modules/protobufjs/minimal.js","../../node_modules/protobufjs/src/index-minimal.js","../../node_modules/@protobufjs/aspromise/index.js","../../node_modules/@protobufjs/base64/index.js","../../node_modules/@protobufjs/eventemitter/index.js","../../node_modules/@protobufjs/float/index.js","../../node_modules/@protobufjs/inquire/index.js","../../node_modules/@protobufjs/utf8/index.js","../../node_modules/@protobufjs/pool/index.js","../../node_modules/protobufjs/src/util/longbits.js","../../node_modules/protobufjs/src/writer_buffer.js","../../node_modules/protobufjs/src/reader_buffer.js","../../node_modules/protobufjs/src/rpc.js","../../node_modules/protobufjs/src/rpc/service.js","../../node_modules/protobufjs/src/roots.js","../../node_modules/ipfs-core-utils/cjs/src/mode-to-string.js","../../node_modules/any-signal/index.js","../../node_modules/abort-controller/browser.js","../../node_modules/ipfs-http-client/cjs/src/block/rm.js","../../node_modules/ipfs-http-client/cjs/src/block/stat.js","../../node_modules/ipfs-http-client/cjs/src/bootstrap/index.js","../../node_modules/ipfs-http-client/cjs/src/bootstrap/add.js","../../node_modules/ipfs-http-client/cjs/src/bootstrap/clear.js","../../node_modules/ipfs-http-client/cjs/src/bootstrap/list.js","../../node_modules/ipfs-http-client/cjs/src/bootstrap/reset.js","../../node_modules/ipfs-http-client/cjs/src/bootstrap/rm.js","../../node_modules/ipfs-http-client/cjs/src/config/index.js","../../node_modules/ipfs-http-client/cjs/src/config/profiles/index.js","../../node_modules/ipfs-http-client/cjs/src/config/profiles/apply.js","../../node_modules/ipfs-http-client/cjs/src/config/profiles/list.js","../../node_modules/ipfs-http-client/cjs/src/config/get.js","../../node_modules/ipfs-http-client/cjs/src/config/get-all.js","../../node_modules/ipfs-http-client/cjs/src/config/replace.js","../../node_modules/ipfs-http-client/cjs/src/config/set.js","../../node_modules/ipfs-http-client/cjs/src/dag/index.js","../../node_modules/ipfs-http-client/cjs/src/dag/export.js","../../node_modules/ipfs-http-client/cjs/src/dag/get.js","../../node_modules/ipfs-http-client/cjs/src/lib/resolve.js","../../node_modules/it-first/index.js","../../node_modules/ipfs-http-client/cjs/src/dag/import.js","../../node_modules/ipfs-http-client/cjs/src/dag/resolve.js","../../node_modules/ipfs-http-client/cjs/src/dht/index.js","../../node_modules/ipfs-http-client/cjs/src/dht/find-peer.js","../../node_modules/ipfs-http-client/cjs/src/dht/find-provs.js","../../node_modules/ipfs-http-client/cjs/src/dht/get.js","../../node_modules/ipfs-http-client/cjs/src/dht/provide.js","../../node_modules/ipfs-http-client/cjs/src/dht/put.js","../../node_modules/ipfs-http-client/cjs/src/dht/query.js","../../node_modules/ipfs-http-client/cjs/src/diag/index.js","../../node_modules/ipfs-http-client/cjs/src/diag/cmds.js","../../node_modules/ipfs-http-client/cjs/src/diag/net.js","../../node_modules/ipfs-http-client/cjs/src/diag/sys.js","../../node_modules/ipfs-http-client/cjs/src/files/index.js","../../node_modules/ipfs-http-client/cjs/src/files/chmod.js","../../node_modules/ipfs-http-client/cjs/src/files/cp.js","../../node_modules/ipfs-http-client/cjs/src/files/flush.js","../../node_modules/ipfs-http-client/cjs/src/files/ls.js","../../node_modules/ipfs-http-client/cjs/src/files/mkdir.js","../../node_modules/ipfs-http-client/cjs/src/files/mv.js","../../node_modules/ipfs-http-client/cjs/src/files/read.js","../../node_modules/stream-to-it/source.js","../../node_modules/ipfs-http-client/cjs/src/files/rm.js","../../node_modules/ipfs-http-client/cjs/src/files/touch.js","../../node_modules/ipfs-http-client/cjs/src/files/write.js","../../node_modules/ipfs-http-client/cjs/src/key/index.js","../../node_modules/ipfs-http-client/cjs/src/key/export.js","../../node_modules/ipfs-http-client/cjs/src/key/gen.js","../../node_modules/ipfs-http-client/cjs/src/key/import.js","../../node_modules/ipfs-http-client/cjs/src/key/info.js","../../node_modules/ipfs-http-client/cjs/src/key/list.js","../../node_modules/ipfs-http-client/cjs/src/key/rename.js","../../node_modules/ipfs-http-client/cjs/src/key/rm.js","../../node_modules/ipfs-http-client/cjs/src/log/index.js","../../node_modules/ipfs-http-client/cjs/src/log/level.js","../../node_modules/ipfs-http-client/cjs/src/log/ls.js","../../node_modules/ipfs-http-client/cjs/src/log/tail.js","../../node_modules/ipfs-http-client/cjs/src/name/index.js","../../node_modules/ipfs-http-client/cjs/src/name/publish.js","../../node_modules/ipfs-http-client/cjs/src/name/resolve.js","../../node_modules/ipfs-http-client/cjs/src/name/pubsub/index.js","../../node_modules/ipfs-http-client/cjs/src/name/pubsub/cancel.js","../../node_modules/ipfs-http-client/cjs/src/name/pubsub/state.js","../../node_modules/ipfs-http-client/cjs/src/name/pubsub/subs.js","../../node_modules/ipfs-http-client/cjs/src/object/index.js","../../node_modules/ipfs-http-client/cjs/src/object/data.js","../../node_modules/ipfs-http-client/cjs/src/object/get.js","../../node_modules/ipfs-http-client/cjs/src/object/links.js","../../node_modules/ipfs-http-client/cjs/src/object/new.js","../../node_modules/ipfs-http-client/cjs/src/object/put.js","../../node_modules/ipfs-http-client/cjs/src/object/stat.js","../../node_modules/ipfs-http-client/cjs/src/object/patch/index.js","../../node_modules/ipfs-http-client/cjs/src/object/patch/add-link.js","../../node_modules/ipfs-http-client/cjs/src/object/patch/append-data.js","../../node_modules/ipfs-http-client/cjs/src/object/patch/rm-link.js","../../node_modules/ipfs-http-client/cjs/src/object/patch/set-data.js","../../node_modules/ipfs-http-client/cjs/src/pin/index.js","../../node_modules/ipfs-http-client/cjs/src/pin/add.js","../../node_modules/ipfs-http-client/cjs/src/pin/ls.js","../../node_modules/ipfs-http-client/cjs/src/pin/rm.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/index.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/add.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/ls.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/rm.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/rm-all.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/service/index.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/service/add.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/service/ls.js","../../node_modules/ipfs-http-client/cjs/src/pin/remote/service/rm.js","../../node_modules/ipfs-http-client/cjs/src/pubsub/index.js","../../node_modules/ipfs-http-client/cjs/src/pubsub/ls.js","../../node_modules/ipfs-http-client/cjs/src/pubsub/peers.js","../../node_modules/ipfs-http-client/cjs/src/pubsub/publish.js","../../node_modules/ipfs-http-client/cjs/src/pubsub/subscribe.js","../../node_modules/ipfs-http-client/cjs/src/pubsub/unsubscribe.js","../../node_modules/ipfs-http-client/cjs/src/pubsub/subscription-tracker.js","../../node_modules/ipfs-http-client/cjs/src/refs/index.js","../../node_modules/ipfs-http-client/cjs/src/refs/local.js","../../node_modules/ipfs-http-client/cjs/src/repo/index.js","../../node_modules/ipfs-http-client/cjs/src/repo/gc.js","../../node_modules/ipfs-http-client/cjs/src/repo/version.js","../../node_modules/ipfs-http-client/cjs/src/stats/index.js","../../node_modules/ipfs-http-client/cjs/src/stats/bw.js","../../node_modules/ipfs-http-client/cjs/src/swarm/index.js","../../node_modules/ipfs-http-client/cjs/src/swarm/addrs.js","../../node_modules/ipfs-http-client/cjs/src/swarm/connect.js","../../node_modules/ipfs-http-client/cjs/src/swarm/disconnect.js","../../node_modules/ipfs-http-client/cjs/src/swarm/local-addrs.js","../../node_modules/ipfs-http-client/cjs/src/swarm/peers.js","../../node_modules/ipfs-http-client/cjs/src/add.js","../../node_modules/ipfs-http-client/cjs/src/cat.js","../../node_modules/ipfs-http-client/cjs/src/commands.js","../../node_modules/ipfs-http-client/cjs/src/dns.js","../../node_modules/ipfs-http-client/cjs/src/get-endpoint-config.js","../../node_modules/ipfs-http-client/cjs/src/get.js","../../node_modules/ipfs-http-client/cjs/src/is-online.js","../../node_modules/ipfs-http-client/cjs/src/ls.js","../../node_modules/ipfs-http-client/cjs/src/mount.js","../../node_modules/ipfs-http-client/cjs/src/ping.js","../../node_modules/ipfs-http-client/cjs/src/resolve.js","../../node_modules/ipfs-http-client/cjs/src/start.js","../../node_modules/ipfs-http-client/cjs/src/stop.js","../../node_modules/ipfs-http-client/cjs/src/version.js","../../node_modules/ipfs-utils/src/files/url-source.js","../../node_modules/normalize-wheel/src/normalizeWheel.js","../../node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js","../../node_modules/normalize-wheel/src/isEventSupported.js","../../node_modules/normalize-wheel/src/ExecutionEnvironment.js","../../node_modules/axios/lib/axios.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/helpers/normalizeHeaderName.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/requires-port/index.js","../../node_modules/querystringify/index.js","../../node_modules/mime/Mime.js","../../node_modules/mime/types/standard.js","../../node_modules/crypto-browserify/index.js","../../node_modules/hash-base/node_modules/readable-stream/readable-browser.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","../../node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","../../node_modules/sha.js/sha.js","../../node_modules/sha.js/sha1.js","../../node_modules/sha.js/sha224.js","../../node_modules/sha.js/sha384.js","../../node_modules/stream-browserify/index.js","../../node_modules/readable-stream/lib/internal/streams/BufferList.js","../../node_modules/setimmediate/setImmediate.js","../../node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/readable-stream/writable-browser.js","../../node_modules/readable-stream/duplex-browser.js","../../node_modules/readable-stream/transform.js","../../node_modules/readable-stream/passthrough.js","../../node_modules/create-hmac/legacy.js","../../node_modules/browserify-sign/algos.js","../../node_modules/pbkdf2/lib/async.js","../../node_modules/browserify-cipher/browser.js","../../node_modules/browserify-des/index.js","../../node_modules/des.js/lib/des.js","../../node_modules/des.js/lib/des/cbc.js","../../node_modules/des.js/lib/des/ede.js","../../node_modules/browserify-aes/encrypter.js","../../node_modules/browserify-aes/modes/ecb.js","../../node_modules/browserify-aes/modes/cbc.js","../../node_modules/browserify-aes/modes/cfb.js","../../node_modules/browserify-aes/modes/cfb8.js","../../node_modules/browserify-aes/modes/cfb1.js","../../node_modules/browserify-aes/modes/ofb.js","../../node_modules/browserify-aes/ghash.js","../../node_modules/browserify-aes/decrypter.js","../../node_modules/browserify-des/modes.js","../../node_modules/diffie-hellman/browser.js","../../node_modules/diffie-hellman/lib/dh.js","../../node_modules/browserify-sign/browser/index.js","../../node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","../../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","../../node_modules/browserify-sign/browser/sign.js","../../node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","../../node_modules/elliptic/lib/elliptic/curve/short.js","../../node_modules/elliptic/lib/elliptic/curve/mont.js","../../node_modules/elliptic/lib/elliptic/curve/edwards.js","../../node_modules/hash.js/lib/hash/sha.js","../../node_modules/hash.js/lib/hash/sha/1.js","../../node_modules/hash.js/lib/hash/sha/224.js","../../node_modules/hash.js/lib/hash/sha/384.js","../../node_modules/hash.js/lib/hash/ripemd.js","../../node_modules/hash.js/lib/hash/hmac.js","../../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../../node_modules/elliptic/lib/elliptic/ec/index.js","../../node_modules/hmac-drbg/lib/hmac-drbg.js","../../node_modules/elliptic/lib/elliptic/ec/key.js","../../node_modules/elliptic/lib/elliptic/ec/signature.js","../../node_modules/elliptic/lib/elliptic/eddsa/index.js","../../node_modules/elliptic/lib/elliptic/eddsa/key.js","../../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../../node_modules/parse-asn1/asn1.js","../../node_modules/asn1.js/lib/asn1/api.js","../../node_modules/asn1.js/lib/asn1/encoders/pem.js","../../node_modules/asn1.js/lib/asn1/decoders/pem.js","../../node_modules/asn1.js/lib/asn1/base/index.js","../../node_modules/asn1.js/lib/asn1/constants/index.js","../../node_modules/parse-asn1/certificate.js","../../node_modules/parse-asn1/fixProc.js","../../node_modules/browserify-sign/browser/verify.js","../../node_modules/create-ecdh/browser.js","../../node_modules/public-encrypt/browser.js","../../node_modules/public-encrypt/publicEncrypt.js","../../node_modules/public-encrypt/privateDecrypt.js","../../node_modules/randomfill/browser.js","../../node_modules/blakejs/blake2b.js","../../node_modules/blakejs/blake2s.js","../../node_modules/to-data-view/index.js","../../src/paths.ts","../../src/permissions.ts","../../src/window-listener.ts","../../../../src/common/ar.ts","../../../../../src/common/lib/api.ts","../../node_modules/arweave/node_modules/axios/index.js","../../node_modules/arweave/node_modules/axios/lib/axios.js","../../node_modules/arweave/node_modules/axios/lib/core/Axios.js","../../node_modules/arweave/node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/arweave/node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/arweave/node_modules/axios/lib/core/transformData.js","../../node_modules/arweave/node_modules/axios/lib/helpers/normalizeHeaderName.js","../../node_modules/arweave/node_modules/axios/lib/core/settle.js","../../node_modules/arweave/node_modules/axios/lib/helpers/cookies.js","../../node_modules/arweave/node_modules/axios/lib/core/buildFullPath.js","../../node_modules/arweave/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/arweave/node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/arweave/node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/arweave/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/arweave/node_modules/axios/lib/helpers/validator.js","../../node_modules/arweave/node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/arweave/node_modules/axios/lib/helpers/spread.js","../../node_modules/arweave/node_modules/axios/lib/helpers/isAxiosError.js","../../../../src/common/network.ts","../../../../src/common/transactions.ts","../../node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js","../../node_modules/node-libs-browser/node_modules/inherits/inherits_browser.js","../../../../../src/common/lib/deepHash.ts","../../../../../src/common/lib/transaction-uploader.ts","../../../../src/common/wallets.ts","../../../../src/common/silo.ts","../../../../src/common/chunks.ts","../../../../src/common/blocks.ts","../../../../../../src/common/lib/crypto/webcrypto-driver.ts","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../node_modules/react-modal/lib/components/Modal.js","../../node_modules/react-modal/lib/components/ModalPortal.js","../../node_modules/react-modal/lib/helpers/focusManager.js","../../node_modules/react-modal/lib/helpers/scopeTab.js","../../node_modules/warning/warning.js","../../node_modules/exenv/index.js","../../node_modules/react-modal/lib/helpers/classList.js","../../node_modules/react-modal/lib/helpers/bodyTrap.js","../../node_modules/react-linkify/dist/components/Linkify.js","../../node_modules/react-linkify/dist/decorators/defaultComponentDecorator.js","../../node_modules/react-linkify/dist/decorators/defaultHrefDecorator.js","../../node_modules/react-linkify/dist/decorators/defaultMatchDecorator.js","../../node_modules/linkify-it/index.js","../../node_modules/linkify-it/lib/re.js","../../node_modules/uc.micro/properties/Any/regex.js","../../node_modules/uc.micro/categories/Cc/regex.js","../../node_modules/uc.micro/categories/Z/regex.js","../../node_modules/uc.micro/categories/P/regex.js","../../node_modules/react-linkify/dist/decorators/defaultTextDecorator.js","../../node_modules/video-react/lib/components/Player.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/video-react/lib/Manager.js","../../node_modules/video-react/lib/reducers/player.js","../../node_modules/video-react/lib/reducers/operation.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/video-react/lib/components/popup/PopupButton.js","../../node_modules/video-react/lib/components/popup/Popup.js","../../node_modules/video-react/lib/components/volume-control/VolumeBar.js","../../node_modules/video-react/lib/components/volume-control/VolumeLevel.js","../../node_modules/video-react/lib/components/menu/Menu.js","../../node_modules/video-react/lib/components/menu/MenuItem.js","../../node_modules/video-react/lib/utils/browser.js","../../node_modules/video-react/lib/components/control-bar/PlaybackRate.js","../../node_modules/video-react/lib/components/control-bar/ClosedCaptionButton.js","../../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/inline-style-parser/index.js","../../node_modules/lodash/_arrayEvery.js","../../node_modules/lodash/_baseEvery.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/_baseIsArguments.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/stubFalse.js","../../node_modules/lodash/_baseIsTypedArray.js","../../node_modules/lodash/_nodeUtil.js","../../node_modules/lodash/_baseKeys.js","../../node_modules/lodash/_isPrototype.js","../../node_modules/lodash/_nativeKeys.js","../../node_modules/lodash/_overArg.js","../../node_modules/lodash/_createBaseEach.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getTag.js","../../node_modules/lodash/_DataView.js","../../node_modules/lodash/_Promise.js","../../node_modules/lodash/_WeakMap.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/_createFind.js","../../node_modules/lodash/findIndex.js","../../node_modules/lodash/toInteger.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_isFlattenable.js","../../node_modules/lodash/_baseOrderBy.js","../../node_modules/lodash/_baseSortBy.js","../../node_modules/lodash/_compareMultiple.js","../../node_modules/lodash/_compareAscending.js","../../node_modules/lodash/_baseRest.js","../../node_modules/lodash/_overRest.js","../../node_modules/lodash/_apply.js","../../node_modules/lodash/_setToString.js","../../node_modules/lodash/_baseSetToString.js","../../node_modules/lodash/constant.js","../../node_modules/lodash/_shortOut.js","../../node_modules/lodash/_createRange.js","../../node_modules/lodash/_baseRange.js","../../node_modules/lodash/_createCaseFirst.js","../../node_modules/lodash/_castSlice.js","../../node_modules/lodash/_baseSlice.js","../../node_modules/lodash/_stringToArray.js","../../node_modules/lodash/_asciiToArray.js","../../node_modules/lodash/_unicodeToArray.js","../../node_modules/lodash/_baseGt.js","../../node_modules/lodash/_baseLt.js","../../node_modules/lodash/map.js","../../node_modules/lodash/_baseUniq.js","../../node_modules/lodash/_arrayIncludes.js","../../node_modules/lodash/_baseIndexOf.js","../../node_modules/lodash/_baseIsNaN.js","../../node_modules/lodash/_strictIndexOf.js","../../node_modules/lodash/_arrayIncludesWith.js","../../node_modules/lodash/_createSet.js","../../node_modules/lodash/noop.js","../../node_modules/lodash/_baseSome.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/postcss-value-parser/lib/index.js","../../node_modules/postcss-value-parser/lib/parse.js","../../node_modules/postcss-value-parser/lib/walk.js","../../node_modules/postcss-value-parser/lib/stringify.js","../../node_modules/postcss-value-parser/lib/unit.js","../../node_modules/reduce-css-calc/dist/parser.js","../../node_modules/reduce-css-calc/dist/lib/convert.js","../../node_modules/css-unit-converter/index.js","../../node_modules/reduce-css-calc/dist/lib/stringifier.js","../../src/performance-now.coffee","../../node_modules/react-transition-group/CSSTransition.js","../../node_modules/dom-helpers/class/addClass.js","../../node_modules/dom-helpers/class/hasClass.js","../../node_modules/dom-helpers/class/removeClass.js","../../node_modules/react-transition-group/ReplaceTransition.js","../../node_modules/react-transition-group/utils/ChildMapping.js","../../node_modules/crypt/crypt.js","../../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js","../../node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../node_modules/@emotion/hash/dist/hash.browser.esm.js","../../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../node_modules/redux/es/redux.js","../../node_modules/react-i18next/dist/es/useTranslation.js","../../node_modules/recharts/es6/chart/LineChart.js","../../node_modules/d3-path/src/path.js","../../node_modules/d3-array/src/bisect.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/vfile-message/node_modules/unist-util-stringify-position/index.js","../../node_modules/vfile-message/index.js","../../node_modules/vfile/lib/minpath.browser.js","../../node_modules/vfile/lib/minproc.browser.js","../../node_modules/vfile/lib/minurl.shared.js","../../node_modules/vfile/lib/minurl.browser.js","../../node_modules/vfile/lib/index.js","../../node_modules/bail/index.js","../../node_modules/unified/node_modules/is-plain-obj/index.js","../../node_modules/trough/index.js","../../node_modules/unified/lib/index.js","../../node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string/index.js","../../node_modules/micromark-util-chunked/index.js","../../node_modules/micromark-util-combine-extensions/index.js","../../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../../node_modules/micromark-util-character/index.js","../../node_modules/micromark-factory-space/index.js","../../node_modules/micromark/lib/initialize/content.js","../../node_modules/micromark/lib/initialize/document.js","../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../node_modules/micromark-util-subtokenize/index.js","../../node_modules/micromark-core-commonmark/lib/content.js","../../node_modules/micromark/lib/initialize/flow.js","../../node_modules/micromark/lib/initialize/text.js","../../node_modules/micromark-util-resolve-all/index.js","../../node_modules/micromark/lib/create-tokenizer.js","../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../node_modules/micromark-core-commonmark/lib/list.js","../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../node_modules/micromark-factory-destination/index.js","../../node_modules/micromark-factory-label/index.js","../../node_modules/micromark-factory-title/index.js","../../node_modules/micromark-factory-whitespace/index.js","../../node_modules/micromark-util-normalize-identifier/index.js","../../node_modules/micromark-core-commonmark/lib/definition.js","../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../node_modules/micromark-core-commonmark/lib/setext-underline.js","../../node_modules/micromark-util-html-tag-name/index.js","../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../node_modules/character-entities/index.js","../../node_modules/decode-named-character-reference/index.js","../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../node_modules/micromark-core-commonmark/lib/label-end.js","../../node_modules/micromark-util-classify-character/index.js","../../node_modules/micromark-core-commonmark/lib/attention.js","../../node_modules/micromark/lib/constructs.js","../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../node_modules/micromark-core-commonmark/lib/autolink.js","../../node_modules/micromark-core-commonmark/lib/html-text.js","../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../node_modules/micromark-core-commonmark/lib/code-text.js","../../node_modules/micromark/lib/preprocess.js","../../node_modules/micromark-util-decode-numeric-character-reference/index.js","../../node_modules/micromark-util-decode-string/index.js","../../node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position/index.js","../../node_modules/mdast-util-from-markdown/lib/index.js","../../node_modules/micromark/lib/postprocess.js","../../node_modules/micromark/lib/parse.js","../../node_modules/remark-parse/index.js","../../node_modules/remark-parse/lib/index.js","../../node_modules/unist-builder/index.js","../../node_modules/unist-util-is/index.js","../../node_modules/unist-util-visit-parents/index.js","../../node_modules/unist-util-visit/index.js","../../node_modules/unist-util-position/index.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents/index.js","../../node_modules/mdast-util-definitions/node_modules/unist-util-visit/index.js","../../node_modules/mdast-util-definitions/index.js","../../node_modules/mdast-util-to-hast/lib/traverse.js","../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../node_modules/mdast-util-to-hast/lib/wrap.js","../../node_modules/mdast-util-to-hast/lib/handlers/list.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../node_modules/mdast-util-to-hast/lib/revert.js","../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../node_modules/mdast-util-to-hast/lib/handlers/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../node_modules/mdast-util-to-hast/lib/handlers/break.js","../../node_modules/mdast-util-to-hast/lib/handlers/code.js","../../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../node_modules/mdast-util-to-hast/lib/handlers/html.js","../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/image.js","../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/link.js","../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../node_modules/mdast-util-to-hast/lib/handlers/root.js","../../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../node_modules/mdast-util-to-hast/lib/handlers/table.js","../../node_modules/mdast-util-to-hast/lib/handlers/text.js","../../node_modules/mdast-util-to-hast/lib/index.js","../../node_modules/unist-util-generated/index.js","../../node_modules/mdast-util-to-hast/lib/footer.js","../../node_modules/remark-rehype/index.js","../../node_modules/property-information/lib/util/schema.js","../../node_modules/property-information/lib/util/merge.js","../../node_modules/property-information/lib/normalize.js","../../node_modules/property-information/lib/util/info.js","../../node_modules/property-information/lib/util/types.js","../../node_modules/property-information/lib/util/defined-info.js","../../node_modules/property-information/lib/util/create.js","../../node_modules/property-information/lib/xlink.js","../../node_modules/property-information/lib/xml.js","../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/property-information/lib/xmlns.js","../../node_modules/property-information/lib/aria.js","../../node_modules/property-information/lib/html.js","../../node_modules/property-information/lib/svg.js","../../node_modules/property-information/index.js","../../node_modules/react-markdown/lib/rehype-filter.js","../../node_modules/react-markdown/lib/uri-transformer.js","../../node_modules/hast-util-whitespace/index.js","../../node_modules/property-information/lib/find.js","../../node_modules/property-information/lib/hast-to-react.js","../../node_modules/react-markdown/lib/ast-to-react.js","../../node_modules/comma-separated-tokens/index.js","../../node_modules/space-separated-tokens/index.js","../../node_modules/react-markdown/lib/react-markdown.js","../../src/version.ts","../../node_modules/@sentry/browser/node_modules/tslib/tslib.es6.js","../../../src/integrations/functiontostring.ts","../../node_modules/@sentry/core/node_modules/tslib/tslib.es6.js","../../../src/integrations/inboundfilters.ts","../../src/polyfill.ts","../../src/error.ts","../../src/dsn.ts","../../src/integration.ts","../../src/baseclient.ts","../../../src/transports/noop.ts","../../src/severity.ts","../../src/basebackend.ts","../../src/stack-parsers.ts","../../src/eventbuilder.ts","../../src/envelope.ts","../../src/request.ts","../../src/promisebuffer.ts","../../src/ratelimit.ts","../../../src/transports/utils.ts","../../src/async.ts","../../../src/transports/base.ts","../../src/clientreport.ts","../../src/status.ts","../../../src/transports/fetch.ts","../../../src/transports/xhr.ts","../../src/backend.ts","../../src/enums.ts","../../../src/integrations/breadcrumbs.ts","../../src/client.ts","../../../src/integrations/trycatch.ts","../../../src/integrations/globalhandlers.ts","../../../src/integrations/linkederrors.ts","../../../src/integrations/dedupe.ts","../../../src/integrations/useragent.ts","../../src/sdk.ts","../../node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/d3-format/src/defaultLocale.js","../../node_modules/d3-format/src/formatRounded.js","../../node_modules/d3-format/src/formatTypes.js","../../node_modules/d3-format/src/identity.js","../../node_modules/d3-format/src/locale.js","../../node_modules/d3-format/src/formatGroup.js","../../node_modules/d3-format/src/formatNumerals.js","../../node_modules/d3-format/src/formatTrim.js","../../node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/uuid/dist/esm-browser/v4.js","../../src/parse-tag.js","../../src/parse.js","../../src/stringify.js","../../src/index.js","../../node_modules/html-escaper/esm/index.js","../../node_modules/react-i18next/dist/es/Trans.js"],"names":["DefaultContext","color","undefined","size","className","style","attr","IconContext","React","createContext","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","Tree2Element","tree","map","node","createElement","tag","key","child","GenIcon","data","props","IconBase","elem","conf","title","svgProps","computedSize","stroke","fill","strokeWidth","height","width","xmlns","children","Consumer","module","exports","require","mathSign","value","isPercent","_isString","isNumber","_isNumber","_isNaN","isNumOrStr","idCounter","uniqueId","prefix","id","concat","getPercentValue","percent","totalValue","defaultValue","validate","index","parseFloat","slice","getAnyElementOfObject","obj","keys","hasDuplicate","ary","_isArray","len","cache","interpolateNumber","numberA","numberB","findEntryInArray","specifiedKey","specifiedValue","find","entry","_get","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","Error","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","isBuffer","checked","copy","buffer","val","type","fromObject","assertSize","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","m","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","defineProperty","configurable","allocUnsafeSlow","_isBuffer","compare","a","x","y","list","pos","swap16","swap32","swap64","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","core","configure","fn","options","Client","modeToString","parseMtime","toUrlSearchParams","searchParams","hashAlg","mtime","mode","hash","secs","mtimeNsecs","nsecs","timeout","urlSearchParams","URLSearchParams","forEach","append","hasOwn","classNames","classes","argType","inner","default","stringToByteArray","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","ENCODED_VALS_WEBSAFE","HAS_NATIVE_SUPPORT","atob","encodeByteArray","input","webSafe","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","encodeString","btoa","decodeString","c1","c2","u","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","charAt","byte4","base64Encode","utf8Bytes","base64urlEncodeWithoutPadding","Deferred","constructor","reject","resolve","promise","Promise","wrapCallback","callback","error","catch","createMockUserToken","token","projectId","uid","project","iat","user_id","payload","iss","aud","exp","auth_time","firebase","sign_in_provider","identities","JSON","stringify","alg","getUA","navigator","isMobileCordova","window","test","isBrowserExtension","runtime","chrome","browser","isReactNative","isElectron","isIE","ua","isUWP","isSafari","process","isNode","userAgent","isIndexedDBAvailable","indexedDB","validateIndexedDBOpenable","preExist","DB_CHECK_NAME","request","self","open","onsuccess","result","close","deleteDatabase","onupgradeneeded","onerror","message","deepEqual","aKeys","bKeys","k","aProp","bProp","isObject","thing","getModularInstance","service","_delegate","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","iterator","_iterableToArray","o","minLen","name","_unsupportedIterableToArray","_nonIterableSpread","arr2","identity","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","_len","args","_key","argsLength","filter","_len2","restArgs","_key2","newArgs","shift","curry","range","begin","compose","_len3","_key3","fns","reverse","firstFn","tailsFn","reduce","split","memoize","lastArgs","lastResult","_len4","_key4","every","rangeStep","step","num","Decimal","lt","toNumber","add","getDigitCount","abs","log","newA","uninterpolateNumber","diff","uninterpolateTruncation","_slicedToArray","_arrayWithHoles","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","_nonIterableRest","getValidInterval","_ref","_ref2","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","lte","digitCount","Arithmetic","digitCountValue","stepRatio","div","stepRatioScale","formatStep","ceil","getTickOfSingleValue","tickCount","middle","isint","absVal","middleIndex","calculateStep","tickMin","tickMax","mod","belowCount","upCount","scaleCount","getNiceTickValues","_ref3","_ref4","count","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","values","getTickValuesFixedDomain","_ref5","_ref6","_getValidInterval3","_getValidInterval4","_ref7","_ref8","_getValidInterval5","_getValidInterval6","series","order","s0","s1","stackValue","d","stackSeries","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","writable","getValueByDataKey","dataKey","_isNil","_isFunction","getDomainOfDataByKey","filterNil","flattenData","_flatMap","domain","_min","_max","Date","calculateActiveTickIndex","coordinate","_ticks$length","ticks","unsortedTicks","axis","axisType","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","getMainColorOfGraphicItem","item","displayName","_item$props","getLegendProps","legendData","formattedGraphicalItems","legendWidth","legendContent","legendItem","findChildByType","Legend","sectors","iconType","legendType","_item$props2","inactive","hide","getWithHeight","getBarSizeList","globalSize","barSize","_ref5$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","items","cateAxisId","barItems","getDisplayName","selfSize","cateId","stackList","getBarPosition","barGap","barCategoryGap","bandSize","_ref6$sizeList","sizeList","maxBarSize","realBarGap","useFull","fullBarSize","sum","prev","newRes","position","_offset","originalSize","appendOffsetOfLegend","legendBox","margin","left","right","legendProps","newOffset","box","align","verticalAlign","layout","getDomainOfErrorBars","errorBars","findAllByType","errorBarChild","direction","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","scale","duplicateDomain","bandwidth","niceTicks","scaleContent","isCategorical","categoricalDomain","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","parseScale","chartType","hasBar","d3Scales","realScaleType","_upperFirst","EPS","checkDomainOfScale","first","last","STACK_OFFSET_MAP","sign","positive","negative","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","stack","constant","orderNone","offsetNone","oz","sz","_","shapeStack","stackOrderNone","getStackGroupsByAxisId","_items","numericAxisId","reverseStackOrder","_item$props3","stackId","axisId","parentGroup","hasStack","childGroup","group","g","stackedData","getTicksOfScale","opts","originalDomain","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","allowDuplicatedCategory","matchedTick","getStackedDataOfItem","itemIndex","getDomainOfStackGroups","startIndex","endIndex","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","exec","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","_sortBy","parseDomainOfCategoryAxis","calculatedDomain","axisChild","_isEqual","getTooltipItem","graphicalItem","_graphicalItem$props","unit","formatter","tooltipType","filterProps","__read","r","ar","__spread","_typeof","SVGContainerPropKeys","SVGElementPropKeys","EventKeys","includeEvents","isSvg","inputProps","isValidElement","_isObject","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild","baseGetTag","BrowserRouter","history","createHistory","render","Component","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","event","ex","isModifiedEvent","forwardedRef","Link","component","RouterContext","context","location","href","isDuplicateNavigation","createPath","method","ariaCurrent","activeClassName","activeStyle","classNameProp","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","toLocation","path","escapedPath","matchPath","classnames","joinClassnames","extendStatics","setPrototypeOf","__extends","__","create","__values","ctor","superCtor","super_","TempCtor","__esModule","varint","digest","base58","base32","CID","version","multihash","asCID","_baseCache","Map","hidden","readonly","toV0","DAG_PB_CODE","SHA_256_CODE","createV0","toV1","digest$1","createV1","other","base","toStringV0","base58btc","encoder","toStringV1","toStringTag","for","deprecate","IS_CID_DEPRECATION","cidSymbol","toBaseEncodedString","codec","multibaseName","encodeCID","decode","cid","remainder","decodeFirst","bytes$1","specs","inspectBytes","prefixSize","multihashSize","multihashBytes","coerce","digestBytes","digestSize","Digest","multihashCode","initialBytes","parseCIDtoBytes","decoder","get","encode","codeOffset","encodingLength","hashOffset","encodeTo","console","warn","copyProps","SafeBuffer","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","Comp","lastChildren","toArray","Children","isFragment","types","childType","validateWidthHeight","el","_el$props","SVG_TAGS","isSvgElement","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","nextChild","prevChild","nextProps","prevProps","shallowEqual","renderByOrder","renderMap","elements","record","handler","once","results","getReactEventByType","parseChildIndex","initRange","initInterpolator","interpolator","PREFIX","consoleSandbox","originalConsole","wrappedLevels","level","__sentry_original__","_enabled","disable","enable","__SENTRY__","logger","Logger","globalScope","ONE","MAX_DIGITS","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","carry","xd","yd","Ctor","pr","round","unshift","pop","checkInt32","digitsToString","ws","indexOfLastWord","w","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","divide","dividedToIntegerBy","idiv","eq","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","minus","subtract","modulo","q","times","naturalExponential","naturalLogarithm","negated","neg","plus","sd","z","squareRoot","sqrt","toExponential","rL","toDecimalPlaces","todp","rm","toFixed","toInteger","toint","toPower","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","multiplyInteger","temp","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","getLn10","zs","c0","numerator","x2","parseDecimal","search","substring","rd","doRound","xdi","xe","xLTy","isExp","config","v","ps","clone","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","define","Function","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","noop","nextTick","env","argv","versions","on","addListener","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","createNamedContext","historyContext","Router","computeRootMatch","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","state","staticContext","HistoryContext","cacheCount","matched","cacheKey","pathCache","regexp","pathToRegexp","compilePath","memo","Route","isEmptyChildren","addLeadingSlash","stripBasename","basename","createURL","staticHandler","methodName","invariant","Switch","element","computedMatch","useContext","useHistory","useParams","normalize","NaN","bimap","interpolate","d0","d1","r0","r1","polymap","bisect","clamp","unknown","transformer","transform","untransform","piecewise","interpolateValue","rescale","clamper","invert","number","rangeRound","interpolateRound","continuous","IDL","compute_allocation","memory_allocation","provisional_create_canister_with_cycles","retrieve","store","IoArrowDown","IoArrowUp","IoCashOutline","IoCheckmarkCircle","IoClose","IoCloudDownloadOutline","IoCodeSlash","IoFlagSharp","IoFlashOutline","IoFlashSharp","IoHeartOutline","IoHeartSharp","IoLeafSharp","IoMenu","IoShareOutline","IoSparklesSharp","IoStatsChartSharp","objectToString","isError","wat","isInstanceOf","isBuiltin","ty","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","Boolean","then","isSyntheticEvent","instance","Constructor","_defineProperties","descriptor","protoProps","staticProps","_extends","RADIAN","PI","radianToDegree","angleInRadian","polarToCartesian","cx","cy","radius","angle","cos","sin","getAngleOfPoint","point","anotherPoint","x1","y1","y2","distanceBetweenPoints","acos","reverseFormatAngleOfSetor","startAngle","endAngle","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","inRange","_formatAngleOfSector","formatAngleOfSector","formatAngle","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","has","newObj","hasPropertyDescriptor","desc","Layer","others","layerClass","assertThisInitialized","ReferenceError","_getPrototypeOf","getPrototypeOf","subClass","superClass","objectToCamel","caps","camelObj","fallbackGlobalObject","getGlobalObject","PlatformLoggerServiceImpl","container","getPlatformInfoString","getProviders","provider","getComponent","isVersionServiceProvider","getImmediate","library","logString","appName","_apps","_components","_addComponent","app","addComponent","debug","_registerComponent","componentName","_getProvider","heartbeatController","getProvider","optional","triggerHeartbeat","_removeServiceInstance","instanceIdentifier","DEFAULT_ENTRY_NAME","clearInstance","ERRORS","ERROR_FACTORY","FirebaseAppImpl","_isDeleted","_options","_config","_name","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","_container","checkDestroyed","isDeleted","SDK_VERSION","initializeApp","rawConfig","existingApp","newApp","getApp","registerVersion","libraryKeyOrName","variant","PLATFORM_LOG_STRING","libraryMismatch","versionMismatch","warning","STORE_NAME","dbPromise","getDbPromise","upgradeDB","oldVersion","createObjectStore","originalErrorMessage","async","writeHeartbeatsToIndexedDB","heartbeatObject","tx","transaction","objectStore","put","computeKey","complete","appId","MAX_HEADER_BYTES","HeartbeatServiceImpl","_heartbeatsCache","_storage","HeartbeatStorageImpl","_heartbeatsCachePromise","date","toISOString","some","singleDateHeartbeat","hbTimestamp","now","overwrite","heartbeatsToSend","unsentEntries","heartbeatsCache","maxSize","heartbeatEntry","hb","dates","countBytes","extractHeartbeatsForHeader","headerString","heartbeats","deleteAll","_canUseIndexedDBPromise","runIndexedDBEnvironmentCheck","idbHeartbeatObject","readHeartbeatsFromIndexedDB","existingHeartbeats","existingHeartbeat","delete","deleteHeartbeatsFromIndexedDB","baseGet","nacl","gf","init","Float64Array","randombytes","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","h","l","vn","yi","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","inp","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","Uint16Array","pad","leftover","fin","crypto_onetimeauth","outpos","update","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","neq25519","par25519","unpack25519","A","Z","M","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","f","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","want","crypto_box_afternm","crypto_box_open_afternm","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","crypto_hash","cswap","pack","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","seeded","L","modL","crypto_sign","sm","smlen","crypto_sign_open","chk","den","den2","den4","den6","unpackneg","crypto_secretbox_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","keyLength","nonceLength","overheadLength","scalarMult","scalarLength","groupElementLength","publicKey","secretKey","checkBoxLengths","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","tmp","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hashLength","setPRNG","crypto","msCrypto","getRandomValues","_assertThisInitialized","protocols","errCode","uint8ArrayToString","uint8ArrayEquals","resolvers","symbol","Multiaddr","addr","fromBytes","isMultiaddr","bytesToString","toOptions","family","host","transport","port","protos","protoCodes","codes","sizeForAddr","protoNames","proto","tuples","bytesToTuples","stringTuples","tuplesToStringTuples","encapsulate","decapsulate","addrString","decapsulateCode","tuplesToBytes","getPeerId","tuple","names","ipfs","peerIdStr","parse","getPath","resolvableProto","resolvable","resolver","nodeAddress","parts","address","isThinWaistAddress","ip","multiaddr","assert","inherits","BN","endian","isBN","words","red","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","total","word","imuln","_iaddn","dest","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","ncarry","rword","maxJ","padding","groupSize","groupBase","modn","idivn","toBuffer","toArrayLike","ArrayType","reqLength","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","a1","a2","a3","a4","a5","a6","a7","a8","al8","ah8","a9","al9","ah9","bl8","bh8","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","divmod","divn","umod","divRound","dm","half","acc","egcd","B","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","delta","cmpn","invm","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","mod3","one","nOne","lpow","inv","wnd","current","currentLen","mont","replacementFactory","original","wrapped","markFunctionWrapped","_Oo","addNonEnumerableProperty","getOriginalFunction","func","urlEncode","encodeURIComponent","getWalkSource","_oO","currentTarget","CustomEvent","detail","jsonSize","encodeURI","utf8Length","normalizeToSize","depth","serialized","makeSerializable","_events","document","walk","unmemoize","serializable","serializeValue","innerKey","innerValue","extractExceptionKeysForMessage","exception","maxLength","sort","includedKeys","dropUndefinedKeys","rv","linearish","tickFormat","specifier","nice","prestep","i0","i1","stop","maxIter","tickIncrement","linear","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","getOwnPropertyNames","isUndefined","isDate","extend","createUTC","format","locale","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","isNowValid","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","momentProperties","updateInProgress","copyConfig","prop","_isAMomentObject","_f","_l","_tzm","_isUTC","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","firstTime","deprecationHandler","deprecations","deprecateSimple","isFunction","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","dd","ww","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","month","daysInMonth","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","positiveMomentsDifference","isAfter","isBefore","createAdder","period","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","toDate","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","commonjsGlobal","globalThis","esm","goog","aa","ba","ea","random","fa","ha","bind","ia","ja","Vb","la","na","da","ma","qa","ra","sa","ta","va","wa","xa","ya","za","Aa","Ca","Na","Ha","Ia","Ja","Ka","La","Ma","documentMode","Oa","Pa","Qa","Sa","Ga","Ra","Fa","Ta","Ua","Va","addEventListener","removeEventListener","defaultPrevented","relatedTarget","button","screenY","screenX","clientY","clientX","metaKey","shiftKey","altKey","ctrlKey","pointerId","pointerType","changedTouches","srcElement","nodeName","fromElement","toElement","pageX","pageY","Wa","preventDefault","returnValue","Xa","Ya","listener","proxy","capture","ca","Za","$a","bb","splice","ab","cb","db","fb","gb","ib","jb","mb","kb","attachEvent","lb","O","nb","ob","detachEvent","pb","handleEvent","qb","sb","tb","Ab","vb","wb","reset","yb","zb","Db","Bb","Cb","Eb","Fb","Gb","Hb","Ib","super","Jb","Kb","Lb","Mb","F","info","Pb","H","Rb","Sb","Tb","Ub","STAT_EVENT","stat","J","Wb","NO_ERROR","xb","TIMEOUT","Xb","Yb","Zb","$b","cc","OPEN","ac","bc","dc","V","ec","$","U","fc","XMLHttpRequest","gc","hc","ic","jc","kc","lc","mc","nc","G","Nb","qc","Ba","tc","vc","sc","wc","rc","xc","eb","pc","uc","abort","yc","zc","Ac","Bc","Cc","ka","Q","Da","Ea","getResponseHeader","Set","Dc","R","oa","Ec","Fc","Gc","Hc","Ic","Kc","T","Jc","Lc","ga","oc","TextDecoder","stream","Ob","cancel","Qb","Mc","Oc","Pc","Qc","Rc","Sc","Tc","Zc","Uc","$c","decodeURI","decodeURIComponent","cd","Vc","Wc","Xc","Yc","Nc","ed","gd","hd","PerformanceNavigationTiming","performance","getEntriesByType","nextHopProtocol","jd","kd","ld","md","od","onload","onabort","ontimeout","pd","readyState","status","responseType","responseText","response","statusText","onreadystatechange","Headers","clear","ud","td","send","headers","credentials","body","fetch","Request","arrayBuffer","ReadableStream","getReader","text","setRequestHeader","getAllResponseHeaders","entries","vd","wd","pa","zd","Cd","Dd","Ed","protocol","Ad","mozResponseArrayBuffer","Gd","Fd","Hd","internalChannelParams","Id","xmlHttpFactory","supportsCrossDomainXhr","concurrentRequestLimit","fastHandshake","forceLongPolling","detectBufferingProxy","Jd","Kd","sendBeacon","Image","Ld","Md","Qd","Pd","Od","Rd","Nd","nd","ad","bd","hostname","Sd","Td","messageUrlParams","messageHeaders","clientProtocolHeaderRequired","initMessageHeaders","messageContentType","httpHeadersOverwriteParam","sendRawJson","httpSessionIdParam","Ud","__sm__","Vd","FormData","withCredentials","Bd","__data__","createWebChannel","HTTP_ERROR","COMPLETE","EventType","CLOSE","ERROR","MESSAGE","listen","listenOnce","getLastError","getLastErrorCode","getStatus","getResponseJson","getResponseText","createWebChannelTransport","getStatEventTarget","ErrorCode","Stat","ub","PROXY","NOPROXY","FetchXmlHttpFactory","WebChannel","XhrIo","_inheritsLoose","eventCenter","EventEmitter","setMaxListeners","SYNC_EVENT","charMap","replacement","slug","ch","appendChar","remove","lower","customMap","isAbsolute","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","hashIndex","searchIndex","parsePath","URIError","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","isArrayBuffer","isFormData","isArrayBufferView","isFile","isBlob","isStream","pipe","isURLSearchParams","isStandardBrowserEnv","product","merge","assignValue","thisArg","stripBOM","content","condition","_classCallCheck","_createClass","Type","major","terminal","majorEncoded","typ","uint","negint","float","false","true","null","break","Token","encodedLength","encodedBytes","byteValue","impl","AbortController","AbortSignal","equal","utils","minAssert","minUtils","zero2","getNAF","naf","getJSF","k1","k2","jsf","m8","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","stringCache","widthCache","SPAN_STYLE","top","border","whiteSpace","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","getStringSize","Global","isSsr","styleString","measurementSpan","getElementById","setAttribute","appendChild","measurementSpanStyle","styleKey","textContent","rect","getBoundingClientRect","getOffset","html","ownerDocument","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","calculateChartCoordinate","chartX","chartY","isNodeEnv","dynamicRequire","loadModule","moduleName","instances","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","_logLevel","_logHandler","_userLogHandler","setLogLevel","logHandler","userLogHandler","inst","setUserLogHandler","logCallback","customLogLevel","ignored","ErrClass","renderRadialLabel","labelProps","label","attrs","labelAngle","viewBox","clockWise","deltaAngle","getDeltaAngle","startPoint","endPoint","dominantBaseline","xlinkHref","Label","_props$className","textBreakAll","cloneElement","getLabel","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","_x","textAnchor","verticalAnchor","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","Text","breakAll","defaultProps","parseViewBox","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","_console","alreadyWarned","warnOnce","loadNamespaces","i18n","ns","isInitialized","initialized","hasLoadedNamespace","languages","lng","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","bindI18n","backend","isLanguageChangingTo","hasResourceBundle","dateTimestampSource","nowSeconds","platformPerformance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","timestampWithMs","browserPerformanceTimeOrigin","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","decodeErrPrefix","uintMinorPrefixBytes","assertEnoughData","need","encodeErrPrefix","normaliseInput_browser","multipartRequest","abortController","formData","normaliseInput","fileSuffix","fieldName","qs","File","anySignal","signals","abortSignal","isSurrogatePair","htonl","zero8","enc","toHex32","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","cl","dh","dl","sum64_4_lo","sum64_5_hi","eh","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","_interopRequireDefault","formatTime","guide","gm","gh","isVideoChild","mergeAndSortChildren","defaultChildren","_children","_parentProps","defaultOrder","_react","_objectWithoutProperties2","disabled","isTypeEqual","defaultComponent","_objectSpread2","deprecatedWarning","oldMethodCall","newMethodCall","throttle","_arguments","wait","_toConsumableArray2","mediaProperties","component1","component2","type1","type2","freeGlobal","freeSelf","root","MAX_BYTES","MAX_UINT32","generated","formatDecimalParts","formatAxisMap","axisMap","chartName","ids","steps","leftMirror","rightMirror","topMirror","bottom","bottomMirror","calculatedPadding","needSpace","orientation","_axis$padding","mirror","reversed","offsetKey","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","gap","halfBand","_parseScale","finalAxis","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","coord","_mapValues","isInRange","_every","INSTANCE_MAP","OBSERVER_MAP","observe","rootId","rootMargin","observerId","observerInstance","IntersectionObserver","onChange","visible","observer","unobserve","itemsLeft","disconnect","changes","intersection","isIntersecting","intersectionRatio","_inView","InView","_React$Component","_this","inView","observeNode","_proto","componentDidUpdate","prevState","triggerOnce","_this$props","handleChange","_this$props2","_this$state","renderMethod","ref","handleNode","ImageState","LazyImageFullState","unionize","NotAsked","Buffering","Loading","LoadSuccess","LoadError","ofType","Action","ViewChanged","BufferingEnded","getLoadingCmd","imageProps","experimentalDecode","loadingPromise","makeCancelable","loadImage","isCanceled","promiseCache","loading","cancelBufferingCmd","buffering","_super","initialState","tslib_1.__extends","LazyImageFull","debounceDurationMs","cmd","durationMs","bufferingPromise","delayedPromise","debugActions","loadEagerly","observerProps","imageState","Observer","srcSet","alt","sizes","image","srcset","hasCanceled_","LazyImage","placeholder","instanceFactory","multipleInstances","serviceProps","instantiationMode","onInstanceCreated","setInstantiationMode","setMultipleInstances","setServiceProps","setInstanceCreatedCallback","Provider","instancesDeferred","instancesOptions","onInitCallbacks","identifier","normalizedIdentifier","normalizeInstanceIdentifier","deferred","shouldAutoInitialize","getOrInitializeService","setComponent","isComponentEager","instanceDeferred","all","INTERNAL","_delete","isComponentSet","getOptions","initialize","onInit","existingCallbacks","existingInstance","invokeOnInitCallbacks","callbacks","ComponentContainer","providers","addOrOverwriteComponent","baseX$1","Encoder","baseEncode","Decoder","baseDecode","ComposedDecoder","decoders","Codec","baseX","alphabet","rfc4648","bitsPerChar","written","SyntaxError","common","uintBoundaries","BigInt","readUint8","readUint16","readUint32","readUint64","allowBigInt","encodeUint","encodeUintValue","nuint","buint","encodedSize","compareTokens","tok1","tok2","decodeUint16","_minor","decodeUint32","decodeUint64","decodeUint8","coefficient","toLocaleString","useLatest","storedValue","useDebounceCallback","leading","storedCallback","deps","useDebounce","useEvent","storedListener","storedCleanup","targetEl","didUnsubscribe","emptyObj","win","getSize","clientWidth","clientHeight","useWindowSize","initialWidth","initialHeight","setDebouncedSize","setSize","useWindowHeight","useWindowWidth","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","query","arrayFormat","arrayFormatSeparator","accumulator","isEncodedArray","newValue","arrayValue","parserForArrayFormat","param","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","i18nInstance","defaultOptions","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","namespaces","getI18n","initReactI18next","setDefaults","react","setI18n","_interopRequireWildcard","_Player","_Video","_BigPlayButton","_LoadingSpinner","_PosterImage","_Slider","_Bezel","_Shortcut","_ControlBar","_PlayToggle","_ForwardControl","_ReplayControl","_FullscreenToggle","_ProgressControl","_SeekBar","_PlayProgressBar","_LoadProgressBar","_MouseTimeDisplay","_VolumeMenuButton","_PlaybackRateMenuButton","_PlaybackRate","_ClosedCaptionButton","_RemainingTimeDisplay","_CurrentTimeDisplay","_DurationDisplay","_TimeDivider","_MenuButton","_reducers","playerReducer","operationReducer","videoActions","playerActions","assertPath","normalizeStringPosix","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","posix","resolvedPath","resolvedAbsolute","trailingSeparator","joined","relative","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","_makeLong","dirname","hasRoot","matchedSlash","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","pathObject","sep","_format","delimiter","win32","MdHomeFilled","MdVideoSettings","MdOutlineAccountCircle","MdOutlineLogin","MdOutlineLogout","MdOutlinePaid","MdOutlineRuleFolder","MdOutlineUploadFile","defaultLocale","localesData","lowercaseLocaleLookup","localeMatcher","resolveLocaleLookup","resolvedLocale","resolveLocaleForData","af","am","n100","ast","v0","be","n10","br","n1000000","bs","i10","i100","f10","f100","ceb","cs","dsb","dz","es","i1000000","ff","fr","he","is","it","ksh","lv","mk","mt","pl","pt","ru","se","sl","getPluralRulesLocale","languageTag","getLanguageFromLanguageTag","LANGUAGE_REG_EXP","PluralRules","PluralRuleFunctions","UNITS","NUMERIC_VALUES","STYLE_VALUES","LOCALE_MATCHER_VALUES","RelativeTimeFormat","numeric","styleFallback","getDefaultLocale","Intl","numberFormat","resolvedOptions","resolveLocale","styles","getLocaleData","parseFormatArgs","getRule","formatNumber","rule","valueIndex","formatNumberToParts","unitMessages","pluralizedMessages","isNegativeZero","pluralRules","select","formatToParts","numberingSystem","UNIT_ERROR","parseUnit","parseNumber","Cache","lastKey","isLocaleDataAvailable","intlDateTimeFormatSupported","isStyleObject","OBJECT_CONSTRUCTOR","getSecondsInUnit","getStepDenominator","getRoundFunction","getDiffRatioToNextRoundedNumber","getStepMinTime","prevStep","timestamp","minTime","getMinTimeForUnit","fromUnit","toUnitAmount","fromUnitAmount","getStep","secondsPassed","getNextStep","formatAs","filterStepsByUnits","getStepIndex","secondsPassedGranular","_getStep","unitDenominator","preciseAmount","roundedAmount","getDiffToPreviousRoundedNumber","getDiffToNextRoundedNumber","INFINITY","getTimeToNextUpdate","nextStep","getTimeToNextUpdateForUnit","_getTimeToNextUpdateForUnit","timeToStepChange","stepChangesAt","currentOrNextStep","getStepChangesAt","getTimeToStepChange","timeToNextUpdate","labels","factor","threshold_for_now","granularity","threshold_for_minute","gradation","flavour","formatters","monthAndDay","yearMonthAndDay","twitter","twitterMinute","mini","miniMinute","TimeAgo","polyfill","RelativeTimeFormatPolyfill","variable","getStyleByName","getTimestamp","getLabels","labelsType","nowLabel","nowLabels","longLabels","getNowLabel","custom","elapsed","allowedUnits","getTimeIntervalMeasurementUnits","defaultStyle","formattedDate","formatDateForStep","amount","valueForFormatting","getFormatter","formatValue","getFormattingRule","formattingRules","quantifierRules","getPluralRules","relativeTimeFormatCache","pluralRulesCache","_labelsType","defaultLocaleHasBeenSpecified","addLocaleData","fromHex","hex","hexes","TextEncoder","isBinary","byte","padStart","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","_flush","getRawTag","symToStringTag","baseMatches","baseMatchesProperty","maxlen","spans","_maxlen","span","spanRecorder","spanContext","traceId","spanId","startTimestamp","tags","parentSpanId","sampled","op","description","endTimestamp","startChild","childSpan","Span","setTag","setData","setStatus","setHttpStatus","httpStatus","spanStatus","spanStatusfromHttpCode","isSuccess","toTraceparent","sampledString","toContext","updateWithContext","getTraceContext","parent_span_id","span_id","trace_id","start_timestamp","isDebugBuild","__SENTRY_NO_DEBUG__","__SENTRY_BROWSER_BUNDLE__","isBrowserBundle","encodeCache","keepEscaped","nextCode","defaultChars","getEncodeCache","componentChars","Diagnose","Simple","Tagged","decodeAll","diagnose","leveldb","__makeTemplateObject","cooked","raw","__createBinding","__setModuleDefault","__importStar","templateObject_1","templateObject_2","react_1","helpers_1","clip","keyframes","Loader","speedMultiplier","css","cssValue","jsx","sizeDefaults","PureComponent","isObjectLike","setRafTimeout","currTime","shouldUpdate","raf","_toArray","createAnimateManager","shouldStop","setStyle","_style","_styles","curr","restStyles","subscribe","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","mapObject","translateStyle","isTransition","camelName","styleVal","generatePrefixStyle","getTransitionVal","easing","ACCURACY","cubicBezierFactor","multyTime","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","alpha","needContinue","calStepperVals","preVals","nextStepVals","_easing2","velocity","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","currStyle","finalStyle","caf","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","Animate","_PureComponent","_inherits","attributeName","handleStyleChange","changeStyle","canBegin","mounted","runAnimation","_this$props3","shouldReAnimate","isTriggered","manager","stopJSAnimation","_newState","newState","unSubscribe","_this2","onAnimationEnd","onAnimationStart","startAnimation","configUpdate","configEasing","_this3","_steps$","initialStyle","_steps$$duration","initialTime","sequence","nextItem","_nextItem$easing","nextProperties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","onAnimationReStart","stateStyle","cloneContainer","_container$props","_container$props$styl","only","propTypes","PropTypes","oneOfType","arrayOf","shape","isRequired","oneOf","bool","parseDurationOfSingleTransition","AnimateGroupChild","_Component","handleEnter","isAppearing","appearOptions","enterOptions","handleStyleActive","handleExit","leaveOptions","Transition","onEnter","onExit","parseTimeout","AnimateGroup","appear","enter","leave","TransitionGroup","any","vendors","_now","cp","cancelled","handle","requestAnimationFrame","cancelAnimationFrame","uuid4","fragment","getFirstException","getEventDescription","event_id","firstException","eventId","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","checkOrSetAlreadyCaught","__sentry_captured__","bases","util","ifNotSet","newError","CustomError","captureStackTrace","asPromise","inquire","utf8","pool","LongBits","emptyArray","freeze","emptyObject","isset","isSet","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","Long","dcodeIO","key2Re","key32Re","key64Re","longToHash","toHash","zeroHash","longFromHash","unsigned","fromHash","fromBits","lcFirst","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","json","_configure","ReflectOwnKeys","ReflectApply","receiver","NumberIsNaN","emitter","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","existing","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","wrapListener","getMaxListeners","doError","er","originalListener","rawListeners","eventNames","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","utf8CheckExtraBytes","utf8CheckIncomplete","pna","objectKeys","Duplex","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","baseIsNative","getValue","traceHeaders","scope","getScope","getSpan","sample","samplingContext","setMetadata","transactionSampling","tracesSampler","sampleRate","rate","parentSampled","tracesSampleRate","isValidSampleRate","_startTransaction","transactionContext","customSamplingContext","client","getClient","initSpanRecorder","_experiments","maxSpans","startIdleTransaction","hub","idleTimeout","onScope","addExtensionMethods","carrier","extensions","startTransaction","_addTracingExtensions","packageToIntegrationMapping","mongodb","Mongo","mongoose","mysql","Mysql","pg","Postgres","mappedPackages","pkg","integrations","_autoloadDatabaseIntegrations","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","required","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","isSpecial","ignore","lolcation","loc","finaldestination","Url","unescape","scheme","extractProtocol","forwardSlashes","otherSlashes","slashesCount","parser","extracted","instruction","instructions","username","password","auth","origin","char","ins","upperFirst","createCaseFirst","BREAKING_SPACES","calculateWordWidths","wordsWithComputedWidth","spaceWidth","getWordsWithoutCalculate","getWordsByLines","needCalculate","scaleToFit","wordWidths","initialWordsWithComputedWith","lineWidth","shouldLimitLines","maxLines","calculate","currentLine","newLine","originalResult","trimmedResult","tempText","doesOverflow","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","prevWidth","prevScaleToFit","prevStyle","prevBreakAll","wordsByLines","dx","dy","lineHeight","capHeight","textProps","startDy","reduceCSSCalc","transforms","line","snipLine","colno","lineLength","safeJoin","isMatchingPattern","pattern","_Modal","_Modal2","webpackPolyfill","paths","sizeOffset","digestOffset","createErrorType","Base","NodeError","_Base","getMessage","expected","determiner","this_len","endsWith","getBuffer","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","accum","assigned","lowBits","highBits","_hash","DEFAULT_IDLE_TIMEOUT","_pushActivity","_popActivity","transactionSpanId","_idleHub","_idleTimeout","_onScope","activities","_heartbeatCounter","_finished","_beforeFinishCallbacks","clearActiveTransaction","configureScope","setSpan","_initTimeout","keepSpan","registerBeforeFinishCallback","IdleTransactionSpanRecorder","_pingHeartbeat","_beat","heartbeatString","_prevHeartbeatString","getTransaction","_measurements","_hub","metadata","_trimEnd","trimEnd","setName","setMeasurements","measurements","newMetadata","finishedSpans","contexts","trace","sdkProcessingMetadata","captureEvent","getTransport","recordLostEvent","objectWithoutPropertiesLoose","multibases","multicodecs","multihashes","dagPB","dagCBOR","basics","index$1","index$2","index$3","index$4","index$5","index$6","index$7","index$8","index$9","index$a","index$b","index$c","index$d","index$e","index$f","index$g","index$h","addAll","cat","commands","dns","getEndpointConfig","isOnline","ls","mount","ping","globSourceImport","urlSource_js","_interopDefaultLegacy","_interopNamespace","dagPB__namespace","dagCBOR__namespace","globSourceImport__default","urlSource_js__default","globSource","id$1","multibaseCodecs","ipld","multibases$1","Multibases","loadBase","blockCodecs","codecs","multicodecs$1","Multicodecs","loadCodec","multihashHashers","hashes","hashers","hasher","multihashes$1","Multihashes","loadHasher","createAdd","createAddAll","bitswap","createBitswap","createBlock","bootstrap","createBootstrap","createCat","createCommands","createConfig","dag","createDag","dht","createDht","diag","createDiag","createDns","files","createFiles","createGet","createGetEndpointConfig","createId","createIsOnline","createLog","createLs","createMount","createName","createObject","pin","createPin","createPing","pubsub","createPubsub","refs","createRefs","repo","createRepo","createResolve","createStart","stats","createStats","createStop","swarm","createSwarm","createVersion","useEffect","getMobileDetect","isAndroid","isIos","isSSR","isMobile","isDesktop","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","collection","iteratees","Dot","_bytesRead","_bytesWrote","bytesRead","bytesWrote","createRange","baseIteratee","baseUniq","iteratee","DEFAULT_HOST","prependCode","customData","serverResponse","_baseMessage","_codeEquals","canceled","cannotSliceBlob","appDeleted","internalError","Location","bucket","path_","isRoot","fullServerUrl","bucketOnlyServerUrl","bucketString","bucketLocation","makeFromUrl","bucketDomain","gsRegex","httpModify","firebaseStorageHost","groups","indices","postModify","captures","bucketValue","pathValue","invalidUrl","FailRequest","promise_","getPromise","isNativeBlob","isNativeBlobDefined","Blob","validateNumber","argument","minValue","maxValue","makeUrl","urlPart","makeQueryString","queryPart","NetworkRequest","method_","headers_","body_","successCodes_","additionalRetryCodes_","callback_","errorCallback_","timeout_","progressCallback_","connectionFactory_","pendingConnection_","backoffId_","canceled_","appDelete_","resolve_","reject_","start_","doTheRequest","backoffCallback","RequestEndStatus","connection","progressListener","progressEvent","loaded","lengthComputable","addUploadProgressListener","removeUploadProgressListener","hitServer","getErrorCode","isRetryStatusCode_","wasCanceled","ABORT","successCode","backoffDone","requestWentThrough","wasSuccessCode","getResponse","getErrorText","waitSeconds","retryTimeoutId","globalTimeoutId","hitTimeout","cancelState","triggeredCallback","triggerCallback","callWithDelay","millis","clearGlobalTimeout","success","waitMillis","stopped","wasTimeout","appDelete","isFiveHundredCode","isExtraRetryCode","isRequestSpecificRetryCode","getBlobBuilder","BlobBuilder","WebKitBlobBuilder","getBlob","StringFormat","StringData","contentType","dataFromString","stringData","utf8Bytes_","base64Bytes_","dataUrl","DataURLParts","decoded","percentEncodedBytes_","dataURLBytes_","hasMinus","hasUnder","hasPlus","hasSlash","dataURL","FbsBlob","elideCopy","blobType","data_","size_","type_","startByte","endByte","sliced","blob","webkitSlice","mozSlice","sliceBlob","blobby","uint8Arrays","finalLength","merged","uploadData","jsonObjectOrNull","lastComponent","noXform_","Mapping","server","xform","mappings_","getMappings","mappings","nameMapping","_metadata","fullPath","xformPath","sizeMapping","fromResource","resource","mapping","_makeStorageReference","addRef","fromResourceString","resourceString","toResourceString","RequestInfo","urlParams","errorHandler","progressCallback","successCodes","additionalRetryCodes","handlerCheck","cndn","metadataHandler","xhr","downloadUrlHandler","downloadUrlFromResourceString","_protocol","sharedErrorHandler","newErr","objectErrorHandler","shared","getMetadata","maxOperationRetryTime","requestInfo","metadataForUpload_","metadataClone","determineContentType_","multipartUpload","boundary","genBoundary","metadata_","preBlobPart","postBlobPart","maxUploadRetryTime","ResumableUploadStatus","finalized","checkResumeHeader_","allowed","RESUMABLE_UPLOAD_CHUNK_SIZE","continueResumableUpload","chunkSize","status_","bytesLeft","bytesToUpload","uploadStatus","newCurrent","TaskState","taskStateFromInternalTaskState","nextOrObserver","argsToForward","XhrConnection","sent_","xhr_","initXhr","errorCode_","sendPromise_","NETWORK_ERROR","header","upload","XhrTextConnection","newTextConnection","UploadTask","_transferred","_needToFetchStatus","_needToFetchMetadata","_observers","_error","_uploadUrl","_request","_chunkMultiplier","_resolve","_reject","_blob","_mappings","_resumable","_shouldDoResumable","_state","_errorHandler","completeTransitions_","_transition","_metadataErrorHandler","_promise","_start","_makeProgressCallback","sizeBefore","_updateProgress","_createResumable","_fetchStatus","_fetchMetadata","_continueUpload","_oneShotUpload","_resolveToken","storage","_getAuthToken","_getAppCheckToken","authToken","appCheckToken","metadataForUpload","createResumableUpload","_location","createRequest","_makeRequest","sizeString","getResumableUploadStatus","statusRequest","uploadRequest","newStatus","_increaseMultiplier","metadataRequest","transferred","old","_notifyObservers","wasPaused","snapshot","externalState","bytesTransferred","totalBytes","task","completed","_addObserver","_removeObserver","onFulfilled","onRejected","_notifyObserver","_finishPromise","triggered","fbsAsync","resume","valid","pause","Reference","_service","_newRef","parent","newPath","_throwIfRoot","invalidRootOperation","getDownloadURL","requestsGetDownloadUrl","makeRequestWithTokens","_getChild","childPath","canonicalChildPath","refFromPath","FirebaseStorageImpl","_bucket","reference","serviceOrRef","pathOrUrl","extractBucket","makeFromBucketSpec","_authProvider","_appCheckProvider","_url","_firebaseVersion","_host","_appId","_deleted","_maxOperationRetryTime","_maxUploadRetryTime","_requests","POSITIVE_INFINITY","_overrideAuthToken","tokenData","getToken","accessToken","appCheck","requestFactory","firebaseVersion","addGmpidHeader_","addAuthHeader_","addVersionHeader_","addAppCheckHeader_","makeRequest","STORAGE_TYPE","uploadBytesResumableInternal","getDownloadURLInternal","refInternal","CartesianAxis","tick","minTickGap","interval","tickFormatter","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tail","tailContent","tailSize","tailGap","tickCoord","isShow","option","restProps","viewBoxOld","restPropsOld","tickSize","tickMargin","finalTickSize","_this$props5","axisLine","needHeight","needWidth","_this$props6","tickLine","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","_this$props7","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","_version","_stack","getStackTop","bindClient","isOlderThan","setupIntegrations","pushScope","getStack","popScope","withScope","captureException","_lastEventId","finalHint","syntheticException","originalException","_invokeClient","captureMessage","lastEventId","addBreadcrumb","breadcrumb","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","user","setTags","setExtras","extras","setExtra","extra","setContext","oldHub","makeMain","getIntegration","integration","startSpan","_callExtensionMethod","captureSession","endSession","_sendSessionUpdate","layer","session","getSession","setSession","startSession","release","environment","getUser","currentSession","getMainCarrier","sentry","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","Hub","activeDomain","active","registryHubTopStack","getHubFromActiveDomain","globalObject","BigNumber","isNumeric","mathceil","bignumberError","tooManyDigits","LOG_BASE","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","intCheck","toFixedPoint","configObject","convertBase","parseNumeric","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","ALPHABET","alphabetHasNormalDecimalDigits","caseChanged","isNum","_isBigNumber","ne","maxOrMin","normalise","ni","pows10","EUCLID","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","minimum","pow2_53","random53bitInt","rand","Uint32Array","decimal","toBaseOut","baseIn","baseOut","arrL","callerIsToString","multiply","xlo","xhi","klo","khi","more","yc0","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","exponentiatedBy","isModExp","nIsBig","nIsNeg","nIsOdd","integerValue","isEqualTo","isGreaterThan","isGreaterThanOrEqualTo","isLessThan","isLessThanOrEqualTo","ye","multipliedBy","xcL","ycL","ylo","yhi","sqrtBase","shiftedBy","rep","toFormat","g1","g2","intPart","fractionPart","intDigits","toFraction","n0","n1","useBuffer","textDecoder","textEncoder","asU8A","chunks","toBytes","fromArray","MD5","RIPEMD160","sha","isBoolean","isNull","isNullOrUndefined","isSymbol","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","Reporter","DecoderBuffer","EncoderBuffer","reporter","isEncoderBuffer","isDecoderBuffer","save","restore","isEmpty","skip","fail","_reporterState","isLength","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","implicit","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","Surface","svgView","numbers","valueof","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","isInRectangle","px","py","minX","maxX","minY","maxY","Rectangle","totalLength","getTotalLength","animationEasing","animationDuration","animationBegin","isAnimationActive","isUpdateAnimationActive","currWidth","currHeight","currY","getEncodedValue","allowEmptyString","StringParam","Serialize","updateLocation","encodedQuery","stringifyOptions","encodedSearchString","transformSearchString","objA","objB","equalMap","_b","keysA","keysB","isEqual","useUpdateRefIfShallowNew","hasNew","getSSRSafeSearchString","createLocationWithChanges","queryReplacements","updateType","encodedQueryReplacements","currQuery","parseQueryString","updateInLocation","LocationContext","getLocation","setLocation","useLocationContext","LocationProvider","locationRef","updateUrlQuery","sharedMemoizedQueryParser","initialSearchString","cachedSearchString","cachedParsedQuery","newSearchString","makeMemoizedQueryParser","getLatestDecodedValue","paramConfig","paramConfigRef","encodedValueCacheRef","decodedValueCacheRef","hasNewParamConfig","isValueEqual","parsedQuery","hasNewEncodedValue","encodedValue","newDecodedValue","useQueryParam","decodedValue","setValueDeps","setValueDepsRef","setValue","newEncodedValue","latestValue","cachedWindowHistory","cachedAdaptedWindowHistory","cachedReachHistory","cachedAdaptedReachHistory","adaptReachHistory","adaptedReachHistory","getLocationProps","adaptedWindowHistory","adaptWindowHistory","QueryParamProvider","ReactRouterRoute","reachHistory","stringifyOptionsRef","stringifyOptionsCached","routeProps","_context","bezierCurveTo","_x0","_x1","_y0","_y1","Basis","areaStart","_line","areaEnd","lineStart","_point","lineEnd","lineTo","closePath","moveTo","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","y0","LinearClosed","Linear","slope3","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","_t0","_y","Step","defined","curve","curveLinear","defined0","pointX","pointY","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","Curve","lineFunction","points","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","pathRef","realPath","pi","atan2","tau","draw","arc","tan30","tan30_2","kr","kx","ky","sqrt3","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","Symbols","sizeType","symbolFactory","getSymbolFactory","circle","shapeSymbol","tan","calculateAreaSize","registerSymbol","SIZE","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","strokeDasharray","legendIcon","iconProps","iconSize","itemStyle","display","marginRight","svgStyle","_classNames","finalFormatter","renderIcon","textAlign","renderItems","defaultUniqBy","getUniqPayload","_uniqBy","wrapperNode","boxWidth","boxHeight","chartWidth","updateBBox","hPos","vPos","chartHeight","getBBoxSnapshot","_this$state2","onBBoxUpdate","_box3","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","otherProps","renderContent","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","reason","executor","_handlers","_setResult","_executeHandlers","cachedHandlers","onfulfilled","onrejected","finally","onfinally","isRejected","baseExtremum","baseGt","baseLt","let","correction","mean","sumNthPowerDeviations","const","tempValue","meanValue","variance","standardDeviation","modeSorted","sorted","maxSeen","seenThis","numericSort","sumSimple","quantileSorted","idx","quickselect","quantile","quantileIndex","quantileSelect","quantileRankSorted","interquartileRange","q1","q2","median","medianAbsoluteDeviation","medianValue","medianAbsoluteDeviations","shuffleInPlace","randomSource","temporary","shuffle","makeMatrix","columns","rows","matrix","column","uniqueCountSorted","lastSeenValue","uniqueValueCount","ssq","sums","sumsOfSquares","sji","muji","fillMatrixColumn","iMin","iMax","cluster","backtrackMatrix","jlow","ssqjlow","ssqj","jhigh","sampleCovariance","xmean","ymean","sampleVariance","sampleStandardDeviation","sampleVarianceX","sampleCorrelation","combineMeans","mean1","mean2","n2","meanSimple","rootMeanSquare","sumOfSquares","BayesianClassifier","totalCount","train","category","odds","oddsSums","combination","PerceptronModel","weights","bias","predict","features","prediction","gradient","epsilon","factorial","COEFFICIENTS","LOGSQRT2PI","chiSquaredDistributionTable","SQRT_2PI","kernels","gaussian","bandwidthMethods","nrd","stddev","iqr","kernelDensityEstimation","kernel","bandwidthMethod","kernelFn","cumulativeDistribution","standardNormalTable","errorFunction","inverseErrorFunction","euclideanDistance","labelPoints","centroids","minDist","MAX_VALUE","dist","calculateCentroids","numCluster","dimension","counts","numPoints","centroid","calculateChange","groupings","numGroups","distances","meanDistanceFromPointToGroup","meanDistanceToNearestGroup","which","relativeError","tolerance","trials","probability","cumulativeProbability","cells","binomialCoefficient","maxIterations","errorTolerance","distributionType","significance","chiSquared","hypothesizedDistribution","observedFrequencies","expectedFrequencies","degreesOfFreedom","nClusters","nValues","shiftedValue","clusters","clusterRight","clusterLeft","combinations","subI","subsetCombinations","combinationList","combinationsReplacement","variance1","variance2","newMean","absZ","nClasses","theMin","theMax","breaks","breakSize","gamma","seriesDenom","reciprocalSum","oldCentroids","newCentroids","change","dataLength","sumX","sumY","sumXX","sumXY","modeCount","newCount","sampleX","sampleY","alternative","testStatistic","testStatDsn","allData","midIndex","permLeft","permRight","permTestStatistic","numExtremeTStats","indexes","permutations","swapFrom","lambda","factorialX","average","secondCentralMoment","fourthCentralMoment","xIndexes","pair","yIndexes","xRanks","yRanks","sumSquaredDeviations","sumCubedDeviations","besselsCorrection","theSampleStandardDeviation","expectedValue","difference","meanX","meanY","sampleVarianceY","weightedVariance","pooledSamples","rank","tiedRanks","replaceRanksInPlace","rankSum","defaultFormatter","DefaultTooltipContent","itemSorter","finalItemStyle","paddingTop","paddingBottom","formatted","_formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","labelFormatter","backgroundColor","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","Tooltip","getTranslate","tooltipDimension","viewBoxDimension","allowEscapeViewBox","restricted","unrestricted","translateX","translateY","filterNull","finalPayload","hasPayload","pointerEvents","visibility","useTranslate3d","cls","cursorStyle","cursor","trigger","Bignumber","MT","POS_INT","NEG_INT","BYTE_STRING","UTF8_STRING","ARRAY","MAP","TAG","SIMPLE_FLOAT","DATE_STRING","DATE_EPOCH","POS_BIGINT","NEG_BIGINT","DECIMAL_FRAC","BIGFLOAT","BASE64URL_EXPECTED","BASE64_EXPECTED","BASE16_EXPECTED","CBOR","URI","BASE64URL","BASE64","REGEXP","MIME","NUMBYTES","ZERO","TWO","FOUR","EIGHT","INDEFINITE","SIMPLE","FALSE","TRUE","NULL","UNDEFINED","SYMS","PARENT","BREAK","STREAM","SHIFT32","SHIFT16","MAX_SAFE_HIGH","NEG_ONE","TEN","OBJECT","varint$1","int","base58flickr","getGlobal","Response","encodeService","cid$1","decodePin","Name","Status","Cid","encodeAddParams","background","origins","encodeQuery","force","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","ksRow","RCON","INV_SBOX","INV_SUB_MIX","sx","AES","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","decryptBlock","m1","scrub","salt","keyBits","ivLen","keyLen","iv","used","keyStart","ivStart","BaseCurve","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","_fixedNafMul","doubles","_getDoubles","nafW","repr","jpoint","mixedAdd","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","decodePoint","pointFromX","encodeCompressed","_encode","compact","precompute","power","beta","_getBeta","_hasDoubles","dbl","asn1","aesid","fixProc","ciphers","compat","parseKeys","passphrase","subtype","ndata","stripped","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","pub_key","DSAparam","decrypt","kde","kdeparams","iters","algo","cipher","cipherText","keylen","pbkdf2Sync","createDecipheriv","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","signature","ArweaveUtils","silo_1","chunks_1","blocks_1","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","adapter","getDefaultAdapter","transformRequest","rawValue","stringifySafely","transformResponse","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","Cancel","__CANCEL__","handleFullscreenChange","isFullscreen","FULLSCREEN_CHANGE","activate","activity","PLAYER_ACTIVATE","userActivate","USER_ACTIVATE","play","operation","video","OPERATE","togglePlay","seek","forward","replay","changeRate","playbackRate","changeVolume","volume","mute","muted","toggleFullscreen","player","_fullscreen","enabled","exit","rootElement","findElPosition","parentNode","_document","docEl","scrollLeft","scrollTop","getPointerPosition","boxW","offsetWidth","boxH","offsetHeight","boxY","boxX","evtPageY","evtPageX","blurNode","reactNode","blur","focusNode","focus","hasClass","elm","arrayLikeKeys","baseKeys","isArrayLike","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","nativeCreate","getNative","isKeyable","isIndex","tickStep","formatSpecifier","precisionPrefix","formatPrefix","precisionRound","precisionFixed","createStackParser","sortedParsers","parsers","skipFirst","frames","frame","stripSentryFramesAndReverse","localStack","firstFrameFunction","function","lastFrameFunction","filename","defaultFunctionName","getFunctionName","WINDOW","JS_SHA256_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA256_NO_NODE_JS","COMMON_JS","JS_SHA256_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA256_NO_ARRAY_BUFFER","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","is224","Sha256","createMethod","nodeWrap","eval","nodeMethod","createHash","createHmacOutputMethod","HmacSha256","createHmacMethod","sharedMemory","hBytes","hashed","oKeyPad","iKeyPad","notString","lastByteIndex","finalize","maj","dataView","DataView","setUint32","innerHash","sha256","sha224","hmac","ATTRIBUTE_NAMES","TAG_NAMES","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","objectAssign","rafPolyfill","clock","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","attributes","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","removeAttribute","headElement","head","tagNodes","querySelectorAll","indexToDelete","newElement","innerHTML","styleSheet","cssText","createTextNode","existingTag","isEqualNode","removeChild","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","link","meta","noscript","script","HelmetExport","_class","_temp","HelmetWrapper","shouldComponentUpdate","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","defer","titleTemplate","peek","rewind","mappedState","Helmet","withSideEffect","renderStatic","delay","noTrailing","debounceMode","timeoutID","lastExec","clearExistingTimeout","wrapper","arrayEvery","baseEvery","predicate","guard","baseIsEqual","_CSSTransition","_ReplaceTransition","_TransitionGroup","_Transition","ReplaceTransition","CSSTransition","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log10","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","square","unsquare","radial","squared","ascending","value0","value1","invertExtent","quantiles","quantize","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","newInterval","floori","offseti","previous","getMilliseconds","getUTCSeconds","getSeconds","getMinutes","getHours","setHours","setDate","sunday","monday","tuesday","wednesday","thursday","friday","saturday","utcMinute","setUTCSeconds","utcHour","getUTCHours","utcDay","setUTCHours","setUTCDate","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","utcYear","ticker","tickIntervals","tickInterval","bisector","utcTicks","utcTickInterval","utcWeek","timeTicks","timeTickInterval","localDate","utcDate","newDate","utcFormat","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","utcTime","utcSecond","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newFormat","newParse","utcParse","formatLocale","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","__awaiter","generator","fulfilled","rejected","__generator","sent","trys","ops","verb","flatten","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","accept","messageSuffix","getTooLargeRejectionErr","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","file","isAcceptable","accepts","fileMatchSize","isDefined","allFilesAccepted","multiple","maxFiles","accepted","sizeMatch","isPropagationStopped","cancelBubble","isEvtWithFiles","dataTransfer","onDocumentDragOver","isIe","isEdge","isIeOrEdge","composeEventHandlers","canUseFileSystemAccessAPI","filePickerOptionsTypes","_excluded","_excluded2","_excluded3","_excluded4","Dropzone","_useDropzone","useDropzone","useImperativeHandle","Fragment","getFilesFromEvent","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","acceptedFiles","fileRejections","_defaultProps$options","onFileDialogOpenCb","useMemo","onFileDialogCancelCb","rootRef","useRef","inputRef","_useReducer","useReducer","reducer","_useReducer2","dispatch","onWindowFocus","dragTargetsRef","onDocumentDrop","contains","onDragEnterCb","useCallback","persist","stopPropagation","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","setFiles","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","errors","onDropCb","openFileDialog","showOpenFilePicker","handles","onKeyDownCb","keyCode","onFocusCb","onBlurCb","onClickCb","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","role","onKeyDown","onFocus","onBlur","tabIndex","onInputElementClick","getInputProps","_ref3$refKey","autoComplete","fileCount","getCropSize","mediaWidth","mediaHeight","containerWidth","containerHeight","aspect","translateSize","fittingWidth","fittingHeight","restrictPosition","mediaSize","cropSize","zoom","restrictPositionCoord","maxPosition","getDistanceBetweenPoints","pointA","pointB","getRotationBetweenPoints","computeCroppedArea","crop","limitAreaFn","rotation","croppedAreaPercentages","widthInPixels","heightInPixels","sizePixels","croppedAreaPixels","getInitialCropFromCroppedAreaPixels","mediaZoom","getZoomFromCroppedAreaPixels","cropZoom","getCenter","rotateAroundMidPoint","xMid","yMid","degrees","radian","centerX","centerY","outerBounds","naturalWidth","naturalHeight","hasWheelJustStarted","initialCroppedAreaPixels","mediaRef","imageRef","videoRef","Cropper","passive","offsetX","offsetY","requestedPosition","newPosition","pixelY","normalizeWheel","newZoom","onInteractionStart","onInteractionEnd","zoomPoint","zoomTarget","cropData","containerRef","center","distance","newRotation","mediaProps","cropShape","showGrid","_c","containerStyle","cropAreaStyle","mediaStyle","containerClassName","cropAreaClassName","mediaClassName","objectFit","onMouseDown","onTouchStart","onLoad","onMediaLoad","autoPlay","loop","onLoadedMetadata","controls","maxZoom","minZoom","zoomSpeed","zoomWithScroll","touch","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","Scope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","fingerprint","setLevel","setTransactionName","setTransaction","captureContext","updatedScope","maxCrumbs","clearBreadcrumbs","applyToEvent","transactionName","_applyFingerprint","breadcrumbs","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","processor","globalEventProcessors","addGlobalEventProcessor","b2b","b2s","blake2b","blake2bHex","blake2bInit","blake2bUpdate","blake2bFinal","blake2s","blake2sHex","blake2sInit","blake2sUpdate","blake2sFinal","modules","installedModules","__webpack_require__","moduleId","Events","EE","evt","clearEvent","handlers","ee","prefixed","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","buildAbsoluteURL","baseURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","normalizePath","buildURLFromParts","relativeParts","baseParts","netLoc","pathParts","builtParts","baseURLPath","webpackBootstrapFunc","oe","ENTRY_MODULE","moduleNameReqExp","dependencyRegExp","quoteRegExp","getModuleDependencies","sources","queueName","retval","fnString","wrapperSignature","webpackRequireName","hasValuesInQueues","queues","hasValues","main","requiredModules","modulesQueue","seenModules","moduleToCheck","newModules","newModulesKeys","getRequiredModules","entryModule","bare","workerUrl","URL","webkitURL","mozURL","msURL","createObjectURL","worker","Worker","objectURL","__webpack_exports__","hlsDefaultConfig","mergeConfig","enableStreamingMode","_controller_abr_controller__WEBPACK_IMPORTED_MODULE_0__","_controller_audio_stream_controller__WEBPACK_IMPORTED_MODULE_1__","_controller_audio_track_controller__WEBPACK_IMPORTED_MODULE_2__","_controller_subtitle_stream_controller__WEBPACK_IMPORTED_MODULE_3__","_controller_subtitle_track_controller__WEBPACK_IMPORTED_MODULE_4__","_controller_buffer_controller__WEBPACK_IMPORTED_MODULE_5__","_controller_timeline_controller__WEBPACK_IMPORTED_MODULE_6__","_controller_cap_level_controller__WEBPACK_IMPORTED_MODULE_7__","_controller_fps_controller__WEBPACK_IMPORTED_MODULE_8__","_controller_eme_controller__WEBPACK_IMPORTED_MODULE_9__","_controller_cmcd_controller__WEBPACK_IMPORTED_MODULE_10__","_utils_xhr_loader__WEBPACK_IMPORTED_MODULE_11__","_utils_fetch_loader__WEBPACK_IMPORTED_MODULE_12__","_utils_cues__WEBPACK_IMPORTED_MODULE_13__","_utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_14__","_utils_logger__WEBPACK_IMPORTED_MODULE_15__","autoStartLoad","startPosition","defaultAudioCodec","capLevelOnFPSDrop","capLevelToPlayerSize","initialLiveManifestSize","maxBufferLength","backBufferLength","maxBufferSize","maxBufferHole","highBufferWatchdogPeriod","nudgeOffset","nudgeMaxRetry","maxFragLookUpTolerance","liveSyncDurationCount","liveMaxLatencyDurationCount","liveSyncDuration","liveMaxLatencyDuration","maxLiveSyncPlaybackRate","liveDurationInfinity","liveBackBufferLength","maxMaxBufferLength","enableWorker","enableSoftwareAES","manifestLoadingTimeOut","manifestLoadingMaxRetry","manifestLoadingRetryDelay","manifestLoadingMaxRetryTimeout","startLevel","levelLoadingTimeOut","levelLoadingMaxRetry","levelLoadingRetryDelay","levelLoadingMaxRetryTimeout","fragLoadingTimeOut","fragLoadingMaxRetry","fragLoadingRetryDelay","fragLoadingMaxRetryTimeout","startFragPrefetch","fpsDroppedMonitoringPeriod","fpsDroppedMonitoringThreshold","appendErrorMaxRetry","loader","fLoader","pLoader","xhrSetup","licenseXhrSetup","licenseResponseCallback","abrController","bufferController","capLevelController","fpsController","stretchShortVideoTrack","maxAudioFramesDrift","forceKeyFrameOnDiscontinuity","abrEwmaFastLive","abrEwmaSlowLive","abrEwmaFastVoD","abrEwmaSlowVoD","abrEwmaDefaultEstimate","abrBandWidthFactor","abrBandWidthUpFactor","abrMaxWithRealBitrate","maxStarvationDelay","maxLoadingDelay","minAutoBitrate","emeEnabled","widevineLicenseUrl","drmSystemOptions","requestMediaKeySystemAccessFunc","testBandwidth","progressive","lowLatencyMode","cmcd","cueHandler","enableCEA708Captions","enableWebVTT","enableIMSC1","captionsTextTrack1Label","captionsTextTrack1LanguageCode","captionsTextTrack2Label","captionsTextTrack2LanguageCode","captionsTextTrack3Label","captionsTextTrack3LanguageCode","captionsTextTrack4Label","captionsTextTrack4LanguageCode","renderTextTracksNatively","subtitleStreamController","subtitleTrackController","timelineController","audioStreamController","audioTrackController","emeController","cmcdController","defaultConfig","userConfig","currentLoader","_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__","_utils_ewma_bandwidth_estimator__WEBPACK_IMPORTED_MODULE_1__","_events__WEBPACK_IMPORTED_MODULE_2__","_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__","_errors__WEBPACK_IMPORTED_MODULE_4__","_types_loader__WEBPACK_IMPORTED_MODULE_5__","_utils_logger__WEBPACK_IMPORTED_MODULE_6__","AbrController","hls","lastLoadedFragLevel","_nextAutoLevel","timer","onCheck","_abandonRulesCheck","fragCurrent","partCurrent","bitrateTestDelay","bwEstimator","registerListeners","FRAG_LOADING","onFragLoading","FRAG_LOADED","onFragLoaded","FRAG_BUFFERED","onFragBuffered","LEVEL_LOADED","onLevelLoaded","onError","unregisterListeners","destroy","clearTimer","_data$part","frag","MAIN","setInterval","details","live","autoLevelEnabled","media","aborted","paused","requestDelay","levels","minAutoLevel","expectedLen","maxBitrate","loadRate","bwEstimate","fragLoadedDelay","bufferStarvationDelay","bufferInfo","nextLoadLevel","fragLevelNextLoadedDelay","getEstimate","FRAG_LOAD_EMERGENCY_ABORTED","loadedBytes","loadedDuration","realBitrate","bitrateTest","fragBufferedData","processingMs","parsing","FRAG_LOAD_ERROR","FRAG_LOAD_TIMEOUT","clearInterval","getNextABRAutoLevel","maxAutoLevel","currentFragDuration","avgbw","bestLevel","findBestLevel","bwFactor","bwUpFactor","currentBw","maxFetchDuration","_level$details","currentLevel","currentCodecSet","codecSet","levelInfo","levelDetails","avgDuration","partTarget","averagetargetduration","adjustedbw","bitrate","fetchDuration","forcedAutoLevel","canEstimate","nextABRAutoLevel","nextLevel","_base_stream_controller__WEBPACK_IMPORTED_MODULE_1__","_fragment_tracker__WEBPACK_IMPORTED_MODULE_4__","_types_level__WEBPACK_IMPORTED_MODULE_5__","_types_loader__WEBPACK_IMPORTED_MODULE_6__","_loader_fragment__WEBPACK_IMPORTED_MODULE_7__","_demux_chunk_cache__WEBPACK_IMPORTED_MODULE_8__","_demux_transmuxer_interface__WEBPACK_IMPORTED_MODULE_9__","_types_transmuxer__WEBPACK_IMPORTED_MODULE_10__","_fragment_finders__WEBPACK_IMPORTED_MODULE_11__","_utils_discontinuities__WEBPACK_IMPORTED_MODULE_12__","_errors__WEBPACK_IMPORTED_MODULE_13__","_utils_logger__WEBPACK_IMPORTED_MODULE_14__","AudioStreamController","_BaseStreamController","fragmentTracker","videoBuffer","videoTrackCC","waitingVideoCC","audioSwitch","trackId","waitingData","mainDetails","bufferFlushed","_registerListeners","onHandlerDestroying","_unregisterListeners","MEDIA_ATTACHED","onMediaAttached","MEDIA_DETACHING","onMediaDetaching","MANIFEST_LOADING","onManifestLoading","AUDIO_TRACKS_UPDATED","onAudioTracksUpdated","AUDIO_TRACK_SWITCHING","onAudioTrackSwitching","AUDIO_TRACK_LOADED","onAudioTrackLoaded","BUFFER_RESET","onBufferReset","BUFFER_CREATED","onBufferCreated","BUFFER_FLUSHED","onBufferFlushed","INIT_PTS_FOUND","onInitPtsFound","initPTS","WAITING_INIT_PTS","startLoad","STOPPED","lastCurrentTime","stopLoad","fragLoadError","IDLE","loadedmetadata","WAITING_TRACK","nextLoadPosition","doTick","doTickIdle","_levels$trackId","waitForCdnTuneIn","FRAG_LOADING_WAITING_RETRY","_this$media","retryDate","seeking","flush","networkDetails","_handleFragmentLoadProgress","_handleFragmentLoadComplete","clearWaitingFragment","getLoadPosition","mediaBuffer","onTickEnd","removeFragment","buffered","_frag$decryptdata","_frag$decryptdata2","startFragRequested","trackDetails","levelLastLoaded","afterBufferFlushed","AUDIO","getFwdBufferInfo","bufferLen","maxBufLen","getMaxBufferLength","_streamEnded","BUFFER_EOS","ENDED","fragments","targetBufferTime","PTSKnown","nextStart","getNextFragment","decryptdata","keyFormat","loadFragment","loadKey","maxConfigBuffer","mainBufferInfo","audioTracks","resetTransmuxer","mediaPlaylist","altAudio","removeAllFragments","_track$details","newDetails","startSN","endSN","totalduration","track","sliding","deltaUpdateFailed","hasProgramDateTime","alignPlaylists","setStartPosition","_frag$initSegment","audioCodec","transmuxer","_handleTransmuxComplete","_handleTransmuxerFlush","initSegmentData","initSegment","partIndex","partial","chunkMeta","chunkCount","fragLoadedData","audioTrack","tracks","audio","fragContextChanged","fragPrevious","AUDIO_TRACK_SWITCHED","fragBufferedComplete","KEY_LOAD_ERROR","KEY_LOAD_TIMEOUT","onFragmentOrKeyLoadError","AUDIO_TRACK_LOAD_ERROR","AUDIO_TRACK_LOAD_TIMEOUT","fatal","BUFFER_FULL_ERROR","PARSING","PARSED","flushBuffer","bufferedInfo","reduceMaxBufferLength","flushMainBuffer","resetLoadingState","transmuxResult","_id3$samples","remuxResult","getCurrentContext","resetLiveStartWhenNotLoaded","id3","completeAudioSwitch","_bufferInitSegment","FRAG_PARSING_INIT_SEGMENT","startPTS","endPTS","startDTS","endDTS","elementaryStreams","setElementaryStreamInfo","bufferFragmentData","samples","emittedID3","FRAG_PARSING_METADATA","emittedText","FRAG_PARSING_USERDATA","levelCodec","BUFFER_CODECS","segment","BUFFER_APPENDING","fragState","getState","NOT_LOADED","PARTIAL","_loadInitSegment","_events__WEBPACK_IMPORTED_MODULE_0__","_errors__WEBPACK_IMPORTED_MODULE_1__","_base_playlist_controller__WEBPACK_IMPORTED_MODULE_2__","_types_loader__WEBPACK_IMPORTED_MODULE_3__","AudioTrackController","_BasePlaylistControll","groupId","tracksInGroup","trackName","selectDefaultTrack","MANIFEST_PARSED","onManifestParsed","LEVEL_LOADING","onLevelLoading","LEVEL_SWITCHING","onLevelSwitching","currentTrack","curDetails","retryCount","playlistLoaded","switchLevel","levelIndex","audioGroupIds","audioGroupId","urlId","audioTracksUpdated","selectInitialTrack","AUDIO_TRACK","retryLoadingOrFail","setAudioTrack","newId","lastTrack","_track$groupId","hlsUrlParameters","switchParams","loadPlaylist","currentAudioTrackName","findTrackId","MEDIA_ERROR","shouldLoadTrack","addDirectives","AUDIO_TRACK_LOADING","deliveryDirectives","BasePlaylistController","_types_level__WEBPACK_IMPORTED_MODULE_1__","_level_helper__WEBPACK_IMPORTED_MODULE_2__","_utils_logger__WEBPACK_IMPORTED_MODULE_3__","logPrefix","canLoad","playlistUri","renditionReports","uri","msn","currentGoal","age","targetduration","No","previousDetails","advancedDateTime","reloaded","advanced","lastPartSn","lastPartIndex","canBlockReload","endSn","lastPart","lastAdvanced","cdnAge","ageHeader","tuneInGoal","segments","getDeliveryDirectives","reloadInterval","previousDeliveryDirectives","errorEvent","_errorEvent$context","retry","State","BaseStreamController","_task_loop__WEBPACK_IMPORTED_MODULE_1__","_fragment_tracker__WEBPACK_IMPORTED_MODULE_2__","_utils_logger__WEBPACK_IMPORTED_MODULE_4__","_events__WEBPACK_IMPORTED_MODULE_5__","_errors__WEBPACK_IMPORTED_MODULE_6__","_types_transmuxer__WEBPACK_IMPORTED_MODULE_7__","_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_8__","_utils_discontinuities__WEBPACK_IMPORTED_MODULE_9__","_fragment_finders__WEBPACK_IMPORTED_MODULE_10__","_level_helper__WEBPACK_IMPORTED_MODULE_11__","_loader_fragment_loader__WEBPACK_IMPORTED_MODULE_12__","_crypt_decrypter__WEBPACK_IMPORTED_MODULE_13__","_utils_time_ranges__WEBPACK_IMPORTED_MODULE_14__","_types_loader__WEBPACK_IMPORTED_MODULE_15__","KEY_LOADING","BACKTRACKING","WAITING_LEVEL","_TaskLoop","fragmentLoader","decrypter","onvseeking","onvended","KEY_LOADED","onKeyLoaded","clearNextTick","partList","isBuffered","OK","onMediaSeeking","onMediaEnded","fragStartOffset","pastFragment","tickImmediate","onHandlerDestroyed","_loadFragForPlayback","_doFragLoad","backtrack","resetFragmentLoading","startOffset","endOffset","flushScope","BUFFER_FLUSHING","decryptData","startTime","webCryptoDecrypt","decryptedData","endTime","FRAG_DECRYPTED","tstart","tdecrypt","getBuffered","fragLoadedEndData","partsLoaded","fragLoaded","_this4","fragmentHint","getNextPart","doFragPartsLoad","handleFragLoadError","loadedEndOfParts","load","_this5","loadPartIndex","loadPart","partLoadedData","loadedPart","nextPart","INTERNAL_ABORTED","handleFragLoadAborted","updateLevelTiming","data1","data2","dropped","independent","flushBufferGap","fragDuration","segmentFraction","bufferable","bufferedFragAtPos","getBufferedFrag","levelBitrate","minLength","_frag","_frag2","fragLen","getInitialLiveFragment","liveSyncPosition","partEnd","fragmentEnd","getFragmentAtPosition","contiguous","independentAttrOmitted","programDateTime","endProgramDateTime","targetSN","fragNext","liveStart","edge","bufferEnd","loadingParts","lookupTolerance","curSNIdx","sameLevel","nextFrag","BACKTRACKED","synchronizeToLiveEdge","withinSlidingWindow","maxLatency","lastLevel","slidingStart","firstLevelLoad","aligned","alignedSliding","alignedSlidingStart","partHoldBack","startTimeOffset","filterType","levelRetry","bufferType","playlistType","bufferedTimeRanges","detectEvictedFragments","_this6","parsedDuration","drift","LEVEL_PTS_UPDATED","FRAG_PARSED","previousState","BufferController","_events__WEBPACK_IMPORTED_MODULE_1__","_utils_logger__WEBPACK_IMPORTED_MODULE_2__","_errors__WEBPACK_IMPORTED_MODULE_3__","_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__","_utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_5__","_loader_fragment__WEBPACK_IMPORTED_MODULE_6__","_buffer_operation_queue__WEBPACK_IMPORTED_MODULE_7__","MediaSource","VIDEO_CODEC_PROFILE_REPACE","_hls","_objectUrl","operationQueue","bufferCodecEventsExpected","_bufferCodecEventsTotal","mediaSource","appendError","pendingTracks","sourceBuffer","_onMediaSourceOpen","updateMediaElementDuration","checkPendingTracks","_onMediaSourceClose","_onMediaSourceEnded","_initSourceBuffer","hasSourceTypes","getSourceBufferTypes","MEDIA_ATTACHING","onMediaAttaching","onBufferAppending","onBufferCodecs","onBufferEos","onBufferFlushing","LEVEL_UPDATED","onLevelUpdated","onFragParsed","FRAG_CHANGED","onFragChanged","audiovideo","codecEvents","endOfStream","revokeObjectURL","MEDIA_DETACHED","removeBufferListeners","removeSourceBuffer","sourceBufferCount","changeType","_data$trackName","mimeType","appendChangeType","execute","shiftAndExecuteNext","onStart","onComplete","eventData","chunkStats","bufferAppendingStart","fragBuffering","partBuffering","checkTimestampOffset","executeStart","timestampOffset","appendExecutor","executeEnd","timeRanges","_type","BUFFER_APPENDED","BUFFER_APPEND_ERROR","DOMException","QUOTA_EXCEEDED_ERR","flushOperation","removeExecutor","_this7","buffersAppendedTo","AUDIOVIDEO","VIDEO","blockBuffers","flushBackBuffer","_this8","sourceBufferTypes","targetDuration","levelTargetDuration","maxBackBufferLength","targetBackBufferPosition","BACK_BUFFER_REACHED","LIVE_BACK_BUFFER_REACHED","levelDuration","mediaDuration","msDuration","updateSeekableRange","setLiveSeekableRange","pendingTracksCount","createSourceBuffers","buffers","BUFFER_INCOMPATIBLE_CODECS_ERROR","executeNext","tracksCreated","addSourceBuffer","sbName","addBufferListener","_onSBUpdateStart","_onSBUpdateEnd","_onSBUpdateError","BUFFER_ADD_CODEC_ERROR","BUFFER_APPENDING_ERROR","removeStart","removeEnd","updating","appendBuffer","onUnblocked","_this9","blockingOperations","appendBlocker","BufferOperationQueue","_utils_logger__WEBPACK_IMPORTED_MODULE_0__","sourceBufferReference","insertAbort","CapLevelController","autoLevelCapping","firstLevel","restrictedLevels","streamController","clientRect","setStreamController","unregisterListener","stopCapping","FPS_DROP_LEVEL_CAPPING","onFpsDropLevelCapping","isLevelAllowed","droppedLevel","HTMLVideoElement","startCapping","detectPlayerSize","getMaxLevel","nextLevelSwitch","capLevelIndex","validLevels","getMaxLevelByMediaSize","getDimensions","boundsRect","curLevel","maxLevelIndex","pixelRatio","devicePixelRatio","contentScaleFactor","CMCDController","_types_cmcd__WEBPACK_IMPORTED_MODULE_1__","_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_2__","_createForOfIteratorHelperLoose","allowArrayLike","sid","useHeaders","starved","audioBuffer","onWaiting","onPlaying","applyPlaylistData","ot","MANIFEST","su","applyFragmentData","getObjectType","MUXED","getTopBandwidth","getBufferLength","createPlaylistLoader","createFragmentLoader","sessionId","uuid","contentId","onMediaDetached","_data$tracks$audio","_data$tracks$video","createData","sf","HLS","mtp","bandwidthEstimate","isVideo","INIT","toHeaders","toQuery","appendQueryToUri","TIMED_TEXT","_step","_iterator","CmcdPlaylistLoader","_proto2","CmcdFragmentLoader","_proto3","serialize","_step2","toRounded","toHundred","nor","rtp","_iterator2","headerNames","headerGroups","headerMap","nrr","st","_keys","_utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_3__","EMEController","_widevineLicenseUrl","_licenseXhrSetup","_licenseResponseCallback","_emeEnabled","_requestMediaKeySystemAccess","_drmSystemOptions","_mediaKeysList","_media","_hasSetMediaKeys","_requestLicenseFailureCount","mediaKeysPromise","_onMediaEncrypted","onMediaEncrypted","getLicenseServerUrl","keySystem","WIDEVINE","_attemptKeySystemAccess","audioCodecs","videoCodecs","mediaKeySystemConfigs","audioCapabilities","videoCapabilities","robustness","audioRobustness","videoRobustness","createWidevineMediaKeySystemConfigurations","getSupportedMediaKeySystemConfigurations","keySystemAccessPromise","requestMediaKeySystemAccess","mediaKeySystemAccess","_onMediaKeySystemAccessObtained","mediaKeysListItem","mediaKeysSessionInitialized","mediaKeySystemDomain","createMediaKeys","mediaKeys","_onMediaKeysCreated","mediaKeysSession","createSession","_onNewMediaKeySession","keySession","_onKeySessionMessage","_requestLicense","initDataType","KEY_SYSTEM_ERROR","KEY_SYSTEM_NO_KEYS","finallySetKeyAndStartSession","_attemptSetMediaKeys","_generateRequestWithPreferredKeySession","initData","keysListItem","setMediaKeys","KEY_SYSTEM_NO_ACCESS","KEY_SYSTEM_NO_SESSION","KEY_SYSTEM_NO_INIT_DATA","generateRequest","_createLicenseXhr","keyMessage","_onLicenseRequestReadyStageChange","KEY_SYSTEM_LICENSE_REQUEST_FAILED","attemptsLeft","_generateLicenseRequestChallenge","_xhr","challenge","mediaKeysList","videoCodec","_utils_logger__WEBPACK_IMPORTED_MODULE_1__","FPSController","isVideoPlaybackQualityAvailable","lastTime","lastDroppedFrames","lastDecodedFrames","getVideoPlaybackQuality","checkFPSInterval","checkFPS","decodedFrames","droppedFrames","currentPeriod","currentDropped","currentDecoded","droppedFPS","FPS_DROP","totalDroppedFrames","videoPlaybackQuality","totalVideoFrames","droppedVideoFrames","webkitDecodedFrameCount","webkitDroppedFrameCount","findFragmentByPDT","findFragmentByPTS","fragmentWithinToleranceTest","pdtWithinToleranceTest","findFragWithCC","_utils_binary_search__WEBPACK_IMPORTED_MODULE_1__","PDTValue","seg","foundFragment","candidate","candidateLookupTolerance","deltaPTS","pdtBufferEnd","FragmentState","FragmentTracker","_types_loader__WEBPACK_IMPORTED_MODULE_1__","activeFragment","activeParts","bufferPadding","onBufferAppended","getAppendedFrag","levelType","activePart","appendedPTS","fragmentEntity","elementaryStream","timeRange","esData","isNotBuffered","isTimeBuffered","detectPartialFragments","fragKey","getFragmentKey","streamInfo","getBufferedTimes","fragBuffered","minEndPTS","maxStartPTS","getPartialFragment","timePadding","bestFragment","bestOverlap","isPartial","APPENDING","getBacktrackData","_backtrack$payload","hasFragment","removeFragmentsInRange","clearElementaryStreamInfo","_fragmentEntity$range","_fragmentEntity$range2","STALL_MINIMUM_DURATION_MS","MAX_START_GAP_JUMP","SKIP_BUFFER_HOLE_STEP_SECONDS","SKIP_BUFFER_RANGE_START","GapController","_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_0__","nudgeRetry","stallReported","stalled","moved","poll","seeked","beginSeek","hasEnoughBuffer","noBufferGap","startJump","maxStartGapJump","_trySkipBufferHole","tnow","stalledDuration","_reportStall","bufferedWithHoles","_tryFixBufferStall","_stalledDuration","stalledDurationMs","_tryNudgeBuffer","BUFFER_STALLED_ERROR","lastEndTime","targetTime","BUFFER_SEEK_OVER_HOLE","BUFFER_NUDGE_ON_STALL","_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_1__","_demux_id3__WEBPACK_IMPORTED_MODULE_2__","ID3TrackController","id3Track","onFragParsingMetadata","getID3Track","textTracks","textTrack","kind","addTextTrack","Cue","WebKitDataCue","VTTCue","TextTrackCue","pts","cue","addCue","LatencyController","_errors__WEBPACK_IMPORTED_MODULE_0__","stallCount","_latency","timeupdateHandler","timeupdate","latency","computeLatency","_this$config","targetLatency","distanceFromTarget","inLiveRange","forwardBufferLength","edgeStalled","estimateLiveEdge","liveEdge","holdBack","_this$config2","maxLiveSyncOnStallIncrease","syncPosition","maxLevelUpdateAge","bufferedRanges","LevelController","_types_level__WEBPACK_IMPORTED_MODULE_0__","_errors__WEBPACK_IMPORTED_MODULE_2__","_utils_codecs__WEBPACK_IMPORTED_MODULE_3__","_level_helper__WEBPACK_IMPORTED_MODULE_4__","_base_playlist_controller__WEBPACK_IMPORTED_MODULE_5__","chromeOrFirefox","_levels","_firstLevel","_startLevel","currentLevelIndex","manualLevelIndex","onParsedComplete","MANIFEST_LOADED","onManifestLoaded","onAudioTrackSwitched","loadError","bitrateStart","levelFromSet","subtitleTracks","levelSet","resolutionFound","videoCodecFound","audioCodecFound","levelParsed","levelKey","RESOLUTION","CODECS","SUBTITLES","subtitles","audioOnly","edata","forceStartLoad","MANIFEST_INCOMPATIBLE_CODECS_ERROR","SUBTITLE_TRACK","textGroupIds","redundantFailover","levelError","levelSwitch","fragmentError","LEVEL_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","REMUX_ALLOC_ERROR","recoverLevel","errorDetails","redundantLevels","nextAutoLevel","newUrlId","_data$deliveryDirecti2","_data$deliveryDirecti","removeLevel","filterLevelAndGroupByIdIndex","LEVELS_UPDATED","newLevel","_levels$newLevel","OTHER_ERROR","LEVEL_SWITCH_ERROR","lastLevelIndex","levelSwitchingData","_urlId","configStartLevel","addGroupId","assignTrackIdsByGroup","updatePTS","updateFragPTSDTS","mergeDetails","mapPartIntersection","mapFragmentIntersection","adjustSliding","addSliding","computeReloadInterval","getFragmentWithSN","getPartWith","fromIdx","toIdx","updateFromToPTS","fragFrom","fragTo","fragToPTS","fragStartPts","fragEndPts","fragIdx","oldDetails","currentInitSegment","oldFragments","oldInit","PTSFrag","ccOffset","oldFrag","newFrag","relurl","_currentInitSegment","skippedSegments","startCC","newFragments","_i2","oldPart","newPart","driftStartTime","driftStart","driftEndTime","driftEnd","oldParts","newParts","intersectionFn","_oldPart","_newPart","newFrags","oldFrags","_oldFrag","_newFrag","estimatedTimeUntilUpdate","reloadIntervalAfterMiss","timeSinceLastModified","useLastModified","roundTrip","availabilityDelay","updated","minRetry","misses","StreamController","_is_supported__WEBPACK_IMPORTED_MODULE_2__","_events__WEBPACK_IMPORTED_MODULE_3__","_fragment_tracker__WEBPACK_IMPORTED_MODULE_5__","_demux_transmuxer_interface__WEBPACK_IMPORTED_MODULE_8__","_types_transmuxer__WEBPACK_IMPORTED_MODULE_9__","_gap_controller__WEBPACK_IMPORTED_MODULE_10__","_errors__WEBPACK_IMPORTED_MODULE_11__","_utils_logger__WEBPACK_IMPORTED_MODULE_12__","audioCodecSwap","gapController","_forceStartLoad","fragPlaying","onvplaying","onvseeked","fragLastKbps","couldBacktrack","audioCodecSwitch","onFragLoadEmergencyAborted","onLevelsUpdated","_levels$level","checkBuffer","checkFragmentChanged","_this$media2","_loadBitrateTestFrag","fragOrPart","followingBufferedFrag","immediateLevelSwitch","abortCurrentFrag","fetchdelay","fragPlayingCurrent","bufferedFrag","nextBufferedFrag","maxStart","startPts","onMediaPlaying","onMediaSeeked","aac","heaac","_curLevel$details","newLevelId","endCC","accurateTimeOffset","_getAudioCodec","fromAltAudio","mediaTrack","alternate","videoTrack","seekToStartPos","swapAudioCodec","timescale","firstKeyFrame","_startPTS","_endPTS","_startDTS","_endDTS","channelCount","fragCurrentLevel","LEVEL_SWITCHED","SubtitleStreamController","_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_1__","_fragment_finders__WEBPACK_IMPORTED_MODULE_2__","_utils_discontinuities__WEBPACK_IMPORTED_MODULE_3__","_base_stream_controller__WEBPACK_IMPORTED_MODULE_6__","_types_loader__WEBPACK_IMPORTED_MODULE_7__","_types_level__WEBPACK_IMPORTED_MODULE_8__","currentTrackId","tracksBuffered","SUBTITLE_TRACKS_UPDATED","onSubtitleTracksUpdated","SUBTITLE_TRACK_SWITCH","onSubtitleTrackSwitch","SUBTITLE_TRACK_LOADED","onSubtitleTrackLoaded","SUBTITLE_FRAG_PROCESSED","onSubtitleFragProcessed","fragStart","fragEnd","endOffsetSubtitles","SUBTITLE","_this$fragCurrent","mediaBufferTimeRanges","mainSlidingStartFragment","_foundFrag","foundFrag","encrypted","SubtitleTrackController","queuedDefaultTrack","trackChangeListener","onTextTracksChanged","asyncPollTrackChange","pollTrackChange","useTextTrackPolling","subtitlePollingInterval","subtitleDisplay","subtitleTrack","filterSubtitleTracks","textGroupId","initialTrackId","subtitleTracksUpdated","setSubtitleTrack","SUBTITLE_TRACK_LOADING","toggleTrackModes","groupTracks","oldTrack","nextTrack","_tracks$newId","textTrackList","TimelineController","_utils_cea_608_parser__WEBPACK_IMPORTED_MODULE_2__","_utils_output_filter__WEBPACK_IMPORTED_MODULE_3__","_utils_webvtt_parser__WEBPACK_IMPORTED_MODULE_4__","_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__","_utils_imsc1_ttml_parser__WEBPACK_IMPORTED_MODULE_6__","_utils_logger__WEBPACK_IMPORTED_MODULE_8__","Cues","unparsedVttFrags","captionsTracks","nonNativeCaptionsTracks","cea608Parser1","cea608Parser2","lastSn","prevCC","vttCCs","presentationOffset","new","captionsProperties","textTrack1","languageCode","textTrack2","textTrack3","textTrack4","channel1","channel2","channel3","channel4","onFragParsingUserdata","onFragDecrypted","SUBTITLE_TRACKS_CLEARED","onSubtitleTracksCleared","addCues","screen","cueRanges","cueRange","overlap","newCue","cues","CUES_PARSED","getExistingTrack","createCaptionsTrack","createNativeTrack","createNonNativeTrack","_captionsProperties$t","existingTrack","createTextTrack","trackProperties","_id","closedCaptions","NON_NATIVE_TEXT_TRACKS_FOUND","_cleanTracks","hasIMSC1","textCodec","sameTracks","inUseTracks","inUseTrack","canReuseVttTextTrack","tracksList","captions","captionsTrack","instreamIdMatch","instreamId","_data$part$index","decrypted","trackPlaylistMedia","_parseIMSC1","_parseVTTs","_appendCues","_fallbackToIMSC1","fragLevel","ccBytes","ccdatas","extractCea608Data","addData","actualCCBytes","tmpByte","ccbyte1","ccbyte2","ccType","manifestTrack","AESCrypto","subtle","aesIV","removePadding","AESDecryptor","_utils_typed_array__WEBPACK_IMPORTED_MODULE_0__","outputBytes","paddingBytes","getUint8","rcon","subMix","invSubMix","sBox","invSBox","initTable","uint8ArrayToUint32Array_","view","newArray","getUint32","subMix0","subMix1","subMix2","subMix3","invSubMix0","invSubMix1","invSubMix2","invSubMix3","expandKey","keyBuffer","sameKey","invKsRow","sbox","networkToHostOrderSwap","inputArrayBuffer","inputWords0","inputWords1","inputWords2","inputWords3","invSBOX","initVector","initVector0","initVector1","initVector2","initVector3","inputInt32","outputInt32","swapWord","Decrypter","_aes_crypto__WEBPACK_IMPORTED_MODULE_0__","_fast_aes_key__WEBPACK_IMPORTED_MODULE_1__","_aes_decryptor__WEBPACK_IMPORTED_MODULE_2__","_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_4__","_utils_typed_array__WEBPACK_IMPORTED_MODULE_5__","_ref$removePKCS7Paddi","removePKCS7Padding","logEnabled","softwareDecrypter","fastAesKey","remainderData","currentIV","currentResult","browserCrypto","webkitSubtle","isSync","softwareDecrypt","decryptResult","logOnce","currentChunk","getValidChunk","aesKey","onWebCryptoError","splitPoint","FastAESKey","importKey","_base_audio_demuxer__WEBPACK_IMPORTED_MODULE_0__","_adts__WEBPACK_IMPORTED_MODULE_1__","_demux_id3__WEBPACK_IMPORTED_MODULE_3__","AACDemuxer","_BaseAudioDemuxer","resetInitSegment","_audioTrack","pid","sequenceNumber","isAAC","manifestCodec","inputTimeScale","probe","canParse","appendFrame","frameIndex","missing","minProbeByteLength","getAudioConfig","isHeaderPattern","getHeaderLength","getFullFrameLength","canGetFrameLength","isHeader","initTrackConfig","getFrameDuration","parseFrameHeader","adtsObjectType","adtsExtensionSamplingIndex","adtsChanelConfig","adtsSampleingRates","adtsSamplingIndex","samplerate","FRAG_PARSING_ERROR","headerLength","frameLength","frameDuration","stamp","initPTSFn","_demux_id3__WEBPACK_IMPORTED_MODULE_1__","_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_2__","_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_3__","_utils_typed_array__WEBPACK_IMPORTED_MODULE_4__","BaseAudioDemuxer","_id3Track","cachedData","resetTimeStamp","resetContiguity","demux","timeOffset","lastDataIndex","id3Data","dts","partialData","avcTrack","demuxSampleAes","keyData","ChunkCache","chunk","concatUint8Arrays","dummyTrack","ExpGolomb","bytesAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","valu","skipLZ","leadingZeroCount","skipUEG","skipEG","readUEG","clz","readEG","readBoolean","readUByte","readUShort","readUInt","skipScalingList","lastScale","nextScale","readSPS","numRefFramesInPicOrderCntCycle","scalingListCount","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","profileIdc","chromaFormatIdc","picOrderCntType","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","readSliceType","isFooter","getID3Data","getTimeStamp","isTimeStampFrame","getID3Frames","decodeFrame","utf8ArrayToStr","testables","front","readSize","readTimeStamp","getFrameData","frameData","decodePrivFrame","decodeURLFrame","decodeTextFrame","owner","privateData","timeStampFrame","pts33Bit","exitOnNull","getTextDecoder","char2","char3","_mpegaudio__WEBPACK_IMPORTED_MODULE_3__","MP3Demuxer","_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_0__","_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__","MP4Demuxer","avcSamples","segmentedData","parseHeader","chromeVersion","BitratesMap","SamplingRateMap","SamplesCoefficients","BytesInSlot","samplesPerFrame","mpegVersion","mpegLayer","bitRateIndex","sampleRateIndex","paddingBit","channelMode","bitRate","sampleCoefficient","bytesInSlot","_crypt_decrypter__WEBPACK_IMPORTED_MODULE_0__","_tsdemuxer__WEBPACK_IMPORTED_MODULE_1__","SampleAesDecrypter","decryptBuffer","encryptedData","decryptAacSample","sampleIndex","sync","curUnit","encryptedBuffer","localthis","decryptedBuffer","decryptAacSamples","getAvcEncryptedData","decodedData","encryptedDataLen","Int8Array","outputPos","inputPos","getAvcDecryptedUnit","uint8DecryptedData","decryptAvcSample","unitIndex","decryptAvcSamples","curUnits","TransmuxerInterface","webworkify_webpack__WEBPACK_IMPORTED_MODULE_0__","_demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__","eventemitter3__WEBPACK_IMPORTED_MODULE_6__","isTypeSupported","onTransmuxComplete","onFlush","onwmsg","forwardMessage","ev","typeSupported","mp4","mpeg","mp3","vendor","onWorkerMessage","INTERNAL_EXCEPTION","lineno","postMessage","terminate","defaultInitPTS","_lastFrag$initSegment","transmuxing","lastFrag","discontinuity","trackSwitch","snDiff","partDiff","initSegmentChange","configureTransmuxer","_transmuxResult","handleTransmuxComplete","_transmuxResult2","handleFlushResult","TransmuxerWorker","_demux_transmuxer__WEBPACK_IMPORTED_MODULE_0__","eventemitter3__WEBPACK_IMPORTED_MODULE_3__","emitTransmuxComplete","transferable","_transmuxResult$remux","addToTransferable","Transmuxer","isPromise","TransmuxConfig","TransmuxState","_crypt_decrypter__WEBPACK_IMPORTED_MODULE_2__","_demux_aacdemuxer__WEBPACK_IMPORTED_MODULE_3__","_demux_mp4demuxer__WEBPACK_IMPORTED_MODULE_4__","_demux_tsdemuxer__WEBPACK_IMPORTED_MODULE_5__","_demux_mp3demuxer__WEBPACK_IMPORTED_MODULE_6__","_remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_7__","_remux_passthrough_remuxer__WEBPACK_IMPORTED_MODULE_8__","_chunk_cache__WEBPACK_IMPORTED_MODULE_9__","_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_10__","_utils_logger__WEBPACK_IMPORTED_MODULE_11__","muxConfig","remux","demuxer","remuxer","decryptionPromise","transmuxConfig","currentTransmuxState","uintData","encryptionType","getEncryptionType","getDecrypter","emptyResult","defaultInitPts","resetInitialTimestamp","needsProbing","transmux","currentState","transmuxResults","bytesSeen","demuxResultOrPromise","demuxResult","flushRemux","_this$currentTransmux","resetNextTimestamp","transmuxSampleAes","transmuxUnencrypted","_demux","mux","Remuxer","Demuxer","discardEPB","_adts__WEBPACK_IMPORTED_MODULE_0__","_mpegaudio__WEBPACK_IMPORTED_MODULE_1__","_exp_golomb__WEBPACK_IMPORTED_MODULE_2__","_id3__WEBPACK_IMPORTED_MODULE_3__","_sample_aes__WEBPACK_IMPORTED_MODULE_4__","_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_6__","_utils_logger__WEBPACK_IMPORTED_MODULE_7__","_errors__WEBPACK_IMPORTED_MODULE_8__","RemuxerTrackIdConfig","TSDemuxer","sampleAes","pmtParsed","_duration","aacLastPTS","_initPTS","_initDTS","_pmtId","_avcTrack","_txtTrack","aacOverFlow","avcSample","syncOffset","scanwindow","createTrack","pesData","isSampleAes","pes","avcId","avcData","audioId","id3Id","audioData","unknownPIDs","pmtId","tsPacketErrors","stt","parsePES","parseAVCPES","parseAACPES","parseMPEGPES","parseID3PES","parsePAT","parsedPIDs","parsePMT","avc","extractRemainingSamples","parseAVCNALu","spsfound","audFound","pushAccessUnit","createAVCSample","sliceType","expGolombDecoder","payloadType","payloadSize","endOfCaptions","totalCCs","insertSampleInOrder","uuidStrArray","userDataPayloadBytes","userData","userDataBytes","_i3","sps","codecarray","codecstring","_i4","pps","getLastNalUnit","_avcSample","lastUnit","naluState","lastState","lastUnitStart","lastUnitType","_unit","_lastUnit","sampleLength","frameMissingBytes","frameOverflowBytes","mpegSupported","tableEnd","pesLen","pesHdrLen","pesPts","pesDts","pesFlags","payloadStartOffset","dataLen","nbSamples","lastSample","EPBPositions","newLength","sourceIndex","ErrorTypes","ErrorDetails","Hls","url_toolkit__WEBPACK_IMPORTED_MODULE_0__","_loader_playlist_loader__WEBPACK_IMPORTED_MODULE_1__","_loader_key_loader__WEBPACK_IMPORTED_MODULE_2__","_controller_id3_track_controller__WEBPACK_IMPORTED_MODULE_3__","_controller_latency_controller__WEBPACK_IMPORTED_MODULE_4__","_controller_level_controller__WEBPACK_IMPORTED_MODULE_5__","_controller_fragment_tracker__WEBPACK_IMPORTED_MODULE_6__","_controller_stream_controller__WEBPACK_IMPORTED_MODULE_7__","_is_supported__WEBPACK_IMPORTED_MODULE_8__","_utils_logger__WEBPACK_IMPORTED_MODULE_9__","_config__WEBPACK_IMPORTED_MODULE_10__","eventemitter3__WEBPACK_IMPORTED_MODULE_11__","_events__WEBPACK_IMPORTED_MODULE_12__","coreComponents","networkControllers","_emitter","_autoLevelCapping","latencyController","levelController","DefaultConfig","ConfigAbrController","ConfigBufferController","ConfigCapLevelController","ConfigFpsController","playListLoader","keyLoader","id3TrackController","createController","isSupported","ControllerClass","components","controllerInstance","eventObject","DESTROYING","detachMedia","attachMedia","loadSource","loadedSource","loadingSource","controller","recoverMediaError","loadLevel","manualLevel","shouldStartCapping","newCapLevelToPlayerSize","audioTrackId","subtitleTrackId","changeTypeSupported","_utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_0__","getSourceBuffer","SourceBuffer","WebKitSourceBuffer","sourceBufferValidAPI","_sourceBuffer$prototy","FragmentLoader","_wrapNativeSuper","Class","_cache","Wrapper","_construct","Parent","MIN_CHUNK_SIZE","partLoadTimeout","_onProgress","FragmentILoader","DefaultILoader","loaderContext","createLoaderContext","loaderConfig","maxRetry","retryDelay","maxRetryDelay","onSuccess","resetLoader","onAbort","onTimeout","onProgress","updateStatsFromPart","fragStats","partStats","partTotal","estTotalParts","estLoadedParts","estRemainingBytes","fragLoading","partLoading","rangeStart","rangeEnd","byteRangeStartOffset","byteRangeEndOffset","_Error","ElementaryStreamTypes","BaseSegment","Part","url_toolkit__WEBPACK_IMPORTED_MODULE_1__","_level_key__WEBPACK_IMPORTED_MODULE_3__","_load_stats__WEBPACK_IMPORTED_MODULE_4__","baseurl","_this$elementaryStrea","_byteRange","setByteRange","byteRange","_BaseSegment","_decryptdata","rawProgramDateTime","tagList","levelkey","createInitializationVector","segmentNumber","uint8View","setDecryptDataFromLevelKey","fromURI","_this$decryptdata","_BaseSegment2","partAttrs","fragOffset","decimalFloatingPoint","enumeratedString","KeyLoader","loaders","decryptkey","decrypturl","onKeyLoading","loaderName","fragLoader","loaderCallbacks","loadsuccess","loaderror","loadtimeout","LevelDetails","baseUrl","needSidxRanges","m3u8","canSkipUntil","canSkipDateRanges","recentlyRemovedDateranges","preloadHint","partSnDiff","partIndexDiff","runTime","_this$partList","_this$fragments","_this$partList2","_this$partList3","LevelKey","absoluteOrBaseURI","_uri","keyFormatVersions","keyID","fromURL","relativeUrl","LoadStats","M3U8Parser","_fragment__WEBPACK_IMPORTED_MODULE_2__","_level_details__WEBPACK_IMPORTED_MODULE_3__","_level_key__WEBPACK_IMPORTED_MODULE_4__","_utils_attr_list__WEBPACK_IMPORTED_MODULE_5__","_utils_codecs__WEBPACK_IMPORTED_MODULE_7__","MASTER_PLAYLIST_REGEX","MASTER_PLAYLIST_MEDIA_REGEX","LEVEL_PLAYLIST_REGEX_FAST","LEVEL_PLAYLIST_REGEX_SLOW","MP4_REGEX_SUFFIX","findGroup","mediaGroupId","convertAVC1ToAVCOTI","avcdata","parseMasterPlaylist","sessionData","hasSessionData","decimalInteger","NAME","resolution","decimalResolution","setCodecs","sessionAttrs","parseMasterPlaylistMedia","medias","TYPE","LANGUAGE","autoselect","forced","groupCodec","assignCodec","parseLevelPlaylist","levelUrlId","currentSN","currentPart","discontinuityCounter","prevFrag","firstPdtIndex","createNextFrag","assignProgramDateTime","value2","skipAttrs","_keyAttrs$enumeratedS","keyAttrs","decryptmethod","decrypturi","decryptiv","hexadecimalInteger","decryptkeyformatversions","decryptkeyid","decryptkeyformat","mapAttrs","BYTERANGE","serverControlAttrs","optionalFloat","partInfAttrs","previousFragmentPart","preloadHintAttrs","renditionReportAttrs","fragmentLength","firstFragment","lastFragment","_URLToolkit$parseURL$","_URLToolkit$parseURL","isMP4Url","fragPrev","backfillProgramDateTimes","filtered","preferred","unknownCodecs","groupItem","codecProperty","codecValue","_m3u8_parser__WEBPACK_IMPORTED_MODULE_5__","_utils_attr_list__WEBPACK_IMPORTED_MODULE_7__","getResponseUrl","PlaylistLoader","onAudioTrackLoading","onSubtitleTrackLoading","createInternalLoader","PLoader","getInternalLoader","resetInternalLoader","destroyInternalLoaders","LEVEL","_context$deliveryDire","isSidxRequest","handleSidxRequest","handlePlaylistLoaded","handleTrackOrLevelPlaylist","handleMasterPlaylist","handleManifestParsingError","handleNetworkError","_M3U8Parser$parseMast","audioGroups","subtitleGroups","levelId","mapContextToLevelType","singleLevel","_levelDetails$fragmen","sidxUrl","LEVEL_EMPTY_ERROR","sidxInfo","sidxReferences","references","segmentRef","segRefInfo","moovEndOffset","MANIFEST_PARSING_ERROR","UNKNOWN","MANIFEST_LOAD_TIMEOUT","MANIFEST_LOAD_ERROR","SUBTITLE_TRACK_LOAD_TIMEOUT","SUBTITLE_LOAD_ERROR","errorData","getCacheAge","isFiniteNumber","AAC","getSilentFrame","UINT32_MAX","MP4","avc1","avcC","btrt","dinf","dref","esds","ftyp","hdlr","mdat","mdhd","mdia","mfhd","minf","moof","moov","mp4a","mvex","mvhd","pasp","sdtp","stbl","stco","stsc","stsd","stsz","stts","tfdt","tfhd","traf","trak","trun","trex","tkhd","vmhd","smhd","videoHdlr","audioHdlr","HDLR_TYPES","STTS","STSC","STCO","STSZ","VMHD","SMHD","STSD","majorBrand","avc1Brand","minorVersion","FTYP","DINF","upperWordDuration","lowerWordDuration","baseMediaDecodeTime","boxes","dependsOn","isDependedOn","hasRedundancy","avcc","hSpacing","vSpacing","configlen","sampleDependencyTable","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","cts","arraylen","isLeading","paddingValue","isNonSync","degradPrio","movie","MP4Remuxer","normalizePts","_aac_helper__WEBPACK_IMPORTED_MODULE_1__","_mp4_generator__WEBPACK_IMPORTED_MODULE_2__","_utils_logger__WEBPACK_IMPORTED_MODULE_5__","_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__","safariWebkitVersion","requiresPositiveDts","ISGenerated","nextAvcDts","nextAudioPts","isAudioContiguous","isVideoContiguous","_result","defaultTimeStamp","getVideoStartPts","videoSamples","rolloverDetected","minPTS","audioTimeOffset","videoTimeOffset","hasAudio","hasVideo","enoughAudioSamples","enoughVideoSamples","generateIS","firstKeyFrameIndex","findKeyframeIndex","audiovideoTimestampDelta","remuxAudio","audioTrackLength","remuxVideo","remuxID3","remuxText","initDTS","audioSamples","computePTSDTS","mp4SampleDuration","firstDTS","lastDTS","timeScale","inputSamples","outputSamples","maxPTS","NEGATIVE_INFINITY","ptsDtsShift","sortSamples","deltadts","deltapts","averageSampleDuration","lastDts","foundHole","firstPTS","nbNalu","naluLen","_sample","nbUnits","sampleLen","mdatSize","MUX_ERROR","avcSampleUnits","mp4SampleLength","_j","_nbUnits","unitData","unitDataLen","lastFrameDuration","gapTolerance","deltaToFrameEnd","compositionTimeOffset","Mp4Sample","scaleFactor","inputSampleDuration","rawMPEG","timeOffsetMpegTS","alignedWithVideo","nextPts","newStamp","fillFrame","lastPTS","_j2","_nbSamples","audioSample","_pts","unitLen","remuxEmptyAudio","videoData","silentFrame","isKeyframe","Mp4SampleFlags","_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_1__","_loader_fragment__WEBPACK_IMPORTED_MODULE_2__","PassThroughRemuxer","emitInitSegment","initTracks","lastEndDTS","generateInitSegment","getParsedTrackCodec","computeInitPTS","parsedCodec","TaskLoop","_boundTick","_tickTimer","_tickInterval","_tickCallCount","hasInterval","hasNextTick","CMCDVersion","CMCDObjectType","CMCDStreamingFormat","CMCDStreamType","HlsSkip","getSkipValue","v2","Yes","HlsUrlParameters","Level","PlaylistContextType","PlaylistLevelType","ChunkMetadata","AttrList","DECIMAL_RESOLUTION_REGEX","ATTR_LIST_REGEX","parseAttrList","attrName","intValue","stringValue","hexadecimalIntegerAsNumber","comparisonFn","minIndex","maxIndex","currentIndex","currentElement","comparisonResult","BufferHelper","_logger__WEBPACK_IMPORTED_MODULE_0__","noopBuffered","maxHoleDuration","vbuffered","buffered2","buf2len","buf2end","bufferStartNext","bufferStart","Row","CaptionScreen","VerboseLevel","specialCea608CharsCodes","getCharForByte","_byte","charCode","NR_ROWS","NR_COLS","rowsLowCh1","rowsHighCh1","rowsLowCh2","rowsHighCh2","backgroundColors","CaptionsLogger","verboseLevel","severity","numArrayToHexArray","numArray","hexArray","PenState","foreground","underline","italics","flash","setStyles","attribs","isDefault","newPenState","StyledUnicodeChar","uchar","penState","setChar","setPenState","newChar","chars","currPenState","cueStartTime","_proto4","setCursor","absPos","moveCursor","relPos","newPos","backSpace","insertChar","_byte2","_char","clearFromPos","startPos","clearToEndOfRow","getTextString","_char2","setPenStyles","currRow","nrRollUpRows","lastOutputScreen","_proto5","_char3","setPen","setPAC","pacData","newRow","row","topRowIndex","prevLineTime","indent","prevPos","setBkgData","bkgData","setRollUpRows","nrRows","rollUp","TEXT","getDisplayText","topRow","asOneRow","displayText","rowNr","rowText","getTextAndFormat","Cea608Channel","channelNumber","outputFilter","chNr","verbose","displayedMemory","nonDisplayedMemory","currRollUpRow","writeScreen","_proto6","getHandler","setHandler","setMode","newMode","insertChars","outputDataUpdate","ccRCL","ccBS","ccAOF","ccAON","ccDER","ccRU","ccFON","ccRDC","ccTR","ccRTD","ccEDM","ccCR","ccENM","ccEOC","ccTO","nrCols","ccMIDROW","colorIndex","dispatchCue","cueSplitAtTime","Cea608Parser","out1","out2","channels","currentChannel","cmdHistory","_proto7","channel","byteList","cmdFound","charsFound","DATA","parseCmd","parseMidrow","parsePAC","parseBackgroundAttributes","parseChars","currChNr","WARNING","hasCmdRepeated","setLastCmd","interpretPAC","_byte3","pacIndex","channelNr","oneCode","charCodes","charCode1","hexCodes","isCodecType","isCodecSupportedInMp4","sampleEntryCodesISO","a3ds","alac","alaw","dra1","dtsc","dtse","dtsh","enca","g719","g726","m4ae","mha1","mha2","mhm1","mhm2","mlpa","Opus","samr","sawb","sawp","sevc","sqcp","ssmv","twos","ulaw","avc2","avc3","avc4","avcp","av01","drac","dvav","dvhe","encv","hev1","hvc1","mjp2","mp4v","mvc1","mvc2","mvc3","mvc4","resv","rv60","s263","svc1","svc2","vp08","vp09","stpp","wvtt","typeCodes","_vttparser__WEBPACK_IMPORTED_MODULE_0__","_webvtt_parser__WEBPACK_IMPORTED_MODULE_1__","_texttrack_utils__WEBPACK_IMPORTED_MODULE_2__","WHITESPACE_CHAR","captionScreen","indenting","cueText","getCueById","cueA","cueB","findFirstFragWithCC","shouldAlignOnDiscontinuities","findDiscontinuousReferenceFrag","adjustSlidingStart","alignStream","alignPDT","alignFragmentByPDTDelta","alignMediaPlaylistByPDT","_logger__WEBPACK_IMPORTED_MODULE_1__","_controller_level_helper__WEBPACK_IMPORTED_MODULE_2__","firstFrag","currentFrag","prevDetails","prevFrags","curFrags","prevStartFrag","adjustFragmentStart","referenceFrag","alignDiscontinuities","lastDetails","lastPDT","newPDT","refDetails","_utils_ewma__WEBPACK_IMPORTED_MODULE_0__","EwmaBandWidthEstimator","slow","fast","defaultEstimate","defaultEstimate_","minWeight_","minDelayMs_","slow_","fast_","halfLife","getTotalWeight","numBytes","durationS","bandwidthInBps","EWMA","estimate","weight","alpha_","estimate_","totalWeight_","adjAlpha","zeroFactor","fetchSupported","_loader_load_stats__WEBPACK_IMPORTED_MODULE_1__","_demux_chunk_cache__WEBPACK_IMPORTED_MODULE_2__","FetchLoader","fetchSetup","requestTimeout","getRequest","abortInternal","_this$callbacks","initParams","signal","getRequestParameters","LENGTH","FetchError","loadProgressively","responseData","loaderResponse","chunkCache","reader","pump","IMSC1_CODEC","parseIMSC1","_mp4_tools__WEBPACK_IMPORTED_MODULE_0__","_vttparser__WEBPACK_IMPORTED_MODULE_1__","_vttcue__WEBPACK_IMPORTED_MODULE_2__","_timescale_conversion__WEBPACK_IMPORTED_MODULE_4__","_webvtt_parser__WEBPACK_IMPORTED_MODULE_5__","HMSF_REGEX","TIME_UNIT_REGEX","textAlignToLineAlign","callBack","errorCallBack","ttml","syncTime","DOMParser","parseFromString","defaultRateInfo","frameRate","subFrameRate","frameRateMultiplier","tickRate","rateInfo","styleElements","collectionToDictionary","getElementCollection","regionElements","cueElements","cueElement","getTextContent","hasAttribute","parseTtmlTime","timestampParsingError","region","ttsNs","getAttributeNS","getTtmlStyles","lineAlign","parseTTML","parentName","childName","elementsWithId","dict","childNodes","_node$childNodes","hasAttributeNS","timeAttributeValue","parseHoursMinutesSecondsFrames","parseTimeUnits","enableLogs","fakeLogger","exportedLogger","consolePrintFn","debugConfig","functions","exportLoggerFunctions","KeySystems","getMediaSource","WebKitMediaSource","bin2str","writeUint32","findBox","parseSegmentIndex","parseInitSegment","getStartDTS","getDuration","computeRawDurationFromSamples","offsetStartDTS","segmentValidRange","appendUint8Array","_typed_array__WEBPACK_IMPORTED_MODULE_0__","_loader_fragment__WEBPACK_IMPORTED_MODULE_1__","endbox","subresults","sidxBox","sidx","referencesCount","referenceIndex","referenceInfo","referenceSize","subsegmentDuration","earliestPresentationTime","traks","_index","hdlrType","soun","vide","fmp4","baseTime","rawDuration","videoDuration","audioDuration","trafs","trackDefault","tfhdFlags","sampleDuration","truns","dur","sampleCount","upper","segmentedRange","moofs","OutputFilter","sendAddTrackEvent","addCueToTrack","clearCurrentCues","removeCuesInRange","getCuesInRange","videoEl","createEvent","initEvent","dispatchEvent","textTrackCue","removeCue","cuesFound","firstCueInRange","getFirstCueIndexAfterTime","toTimescaleFromBase","destScale","srcBase","toTimescaleFromScale","srcScale","toMsFromMpegTsClock","toMpegTsClockFromTimescale","sliceUint8","AllowedDirections","AllowedAlignments","isAllowedValue","lcValue","findAlignSetting","cobj","baseObj","hasBeenReset","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","displayState","getCueAsHTML","WebVTT","convertCueToDOMTree","parseTimeStamp","fixLineBreaks","VTTParser","_vttcue__WEBPACK_IMPORTED_MODULE_0__","computeSeconds","Settings","dflt","defaultKey","integer","parseOptions","keyValueDelim","groupDelim","kv","parseCue","regionList","oInput","consumeTimeStamp","ts","skipWhitespace","settings","vals","vertical","snapToLines","consumeCueSettings","oncue","onparsingerror","onflush","collectNextLine","alreadyCollectedLine","hasSubstring","generateCueId","parseWebVTT","_timescale_conversion__WEBPACK_IMPORTED_MODULE_3__","_remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_4__","LINEBREAKS","startsWith","searchString","vttByteArray","parsingError","vttLines","initPTS90Hz","cueTime","timestampMapMPEGTS","timestampMapLOCAL","inHeader","timestampMap","currCC","cueOffset","webVttMpegTsMapOffset","presentationTime","_prevCC","timeString","mins","cueString2millis","AGE_HEADER_LINE_REGEX","XhrLoader","retryTimeout","onprogress","loadInternal","readystatechange","loadprogress","responseURL","_postcssValueParser2","_parser","_reducer2","_stringifier2","MATCH_CALC","contents","nodes","reducedAst","consoleLogger","concreteLogger","lvl","debugOnly","baseLogger","observers","cloned","_cloned","rej","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","_getLastOfPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","_entityMap","escape","isIE10","ownKeys$1","_objectSpread$1","deepFind","keySeparator","mix","joinedPath","ResourceStore","_EventEmitter","defaultNS","ignoreJSONStructure","silent","addNamespaces","resources","addResource","deep","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","addPostProcessor","translator","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","language","interpolation","resolved","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","ki","looksLikeObjectPath","nestingRegexp","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","defaultVariables","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","fallbackNS","needsZeroSuffixLookup","shouldUseIntlApi","needsContextHandling","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","few","many","createRules","plurals","PluralResolver","compatibilityJSON","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","clonedOptions","handleHasOptions","inheritedOptions","optionsString","doReduce","ownKeys$4","_objectSpread$4","Formatter","NumberFormat","currency","DateTimeFormat","relativetime","ListFormat","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split2","parseFormatStr","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","addResourceBundle","_getLastOfPath2","pushPath","what","fcName","tried","queueLoad","loadOne","prepareLoading","fallbackValue","isUpdate","initImmediate","preload","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","I18n","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","initializedStoreOnce","changeLanguage","usedCallback","resolvedLanguage","setResolvedLanguage","li","lngInLngs","hasLanguageSomeTranslations","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","keyPrefix","fixedT","resultKey","_this$translator","_this$translator2","exists","precheck","preResult","preloaded","newLngs","mergedOptions","membersToCopy","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadLanguages","ifOverflowMatches","alwaysShow","ifOverflow","ReferenceDot","clipPathId","isX","isY","xAxis","yAxis","getCoordinate","dotProps","clipPath","renderDot","isFront","xAxisId","yAxisId","fillOpacity","ReferenceLine","fixedX","fixedY","endPoints","isFixedX","isFixedY","isSegment","_props$viewBox","yCoord","xCoord","_orientation","_coord","_points","_points2","_some","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","getRect","renderRect","detectReferenceElementsDomain","specifiedTicks","lines","areas","idKey","valueKey","finalDomain","key1","key2","isTouch","Brush","leaveTimer","travellerDragStartHandlers","handleDrag","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","handleDragEnd","detachDragEndListener","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","attachDragEndListener","startX","handleTravellerDragStart","endX","lineY","renderDefaultTraveller","travellerWidth","updateId","prevData","prevUpdateId","prevTravellerWidth","prevX","scalePoint","_range","scaleValues","createScale","getIndexInRange","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","prevValue","isFullGap","chartElement","travellerX","traveller","travellerProps","onMouseEnter","onMouseLeave","renderTraveller","_this$props9","_this$state3","getTextOfTick","_this$props10","alwaysShowText","_this$state4","isPanoramic","onMouseMove","onTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","originalModule","constants","parseHalf","mant","arrayBufferToBignumber","buildMap","buildInt32","buildInt64","f1","f2","writeHalf","u32","s16","keySorter","lenA","lenB","nextPowerOf2","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","_0uint","byteUtils","toToken","tokenBytes","token$1","encodeBytes","compareBytes","decodeBytes16","decodeBytes32","decodeBytes64","decodeBytes8","decodeBytesCompact","minor","Hasher","env_js","parseDuration","HTTP","mergeOpts","toUrlString","getAgent","parseDuration__default","debug__default","HTTP__default","mergeOpts__default","getAgent__default","ignoreUndefined","DEFAULT_PROTOCOL","isBrowser","isWebWorker","DEFAULT_PORT","Message","HTTPError","TimeoutError","KEBAB_REGEX","kebabCase","agent","apiPath","Agent","keepAlive","maxSockets","normalizeOptions","handleError","transformSearchParams","Protocols","lengthPrefixedVarSize","table","AddingPeer","DialingPeer","FinalPeer","PeerResponse","QueryError","SendingQuery","Value","HashBase","ARRAY16","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","localStorage","ERR_STREAM_PREMATURE_CLOSE","eos","called","onlegacyfinish","onfinish","writableEnded","finished","readableEnded","endEmitted","onclose","onrequest","req","setHeader","isRequest","zl","zr","sr","hr","fn1","fn2","fn3","fn4","fn5","cr","dr","tr","Algorithm","sha1","sha384","sha512","Stream","PassThrough","CorkedRequest","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","prefinish","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","Timeout","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","unenroll","_unrefActive","_onTimeout","clearImmediate","Cipher","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_unpad","deciphers","modes","createCipher","createCipheriv","Cipheriv","createDecipher","Decipher","Decipheriv","listCiphers","getCiphers","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","Rand","generate","_rand","getBytes","getByte","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","qinv","exponent1","m2","exponent2","elliptic","curves","eddsa","PresetCurve","short","edwards","isInfinity","defineCurve","basis","ripemd","ripemd160","safer","Safer","kStringMaxLength","MAX_LENGTH","MAX_STRING_LENGTH","methods","Node","_baseState","reverseArgs","choice","useDecoder","explicit","_wrap","stateProps","cstate","_useArgs","def","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","entity","_use","_createEncoderBuffer","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","ReporterError","rethrow","pathLen","inherited","tagClass","tagClassByName","tagByName","descriptors","formatRegExp","objects","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","seen","stylize","stylizeNoColor","colors","showHidden","_extend","customInspect","stylizeWithColor","styleType","recurseTimes","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","numLinesEst","reduceToSingleString","debuglog","NODE_DEBUG","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","SafeNodeList","SafeHTMLCollection","_exenv","SafeHTMLElement","HTMLElement","HTMLCollection","NodeList","componentWillMount","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","maybeSnapshot","__suppressDeprecationWarning","handleLoadStart","videoProps","LOAD_START","handleCanPlay","CAN_PLAY","handleWaiting","WAITING","handleCanPlayThrough","CAN_PLAY_THROUGH","handlePlaying","PLAYING","handlePlay","PLAY","handlePause","PAUSE","handleEnd","END","handleSeeking","SEEKING","handleSeeked","SEEKED","handleDurationChange","DURATION_CHANGE","handleTimeUpdate","TIME_UPDATE","handleVolumeChange","VOLUME_CHANGE","handleProgressChange","PROGRESS_CHANGE","handleRateChange","RATE_CHANGE","handleSuspend","SUSPEND","handleAbort","handleEmptied","EMPTIED","handleStalled","STALLED","handleLoadedMetaData","LOADED_META_DATA","handleLoadedData","LOADED_DATA","handleResize","RESIZE","handleSeekingTime","SEEKING_TIME","handleEndSeeking","END_SEEKING","activateTextTrack","ACTIVATE_TEXT_TRACK","_classCallCheck2","_createClass2","_possibleConstructorReturn2","_getPrototypeOf2","_assertThisInitialized2","_inherits2","_propTypes","_classnames","Dom","stepForward","stepBack","sliderActive","sliderInactive","onMouseUp","getPercent","valuenow","valuetext","Slider","handleMouseDown","handleMouseMove","handleMouseUp","handleFocus","handleBlur","handleClick","handleKeyPress","calculateDistance","getProgress","renderChildren","progress","slider","percentage","actions","rates","PlaybackRateMenuButton","handleSelectItem","selectedIndex","onSelectItem","_default","_Menu","_MenuItem","_ClickableComponent","inline","MenuButton","activateIndex","commitSelection","activateMenuItem","renderMenu","handleUpArrow","handleDownArrow","handleEscape","handleReturn","handleTab","handleIndexChange","menuButton","baseForOwn","baseEach","createBaseEach","baseIsArguments","objectProto","isArguments","reIsUint","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","baseIsEqualDeep","bitmask","customizer","castPath","toKey","reIsDeepProp","reIsPlainProp","band","ordinalRange","paddingInner","paddingOuter","pointish","htmlTreeAsString","currentElem","sepLength","nextStr","_htmlElementAsString","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","getLocationHref","oO","supportsFetch","isNativeFetch","supportsNativeFetch","doc","sandbox","contentWindow","supportsReferrerPolicy","referrerPolicy","isChromePackagedApp","hasHistoryApi","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","modifier","asterisk","repeat","escapeGroup","escapeString","encodeURIComponentPretty","pretty","attachKeys","route","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","sjcl","keyexchange","misc","corrupt","bug","notReady","addEntropy","aes","encrypt","bitArray","bitSlice","getPartial","byteswapM","utf8String","toBits","BITS","REMAINING","base64url","ccm","listenProgress","unListenProgress","ocb2","pmac","gcm","pbkdf2","prng","randomWords","isReady","setDefaultParanoia","startCollectors","loadTimeCollector","mouseCollector","keyboardCollector","accelerometerCollector","touchCollector","stopCollectors","touches","accelerationIncludingGravity","ks","adata","cachedPbkdf2","ecc","elGamal","kem","kemtag","ct","unkem","firstSalt","toStr","gOPD","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","copyIsArray","FormatSpecifier","comma","ascendingComparator","TRACEPARENT_REGEXP","extractTraceparentData","traceparent","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ReplicaRejectCode","_heap","_heap8","_knownTags","pushInt","pushInt32","pushInt32Neg","pushInt64","pushInt64Neg","pushFloat","pushFloatSingle","pushFloatDouble","pushTrue","pushFalse","pushUndefined","pushNull","pushInfinity","pushInfinityNeg","pushNaN","pushNaNNeg","pushArrayStart","pushArrayStartFixed","pushArrayStartFixed32","pushArrayStartFixed64","pushObjectStart","pushObjectStartFixed","pushObjectStartFixed32","pushObjectStartFixed64","pushByteString","pushByteStringStart","pushUtf8String","pushUtf8StringStart","pushSimpleUnassigned","pushTagUnassigned","pushTagStart","pushTagStart4","pushTagStart8","pushBreak","_depth","_parents","_currentParent","_closeParent","_push","createTag","createByteString","createUtf8String","createMap","createArray","_dec","hasChildren","tmpKey","_createParent","_res","tagNumber","createByteStringFromHeap","createInt","createInt32","createInt64","createFloat","createFloatSingle","createFloatDouble","createInt32Neg","createInt64Neg","createTrue","createFalse","createNull","createUndefined","createInfinity","createInfinityNeg","createNaN","createNaNNeg","createUtf8StringFromHeap","createSimpleUnassigned","_createArrayStartFixed","len1","len3","len4","_createObjectStartFixed","encodeCBOR","gen","_pushInt","hasParent","_pushTag","pushAny","convert","converters","URLWithLegacySupport","defaultBase","userPass","ProxyMessageKind","arrayLikeToArray","_1negint","_2bytes","_3string","_4array","_5map","_6tag","_7float","invalidMinor","errorer","jump","decodeNegint8","decodeNegint16","decodeNegint32","decodeNegint64","decodeStringCompact","decodeString8","decodeString16","decodeString32","decodeString64","decodeArrayCompact","decodeArray8","decodeArray16","decodeArray32","decodeArray64","decodeArrayIndefinite","decodeMapCompact","decodeMap8","decodeMap16","decodeMap32","decodeMap64","decodeMapIndefinite","decodeTagCompact","decodeTag8","decodeTag16","decodeTag32","decodeTag64","decodeUndefined","decodeFloat16","decodeFloat32","decodeFloat64","decodeBreak","quick","quickEncodeToken","neg1b","pos1b","encodeNegint","MIN_SAFE_INTEGER","totLength","retainStringBytes","_pos","encodeArray","allowIndefinite","encodeMap","encodeTag","createToken","allowNaN","allowInfinity","encodeFloat","float64","encodeFloat16","readFloat16","ui8a","encodeFloat32","readFloat32","setFloat64","readFloat64","setUint16","setFloat32","valu32","mantissa","logicalExponent","getFloat32","getFloat64","allowUndefined","coerceUndefinedToNull","base2","base8","base10","base16","base36","sha2","identity$1","createCodec","ascii","BASES","latin1","binary","arrays","IS_ENV_WITH_DOM","nodeType","IS_ELECTRON","IS_BROWSER","IS_ELECTRON_MAIN","IS_ELECTRON_RENDERER","IS_NODE","IS_WEBWORKER","importScripts","WorkerGlobalScope","IS_TEST","NODE_ENV","IS_REACT_NATIVE","isTest","isElectronMain","isElectronRenderer","isEnvWithDom","formatArgs","useColors","lastC","setItem","removeItem","getItem","__nwjs","WebkitAppearance","firebug","$1","localstorage","throwHttpErrors","timedOut","fromStream","ndjson","post","isNodeReadableStream","asyncIterator","return","isWebReadableStream","releaseLock","isAsyncIterable","streamToAsyncIterator","AbortError","isOptionObject","defaultMergeOptions","concatArrays","getEnumerableOwnPropertyKeys","cloneArray","cloneOptionObject","mergeKeys","resultIndex","errCode__default","Seconds","FractionalNanoseconds","createStat","api","toCoreInterface","provideBufLen","ProvideBufLen","wantlist","Wantlist","peers","Peers","blocksReceived","BlocksReceived","dataReceived","DataReceived","blocksSent","BlocksSent","dataSent","DataSent","dupBlksReceived","DupBlksReceived","dupDataReceived","DupDataReceived","iterable","preventCancel","isBytes","isFileObject","isReadableStream","Writer","BufferWriter","Op","writer","states","writeByte","VarintOp","writeVarint64","writeFixed32","uint32","int32","fromNumber","sint32","uint64","int64","sint64","zzEncode","fixed32","sfixed32","fixed64","sfixed64","double","writeBytes","fork","ldelim","BufferWriter_","Reader","BufferReader","indexOutOfRange","writeLength","create_array","readLongVarint","readFixed32_end","readFixed64","_slice","skipType","wireType","BufferReader_","zzDecode","nativeAbortController","createPut","dagNode","getCodec","objectToCamelWithMetadata","WithLocality","recursive","Pins","toPin","createRmAll","decodeStat","Pinning","Pinned","Queued","Failed","PinCount","pinCount","queued","pinning","pinned","failed","decodeRemoteService","Service","endpoint","ApiEndpoint","encodeEndpoint","numObjects","NumObjects","repoSize","RepoSize","repoPath","RepoPath","Version","storageMax","StorageMax","progressFn","onUploadProgress","createProgressHandler","createOnUploadProgress","peerId","addresses","paramsSerializer","serializedParams","hashmarkIndex","isAxiosError","fileName","lineNumber","columnNumber","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","Authorization","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","onDownloadProgress","cancelToken","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","_finalized","throwIfNotStringOrBuffer","ReadableState","EElistenerCount","debugUtil","createReadableStreamAsyncIterator","BufferList","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","emitClose","autoDestroy","awaitDrain","readingMore","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","dests","wrap","_fromList","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","rState","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writechunk","rs","needTransform","writeencoding","err2","sigma0","sigma1","gamma0","_g","_h","T1","T2","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","fh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","readableHwm","readableHighWaterMark","needMoreData","hasStrings","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","MAX_ALLOC","checkParameters","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","sTable","substitute","permuteTable","padSplit","DESState","DES","_desState","deriveKeys","shiftTable","kL","kR","inOff","outOff","_encrypt","_decrypt","lStart","rStart","keyL","keyR","incr32","getBlock","_cipher","_prev","chunkNum","GHASH","StreamCipher","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_alen","_mode","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","FIVE","THREE","ELEVEN","_getPrimes","bn","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","rn1","getDivisor","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","SHA256","sha512_K","SHA512","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","move","_move","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","bignum","encoders","der","pem","DEREncoder","DERNode","encodedTag","lenOctets","unused","ident","objid","_getEncoder","dataBuffer","defaultBuffer","DERDecoder","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","mon","sec","_getDecoder","i2ops","paddedMsg","uint32ToHex","normalizeInput","debugPrint","testSpeed","hashFn","startMs","genMs","hashHex","hashMs","onCanceled","unsubscribe","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","isAuthenticated","UNAUTHENTICATED","GOOGLE_CREDENTIALS","FIRST_PARTY","MOCK_USER","CANCELLED","INVALID_ARGUMENT","DEADLINE_EXCEEDED","NOT_FOUND","ALREADY_EXISTS","PERMISSION_DENIED","RESOURCE_EXHAUSTED","FAILED_PRECONDITION","ABORTED","OUT_OF_RANGE","UNIMPLEMENTED","UNAVAILABLE","DATA_LOSS","FirebaseError","invalidateToken","enqueueRetryable","shutdown","currentUser","addAuthTokenListener","removeAuthTokenListener","getUid","getAuthHeaderValueForFirstParty","addTokenListener","removeTokenListener","nt","previousValue","sequenceNumberHandler","writeSequenceNumber","ut","nanoseconds","fromMillis","toMillis","_compareTo","at","compareTo","toMicroseconds","toTimestamp","ht","ft","comparator","popFirst","popLast","firstSegment","lastSegment","isPrefixOf","isImmediateParentOf","canonicalString","wt","isValidIdentifier","isKeyField","binaryString","toBase64","toUint8Array","approximateByteSize","EMPTY_BYTE_STRING","It","Et","nanos","Tt","At","fromBase64String","fromUint8Array","Rt","mapValue","fields","__type__","Pt","__previous_value__","bt","__local_write_time__","timestampValue","vt","databaseId","persistenceKey","ssl","autoDetectLongPolling","useFetchStreams","Vt","database","isDefaultDatabase","St","Dt","Nt","emptyPath","collectionGroup","hasCollectionId","getCollectionGroup","getCollectionPath","xt","kt","Ot","booleanValue","bytesValue","referenceValue","geoPointValue","latitude","longitude","doubleValue","Mt","$t","Ft","Bt","Lt","fromName","qt","Kt","Gt","jt","Qt","Wt","zt","getFieldsMap","setAll","applyChanges","Jt","documentType","readTime","documentState","convertToFoundDocument","convertToNoDocument","convertToUnknownDocument","setHasCommittedMutations","setHasLocalMutations","setReadTime","hasLocalMutations","hasCommittedMutations","hasPendingWrites","isValidDocument","isFoundDocument","isNoDocument","isUnknownDocument","mutableCopy","Yt","indexId","indexState","UNKNOWN_ID","orderBy","filters","startAt","endAt","inclusive","Ie","isDocumentKey","ce","ue","fe","de","we","ae","le","nullValue","me","ge","pe","Ee","explicitOrderBy","limitType","Te","Ae","Re","Pe","ve","Ve","Se","keyField","De","Ce","Ne","ke","Oe","Me","$e","Fe","Be","Ue","qe","je","Qe","We","ze","He","Ge","Ye","Ke","Je","Xe","updateTime","rn","fieldTransforms","transformResults","precondition","dn","cn","wn","hn","an","tn","fieldMask","pn","In","Tn","An","Pn","EMPTY","insert","BLACK","minKey","maxKey","inorderTraversal","reverseTraversal","getIterator","Rn","getIteratorFrom","getReverseIterator","getReverseIteratorFrom","isReverse","nodeStack","getNext","hasNext","RED","fixUp","removeMin","isRed","moveRedLeft","rotateRight","moveRedRight","rotateLeft","colorFlip","checkMaxDepth","check","forEachInRange","forEachWhile","firstAfterOrEqual","unionWith","Sn","Dn","Cn","Nn","kn","On","Mn","$n","Fn","snapshotVersion","targetChanges","targetMismatches","documentUpdates","resolvedLimboDocuments","Bn","createSynthesizedTargetChangeForCurrentChange","resumeToken","addedDocuments","modifiedDocuments","removedDocuments","Ln","removedTargetIds","Un","targetId","qn","targetIds","cause","Kn","Qn","et","Gn","jn","forEachTarget","removeTarget","newNoDocument","yt","purpose","getRemoteKeysForTarget","Wn","asc","zn","in","Hn","Jn","Yn","Zn","fromTimestamp","vs","os","documents","structuredQuery","collectionId","allDescendants","unaryFilter","Ts","fieldFilter","Es","compositeFilter","where","Is","gs","As","Ps","Rs","fieldPath","fromServerFormat","Vs","Ds","Ss","ownerId","allowTabSynchronization","leaseTimestampMs","userId","lastAcknowledgedBatchId","lastStreamToken","keyPath","Os","batchId","localWriteTimeMs","baseMutations","mutations","userMutationsIndex","userMutationsKeyPath","Ms","PLACEHOLDER","Bs","unknownDocument","noDocument","parentPath","readTimeIndex","readTimeIndexPath","collectionReadTimeIndex","collectionReadTimeIndexPath","Ls","byteSize","Us","canonicalId","lastListenSequenceNumber","lastLimboFreeSnapshotVersion","queryTargetsIndexName","queryTargetsKeyPath","documentTargetsIndex","documentTargetsKeyPath","Ks","highestTargetId","highestListenSequenceNumber","lastRemoteSnapshotVersion","targetCount","Gs","js","clientId","updateTimeMs","networkEnabled","inForeground","Qs","bundleId","createTime","Ws","bundledQuery","collectionGroupIndex","collectionGroupIndexPath","Hs","documentKey","largestBatchId","sequenceNumberIndex","sequenceNumberIndexPath","Js","directionalValue","documentKeyIndex","documentKeyIndexPath","Ys","collectionPath","documentId","overlayMutation","collectionPathOverlayIndex","collectionPathOverlayIndexPath","collectionGroupOverlayIndex","collectionGroupOverlayIndexPath","Xs","Zs","ei","onCommittedListeners","addOnCommittedListener","raiseOnCommittedEvent","nextCallback","catchCallback","isDone","callbackAttached","wrapFailure","wrapSuccess","toPromise","wrapUserFunction","waitFor","ui","wi","localWriteTime","applyToRemoteDocument","mutationResults","applyToLocalView","applyToLocalDocumentSet","gi","mutation","getKey","withSequenceNumber","withResumeToken","withLastLimboFreeSnapshotVersion","Ht","Si","$i","Xt","Zt","te","Wi","addToCollectionParentIndex","getCollectionParents","getEntries","addFieldIndex","deleteFieldIndex","getDocumentsMatchingTarget","getFieldIndex","getFieldIndexes","getNextCollectionGroupToUpdate","updateCollectionGroup","updateIndexEntries","cacheSizeCollectionThreshold","percentileToCollect","maximumSequenceNumbersToCollect","DEFAULT_COLLECTION_PERCENTILE","DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT","DEFAULT","DISABLED","_r","Er","mapKeyFn","equalsFn","Tr","changesApplied","addEntry","assertNotApplied","removeEntry","newInvalidDocument","getEntry","getFromCache","getAllFromCache","Mr","indexManager","ys","getAllMutationBatchesAffectingDocumentKey","getAllMutationBatchesAffectingDocumentKeys","getAll","getAllMutationBatchesAffectingQuery","$r","fromCache","docChanges","Fr","Cs","Ns","Br","persistence","$s","Fs","getRemoteDocumentCache","getTargetCache","getBundleCache","getIndexManager","getMutationQueue","setIndexManager","collectGarbage","runTransaction","collect","Lr","Ur","getAllMutationBatches","removedBatchIds","addedBatchIds","Kr","getLastRemoteSnapshotVersion","jr","Wr","getTargetData","allocateTargetId","currentSequenceNumber","addTargetData","referenceDelegate","Hr","getMatchingKeysForTargetId","eo","getBundleMetadata","saveBundleMetadata","getNamedQuery","saveNamedQuery","no","overlays","getOverlay","saveOverlays","removeOverlaysForBatchId","getOverlaysForCollection","getOverlaysForCollectionGroup","so","addReference","ti","removeReference","ri","containsKey","oi","ci","checkEmpty","addMutationBatch","lookupMutationBatch","ai","getNextMutationBatchAfterBatchId","getHighestUnacknowledgedBatchId","removeMutationBatch","fi","markPotentiallyOrphaned","performConsistencyCheck","oo","di","docs","newChangeBuffer","co","uo","mi","getHighestSequenceNumber","setTargetsMetadata","Ze","updateTargetData","removeTargetData","removeTargets","removeMatchingKeysForTargetId","getTargetCount","addMatchingKeys","removeMatchingKeys","ao","xn","Ii","started","setDatabaseDeletedListener","setNetworkEnabled","getDocumentOverlayCache","ho","Ei","Ti","Ai","Ri","Pi","vi","fromPath","Vi","updateLimboDocument","Io","activeTargetIds","Ci","Ni","Di","To","wr","onlineStateHandler","addPendingMutation","updateMutationState","addLocalQueryTarget","updateQueryState","removeLocalQueryTarget","isLocalQueryTarget","clearQueryState","getAllActiveQueryTargets","isActiveQueryTarget","handleUserChange","setOnlineState","notifyBundleLoaded","Ao","mr","Ro","gr","yr","Ir","Po","BatchGetDocuments","Commit","RunQuery","bo","Ar","Rr","Pr","vr","Vr","onMessage","Sr","Dr","Cr","Nr","vo","databaseInfo","Or","forwardChannelRequestTimeoutMs","So","Do","Co","timerId","qr","Gr","Qr","Jr","enqueueAfterDelay","Yr","skipDelay","Xr","Zr","authCredentialsProvider","appCheckCredentialsProvider","fo","_o","wo","mo","yo","po","Eo","enqueueAndForget","xo","targetChange","targetChangeType","documentChange","newFoundDocument","documentDelete","documentRemove","addTarget","Oo","authCredentials","appCheckCredentials","Mo","asyncQueue","ko","$o","Fo","Bo","Lo","localStore","datastore","remoteSyncer","Uo","qo","Ko","Go","jo","Qo","Wo","zo","Ho","Jo","rejectListen","Yo","applyRemoteEvent","verifyOperationInProgress","handleCredentialChange","targetTimeMs","removalCallback","timerHandle","handleDelayElapsed","keyedMap","sortedSet","oldDocs","mutatedKeys","syncStateChanged","excludesMetadataChanges","emptySet","Xo","queries","onlineState","Zo","onListen","onUnlisten","includeMetadataChanges","fromInitialDocuments","remoteStore","eventManager","sharedClientState","maxConcurrentLimboResolutions","isPrimaryClient","hu","trackRemovals","tu","du","synchronizeTabs","gcScheduler","initialUser","bi","mu","createDatastore","createRemoteStore","createEventManager","syncEngine","createSyncEngine","yu","Tu","authCredentialListener","appCheckCredentialListener","setCredentialChangeListener","setAppCheckTokenChangeListener","verifyNotTerminated","isShuttingDown","enterRestrictedMode","enqueueAndForgetEvenWhileRestricted","onlineComponents","offlineComponents","Au","getConfiguration","Ru","Pu","bu","Cu","qu","Ku","ju","Wu","zu","Ju","ignoreUndefinedProperties","cacheSizeBytes","experimentalForceLongPolling","experimentalAutoDetectLongPolling","Gu","Yu","_authCredentials","_appCheckCredentials","_persistenceKey","_settings","_settingsFrozen","_databaseId","_app","_initialized","_terminated","_terminateTask","_setSettings","sessionIndex","iamToken","_getSettings","_freezeSettings","_terminate","Zu","converter","firestore","_path","withConverter","_query","fu","_u","wu","gu","visibilityState","enqueue","pu","Iu","Eu","createAndSchedule","_queue","_firestoreClient","_internalPath","_byteString","_lat","_long","nh","ih","_firestore","_userDataWriter","_converter","rh","fromFirestore","convertValue","oh","uh","_firestoreImpl","serverTimestamps","_snapshot","_cachedChanges","_cachedChangesIncludeMetadataChanges","oldIndex","lh","convertTimestamp","convertServerTimestamp","convertBytes","convertReference","convertGeoPoint","convertArray","convertObject","convertDocumentKey","Bh","Hh","Xh","findTabbableDescendants","descendants","shadowRoot","tabbable","tabbableNode","hidesContents","zeroSize","getComputedStyle","getPropertyValue","scrollWidth","scrollHeight","focusable","isTabIndexNotNaN","parentElement","rootNode","getRootNode","isTabIndexNaN","resetState","globalElement","assertNodeList","setElement","useElement","_safeHTMLElement","validateElement","appElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","show","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","selector","portalOpenInstances","openInstances","PortalOpenInstances","register","openInstance","deregister","subscribers","eventType","subscriber","_player","_operation","Fullscreen","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","BigPlayButton","hasStarted","currentSrc","LoadingSpinner","poster","PosterImage","backgroundImage","_utils","playsInline","crossOrigin","onLoadStart","onCanPlay","onCanPlayThrough","onEnded","onSeeking","onSeeked","onPlay","onPause","onDurationChange","onSuspend","onEmptied","onStalled","onLoadedData","onTimeUpdate","onRateChange","onVolumeChange","onResize","Video","getProperties","handleEnded","handleProgress","handleKeypress","handleTextTrackChange","forceUpdate","onaddtrack","onremovetrack","activeTextTrack","_this$video","_this$video2","canPlayType","_this$props11","_this$props12","_this$props13","_this$props14","_this$props15","_this$props16","_this$props17","_this$props18","_this$props19","_this$props20","_this$props21","_this$props22","_this$props23","_this$props24","_this$props25","cprops","preOnError","_this$props26","videoId","videoWidth","videoHeight","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","Bezel","subscribeToOperationStateChange","handleStateChange","_defineProperty2","_dom","clickable","dblclickable","shortcuts","Shortcut","defaultShortcuts","mergeShortcuts","handleDoubleClick","getShortcutKey","_ref$keyCode","_ref$ctrl","ctrl","_ref$shift","_ref$alt","shortcut","mergedShortcuts","gradeShortcut","activeElement","canBeClicked","autoHide","autoHideTime","disableDefaultControls","disableCompletely","ControlBar","getDefaultChildren","getFullChildren","getChildren","_extends2","ProgressControl","mouseTime","handleMouseMoveThrottle","seekBar","newTime","SeekBar","getNewTime","_this$props$player","seekingTime","_this$props$player2","PlayProgressBar","LoadProgressBar","bufferedEnd","percentify","MouseTimeDisplay","PlayToggle","controlText","ForwardControl","ForwardReplayControl","ReplayControl","FullscreenToggle","RemainingTimeDisplay","_ref$player","remainingTime","formattedTime","CurrentTimeDisplay","DurationDisplay","TimeDivider","separatorText","_PopupButton","_VolumeBar","alwaysShowVolume","VolumeMenuButton","volumeLevel","ClickableComponent","Tag","baseFor","stubFalse","freeExports","freeModule","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","funcToString","SetCache","arraySome","cacheHas","equalFunc","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","setCacheAdd","setCacheHas","srcValue","isKey","stringToPath","baseToString","fromRight","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","arrayPush","isFlattenable","reHasUnicode","computed","flip","_convert","_convert2","operator","convertMathExpression","_node","flipValue","isValueType","reduceAddSubExpression","reduceDivisionExpression","reduceMultiplicationExpression","reduceMathExpression","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","_reactDom","_reactLifecyclesCompat","initialStatus","transitionGroup","isMounting","appearStatus","unmountOnExit","mountOnEnter","getChildContext","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onEntering","onTransitionEnd","onEntered","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","childProps","classNamesShape","timeoutsShape","_ChildMapping","handleExited","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","charenc","stringToBytes","bin","memoBuilder","hasWeakSet","WeakSet","ignoreDuration","startingTime","ipAddress","ip_address","did","email","user_agent","registerErrorInstrumentation","errorCallback","activeTransaction","arraybuffer","encoded1","encoded2","encoded3","encoded4","bufferLength","each","fieldContentRegExp","serializeCookie","maxAge","expires","httpOnly","secure","sameSite","cookie","cookieOptions","nameEQ","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","testKey","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","MAX_SIGNED_31_BIT_INT","createEventEmitter","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","oldValue","_Component2","onUpdate","observedBits","arrayWithHoles","iterableToArrayLimit","nonIterableRest","React__default","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","recordedState","hasElementType","hasMap","hasSet","hasArrayBuffer","$$typeof","_Base64","Base64","b64chars","b64tab","cb_utob","re_utob","utob","cb_encode","ccc","padlen","ord","mkUriSafe","m0","urisafe","re_btou","cb_btou","cccc","btou","cb_decode","_atob","_fromURI","noConflict","VERSION","fromBase64","noEnum","extendString","Mime","definition","strArray","resultArray","readChar","toDataView","defaultPadding","promisifyRequest","promisifyRequestCall","promisifyCursorRequestCall","Cursor","proxyProperties","ProxyClass","targetProp","proxyRequestMethods","proxyMethods","proxyCursorRequestMethods","Index","_cursor","ObjectStore","_store","Transaction","idbTransaction","_tx","oncomplete","UpgradeDB","_db","DB","openDb","upgradeCallback","deleteDb","IDBIndex","IDBCursor","createIndex","IDBObjectStore","IDBTransaction","IDBDatabase","funcName","nativeObject","iterateCursor","continue","acceptedFilesArray","baseMimeType","validType","argIndex","framesToPop","_Linkify","_Linkify2","declaration","declarations","hasIterator","ORIENT_MAP","originCoordinate","isFinit","deferClear","getDisplayedData","graphicalItems","dataStartIndex","dataEndIndex","itemsData","itemData","getTooltipContent","chartData","activeIndex","activeLabel","tooltipAxis","displayedData","getTooltipData","rangeObj","rangeData","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","activePayload","activeCoordinate","_angle","_radius","getActiveCoordinate","activeTooltipIndex","getAxisMap","_ref4$axisType","AxisComp","axisIdKey","axes","stackOffset","duplicate","errorBarsDomain","axisDomain","getAxisMapByAxes","Axis","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","generateCategoricalChart","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","globalMaxBarSize","_getAxisNameByLayout","hasGraphicalBarItem","formattedItems","childMaxBarSize","axisObj","_objectSpread6","cateAxis","cateTicks","itemIsBar","barPosition","_getBandSizeOfAxis","barBandSize","_objectSpread7","composedFn","getComposedData","childIndex","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","offsetH","offsetV","brushBottom","legendBBox","ticksObj","tooltipAxisBandSize","tooltipTicksGenerator","CategoricalChartWrapper","uniqueChartId","legendInstance","deferId","clearDeferId","handleLegendBBoxUpdate","handleReceiveSyncEvent","cId","chartId","syncId","applySyncEvent","handleBrushChange","_ref9","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","_nextState","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseLeave","cancelThrottledTriggerAfterMouseMove","handleOuterEvent","eventName","_nextState2","handleTouchStart","handleTouchEnd","verticalCoordinatesGenerator","_ref10","horizontalCoordinatesGenerator","_ref11","axesTicksGenerator","renderCursor","tooltipEventType","getTooltipEventType","cursorComp","Cross","getCursorRectangle","_this$getCursorPoints","getCursorPoints","Sector","cursorProps","payloadIndex","renderPolarAxis","axisOption","renderXAxis","renderAxis","renderYAxis","renderGrid","_find","renderPolarGrid","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","renderLegend","legend","renderTooltip","tooltipItem","_this$state5","renderBrush","_this$state6","renderReferenceElement","_this$state7","_element$props2","renderActivePoints","_ref12","activePoint","basePoint","isRange","_item$item$props","activeDot","renderActiveDot","renderGraphicChild","filterFormatItem","_this$state8","_item$item$props2","hasActive","itemEvents","onCLick","renderCustomized","throttleDelay","_throttle","_isBoolean","containerOffset","_this$state9","xScale","yScale","xValue","yValue","toolTipData","_this$state10","_this$state11","_cx","_cy","innerPoint","outerPoint","_this$state12","tooltipEvents","onTouchEnd","syncMethod","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","_activeBarItem","CartesianGrid","XAxis","YAxis","Bar","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","parseEventsOfWrapper","defaultState","prevHeight","prevLayout","prevStackOffset","prevMargin","_defaultState","keepFromPrevState","updatesToState","newUpdateId","dot","createFind","debounce","trailing","baseSome","baseAssignValue","HAS_WEAKSET_SUPPORT","sameValueZeroEqual","isPromiseLike","isReactElement","getNewCacheFallback","getNewCache","createCircularEqualCreator","_comparator","isCacheableA","isCacheableB","hasA","hasB","areArraysEqual","areMapsEqual","aKey","bKey","OWNER","areObjectsEqual","reactElementA","reactElementB","areRegExpsEqual","ignoreCase","multiline","unicode","sticky","areSetsEqual","HAS_MAP_SUPPORT","HAS_SET_SUPPORT","createComparator","createIsEqual","aShape","bShape","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","deltaRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","FiExternalLink","__spreadArray","crypt","digestbytes","wordsToBytes","bytesToWords","H0","H1","H2","H3","H4","asBytes","asString","bytesToHex","_blocksize","_digestsize","IoMdAnalytics","BiSearch","DetailedError","causingErr","originalRequest","originalResponse","causingError","requestId","getHeader","getMethod","getURL","getBody","isEnabled","uploadUrl","uploadSize","onChunkComplete","_onUploadUrlAvailable","overridePatchMethod","addRequestId","onBeforeRequest","onAfterResponse","onShouldRetry","retryDelays","parallelUploads","storeFingerprintForResuming","removeFingerprintOnSuccess","uploadLengthDeferred","uploadDataDuringCreation","urlStorage","fileReader","httpStack","BaseUpload","_urlStorage","_req","_urlStorageKey","_aborted","_source","_retryAttempt","_retryTimeout","_offsetBeforeRetry","_parallelUploads","_parallelUploadUrls","findUploadsByFingerprint","previousUpload","parallelUploadUrls","urlStorageKey","optionName","_emitError","openFile","_startParallelUpload","_startSingleUpload","totalSize","totalProgress","partCount","previousUrls","partSize","splitSizeIntoParts","uploads","lastPartProgress","newPartProgress","_emitProgress","_saveUploadInUrlStorage","_openRequest","encodeMetadata","_sendRequest","inStatusCategory","resolveUrl","_emitSuccess","_emitHttpError","_resumeUpload","_createUpload","shouldTerminate","_removeFromUrlStorage","shouldRetry","bytesSent","bytesTotal","bytesAccepted","_addChunkToRequest","_handleUploadResponse","_performUpload","setProgressHandler","_emitChunkComplete","openRequest","_this10","removeUpload","_this11","storedUpload","creationTime","addUpload","sendRequest","remainingDelays","newOptions","encoded","retryAttempt","online","onLine","NoopUrlStorage","hasStorage","SECURITY_ERR","canStoreURLs","WebStorageUrlStorage","_findEntries","XHRHttpStack","_method","_headers","progressHandler","isCordova","PhoneGap","Cordova","cordova","FileSource","_file","FileReader","readAsArrayBuffer","blobOrArray","StreamSource","_chunkSize","_bufferOffset","_reader","_done","_readUntilEnoughDataOrDone","hasEnoughData","_getDataFromBuffer","hasAllDataBeenRead","HttpStack","exifHash","exif","hashCode","reactNativeFingerprint","lastModified","Upload","_BaseUpload","_window","URI_HANDSHAKE_PREFIX","URI_SKYNET_PREFIX","addSubdomain","urlObj","trimSuffix","addUrlQuery","throwValidationError","urljoin","getFullDomainUrlForPortal","portalUrl","validateString","trimForwardSlash","trimUriPrefix","addPath","defaultParseSkylinkOptions","fromSubdomain","includePath","onlyPath","SKYLINK_MATCHER","SKYLINK_DIRECT_REGEX","SKYLINK_PATHNAME_REGEX","SKYLINK_SUBDOMAIN_REGEX","parseSkylink","skylinkUrl","customOptions","validateOptionalObject","matchHostname","parseSkylinkBase32","matchDirect","skylinkAndPath","matchPathname","validateBigint","valueKind","validateBoolean","validateObject","validateSkylinkString","parsedSkylink","validateStringLen","actualLen","validateHexString","isHexString","validateUint8Array","validateUint8ArrayLen","actualValue","ensurePrefix","trimPrefix","longPrefix","shortPrefix","strLower","stringToUint8ArrayUtf8","uint8ArrayToStringUtf8","hexToUint8Array","toHexString","getFileMimeType","mime","getType","DEFAULT_BASE_OPTIONS","APIKey","customUserAgent","customCookie","extractOptions","MAX_REVISION","assertUint64","BASE32_ENCODING_VARIANT","decodeSkylinkBase32","skylink","base32Decode","decodeSkylinkBase64","encodeSkylinkBase64","encodePrefixedBytes","uint8Bytes","encodeUtf8String","encodeNumber","PUBLIC_KEY_LENGTH","SIGNATURE_LENGTH","newHash","hashAll","hashDataKey","hashRegistryEntry","registryEntry","hashedDataKeyHex","dataKeyBytes","encodeBigintAsUint64","revision","RAW_SKYLINK_SIZE","EMPTY_SKYLINK","SiaSkylink","bitfield","merkleRoot","getUint16","decodeSkylink","SiaPublicKey","marshalSia","SPECIFIER_LEN","newEd25519PublicKey","newSpecifier","publicKeyBytes","newSkylinkV2","siaPublicKey","tweak","pubKey","deriveRegistryEntryID","convertSkylinkToBase32","base32Encode","encodeSkylinkBase32","formatSkylink","TUS_CHUNK_SIZE","PORTAL_FILE_FIELD_NAME","DEFAULT_UPLOAD_OPTIONS","endpointUpload","endpointLargeUpload","customFilename","errorPages","largeFileSize","tryFiles","uploadFile","uploadSmallFile","uploadLargeFile","uploadSmallFileRequest","validateUploadResponse","validateFile","ensureFileObjectConsistency","executeRequest","endpointPath","uploadLargeFileRequest","validateLargeUploadResponse","buildRequestUrl","buildRequestHeaders","resp","tusOpts","filetype","getUnderlyingObject","uploadDirectory","directory","uploadDirectoryRequest","tryfiles","errorpages","DEFAULT_GET_ENTRY_OPTIONS","endpointGetEntry","DEFAULT_SET_ENTRY_OPTIONS","endpointSetEntry","REGEX_REVISION_NO_QUOTES","REGEX_REVISION_WITH_QUOTES","ED25519_PREFIX","getEntryUrl","handleGetEntryErrResponse","signedEntry","signatureBytes","validatePublicKey","dataKeyHashHex","publickey","datakey","getEntryUrlForPortal","getEntryLink","getEntryLinkAsync","setEntry","validateRegistryEntry","privateKeyArray","signEntry","publicKeyArray","postSignedEntry","entryData","DEFAULT_DOWNLOAD_OPTIONS","endpointDownload","download","DEFAULT_GET_METADATA_OPTIONS","endpointGetMetadata","DEFAULT_DOWNLOAD_HNS_OPTIONS","endpointDownloadHns","hnsSubdomain","DEFAULT_RESOLVE_HNS_OPTIONS","endpointResolveHns","downloadFile","getSkylinkUrl","downloadFileHns","getHnsUrl","attachment","skylinkPath","getSkylinkUrlForPortal","getHnsresUrl","getSkylinkUrlOpts","inputSkylink","validateRegistryProofResponse","validateGetMetadataResponse","getFileContent","buildGetFileContentHeaders","validateGetFileContentResponse","getFileContentHns","resolveHns","openFileHns","validateResolveHnsResponse","entryLink","dataLink","proof","proofArray","isSkylinkV1","resolverSkylink","lastSkylink","publicKeyHex","rawData","entryToVerify","validateRegistryProof","ENCRYPTION_HIDDEN_FIELD_METADATA_LENGTH","decryptJSONFile","kib","checkPaddedBlock","padFileSize","metadataBytes","decodeEncryptedFileMetadata","decryptedBytes","paddingIndex","encryptJSONFile","ENCRYPTION_OVERHEAD_LENGTH","encryptedBytes","encodeEncryptedFileMetadata","finalBytes","deriveEncryptedFileKeyEntropy","pathSeed","deriveEncryptedFileTweak","hashBytes","initialSize","paddingBlock","deriveDiscoverableFileTweak","DiscoverableBucketTweak","splitPath","pathHashes","hashPathComponent","pathLevel","DEFAULT_GET_JSON_OPTIONS","cachedDataLink","DEFAULT_SET_JSON_OPTIONS","getJSON","getSkyDBRegistryEntry","rawDataLink","parseDataLink","checkCachedDataLink","downloadOpts","actualData","setJSON","getOrCreateRegistryEntry","setEntryOpts","deleteJSON","getEntryOpts","getNextRegistryEntry","setDataLink","getRawBytes","getNextRevisionFromEntry","fullData","_v","dataKeyHex","uploadOpts","skyfilePromise","entryPromise","skyfile","areEqualUint8Arrays","legacy","userID","registryGetEntryLink","getEntryData","getJSONEncrypted","DEFAULT_PIN_OPTIONS","endpointPin","pinSkylink","extraPath","validatePinResponse","returnedSkylink","MARKER","createUniqueIdFn","__id","MessageType","ConcreteEmitter","isMessage","makeCallbackEvent","makeResponseEvent","ProxyType","Dispatcher","_ConcreteEmitter","messenger","removeMessengerListener","addMessageListener","messengerListener","Call","isResponseMessage","isEventMessage","Callback","isCallbackMessage","transfer","callbackEvent","responseEvent","createCallMessage","createResponsMessage","callbackId","createCallbackMessage","createEventMessage","ParentHandshakeDispatcher","_ConcreteEmitter2","_super2","HandshakeResponse","HandshakeRequest","createCallbackProxy","ConcreteRemoteHandle","_ConcreteEmitter4","_super4","dispatcher","_dispatcher","_callTransfer","_handleEvent","customCall","sanitizedArgs","hasCallbacks","callbackListener","_this6$_callTransfer","_this6$_dispatcher$ca","callOnRemote","ConcreteLocalHandle","localMethods","_methods","_returnTransfer","_emitTransfer","_handleCall","emitToRemote","callMethod","_this7$_methods","desanitizedArgs","callbackToRemote","respondToRemote","ConcreteConnection","_localHandle","_remoteHandle","remoteHandle","uniqueSessionId","runUntil","unfulfilled","maxAttempts","attemptInterval","attempt","ParentHandshake","attemptsInterval","thisSessionId","connected","handshakeDispatcher","initiateHandshake","WindowMessenger","localWindow","remoteWindow","remoteOrigin","outerListener","acceptedOrigin","acceptableMessageEvent","DEFAULT_CONNECTOR_OPTIONS","dev","handshakeMaxAttempts","defaultHandshakeMaxAttempts","handshakeAttemptsInterval","defaultHandshakeAttemptsInterval","childFrame","domainUrl","getFullDomainUrl","createIframe","childWindow","extractDomain","fullDomain","fullDomainObj","extractDomainForPortal","MYSKY_DOMAIN","MYSKY_DEV_DOMAIN","mySkyUiW","mySkyUiH","loadMySky","skappDomain","MySky","New","connector","permissions","hostDomain","dacs","grantedPermissions","pendingPermissions","perm1","Permission","PermCategory","Discoverable","PermType","Write","perm2","Hidden","Read","perm3","promises","dac","loadDac","seedFound","permissionsResponse","failedPermissions","loggedIn","handleLogin","uiWindow","uiConnection","promiseError","controllerError","monitorWindowError","errorWindowClosed","launchUI","connectUi","seedFoundResponse","signRegistryEntry","isDirectory","getEncryptedFileSeed","getOrCreateRawBytesRegistryEntry","signEncryptedRegistryEntry","errorMsg","dispatchedErrorEvent","mySkyUrl","uiUrl","winName","ensureUrl","outerHeight","outerWidth","newWindow","popupCenter","catchError","perms","getPermissions","addPermissions","onUserLogin","SkynetClient","initialPortalUrl","fileGetJSON","fileGetEntryLink","customPortalUrl","resolvedPortalUrl","resolvePortalUrl","initPortalUrl","axios","baseHeaders","returnHeaders","Express","_router","router","setupOnce","originalCallback","wrapMiddlewareArgs","patchMiddleware","instrumentMiddlewares","__sentry_transaction","_usePgNative","usePgNative","native","orig","sql","OPERATIONS","OPERATION_SIGNATURES","bulkWrite","countDocuments","createIndexes","deleteMany","deleteOne","distinct","dropIndex","findOne","findOneAndDelete","findOneAndReplace","findOneAndUpdate","indexExists","insertMany","insertOne","mapReduce","rename","replaceOne","updateMany","updateOne","_operations","operations","_describeOperations","describeOperations","_useMongoose","useMongoose","_instrumentOperations","Collection","_patchOperation","getSpanContext","_getSpanContextFromOperationArguments","lastArg","parentSpan","maybePromise","collectionName","dbName","shouldDescribe","bindReporter","metric","reportAllChanges","forceReport","initMetric","PerformanceObserver","supportedEntryTypes","onHidden","onHiddenOrPageHide","firstHiddenTime","getVisibilityWatcher","timeStamp","reportedMetricIDs","_reportAllChanges","_performanceCursor","mark","_trackCLS","_trackLCP","_trackFID","addPerformanceEntries","responseStartTimestamp","requestStartTimestamp","entryType","addPerformanceNavigationTiming","_startChild","requestStart","responseEnd","responseStart","addRequest","addNavigationSpans","measureStartTimestamp","measureEndTimestamp","addMeasureSpans","firstHidden","shouldRecord","resourceName","initiatorType","transferSize","encodedBodySize","decodedBodySize","addResourceSpans","_trackNavigator","measurementTimestamp","normalizedValue","lcpEntry","clsEntry","tagMetricInfo","_lcpEntry","_clsEntry","effectiveType","isMeasurementValue","rtt","downlink","deviceMemory","hardwareConcurrency","onReport","report","sessionValue","sessionEntries","entryHandler","hadRecentInput","firstSessionEntry","lastSessionEntry","takeRecords","getCLS","visibilityWatcher","getLCP","processingStart","getFID","eventEnd","defaultRequestInstrumentationOptions","traceFetch","traceXHR","tracingOrigins","instrumentOutgoingRequests","shouldCreateSpanForRequest","urlMap","defaultShouldCreateSpan","shouldCreateSpan","handlerData","fetchData","__span","fetchCallback","__sentry_own_request__","__sentry_xhr__","__sentry_xhr_span_id__","status_code","xhrCallback","DEFAULT_BROWSER_TRACING_OPTIONS","markBackgroundTransactions","maxTransactionDuration","routingInstrumentation","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","BrowserTracing","_emitOptionsWarning","_configuredIdleTimeout","_metricOptions","_metrics","_getCurrentHub","instrumentRouting","_createRouteTransaction","statusType","beforeNavigate","parentContextFromHeader","metaName","getMetaContent","getHeaderContext","expandedContext","modifiedContext","finalContext","idleTransaction","maxDuration","adjustTransactionDuration","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","rgb_formatHex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","v1","v3","displayable","formatHsl","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","isNumberArray","genericArray","reA","reB","bm","numberArray","valueAccessor","_last","LabelList","idProps","parseLabelList","ErrorBar","dataPointFormatter","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","yMin","yMax","xMin","xMax","_scale","_xMin","_xMax","_yMin","_yMax","coordinates","ckeckPropsLabel","explicitChilren","implicitLabelList","mainCurve","isAnimationFinished","getStrokeDasharray","remainLength","restLength","remainLines","emptyLines","handleAnimationEnd","handleAnimationStart","animationId","prevAnimationId","curPoints","prevPoints","linesUnit","dotItem","curveDom","errorBarItems","dataPoint","needClip","customDotProps","renderDotItem","dotsProps","curveProps","animateNewValues","prevPointsDiffFactor","stepData","prevPointIndex","interpolatorX","interpolatorY","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","renderCurveWithAnimation","hasSinglePoint","renderCurve","renderErrorBar","renderDots","xAxisTicks","yAxisTicks","useObserver","setTarget","lastHref","instrumented","instrument","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","instrumentDOM","xhrproto","originalOpen","xhrInfo","onreadystatechangeHandler","readyStateArgs","originalSend","instrumentXHR","originalFetch","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","fetchArgs","debounceTimerID","lastCapturedEvent","globalListener","isContentEditable","shouldSkipDOMEvent","shouldShortcircuitPreviousDebounce","e10","e5","e2","step0","step1","IntersectionObserverEntry","startDoc","getFrameElement","crossOriginUpdater","crossOriginRect","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","_checkForIntersections","_resetCrossOriginUpdater","_observationTargets","_registerInstance","_monitorIntersections","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","records","_queuedEntries","_initThresholds","opt_threshold","_parseRootMargin","opt_rootMargin","margins","defaultView","_monitoringDocuments","monitoringInterval","domObserver","addEvent","MutationObserver","childList","characterData","subtree","_monitoringUnsubscribes","removeEvent","rootDoc","hasDependentTargets","itemDoc","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","_hasCrossedThreshold","_callback","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","computeRectIntersection","isDoc","_expandRectByRootMargin","_rootMarginValues","newRect","oldRatio","newRatio","containsDeep","frameElement","ensureDOMRect","targetArea","intersectionArea","opt_options","opt_useCapture","detatchEvent","rect1","rect2","parentBoundingRect","parentIntersectionRect","assignedSlot","StrictMode","Profiler","Suspense","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","isPureReactComponent","__self","__source","_owner","_status","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","lazy","_payload","useDebugValue","useLayoutEffect","useState","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","setAttributeNS","prepareStackTrace","_render","_valueTracker","stopTracking","defaultChecked","_wrapperState","initialChecked","initialValue","controlled","selected","defaultSelected","namespaceURI","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zIndex","floodOpacity","stopOpacity","strokeDashoffset","strokeMiterlimit","strokeOpacity","menuitem","col","embed","img","keygen","wbr","correspondingUseElement","stateNode","memoizedState","dehydrated","sibling","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","lanePriority","unstable_runWithPriority","hydrate","containerInfo","unstable_scheduleCallback","unstable_NormalPriority","animationend","animationiteration","animationstart","transitionend","animation","unstable_now","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","eventTimes","unstable_UserBlockingPriority","fd","_reactName","_targetInst","isDefaultPrevented","isPersistent","eventPhase","bubbles","cancelable","isTrusted","getModifierState","buttons","movementX","movementY","animationName","elapsedTime","pseudoElement","clipboardData","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Alt","Control","Meta","Shift","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","targetTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","tel","oninput","Le","nextSibling","compareDocumentPosition","HTMLIFrameElement","contentEditable","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusOffset","bf","cf","df","ef","parentWindow","hf","jf","kf","lf","mf","autoFocus","nf","of","pf","qf","rf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","mg","ng","og","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","Mg","Ng","Og","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","memoizedProps","revealOrder","jh","kh","mh","pendingProps","qh","sh","_workInProgressVersionPrimary","vh","Ah","Dh","Eh","Fh","Gh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Yh","Zh","$h","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ji","baseLanes","qi","pendingContext","Bi","retryLane","fallback","unstable_avoidThisFallback","unstable_expectedLoadTime","isBackwards","rendering","renderingStartTime","tailMode","Fi","Gi","wasMultiple","onclick","createElementNS","Hi","Ji","Ki","Li","Mi","Oi","Qi","componentDidCatch","componentStack","Ui","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","gk","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","uk","hk","unstable_observedBits","unmount","form","Vj","vk","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","singleMatcher","multiMatcher","decodeComponents","encodedURI","replaceMap","customDecodeURIComponent","separatorIndex","isArr","__webpack_amd_options__","collectObject","stdlib","foreign","heap","inputLength","jumpTable","readUInt16","readUInt32","INT_P","octet","UINT_P_8","UINT_P_16","UINT_P_32","UINT_P_64","INT_N","UINT_N_8","UINT_N_16","UINT_N_32","UINT_N_64","BYTE_STRING_8","BYTE_STRING_16","BYTE_STRING_32","BYTE_STRING_64","BYTE_STRING_BREAK","UTF8_STRING_8","UTF8_STRING_16","UTF8_STRING_32","UTF8_STRING_64","UTF8_STRING_BREAK","ARRAY_8","ARRAY_16","ARRAY_32","ARRAY_64","ARRAY_BREAK","MAP_8","MAP_16","MAP_32","MAP_64","MAP_BREAK","TAG_KNOWN","TAG_BIGNUM_POS","TAG_BIGNUM_NEG","TAG_FRAC","TAG_BIGNUM_FLOAT","TAG_UNASSIGNED","TAG_BASE64_URL","TAG_BASE64","TAG_BASE16","TAG_MORE_1","TAG_MORE_2","TAG_MORE_4","TAG_MORE_8","SIMPLE_UNASSIGNED","SIMPLE_FALSE","SIMPLE_TRUE","SIMPLE_NULL","SIMPLE_UNDEFINED","SIMPLE_BYTE","SIMPLE_FLOAT_HALF","SIMPLE_FLOAT_SINGLE","SIMPLE_FLOAT_DOUBLE","urlParsed","protocolMap","defaultProtocol","HALF","FLOAT","DOUBLE","MAXINT_BN","BUF_NAN","BUF_INF_NEG","BUF_INF_POS","streaming","onData","semanticTypes","_pushUrl","_pushBigNumber","addTypes","genTypes","addSemanticType","resultMethod","resultLength","pushWrite","_pushUInt8","_pushUInt16BE","_pushUInt32BE","_pushDoubleBE","_pushNaN","_pushInfinity","_pushFloat","_pushIntNum","_pushNumber","_pushString","_pushBoolean","_pushUndefined","_pushArray","_pushDate","_pushBuffer","_pushNoFilter","_pushRegexp","_pushSet","_pushBigint","dec","slide","_pushMap","_pushRawMap","_pushObject","toType","Null","jsxs","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","ReactPropTypes","bigint","instanceOf","objectOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__exportStar","heightWidthRadiusDefaults","heightWidthDefaults","sizeMarginDefaults","commonValues","sizeValue","BasicColors","calculateRgba","res_1","parseLengthAndUnit","cssUnit","cm","em","vw","vmin","vmax","valueString","lengthWithunit","LOAD_BASE","_basesByName","_basesByPrefix","_loadBase","addBase","removeBase","nameOrPrefix","listBases","LOAD_CODEC","codeOrName","_codecsByName","_codecsByCode","_loadCodec","addCodec","removeCodec","listCodecs","LOAD_HASHER","_hashersByName","_hashersByCode","_loadHasher","addHasher","removeHasher","listHashers","pbDecode","pbEncode","createLink","createNode","prepare","pbn","decodeNode","Data","Links","Tsize","encodeNode","encode_1","oldOffset","INT","counter","N1","N2","N3","N4","N5","N6","N7","N8","N9","_brrp__multiformats_scope_baseX","BASE_MAP","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","decodeVarint","decodeBytes","byteLen","postOffset","decodeKey","wire","decodeLink","fieldNum","byts","links","linksBeforeData","maxInt32","encodeLink","isSafeInteger","encodeVarint","nameBytes","sizeLink","sov","len8tab","len64","sizeNode","pbNodeProperties","pbLinkProperties","linkComparator","abuf","bbuf","hasOnlyProperties","asLink","pbl","cborg","cborg__namespace","encodeOptions","typeEncoders","decodeOptions","useMaps","defaultEncodeOptions","mapSorter","e1","keyToken1","keyToken2","tcmp","cborEncoders","Bl","Ref","simpleTokens","emptyMap","_typ","_refStack","boolean","_obj","refStack","addBreakTokens","createCheck","objectToTokens","isMap","sortMapEntries","customTypeEncoder","typeEncoder","tokensToEncoded","encodeCustom","quickBytes","typeofs","objectTypeNames","objectType","objectTypeName","maxCursor","_initReuseChunk","topChunk","chunkPos","defaultDecodeOptions","Tokeniser","byt","DONE","tokensToObject","tokeniser","tokenToArray","tokenToMap","tagged","tokenizer","base16upper","base36upper","base64pad","base64urlpad","wantlistForPeer","unwant","createWantlist","createWantlistForPeer","createUnwant","Keys","uint8ArrayConcat","stringToStringTuples","ParseError","cleanPath","stringTuplesToString","tup","protoFromTuple","stringTuplesToTuples","validateBytes","isValidBytes","uint8ArrayFromString","Convert","ip2bytes","ipString","isIP","port2bytes","bytes2port","bytes2onion","addrBytes","portBytes","ipBuff","bytes2ip","bytes2str","bytes2mh","str2bytes","mh2bytes","portBuf","onion2bytes","onion32bytes","isIp","isV4","v4","isV6","v6","buff","sections","v4Buffer","ipRegex","includeBoundaries","v6seg","v46Exact","v4exact","v6exact","electron","durationRE","unitRatio","nanosecond","us","microsecond","createDebug","prevTime","namespacesCache","enabledCache","enableOverride","logFn","selectColor","newDebug","toNamespace","skips","plural","msAbs","isPlural","long","fmtLong","fmtShort","fetchWithProgress","overrideMimeType","ResponseWithURL","fetchWithStreaming","multiAddrToUri__default","reduceValue","Reducers","ip4","ip6","tcp","assumeHttp","explicitPort","tcpUri","udp","dnsaddr","dns4","dns6","p2p","http","https","wss","peer","createRm","Key","normaliseContent_browser","normaliseContent","itPeekable","browserStreamToIt","itPeekable__default","browserStreamToIt__default","all__default","itToBlob","peekable","ipfsUnixfs","map__default","toFileObject","parseMode","errcode","unixfs","errcode__default","PBData","dirTypes","DEFAULT_FILE_MODE","DEFAULT_DIRECTORY_MODE","UnixFS","marshaled","blockSizes","blocksizes","_originalMode","fanout","parsedMode","addBlockSize","removeBlockSize","fileSize","marshal","DataType","Raw","Directory","Metadata","Symlink","HAMTShard","pbData","filesize","$protobuf__default","$Reader","$Writer","$util","$root","roots","UnixTime","fromValue","low","high","valuesById","MimeType","protobuf","build","rpc","s64","invalidEncoding","Float32Array","f32","f8b","writeFloat_f32_cpy","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloat_ieee754","writeUint","readFloat_ieee754","readUint","writeUintLE","writeUintBE","readUintLE","readUintBE","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDouble_ieee754","off0","off1","readDouble_ieee754","slab","toLong","part0","part1","part2","writeStringBuffer","writeBytesBuffer","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","endedByRPC","removed","Size","createClear","createList","createReset","createGetAll","createSet","createReplace","profiles","createProfiles","createApply","profile","OldCfg","NewCfg","encodeParam","_export","_import","export","createExport","import","createImport","first__default","last__default","localResolve","remainderPath","lastCid","pinRoots","Root","PinErrorMsg","pinErrorMsg","ipfsPath","RemPath","findPeer","findProvs","provide","createFindPeer","createFindProvs","createProvide","createQuery","responseTypes","Responses","ID","Addrs","addrs","Extra","cids","cidArr","responses","cmds","net","sys","createCmds","createNet","createSys","chmod","mkdir","mv","createChmod","createCp","createFlush","createMkdir","createMv","createRead","createTouch","createWrite","destination","sourceArr","Entries","toIterable__default","streamChannels","createGen","createInfo","createRename","oldName","newName","createLevel","createTail","subsystem","Strings","publish","createPublish","Path","subs","createCancel","createState","createSubs","_new","createLinks","createNew","patch","createPatch","dataEncoding","template","dagPut","addLink","appendData","rmLink","createAddLink","createAppendData","createRmLink","createSetData","dLink","rmAll","remote","createRemote","createService","RemoteServices","subscriptionTracker","subscriptionTracker$1","SubscriptionTracker","createPeers","createSubscribe","createUnsubscribe","topic","readMessages","onEnd","seqno","topicIDs","isAbortError","subsTracker","ffWorkaround","_subs","topicSubs","unsubs","argsArr","createGc","stat$1","bw","createBw","totalIn","TotalIn","totalOut","TotalOut","rateIn","RateIn","rateOut","RateOut","connect","localAddrs","createAddrs","createConnect","createDisconnect","createLocalAddrs","Addr","Peer","muxer","Muxer","Latency","streams","Streams","Direction","compressionLevel","pathStr","mapLink","Mode","Mtime","MtimeNsecs","Objects","readURLContent","UserAgent_DEPRECATED","isEventSupported","sX","sY","pX","pY","HORIZONTAL_AXIS","spinX","spinY","pixelX","getEventType","firefox","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_native","_mobile","_populated","_populate","uas","trident","ver","ieCompatibilityMode","ie64","opera","webkit","safari","windows","osx","linux","iphone","mobile","nativeApp","android","useHasFeature","ExecutionEnvironment","hasFeature","eventNameSuffix","canUseWorkers","canUseEventListeners","canUseViewport","isInWorker","Axios","instanceConfig","CancelToken","isCancel","spread","InterceptorManager","dispatchRequest","validators","interceptors","assertOptions","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","chain","newConfig","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","normalizedName","toGMTString","isAbsoluteURL","combineURLs","requestedURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","requestURL","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","schema","allowUnknown","resolvePromise","pairs","undef","_types","_extensions","getExtension","typeMap","hasPath","rng","pseudoRandomBytes","createHmac","algos","algoKeys","getHashes","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","randomFill","randomFillSync","createCredentials","pipeline","_getString","_getBuffer","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","ERR_MISSING_ARGS","destroyer","closed","popCallback","destroys","Sha","rotl30","Sha1","rotl5","Sha224","Sha384","_isStdio","didOnEnd","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","installMessageChannelImplementation","installReadyStateChangeImplementation","ZERO_BUF","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","deriveBits","prom","checkNative","aesModes","desModes","ebtk","suite","des","instantiate","EDE","modeName","_des","des3","CBCState","_cbcInit","_cbcState","superProto","EDEState","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","PADDING","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","_multiply","lsbVi","abl","unpad","autoPadding","generatePrime","DH","ENCODINGS","genc","SEVEN","setPublicKey","pub","_pub","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","getPrivateKey","getGenerator","algorithms","_hashType","_tag","_signType","EC","hlen","hbits","bits2int","bits2octets","obits","makeKey","makeR","signType","curveId","keyFromPrivate","toDER","ecSign","dsaSign","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","_endoSplit","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yyyy","yyyy8","c8","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","yyu4","kbase","z3","pz3","eqXToP","MontCurve","i4","a24","diffAdd","jumlAdd","EdwardsCurve","twisted","mOneA","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","_projDbl","_extAdd","_projAdd","sha1_K","SHA1","SHA224","SHA384","outer","HmacDRBG","KeyPair","Signature","fromPrivate","keyFromPublic","fromPublic","genKeyPair","drbg","pers","persEnc","entropy","entropyEnc","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","recoveryParam","canonical","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","_hmac","kmac","reseed","addEnc","_importPrivate","privEnc","_importPublic","pubEnc","derive","_importDER","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","backHalf","EDDSA","pointClass","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pubBytes","privBytes","getSecret","_R","_S","_Rencoded","_Sencoded","Sencoded","seq","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","ECParameters","namedCurve","Entity","_createNamed","Generated","_initNamed","PEMEncoder","PEMDecoder","_reverse","asn","Time","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","rdnSequence","Validity","Extension","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","cipherKey","checkValue","pubkey","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","mgf","withPublic","iHash","hLen2","dblen","maskedDb","maskedSeed","oaep","nonZero","pkcs1","zBuffer","dif","oldBrowser","safeBuffer","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","ADD64AA","o0","o1","ADD64AC","B2B_GET32","B2B_G","ix","iy","xor0","xor1","BLAKE2B_IV32","SIGMA82","blake2bCompress","outlen","B2S_GET32","B2S_G","ROTR32","BLAKE2S_IV","SIGMA","blake2sCompress","Uint8ClampedArray","pathArray","sanitizedPath","common_1","bodyOpenClassName","portalClassName","_react2","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","_safeHTMLElement2","isReact16","createHTMLElement","getCreatePortal","getParentElement","parentSelector","Modal","removePortal","portalRef","portal","renderPortal","defaultStyles","prevParent","nextParent","isOpen","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","overlay","htmlOpenClassName","afterOpen","overlayClassName","onAfterOpen","onRequestClose","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","contentLabel","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","WebkitOverflowScrolling","borderRadius","outline","focusManager","_scopeTab2","classList","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","overlayEl","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","additional","attributesFromObject","moveFromContentToOverlay","_props2","contentStyles","overlayStyles","overlayProps","contentProps","modal","testId","focusLaterElements","toFocus","modalElement","_tabbable","_tabbable2","needToFocus","getActiveElement","checkSafari","htmlElement","htmlClassList","removeClass","_cls","docBodyClassList","classString","classListRef","incrementReference","decrementReference","_arr2","_portalOpenInstances","cloneNode","_defaultComponentDecorator2","_defaultHrefDecorator2","_defaultMatchDecorator2","_defaultTextDecorator2","Linkify","matchDecorator","decoratedHref","hrefDecorator","decoratedText","textDecorator","decoratedComponent","componentDecorator","parseString","_linkifyIt2","_tlds2","linkify","tlds","escapeRE","fuzzyLink","fuzzyEmail","fuzzyIP","defaultSchemas","src_auth","src_host_port_strict","src_path","no_http","src_domain","src_domain_root","src_port","src_host_terminator","mailto","src_email_name","src_host_strict","tlds_default","__opts__","__tlds__","untpl","tpl","src_tlds","onCompile","__tlds_replaced__","src_xn","email_fuzzy","tpl_email_fuzzy","link_fuzzy","tpl_link_fuzzy","link_no_ip_fuzzy","tpl_link_no_ip_fuzzy","host_fuzzy_test","tpl_host_fuzzy_test","schemaError","__compiled__","__schemas__","compiled","createValidator","slist","schema_test","src_ZPCc","schema_search","pretest","__index__","__text_cache__","resetScanCache","Match","__last_index__","__schema__","createMatch","LinkifyIt","schemas","ml","tld_pos","testSchemaAt","keepOld","src_Any","src_Cc","src_Z","src_P","src_ZCc","src_pseudo_letter","src_ip4","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","tpl_host_fuzzy_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","_Manager","fluid","aspectRatio","Player","controlsHideTimer","getActions","subscribeToPlayerStateChange","getStyle","startControlsTimer","handleFullScreenChange","originalChildren","propsWithoutChildren","propsAspectRatio","propsHeight","propsWidth","ratioParts","ratioMultiplier","setWidthOrHeight","controlBarActiveTime","waiting","userActivity","IS_IOS","_redux","Manager","createStore","boundActions","actionCreator","prevStateCopy","subscribeToStateChange","_video","autoPaused","networkState","PopupButton","_Popup","Popup","_VolumeLevel","VolumeBar","handlePercentageChange","checkMuted","onPercentageChange","VolumeLevel","MenuItem","IS_IPOD","IS_IPHONE","IS_IPAD","USER_AGENT","PlaybackRate","offMenuText","showOffMenu","kinds","ClosedCaptionButton","getTextTrackItems","updateState","textTrackItems","findIndex","textTrackItemsAreEqual","items1","items2","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","updatePosition","whitespace","errorsList","comments","comment","decl","decls","createBaseFor","keysFunc","baseTimes","isArg","isBuff","isType","skipIndexes","nativeObjectToString","isOwn","unmasked","typedArrayTags","freeProcess","isPrototype","nativeKeys","overArg","eachFunc","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","objValue","COMPARE_PARTIAL_FLAG","assocIndexOf","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","coreJsData","maskSrcKey","IE_PROTO","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","mapToArray","setToArray","symbolProto","symbolValueOf","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","mapTag","promiseTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","isStrictComparable","hasIn","memoizeCapped","rePropName","reEscapeChar","quote","subString","memoized","arrayMap","symbolToString","baseHasIn","hasFunc","baseProperty","basePropertyDeep","findIndexFunc","baseFindIndex","nativeMax","toFinite","trimmedEndIndex","reTrimStart","reWhitespace","nativeMin","lastThis","maxWait","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","spreadableSymbol","isConcatSpreadable","baseMap","baseSortBy","compareMultiple","orders","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","overRest","setToString","otherArgs","baseSetToString","shortOut","nativeNow","lastCalled","baseRange","nativeCeil","castSlice","hasUnicode","stringToArray","strSymbols","chr","baseSlice","asciiToArray","unicodeToArray","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","arrayIncludes","arrayIncludesWith","isCommon","seenIndex","baseIndexOf","baseIsNaN","strictIndexOf","ValueParser","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","colon","star","escapePos","whitespacePos","balanced","unclosed","stringifyNode","customResult","EXP","dotted","sciPos","containsNumber","JisonParserError","stacktrace","ex2","hasPartialLrUpgradeOnConflict","errorRecoveryTokenDiscardCount","symbols_","terminals_","TERROR","EOF","originalQuoteName","originalParseError","cleanupAfterParse","constructParseErrorInfo","yyMergeLocationInfo","__reentrant_call_depth","__error_infos","__error_recovery_infos","quoteName","id_str","getSymbolName","describeSymbol","terminal_descriptions_","collect_expected_token_set","do_not_describe","tokenset","state_descriptions_","productions_","bp","performAction","yystate","yysp","yyvstack","lexer","goto","defaultActions","bda","parseError","ExceptionClass","recoverable","sstack","vstack","sp","NO_ACTION","__lexer__","sharedState_yy","pre_parse","post_parse","pre_lex","post_lex","fastLex","yyGetSharedState","shallow_copy_noclobber","resultValue","invoke_post_methods","do_not_nuke_errorinfos","cleanupAfterLex","pei","errStr","yytext","token_id","yylineno","new_state","symbol_stack","state_stack","value_stack","stack_pointer","rec","yyrulelen","this_production","lex","yyval","_$","setInput","canIUse","errSymbolDescr","showPosition","ntsymbol","JisonLexerError","__currentRuleSet__","__decompressed","_backtrack","_input","_more","_signaled_error_token","conditionStack","yyleng","yylloc","constructLexErrorInfo","show_input_position","prettyPrintRange","pos_str","yyerror","lineno_msg","lexerErrorsAreRecoverable","extra_error_attributes","last_column","first_line","first_column","last_line","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","__rule_regexes","__rule_count","editRemainingInput","cpsArg","slice_len","ch2","unput","pre_lines","backtrack_lexer","less","pastInput","upcomingInput","maxPrefix","maxPostfix","deriveLocationInfo","preceding","following","context_loc","context_loc2","l0","l1","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","errpfx","clip_start","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","clip_end","intermediate_line","describeYYLLOC","display_range_too","l2","test_match","indexed_rule","backup","match_str","match_str_len","tempMatch","_currentRules","trackPosition","topState","pendingInput","activeCondition","conditionStackDepth","popState","stateStackSize","yyrulenumber","YY_START","simpleCaseActionClusters","Parser","_cssUnitConverter","_cssUnitConverter2","convertAbsoluteLength","conversions","sourceUnit","targetUnit","converted","calc","_reducer","prec","_addClass","_removeClass","addClass","getClassNames","removeClasses","reflowAndAddClass","appearClassName","doneClassName","enterClassName","isStringClassNames","_this$getClassNames6","_hasClass","baseVal","replaceClassName","origClass","classToRemove","_args","handleLifecycle","handleEntering","handleEntered","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","inProp","_React$Children$toArr","mergeChildMappings","getProp","nextChildMapping","hasPrev","isLeaving","mapFn","mapper","getValueForKey","nextKeysPending","pendingKeys","childMapping","nextKey","pendingNextKey","base64map","rotr","hexToBytes","bytesToBase64","triplet","imod4","StyleSheet","_insertTag","insertionPoint","isSpeedy","speedy","ctr","createStyleElement","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","indexof","charat","strlen","sizeof","combine","character","characters","caret","dealloc","delimit","escaping","commenter","rulesets","pseudo","atrule","scanning","ampersand","ruleset","rulesheet","weakMemoize","identifierWithPointTracking","getRules","toRules","fixedElements","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","createCache","ssrStyles","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","middleware","shouldCache","registered","hoistNonReactStatics$1","getRegisteredStyles","registeredStyles","rawClassName","registerStyles","isStringTag","insertStyles","murmur2","unitlessKeys","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","unitless","handleInterpolation","mergedProps","__emotion_styles","anim","interpolated","createStringFromObject","previousCursor","cached","labelPattern","serializeStyles","stringMode","strings","identifierName","hashString","EmotionCacheContext","CacheProvider","__unsafe_useEmotionCache","withEmotionCache","ThemeContext","useTheme","createCacheWithTheme","outerTheme","theme","getTheme","ThemeProvider","withTheme","WithTheme","useInsertionEffect","useInsertionEffectMaybe","typePropName","createEmotionProps","Insertion","Emotion","cssProp","createElementArgArray","sheetRef","rehydrating","sheetRefCurrent","nextElementSibling","insertable","toAdd","serializedArr","ClassNames","ele","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","REPLACE","PROBE_UNKNOWN_ACTION","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","replaceReducer","nextReducer","outerSubscribe","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","bindActionCreator","bindActionCreators","actionCreators","boundActionCreators","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","ready","addUsedNamespaces","getT","nsMode","_useState","_useState2","setT","boundReset","isInitial","LineChart","tauEpsilon","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","ccw","cw","ascendingBisect","bisectRight","VFileMessage","ruleId","note","seenNonSlash","extIndex","unmatchedSlash","absolute","normalizeString","proc","isUrl","fileURLOrPath","urlToPath","third","getPathFromURLPosix","VFile","messages","stored","assertNonEmpty","assertPart","stem","bail","fnExpectsCallback","unified","transformers","middlewareIndex","middelware","trough","attachers","frozen","freezeIndex","assertUnfrozen","own","Compiler","attacher","addPlugin","addList","addPreset","plugin","plugins","isPlainObj","vfile","assertParser","newable","assertCompiler","assertNode","runSync","assertDone","processSync","asyncName","looksLikeAVFile","includeImageAlt","chunkStart","combineExtensions","syntaxExtension","extension","hook","constructs","asciiAlpha","regexCheck","asciiDigit","asciiHexDigit","asciiAlphanumeric","asciiPunctuation","asciiAtext","asciiControl","markdownLineEndingOrSpace","markdownLineEnding","markdownSpace","unicodeWhitespace","unicodePunctuation","factorySpace","tokenize","contentStart","contentInitial","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","_tokenizer","flowContinue","writeToChild","eof","sliceStream","defineSkip","nok","blankLine","subtokenize","jumps","lineIndex","otherIndex","otherEvent","subevents","_isInFirstContentOfListItem","subcontent","eventIndex","startPositions","childEvents","gaps","adjust","_gfmTasklistFirstContentOfListItem","contentEnd","continuationConstruct","contentContinue","sliceSerialize","flowInitial","afterConstruct","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","tabs","bufferIndex","_bufferIndex","createTokenizer","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","expectedCode","startBufferIndex","endBufferIndex","sliceChunks","chunkIndex","onreturn","returnState","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPrevious","startCurrentConstruct","startEventsIndex","startStack","resolveTo","thematicBreak","atMarker","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","factoryLabel","markerType","labelEscape","factoryTitle","atFirstTitleBreak","atTitleBreak","titleEscape","factoryWhitespace","normalizeIdentifier","labelAfter","titleConstruct","codeIndented","afterStartPrefix","afterPrefix","indentedContent","setextUnderline","paragraph","closingSequence","closingSequenceEnd","heading","htmlBlockNames","htmlRawNames","htmlFlow","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","htmlLineEnd","continuationRawEndTag","codeFenced","closingFenceConstruct","closingSequenceStart","sizeOpen","nonLazyLine","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","characterEntities","AEli","AElig","AM","AMP","Aacut","Aacute","Abreve","Acir","Acirc","Acy","Afr","Agrav","Agrave","Alpha","Amacr","And","Aogon","Aopf","ApplyFunction","Arin","Aring","Ascr","Assign","Atild","Atilde","Aum","Auml","Backslash","Barv","Barwed","Bcy","Because","Bernoullis","Beta","Bfr","Bopf","Breve","Bscr","Bumpeq","CHcy","COP","COPY","Cacute","Cap","CapitalDifferentialD","Cayleys","Ccaron","Ccedi","Ccedil","Ccirc","Cconint","Cdot","Cedilla","CenterDot","Cfr","Chi","CircleDot","CircleMinus","CirclePlus","CircleTimes","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","Colon","Colone","Congruent","Conint","ContourIntegral","Copf","Coproduct","CounterClockwiseContourIntegral","Cscr","Cup","CupCap","DD","DDotrahd","DJcy","DScy","DZcy","Dagger","Darr","Dashv","Dcaron","Dcy","Delta","Dfr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","Diamond","DifferentialD","Dopf","DotDot","DotEqual","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","DownArrowBar","DownArrowUpArrow","DownBreve","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","Downarrow","Dscr","Dstrok","ENG","ET","ETH","Eacut","Eacute","Ecaron","Ecir","Ecirc","Ecy","Edot","Efr","Egrav","Egrave","Emacr","EmptySmallSquare","EmptyVerySmallSquare","Eogon","Eopf","Epsilon","Equal","EqualTilde","Equilibrium","Escr","Esim","Eta","Eum","Euml","Exists","ExponentialE","Fcy","Ffr","FilledSmallSquare","FilledVerySmallSquare","Fopf","ForAll","Fouriertrf","Fscr","GJcy","GT","Gamma","Gammad","Gbreve","Gcedil","Gcirc","Gcy","Gdot","Gfr","Gopf","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","HARDcy","Hacek","Hat","Hcirc","Hfr","HilbertSpace","Hopf","HorizontalLine","Hscr","Hstrok","HumpDownHump","HumpEqual","IEcy","IJlig","IOcy","Iacut","Iacute","Icir","Icirc","Icy","Idot","Ifr","Igrav","Igrave","Im","Imacr","ImaginaryI","Implies","Int","Integral","Intersection","InvisibleComma","InvisibleTimes","Iogon","Iopf","Iota","Iscr","Itilde","Iukcy","Ium","Iuml","Jcirc","Jcy","Jfr","Jopf","Jscr","Jsercy","Jukcy","KHcy","KJcy","Kappa","Kcedil","Kcy","Kfr","Kopf","Kscr","LJcy","Lacute","Lambda","Lang","Laplacetrf","Larr","Lcaron","Lcedil","Lcy","LeftAngleBracket","LeftArrow","LeftArrowBar","LeftArrowRightArrow","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","LeftRightArrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","Leftarrow","Leftrightarrow","LessEqualGreater","LessFullEqual","LessGreater","LessLess","LessSlantEqual","LessTilde","Lfr","Ll","Lleftarrow","Lmidot","LongLeftArrow","LongLeftRightArrow","LongRightArrow","Longleftarrow","Longleftrightarrow","Longrightarrow","Lopf","LowerLeftArrow","LowerRightArrow","Lscr","Lsh","Lstrok","Mcy","MediumSpace","Mellintrf","Mfr","MinusPlus","Mopf","Mscr","Mu","NJcy","Nacute","Ncaron","Ncedil","Ncy","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","NestedGreaterGreater","NestedLessLess","NewLine","Nfr","NoBreak","NonBreakingSpace","Nopf","Not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","Nscr","Ntild","Ntilde","Nu","OElig","Oacut","Oacute","Ocir","Ocirc","Ocy","Odblac","Ofr","Ograv","Ograve","Omacr","Omega","Omicron","Oopf","OpenCurlyDoubleQuote","OpenCurlyQuote","Oscr","Oslas","Oslash","Otild","Otilde","Otimes","Oum","Ouml","OverBar","OverBrace","OverBracket","OverParenthesis","PartialD","Pcy","Pfr","Phi","PlusMinus","Poincareplane","Popf","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","Prime","Product","Proportion","Proportional","Pscr","Psi","QUO","QUOT","Qfr","Qopf","Qscr","RBarr","RE","REG","Racute","Rang","Rarr","Rarrtl","Rcaron","Rcedil","Rcy","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","Rfr","Rho","RightAngleBracket","RightArrow","RightArrowBar","RightArrowLeftArrow","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","RightTee","RightTeeArrow","RightTeeVector","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","Rightarrow","Ropf","RoundImplies","Rrightarrow","Rscr","Rsh","RuleDelayed","SHCHcy","SHcy","SOFTcy","Sacute","Scaron","Scedil","Scirc","Scy","Sfr","ShortDownArrow","ShortLeftArrow","ShortRightArrow","ShortUpArrow","Sigma","SmallCircle","Sopf","Sqrt","Square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","Sscr","Star","Sub","Subset","SubsetEqual","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","SuchThat","Sum","Sup","Superset","SupersetEqual","Supset","THOR","THORN","TRADE","TSHcy","TScy","Tab","Tau","Tcaron","Tcedil","Tcy","Tfr","Therefore","Theta","ThickSpace","ThinSpace","Tilde","TildeEqual","TildeFullEqual","TildeTilde","Topf","TripleDot","Tscr","Tstrok","Uacut","Uacute","Uarr","Uarrocir","Ubrcy","Ubreve","Ucir","Ucirc","Ucy","Udblac","Ufr","Ugrav","Ugrave","Umacr","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","Uopf","UpArrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","UpEquilibrium","UpTee","UpTeeArrow","Uparrow","Updownarrow","UpperLeftArrow","UpperRightArrow","Upsi","Upsilon","Uring","Uscr","Utilde","Uum","Uuml","VDash","Vbar","Vcy","Vdash","Vdashl","Vee","Verbar","Vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","Vopf","Vscr","Vvdash","Wcirc","Wedge","Wfr","Wopf","Wscr","Xfr","Xopf","Xscr","YAcy","YIcy","YUcy","Yacut","Yacute","Ycirc","Ycy","Yfr","Yopf","Yscr","Yuml","ZHcy","Zacute","Zcaron","Zcy","Zdot","ZeroWidthSpace","Zeta","Zfr","Zopf","Zscr","aacut","aacute","abreve","acE","acd","acir","acirc","acut","acute","acy","aeli","aelig","afr","agrav","agrave","alefsym","aleph","amacr","amalg","amp","andand","andd","andslope","andv","ang","ange","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","aogon","aopf","ap","apE","apacir","ape","apid","apos","approx","approxeq","arin","aring","ascr","asymp","asympeq","atild","atilde","aum","auml","awconint","awint","bNot","backcong","backepsilon","backprime","backsim","backsimeq","barvee","barwed","barwedge","bbrk","bbrktbrk","bcong","bcy","bdquo","becaus","because","bemptyv","bepsi","bernou","beth","between","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","bne","bnequiv","bnot","bopf","bot","bowtie","boxDL","boxDR","boxDl","boxDr","boxHD","boxHU","boxHd","boxHu","boxUL","boxUR","boxUl","boxUr","boxV","boxVH","boxVL","boxVR","boxVh","boxVl","boxVr","boxbox","boxdL","boxdR","boxdl","boxdr","boxh","boxhD","boxhU","boxhd","boxhu","boxminus","boxplus","boxtimes","boxuL","boxuR","boxul","boxur","boxv","boxvH","boxvL","boxvR","boxvh","boxvl","boxvr","bprime","breve","brvba","brvbar","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","bumpeq","cacute","cap","capand","capbrcup","capcap","capcup","capdot","caron","ccaps","ccaron","ccedi","ccedil","ccirc","ccups","ccupssm","cdot","cedi","cedil","cemptyv","cen","cent","centerdot","cfr","chcy","checkmark","chi","cir","cirE","circ","circeq","circlearrowleft","circlearrowright","circledR","circledS","circledast","circledcirc","circleddash","cire","cirfnint","cirmid","cirscir","clubs","clubsuit","colone","coloneq","commat","comp","compfn","complement","complexes","cong","congdot","conint","copf","coprod","cop","copysr","crarr","cross","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","cup","cupbrcap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curre","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","dArr","dHar","dagger","daleth","darr","dash","dashv","dbkarow","dblac","dcaron","dcy","ddagger","ddarr","ddotseq","deg","demptyv","dfisht","dfr","dharl","dharr","diam","diamond","diamondsuit","diams","die","digamma","disin","divid","divideontimes","divonx","djcy","dlcorn","dlcrop","dollar","dopf","doteq","doteqdot","dotminus","dotplus","dotsquare","doublebarwedge","downarrow","downdownarrows","downharpoonleft","downharpoonright","drbkarow","drcorn","drcrop","dscr","dscy","dsol","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","dzcy","dzigrarr","eDDot","eDot","eacut","eacute","easter","ecaron","ecir","ecirc","ecolon","ecy","edot","efDot","efr","egrav","egrave","egs","egsdot","elinters","ell","els","elsdot","emacr","emptyset","emptyv","emsp13","emsp14","emsp","eng","ensp","eogon","eopf","epar","eparsl","eplus","epsi","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","equest","equiv","equivDD","eqvparsl","erDot","erarr","escr","esdot","esim","eta","eth","eum","euml","euro","excl","exist","expectation","exponentiale","fallingdotseq","fcy","female","ffilig","fflig","ffllig","ffr","filig","fjlig","flat","fllig","fltns","fnof","fopf","forall","forkv","fpartint","frac1","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac3","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","fscr","gE","gEl","gacute","gammad","gbreve","gcirc","gcy","gdot","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","gfr","ggg","gimel","gjcy","glE","gla","glj","gnE","gnap","gnapprox","gne","gneq","gneqq","gnsim","gopf","grave","gscr","gsim","gsime","gsiml","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","hArr","hairsp","hamilt","hardcy","harr","harrcir","harrw","hbar","hcirc","hearts","heartsuit","hellip","hercon","hfr","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","hopf","horbar","hscr","hslash","hstrok","hybull","hyphen","iacut","iacute","icir","icirc","icy","iecy","iexc","iexcl","iff","ifr","igrav","igrave","iiiint","iiint","iinfin","iiota","ijlig","imacr","imagline","imagpart","imath","imof","imped","incare","infin","infintie","inodot","intcal","integers","intercal","intlarhk","intprod","iocy","iogon","iopf","iota","iprod","iques","iquest","iscr","isin","isinE","isindot","isins","isinsv","isinv","itilde","iukcy","ium","iuml","jcirc","jcy","jfr","jmath","jopf","jscr","jsercy","jukcy","kappa","kappav","kcedil","kcy","kfr","kgreen","khcy","kjcy","kopf","kscr","lAarr","lArr","lAtail","lBarr","lE","lEg","lHar","lacute","laemptyv","lagran","langd","langle","lap","laqu","laquo","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","latail","late","lates","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","lcaron","lcedil","lceil","lcub","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","leftarrow","leftarrowtail","leftharpoondown","leftharpoonup","leftleftarrows","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","leftthreetimes","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","lessgtr","lesssim","lfisht","lfloor","lfr","lgE","lhard","lharu","lharul","lhblk","ljcy","ll","llarr","llcorner","llhard","lltri","lmidot","lmoust","lmoustache","lnE","lnap","lnapprox","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","longleftarrow","longleftrightarrow","longmapsto","longrightarrow","looparrowleft","looparrowright","lopar","lopf","loplus","lotimes","lowast","lowbar","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","lscr","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","lstrok","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltrPar","ltri","ltrie","ltrif","lurdshar","luruhar","lvertneqq","lvnE","mDDot","macr","male","malt","maltese","mapsto","mapstodown","mapstoleft","mapstoup","mcomma","mcy","mdash","measuredangle","mfr","mho","micr","micro","midast","midcir","middo","middot","minusb","minusd","minusdu","mlcp","mldr","mnplus","models","mopf","mp","mscr","mstpos","multimap","mumap","nGg","nGt","nGtv","nLeftarrow","nLeftrightarrow","nLl","nLt","nLtv","nRightarrow","nVDash","nVdash","nabla","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbs","nbsp","nbump","nbumpe","ncap","ncaron","ncedil","ncong","ncongdot","ncup","ncy","ndash","neArr","nearhk","nearr","nearrow","nedot","nequiv","nesear","nesim","nexist","nexists","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","ngsim","ngt","ngtr","nhArr","nharr","nhpar","nis","nisd","niv","njcy","nlArr","nlE","nlarr","nldr","nle","nleftarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nlsim","nlt","nltri","nltrie","nmid","nopf","not","notin","notinE","notindot","notinva","notinvb","notinvc","notni","notniva","notnivb","notnivc","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","ntild","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","nu","numero","numsp","nvDash","nvHarr","nvap","nvdash","nvge","nvgt","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwArr","nwarhk","nwarr","nwarrow","nwnear","oS","oacut","oacute","oast","ocir","ocirc","ocy","odash","odblac","odiv","odot","odsold","oelig","ofcir","ofr","ogon","ograv","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","omacr","omega","omicron","omid","ominus","oopf","opar","operp","oplus","orarr","orderof","ordf","ordm","origof","oror","orslope","orv","oscr","oslas","oslash","osol","otild","otilde","otimes","otimesas","oum","ouml","ovbar","par","para","parallel","parsim","parsl","pcy","percnt","permil","perp","pertenk","pfr","phi","phiv","phmmat","phone","pitchfork","piv","planck","planckh","plankv","plusacir","plusb","pluscir","plusdo","plusdu","pluse","plusm","plusmn","plussim","plustwo","pm","pointint","popf","poun","pound","prE","prap","prcue","precapprox","preccurlyeq","preceq","precnapprox","precneqq","precnsim","precsim","prnE","prnap","prnsim","profalar","profline","profsurf","propto","prsim","prurel","pscr","psi","puncsp","qfr","qint","qopf","qprime","qscr","quaternions","quatint","quest","questeq","quo","quot","rAarr","rArr","rAtail","rBarr","rHar","race","racute","radic","raemptyv","rang","rangd","rangle","raqu","raquo","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","rarrtl","rarrw","ratail","ratio","rationals","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","rcaron","rcedil","rceil","rcub","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","real","realine","realpart","reals","reg","rfisht","rfloor","rfr","rhard","rharu","rharul","rho","rhov","rightarrow","rightarrowtail","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","rightthreetimes","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","ropf","roplus","rotimes","rpar","rpargt","rppolint","rrarr","rsaquo","rscr","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","ruluhar","sacute","sbquo","scE","scap","scaron","sccue","sce","scedil","scirc","scnE","scnap","scnsim","scpolint","scsim","scy","sdot","sdotb","sdote","seArr","searhk","searr","searrow","sect","semi","seswar","setminus","setmn","sext","sfr","sfrown","sharp","shchcy","shcy","shortmid","shortparallel","shy","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","softcy","sol","solb","solbar","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","squarf","squf","srarr","sscr","ssetmn","ssmile","sstarf","starf","straightepsilon","straightphi","strns","subE","subdot","sube","subedot","submult","subnE","subne","subplus","subrarr","subset","subseteq","subseteqq","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","succeq","succnapprox","succneqq","succnsim","succsim","sung","sup","sup1","sup2","sup3","supE","supdot","supdsub","supe","supedot","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swArr","swarhk","swarr","swarrow","swnwar","szli","szlig","tbrk","tcaron","tcedil","tcy","tdot","telrec","tfr","there4","therefore","thetasym","thetav","thickapprox","thicksim","thinsp","thkap","thksim","thor","thorn","tilde","timesb","timesbar","timesd","tint","toea","topbot","topcir","topf","topfork","tosa","tprime","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","triplus","trisb","tritime","trpezium","tscr","tscy","tshcy","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","uArr","uHar","uacut","uacute","uarr","ubrcy","ubreve","ucir","ucirc","ucy","udarr","udblac","udhar","ufisht","ufr","ugrav","ugrave","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","umacr","um","uml","uogon","uopf","uparrow","updownarrow","upharpoonleft","upharpoonright","uplus","upsi","upsih","upsilon","upuparrows","urcorn","urcorner","urcrop","uring","urtri","uscr","utdot","utilde","utri","utrif","uuarr","uum","uuml","uwangle","vArr","vBar","vBarv","vDash","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","vcy","vdash","vee","veebar","veeeq","vellip","verbar","vert","vfr","vltri","vnsub","vnsup","vopf","vprop","vrtri","vscr","vsubnE","vsubne","vsupnE","vsupne","vzigzag","wcirc","wedbar","wedge","wedgeq","weierp","wfr","wopf","wp","wreath","wscr","xcap","xcirc","xcup","xdtri","xfr","xhArr","xharr","xlArr","xlarr","xmap","xnis","xodot","xopf","xoplus","xotime","xrArr","xrarr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","yacut","yacute","yacy","ycirc","ycy","yen","yfr","yicy","yopf","yscr","yucy","yum","yuml","zacute","zcaron","zcy","zdot","zeetrf","zeta","zfr","zhcy","zigrarr","zopf","zscr","zwj","zwnj","decodeNamedCharacterReference","characterReference","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","insideSpan","destinationAfter","afterLabel","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","nextEvents","movePoint","fenceOpenInside","headingBreak","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","declarationOpen","tagOpen","commentOpen","cdataOpen","commentStart","commentStartDash","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","tailExitIndex","headEnterIndex","resolveText","decodeNumericCharacterReference","characterEscapeOrReference","$0","$2","stringifyPosition","fromMarkdown","canContainEols","autolink","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeText","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlowData","htmlText","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","tokenStack","listStack","getData","prepareList","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","onExitError","referenceType","ancestor","ordered","compiler","postprocess","defaultConstructs","atCarriageReturn","endPosition","preprocess","combined","remarkParse","castFactory","typeFactory","tests","anyFactory","propsFactory","visitParents","visitor","parents","visit","subresult","grandparents","toResult","pointStart","pointEnd","definitions","clean","augment","passThrough","returnNode","unknownHandler","loose","footnoteReference","footnoteOrder","revert","listItemLoose","blockquote","footnote","footnoteById","dangerous","imageReference","inlineCode","linkReference","listLoose","cell","toml","yaml","footnoteDefinition","toHast","allowDangerousHtml","hName","hProperties","hChildren","foot","listItems","backReference","footer","remarkRehype","bridge","mutate","Schema","normal","space","Info","booleanish","overloadedBoolean","commaSeparated","spaceSeparated","commaOrSpaceSeparated","powers","increment","DefinedInfo","xlink","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xml","xmlLang","xmlBase","xmlSpace","caseSensitiveTransform","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","acceptcharset","classname","htmlfor","httpequiv","acceptCharset","accessKey","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","autoCapitalize","charSet","cite","cols","colSpan","controlsList","coords","decoding","dirName","draggable","encType","enterKeyHint","formAction","formEncType","formMethod","formNoValidate","formTarget","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","itemId","itemProp","itemRef","itemScope","itemType","manifest","noModule","noValidate","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onCancel","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragExit","onDragStart","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoadEnd","onMessageError","onMouseOut","onMouseOver","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPopState","onRejectionHandled","onReset","onScroll","onSecurityPolicyViolation","onSelect","onSlotChange","onStorage","onSubmit","onToggle","onUnhandledRejection","onUnload","onWheel","optimum","readOnly","rel","rowSpan","scoped","seamless","slot","spellCheck","srcDoc","srcLang","typeMustMatch","useMap","aLink","archive","bgColor","borderColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","codeBase","codeType","declare","face","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","rev","rightMargin","scrolling","standby","summary","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","svg","accentHeight","alignmentBaseline","arabicForm","baselineShift","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","enableBackground","fillRule","floodColor","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","baseFrequency","baseProfile","bbox","by","calcMode","clipPathUnits","contentScriptType","contentStyleType","defaultAction","descent","diffuseConstant","edgeMode","editable","elevation","externalResourcesRequired","filterRes","filterUnits","focusHighlight","fx","fy","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in2","intercept","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaTime","numOctaves","orient","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rotate","ry","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","viewTarget","widths","xChannelSelector","yChannelSelector","zoomAndPan","htmlBase","svgBase","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","kebab","camelcase","hastToReact","tableElements","childrenToReact","toReact","skipHtml","parentSchema","addProperty","listDepth","basic","ReactIs","linkTarget","transformLinkUri","transformImageUri","getInputElement","getElementsBeforeCount","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","dashes","padRight","padLeft","commas","styleReplacer","parseStyle","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","remarkPlugins","rehypePlugins","hastNode","originalFunctionToString","FunctionToString","DEFAULT_IGNORE_ERRORS","InboundFilters","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","ignoreErrors","_getPossibleEventMessages","denyUrls","allowUrls","whitelistUrls","blacklistUrls","_getLastValidUrl","DSN_REGEX","dsnToString","dsn","withPassword","pass","dsnFromComponents","makeDsn","projectMatch","dsnFromString","isValidProtocol","validateDsn","installedIntegrations","filterDuplicates","accIntegration","defaultIntegrations","userIntegrations","userIntegration","integrationsNames","alwaysLastToRun","getIntegrationsToSetup","setupIntegration","ALREADY_SEEN_ERROR","backendClass","_integrations","_numProcessing","_backend","_dsn","_process","_getBackend","eventFromException","_captureEvent","promisedEvent","eventFromMessage","_isEnabled","_sendSession","getDsn","_isClientDoneProcessing","clientFinished","transportFlushed","_updateSessionFromEvent","crashed","errored","exceptions","sessionNonTerminal","sendSession","ticked","_prepareEvent","normalizeDepth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","_normalizeEvent","normalized","baseClientNormalized","maxValueLength","integrationsArray","sdk","_sendEvent","sendEvent","_processEvent","finalEvent","beforeSend","outcome","isTransaction","__sentry__","nullErr","_ensureBeforeSendRv","processedEvent","_transport","_setupTransport","_exception","_hint","_message","UNKNOWN_FUNCTION","createFrame","in_app","chromeRegex","chromeEvalRegex","chromeStackParser","subMatch","geckoREgex","geckoEvalRegex","geckoStackParser","winjsRegex","winjsStackParser","opera10Regex","opera10StackParser","opera11Regex","opera11StackParser","extractSafariExtensionDetails","isSafariExtension","isSafariWebExtension","exceptionFromError","parseStackFrames","extractMessage","eventFromError","popSize","reactMinifiedRegexp","getPopSize","eventFromUnknownInput","attachStacktrace","isUnhandledRejection","domException","eventFromString","__serialized__","eventFromPlainObject","synthetic","tunnel","_dsnObject","_tunnel","forceEnvelope","getBaseApiEndpoint","getStoreEndpoint","getStoreEndpointWithUrlEncodedAuth","getEnvelopeEndpointWithUrlEncodedAuth","_getIngestEndpoint","_encodedAuth","sentry_key","sentry_version","_getEnvelopeEndpoint","createEnvelope","serializeEnvelope","envelope","serializedHeaders","itemHeaders","serializedPayload","getSdkMetadataForEnvelopeHeader","eventToSentryRequest","sdkInfo","useEnvelope","packages","enhanceEventWithSdkInfo","skippedNormalization","JSONStringifyError","innerErr","sent_at","sample_rates","samplingMethod","makePromiseBuffer","taskProducer","drain","capturedSetTimeout","parseRetryAfterHeader","headerDelay","headerDate","cachedFetchImpl","getNativeFetchImplementation","fetchImpl","sendReport","supports","keepalive","requestTypeToCategory","_rateLimits","_outcomes","_api","initDsn","sendClientReports","_flushOutcomes","sessionToSentryRequest","outcomes","discarded_events","discardedEvents","quantity","_handleResponse","requestType","_handleRateLimit","_disabledUntil","_isRateLimited","rlHeader","raHeader","_fetch","sentryRequest","originalPayload","fetchParameters","Severity","transportOptions","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","__sentry_wrapped__","sentryWrapped","wrappedArguments","injectReportDialog","dsnLike","dialogOptions","encodedOptions","getReportDialogEndpoint","injectionPoint","severityFromString","Warning","isSupportedSeverity","Log","Breadcrumbs","dom","addSentryBreadcrumb","_consoleBreadcrumb","_innerDomBreadcrumb","serializeAttribute","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","parsedLoc","parsedFrom","parsedTo","showReportDialog","platform","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","xmlHttpRequestProps","wrapOptions","originalFunction","wrappedEventHandler","originalEventHandler","GlobalHandlers","_installFunc","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","globalHandlerLog","ERROR_TYPES_RE","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","ev0","ev0s","ev0sf","getHubAndAttachStacktrace","LinkedErrors","_limit","linkedErrors","_walkErrorTree","_handler","Dedupe","currentEvent","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","previousFingerprint","UserAgent","referrer","Referer","prefixExponent","formatDecimal","formatRounded","prefixes","grouping","thousands","currencyPrefix","currencySuffix","numerals","formatNumerals","nan","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","rnds8","REGEX","byteToHex","rnds","attrRE","voidElement","tagMatch","tagRE","whitespaceRE","inComponent","isComment","nextChar","parseTag","rootEl","unes","cape","checkLength","getAsArray","nodesToString","stringNode","childrenArray","keepArray","childPropsCount","shouldKeepChild","childChildren","i18nIsDynamicList","renderNodes","targetString","combinedTOpts","shouldUnescape","emptyChildrenButNeedsHandling","childs","renderInner","rootReactNode","mappedChildren","mapAST","hasValidReactChildren","pushTranslatedJSX","isVoid","dummy","astNode","reactNodes","un","translationContent","newTarget","mergeProps","isValidTranslationWithChildren","isEmptyTransWithHTML","isKnownComponent","_inner","_inner3","_inner4","wrapTextNodes","_content","Trans","i18nKey","_ref$tOptions","tOptions","tFromProps","additionalProps","reactI18nextOptions","hashTransKey","interpolationOverride","useAsParent","defaultTransParent"],"mappings":"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A,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,IACAA,MAAQA,EAARA,IACAA,KAAOA,EAAPA,GACAA,MAAQA,EAARA,GACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,MAAQA,EAARA,IACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,MAAQA,EAARA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,MAAQA,EAARA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,MAAQA,EAARA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,MAAQA,EAARA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,MAAQA,EAARA,GACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,IACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAOA,EAAPA,GACAA,KAAO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MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,EAAG,CACC,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,KACL,GAAK,KACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,EAAG,CACC,KAAO,KACP,IAAM,KACN,KAAO,IACP,IAAM,KACN,GAAK,KACL,GAAK,KACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,KACL,GAAK,KACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,IACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,KACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,IACP,IAAM,KACN,GAAK,IACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,MAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,KACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,KACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,IACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,KACL,GAAK,MACL,GAAK,MACL,IAAM,GACN,KAAO,MACP,IAAM,MACN,KAAO,MAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,KACL,GAAK,MACL,GAAK,MACL,IAAM,KACN,KAAO,MACP,IAAM,GACN,KAAO,OAEX,GAAI,CACA,KAAO,IACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,KACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,KACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,KACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,IAEX,GAAI,CACA,KAAO,KACP,IAAM,IACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,MAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,MAEX,GAAI,CACA,KAAO,KACP,IAAM,KACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,KACP,IAAM,MACN,KAAO,KACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,KACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,KACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,KACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,KACN,KAAO,MACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,KACL,IAAM,MACN,KAAO,KACP,IAAM,MACN,KAAO,OAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,MACN,KAAO,MACP,IAAM,OACN,KAAO,QAEX,GAAI,CACA,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,MACL,IAAM,OACN,KAAO,OACP,IAAM,OACN,KAAO,QAEX,GAAI,CACA,KAAO,KACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,OACL,IAAM,OACN,KAAO,OACP,IAAM,OACN,KAAO,OAEX,IAAK,CACD,KAAO,MACP,IAAM,MACN,KAAO,MACP,IAAM,MACN,GAAK,MACL,GAAK,MACL,GAAK,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AC/C,EAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAOhF,SAAU,EAAS,GACrB,MAAI,EAAI,IAAI,WAAW,GACvB,IAAE,GAAO,EAGT,IAAG,IAAI,EAAI,EAAG,EAAIl8H,EAAE,OAAQ,IAAK,CACjC,MAAM,EAAO,EAAE,GAEf,EAAM,EADmB,KAAd,EAAO,IACM,IAAQ,EAGlC,QAAe,EAAP,KAAc,I,6BCtDxB,+CAOM,SAAU,EAAO,GACnB,MAAI,EAAS,SAAS,SAExB,OADE,EAAK,OAAO,GACP,IAAI,WAAW,EAAO,W,eCH/B,WACE,aAMA,IAJA,IAAI8+R,EAAQ,mEAGRxpJ,EAAS,IAAIl4I,WAAW,KACnB1F,EAAI,EAAGA,EAAIonS,EAAMjnS,OAAQH,IAChC49I,EAAOwpJ,EAAM98R,WAAWtK,IAAMA,EAGhCyC,EAAQw3B,OAAS,SAAS89W,GACxB,IACA/3Y,EADIyO,EAAQ,IAAI/I,WAAWqyY,GACxBzzY,EAAMmK,EAAMtO,OAAQ8E,EAAS,GAEhC,IAAKjF,EAAI,EAAGA,EAAIsE,EAAKtE,GAAG,EACtBiF,GAAUmiS,EAAM34R,EAAMzO,IAAM,GAC5BiF,GAAUmiS,GAAmB,EAAX34R,EAAMzO,KAAW,EAAMyO,EAAMzO,EAAI,IAAM,GACzDiF,GAAUmiS,GAAuB,GAAf34R,EAAMzO,EAAI,KAAY,EAAMyO,EAAMzO,EAAI,IAAM,GAC9DiF,GAAUmiS,EAAqB,GAAf34R,EAAMzO,EAAI,IAS5B,OANKsE,EAAM,IAAO,EAChBW,EAASA,EAAO2gC,UAAU,EAAG3gC,EAAO9E,OAAS,GAAK,IACzCmE,EAAM,IAAM,IACrBW,EAASA,EAAO2gC,UAAU,EAAG3gC,EAAO9E,OAAS,GAAK,MAG7C8E,GAGTxC,EAAQq2B,OAAU,SAAS7zB,GACzB,IACqBjF,EACrBg4Y,EAAUC,EAAUC,EAAUC,EAF1BC,EAA+B,IAAhBnzY,EAAO9E,OAC1BmE,EAAMW,EAAO9E,OAAWC,EAAI,EAGM,MAA9B6E,EAAOA,EAAO9E,OAAS,KACzBi4Y,IACkC,MAA9BnzY,EAAOA,EAAO9E,OAAS,IACzBi4Y,KAIJ,IAAIL,EAAc,IAAI7xY,YAAYkyY,GAClC3pY,EAAQ,IAAI/I,WAAWqyY,GAEvB,IAAK/3Y,EAAI,EAAGA,EAAIsE,EAAKtE,GAAG,EACtBg4Y,EAAWp6P,EAAO34I,EAAOqF,WAAWtK,IACpCi4Y,EAAWr6P,EAAO34I,EAAOqF,WAAWtK,EAAE,IACtCk4Y,EAAWt6P,EAAO34I,EAAOqF,WAAWtK,EAAE,IACtCm4Y,EAAWv6P,EAAO34I,EAAOqF,WAAWtK,EAAE,IAEtCyO,EAAMrO,KAAQ43Y,GAAY,EAAMC,GAAY,EAC5CxpY,EAAMrO,MAAoB,GAAX63Y,IAAkB,EAAMC,GAAY,EACnDzpY,EAAMrO,MAAoB,EAAX83Y,IAAiB,EAAiB,GAAXC,EAGxC,OAAOJ,GAzDX,I,6BxwBNA,oDAwIM,SAAU,EAAkB,EAAwB,GAExD,IAAK,MAAM,WAAE,KAAgB,EAAM,YAEjC,IAAK,IAAI,KAAK,OAAO,EAAW,WAAa,OAAO,SAAe,KAAK,MACtE,OAAO,EAKX,MAAM,EAAsB,GACtB,EAAmB,OAAN,QAAM,IAAN,OAAM,EAAN,EAAQ,MACvB,IACE,MAAM,QAAQ,GAChB,EAAO,QAAQ,EAAW,KAAI,GAAmB,kBAAN,EAAiB,YAAU,SAAS,GAAK,KAEpF,EAAO,KAA2B,kBAAf,EAA0B,YAAU,SAAS,GAAc,IAIlF,IAAK,MAAM,KAAK,EAAQ,CACtB,MAAM,EAAQ,EAAE,SAChB,IAAK,MAAM,WAAE,KAAgB,EAAM,YAAa,CAC9C,QAA2B,IAAvB,EAAW,QACb,SAGF,IAAI,GAAO,EACX,IAAK,MAAM,KAAU,EAAW,QAC9B,GAAI,EAAO,WAAa,EAAO,CAC7B,GAAO,EACP,MAGJ,GAAI,EACF,OAAO,GAKb,OAAO,I,6BywBjLT,sDAGIlvY,EAAM,GACNwvY,EAAOxvY,EAAIiL,QACX/P,EAAQ8E,EAAI9E,MAChB,SAASw5E,EAASt5E,GAQhB,OAPAo0Y,EAAK93Y,KAAKwD,EAAMxD,KAAKL,UAAW,IAAI,SAAU8jB,GAC5C,GAAIA,EACF,IAAK,IAAIuiD,KAAQviD,OACG7kB,IAAd8E,EAAIsiE,KAAqBtiE,EAAIsiE,GAAQviD,EAAOuiD,OAI/CtiE,EAIT,IAAIq0Y,EAAqB,wCAErBC,EAAkB,SAAyBz8X,EAAM5U,EAAK4L,GACxD,IAAIm/S,EAAMn/S,GAAW,GACrBm/S,EAAIr8R,KAAOq8R,EAAIr8R,MAAQ,IACvB,IACIzrB,EAAM2R,EAAO,IADLmlD,mBAAmB/5D,GAG/B,GAAI+qT,EAAIumF,OAAS,EAAG,CAClB,IAAIA,EAASvmF,EAAIumF,OAAS,EAC1B,GAAI9vY,MAAM8vY,GAAS,MAAM,IAAI1yY,MAAM,6BACnCqE,GAAO,aAAec,KAAK2F,MAAM4nY,GAGnC,GAAIvmF,EAAIptS,OAAQ,CACd,IAAKyzX,EAAmBx/X,KAAKm5S,EAAIptS,QAC/B,MAAM,IAAI5e,UAAU,4BAGtBkE,GAAO,YAAc8nT,EAAIptS,OAG3B,GAAIotS,EAAIr8R,KAAM,CACZ,IAAK0iX,EAAmBx/X,KAAKm5S,EAAIr8R,MAC/B,MAAM,IAAI3vB,UAAU,0BAGtBkE,GAAO,UAAY8nT,EAAIr8R,KAGzB,GAAIq8R,EAAIwmF,QAAS,CACf,GAAuC,oBAA5BxmF,EAAIwmF,QAAQhkE,YACrB,MAAM,IAAIxuU,UAAU,6BAGtBkE,GAAO,aAAe8nT,EAAIwmF,QAAQhkE,cAMpC,GAHIxiB,EAAIymF,WAAUvuY,GAAO,cACrB8nT,EAAI0mF,SAAQxuY,GAAO,YAEnB8nT,EAAI2mF,SAGN,OAFuC,kBAAjB3mF,EAAI2mF,SAAwB3mF,EAAI2mF,SAASjxY,cAAgBsqT,EAAI2mF,UAGjF,KAAK,EACHzuY,GAAO,oBACP,MAEF,IAAK,MACHA,GAAO,iBACP,MAEF,IAAK,SACHA,GAAO,oBACP,MAEF,IAAK,OACHA,GAAO,kBACP,MAEF,QACE,MAAM,IAAIlE,UAAU,8BAI1B,OAAOkE,GAGL0uY,EACM,SAAgB/8X,EAAMlZ,EAAOm1E,EAASlzD,GAC5C,IAAIi0X,EAAgB54Y,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,CACtF01B,KAAM,IACNgjX,SAAU,UAGR7gU,IACF+gU,EAAcL,QAAU,IAAIzzX,KAC5B8zX,EAAcL,QAAQx1T,QAAQ61T,EAAcL,QAAQ3yU,UAAsB,GAAViS,EAAe,MAG7ElzD,IAAQi0X,EAAcj0X,OAASA,GACnCk9C,SAAS82U,OAASN,EAAgBz8X,EAAMmlD,mBAAmBr+D,GAAQk2Y,IAbnED,EAeI,SAAc/8X,GAIlB,IAHA,IAAIi9X,EAASj9X,EAAO,IAChB46E,EAAK30B,SAAS82U,OAAOh7X,MAAM,KAEtB7d,EAAI,EAAGA,EAAI02F,EAAGv2F,OAAQH,IAAK,CAGlC,IAFA,IAAI4K,EAAI8rF,EAAG12F,GAEY,MAAhB4K,EAAE6L,OAAO,IACd7L,EAAIA,EAAEg7B,UAAU,EAAGh7B,EAAEzK,QAGvB,GAA0B,IAAtByK,EAAEhK,QAAQm4Y,GAAe,OAAOnuY,EAAEg7B,UAAUmzW,EAAO54Y,OAAQyK,EAAEzK,QAGnE,OAAO,MAMP64Y,EAAW,CACbl9X,KAAM,SACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EAEJ,GAAIwJ,EAAQmmY,cAAoC,qBAAbl3U,SAA0B,CAC3D,IAAIn3D,EAAIiuY,EAAY/lY,EAAQmmY,cACxBruY,IAAGtB,EAAQsB,GAGjB,OAAOtB,GAETusT,kBAAmB,SAA2B57M,EAAKnnG,GAC7CA,EAAQmmY,cAAoC,qBAAbl3U,UACjC82U,EAAc/lY,EAAQmmY,aAAch/R,EAAKnnG,EAAQomY,cAAepmY,EAAQqmY,aAAcrmY,EAAQgmY,iBAKhGM,EAAc,CAChBt9X,KAAM,cACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EAEJ,GAAsB,qBAAXuP,OAIT,IAHA,IACI8wB,EADQ9wB,OAAO8b,SAASgR,OAAOC,UAAU,GAC1B/nB,MAAM,KAEhB7d,EAAI,EAAGA,EAAI2pC,EAAOxpC,OAAQH,IAAK,CACtC,IAAImN,EAAMw8B,EAAO3pC,GAAGY,QAAQ,KAE5B,GAAIuM,EAAM,EACEw8B,EAAO3pC,GAAG4lC,UAAU,EAAGz4B,KAErB2F,EAAQumY,oBAClB/vY,EAAQqgC,EAAO3pC,GAAG4lC,UAAUz4B,EAAM,IAM1C,OAAO7D,IAIPgwY,EAAyB,KAEzBC,EAAwB,WAC1B,GAA+B,OAA3BD,EAAiC,OAAOA,EAE5C,IACEA,EAAoC,cAAXzgY,QAAkD,OAAxBA,OAAOwrT,aAC1D,IAAIm1E,EAAU,wBACd3gY,OAAOwrT,aAAakuB,QAAQinD,EAAS,OACrC3gY,OAAOwrT,aAAamuB,WAAWgnD,GAC/B,MAAO74Y,GACP24Y,GAAyB,EAG3B,OAAOA,GAGLj1E,EAAe,CACjBvoT,KAAM,eACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EAEJ,GAAIwJ,EAAQ2mY,oBAAsBF,IAAyB,CACzD,IAAIt/R,EAAMphG,OAAOwrT,aAAaouB,QAAQ3/U,EAAQ2mY,oBAC1Cx/R,IAAK3wG,EAAQ2wG,GAGnB,OAAO3wG,GAETusT,kBAAmB,SAA2B57M,EAAKnnG,GAC7CA,EAAQ2mY,oBAAsBF,KAChC1gY,OAAOwrT,aAAakuB,QAAQz/U,EAAQ2mY,mBAAoBx/R,KAK1Dy/R,EAA2B,KAE3BC,EAA0B,WAC5B,GAAiC,OAA7BD,EAAmC,OAAOA,EAE9C,IACEA,EAAsC,cAAX7gY,QAAoD,OAA1BA,OAAO+gY,eAC5D,IAAIJ,EAAU,wBACd3gY,OAAO+gY,eAAernD,QAAQinD,EAAS,OACvC3gY,OAAO+gY,eAAepnD,WAAWgnD,GACjC,MAAO74Y,GACP+4Y,GAA2B,EAG7B,OAAOA,GAGLE,EAAiB,CACnB99X,KAAM,iBACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EAEJ,GAAIwJ,EAAQ+mY,sBAAwBF,IAA2B,CAC7D,IAAI1/R,EAAMphG,OAAO+gY,eAAennD,QAAQ3/U,EAAQ+mY,sBAC5C5/R,IAAK3wG,EAAQ2wG,GAGnB,OAAO3wG,GAETusT,kBAAmB,SAA2B57M,EAAKnnG,GAC7CA,EAAQ+mY,sBAAwBF,KAClC9gY,OAAO+gY,eAAernD,QAAQz/U,EAAQ+mY,qBAAsB5/R,KAK9D6/R,EAAc,CAChBh+X,KAAM,YACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EAAQ,GAEZ,GAAyB,qBAAdqP,UAA2B,CACpC,GAAIA,UAAUqhG,UAEZ,IAAK,IAAIh6G,EAAI,EAAGA,EAAI2Y,UAAUqhG,UAAU75G,OAAQH,IAC9CsJ,EAAMe,KAAKsO,UAAUqhG,UAAUh6G,IAI/B2Y,UAAUohY,cACZzwY,EAAMe,KAAKsO,UAAUohY,cAGnBphY,UAAU0uS,UACZ/9S,EAAMe,KAAKsO,UAAU0uS,UAIzB,OAAO/9S,EAAMnJ,OAAS,EAAImJ,OAAQnK,IAIlC66Y,EAAU,CACZl+X,KAAM,UACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EACA0wY,EAAUlnY,EAAQknY,UAAgC,qBAAbj4U,SAA2BA,SAAS+xC,gBAAkB,MAM/F,OAJIkmS,GAA2C,oBAAzBA,EAAQhsS,eAC5B1kG,EAAQ0wY,EAAQhsS,aAAa,SAGxB1kG,IAIPssB,EAAO,CACT9Z,KAAM,OACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EAEJ,GAAsB,qBAAXuP,OAAwB,CACjC,IAAIwuS,EAAWxuS,OAAO8b,SAASkV,SAASn8B,MAAM,mBAE9C,GAAI25S,aAAoBj5S,MACtB,GAA2C,kBAAhC0E,EAAQmnY,oBAAkC,CACnD,GAAqD,kBAA1C5yF,EAASv0S,EAAQmnY,qBAC1B,OAGF3wY,EAAQ+9S,EAASv0S,EAAQmnY,qBAAqB3nY,QAAQ,IAAK,SAE3DhJ,EAAQ+9S,EAAS,GAAG/0S,QAAQ,IAAK,IAKvC,OAAOhJ,IAIP4wY,EAAY,CACdp+X,KAAM,YACN8hI,OAAQ,SAAgB9qI,GACtB,IAAIxJ,EAEJ,GAAsB,qBAAXuP,OAAwB,CACjC,IAAIwuS,EAAWxuS,OAAO8b,SAASC,KAAKlnB,MAAM,kDAEtC25S,aAAoBj5S,QAEpB9E,EAD8C,kBAArCwJ,EAAQqnY,yBACT9yF,EAASv0S,EAAQqnY,0BAA0B7nY,QAAQ,UAAW,IAAIA,QAAQ,WAAY,IAAIA,QAAQ,IAAK,IAEvG+0S,EAAS,GAAG/0S,QAAQ,UAAW,IAAIA,QAAQ,WAAY,IAAIA,QAAQ,IAAK,KAKtF,OAAOhJ,IAmBX,IAAI8wY,EAAuB,WACzB,SAASA,EAAQ9/R,GACf,IAAIxnG,EAAU5S,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,GAElF0vG,YAAgBnvG,KAAM25Y,GAEtB35Y,KAAK0G,KAAO,mBACZ1G,KAAK45Y,UAAY,GACjB55Y,KAAK+5C,KAAK8/D,EAAUxnG,GA4DtB,OAzDA+8F,YAAauqS,EAAS,CAAC,CACrB/4Y,IAAK,OACLuB,MAAO,SAAc03G,GACnB,IAAIxnG,EAAU5S,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,GAC9Eo6Y,EAAcp6Y,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,GACtFO,KAAK65G,SAAWA,EAChB75G,KAAKqS,QAAUyqE,EAASzqE,EAASrS,KAAKqS,SAAW,GA/B9C,CACLoQ,MAAO,CAAC,cAAe,SAAU,eAAgB,iBAAkB,YAAa,WAChFm2X,kBAAmB,MACnBJ,aAAc,UACdQ,mBAAoB,aACpBI,qBAAsB,aAEtBU,OAAQ,CAAC,gBACTC,gBAAiB,CAAC,YAyBZ/5Y,KAAKqS,QAAQ2nY,qBAAoBh6Y,KAAKqS,QAAQmnY,oBAAsBx5Y,KAAKqS,QAAQ2nY,oBACrFh6Y,KAAK65Y,YAAcA,EACnB75Y,KAAKi6Y,YAAY1B,GACjBv4Y,KAAKi6Y,YAAYtB,GACjB34Y,KAAKi6Y,YAAYr2E,GACjB5jU,KAAKi6Y,YAAYd,GACjBn5Y,KAAKi6Y,YAAYZ,GACjBr5Y,KAAKi6Y,YAAYV,GACjBv5Y,KAAKi6Y,YAAY9kX,GACjBn1B,KAAKi6Y,YAAYR,KAElB,CACD74Y,IAAK,cACLuB,MAAO,SAAqB+3Y,GAC1Bl6Y,KAAK45Y,UAAUM,EAAS7+X,MAAQ6+X,IAEjC,CACDt5Y,IAAK,SACLuB,MAAO,SAAgBg4Y,GACrB,IAAIh2R,EAAQnkH,KAEPm6Y,IAAgBA,EAAiBn6Y,KAAKqS,QAAQoQ,OACnD,IAAI23X,EAAW,GASf,OARAD,EAAe9mY,SAAQ,SAAUgnY,GAC/B,GAAIl2R,EAAMy1R,UAAUS,GAAe,CACjC,IAAIl9P,EAASh5B,EAAMy1R,UAAUS,GAAcl9P,OAAOh5B,EAAM9xG,SAEpD8qI,GAA4B,kBAAXA,IAAqBA,EAAS,CAACA,IAChDA,IAAQi9P,EAAWA,EAASt3Y,OAAOq6I,QAGvCn9I,KAAK65G,SAAS8vM,cAAcwL,sBAA8BilF,EAEvDA,EAAS16Y,OAAS,EAAI06Y,EAAS,GAAK,OAE5C,CACDx5Y,IAAK,oBACLuB,MAAO,SAA2Bq3G,EAAKsgS,GACrC,IAAIpsQ,EAAS1tI,KAER85Y,IAAQA,EAAS95Y,KAAKqS,QAAQynY,QAC9BA,IACD95Y,KAAKqS,QAAQ0nY,iBAAmB/5Y,KAAKqS,QAAQ0nY,gBAAgB55Y,QAAQq5G,IAAQ,GACjFsgS,EAAOzmY,SAAQ,SAAUinY,GACnB5sQ,EAAOksQ,UAAUU,IAAY5sQ,EAAOksQ,UAAUU,GAAWllF,kBAAkB57M,EAAKk0B,EAAOr7H,iBAK1FsnY,EApEkB,GAuE3BA,EAAQjzY,KAAO,oB,wvrCC3Zf,wDAKI6zY,EAAwB,WACxBnpT,EAAuC,qBAAfC,WAA6BA,WAA+B,qBAAXj5E,OAAyBA,OAA2B,qBAAX3M,EAAyBA,EAAS,GAexJ,SAAS+uY,EAAmBr4Y,GAC1B,IAAImzN,EAAW,GACf,MAAO,CACLttL,GAAI,SAAYpL,GACd04L,EAAS1rN,KAAKgzB,IAEhBsL,IAAK,SAAatL,GAChB04L,EAAWA,EAASn5M,QAAO,SAAU0+B,GACnC,OAAOA,IAAMje,MAGjBrD,IAAK,WACH,OAAOp3B,GAETmP,IAAK,SAAa49G,EAAUurR,GAC1Bt4Y,EAAQ+sH,EACRomG,EAASjiN,SAAQ,SAAUupB,GACzB,OAAOA,EAAQz6B,EAAOs4Y,QAuI9B,IAAIr3Y,EAAQpE,IAAMC,eA7HlB,SAA4BiE,EAAcw3Y,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BA3CpB,WACE,IAAIj6Y,EAAM,uBACV,OAAOwwF,EAAexwF,IAAQwwF,EAAexwF,IAAQ,GAAK,EAyCZk6Y,GAAgB,KAE1DvyR,EAAwB,SAAUynB,GAGpC,SAASznB,IACP,IAAIpE,EAIJ,OAFAA,EAAQ6rB,EAAWjwI,MAAMC,KAAMP,YAAcO,MACvCw1I,QAAUglQ,EAAmBr2R,EAAMnjH,MAAMmB,OACxCgiH,EAPT7d,YAAeiiB,EAAUynB,GAUzB,IAAI1rB,EAASiE,EAAS3oH,UAoCtB,OAlCA0kH,EAAO8vR,gBAAkB,WACvB,IAAI90X,EAEJ,OAAOA,EAAO,IAASu7X,GAAe76Y,KAAKw1I,QAASl2H,GAGtDglG,EAAOkxN,0BAA4B,SAAmCn5S,GACpE,GAAIr8B,KAAKgB,MAAMmB,QAAUk6B,EAAUl6B,MAAO,CACxC,IAEIs4Y,EAFAM,EAAW/6Y,KAAKgB,MAAMmB,MACtB+sH,EAAW7yF,EAAUl6B,QA9DfoK,EAiEGwuY,MAjEAvuY,EAiEU0iH,GA/Dd,IAAN3iH,GAAW,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,GA8DlBiuY,EAAc,GAEdA,EAA8C,oBAAzBC,EAAsCA,EAAqBK,EAAU7rR,GAAYqrR,EAQlF,KAFpBE,GAAe,IAGbz6Y,KAAKw1I,QAAQlkI,IAAI+qB,EAAUl6B,MAAOs4Y,IA7E9C,IAAkBluY,EAAGC,GAmFjB83G,EAAO3xF,OAAS,WACd,OAAO3yB,KAAKgB,MAAMa,UAGb0mH,EA/CmB,CAgD1B31F,aAEF21F,EAAS+qD,oBAAqBqnO,EAAwB,IAA0BE,GAAetrQ,IAAUvsH,OAAO2sH,WAAYgrQ,GAE5H,IAAI74Y,EAAwB,SAAUk5Y,GAGpC,SAASl5Y,IACP,IAAI4rI,EAiBJ,OAfAA,EAASstQ,EAAYj7Y,MAAMC,KAAMP,YAAcO,MACxCwpC,MAAQ,CACbrnC,MAAOurI,EAAO+L,YAGhB/L,EAAOutQ,SAAW,SAAU/rR,EAAUurR,GAGC,MAFI,EAAtB/sQ,EAAOwtQ,cAENT,IAClB/sQ,EAAOnjC,SAAS,CACdpoG,MAAOurI,EAAO+L,cAKb/L,EApBTpnC,YAAexkG,EAAUk5Y,GAuBzB,IAAIrxJ,EAAU7nP,EAASlC,UAkCvB,OAhCA+pP,EAAQ6rF,0BAA4B,SAAmCn5S,GACrE,IAAI6+W,EAAe7+W,EAAU6+W,aAC7Bl7Y,KAAKk7Y,kBAAgCx8Y,IAAjBw8Y,GAA+C,OAAjBA,EAAwBX,EAAwBW,GAGpGvxJ,EAAQtgN,kBAAoB,WACtBrpC,KAAKi0B,QAAQ4mX,IACf76Y,KAAKi0B,QAAQ4mX,GAAa7yW,GAAGhoC,KAAKi7Y,UAGpC,IAAIC,EAAel7Y,KAAKgB,MAAMk6Y,aAC9Bl7Y,KAAKk7Y,kBAAgCx8Y,IAAjBw8Y,GAA+C,OAAjBA,EAAwBX,EAAwBW,GAGpGvxJ,EAAQpgN,qBAAuB,WACzBvpC,KAAKi0B,QAAQ4mX,IACf76Y,KAAKi0B,QAAQ4mX,GAAa3yW,IAAIloC,KAAKi7Y,WAIvCtxJ,EAAQlwG,SAAW,WACjB,OAAIz5I,KAAKi0B,QAAQ4mX,GACR76Y,KAAKi0B,QAAQ4mX,GAAathX,MAE1Br2B,GAIXymP,EAAQh3N,OAAS,WACf,OApHa9wB,EAoHI7B,KAAKgB,MAAMa,SAnHzB8L,MAAMjJ,QAAQ7C,GAAYA,EAAS,GAAKA,GAmHL7B,KAAKwpC,MAAMrnC,OApHvD,IAAmBN,GAuHRC,EA1DmB,CA2D1B8wB,aAGF,OADA9wB,EAAS0xK,eAAgBonO,EAAwB,IAA0BC,GAAetrQ,IAAUvsH,OAAQ43X,GACrG,CACLryR,SAAUA,EACVzmH,SAAUA,IAMCsB,Q,kCC/Kf,IAAI+3Y,EAAiB,EAAQ,KAEzBC,EAAuB,EAAQ,KAE/B1P,EAA6B,EAAQ,KAErC2P,EAAkB,EAAQ,KAM9Bt5Y,EAAOC,QAJP,SAAwBoG,EAAK7I,GAC3B,OAAO47Y,EAAe/yY,IAAQgzY,EAAqBhzY,EAAK7I,IAAMmsY,EAA2BtjY,EAAK7I,IAAM87Y,KAGrEt5Y,EAAOC,QAAQk0B,YAAa,EAAMn0B,EAAOC,QAAiB,QAAID,EAAOC,S,6BCRtG,IAF0B2xB,EAEtB30B,EAAQiD,EAAQ,GAChBq5Y,GAHsB3nX,EAGW30B,IAHwB,kBAAP20B,GAAoB,YAAaA,EAAMA,EAAE,QAAcA,EAK7G,SAASnQ,EAAgBhgB,EAAK5C,EAAKuB,GAYjC,OAXIvB,KAAO4C,EACTrE,OAAO8M,eAAezI,EAAK5C,EAAK,CAC9BuB,MAAOA,EACPkhB,YAAY,EACZnX,cAAc,EACdyX,UAAU,IAGZngB,EAAI5C,GAAOuB,EAGNqB,EAST,IAAI0lG,IAAiC,qBAAX9wF,SAA0BA,OAAOkpD,WAAYlpD,OAAOkpD,SAAS5gE,eA8FvFqB,EAAOC,QA7FP,SAAwBu5Y,EAAoBC,EAA2BxpM,GACrE,GAAkC,oBAAvBupM,EACT,MAAM,IAAIl2Y,MAAM,iDAGlB,GAAyC,oBAA9Bm2Y,EACT,MAAM,IAAIn2Y,MAAM,wDAGlB,GAAgC,qBAArB2sM,GAAgE,oBAArBA,EACpD,MAAM,IAAI3sM,MAAM,mEAOlB,OAAO,SAAco2Y,GACnB,GAAgC,oBAArBA,EACT,MAAM,IAAIp2Y,MAAM,sDAGlB,IACImkC,EADAkyW,EAAmB,GAGvB,SAASC,IACPnyW,EAAQ+xW,EAAmBG,EAAiBl7Y,KAAI,SAAU8uC,GACxD,OAAOA,EAAStuC,UAGd46Y,EAAW1yS,UACbsyS,EAA0BhyW,GACjBwoK,IACTxoK,EAAQwoK,EAAiBxoK,IAI7B,IAAIoyW,EAA0B,SAAUlvQ,GA5C5C,IAAwB55F,EAAUC,EA+C5B,SAAS6oW,IACP,OAAOlvQ,EAAe3sI,MAAMC,KAAMP,YAAcO,KAhDtB+yC,EA6CD25F,GA7CT55F,EA6CH8oW,GA5CVh8Y,UAAYT,OAAOy2B,OAAOmd,EAAWnzC,WAC9CkzC,EAASlzC,UAAU0W,YAAcw8B,EACjCA,EAAS5tC,UAAY6tC,EAkDjB6oW,EAAW3nM,KAAO,WAChB,OAAOzqK,GAGToyW,EAAW1nM,OAAS,WAClB,GAAI0nM,EAAW1yS,UACb,MAAM,IAAI7jG,MAAM,oFAGlB,IAAIw2Y,EAAgBryW,EAGpB,OAFAA,OAAQ9qC,EACRg9Y,EAAmB,GACZG,GAGT,IAAIv3R,EAASs3R,EAAWh8Y,UAqBxB,OAnBA0kH,EAAO2xN,0BAA4B,WACjCylE,EAAiB9xY,KAAK5J,MACtB27Y,KAGFr3R,EAAOC,mBAAqB,WAC1Bo3R,KAGFr3R,EAAO/6E,qBAAuB,WAC5B,IAAInmC,EAAQs4Y,EAAiBv7Y,QAAQH,MACrC07Y,EAAiBrlT,OAAOjzF,EAAO,GAC/Bu4Y,KAGFr3R,EAAO3xF,OAAS,WACd,OAAoB2oX,EAAe56Y,cAAc+6Y,EAAkBz7Y,KAAKgB,QAGnE46Y,EA7CqB,CA8C5B58Y,EAAMgoI,eAMR,OAJAxjH,EAAgBo4X,EAAY,cAAe,cAxE7C,SAAwBH,GACtB,OAAOA,EAAiBh2X,aAAeg2X,EAAiBpgY,MAAQ,YAuELkM,CAAek0X,GAAoB,KAE9Fj4X,EAAgBo4X,EAAY,YAAa1yS,GAElC0yS,K,cCpHX,IAAIE,EAAoC,qBAAZ9sW,QACxB+sW,EAAwB,oBAARnlX,IAChBolX,EAAwB,oBAARr/S,IAChBs/S,EAAwC,oBAAhBx2Y,eAAgCA,YAAYqB,OAIxE,SAAS0pG,EAAMlkG,EAAGzE,GAEhB,GAAIyE,IAAMzE,EAAG,OAAO,EAEpB,GAAIyE,GAAKzE,GAAiB,iBAALyE,GAA6B,iBAALzE,EAAe,CAC1D,GAAIyE,EAAEgK,cAAgBzO,EAAEyO,YAAa,OAAO,EAE5C,IAAI5W,EAAQH,EAAGkE,EA6BX40H,EA5BJ,GAAI1qH,MAAMjJ,QAAQ4H,GAAI,CAEpB,IADA5M,EAAS4M,EAAE5M,SACGmI,EAAEnI,OAAQ,OAAO,EAC/B,IAAKH,EAAIG,EAAgB,IAARH,KACf,IAAKixG,EAAMlkG,EAAE/M,GAAIsI,EAAEtI,IAAK,OAAO,EACjC,OAAO,EAwBT,GAAIw8Y,GAAWzvY,aAAasqB,KAAS/uB,aAAa+uB,IAAM,CACtD,GAAItqB,EAAE3N,OAASkJ,EAAElJ,KAAM,OAAO,EAE9B,IADA05H,EAAK/rH,EAAEk1F,YACEjiG,EAAI84H,EAAGr5G,QAAQC,UACjBpX,EAAEsqC,IAAI5yC,EAAE4C,MAAM,IAAK,OAAO,EAEjC,IADAk2H,EAAK/rH,EAAEk1F,YACEjiG,EAAI84H,EAAGr5G,QAAQC,UACjBuxF,EAAMjxG,EAAE4C,MAAM,GAAI0F,EAAE0xB,IAAIh6B,EAAE4C,MAAM,KAAM,OAAO,EACpD,OAAO,EAGT,GAAI65Y,GAAW1vY,aAAaqwF,KAAS90F,aAAa80F,IAAM,CACtD,GAAIrwF,EAAE3N,OAASkJ,EAAElJ,KAAM,OAAO,EAE9B,IADA05H,EAAK/rH,EAAEk1F,YACEjiG,EAAI84H,EAAGr5G,QAAQC,UACjBpX,EAAEsqC,IAAI5yC,EAAE4C,MAAM,IAAK,OAAO,EACjC,OAAO,EAIT,GAAI85Y,GAAkBx2Y,YAAYqB,OAAOwF,IAAM7G,YAAYqB,OAAOe,GAAI,CAEpE,IADAnI,EAAS4M,EAAE5M,SACGmI,EAAEnI,OAAQ,OAAO,EAC/B,IAAKH,EAAIG,EAAgB,IAARH,KACf,GAAI+M,EAAE/M,KAAOsI,EAAEtI,GAAI,OAAO,EAC5B,OAAO,EAGT,GAAI+M,EAAEgK,cAAgBywD,OAAQ,OAAOz6D,EAAEiX,SAAW1b,EAAE0b,QAAUjX,EAAE44D,QAAUr9D,EAAEq9D,MAC5E,GAAI54D,EAAEq3B,UAAYxkC,OAAOS,UAAU+jC,QAAS,OAAOr3B,EAAEq3B,YAAc97B,EAAE87B,UACrE,GAAIr3B,EAAEzF,WAAa1H,OAAOS,UAAUiH,SAAU,OAAOyF,EAAEzF,aAAegB,EAAEhB,WAIxE,IADAnH,GADA+D,EAAOtE,OAAOsE,KAAK6I,IACL5M,UACCP,OAAOsE,KAAKoE,GAAGnI,OAAQ,OAAO,EAE7C,IAAKH,EAAIG,EAAgB,IAARH,KACf,IAAKJ,OAAOS,UAAUC,eAAeC,KAAK+H,EAAGpE,EAAKlE,IAAK,OAAO,EAKhE,GAAIu8Y,GAAkBxvY,aAAa0iC,QAAS,OAAO,EAGnD,IAAKzvC,EAAIG,EAAgB,IAARH,KACf,IAAiB,WAAZkE,EAAKlE,IAA+B,QAAZkE,EAAKlE,IAA4B,QAAZkE,EAAKlE,KAAiB+M,EAAE4vY,YAarE1rS,EAAMlkG,EAAE7I,EAAKlE,IAAKsI,EAAEpE,EAAKlE,KAAM,OAAO,EAK7C,OAAO,EAGT,OAAO+M,IAAMA,GAAKzE,IAAMA,EAI1B9F,EAAOC,QAAU,SAAiBsK,EAAGzE,GACnC,IACE,OAAO2oG,EAAMlkG,EAAGzE,GAChB,MAAOgP,GACP,IAAMA,EAAMoD,SAAW,IAAIhN,MAAM,oBAO/B,OADA4sB,QAAQC,KAAK,mDACN,EAGT,MAAMjjB,K,gBCnIV9U,EAAOC,QAAUC,EAAQ,M,gBCAzBF,EAAOC,QAAUC,EAAQ,M,iBCAzB,mBASE,SAAUwJ,EAAQ0lF,GAEVpvF,EAAOC,QAQd,SAASyJ,GACR,aAGA,IAmEIgrW,EAnEA0lC,GADJ1wY,EAASA,GAAU,IACE2wY,OACjB5lX,EAAU,QAEV6lX,EACE,mEACFC,EAAS,SAAS9F,GAElB,IADA,IAAIn3Y,EAAI,GACCE,EAAI,EAAGu7C,EAAI07V,EAAI92Y,OAAQH,EAAIu7C,EAAGv7C,IAAKF,EAAEm3Y,EAAIxgY,OAAOzW,IAAMA,EAC/D,OAAOF,EAHE,CAIXg9Y,GACEjxY,EAAe5C,OAAO4C,aAEtBmxY,EAAU,SAASpyY,GACnB,GAAIA,EAAEzK,OAAS,EAEX,OADIs6F,EAAK7vF,EAAEN,WAAW,IACV,IAAOM,EACb6vF,EAAK,KAAS5uF,EAAa,IAAQ4uF,IAAO,GAC1B5uF,EAAa,IAAa,GAAL4uF,GACpC5uF,EAAa,IAAS4uF,IAAO,GAAM,IAChC5uF,EAAa,IAAS4uF,IAAQ,EAAK,IACnC5uF,EAAa,IAAsB,GAAb4uF,GAEhC,IAAIA,EAAK,MAC0B,MAA5B7vF,EAAEN,WAAW,GAAK,QAClBM,EAAEN,WAAW,GAAK,OACzB,OAAQuB,EAAa,IAAS4uF,IAAO,GAAM,GACjC5uF,EAAa,IAAS4uF,IAAO,GAAM,IACnC5uF,EAAa,IAAS4uF,IAAQ,EAAK,IACnC5uF,EAAa,IAAsB,GAAb4uF,IAGpCwiT,EAAU,gDACVC,EAAO,SAAS9mY,GAChB,OAAOA,EAAE9D,QAAQ2qY,EAASD,IAE1BG,EAAY,SAASC,GACrB,IAAIC,EAAS,CAAC,EAAG,EAAG,GAAGD,EAAIj9Y,OAAS,GACpCm9Y,EAAMF,EAAI9yY,WAAW,IAAM,IACnB8yY,EAAIj9Y,OAAS,EAAIi9Y,EAAI9yY,WAAW,GAAK,IAAM,GAC3C8yY,EAAIj9Y,OAAS,EAAIi9Y,EAAI9yY,WAAW,GAAK,GAO7C,MANQ,CACJwyY,EAASrmY,OAAQ6mY,IAAQ,IACzBR,EAASrmY,OAAQ6mY,IAAQ,GAAM,IAC/BD,GAAU,EAAI,IAAMP,EAASrmY,OAAQ6mY,IAAQ,EAAK,IAClDD,GAAU,EAAI,IAAMP,EAASrmY,OAAa,GAAN6mY,IAE3B3vY,KAAK,KAElBqI,EAAO9J,EAAO8J,MAA8B,mBAAf9J,EAAO8J,KAClC,SAAS1N,GAAI,OAAO4D,EAAO8J,KAAK1N,IAAO,SAASA,GAClD,GAAIA,EAAEoF,MAAM,gBAAiB,MAAM,IAAIjI,WACnC,2CAEJ,OAAO6C,EAAEgK,QAAQ,eAAgB6qY,IAEjC/+M,EAAU,SAAShoL,GACnB,OAAOJ,EAAKknY,EAAKj0Y,OAAOmN,MAExBmnY,EAAY,SAAUzgQ,GACtB,OAAOA,EAAIxqI,QAAQ,UAAU,SAASkrY,GAClC,MAAa,KAANA,EAAY,IAAM,OAC1BlrY,QAAQ,KAAM,KAEjB2nB,EAAS,SAAS7jB,EAAGqnY,GACrB,OAAOA,EAAUF,EAAUn/M,EAAQhoL,IAAMgoL,EAAQhoL,IAEjDorD,EAAY,SAASprD,GAAK,OAAO6jB,EAAO7jB,GAAG,IAE3ClK,EAAOxG,aAAYwxW,EAAiB,SAASnqW,EAAG0wY,GAGhD,IADA,IAAI3gQ,EAAM,GACD98I,EAAI,EAAGu7C,EAAIxuC,EAAE5M,OAAQH,EAAIu7C,EAAGv7C,GAAK,EAAG,CACzC,IAAI80D,EAAK/nD,EAAE/M,GAAI+0D,EAAKhoD,EAAE/M,EAAE,GAAIg1D,EAAKjoD,EAAE/M,EAAE,GACjCs9Y,EAAMxoV,GAAM,GAAKC,GAAM,EAAIC,EAC/B8nF,GAAUggQ,EAASrmY,OAAQ6mY,IAAQ,IACzBR,EAASrmY,OAAQ6mY,IAAQ,GAAM,KACpB,oBAANvoV,EACL+nV,EAASrmY,OAAQ6mY,IAAS,EAAK,IAAM,MAC1B,oBAANtoV,EACL8nV,EAASrmY,OAAsB,GAAd6mY,GAAoB,KAEnD,OAAOG,EAAUF,EAAUzgQ,GAAOA,IAGtC,IA0DI25N,EA1DAinC,EAAU,8EACVC,EAAU,SAASC,GACnB,OAAOA,EAAKz9Y,QACZ,KAAK,EACD,IAIAsJ,IAJW,EAAOm0Y,EAAKtzY,WAAW,KAAO,IAC9B,GAAOszY,EAAKtzY,WAAW,KAAO,IAC9B,GAAOszY,EAAKtzY,WAAW,KAAQ,EAC/B,GAAOszY,EAAKtzY,WAAW,IACpB,MACd,OAAQuB,EAAgC,OAAlBpC,IAAY,KACxBoC,EAAgC,OAAT,KAATpC,IAC5B,KAAK,EACD,OAAOoC,GACD,GAAO+xY,EAAKtzY,WAAW,KAAO,IACxB,GAAOszY,EAAKtzY,WAAW,KAAO,EAC9B,GAAOszY,EAAKtzY,WAAW,IAEvC,QACI,OAAQuB,GACF,GAAO+xY,EAAKtzY,WAAW,KAAO,EACxB,GAAOszY,EAAKtzY,WAAW,MAIvCuzY,EAAO,SAASv1Y,GAChB,OAAOA,EAAEgK,QAAQorY,EAASC,IAE1BG,EAAY,SAASF,GACrB,IAAIt5Y,EAAMs5Y,EAAKz9Y,OACfk9Y,EAAS/4Y,EAAM,EACfrE,GAAKqE,EAAM,EAAIy4Y,EAAOa,EAAKnnY,OAAO,KAAO,GAAK,IACvCnS,EAAM,EAAIy4Y,EAAOa,EAAKnnY,OAAO,KAAO,GAAK,IACzCnS,EAAM,EAAIy4Y,EAAOa,EAAKnnY,OAAO,KAAQ,EAAI,IACzCnS,EAAM,EAAIy4Y,EAAOa,EAAKnnY,OAAO,IAAY,GAChD2wR,EAAQ,CACJv7R,EAAc5L,IAAM,IACpB4L,EAAc5L,IAAO,EAAK,KAC1B4L,EAA0B,IAAZ5L,IAGlB,OADAmnS,EAAMjnS,QAAU,CAAC,EAAG,EAAG,EAAG,GAAGk9Y,GACtBj2G,EAAMz5R,KAAK,KAElBowY,EAAQ7xY,EAAO6I,MAA8B,mBAAf7I,EAAO6I,KACnC,SAAShI,GAAI,OAAOb,EAAO6I,KAAKhI,IAAO,SAASA,GAClD,OAAOA,EAAEuF,QAAQ,WAAYwrY,IAE7B/oY,EAAO,SAAShI,GAChB,OAAOgxY,EAAM90Y,OAAO8D,GAAGuF,QAAQ,oBAAqB,MAEpD69T,EAAU,SAASpjU,GAAK,OAAO8wY,EAAKE,EAAMhxY,KAC1CixY,EAAW,SAASjxY,GACpB,OAAO9D,OAAO8D,GAAGuF,QAAQ,SAAS,SAASkrY,GACvC,MAAa,KAANA,EAAY,IAAM,OAC1BlrY,QAAQ,oBAAqB,KAEhCwmB,EAAS,SAAS/rB,GAClB,OAAOojU,EAAQ6tE,EAASjxY,KAGxBb,EAAOxG,aAAY+wW,EAAe,SAAS1pW,GAC3C,OAAOrH,WAAWM,KAAK+O,EAAKipY,EAASjxY,KAAK,SAASnC,GAC/C,OAAOA,EAAEN,WAAW,QAG5B,IAAI2zY,EAAa,WACb,IAAIpB,EAAS3wY,EAAO2wY,OAEpB,OADA3wY,EAAO2wY,OAASD,EACTC,GAmBX,GAhBA3wY,EAAO2wY,OAAS,CACZqB,QAASjnX,EACTliB,KAAMA,EACNiB,KAAMA,EACNmoY,WAAYrlX,EACZ09U,SAAUv8U,EACVijX,KAAMA,EACNjjX,OAAQA,EACRunC,UAAWA,EACXq8U,KAAMA,EACN/kX,OAAQA,EACRmlX,WAAYA,EACZ/mC,eAAgBA,EAChBT,aAAcA,GAGmB,oBAA1B72W,OAAO8M,eAA+B,CAC7C,IAAI0xY,EAAS,SAASh4W,GAClB,MAAO,CAACxjC,MAAMwjC,EAAEtiB,YAAW,EAAMM,UAAS,EAAKzX,cAAa,IAEhET,EAAO2wY,OAAOwB,aAAe,WACzBz+Y,OAAO8M,eACHzD,OAAO5I,UAAW,aAAc+9Y,GAAO,WACnC,OAAOtlX,EAAOr4B,UAEtBb,OAAO8M,eACHzD,OAAO5I,UAAW,WAAY+9Y,GAAO,SAAUX,GAC3C,OAAOxjX,EAAOx5B,KAAMg9Y,OAE5B79Y,OAAO8M,eACHzD,OAAO5I,UAAW,cAAe+9Y,GAAO,WACpC,OAAOnkX,EAAOx5B,MAAM,QAOhCyL,EAAM,SACN2wY,OAAS3wY,EAAO2wY,QAIiBr6Y,EAAOC,QACxCD,EAAOC,QAAQo6Y,OAAS3wY,EAAO2wY,YAIzB,kBAAiB,OAAO3wY,EAAO2wY,QAA/B,QAAC,OAAD,aAGV,MAAO,CAACA,OAAQ3wY,EAAO2wY,QAzNAjrT,CAAQ1lF,GAFjC,CAMkB,qBAATgO,KAAuBA,KACN,qBAAXrB,OAAyBA,OACd,qBAAX3M,EAAyBA,EACxCzL,Q,+CChBF,IAAI69Y,EAAO57Y,EAAQ,KACnBF,EAAOC,QAAU,IAAI67Y,EAAK57Y,EAAQ,O,gBCHlC,QAA0B67Y,IAIN,WAElB,SAAS5yW,EAAW6yW,GAClB,IAAIC,EAAc,GAClB,GAAwB,IAApBD,EAASr+Y,OAAgB,MAAO,GAEpC,GAA2B,kBAAhBq+Y,EAAS,GAClB,MAAM,IAAIv4Y,UAAU,kCAAoCu4Y,EAAS,IAInE,GAAIA,EAAS,GAAG9wY,MAAM,iBAAmB8wY,EAASr+Y,OAAS,EAAG,CAC5D,IAAI0sB,EAAQ2xX,EAASvhY,QACrBuhY,EAAS,GAAK3xX,EAAQ2xX,EAAS,GAI7BA,EAAS,GAAG9wY,MAAM,gBACpB8wY,EAAS,GAAKA,EAAS,GAAGlsY,QAAQ,gBAAiB,UAEnDksY,EAAS,GAAKA,EAAS,GAAGlsY,QAAQ,gBAAiB,SAGrD,IAAK,IAAItS,EAAI,EAAGA,EAAIw+Y,EAASr+Y,OAAQH,IAAK,CACxC,IAAIw0B,EAAYgqX,EAASx+Y,GAEzB,GAAyB,kBAAdw0B,EACT,MAAM,IAAIvuB,UAAU,kCAAoCuuB,GAGxC,KAAdA,IAEAx0B,EAAI,IAENw0B,EAAYA,EAAUliB,QAAQ,SAAU,KAIxCkiB,EAFEx0B,EAAIw+Y,EAASr+Y,OAAS,EAEZq0B,EAAUliB,QAAQ,SAAU,IAG5BkiB,EAAUliB,QAAQ,SAAU,KAG1CmsY,EAAYp0Y,KAAKmqB,IAInB,IAAIrqB,EAAMs0Y,EAAY9wY,KAAK,KAOvB+hD,GAHJvlD,EAAMA,EAAImI,QAAQ,kBAAmB,OAGrBuL,MAAM,KAGtB,OAFA1T,EAAMulD,EAAMzyC,SAAWyyC,EAAMvvD,OAAS,EAAI,IAAK,IAAMuvD,EAAM/hD,KAAK,KAKlE,OAAO,WASL,OAAOg+B,EANqB,kBAAjBzrC,UAAU,GACXA,UAAU,GAEV,GAAG6D,MAAMxD,KAAKL,cAtEWsC,EAAOC,QAASD,EAAOC,QAAU87Y,SACX,2BAANv3W,KAAM,mC,cCE7D,SAAS03W,EAAUtzR,EAAUq0B,GAC3B,IAAIsnC,EAAM37D,EAASxqH,QAAQ6+I,GAE3B,IAAa,IAATsnC,EACF,MAAM,IAAIjhL,MAAM,4BAA8B25I,GAGhD,OAAOsnC,EAGTvkL,EAAOC,QAAU,SAAuBwS,EAAO6hC,GAC7C,IAAIs0E,EAEJ,OAAQt0E,GACN,IAAK,UACL,IAAK,UACHs0E,EApBQ,mCAqBRn2G,EAAQA,EAAM3C,QAAQ,MAAO,IAC7B,MACF,IAAK,cACH84G,EAvBY,mCAwBZn2G,EAAQA,EAAM3C,QAAQ,MAAO,IAC7B,MACF,IAAK,YACH84G,EA1BU,mCA2BVn2G,EAAQA,EAAMq1D,cAAch4D,QAAQ,KAAM,KAAKA,QAAQ,QAAS,KAChE,MACF,QACE,MAAM,IAAIxM,MAAM,2BAA6BgxC,GAWjD,IARA,IAAI32C,EAAS8U,EAAM9U,OAEf65D,EAAO,EACPp3D,EAAQ,EAERiB,EAAQ,EACRwR,EAAS,IAAI3P,WAAqB,EAATvF,EAAa,EAAK,GAEtCH,EAAI,EAAGA,EAAIG,EAAQH,IAC1B4C,EAASA,GAAS,EAAK87Y,EAAStzR,EAAUn2G,EAAMjV,KAChDg6D,GAAQ,IAEI,IACV3kD,EAAOxR,KAAYjB,IAAWo3D,EAAO,EAAM,IAC3CA,GAAQ,GAIZ,OAAO3kD,EAAOpO,S,gBCrDhB,IAAI03Y,EAAaj8Y,EAAQ,MAMzBF,EAAOC,QAAU,SAAuBjB,EAAMs1C,EAAShkC,GAErD,IAAIs4G,EAAUwzR,EAEd,OAHA9rY,EAAUA,GAAW,GAGbgkC,GACN,IAAK,UACL,IAAK,UACHs0E,EAXQ,mCAYRwzR,GAAiB,EACjB,MACF,IAAK,cACHxzR,EAdY,mCAeZwzR,GAAiB,EACjB,MACF,IAAK,YACHxzR,EAjBU,mCAkBVwzR,GAAiB,EACjB,MACF,QACE,MAAM,IAAI94Y,MAAM,2BAA6BgxC,GAUjD,IAPA,IAAImb,OAA+B9yD,IAApB2T,EAAQm/C,QAAwBn/C,EAAQm/C,QAAU2sV,EAC7DhyI,EAAO+xI,EAAWn9Y,GAElBw4D,EAAO,EACPp3D,EAAQ,EACRyS,EAAS,GAEJrV,EAAI,EAAGA,EAAI4sQ,EAAKvmQ,WAAYrG,IAInC,IAHA4C,EAASA,GAAS,EAAKgqQ,EAAKR,SAASpsQ,GACrCg6D,GAAQ,EAEDA,GAAQ,GACb3kD,GAAU+1G,EAAUxoH,IAAWo3D,EAAO,EAAM,IAC5CA,GAAQ,EAQZ,GAJIA,EAAO,IACT3kD,GAAU+1G,EAAUxoH,GAAU,EAAIo3D,EAAS,KAGzC/H,EACF,KAAQ58C,EAAOlV,OAAS,IAAO,GAC7BkV,GAAU,IAId,OAAOA,I,iBCnDD,SAAU5S,GAAW,aAE3B,SAASq5B,EAAQjzB,GACf,OAAOuF,MAAM/N,UAAU0D,MAAMxD,KAAKsI,GAGpC,SAASg2Y,EAAiB5kY,GACxB,OAAO,IAAI9C,SAAQ,SAASF,EAASD,GACnCiD,EAAQG,UAAY,WAClBnD,EAAQgD,EAAQI,SAGlBJ,EAAQQ,QAAU,WAChBzD,EAAOiD,EAAQ3C,WAKrB,SAASwnY,EAAqB76Y,EAAK8wB,EAAQtY,GACzC,IAAIxC,EACA7Z,EAAI,IAAI+W,SAAQ,SAASF,EAASD,GAEpC6nY,EADA5kY,EAAUhW,EAAI8wB,GAAQv0B,MAAMyD,EAAKwY,IACPozB,KAAK54B,EAASD,MAI1C,OADA5W,EAAE6Z,QAAUA,EACL7Z,EAGT,SAAS2+Y,EAA2B96Y,EAAK8wB,EAAQtY,GAC/C,IAAIrc,EAAI0+Y,EAAqB76Y,EAAK8wB,EAAQtY,GAC1C,OAAOrc,EAAEyvC,MAAK,SAASjtC,GACrB,GAAKA,EACL,OAAO,IAAIo8Y,EAAOp8Y,EAAOxC,EAAE6Z,YAI/B,SAASglY,EAAgBC,EAAYC,EAAY15T,GAC/CA,EAAW3xE,SAAQ,SAASyyD,GAC1B3mE,OAAO8M,eAAewyY,EAAW7+Y,UAAWkmE,EAAM,CAChDvsC,IAAK,WACH,OAAOv5B,KAAK0+Y,GAAY54U,IAE1Bx0D,IAAK,SAAS7K,GACZzG,KAAK0+Y,GAAY54U,GAAQr/D,QAMjC,SAASk4Y,EAAoBF,EAAYC,EAAYnvW,EAAay1C,GAChEA,EAAW3xE,SAAQ,SAASyyD,GACpBA,KAAQv2B,EAAY3vC,YAC1B6+Y,EAAW7+Y,UAAUkmE,GAAQ,WAC3B,OAAOu4U,EAAqBr+Y,KAAK0+Y,GAAa54U,EAAMrmE,gBAK1D,SAASm/Y,EAAaH,EAAYC,EAAYnvW,EAAay1C,GACzDA,EAAW3xE,SAAQ,SAASyyD,GACpBA,KAAQv2B,EAAY3vC,YAC1B6+Y,EAAW7+Y,UAAUkmE,GAAQ,WAC3B,OAAO9lE,KAAK0+Y,GAAY54U,GAAM/lE,MAAMC,KAAK0+Y,GAAaj/Y,gBAK5D,SAASo/Y,EAA0BJ,EAAYC,EAAYnvW,EAAay1C,GACtEA,EAAW3xE,SAAQ,SAASyyD,GACpBA,KAAQv2B,EAAY3vC,YAC1B6+Y,EAAW7+Y,UAAUkmE,GAAQ,WAC3B,OAAOw4U,EAA2Bt+Y,KAAK0+Y,GAAa54U,EAAMrmE,gBAKhE,SAASq/Y,EAAM17Y,GACbpD,KAAK+6S,OAAS33S,EAuBhB,SAASm7Y,EAAO1pN,EAAQr7K,GACtBxZ,KAAK++Y,QAAUlqN,EACf70L,KAAKs8J,SAAW9iJ,EA+BlB,SAASwlY,EAAYjyW,GACnB/sC,KAAKi/Y,OAASlyW,EAuChB,SAASmyW,EAAYC,GACnBn/Y,KAAKo/Y,IAAMD,EACXn/Y,KAAKy3C,SAAW,IAAI/gC,SAAQ,SAASF,EAASD,GAC5C4oY,EAAeE,WAAa,WAC1B7oY,KAEF2oY,EAAenlY,QAAU,WACvBzD,EAAO4oY,EAAetoY,QAExBsoY,EAAer/S,QAAU,WACvBvpF,EAAO4oY,EAAetoY,WAkB5B,SAASyoY,EAAU9oT,EAAI1/C,EAAYO,GACjCr3C,KAAKu/Y,IAAM/oT,EACXx2F,KAAK82C,WAAaA,EAClB92C,KAAKq3C,YAAc,IAAI6nW,EAAY7nW,GAkBrC,SAASmoW,EAAGhpT,GACVx2F,KAAKu/Y,IAAM/oT,EA6Db,SAASipT,EAAOpkY,EAAMmb,EAASkpX,GAC7B,IAAI//Y,EAAI0+Y,EAAqBjlY,UAAW,OAAQ,CAACiC,EAAMmb,IACnDhd,EAAU7Z,EAAE6Z,QAUhB,OARIA,IACFA,EAAQO,gBAAkB,SAAS2Z,GAC7BgsX,GACFA,EAAgB,IAAIJ,EAAU9lY,EAAQI,OAAQ8Z,EAAMojB,WAAYt9B,EAAQ69B,gBAKvE13C,EAAEyvC,MAAK,SAASonD,GACrB,OAAO,IAAIgpT,EAAGhpT,MAIlB,SAASmpT,EAAStkY,GAChB,OAAOgjY,EAAqBjlY,UAAW,iBAAkB,CAACiC,IA9N5DmjY,EAAgBM,EAAO,SAAU,CAC/B,OACA,UACA,aACA,WAGFH,EAAoBG,EAAO,SAAUc,SAAU,CAC7C,MACA,SACA,SACA,aACA,UAGFf,EAA0BC,EAAO,SAAUc,SAAU,CACnD,aACA,kBAQFpB,EAAgBD,EAAQ,UAAW,CACjC,YACA,MACA,aACA,UAGFI,EAAoBJ,EAAQ,UAAWsB,UAAW,CAChD,SACA,WAIF,CAAC,UAAW,WAAY,sBAAsBxsY,SAAQ,SAASq3B,GACvDA,KAAcm1W,UAAUjgZ,YAC9B2+Y,EAAO3+Y,UAAU8qC,GAAc,WAC7B,IAAImqJ,EAAS70L,KACTgc,EAAOvc,UACX,OAAOiX,QAAQF,UAAU44B,MAAK,WAE5B,OADAylJ,EAAOkqN,QAAQr0W,GAAY3qC,MAAM80L,EAAOkqN,QAAS/iY,GAC1CoiY,EAAiBvpN,EAAOv4B,UAAUltH,MAAK,SAASjtC,GACrD,GAAKA,EACL,OAAO,IAAIo8Y,EAAOp8Y,EAAO0yL,EAAOv4B,qBAUxC0iP,EAAYp/Y,UAAUkgZ,YAAc,WAClC,OAAO,IAAIhB,EAAM9+Y,KAAKi/Y,OAAOa,YAAY//Y,MAAMC,KAAKi/Y,OAAQx/Y,aAG9Du/Y,EAAYp/Y,UAAUwD,MAAQ,WAC5B,OAAO,IAAI07Y,EAAM9+Y,KAAKi/Y,OAAO77Y,MAAMrD,MAAMC,KAAKi/Y,OAAQx/Y,aAGxD++Y,EAAgBQ,EAAa,SAAU,CACrC,OACA,UACA,aACA,kBAGFL,EAAoBK,EAAa,SAAUe,eAAgB,CACzD,MACA,MACA,SACA,QACA,MACA,SACA,SACA,aACA,UAGFlB,EAA0BG,EAAa,SAAUe,eAAgB,CAC/D,aACA,kBAGFnB,EAAaI,EAAa,SAAUe,eAAgB,CAClD,gBAkBFb,EAAYt/Y,UAAU03C,YAAc,WAClC,OAAO,IAAI0nW,EAAYh/Y,KAAKo/Y,IAAI9nW,YAAYv3C,MAAMC,KAAKo/Y,IAAK3/Y,aAG9D++Y,EAAgBU,EAAa,MAAO,CAClC,mBACA,SAGFN,EAAaM,EAAa,MAAOc,eAAgB,CAC/C,UASFV,EAAU1/Y,UAAUm3C,kBAAoB,WACtC,OAAO,IAAIioW,EAAYh/Y,KAAKu/Y,IAAIxoW,kBAAkBh3C,MAAMC,KAAKu/Y,IAAK9/Y,aAGpE++Y,EAAgBc,EAAW,MAAO,CAChC,OACA,UACA,qBAGFV,EAAaU,EAAW,MAAOW,YAAa,CAC1C,oBACA,UAOFT,EAAG5/Y,UAAUy3C,YAAc,WACzB,OAAO,IAAI6nW,EAAYl/Y,KAAKu/Y,IAAIloW,YAAYt3C,MAAMC,KAAKu/Y,IAAK9/Y,aAG9D++Y,EAAgBgB,EAAI,MAAO,CACzB,OACA,UACA,qBAGFZ,EAAaY,EAAI,MAAOS,YAAa,CACnC,UAKF,CAAC,aAAc,iBAAiB5sY,SAAQ,SAAS6sY,GAC/C,CAAClB,EAAaF,GAAOzrY,SAAQ,SAASk8B,GAE9B2wW,KAAY3wW,EAAY3vC,YAE9B2vC,EAAY3vC,UAAUsgZ,EAASruY,QAAQ,OAAQ,YAAc,WAC3D,IAAImK,EAAOqf,EAAQ57B,WACfmX,EAAWoF,EAAKA,EAAKtc,OAAS,GAC9BygZ,EAAengZ,KAAKi/Y,QAAUj/Y,KAAK+6S,OACnCvhS,EAAU2mY,EAAaD,GAAUngZ,MAAMogZ,EAAcnkY,EAAK1Y,MAAM,GAAI,IACxEkW,EAAQG,UAAY,WAClB/C,EAAS4C,EAAQI,iBAOzB,CAACklY,EAAOE,GAAa3rY,SAAQ,SAASk8B,GAChCA,EAAY3vC,UAAU2uX,SAC1Bh/U,EAAY3vC,UAAU2uX,OAAS,SAAS1/P,EAAOttG,GAC7C,IAAI+tB,EAAWtvC,KACXonB,EAAQ,GAEZ,OAAO,IAAI1Q,SAAQ,SAASF,GAC1B84B,EAAS8wW,cAAcvxR,GAAO,SAASgmE,GAChCA,GAILztK,EAAMxd,KAAKirL,EAAO1yL,YAEJzD,IAAV6iB,GAAuB6F,EAAM1nB,QAAU6hB,EAI3CszK,EAAOwrN,WAHL7pY,EAAQ4Q,IANR5Q,EAAQ4Q,cAoClBplB,EAAQy9Y,OAASA,EACjBz9Y,EAAQ29Y,SAAWA,EAEnBxgZ,OAAO8M,eAAejK,EAAS,aAAc,CAAEG,OAAO,IAxTSgvF,CAAQnvF,I,6ECkBzE,Y,mBAA+B,Q,6BCjB/BA,EAAQk0B,YAAa,EAErBl0B,EAAQ4R,QAAU,SAAU+wM,EAAMoD,GAChC,GAAIpD,GAAQoD,EAAe,CACzB,IAAIu4L,EAAqB3yY,MAAMjJ,QAAQqjN,GAAiBA,EAAgBA,EAAc3qM,MAAM,KACxFw9U,EAAWj2I,EAAKtpM,MAAQ,GACxB2lO,GAAYr8B,EAAKj+M,MAAQ,IAAIQ,cAC7Bq5Y,EAAev/J,EAASnvO,QAAQ,QAAS,IAC7C,OAAOyuY,EAAmBnoW,MAAK,SAAUzxC,GACvC,IAAI85Y,EAAY95Y,EAAKkL,OAAO1K,cAE5B,MAA4B,MAAxBs5Y,EAAUxqY,OAAO,GACZ4kV,EAAS1zV,cAAc87I,SAASw9P,GAC9BA,EAAUx9P,SAAS,MAErBu9P,IAAiBC,EAAU3uY,QAAQ,QAAS,IAG9CmvO,IAAaw/J,KAIxB,OAAO,I,cCnBTz+Y,EAAOC,QAAU,CACf,MAAQ,EACR,MAAQ,EACR,IAAM,EACN,KAAO,EACP,OAAS,EACT,IAAM,EACN,KAAO,EACP,OAAS,EACT,MAAQ,EACR,MAAQ,EACR,OAAS,EACT,QAAU,EACV,OAAS,EACT,KAAO,I,6BC6BTD,EAAOC,QA5BS,SAASktG,EAAWzrC,EAAQn3D,EAAGzE,EAAGsC,EAAG0Y,EAAG3iB,EAAGsiD,GAOzD,IAAK0sD,EAAW,CACd,IAAIr4F,EACJ,QAAenY,IAAX+kE,EACF5sD,EAAQ,IAAIxR,MACV,qIAGG,CACL,IAAI2W,EAAO,CAAC1P,EAAGzE,EAAGsC,EAAG0Y,EAAG3iB,EAAGsiD,GACvBi+V,EAAW,GACf5pY,EAAQ,IAAIxR,MACVo+D,EAAO5xD,QAAQ,OAAO,WAAa,OAAOmK,EAAKykY,UAE3CplY,KAAO,sBAIf,MADAxE,EAAM6pY,YAAc,EACd7pY,K,6BC1CV1X,OAAO8M,eAAejK,EAAS,aAAc,CAC3CG,OAAO,IAGT,IAIgCqB,EAJ5Bm9Y,EAAW1+Y,EAAQ,MAEnB2+Y,GAE4Bp9Y,EAFOm9Y,IAEcn9Y,EAAI0yB,WAAa1yB,EAAM,CAAEoQ,QAASpQ,GAEvFxB,EAAQ4R,QAAUgtY,EAAUhtY,S,6BCT1B7R,EAAOC,QAAUC,EAAQ,O,gBCH3B,IAAI0sD,EAAQ1sD,EAAQ,MAyCpBF,EAAOC,QA5BP,SAAuBnD,EAAOoc,GAC5B,IAKI4lY,EALAjsY,EAAS,KACb,IAAK/V,GAA0B,kBAAVA,EACnB,OAAO+V,EAST,IALA,IAEIiwE,EACA1iF,EAHA2+Y,EAAenyV,EAAM9vD,GACrBkiZ,EAAkC,oBAAb9lY,EAIhB1b,EAAI,EAAGsE,EAAMi9Y,EAAaphZ,OAAQH,EAAIsE,EAAKtE,IAElDslF,GADAg8T,EAAcC,EAAavhZ,IACJslF,SACvB1iF,EAAQ0+Y,EAAY1+Y,MAEhB4+Y,EACF9lY,EAAS4pE,EAAU1iF,EAAO0+Y,GACjB1+Y,IACTyS,IAAWA,EAAS,IACpBA,EAAOiwE,GAAY1iF,GAIvB,OAAOyS,I,8BCtCT,ybAAS6c,EAAQjuB,GAAmV,OAAtOiuB,EAArD,oBAAX1lB,QAAoD,kBAApBA,OAAOkP,SAAmC,SAAiBzX,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXuI,QAAyBvI,EAAI8S,cAAgBvK,QAAUvI,IAAQuI,OAAOnM,UAAY,gBAAkB4D,GAAiBiuB,EAAQjuB,GAanX,SAASib,EAAerW,EAAK7I,GAAK,OAMlC,SAAyB6I,GAAO,GAAIuF,MAAMjJ,QAAQ0D,GAAM,OAAOA,EANtBsW,CAAgBtW,IAIzD,SAA+BA,EAAK7I,GAAK,GAAsB,qBAAXwM,UAA4BA,OAAOkP,YAAY9b,OAAOiJ,IAAO,OAAQ,IAAIwF,EAAO,GAAQ+Q,GAAK,EAAUC,GAAK,EAAWC,OAAKngB,EAAW,IAAM,IAAK,IAAiCogB,EAA7BC,EAAK3W,EAAI2D,OAAOkP,cAAmB0D,GAAMG,EAAKC,EAAGC,QAAQC,QAAoBrR,EAAKhE,KAAKkV,EAAG3c,QAAY5C,GAAKqO,EAAKlO,SAAWH,GAA3Dof,GAAK,IAAoE,MAAOO,GAAON,GAAK,EAAMC,EAAKK,EAAtL,QAAuM,IAAWP,GAAsB,MAAhBI,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOjR,EAJjauR,CAAsB/W,EAAK7I,IAAM+b,GAA4BlT,EAAK7I,IAEnI,WAA8B,MAAM,IAAIiG,UAAU,6IAFuF4Z,GAQzI,SAASwwB,IAA2Q,OAA9PA,EAAWzwC,OAAOC,QAAU,SAAU+N,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAS9jB,UAAUF,GAAI,IAAK,IAAIqB,KAAO2iB,EAAcpkB,OAAOS,UAAUC,eAAeC,KAAKyjB,EAAQ3iB,KAAQuM,EAAOvM,GAAO2iB,EAAO3iB,IAAY,OAAOuM,GAAkByiC,EAAS7vC,MAAMC,KAAMP,WAEhT,SAASw6B,EAAyB1W,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAAkE3iB,EAAKrB,EAAnE4N,EAEzF,SAAuCoW,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAA2D3iB,EAAKrB,EAA5D4N,EAAS,GAAQgtB,EAAah7B,OAAOsE,KAAK8f,GAAqB,IAAKhkB,EAAI,EAAGA,EAAI46B,EAAWz6B,OAAQH,IAAOqB,EAAMu5B,EAAW56B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,IAAauM,EAAOvM,GAAO2iB,EAAO3iB,IAAQ,OAAOuM,EAFxMitB,CAA8B7W,EAAQ2W,GAAuB,GAAI/6B,OAAOiB,sBAAuB,CAAE,IAAIi6B,EAAmBl7B,OAAOiB,sBAAsBmjB,GAAS,IAAKhkB,EAAI,EAAGA,EAAI86B,EAAiB36B,OAAQH,IAAOqB,EAAMy5B,EAAiB96B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,GAAkBzB,OAAOS,UAAUS,qBAAqBP,KAAKyjB,EAAQ3iB,KAAgBuM,EAAOvM,GAAO2iB,EAAO3iB,IAAU,OAAOuM,EAMne,SAASqiC,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAM7S,SAASo8F,EAAgB1wH,EAAGxb,GAA+G,OAA1GksI,EAAkB1sI,OAAOs2B,gBAAkB,SAAyBta,EAAGxb,GAAsB,OAAjBwb,EAAEjW,UAAYvF,EAAUwb,GAAa0wH,EAAgB1wH,EAAGxb,GAErK,SAASmsI,GAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFj9F,QAAQvvC,UAAU+jC,QAAQ7jC,KAAKmsI,QAAQC,UAAU/8F,QAAS,IAAI,iBAAyB,EAAQ,MAAOjvC,GAAK,OAAO,GAN9PmsI,GAA6B,OAAO,WAAkC,IAAsCzyH,EAAlC0yH,EAAQ15F,GAAgBm5F,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY35F,GAAgB5yC,MAAMsW,YAAasD,EAASqyH,QAAQC,UAAUI,EAAO7sI,UAAW8sI,QAAqB3yH,EAAS0yH,EAAMvsI,MAAMC,KAAMP,WAAc,OAAO+sI,GAA2BxsI,KAAM4Z,IAE5Z,SAAS4yH,GAA2B/yH,EAAM3Z,GAAQ,OAAIA,GAA2B,WAAlB2xB,EAAQ3xB,IAAsC,oBAATA,EAA8CwsD,GAAuB7yC,GAAtC3Z,EAEnI,SAASwsD,GAAuB7yC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIk5B,eAAe,6DAAgE,OAAOl5B,EAI/J,SAASm5B,GAAgBz3B,GAAwJ,OAAnJy3B,GAAkBzzC,OAAOs2B,eAAiBt2B,OAAO0zC,eAAiB,SAAyB13B,GAAK,OAAOA,EAAEjW,WAAa/F,OAAO0zC,eAAe13B,IAAcy3B,GAAgBz3B,GAExM,SAASN,GAAmBzS,GAAO,OAQnC,SAA4BA,GAAO,GAAIuF,MAAMjJ,QAAQ0D,GAAM,OAAO0S,GAAkB1S,GAR1C2S,CAAmB3S,IAM7D,SAA0B4S,GAAQ,GAAsB,qBAAXjP,QAA0BA,OAAOkP,YAAY9b,OAAO6b,GAAO,OAAOrN,MAAMpI,KAAKyV,GANrDE,CAAiB9S,IAAQkT,GAA4BlT,IAE1H,WAAgC,MAAM,IAAI5C,UAAU,wIAF8E+V,GAIlI,SAASD,GAA4BH,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOL,GAAkBK,EAAGC,GAAS,IAAI5b,EAAIL,OAAOS,UAAUiH,SAAS/G,KAAKqb,GAAG7X,MAAM,GAAI,GAAiE,MAAnD,WAAN9D,GAAkB2b,EAAE7E,cAAa9W,EAAI2b,EAAE7E,YAAY+E,MAAgB,QAAN7b,GAAqB,QAANA,EAAoBmO,MAAMpI,KAAK4V,GAAc,cAAN3b,GAAqB,2CAA2C6Y,KAAK7Y,GAAWsb,GAAkBK,EAAGC,QAAzG,GAM7S,SAASN,GAAkB1S,EAAKvE,IAAkB,MAAPA,GAAeA,EAAMuE,EAAI1I,UAAQmE,EAAMuE,EAAI1I,QAAQ,IAAK,IAAIH,EAAI,EAAGic,EAAO,IAAI7N,MAAM9J,GAAMtE,EAAIsE,EAAKtE,IAAOic,EAAKjc,GAAK6I,EAAI7I,GAAM,OAAOic,EAEhL,SAASuH,GAAQC,EAAQC,GAAkB,IAAIxf,EAAOtE,OAAOsE,KAAKuf,GAAS,GAAI7jB,OAAOiB,sBAAuB,CAAE,IAAI8iB,EAAU/jB,OAAOiB,sBAAsB4iB,GAAaC,IAAgBC,EAAUA,EAAQ/G,QAAO,SAAUgH,GAAO,OAAOhkB,OAAOikB,yBAAyBJ,EAAQG,GAAKE,eAAgB5f,EAAKmG,KAAK7J,MAAM0D,EAAMyf,GAAY,OAAOzf,EAE9U,SAAS6f,GAAcnW,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAyB,MAAhB9jB,UAAUF,GAAaE,UAAUF,GAAK,GAAQA,EAAI,EAAKwjB,GAAQ5jB,OAAOokB,IAAS,GAAMlQ,SAAQ,SAAUzS,GAAO4iB,GAAgBrW,EAAQvM,EAAK2iB,EAAO3iB,OAAsBzB,OAAOskB,0BAA6BtkB,OAAOukB,iBAAiBvW,EAAQhO,OAAOskB,0BAA0BF,IAAmBR,GAAQ5jB,OAAOokB,IAASlQ,SAAQ,SAAUzS,GAAOzB,OAAO8M,eAAekB,EAAQvM,EAAKzB,OAAOikB,yBAAyBG,EAAQ3iB,OAAe,OAAOuM,EAE7gB,SAASqW,GAAgBhgB,EAAK5C,EAAKuB,GAAiK,OAApJvB,KAAO4C,EAAOrE,OAAO8M,eAAezI,EAAK5C,EAAK,CAAEuB,MAAOA,EAAOkhB,YAAY,EAAMnX,cAAc,EAAMyX,UAAU,IAAkBngB,EAAI5C,GAAOuB,EAAgBqB,EAwB3M,IAAIw9Y,GAAa,CACfhqF,MAAO,CAAC,SAAU,OAClBC,MAAO,CAAC,OAAQ,UAEdgqF,GAAmB,CACrB10Y,EAAG,EACHC,EAAG,GAID00Y,GAAUj4Y,OAAOwE,SAAWxE,OAAOwE,SAAWA,SAC9CsmM,GAC6B,oBAA1BxiE,sBAAuCA,sBAAgD,oBAAjB40L,EAA8BA,EAAep/R,WACtHo6W,GAC4B,oBAAzB3vQ,qBAAsCA,qBAAiD,oBAAnBi5L,EAAgCA,EAAiBzjS,aA0DxHo6W,GAAmB,SAA0BrgZ,EAAMue,EAAMkG,GAC3D,IAAI67X,EAAiB/hY,EAAK+hY,eACtBC,EAAiBhiY,EAAKgiY,eACtBC,EAAejiY,EAAKiiY,aACpBC,GAAaH,GAAkB,IAAIlkY,QAAO,SAAUvD,EAAQ/Y,GAC9D,IAAI4gZ,EAAW5gZ,EAAMG,MAAMD,KAE3B,OAAI0gZ,GAAYA,EAAS/hZ,OAChB,GAAGoD,OAAO+X,GAAmBjB,GAASiB,GAAmB4mY,IAG3D7nY,IACN,IAEH,OAAI4nY,GAAaA,EAAU9hZ,OAAS,EAC3B8hZ,EAGLh8X,GAAQA,EAAKxkB,OAASwkB,EAAKxkB,MAAMD,MAAQykB,EAAKxkB,MAAMD,KAAKrB,OAAS,EAC7D8lB,EAAKxkB,MAAMD,KAGhBA,GAAQA,EAAKrB,QAAU4C,YAASg/Y,IAAmBh/Y,YAASi/Y,GACvDxgZ,EAAKuC,MAAMg+Y,EAAgBC,EAAe,GAG5C,IAYLG,GAAoB,SAA2Bl4W,EAAOm4W,EAAWC,EAAaC,GAChF,IAAIR,EAAiB73W,EAAM63W,eACvBS,EAAct4W,EAAMs4W,YACpBC,EAAgBX,GAAiBO,EAAWn4W,GAEhD,OAAIo4W,EAAc,IAAMP,IAAmBA,EAAe3hZ,QAAUkiZ,GAAeG,EAAcriZ,OACxF,KAIF2hZ,EAAelkY,QAAO,SAAUvD,EAAQ/Y,GAG7C,GAFWA,EAAMG,MAAMwlB,KAGrB,OAAO5M,EAGT,IACItC,EADAvW,EAAOF,EAAMG,MAAMD,KAGvB,GAAI+gZ,EAAYj+X,UAAYi+X,EAAYxyX,wBAAyB,CAE/D,IAAIkyE,OAAmB9iG,IAATqC,EAAqBghZ,EAAgBhhZ,EACnDuW,EAAUpT,YAAiBs9F,EAASsgT,EAAYj+X,QAASg+X,QAEzDvqY,EAAUvW,GAAQA,EAAK6gZ,IAAgBG,EAAcH,GAGvD,OAAKtqY,EAIE,GAAGxU,OAAO+X,GAAmBjB,GAAS,CAACkX,YAAejwB,EAAOyW,KAH3DsC,IAIR,KAYDooY,GAAiB,SAAwBx4W,EAAOm4W,EAAWt4X,EAAQ44X,GACrE,IAAIC,EAAYD,GAAY,CAC1B11Y,EAAGi9B,EAAMmqE,OACTnnG,EAAGg9B,EAAMoqE,QAEPlnG,EAhJoB,SAA6Bu1Y,EAAU54X,GAC/D,MAAe,eAAXA,EACK44X,EAAS11Y,EAGH,aAAX8c,EACK44X,EAASz1Y,EAGH,YAAX6c,EACK44X,EAAS5xW,MAGX4xW,EAAS7xW,OAmIN+xW,CAAoBD,EAAW74X,GACrC1E,EAAQ6kB,EAAM44W,oBACdv9X,EAAO2kB,EAAMs4W,YACbO,EAAe74W,EAAM64W,aACrBT,EAAcp9X,YAAyB9X,EAAKiY,EAAO09X,EAAcx9X,GAErE,GAAI+8X,GAAe,GAAKS,EAAc,CACpC,IAAIR,EAAcQ,EAAaT,IAAgBS,EAAaT,GAAaz/Y,MACrEmgZ,EAAgBZ,GAAkBl4W,EAAOm4W,EAAWC,EAAaC,GACjEU,EAzIkB,SAA6Bl5X,EAAQg5X,EAAcT,EAAaK,GACxF,IAAI39Y,EAAQ+9Y,EAAah+Y,MAAK,SAAUg/J,GACtC,OAAOA,GAAQA,EAAKjgK,QAAUw+Y,KAGhC,GAAIt9Y,EAAO,CACT,GAAe,eAAX+kB,EACF,MAAO,CACL9c,EAAGjI,EAAMmgB,WACTjY,EAAGy1Y,EAASz1Y,GAIhB,GAAe,aAAX6c,EACF,MAAO,CACL9c,EAAG01Y,EAAS11Y,EACZC,EAAGlI,EAAMmgB,YAIb,GAAe,YAAX4E,EAAsB,CACxB,IAAIm5X,EAASl+Y,EAAMmgB,WACfg+X,EAAUR,EAAS7xW,OACvB,OAAO9sB,GAAcA,GAAcA,GAAc,GAAI2+X,GAAWhyW,YAAiBgyW,EAAS/xW,GAAI+xW,EAAS9xW,GAAIsyW,EAASD,IAAU,GAAI,CAChInyW,MAAOmyW,EACPpyW,OAAQqyW,IAIZ,IAAIryW,EAAS9rC,EAAMmgB,WACf4rB,EAAQ4xW,EAAS5xW,MACrB,OAAO/sB,GAAcA,GAAcA,GAAc,GAAI2+X,GAAWhyW,YAAiBgyW,EAAS/xW,GAAI+xW,EAAS9xW,GAAIC,EAAQC,IAAS,GAAI,CAC9HA,MAAOA,EACPD,OAAQA,IAIZ,OAAO6wW,GAoGkByB,CAAoBr5X,EAAQ1E,EAAOi9X,EAAaM,GACvE,MAAO,CACLS,mBAAoBf,EACpBC,YAAaA,EACbS,cAAeA,EACfC,iBAAkBA,GAItB,OAAO,MAiOLK,GAAa,SAAoB5hZ,EAAOsgB,GAC1C,IAAIuhY,EAAiBvhY,EAAMwD,SACvBA,OAA8B,IAAnB+9X,EAA4B,QAAUA,EACjDC,EAAWxhY,EAAMwhY,SACjBzB,EAAiB//X,EAAM+/X,eACvBv6X,EAAcxF,EAAMwF,YACpBw6X,EAAiBhgY,EAAMggY,eACvBC,EAAejgY,EAAMigY,aACrB1/Y,EAAWb,EAAMa,SACjBkhZ,EAAY,GAAGjgZ,OAAOgiB,EAAU,MAEhCk+X,EAAOx5X,YAAc3nB,EAAUihZ,GAC/BniS,EAAU,GAwBd,OAtBIqiS,GAAQA,EAAKtjZ,OACfihH,EAhOmB,SAA0B3/G,EAAOue,GACtD,IAAIyjY,EAAOzjY,EAAMyjY,KACb3B,EAAiB9hY,EAAM8hY,eACvBv8X,EAAWvF,EAAMuF,SACjBi+X,EAAYxjY,EAAMwjY,UAClBj8X,EAAcvH,EAAMuH,YACpBw6X,EAAiB/hY,EAAM+hY,eACvBC,EAAehiY,EAAMgiY,aACrBl4X,EAASroB,EAAMqoB,OACfxnB,EAAWb,EAAMa,SACjBohZ,EAAcjiZ,EAAMiiZ,YACpBh4X,EAAgBZ,YAAkBhB,EAAQvE,GA8G9C,OA5Gck+X,EAAK7lY,QAAO,SAAUvD,EAAQ/Y,GAC1C,IAAI8yM,EAAe9yM,EAAMG,MACrB0F,EAAOitM,EAAajtM,KACpBmd,EAAU8vL,EAAa9vL,QACvBqM,EAAoByjL,EAAazjL,kBACjCZ,EAA0BqkL,EAAarkL,wBACvC1E,EAAQ+oL,EAAa/oL,MACrBjG,EAAQgvL,EAAahvL,MACrB4J,EAAS1tB,EAAMG,MAAM+hZ,GACrBhB,EAAgBX,GAAiBpgZ,EAAMD,KAAM,CAC/CsgZ,eAAgBA,EAAellY,QAAO,SAAUqJ,GAC9C,OAAOA,EAAKxkB,MAAM+hZ,KAAex0X,KAEnC+yX,eAAgBA,EAChBC,aAAcA,IAEZ19Y,EAAMk+Y,EAAcriZ,OAExB,IAAKka,EAAO2U,GAAS,CACnB,IAAInK,EAAQyG,EAAiBK,EAE7B,GAAIrH,EAAS,CAIX,GAFAO,EAASJ,YAAqB+9X,EAAel+X,EAASnd,GAEzC,aAATA,GAAuBukB,EAAe,CAExC,IAAIi4X,EAAYx/Y,YAAa0gB,GAEzBkL,GAA2B4zX,GAC7Br4X,EAAkBzG,EAElBA,EAASi4S,IAAO,EAAGx4T,IACTyrB,IAEVlL,EAASsM,YAA0B7vB,EAAMG,MAAMojB,OAAQA,EAAQvjB,GAAOsc,QAAO,SAAU+8S,EAAa51T,GAClG,OAAO41T,EAAY/5T,QAAQmE,IAAU,EAAI41T,EAAc,GAAGp3T,OAAO+X,GAAmBq/S,GAAc,CAAC51T,MAClG,UAEA,GAAa,aAAToC,EAQP0d,EANGkL,EAMMlL,EAAOjI,QAAO,SAAU7X,GAC/B,MAAiB,KAAVA,IAAiBwf,IAAOxf,MANxBosB,YAA0B7vB,EAAMG,MAAMojB,OAAQA,EAAQvjB,GAAOsc,QAAO,SAAU+8S,EAAa51T,GAClG,OAAO41T,EAAY/5T,QAAQmE,IAAU,GAAe,KAAVA,GAAgBwf,IAAOxf,GAAS41T,EAAc,GAAGp3T,OAAO+X,GAAmBq/S,GAAc,CAAC51T,MACnI,SAOA,GAAa,WAAToC,EAAmB,CAE5B,IAAIy8Y,EAAkBj5X,YAAqB63X,EAAeV,EAAellY,QAAO,SAAUqJ,GACxF,OAAOA,EAAKxkB,MAAM+hZ,KAAex0X,IAAW/I,EAAKxkB,MAAMwlB,QACrD3C,EAASiB,GAETq+X,IACF/+X,EAAS++X,IAITl4X,GAA2B,WAATvkB,GAA+B,SAAVkkB,IACzCM,EAAoBlH,YAAqB+9X,EAAel+X,EAAS,kBAInEO,EAFS6G,EAEAoxS,IAAO,EAAGx4T,GACVijB,GAAeA,EAAYyH,IAAWzH,EAAYyH,GAAQE,UAAqB,WAAT/nB,EAEtD,WAAhBu8Y,EAA2B,CAAC,EAAG,GAAKvzX,YAAuB5I,EAAYyH,GAAQzH,YAAaw6X,EAAgBC,GAE5Gn3X,YAA6B23X,EAAeV,EAAellY,QAAO,SAAUqJ,GACnF,OAAOA,EAAKxkB,MAAM+hZ,KAAex0X,IAAW/I,EAAKxkB,MAAMwlB,QACrD9f,GAAM,GAGZ,GAAa,WAATA,EAEF0d,EAASw1S,YAA8B/3T,EAAUuiB,EAAQmK,EAAQzJ,EAAUH,GAEvE9jB,EAAMG,MAAMojB,SACdA,EAAS2L,YAAqBlvB,EAAMG,MAAMojB,OAAQA,EAAQ8L,SAEvD,GAAa,aAATxpB,GAAuB7F,EAAMG,MAAMojB,OAAQ,CACpD,IAAIg/X,EAAaviZ,EAAMG,MAAMojB,OACNA,EAAO1G,OAAM,SAAUpZ,GAC5C,OAAO8+Y,EAAWjjZ,QAAQmE,IAAU,OAIpC8f,EAASg/X,GAIb,OAAO9/X,GAAcA,GAAc,GAAI1J,GAAS,GAAI4J,GAAgB,GAAI+K,EAAQjL,GAAcA,GAAc,GAAIziB,EAAMG,OAAQ,GAAI,CAChI8jB,SAAUA,EACVV,OAAQA,EACR8G,kBAAmBA,EACnBL,gBAAiBA,EACjBmE,eAAgBnuB,EAAMG,MAAMojB,OAC5B6G,cAAeA,EACf5B,OAAQA,MAIZ,OAAOzP,IACN,IAwGSypY,CAAiBriZ,EAAO,CAChCgiZ,KAAMA,EACN3B,eAAgBA,EAChBv8X,SAAUA,EACVi+X,UAAWA,EACXj8X,YAAaA,EACbw6X,eAAgBA,EAChBC,aAAcA,IAEPF,GAAkBA,EAAe3hZ,SAC1CihH,EAhGoB,SAA2B3/G,EAAOqgB,GACxD,IAAIggY,EAAiBhgY,EAAMggY,eACvBiC,EAAOjiY,EAAMiiY,KACbx+X,EAAWzD,EAAMyD,SACjBi+X,EAAY1hY,EAAM0hY,UAClBj8X,EAAczF,EAAMyF,YACpBw6X,EAAiBjgY,EAAMigY,eACvBC,EAAelgY,EAAMkgY,aACrBl4X,EAASroB,EAAMqoB,OACfxnB,EAAWb,EAAMa,SACjBkgZ,EAAgBX,GAAiBpgZ,EAAMD,KAAM,CAC/CsgZ,eAAgBA,EAChBC,eAAgBA,EAChBC,aAAcA,IAEZ19Y,EAAMk+Y,EAAcriZ,OACpBurB,EAAgBZ,YAAkBhB,EAAQvE,GAC1C1hB,GAAS,EAwCb,OAnCci+Y,EAAelkY,QAAO,SAAUvD,EAAQ/Y,GACpD,IAIMujB,EAJFmK,EAAS1tB,EAAMG,MAAM+hZ,GAEzB,OAAKnpY,EAAO2U,GA8BL3U,GA7BLxW,IAGI6nB,EACF7G,EAASi4S,IAAO,EAAGx4T,GACVijB,GAAeA,EAAYyH,IAAWzH,EAAYyH,GAAQE,UACnErK,EAASsL,YAAuB5I,EAAYyH,GAAQzH,YAAaw6X,EAAgBC,GACjFn9X,EAASw1S,YAA8B/3T,EAAUuiB,EAAQmK,EAAQzJ,KAEjEV,EAAS2L,YAAqBuzX,EAAKjrS,aAAaj0F,OAAQgG,YAA6B23X,EAAeV,EAAellY,QAAO,SAAUqJ,GAClI,OAAOA,EAAKxkB,MAAM+hZ,KAAex0X,IAAW/I,EAAKxkB,MAAMwlB,QACrD,UAAW88X,EAAKjrS,aAAanoF,mBACjC9L,EAASw1S,YAA8B/3T,EAAUuiB,EAAQmK,EAAQzJ,IAG5DxB,GAAcA,GAAc,GAAI1J,GAAS,GAAI4J,GAAgB,GAAI+K,EAAQjL,GAAcA,GAAc,CAC1GwB,SAAUA,GACTw+X,EAAKjrS,cAAe,GAAI,CACzB7xF,MAAM,EACN86F,YAAa/8G,IAAKy8Y,GAAY,GAAGl+Y,OAAOgiB,EAAU,KAAKhiB,OAAOM,EAAQ,GAAI,MAC1EghB,OAAQA,EACR4K,eAAgBs0X,EAAKjrS,aAAaj0F,OAClC6G,cAAeA,EACf5B,OAAQA,SAOX,IAwCSk6X,CAAkBviZ,EAAO,CACjCsiZ,KAAMR,EACNzB,eAAgBA,EAChBv8X,SAAUA,EACVi+X,UAAWA,EACXj8X,YAAaA,EACbw6X,eAAgBA,EAChBC,aAAcA,KAIX5gS,GAsBL6iS,GAAqB,SAA4BxiZ,GACnD,IAAIa,EAAWb,EAAMa,SACjB4hZ,EAAqBziZ,EAAMyiZ,mBAC3BC,EAAYz9X,YAAgBpkB,EAAUy4T,IAAM70S,aAGhD,MAAO,CACLkuF,OAAQ,EACRC,OAAQ,EACR0tS,eALeoC,GAAaA,EAAU1iZ,OAAS0iZ,EAAU1iZ,MAAM2uB,YAAc,EAM7E4xX,aALamC,GAAaA,EAAU1iZ,OAAS0iZ,EAAU1iZ,MAAM4uB,UAAY5uB,EAAMD,MAAQC,EAAMD,KAAKrB,OAAS,GAAK,EAMhHijZ,oBAAqB,EACrBgB,iBAAkB7/X,IAAO2/X,IAAsBA,IAe/CG,GAAsB,SAA6Bv6X,GACrD,MAAe,eAAXA,EACK,CACLw6X,gBAAiB,QACjBC,aAAc,SAIH,aAAXz6X,EACK,CACLw6X,gBAAiB,QACjBC,aAAc,SAIH,YAAXz6X,EACK,CACLw6X,gBAAiB,aACjBC,aAAc,aAIX,CACLD,gBAAiB,YACjBC,aAAc,eA0EPC,GAA2B,SAAkC9hY,GACtE,IAAIswL,EAAQC,EAER5xF,EAAY3+F,EAAM2+F,UAClBojS,EAAiB/hY,EAAM+hY,eACvBC,EAAwBhiY,EAAMiiY,wBAC9BA,OAAoD,IAA1BD,EAAmC,OAASA,EACtEE,EAAwBliY,EAAMmiY,0BAC9BA,OAAsD,IAA1BD,EAAmC,CAAC,QAAUA,EAC1EE,EAAiBpiY,EAAMoiY,eACvBt+X,EAAgB9D,EAAM8D,cACtB26F,EAAgBz+F,EAAMy+F,cACtBrI,EAAep2F,EAAMo2F,aAErBisS,EAAiB,SAAwBtjZ,EAAO+9Q,GAClD,IAAIsiI,EAAiBtiI,EAAasiI,eAC9Bv6X,EAAci4P,EAAaj4P,YAC3B9d,EAAS+1Q,EAAa/1Q,OACtB+yT,EAAWh9C,EAAag9C,SACxBulF,EAAiBviI,EAAauiI,eAC9BC,EAAexiI,EAAawiI,aAC5B36X,EAAU5lB,EAAM4lB,QAChByC,EAASroB,EAAMqoB,OACfzB,EAAS5mB,EAAM4mB,OACfC,EAAiB7mB,EAAM6mB,eACvB08X,EAAmBvjZ,EAAMinB,WAEzBu8X,EAAuBZ,GAAoBv6X,GAC3Cw6X,EAAkBW,EAAqBX,gBACvCC,EAAeU,EAAqBV,aAEpCh4X,EA5IkB,SAA6Bu1X,GACrD,SAAKA,IAAmBA,EAAe3hZ,SAIhC2hZ,EAAelpW,MAAK,SAAU3yB,GACnC,IAAInK,EAAOkM,YAAe/B,GAAQA,EAAK9e,MACvC,OAAO2U,GAAQA,EAAKlb,QAAQ,QAAU,KAqIzBskZ,CAAoBpD,GAC7Br5X,EAAW8D,GAAUpF,YAAe,CACtCE,QAASA,EACTE,YAAaA,IAEX49X,EAAiB,GA6ErB,OA5EArD,EAAehuY,SAAQ,SAAUmS,EAAMpiB,GACrC,IAAI2+Y,EAAgBX,GAAiBpgZ,EAAMD,KAAM,CAC/CugZ,eAAgBA,EAChBC,aAAcA,GACb/7X,GACCE,EAAcF,EAAKxkB,MACnB6iB,EAAU6B,EAAY7B,QACtB8gY,EAAkBj/X,EAAYuC,WAC9BkG,EAAgB3I,EAAKxkB,MAAM,GAAG8B,OAAO+gZ,EAAiB,OACtDx8X,EAAa7B,EAAKxkB,MAAM,GAAG8B,OAAOghZ,EAAc,OAChDc,EAAUP,EAAelnY,QAAO,SAAUvD,EAAQtV,GACpD,IAAIugZ,EAEAlkS,EAAUo+J,EAAa,GAAGj8Q,OAAOwB,EAAMwgB,SAAU,QACjDjiB,EAAK2iB,EAAKxkB,MAAM,GAAG8B,OAAOwB,EAAMwgB,SAAU,OAC1CD,EAAO87F,GAAWA,EAAQ99G,GAC9B,OAAOygB,GAAcA,GAAc,GAAI1J,GAAS,IAA0B4J,GAArBqhY,EAAiB,GAAoCvgZ,EAAMwgB,SAAUD,GAAOrB,GAAgBqhY,EAAgB,GAAG/hZ,OAAOwB,EAAMwgB,SAAU,SAAU2F,YAAe5F,IAAQggY,MAC3N,IACCC,EAAWF,EAAQd,GACnBiB,EAAYH,EAAQ,GAAG9hZ,OAAOghZ,EAAc,UAC5Cj1X,EAAc/H,GAAeA,EAAYqH,IAAkBrH,EAAYqH,GAAeM,UAAYe,YAAqBhK,EAAMsB,EAAYqH,GAAerH,aACxJk+X,EAAYz9X,YAAe/B,EAAK9e,MAAMvG,QAAQ,QAAU,EACxD2nB,EAAWuI,YAAkBy0X,EAAUC,GACvCE,EAAc,GAElB,GAAID,EAAW,CACb,IAAI5iY,EAAO8iY,EAGPj9X,EAAanE,IAAO6gY,GAAmBJ,EAAmBI,EAC1DQ,EAA4K,QAA7J/iY,EAAgF,QAAvE8iY,EAAqB70X,YAAkBy0X,EAAUC,GAAW,UAA0C,IAAvBG,EAAgCA,EAAqBj9X,SAAkC,IAAV7F,EAAmBA,EAAQ,EACnN6iY,EAAct9X,YAAe,CAC3BC,OAAQA,EACRC,eAAgBA,EAChBC,SAAUq9X,IAAgBr9X,EAAWq9X,EAAcr9X,EACnDE,SAAUA,EAASX,GACnBY,WAAYA,IAGVk9X,IAAgBr9X,IAClBm9X,EAAcA,EAAYzkZ,KAAI,SAAUkM,GACtC,OAAO4W,GAAcA,GAAc,GAAI5W,GAAM,GAAI,CAC/C8b,SAAUlF,GAAcA,GAAc,GAAI5W,EAAI8b,UAAW,GAAI,CAC3Dxf,OAAQ0D,EAAI8b,SAASxf,OAASm8Y,EAAc,UAOtD,IAGMC,EAHFC,EAAa7/X,GAAQA,EAAK9e,MAAQ8e,EAAK9e,KAAK4+Y,gBAE5CD,GAGFX,EAAe96Y,KAAK,CAClB5I,MAAOsiB,GAAcA,GAAc,GAAI+hY,EAAW/hY,GAAcA,GAAc,GAAIshY,GAAU,GAAI,CAC9F7C,cAAeA,EACf/gZ,MAAOA,EACP6iB,QAASA,EACT2B,KAAMA,EACNsC,SAAUA,EACVm9X,YAAaA,EACbj8Y,OAAQA,EACR6lB,YAAaA,EACbxF,OAAQA,EACRi4X,eAAgBA,EAChBC,aAAcA,MACV,IAAK6D,EAAiB,CAC1BxkZ,IAAK4kB,EAAK5kB,KAAO,QAAQkC,OAAOM,IAC/BogB,GAAgB4hY,EAAgBvB,EAAiBe,EAAQf,IAAmBrgY,GAAgB4hY,EAAgBtB,EAAcc,EAAQd,IAAgBtgY,GAAgB4hY,EAAgB,cAAerpF,GAAWqpF,IAC/MG,WAAYvoX,YAAgBxX,EAAMxkB,EAAMa,UACxC2jB,KAAMA,OAILk/X,GAkBLc,EAA4C,SAAmDnjY,EAAOmiG,GACxG,IAAIxjH,EAAQqhB,EAAMrhB,MACdsgZ,EAAiBj/X,EAAMi/X,eACvBC,EAAel/X,EAAMk/X,aACrBxlF,EAAW15S,EAAM05S,SAErB,IAAKrgS,YAAoB,CACvB16B,MAAOA,IAEP,OAAO,KAGT,IAAIa,EAAWb,EAAMa,SACjBwnB,EAASroB,EAAMqoB,OACf45X,EAAcjiZ,EAAMiiZ,YACpBliZ,EAAOC,EAAMD,KACbqtB,EAAoBptB,EAAMotB,kBAE1Bq3X,EAAwB7B,GAAoBv6X,GAC5Cw6X,EAAkB4B,EAAsB5B,gBACxCC,EAAe2B,EAAsB3B,aAErCzC,EAAiB73X,YAAc3nB,EAAUmiZ,GACzCl9X,EAAcmH,YAAuBltB,EAAMsgZ,EAAgB,GAAGv+Y,OAAO+gZ,EAAiB,MAAO,GAAG/gZ,OAAOghZ,EAAc,MAAOb,EAAa70X,GACzIw2X,EAAUP,EAAelnY,QAAO,SAAUvD,EAAQtV,GACpD,IAAI+W,EAAO,GAAGvY,OAAOwB,EAAMwgB,SAAU,OACrC,OAAOxB,GAAcA,GAAc,GAAI1J,GAAS,GAAI4J,GAAgB,GAAInI,EAAMunY,GAAW5hZ,EAAOsiB,GAAcA,GAAc,GAAIhf,GAAQ,GAAI,CAC1I+8Y,eAAgBA,EAChBv6X,YAAaxiB,EAAMwgB,WAAa++X,GAAmB/8X,EACnDw6X,eAAgBA,EAChBC,aAAcA,SAEf,IACCv4Y,EAhOc,SAAyBgZ,EAAO0jY,GACpD,IAAI1kZ,EAAQghB,EAAMhhB,MACdqgZ,EAAiBr/X,EAAMq/X,eACvBsE,EAAiB3jY,EAAM4jY,SACvBA,OAA8B,IAAnBD,EAA4B,GAAKA,EAC5CE,EAAiB7jY,EAAM8jY,SACvBA,OAA8B,IAAnBD,EAA4B,GAAKA,EAC5ClkZ,EAAQX,EAAMW,MACdD,EAASV,EAAMU,OACfG,EAAWb,EAAMa,SACjBgnB,EAAS7nB,EAAM6nB,QAAU,GACzB66X,EAAYz9X,YAAgBpkB,EAAUy4T,IAAM70S,aAC5CO,EAAaC,YAAgBpkB,EAAUqkB,IAAOT,aAC9CsgY,EAAU5mZ,OAAOsE,KAAKqiZ,GAAU3oY,QAAO,SAAUvD,EAAQ/W,GAC3D,IAAIyB,EAAQwhZ,EAASjjZ,GACjBy+G,EAAch9G,EAAMg9G,YAExB,OAAKh9G,EAAMk9G,QAAWl9G,EAAMkiB,KAIrB5M,EAHE0J,GAAcA,GAAc,GAAI1J,GAAS,GAAI4J,GAAgB,GAAI89F,EAAa1nG,EAAO0nG,GAAeh9G,EAAM3C,UAIlH,CACDmnB,KAAMD,EAAOC,MAAQ,EACrBC,MAAOF,EAAOE,OAAS,IAErBi9X,EAAU7mZ,OAAOsE,KAAKmiZ,GAAUzoY,QAAO,SAAUvD,EAAQ/W,GAC3D,IAAIyB,EAAQshZ,EAAS/iZ,GACjBy+G,EAAch9G,EAAMg9G,YAExB,OAAKh9G,EAAMk9G,QAAWl9G,EAAMkiB,KAIrB5M,EAHE0J,GAAcA,GAAc,GAAI1J,GAAS,GAAI4J,GAAgB,GAAI89F,EAAa/8G,IAAKqV,EAAQ,GAAG9W,OAAOw+G,IAAgBh9G,EAAM5C,WAInI,CACDqwG,IAAKlpF,EAAOkpF,KAAO,EACnBmP,OAAQr4F,EAAOq4F,QAAU,IAGvBl4G,EAASsa,GAAcA,GAAc,GAAI0iY,GAAUD,GAEnDE,EAAcj9Y,EAAOk4G,OAUzB,OARIwiS,IACF16Y,EAAOk4G,QAAUwiS,EAAU1iZ,MAAMU,QAAU44T,IAAMjiN,aAAa32G,QAG5DskB,GAAc0/X,IAChB18Y,EAAS2f,YAAqB3f,EAAQq4Y,EAAgBrgZ,EAAO0kZ,IAGxDpiY,GAAcA,GAAc,CACjC2iY,YAAaA,GACZj9Y,GAAS,GAAI,CACdrH,MAAOA,EAAQqH,EAAO8f,KAAO9f,EAAO+f,MACpCrnB,OAAQA,EAASsH,EAAO+oG,IAAM/oG,EAAOk4G,SAwKxB/kC,CAAgB74D,GAAcA,GAAc,GAAIshY,GAAU,GAAI,CACzE5jZ,MAAOA,EACPqgZ,eAAgBA,IACA,OAAd78R,QAAoC,IAAdA,OAAuB,EAASA,EAAU0hS,YACpE/mZ,OAAOsE,KAAKmhZ,GAASvxY,SAAQ,SAAUzS,GACrCgkZ,EAAQhkZ,GAAO8/G,EAAc1/G,EAAO4jZ,EAAQhkZ,GAAMoI,EAAQpI,EAAIiR,QAAQ,MAAO,IAAK+uG,MAEpF,IACIulS,EA5ToB,SAA+BxlS,GACzD,IAAI97F,EAAOthB,YAAsBo9G,GAC7B0hS,EAAe53X,YAAe5F,GAAM,GAAO,GAC/C,MAAO,CACLw9X,aAAcA,EACdD,oBAAqB3xX,IAAQ4xX,GAAc,SAAUlnY,GACnD,OAAOA,EAAEsJ,cAEXq9X,YAAaj9X,EACbuhY,oBAAqB/1X,YAAkBxL,EAAMw9X,IAmT9BgE,CADGzB,EAAQ,GAAG9hZ,OAAOghZ,EAAc,SAE9Cj+X,EAA0By+X,EAAetjZ,EAAOsiB,GAAcA,GAAc,GAAIshY,GAAU,GAAI,CAChGtD,eAAgBA,EAChBC,aAAcA,EACdxlF,SAAUA,EACVslF,eAAgBA,EAChBv6X,YAAaA,EACb9d,OAAQA,KAEV,OAAOsa,GAAcA,GAAc,CACjCuC,wBAAyBA,EACzBw7X,eAAgBA,EAChBr4Y,OAAQA,EACR8d,YAAaA,GACZq/X,GAAWvB,IAGhB,OAAOpyM,EAAQD,EAAsB,SAAUviE,IA7zBjD,SAAmBl9F,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvtC,UAAU,sDAAyDstC,EAASlzC,UAAYT,OAAOy2B,OAAOmd,GAAcA,EAAWnzC,UAAW,CAAE0W,YAAa,CAAEnU,MAAO2wC,EAAUnvB,UAAU,EAAMzX,cAAc,KAAe6mC,GAAY84F,EAAgB/4F,EAAUC,GA8zB/W45F,CAAU25Q,EAAyBt2Q,GAEnC,IAl0BkBzgG,EAAaG,EAAYC,EAk0BvC62E,EAASslB,GAAaw6Q,GAG1B,SAASA,EAAwBz8S,GAC/B,IAAIsa,EA2pBJ,OAr+CN,SAAyB70E,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCA40B1G2pG,CAAgBnvG,KAAMsmZ,IAEtBniS,EAAQqC,EAAO1mH,KAAKE,KAAM6pG,IACpB08S,mBAAgB,EACtBpiS,EAAM0yM,gBAAa,EACnB1yM,EAAMqiS,oBAAiB,EACvBriS,EAAMsiS,aAAU,EAChBtiS,EAAM7wE,eAAY,EAElB6wE,EAAMuiS,aAAe,YACd5iY,IAAOqgG,EAAMsiS,UAAYtF,IAC5BA,GAAWh9R,EAAMsiS,SAGnBtiS,EAAMsiS,QAAU,MAGlBtiS,EAAMwiS,uBAAyB,SAAUz9X,GACvC,GAAIA,EAAK,CACP,IAAI27F,EAAcV,EAAM36E,MACpB83W,EAAiBz8R,EAAYy8R,eAC7BC,EAAe18R,EAAY08R,aAC3BxlF,EAAWl3M,EAAYk3M,SAE3B53M,EAAM5Z,SAASjnF,GAAc,CAC3B4iY,WAAYh9X,GACXs8X,EAA0C,CAC3CxkZ,MAAOmjH,EAAMnjH,MACbsgZ,eAAgBA,EAChBC,aAAcA,EACdxlF,SAAUA,GACTz4S,GAAcA,GAAc,GAAI6gG,EAAM36E,OAAQ,GAAI,CACnD08W,WAAYh9X,SAKlBi7F,EAAMyiS,uBAAyB,SAAUC,EAAKC,EAAS/lZ,GACxCojH,EAAMnjH,MAAM+lZ,SAEVF,GAAOC,IAAY3iS,EAAMoiS,gBACtCpiS,EAAMuiS,eAENviS,EAAMsiS,QAAU1yM,IAASA,GAAM5vF,EAAM6iS,eAAel1T,KAAKxlC,GAAuB63D,GAAQpjH,MAI5FojH,EAAM8iS,kBAAoB,SAAUC,GAClC,IAAIv3X,EAAau3X,EAAMv3X,WACnBC,EAAWs3X,EAAMt3X,SAGrB,GAAID,IAAew0F,EAAM36E,MAAM83W,gBAAkB1xX,IAAau0F,EAAM36E,MAAM+3W,aAAc,CACtF,IAAIxlF,EAAW53M,EAAM36E,MAAMuyR,SAE3B53M,EAAM5Z,UAAS,WACb,OAAOjnF,GAAc,CACnBg+X,eAAgB3xX,EAChB4xX,aAAc3xX,GACb41X,EAA0C,CAC3CxkZ,MAAOmjH,EAAMnjH,MACbsgZ,eAAgB3xX,EAChB4xX,aAAc3xX,EACdmsS,SAAUA,GACT53M,EAAM36E,WAGX26E,EAAMgjS,iBAAiB,CACrB7F,eAAgB3xX,EAChB4xX,aAAc3xX,MAKpBu0F,EAAMijS,iBAAmB,SAAUlnZ,GACjC,IAAIk9T,EAAej5M,EAAMnjH,MAAMo8T,aAE3BiqF,EAAQljS,EAAMmjS,aAAapnZ,GAE/B,GAAImnZ,EAAO,CACT,IAAIE,EAAajkY,GAAcA,GAAc,GAAI+jY,GAAQ,GAAI,CAC3D1D,iBAAiB,IAGnBx/R,EAAM5Z,SAASg9S,GAEfpjS,EAAMgjS,iBAAiBI,GAEnBxjY,IAAYq5S,IACdA,EAAamqF,EAAYrnZ,KAK/BikH,EAAMqjS,wBAA0B,SAAUtnZ,GACxC,IAAI49T,EAAc35M,EAAMnjH,MAAM88T,YAE1BupF,EAAQljS,EAAMmjS,aAAapnZ,GAE3BsqG,EAAY68S,EAAQ/jY,GAAcA,GAAc,GAAI+jY,GAAQ,GAAI,CAClE1D,iBAAiB,IACd,CACHA,iBAAiB,GAGnBx/R,EAAM5Z,SAASC,GAEf2Z,EAAMgjS,iBAAiB38S,GAEnBzmF,IAAY+5S,IACdA,EAAYtzN,EAAWtqG,IAI3BikH,EAAMsjS,qBAAuB,SAAU9rX,GACrCwoF,EAAM5Z,UAAS,WACb,MAAO,CACLo5S,iBAAiB,EACjB+D,WAAY/rX,EACZ2mX,cAAe3mX,EAAGgsX,eAClBpF,iBAAkB5mX,EAAGisX,iBAAmB,CACtCr7Y,EAAGovB,EAAGuU,GACN1jC,EAAGmvB,EAAGwU,SAMdg0E,EAAM0jS,qBAAuB,WAC3B1jS,EAAM5Z,UAAS,WACb,MAAO,CACLo5S,iBAAiB,OAKvBx/R,EAAMy2N,gBAAkB,SAAU16U,GAC5BA,GAAK6jB,IAAY7jB,EAAEipN,UACrBjpN,EAAEipN,UAGJhlG,EAAMqjS,wBAAwBtnZ,IAGhCikH,EAAM2jS,iBAAmB,SAAU5nZ,GACjC,IAAIm9T,EAAel5M,EAAMnjH,MAAMq8T,aAC3B7yN,EAAY,CACdm5S,iBAAiB,GAGnBx/R,EAAM5Z,SAASC,GAEf2Z,EAAMgjS,iBAAiB38S,GAEnBzmF,IAAYs5S,IACdA,EAAa7yN,EAAWtqG,GAG1BikH,EAAM4jS,wCAGR5jS,EAAM6jS,iBAAmB,SAAU9nZ,GACjC,IAAI+nZ,EAAYlrX,YAAoB78B,GAEhCwzB,EAAQnvB,IAAK4/G,EAAMnjH,MAAO,GAAG8B,OAAOmlZ,IAEpCA,GAAalkY,IAAY2P,IASbA,EANV,aAAarb,KAAK4vY,GACZ9jS,EAAMmjS,aAAapnZ,EAAEg1F,eAAe,IAEpCivB,EAAMmjS,aAAapnZ,GAIdA,IAInBikH,EAAM62N,YAAc,SAAU96U,GAC5B,IAAIszB,EAAU2wF,EAAMnjH,MAAMwyB,QAEtB6zX,EAAQljS,EAAMmjS,aAAapnZ,GAE/B,GAAImnZ,EAAO,CACT,IAAIa,EAAc5kY,GAAcA,GAAc,GAAI+jY,GAAQ,GAAI,CAC5D1D,iBAAiB,IAGnBx/R,EAAM5Z,SAAS29S,GAEf/jS,EAAMgjS,iBAAiBe,GAEnBnkY,IAAYyP,IACdA,EAAQ00X,EAAahoZ,KAK3BikH,EAAMw2N,gBAAkB,SAAUz6U,GAChC,IAAIuwN,EAActsG,EAAMnjH,MAAMyvN,YAE1B1sM,IAAY0sM,IAGdA,EAFkBtsG,EAAMmjS,aAAapnZ,GAEZA,IAI7BikH,EAAM02N,cAAgB,SAAU36U,GAC9B,IAAIo6U,EAAYn2N,EAAMnjH,MAAMs5U,UAExBv2T,IAAYu2T,IAGdA,EAFkBn2N,EAAMmjS,aAAapnZ,GAEdA,IAI3BikH,EAAM22M,gBAAkB,SAAU56T,GACR,MAApBA,EAAEg1F,gBAA0Bh1F,EAAEg1F,eAAex1F,OAAS,GACxDykH,EAAMy2N,gBAAgB16U,EAAEg1F,eAAe,KAI3CivB,EAAMgkS,iBAAmB,SAAUjoZ,GACT,MAApBA,EAAEg1F,gBAA0Bh1F,EAAEg1F,eAAex1F,OAAS,GACxDykH,EAAMw2N,gBAAgBz6U,EAAEg1F,eAAe,KAI3CivB,EAAMikS,eAAiB,SAAUloZ,GACP,MAApBA,EAAEg1F,gBAA0Bh1F,EAAEg1F,eAAex1F,OAAS,GACxDykH,EAAM02N,cAAc36U,EAAEg1F,eAAe,KAIzCivB,EAAMkkS,6BAA+B,SAAUC,GAC7C,IAAItxF,EAAQsxF,EAAOtxF,MACfr1T,EAAQ2mZ,EAAO3mZ,MACfD,EAAS4mZ,EAAO5mZ,OAChBsH,EAASs/Y,EAAOt/Y,OACpB,OAAOshB,YAAqB84I,IAAc+B,SAAS7hJ,GAAcA,GAAcA,GAAc,GAAI8/I,IAAc/qD,cAAe2+M,GAAQ,GAAI,CACxIryS,MAAO8F,YAAeusS,GAAO,GAC7BjhN,QAAS,CACPxpG,EAAG,EACHC,EAAG,EACH7K,MAAOA,EACPD,OAAQA,MAEPsH,EAAO8f,KAAM9f,EAAO8f,KAAO9f,EAAOrH,QAGzCwiH,EAAMokS,+BAAiC,SAAUC,GAC/C,IAAIvxF,EAAQuxF,EAAOvxF,MACft1T,EAAQ6mZ,EAAO7mZ,MACfD,EAAS8mZ,EAAO9mZ,OAChBsH,EAASw/Y,EAAOx/Y,OACpB,OAAOshB,YAAqB84I,IAAc+B,SAAS7hJ,GAAcA,GAAcA,GAAc,GAAI8/I,IAAc/qD,cAAe4+M,GAAQ,GAAI,CACxItyS,MAAO8F,YAAewsS,GAAO,GAC7BlhN,QAAS,CACPxpG,EAAG,EACHC,EAAG,EACH7K,MAAOA,EACPD,OAAQA,MAEPsH,EAAO+oG,IAAK/oG,EAAO+oG,IAAM/oG,EAAOtH,SAGvCyiH,EAAMskS,mBAAqB,SAAU5jY,GACnC,OAAO4F,YAAe5F,GAAM,IAG9Bs/F,EAAMukS,aAAe,SAAU79W,GAC7B,IAAI+4I,EAAez/D,EAAM36E,MACrBm6W,EAAkB//N,EAAa+/N,gBAC/BpB,EAAmB3+N,EAAa2+N,iBAChCD,EAAgB1+N,EAAa0+N,cAC7Bt5Y,EAAS46K,EAAa56K,OACtB25Y,EAAqB/+N,EAAa++N,mBAElCgG,EAAmBxkS,EAAMykS,sBAE7B,IAAK/9W,IAAYA,EAAQ7pC,MAAM6zL,SAAW8uN,IAAoBpB,GAAkC,iBAAd3hS,GAAqD,SAArB+nS,EAChH,OAAO,KAGT,IACIrkP,EADAj7I,EAAS86F,EAAMnjH,MAAMqoB,OAErBw/X,EAAa1pO,IAEjB,GAAkB,iBAAdv+D,EACF0jD,EAAYi+O,EACZsG,EAAaC,SACR,GAAkB,aAAdloS,EACT0jD,EAAYngD,EAAM4kS,qBAClBF,EAAa7yO,SACR,GAAe,WAAX3sJ,EAAqB,CAC9B,IAAI2/X,EAAwB7kS,EAAM8kS,kBAC9B/4W,EAAK84W,EAAsB94W,GAC3BC,EAAK64W,EAAsB74W,GAC3BC,EAAS44W,EAAsB54W,OAInCk0H,EAAY,CACVp0H,GAAIA,EACJC,GAAIA,EACJc,WANe+3W,EAAsB/3W,WAOrCC,SANa83W,EAAsB93W,SAOnCM,YAAapB,EACbqB,YAAarB,GAEfy4W,EAAaK,SAEb5kP,EAAY,CACV+a,OAAQl7D,EAAM8kS,mBAEhBJ,EAAa1pO,IAGf,IAAIv+K,EAAMiqC,EAAQjqC,KAAO,mBAErBuoZ,EAAc7lY,GAAcA,GAAcA,GAAcA,GAAc,CACxE/hB,OAAQ,OACRizL,cAAe,QACdxrL,GAASs7J,GAAYlzI,YAAYyZ,EAAQ7pC,MAAM6zL,SAAU,GAAI,CAC9Dv9K,QAASgrY,EACT8G,aAAczG,EACd/hZ,IAAKA,EACLhC,UAAW,4BAGb,OAAoBozB,yBAAe6Y,EAAQ7pC,MAAM6zL,QAAuBn+E,uBAAa7rE,EAAQ7pC,MAAM6zL,OAAQs0N,GAA4BzoZ,wBAAcmoZ,EAAYM,IAGnKhlS,EAAMklS,gBAAkB,SAAUx+W,EAASplB,EAAariB,GACtD,IAAI0hB,EAAWvgB,IAAKsmC,EAAS,iBAIzBy+W,EAFU/kZ,IAAK4/G,EAAM36E,MAAO,GAAG1mC,OAAOgiB,EAAU,QAE3B+lB,EAAQ7pC,MAAM,GAAG8B,OAAOgiB,EAAU,QAC3D,OAAoB4xF,uBAAa7rE,EAASvnB,GAAcA,GAAc,GAAIgmY,GAAa,GAAI,CACzF1qZ,UAAWkmB,EACXlkB,IAAKiqC,EAAQjqC,KAAO,GAAGkC,OAAO2iB,EAAa,KAAK3iB,OAAOM,GACvDuhB,MAAO8F,YAAe6+X,GAAY,OAItCnlS,EAAMolS,YAAc,SAAU1+W,EAASplB,EAAariB,GAClD,IACIwhZ,EADWzgS,EAAM36E,MAAMo8W,SACJ/6W,EAAQ7pC,MAAMu2T,SACrC,OAAOpzM,EAAMqlS,WAAW5E,EAAS/5W,EAASplB,EAAariB,IAGzD+gH,EAAMslS,YAAc,SAAU5+W,EAASplB,EAAariB,GAClD,IACIwhZ,EADWzgS,EAAM36E,MAAMs8W,SACJj7W,EAAQ7pC,MAAMw2T,SACrC,OAAOrzM,EAAMqlS,WAAW5E,EAAS/5W,EAASplB,EAAariB,IAGzD+gH,EAAMulS,WAAa,SAAU7+W,GAC3B,IAAI2yR,EAAer5M,EAAM36E,MACrBo8W,EAAWpoF,EAAaooF,SACxBE,EAAWtoF,EAAasoF,SACxB98Y,EAASw0T,EAAax0T,OACtB07G,EAAcP,EAAMnjH,MACpBW,EAAQ+iH,EAAY/iH,MACpBD,EAASgjH,EAAYhjH,OACrBs1T,EAAQzzT,YAAsBqiZ,GAM9B3uF,EAJwB0yF,IAAM7D,GAAU,SAAUjhY,GACpD,OAAOg+F,IAAOh+F,EAAKT,OAAQ88X,QAGQ39Y,YAAsBuiZ,GACvD9kZ,EAAQ6pC,EAAQ7pC,OAAS,GAC7B,OAAoB01G,uBAAa7rE,EAAS,CACxCjqC,IAAKiqC,EAAQjqC,KAAO,OACpB2L,EAAGjK,YAAStB,EAAMuL,GAAKvL,EAAMuL,EAAIvD,EAAO8f,KACxCtc,EAAGlK,YAAStB,EAAMwL,GAAKxL,EAAMwL,EAAIxD,EAAO+oG,IACxCpwG,MAAOW,YAAStB,EAAMW,OAASX,EAAMW,MAAQqH,EAAOrH,MACpDD,OAAQY,YAAStB,EAAMU,QAAUV,EAAMU,OAASsH,EAAOtH,OACvDs1T,MAAOA,EACPC,MAAOA,EACPjuT,OAAQA,EACRs6K,WAAY3hL,EACZ+hL,YAAahiL,EACb2mZ,6BAA8BrnZ,EAAMqnZ,8BAAgClkS,EAAMkkS,6BAC1EE,+BAAgCvnZ,EAAMunZ,gCAAkCpkS,EAAMokS,kCAIlFpkS,EAAMylS,gBAAkB,SAAU/+W,GAChC,IAAIg/W,EAAiBh/W,EAAQ7pC,MACzB8oZ,EAAcD,EAAeC,YAC7BC,EAAcF,EAAeE,YAC7BC,EAAcH,EAAeG,YAC7BpsF,EAAez5M,EAAM36E,MACrBygX,EAAgBrsF,EAAaqsF,cAC7BC,EAAetsF,EAAassF,aAC5BC,EAAa5mZ,YAAsB0mZ,GACnCG,EAAY7mZ,YAAsB2mZ,GAClCh6W,EAAKk6W,EAAUl6W,GACfC,EAAKi6W,EAAUj6W,GACfqB,EAAc44W,EAAU54W,YACxBC,EAAc24W,EAAU34W,YAC5B,OAAoBilE,uBAAa7rE,EAAS,CACxCk/W,YAAanmZ,IAASmmZ,GAAeA,EAAct/X,YAAe2/X,GAAW,GAAM5pZ,KAAI,SAAU8D,GAC/F,OAAOA,EAAMmgB,cAEfulY,YAAapmZ,IAASomZ,GAAeA,EAAcv/X,YAAe0/X,GAAY,GAAM3pZ,KAAI,SAAU8D,GAChG,OAAOA,EAAMmgB,cAEfyrB,GAAIA,EACJC,GAAIA,EACJqB,YAAaA,EACbC,YAAaA,EACb7wC,IAAKiqC,EAAQjqC,KAAO,aACpBkpZ,YAAaA,KAIjB3lS,EAAMkmS,aAAe,WACnB,IAAIxkY,EAA0Bs+F,EAAM36E,MAAM3jB,wBACtC++F,EAAeT,EAAMnjH,MACrBa,EAAW+iH,EAAa/iH,SACxBF,EAAQijH,EAAajjH,MACrBD,EAASkjH,EAAaljH,OACtBmnB,EAASs7F,EAAMnjH,MAAM6nB,QAAU,GAC/B/C,EAAcnkB,GAASknB,EAAOC,MAAQ,IAAMD,EAAOE,OAAS,GAC5D/nB,EAAQ2kB,YAAe,CACzB9jB,SAAUA,EACVgkB,wBAAyBA,EACzBC,YAAaA,EACbC,cAAeA,IAGjB,IAAK/kB,EACH,OAAO,KAGT,IAAIwkB,EAAOxkB,EAAMwkB,KACb2+J,EAAalqJ,EAAyBj5B,EAAO,CAAC,SAElD,OAAoB01G,uBAAalxF,EAAMlC,GAAcA,GAAc,GAAI6gK,GAAa,GAAI,CACtFb,WAAY3hL,EACZ+hL,YAAahiL,EACbmnB,OAAQA,EACRk8F,IAAK,SAAaulS,GAChBnmS,EAAMqiS,eAAiB8D,GAEzBzmO,aAAc1/D,EAAMwiS,2BAIxBxiS,EAAMomS,cAAgB,WACpB,IAAI1oZ,EAAWsiH,EAAMnjH,MAAMa,SACvB2oZ,EAAcvkY,YAAgBpkB,EAAU+xL,IAAQnuK,aAEpD,IAAK+kY,EACH,OAAO,KAGT,IAAIC,EAAetmS,EAAM36E,MACrBm6W,EAAkB8G,EAAa9G,gBAC/BpB,EAAmBkI,EAAalI,iBAChCD,EAAgBmI,EAAanI,cAC7BT,EAAc4I,EAAa5I,YAC3B74Y,EAASyhZ,EAAazhZ,OAC1B,OAAoB0tG,uBAAa8zS,EAAa,CAC5Cz0S,QAASzyF,GAAcA,GAAc,GAAIta,GAAS,GAAI,CACpDuD,EAAGvD,EAAO8f,KACVtc,EAAGxD,EAAO+oG,MAEZi4D,OAAQ25O,EACR/tS,MAAOisS,EACPvqY,QAASqsY,EAAkBrB,EAAgB,GAC3C79X,WAAY89X,KAIhBp+R,EAAMumS,YAAc,SAAU7/W,GAC5B,IAAIqiG,EAAe/oB,EAAMnjH,MACrB6nB,EAASqkH,EAAarkH,OACtB9nB,EAAOmsI,EAAansI,KACpB4pZ,EAAexmS,EAAM36E,MACrBxgC,EAAS2hZ,EAAa3hZ,OACtBs4Y,EAAiBqJ,EAAarJ,eAC9BC,EAAeoJ,EAAapJ,aAC5BxlF,EAAW4uF,EAAa5uF,SAE5B,OAAoBrlN,uBAAa7rE,EAAS,CACxCjqC,IAAKiqC,EAAQjqC,KAAO,kBACpB0iH,SAAUn4F,YAAqBg5F,EAAM8iS,kBAAmB,KAAMp8W,EAAQ7pC,MAAMsiH,UAC5EviH,KAAMA,EACNwL,EAAGjK,YAASuoC,EAAQ7pC,MAAMuL,GAAKs+B,EAAQ7pC,MAAMuL,EAAIvD,EAAO8f,KACxDtc,EAAGlK,YAASuoC,EAAQ7pC,MAAMwL,GAAKq+B,EAAQ7pC,MAAMwL,EAAIxD,EAAO+oG,IAAM/oG,EAAOtH,OAASsH,EAAOi9Y,aAAep9X,EAAOq4F,QAAU,GACrHv/G,MAAOW,YAASuoC,EAAQ7pC,MAAMW,OAASkpC,EAAQ7pC,MAAMW,MAAQqH,EAAOrH,MACpEguB,WAAY2xX,EACZ1xX,SAAU2xX,EACVxlF,SAAU,SAASj5T,OAAOi5T,MAI9B53M,EAAMymS,uBAAyB,SAAU//W,EAASplB,EAAariB,GAC7D,IAAKynC,EACH,OAAO,KAGT,IACIgsR,EADwBvqQ,GAAuB63D,GACZ0yM,WAEnCg0F,EAAe1mS,EAAM36E,MACrBo8W,EAAWiF,EAAajF,SACxBE,EAAW+E,EAAa/E,SACxB98Y,EAAS6hZ,EAAa7hZ,OACtB8hZ,EAAkBjgX,EAAQ7pC,MAC1Bu2T,EAAUuzF,EAAgBvzF,QAC1BC,EAAUszF,EAAgBtzF,QAC9B,OAAoB9gN,uBAAa7rE,EAAS,CACxCjqC,IAAKiqC,EAAQjqC,KAAO,GAAGkC,OAAO2iB,EAAa,KAAK3iB,OAAOM,GACvD4zT,MAAO4uF,EAASruF,GAChBN,MAAO6uF,EAAStuF,GAChBzhN,QAAS,CACPxpG,EAAGvD,EAAO8f,KACVtc,EAAGxD,EAAO+oG,IACVpwG,MAAOqH,EAAOrH,MACdD,OAAQsH,EAAOtH,QAEjBm1T,WAAYA,KAIhB1yM,EAAM4mS,mBAAqB,SAAUC,GACnC,IAAIxlY,EAAOwlY,EAAOxlY,KACdylY,EAAcD,EAAOC,YACrBC,EAAYF,EAAOE,UACnB3F,EAAayF,EAAOzF,WACpB4F,EAAUH,EAAOG,QACjBvxY,EAAS,GACThZ,EAAM4kB,EAAKxkB,MAAMJ,IACjBwqZ,EAAmB5lY,EAAKA,KAAKxkB,MAC7BqqZ,EAAYD,EAAiBC,UAG7Bl0F,EAAW7zS,GAAcA,GAAc,CACzClgB,MAAOmiZ,EACP1hY,QAJYunY,EAAiBvnY,QAK7BqsB,GAAI+6W,EAAY1+Y,EAChB4jC,GAAI86W,EAAYz+Y,EAChB8kB,EAAG,EACH9vB,KAAM+jB,YAA0BC,EAAKA,MACrC/jB,YAAa,EACbF,OAAQ,OACR+V,QAAS2zY,EAAY3zY,QACrBnV,MAAO8oZ,EAAY9oZ,MACnBvB,IAAK,GAAGkC,OAAOlC,EAAK,iBAAiBkC,OAAOyiZ,IAC3Cn0X,YAAYi6X,IAAan5X,YAAmBm5X,IAc/C,OAZAzxY,EAAOhQ,KAAK08Y,EAAwBgF,gBAAgBD,EAAWl0F,IAE3D+zF,EACFtxY,EAAOhQ,KAAK08Y,EAAwBgF,gBAAgBD,EAAW/nY,GAAcA,GAAc,GAAI6zS,GAAW,GAAI,CAC5GjnR,GAAIg7W,EAAU3+Y,EACd4jC,GAAI+6W,EAAU1+Y,EACd5L,IAAK,GAAGkC,OAAOlC,EAAK,eAAekC,OAAOyiZ,OAEnC4F,GACTvxY,EAAOhQ,KAAK,MAGPgQ,GAGTuqG,EAAMonS,mBAAqB,SAAU1gX,EAASplB,EAAariB,GACzD,IAAIoiB,EAAO2+F,EAAMqnS,iBAAiB3gX,EAASplB,EAAariB,GAExD,IAAKoiB,EACH,OAAO,KAGT,IAAImjY,EAAmBxkS,EAAMykS,sBAEzB6C,EAAetnS,EAAM36E,MACrBm6W,EAAkB8H,EAAa9H,gBAC/B7B,EAAc2J,EAAa3J,YAC3Ba,EAAqB8I,EAAa9I,mBAClCd,EAAc4J,EAAa5J,YAC3BhgZ,EAAWsiH,EAAMnjH,MAAMa,SACvB2oZ,EAAcvkY,YAAgBpkB,EAAU+xL,IAAQnuK,aAChDa,EAAed,EAAKxkB,MACpBq+K,EAAS/4J,EAAa+4J,OACtB8rO,EAAU7kY,EAAa6kY,QACvB7rO,EAAWh5J,EAAag5J,SACxBosO,EAAoBlmY,EAAKA,KAAKxkB,MAC9BqqZ,EAAYK,EAAkBL,UAE9BM,GADOD,EAAkBllY,MACJm9X,GAAmB6G,GAAea,GAAa1I,GAAsB,EAC1FiJ,EAAa,GAEQ,SAArBjD,GAA+B6B,GAA6C,UAA9BA,EAAYxpZ,MAAM8zL,QAClE82N,EAAa,CACXp4X,QAASrI,YAAqBg5F,EAAMsjS,qBAAsB,KAAM58W,EAAQ7pC,MAAM6qZ,UAElD,SAArBlD,IACTiD,EAAa,CACXvuF,aAAclyS,YAAqBg5F,EAAM0jS,qBAAsB,KAAMh9W,EAAQ7pC,MAAMq8T,cACnFD,aAAcjyS,YAAqBg5F,EAAMsjS,qBAAsB,KAAM58W,EAAQ7pC,MAAMo8T,gBAIvF,IAAIrsS,EAA6B2lF,uBAAa7rE,EAASvnB,GAAcA,GAAc,GAAIkC,EAAKxkB,OAAQ4qZ,IAOpG,GAAID,EAAW,CACb,IAAIV,EAAaC,EAEjB,GAAIpJ,EAAYj+X,UAAYi+X,EAAYxyX,wBAAyB,CAE/D,IAAInrB,EAA8C,oBAAxB29Y,EAAYj+X,QAV1C,SAAyBvf,GAEvB,MAAsC,oBAAxBw9Y,EAAYj+X,QAAyBi+X,EAAYj+X,QAAQvf,EAAMgT,SAAW,MAQL,WAAWxU,OAAOg/Y,EAAYj+X,QAAQhd,YACvHokZ,EAAc/mZ,YAAiBm7K,EAAQl7K,EAAc09Y,GACrDqJ,EAAYC,GAAW7rO,GAAYp7K,YAAiBo7K,EAAUn7K,EAAc09Y,QAE5EoJ,EAAc5rO,EAAOsjO,GACrBuI,EAAYC,GAAW7rO,GAAYA,EAASqjO,GAG9C,IAAK7+X,IAAOmnY,GACV,MAAO,CAACl6X,GAAejuB,OAAO+X,GAAmBspG,EAAM4mS,mBAAmB,CACxEvlY,KAAMA,EACNylY,YAAaA,EACbC,UAAWA,EACX3F,WAAY5C,EACZwI,QAASA,MAKf,OAAIA,EACK,CAACp6X,EAAe,KAAM,MAGxB,CAACA,EAAe,OAGzBozF,EAAM2nS,iBAAmB,SAAUjhX,EAASplB,EAAariB,GACvD,OAAoBszG,uBAAa7rE,EAASvnB,GAAcA,GAAc,CACpE1iB,IAAK,uBAAuBkC,OAAOM,IAClC+gH,EAAMnjH,OAAQmjH,EAAM36E,SAGzB26E,EAAMoiS,cAAgBziY,IAAO+lF,EAAOhnG,IAAMF,YAAS,YAAcknG,EAAOhnG,GACxEshH,EAAM0yM,WAAa,GAAG/zT,OAAOqhH,EAAMoiS,cAAe,SAE9C18S,EAAOkiT,gBACT5nS,EAAMqjS,wBAA0BwE,IAAU7nS,EAAMqjS,wBAAyB39S,EAAOkiT,gBAGlF5nS,EAAM36E,MAAQ,GACP26E,EAglBT,OAjjEkB50E,EAs+CL+2W,GAt+CkB52W,EAs+CO,CAAC,CACrC9uC,IAAK,oBACLuB,MAAO,WACA2hB,IAAO9jB,KAAKgB,MAAM+lZ,SACrB/mZ,KAAKioC,gBAGR,CACDrnC,IAAK,qBACLuB,MAAO,SAA4Bm6B,GAE7BxY,IAAOwY,EAAUyqX,UAAYjjY,IAAO9jB,KAAKgB,MAAM+lZ,SACjD/mZ,KAAKioC,eAIFnkB,IAAOwY,EAAUyqX,SAAWjjY,IAAO9jB,KAAKgB,MAAM+lZ,SACjD/mZ,KAAKmoC,mBAGR,CACDvnC,IAAK,uBACLuB,MAAO,WACLnC,KAAK0mZ,eAEA5iY,IAAO9jB,KAAKgB,MAAM+lZ,SACrB/mZ,KAAKmoC,iBAGPnoC,KAAK+nZ,yCAEN,CACDnnZ,IAAK,uCACLuB,MAAO,WAC8C,oBAAxCnC,KAAKwnZ,wBAAwB3pT,QACtC79F,KAAKwnZ,wBAAwB3pT,WAGhC,CACDj9F,IAAK,sBACLuB,MAAO,WACL,IAAIqoZ,EAAcvkY,YAAgBjmB,KAAKgB,MAAMa,SAAU+xL,IAAQnuK,aAE/D,GAAI+kY,GAAeyB,IAAWzB,EAAYxpZ,MAAMs4J,QAAS,CACvD,IAAIgtO,EAAYkkB,EAAYxpZ,MAAMs4J,OAAS,OAAS,OACpD,OAAO8qP,EAA0BjkZ,QAAQmmY,IAAc,EAAIA,EAAY4d,EAGzE,OAAOA,IAQR,CACDtjZ,IAAK,eACLuB,MAAO,SAAsBuxB,GAC3B,IAAK1zB,KAAKszC,UACR,OAAO,KAGT,IAAI44W,EAAkBh5S,YAAUlzG,KAAKszC,WACjCpzC,EAAIwzG,YAAyBhgF,EAAOw4X,GACpCjK,EAAWjiZ,KAAK0xC,QAAQxxC,EAAEyzG,OAAQzzG,EAAE0zG,QAExC,IAAKquS,EACH,OAAO,KAGT,IAAIkK,EAAensZ,KAAKwpC,MACpBo8W,EAAWuG,EAAavG,SACxBE,EAAWqG,EAAarG,SAG5B,GAAyB,SAFF9lZ,KAAK4oZ,uBAEOhD,GAAYE,EAAU,CACvD,IAAIsG,EAAS7oZ,YAAsBqiZ,GAAUh7X,MACzCyhY,EAAS9oZ,YAAsBuiZ,GAAUl7X,MACzC0hY,EAASF,GAAUA,EAAO//W,OAAS+/W,EAAO//W,OAAOnsC,EAAEyzG,QAAU,KAC7D44S,EAASF,GAAUA,EAAOhgX,OAASggX,EAAOhgX,OAAOnsC,EAAE0zG,QAAU,KACjE,OAAOtwF,GAAcA,GAAc,GAAIpjB,GAAI,GAAI,CAC7CosZ,OAAQA,EACRC,OAAQA,IAIZ,IAAIC,EAAcxK,GAAehiZ,KAAKwpC,MAAOxpC,KAAKgB,MAAMD,KAAMf,KAAKgB,MAAMqoB,OAAQ44X,GAEjF,OAAIuK,EACKlpY,GAAcA,GAAc,GAAIpjB,GAAIssZ,GAGtC,OAER,CACD5rZ,IAAK,qBACLuB,MAAO,WACL,IAAIknB,EAASrpB,KAAKgB,MAAMqoB,OACpBojY,EAAgBzsZ,KAAKwpC,MACrB+4W,EAAmBkK,EAAclK,iBACjCv5Y,EAASyjZ,EAAczjZ,OACvBo9Y,EAAsBqG,EAAcrG,oBACpCpkO,EAAWokO,EAAsB,EACrC,MAAO,CACL7kZ,OAAQ,OACRC,KAAM,OACN+K,EAAc,eAAX8c,EAA0Bk5X,EAAiBh2Y,EAAIy1K,EAAWh5K,EAAO8f,KAAO,GAC3Etc,EAAc,eAAX6c,EAA0BrgB,EAAO+oG,IAAM,GAAMwwS,EAAiB/1Y,EAAIw1K,EACrErgL,MAAkB,eAAX0nB,EAA0B+8X,EAAsBp9Y,EAAOrH,MAAQ,EACtED,OAAmB,eAAX2nB,EAA0BrgB,EAAOtH,OAAS,EAAI0kZ,KAGzD,CACDxlZ,IAAK,kBACLuB,MAAO,WACL,IAIIwuC,EAAIC,EAAI5L,EAAI6L,EAJZxnB,EAASrpB,KAAKgB,MAAMqoB,OACpBqjY,EAAgB1sZ,KAAKwpC,MACrB+4W,EAAmBmK,EAAcnK,iBACjCv5Y,EAAS0jZ,EAAc1jZ,OAG3B,GAAe,eAAXqgB,EAEF2b,EADA2L,EAAK4xW,EAAiBh2Y,EAEtBqkC,EAAK5nC,EAAO+oG,IACZlhE,EAAK7nC,EAAO+oG,IAAM/oG,EAAOtH,YACpB,GAAe,aAAX2nB,EAETwnB,EADAD,EAAK2xW,EAAiB/1Y,EAEtBmkC,EAAK3nC,EAAO8f,KACZkc,EAAKh8B,EAAO8f,KAAO9f,EAAOrH,WACrB,IAAKmiB,IAAOy+X,EAAiBryW,MAAQpsB,IAAOy+X,EAAiBpyW,IAAK,CACvE,GAAe,YAAX9mB,EAYG,CACL,IAAIsjY,EAAMpK,EAAiBryW,GACvB08W,EAAMrK,EAAiBpyW,GACvBC,EAASmyW,EAAiBnyW,OAC1Ba,EAAasxW,EAAiBtxW,WAC9BC,EAAWqxW,EAAiBrxW,SAGhC,MAAO,CACLmuI,OAAQ,CAHOpvI,YAAiB08W,EAAKC,EAAKx8W,EAAQa,GACrChB,YAAiB08W,EAAKC,EAAKx8W,EAAQc,IAGhDhB,GAAIy8W,EACJx8W,GAAIy8W,EACJx8W,OAAQA,EACRa,WAAYA,EACZC,SAAUA,GAzBZ,IAAIhB,EAAKqyW,EAAiBryW,GACtBC,EAAKoyW,EAAiBpyW,GACtBqB,EAAc+wW,EAAiB/wW,YAC/BC,EAAc8wW,EAAiB9wW,YAC/BpB,EAAQkyW,EAAiBlyW,MACzBw8W,EAAa58W,YAAiBC,EAAIC,EAAIqB,EAAanB,GACnDy8W,EAAa78W,YAAiBC,EAAIC,EAAIsB,EAAapB,GACvDM,EAAKk8W,EAAWtgZ,EAChBqkC,EAAKi8W,EAAWrgZ,EAChBw4B,EAAK8nX,EAAWvgZ,EAChBskC,EAAKi8W,EAAWtgZ,EAoBpB,MAAO,CAAC,CACND,EAAGokC,EACHnkC,EAAGokC,GACF,CACDrkC,EAAGy4B,EACHx4B,EAAGqkC,MAGN,CACDjwC,IAAK,UACLuB,MAAO,SAAiBoK,EAAGC,GACzB,IAAI6c,EAASrpB,KAAKgB,MAAMqoB,OAExB,GAAe,eAAXA,GAAsC,aAAXA,EAAuB,CACpD,IAAIrgB,EAAShJ,KAAKwpC,MAAMxgC,OAExB,OADgBuD,GAAKvD,EAAO8f,MAAQvc,GAAKvD,EAAO8f,KAAO9f,EAAOrH,OAAS6K,GAAKxD,EAAO+oG,KAAOvlG,GAAKxD,EAAO+oG,IAAM/oG,EAAOtH,OAChG,CACjB6K,EAAGA,EACHC,EAAGA,GACD,KAGN,IAAIugZ,EAAgB/sZ,KAAKwpC,MACrB0gX,EAAe6C,EAAc7C,aAC7BD,EAAgB8C,EAAc9C,cAElC,GAAIC,GAAgBD,EAAe,CACjC,IAAIG,EAAY7mZ,YAAsB2mZ,GACtC,OAAO74W,YAAgB,CACrB9kC,EAAGA,EACHC,EAAGA,GACF49Y,GAGL,OAAO,OAER,CACDxpZ,IAAK,uBACLuB,MAAO,WACL,IAAIN,EAAW7B,KAAKgB,MAAMa,SACtB8mZ,EAAmB3oZ,KAAK4oZ,sBACxB4B,EAAcvkY,YAAgBpkB,EAAU+xL,IAAQnuK,aAChDunY,EAAgB,GAoBpB,OAlBIxC,GAAoC,SAArB7B,IAEfqE,EADgC,UAA9BxC,EAAYxpZ,MAAM8zL,QACJ,CACdthK,QAASxzB,KAAKg7U,aAGA,CACd5d,aAAcp9T,KAAKonZ,iBACnBtpF,YAAa99T,KAAK46U,gBAClBvd,aAAcr9T,KAAK8nZ,iBACnB/pF,YAAa/9T,KAAK86T,gBAClBpqG,aAAc1wN,KAAKmoZ,iBACnB8E,WAAYjtZ,KAAKooZ,iBAMhB9kY,GAAcA,GAAc,GADjB4O,YAAmBlyB,KAAKgB,MAAOhB,KAAKgoZ,mBACDgF,KAItD,CACDpsZ,IAAK,cACLuB,MAAO,WACLokG,IAAYv+D,GAAG0+D,IAAY1mG,KAAK4mZ,wBAE5BrgT,IAAYE,iBAAmBF,IAAYsvC,eAC7CtvC,IAAYE,gBAAgBF,IAAYsvC,cAAgB,KAG3D,CACDj1I,IAAK,iBACLuB,MAAO,WACLokG,IAAYp+D,eAAeu+D,IAAY1mG,KAAK4mZ,wBAExCrgT,IAAYE,iBAAmBF,IAAYsvC,eAC7CtvC,IAAYE,gBAAgBF,IAAYsvC,cAAgB,KAG3D,CACDj1I,IAAK,mBACLuB,MAAO,SAA0BpB,GAC/B,IAAIgmZ,EAAS/mZ,KAAKgB,MAAM+lZ,OAEnBjjY,IAAOijY,IACVxgT,IAAYl+D,KAAKq+D,IAAYqgT,EAAQ/mZ,KAAKumZ,cAAexlZ,KAG5D,CACDH,IAAK,iBACLuB,MAAO,SAAwBpB,GAC7B,IAAIguI,EAAe/uI,KAAKgB,MACpBqoB,EAAS0lH,EAAa1lH,OACtB6jY,EAAan+Q,EAAam+Q,WAC1BnxF,EAAW/7T,KAAKwpC,MAAMuyR,SACtBulF,EAAiBvgZ,EAAKugZ,eACtBC,EAAexgZ,EAAKwgZ,aAExB,GAAKz9X,IAAO/iB,EAAKugZ,iBAAoBx9X,IAAO/iB,EAAKwgZ,cAU1C,GAAKz9X,IAAO/iB,EAAK4hZ,oBAkDtB3iZ,KAAKuqG,SAASxpG,OAlD6B,CAC3C,IAAI4yG,EAAS5yG,EAAK4yG,OACdC,EAAS7yG,EAAK6yG,OACd+uS,EAAqB5hZ,EAAK4hZ,mBAC1BwK,EAAgBntZ,KAAKwpC,MACrBxgC,EAASmkZ,EAAcnkZ,OACvBq5Y,EAAe8K,EAAc9K,aAEjC,IAAKr5Y,EACH,OAGF,GAA0B,oBAAfkkZ,EAETvK,EAAqBuK,EAAW7K,EAActhZ,QACzC,GAAmB,UAAfmsZ,EAAwB,CAGjCvK,GAAsB,EAEtB,IAAK,IAAIpjZ,EAAI,EAAGA,EAAI8iZ,EAAa3iZ,OAAQH,IACvC,GAAI8iZ,EAAa9iZ,GAAG4C,QAAUpB,EAAK8gZ,YAAa,CAC9Cc,EAAqBpjZ,EACrB,OAKN,IAAIw2G,EAAUzyF,GAAcA,GAAc,GAAIta,GAAS,GAAI,CACzDuD,EAAGvD,EAAO8f,KACVtc,EAAGxD,EAAO+oG,MAKRq7S,EAAiB5iZ,KAAKC,IAAIkpG,EAAQoC,EAAQxpG,EAAIwpG,EAAQp0G,OACtD0rZ,EAAiB7iZ,KAAKC,IAAImpG,EAAQmC,EAAQvpG,EAAIupG,EAAQr0G,QACtDmgZ,EAAcQ,EAAaM,IAAuBN,EAAaM,GAAoBxgZ,MACnFmgZ,EAAgBZ,GAAkB1hZ,KAAKwpC,MAAOxpC,KAAKgB,MAAMD,KAAM4hZ,GAC/DJ,EAAmBF,EAAaM,GAAsB,CACxDp2Y,EAAc,eAAX8c,EAA0Bg5X,EAAaM,GAAoBl+X,WAAa2oY,EAC3E5gZ,EAAc,eAAX6c,EAA0BgkY,EAAiBhL,EAAaM,GAAoBl+X,YAC7Ew8X,GACJjhZ,KAAKuqG,SAASjnF,GAAcA,GAAc,GAAIviB,GAAO,GAAI,CACvD8gZ,YAAaA,EACbU,iBAAkBA,EAClBD,cAAeA,EACfK,mBAAoBA,UAxDtB3iZ,KAAKuqG,SAASjnF,GAAc,CAC1Bg+X,eAAgBA,EAChBC,aAAcA,GACbiE,EAA0C,CAC3CxkZ,MAAOhB,KAAKgB,MACZsgZ,eAAgBA,EAChBC,aAAcA,EACdxlF,SAAUA,GACT/7T,KAAKwpC,WAsDX,CACD5oC,IAAK,mBACLuB,MAAO,SAA0BqjB,EAAMC,EAAa8/X,GAGlD,IAFA,IAAI1/X,EAA0B7lB,KAAKwpC,MAAM3jB,wBAEhCtmB,EAAI,EAAGsE,EAAMgiB,EAAwBnmB,OAAQH,EAAIsE,EAAKtE,IAAK,CAClE,IAAI+E,EAAQuhB,EAAwBtmB,GAEpC,GAAI+E,EAAMkhB,OAASA,GAAQlhB,EAAMtD,MAAMJ,MAAQ4kB,EAAK5kB,KAAO6kB,IAAgB8B,YAAejjB,EAAMkhB,KAAK9e,OAAS6+Y,IAAejhZ,EAAMihZ,WACjI,OAAOjhZ,EAIX,OAAO,OAER,CACD1D,IAAK,aACLuB,MASA,SAAoBmrZ,EAAaziX,EAASplB,EAAariB,GACrD,IAAIwhK,EAAe5kK,KAAKgB,MACpBW,EAAQijK,EAAajjK,MACrBD,EAASkjK,EAAaljK,OAC1B,OAAoB1C,IAAM0B,cAAc0iK,IAAexzH,EAAS,GAAI09W,EAAa,CAC/E1uZ,UAAW,YAAYkE,OAAOwqZ,EAAYxoY,SAAU,KAAKhiB,OAAOwqZ,EAAYxoY,UAC5ElkB,IAAKiqC,EAAQjqC,KAAO,GAAGkC,OAAO2iB,EAAa,KAAK3iB,OAAOM,GACvD2yG,QAAS,CACPxpG,EAAG,EACHC,EAAG,EACH7K,MAAOA,EACPD,OAAQA,GAEVskK,eAAgBhmK,KAAKyoZ,wBASxB,CACD7nZ,IAAK,iBACLuB,MAAO,WACL,IAAI00T,EAAa72T,KAAK62T,WAClB02F,EAAqBvtZ,KAAKwpC,MAAMxgC,OAChC8f,EAAOykY,EAAmBzkY,KAC1BipF,EAAMw7S,EAAmBx7S,IACzBrwG,EAAS6rZ,EAAmB7rZ,OAC5BC,EAAQ4rZ,EAAmB5rZ,MAC/B,OAAoB3C,IAAM0B,cAAc,OAAQ,KAAmB1B,IAAM0B,cAAc,WAAY,CACjGmC,GAAIg0T,GACU73T,IAAM0B,cAAc,OAAQ,CAC1C6L,EAAGuc,EACHtc,EAAGulG,EACHrwG,OAAQA,EACRC,MAAOA,QAGV,CACDf,IAAK,aACLuB,MAAO,WACL,IAAIyjZ,EAAW5lZ,KAAKwpC,MAAMo8W,SAC1B,OAAOA,EAAWzmZ,OAAOqiG,QAAQokT,GAAUzoY,QAAO,SAAUzS,EAAK8iZ,GAC/D,IAAIC,EAAShvY,EAAe+uY,EAAQ,GAChCj/X,EAASk/X,EAAO,GAChBnoP,EAAYmoP,EAAO,GAEvB,OAAOnqY,GAAcA,GAAc,GAAI5Y,GAAM,GAAI8Y,GAAgB,GAAI+K,EAAQ+2I,EAAU16I,UACtF,IAAM,OAEV,CACDhqB,IAAK,aACLuB,MAAO,WACL,IAAI2jZ,EAAW9lZ,KAAKwpC,MAAMs8W,SAC1B,OAAOA,EAAW3mZ,OAAOqiG,QAAQskT,GAAU3oY,QAAO,SAAUzS,EAAKgjZ,GAC/D,IAAIC,EAASlvY,EAAeivY,EAAQ,GAChCn/X,EAASo/X,EAAO,GAChBroP,EAAYqoP,EAAO,GAEvB,OAAOrqY,GAAcA,GAAc,GAAI5Y,GAAM,GAAI8Y,GAAgB,GAAI+K,EAAQ+2I,EAAU16I,UACtF,IAAM,OAEV,CACDhqB,IAAK,oBACLuB,MAAO,SAA2BosB,GAChC,IAAIq/X,EAAsBC,EAE1B,OAAwD,QAAhDD,EAAuB5tZ,KAAKwpC,MAAMo8W,gBAA+C,IAAzBgI,GAAsG,QAA1DC,EAAwBD,EAAqBr/X,UAA+C,IAA1Bs/X,OAA5E,EAAwHA,EAAsBjjY,QAEjP,CACDhqB,IAAK,oBACLuB,MAAO,SAA2BosB,GAChC,IAAIu/X,EAAsBC,EAE1B,OAAwD,QAAhDD,EAAuB9tZ,KAAKwpC,MAAMs8W,gBAA+C,IAAzBgI,GAAsG,QAA1DC,EAAwBD,EAAqBv/X,UAA+C,IAA1Bw/X,OAA5E,EAAwHA,EAAsBnjY,QAEjP,CACDhqB,IAAK,cACLuB,MAAO,SAAqB6rZ,GAC1B,IAAInoY,EAA0B7lB,KAAKwpC,MAAM3jB,wBAEzC,GAAIA,GAA2BA,EAAwBnmB,OACrD,IAAK,IAAIH,EAAI,EAAGsE,EAAMgiB,EAAwBnmB,OAAQH,EAAIsE,EAAKtE,IAAK,CAClE,IAAIwxB,EAAgBlL,EAAwBtmB,GACxCyB,EAAQ+vB,EAAc/vB,MACtBwkB,EAAOuL,EAAcvL,KACrByoY,EAAkB1mY,YAAe/B,EAAK9e,MAE1C,GAAwB,QAApBunZ,EAA2B,CAC7B,IAAIC,GAAiBltZ,EAAMD,MAAQ,IAAIsD,MAAK,SAAUC,GACpD,OAAOmxK,YAAcu4O,EAAS1pZ,MAGhC,GAAI4pZ,EACF,MAAO,CACLn9X,cAAeA,EACfzZ,QAAS42Y,QAGR,GAAwB,cAApBD,EAAiC,CAC1C,IAAIE,GAAkBntZ,EAAMD,MAAQ,IAAIsD,MAAK,SAAUC,GACrD,OAAO+sC,YAAgB28W,EAAS1pZ,MAGlC,GAAI6pZ,EACF,MAAO,CACLp9X,cAAeA,EACfzZ,QAAS62Y,IAOnB,OAAO,OAER,CACDvtZ,IAAK,SACLuB,MAAO,WACL,IAAIurI,EAAS1tI,KAEb,IAAK07B,YAAoB17B,MACvB,OAAO,KAGT,IAAIglK,EAAehlK,KAAKgB,MACpBa,EAAWmjK,EAAanjK,SACxBjD,EAAYomK,EAAapmK,UACzB+C,EAAQqjK,EAAarjK,MACrBD,EAASsjK,EAAatjK,OACtB7C,EAAQmmK,EAAanmK,MACrB++L,EAAU54B,EAAa44B,QACvBprJ,EAASvY,EAAyB+qI,EAAc,CAAC,WAAY,YAAa,QAAS,SAAU,QAAS,YAEtGnvD,EAAQzkF,YAAYohB,GACpBhyC,EAAM,CACR4tZ,cAAe,CACbxxX,QAAS58B,KAAK0pZ,WACd7sX,MAAM,GAERk8R,cAAe,CACbn8R,QAAS58B,KAAK4qZ,wBAEhBlzF,cAAe,CACb96R,QAAS58B,KAAK4qZ,wBAEhBh0F,aAAc,CACZh6R,QAAS58B,KAAK4qZ,wBAEhByD,MAAO,CACLzxX,QAAS58B,KAAKupZ,aAEhB+E,MAAO,CACL1xX,QAAS58B,KAAKypZ,aAEhBnvF,MAAO,CACL19R,QAAS58B,KAAK0qZ,YACd7tX,MAAM,GAER0xX,IAAK,CACH3xX,QAAS58B,KAAKurZ,oBAEhBiD,KAAM,CACJ5xX,QAAS58B,KAAKurZ,oBAEhBkD,KAAM,CACJ7xX,QAAS58B,KAAKurZ,oBAEhBmD,MAAO,CACL9xX,QAAS58B,KAAKurZ,oBAEhBoD,UAAW,CACT/xX,QAAS58B,KAAKurZ,oBAEhBqD,QAAS,CACPhyX,QAAS58B,KAAKurZ,oBAEhBsD,IAAK,CACHjyX,QAAS58B,KAAKurZ,oBAEhBuD,OAAQ,CACNlyX,QAAS58B,KAAKurZ,oBAEhB33N,QAAS,CACPh3J,QAAS58B,KAAK0oZ,aACd7rX,MAAM,GAERkyX,UAAW,CACTnyX,QAAS58B,KAAK4pZ,gBACd/sX,MAAM,GAERmyX,eAAgB,CACdpyX,QAAS58B,KAAKqpZ,iBAEhB4F,gBAAiB,CACfryX,QAAS58B,KAAKqpZ,iBAEhB6F,WAAY,CACVtyX,QAAS58B,KAAK8rZ,mBAIlB,GAAIluN,EACF,OAAoB5+L,IAAM0B,cAAcq0K,IAASnlI,EAAS,GAAIimE,EAAO,CACnEl0G,MAAOA,EACPD,OAAQA,IACN1B,KAAKmvZ,iBAAkB3yX,YAAc36B,EAAUrB,IAGrD,IAAI21I,EAASn2I,KAAKovZ,uBAClB,OAAoBpwZ,IAAM0B,cAAc,MAAOkvC,EAAS,CACtDhxC,UAAW4U,IAAW,mBAAoB5U,GAC1CC,MAAOykB,GAAc,CACnBkF,SAAU,WACVqsK,OAAQ,UACRlzL,MAAOA,EACPD,OAAQA,GACP7C,IACFs3I,EAAQ,CACTpxB,IAAK,SAAatkH,GAChBitI,EAAOp6F,UAAY7yC,KAENzB,IAAM0B,cAAcq0K,IAASnlI,EAAS,GAAIimE,EAAO,CAChEl0G,MAAOA,EACPD,OAAQA,IACN1B,KAAKmvZ,iBAAkB3yX,YAAc36B,EAAUrB,IAAOR,KAAKqqZ,eAAgBrqZ,KAAKuqZ,sBA7iEd/6W,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAijEzK22W,EAlvC4B,CAmvCnC1zX,aAAY2/K,EAAO9sL,YAAcm7F,EAAW2xF,EAAOl6F,aAAe/0F,GAAc,CAChF+F,OAAQ,aACR45X,YAAa,OACbp7X,eAAgB,MAChBD,OAAQ,EACRiB,OAAQ,CACNkpF,IAAK,EACLhpF,MAAO,EACPm4F,OAAQ,EACRp4F,KAAM,GAERsF,mBAAmB,EACnB8+X,WAAY,SACX70S,GAAek6F,EAAO5+B,yBAA2B,SAAUt3I,EAAWmoF,GACvE,IAAIzjH,EAAOs7B,EAAUt7B,KACjBc,EAAWw6B,EAAUx6B,SACrBF,EAAQ06B,EAAU16B,MAClBD,EAAS26B,EAAU36B,OACnB2nB,EAASgT,EAAUhT,OACnB45X,EAAc5mX,EAAU4mX,YACxBp6X,EAASwT,EAAUxT,OAEvB,GAAI/E,IAAO0gG,EAAUu3M,UAAW,CAC9B,IAAIszF,EAAe7L,GAAmBnnX,GACtC,OAAO/Y,GAAcA,GAAcA,GAAc,GAAI+rY,GAAe,GAAI,CACtEtzF,SAAU,GACTypF,EAA0CliY,GAAcA,GAAc,CACvEtiB,MAAOq7B,GACNgzX,GAAe,GAAI,CACpBtzF,SAAU,IACRv3M,IAAa,GAAI,CACnBw3M,SAAUj7T,EACV+/I,UAAWn/I,EACX2tZ,WAAY5tZ,EACZ6tZ,WAAYlmY,EACZmmY,gBAAiBvM,EACjBwM,WAAY5mY,EACZoT,aAAcp6B,IAIlB,GAAId,IAASyjH,EAAUw3M,UAAYr6T,IAAU6iH,EAAUs8B,WAAap/I,IAAW8iH,EAAU8qS,YAAcjmY,IAAWm7F,EAAU+qS,YAActM,IAAgBz+R,EAAUgrS,kBAAoBjzX,YAAa1T,EAAQ27F,EAAUirS,YAAa,CAClO,IAAIC,EAAgBlM,GAAmBnnX,GAGnCszX,EAAoB,CAGtBh8S,OAAQ6Q,EAAU7Q,OAClBC,OAAQ4Q,EAAU5Q,OAGlB+vS,gBAAiBn/R,EAAUm/R,iBAGzBiM,EAAiBtsY,GAAcA,GAAc,GAAI0+X,GAAex9R,EAAWzjH,EAAMsoB,IAAU,GAAI,CACjG0yS,SAAUv3M,EAAUu3M,SAAW,IAG7BvuL,EAAWlqH,GAAcA,GAAcA,GAAc,GAAIosY,GAAgBC,GAAoBC,GAEjG,OAAOtsY,GAAcA,GAAcA,GAAc,GAAIkqH,GAAWg4Q,EAA0CliY,GAAc,CACtHtiB,MAAOq7B,GACNmxG,GAAWhpB,IAAa,GAAI,CAC7Bw3M,SAAUj7T,EACV+/I,UAAWn/I,EACX2tZ,WAAY5tZ,EACZ6tZ,WAAYlmY,EACZmmY,gBAAiBvM,EACjBwM,WAAY5mY,EACZoT,aAAcp6B,IAIlB,IAAKk6B,YAAgBl6B,EAAU2iH,EAAUvoF,cAAe,CAEtD,IACI4zX,GADiB/rY,IAAO/iB,GACMyjH,EAAUu3M,SAAWv3M,EAAUu3M,SAAW,EAC5E,OAAOz4S,GAAcA,GAAc,CACjCy4S,SAAU8zF,GACTrK,EAA0CliY,GAAcA,GAAc,CACvEtiB,MAAOq7B,GACNmoF,GAAY,GAAI,CACjBu3M,SAAU8zF,IACRrrS,IAAa,GAAI,CACnBvoF,aAAcp6B,IAIlB,OAAO,MACN0wM,EAAO+4M,gBAAkB,SAAUjnP,EAAQrjK,GAC5C,IAAI8uZ,EAUJ,OAPEA,EADgB99X,yBAAeqyI,GACZ3tD,uBAAa2tD,EAAQrjK,GAC/B+iB,IAAYsgJ,GACfA,EAAOrjK,GAEMhC,IAAM0B,cAAcitJ,IAAK3sJ,GAG1BhC,IAAM0B,cAAc6xC,IAAO,CAC7C3zC,UAAW,sBACXgC,IAAKI,EAAMJ,KACVkvZ,IACFt9M,K,sEC1rEL,IAuCInuM,EAvCapC,EAAQ,KAuCd8tZ,CAtCK9tZ,EAAQ,OAwCxBF,EAAOC,QAAUqC,G,gBCzCjB,IAAI2rZ,EAAW/tZ,EAAQ,MACnBuY,EAAWvY,EAAQ,IAmEvBF,EAAOC,QAlBP,SAAkBs+D,EAAMs/C,EAAMvtG,GAC5B,IAAIq6G,GAAU,EACVujS,GAAW,EAEf,GAAmB,mBAAR3vV,EACT,MAAM,IAAI96D,UAnDQ,uBAyDpB,OAJIgV,EAASnI,KACXq6G,EAAU,YAAar6G,IAAYA,EAAQq6G,QAAUA,EACrDujS,EAAW,aAAc59Y,IAAYA,EAAQ49Y,SAAWA,GAEnDD,EAAS1vV,EAAMs/C,EAAM,CAC1B,QAAW8M,EACX,QAAW9M,EACX,SAAYqwS,M,gBChEhB,IAAI19X,EAAatwB,EAAQ,KACrBglI,EAAehlI,EAAQ,KA2B3BF,EAAOC,QALP,SAAmBG,GACjB,OAAiB,IAAVA,IAA4B,IAAVA,GACtB8kI,EAAa9kI,IArBJ,oBAqBcowB,EAAWpwB,K,gBCzBvC,IAAIirJ,EAAcnrJ,EAAQ,KACtBzB,EAAMyB,EAAQ,MA2BlBF,EAAOC,QAJP,SAAiByrJ,EAAYU,GAC3B,OAAOf,EAAY5sJ,EAAIitJ,EAAYU,GAAW,K,gBCzBhD,IAAI8iP,EAAYhvY,EAAQ,KACpBgsJ,EAAehsJ,EAAQ,KACvBiuZ,EAAWjuZ,EAAQ,MACnByC,EAAUzC,EAAQ,IAClBsrJ,EAAiBtrJ,EAAQ,KA8C7BF,EAAOC,QARP,SAAcyrJ,EAAYunD,EAAWC,GACnC,IAAI30I,EAAO57D,EAAQ+oJ,GAAcwjP,EAAYif,EAI7C,OAHIj7M,GAAS1nD,EAAeE,EAAYunD,EAAWC,KACjDD,OAAYt2M,GAEP4hE,EAAKmtF,EAAYQ,EAAa+mD,EAAW,M,gBC/ClD,IAAIm7M,EAAkBluZ,EAAQ,MAC1B86U,EAAa96U,EAAQ,KACrBgsJ,EAAehsJ,EAAQ,KAwC3BF,EAAOC,QAVP,SAAmBghB,EAAQmrI,GACzB,IAAIv0I,EAAS,GAMb,OALAu0I,EAAWF,EAAaE,EAAU,GAElC4uL,EAAW/5T,GAAQ,SAAS7gB,EAAOvB,EAAKoiB,GACtCmtY,EAAgBv2Y,EAAQhZ,EAAKutJ,EAAShsJ,EAAOvB,EAAKoiB,OAE7CpJ,I,0C9xBvCT,IAAMw2Y,EAAyC,oBAAZzZ,QAE3BlzY,EAAStE,OAAL,K,SAgBIkxZ,EAAmB/jZ,EAAQzE,GACzC,OAAOyE,IAAMzE,GAAMyE,IAAMA,GAAKzE,IAAMA,E,SAStB+mC,EAAczsC,GAC5B,OAAOA,EAAMmU,cAAgBnX,QAA+B,MAArBgD,EAAMmU,Y,SAS/Bg6Y,EAAcnuZ,GAC5B,QAASA,GAA+B,oBAAfA,EAAMitC,K,SASjBmhX,EAAepuZ,GAC7B,SAAUA,IAASA,EAAM+5Y,U,SASXsU,IACd,IAAM1uY,EAAgB,GAEtB,MAAO,CACL7D,IAAA,SAAI9b,GACF2f,EAAOlY,KAAKzH,IAGdgwC,IAAA,SAAIhwC,GACF,OAAkC,IAA3B2f,EAAO3hB,QAAQgC,KAUrB,IAAMsuZ,EAQVL,EANQ,WACL,OAAO,IAAIzZ,SAIR6Z,E,SASOE,EAA2Bh5O,GACzC,OAAO,SAA6By9L,GAClC,IAAMw7C,EAAcj5O,GAAWy9L,EAE/B,OAAO,SACL7oW,EACAzE,EACA/D,QAAA,IAAAA,MAAe2sZ,KAEf,IAAMG,IAAiBtkZ,GAAkB,kBAANA,EAC7BukZ,IAAiBhpZ,GAAkB,kBAANA,EAEnC,GAAI+oZ,GAAgBC,EAAc,CAChC,IAAMC,EAAOF,GAAgB9sZ,EAAMquC,IAAI7lC,GACjCykZ,EAAOF,GAAgB/sZ,EAAMquC,IAAItqC,GAEvC,GAAIipZ,GAAQC,EACV,OAAOD,GAAQC,EAGbH,GACF9sZ,EAAMma,IAAI3R,GAGRukZ,GACF/sZ,EAAMma,IAAIpW,GAId,OAAO8oZ,EAAYrkZ,EAAGzE,EAAG/D,K,SAcfktZ,EACd1kZ,EACAzE,EACA6vK,EACAy6B,GAEA,IAAI/uM,EAAQkJ,EAAE5M,OAEd,GAAImI,EAAEnI,SAAW0D,EACf,OAAO,EAGT,KAAOA,KAAU,GACf,IAAKs0K,EAAQprK,EAAElJ,GAAQyE,EAAEzE,GAAQ+uM,GAC/B,OAAO,EAIX,OAAO,E,SAYO8+M,EACd3kZ,EACAzE,EACA6vK,EACAy6B,GAEA,IAAI34B,EAAeltK,EAAE3N,OAASkJ,EAAElJ,KAEhC,GAAI66K,GAAgBltK,EAAE3N,KAAM,CAC1B,IAAM,EAAuC,GAE7C2N,EAAE+G,SAAQ,SAAC00F,EAAQmpT,GACjB,GAAI13O,EAAc,CAChB,IAAI,GAAW,EACX,EAAa,EAEjB3xK,EAAEwL,SAAQ,SAAC20F,EAAQmpT,GACZ,GAAa,EAAe,KAC/B,EACEz5O,EAAQw5O,EAAMC,EAAMh/M,IAASz6B,EAAQ3vE,EAAQC,EAAQmqG,MAGrD,EAAe,IAAc,GAIjC,OAGF34B,EAAe,MAKrB,OAAOA,EAQT,IAAM43O,EAAQ,SAERvxZ,EAAiB2mC,SAAS5mC,UAAUkyF,KAAKhyF,KAC7C0mC,SAAS5mC,UAAUE,KACnBX,OAAOS,UAAUC,gB,SAYHwxZ,EACd/kZ,EACAzE,EACA6vK,EACAy6B,GAEA,IAAM36B,EAAQ/zK,EAAK6I,GAEflJ,EAAQo0K,EAAM93K,OAElB,GAAI+D,EAAKoE,GAAGnI,SAAW0D,EACrB,OAAO,EAGT,GAAIA,EAGF,IAFA,IAAIxC,OAAG,EAEAwC,KAAU,GAAG,CAGlB,IAFAxC,EAAM42K,EAAMp0K,MAEAguZ,EAAO,CACjB,IAAME,EAAgBf,EAAejkZ,GAC/BilZ,EAAgBhB,EAAe1oZ,GAErC,IACGypZ,GAAiBC,IAClBD,IAAkBC,EAElB,OAAO,EAIX,IAAK1xZ,EAAegI,EAAGjH,KAAS82K,EAAQprK,EAAE1L,GAAMiH,EAAEjH,GAAMuxM,GACtD,OAAO,EAKb,OAAO,E,SAUOq/M,EAAgBllZ,EAAWzE,GACzC,OACEyE,EAAEiX,SAAW1b,EAAE0b,QACfjX,EAAEb,SAAW5D,EAAE4D,QACfa,EAAEmlZ,aAAe5pZ,EAAE4pZ,YACnBnlZ,EAAEolZ,YAAc7pZ,EAAE6pZ,WAClBplZ,EAAEqlZ,UAAY9pZ,EAAE8pZ,SAChBrlZ,EAAEslZ,SAAW/pZ,EAAE+pZ,QACftlZ,EAAE88D,YAAcvhE,EAAEuhE,U,SAaNyoV,EACdvlZ,EACAzE,EACA6vK,EACAy6B,GAEA,IAAI34B,EAAeltK,EAAE3N,OAASkJ,EAAElJ,KAEhC,GAAI66K,GAAgBltK,EAAE3N,KAAM,CAC1B,IAAM,EAAuC,GAE7C2N,EAAE+G,SAAQ,SAAC00F,GACT,GAAIyxE,EAAc,CAChB,IAAI,GAAW,EACX,EAAa,EAEjB3xK,EAAEwL,SAAQ,SAAC20F,GACJ,GAAa,EAAe,KAC/B,EAAW0vE,EAAQ3vE,EAAQC,EAAQmqG,MAGjC,EAAe,IAAc,GAIjC,OAGF34B,EAAe,MAKrB,OAAOA,E+xB1TT,IAAMs4O,EAAiC,oBAARl7X,IACzBm7X,EAAiC,oBAARp1T,I,SAIfq1T,EAAiBC,GAC/B,IAAMv6O,EAEqB,oBAAlBu6O,EACHA,EAAc98C,GACdA,EAWN,SAASA,EAAW7oW,EAAQzE,EAAQsqM,GAClC,GAAI7lM,IAAMzE,EACR,OAAO,EAGT,GAAIyE,GAAKzE,GAAkB,kBAANyE,GAA+B,kBAANzE,EAAgB,CAC5D,GAAI+mC,EAActiC,IAAMsiC,EAAc/mC,GACpC,OAAOwpZ,EAAgB/kZ,EAAGzE,EAAG6vK,EAASy6B,GAGxC,IAAI+/M,EAASvkZ,MAAMjJ,QAAQ4H,GACvB6lZ,EAASxkZ,MAAMjJ,QAAQmD,GAE3B,OAAIqqZ,GAAUC,EACLD,IAAWC,GAAUnB,EAAe1kZ,EAAGzE,EAAG6vK,EAASy6B,IAG5D+/M,EAAS5lZ,aAAaiY,KACtB4tY,EAAStqZ,aAAa0c,KAElB2tY,GAAUC,EAEVD,IAAWC,GAAU9B,EAAmB/jZ,EAAE+4D,UAAWx9D,EAAEw9D,YAI3D6sV,EAAS5lZ,aAAay6D,OACtBorV,EAAStqZ,aAAak/D,OAElBmrV,GAAUC,EACLD,IAAWC,GAAUX,EAAgBllZ,EAAGzE,GAG7CyoZ,EAAchkZ,IAAMgkZ,EAAczoZ,GAC7ByE,IAAMzE,EAGXiqZ,IACFI,EAAS5lZ,aAAasqB,IACtBu7X,EAAStqZ,aAAa+uB,IAElBs7X,GAAUC,GACLD,IAAWC,GAAUlB,EAAa3kZ,EAAGzE,EAAG6vK,EAASy6B,GAIxD4/M,IACFG,EAAS5lZ,aAAaqwF,IACtBw1T,EAAStqZ,aAAa80F,IAElBu1T,GAAUC,GACLD,IAAWC,GAAUN,EAAavlZ,EAAGzE,EAAG6vK,EAASy6B,GAIrDk/M,EAAgB/kZ,EAAGzE,EAAG6vK,EAASy6B,KAGxC,OAAO7lM,IAAMA,GAAKzE,IAAMA,EAG1B,OAAOstW,E,I1xBzFI,EAAY,IACZ,EAAe,GAAiB,WAAM,YAEtC,EAAoB,EAAiB,KACrC,EAAuB,EAClC,EAA2B,I,8M2xBV7B,8FAAS1jV,EAAQjuB,GAAmV,OAAtOiuB,EAArD,oBAAX1lB,QAAoD,kBAApBA,OAAOkP,SAAmC,SAAiBzX,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXuI,QAAyBvI,EAAI8S,cAAgBvK,QAAUvI,IAAQuI,OAAOnM,UAAY,gBAAkB4D,GAAiBiuB,EAAQjuB,GAEnX,SAASosC,IAA2Q,OAA9PA,EAAWzwC,OAAOC,QAAU,SAAU+N,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAS9jB,UAAUF,GAAI,IAAK,IAAIqB,KAAO2iB,EAAcpkB,OAAOS,UAAUC,eAAeC,KAAKyjB,EAAQ3iB,KAAQuM,EAAOvM,GAAO2iB,EAAO3iB,IAAY,OAAOuM,GAAkByiC,EAAS7vC,MAAMC,KAAMP,WAEhT,SAAS0vG,EAAgB7/D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAEhH,SAASgqC,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAM7S,SAASo8F,EAAgB1wH,EAAGxb,GAA+G,OAA1GksI,EAAkB1sI,OAAOs2B,gBAAkB,SAAyBta,EAAGxb,GAAsB,OAAjBwb,EAAEjW,UAAYvF,EAAUwb,GAAa0wH,EAAgB1wH,EAAGxb,GAErK,SAASmsI,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFj9F,QAAQvvC,UAAU+jC,QAAQ7jC,KAAKmsI,QAAQC,UAAU/8F,QAAS,IAAI,iBAAyB,EAAQ,MAAOjvC,GAAK,OAAO,GAN9PmsI,GAA6B,OAAO,WAAkC,IAAsCzyH,EAAlC0yH,EAAQ15F,EAAgBm5F,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY35F,EAAgB5yC,MAAMsW,YAAasD,EAASqyH,QAAQC,UAAUI,EAAO7sI,UAAW8sI,QAAqB3yH,EAAS0yH,EAAMvsI,MAAMC,KAAMP,WAAc,OAAO+sI,EAA2BxsI,KAAM4Z,IAE5Z,SAAS4yH,EAA2B/yH,EAAM3Z,GAAQ,OAAIA,GAA2B,WAAlB2xB,EAAQ3xB,IAAsC,oBAATA,EAEpG,SAAgC2Z,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIk5B,eAAe,6DAAgE,OAAOl5B,EAFb6yC,CAAuB7yC,GAAtC3Z,EAMnI,SAAS8yC,EAAgBz3B,GAAwJ,OAAnJy3B,EAAkBzzC,OAAOs2B,eAAiBt2B,OAAO0zC,eAAiB,SAAyB13B,GAAK,OAAOA,EAAEjW,WAAa/F,OAAO0zC,eAAe13B,IAAcy3B,EAAgBz3B,GASjM,IAAI2tY,EAAqB,SAAUp8Q,IArB1C,SAAmB55F,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvtC,UAAU,sDAAyDstC,EAASlzC,UAAYT,OAAOy2B,OAAOmd,GAAcA,EAAWnzC,UAAW,CAAE0W,YAAa,CAAEnU,MAAO2wC,EAAUnvB,UAAU,EAAMzX,cAAc,KAAe6mC,GAAY84F,EAAgB/4F,EAAUC,GAsBjX45F,CAAUm8Q,EAAOp8Q,GAEjB,IA1BoBn9F,EAAaG,EAAYC,EA0BzC62E,EAASslB,EAAag9Q,GAE1B,SAASA,IAGP,OAFA35S,EAAgBnvG,KAAM8oZ,GAEftiS,EAAOzmH,MAAMC,KAAMP,WA+B5B,OA9DoB8vC,EAkCPu5W,EAlCgCn5W,EAuDzC,CAAC,CACH/uC,IAAK,UACLuB,MAAO,SAAiBoK,EAAGC,EAAG7K,EAAOD,EAAQqwG,EAAKjpF,GAChD,MAAO,IAAIhmB,OAAOyJ,EAAG,KAAKzJ,OAAOivG,EAAK,KAAKjvG,OAAOpB,EAAQ,KAAKoB,OAAOgmB,EAAM,KAAKhmB,OAAO0J,EAAG,KAAK1J,OAAOnB,OA1D1E+tC,EAkCb,CAAC,CACnB9uC,IAAK,SACLuB,MAAO,WACL,IAAIuiH,EAAc1kH,KAAKgB,MACnBuL,EAAIm4G,EAAYn4G,EAChBC,EAAIk4G,EAAYl4G,EAChB7K,EAAQ+iH,EAAY/iH,MACpBD,EAASgjH,EAAYhjH,OACrBqwG,EAAM2S,EAAY3S,IAClBjpF,EAAO47F,EAAY57F,KACnBlqB,EAAY8lH,EAAY9lH,UAE5B,OAAK0D,YAASiK,IAAOjK,YAASkK,IAAOlK,YAASX,IAAWW,YAASZ,IAAYY,YAASyvG,IAASzvG,YAASwmB,GAIrF9pB,IAAM0B,cAAc,OAAQkvC,EAAS,GAAIxe,YAAYpxB,KAAKgB,OAAO,GAAO,CAC1FpC,UAAW4U,IAAW,iBAAkB5U,GACxCikB,EAAGimY,EAAMl6V,QAAQriD,EAAGC,EAAG7K,EAAOD,EAAQqwG,EAAKjpF,MALpC,UA/C+D0mB,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GA8D3Km5W,EAvCuB,CAwC9B9hR,iBACF8hR,EAAMzwS,aAAe,CACnB9rG,EAAG,EACHC,EAAG,EACHulG,IAAK,EACLjpF,KAAM,EACNnnB,MAAO,EACPD,OAAQ,I,6BC9EV,sGAAS+vB,EAAQjuB,GAAmV,OAAtOiuB,EAArD,oBAAX1lB,QAAoD,kBAApBA,OAAOkP,SAAmC,SAAiBzX,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXuI,QAAyBvI,EAAI8S,cAAgBvK,QAAUvI,IAAQuI,OAAOnM,UAAY,gBAAkB4D,GAAiBiuB,EAAQjuB,GAEnX,SAASosC,IAA2Q,OAA9PA,EAAWzwC,OAAOC,QAAU,SAAU+N,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAS9jB,UAAUF,GAAI,IAAK,IAAIqB,KAAO2iB,EAAcpkB,OAAOS,UAAUC,eAAeC,KAAKyjB,EAAQ3iB,KAAQuM,EAAOvM,GAAO2iB,EAAO3iB,IAAY,OAAOuM,GAAkByiC,EAAS7vC,MAAMC,KAAMP,WAEhT,SAAS0vG,EAAgB7/D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAEhH,SAASgqC,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAM7S,SAASo8F,EAAgB1wH,EAAGxb,GAA+G,OAA1GksI,EAAkB1sI,OAAOs2B,gBAAkB,SAAyBta,EAAGxb,GAAsB,OAAjBwb,EAAEjW,UAAYvF,EAAUwb,GAAa0wH,EAAgB1wH,EAAGxb,GAErK,SAASmsI,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFj9F,QAAQvvC,UAAU+jC,QAAQ7jC,KAAKmsI,QAAQC,UAAU/8F,QAAS,IAAI,iBAAyB,EAAQ,MAAOjvC,GAAK,OAAO,GAN9PmsI,GAA6B,OAAO,WAAkC,IAAsCzyH,EAAlC0yH,EAAQ15F,EAAgBm5F,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY35F,EAAgB5yC,MAAMsW,YAAasD,EAASqyH,QAAQC,UAAUI,EAAO7sI,UAAW8sI,QAAqB3yH,EAAS0yH,EAAMvsI,MAAMC,KAAMP,WAAc,OAAO+sI,EAA2BxsI,KAAM4Z,IAE5Z,SAAS4yH,EAA2B/yH,EAAM3Z,GAAQ,OAAIA,GAA2B,WAAlB2xB,EAAQ3xB,IAAsC,oBAATA,EAEpG,SAAgC2Z,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIk5B,eAAe,6DAAgE,OAAOl5B,EAFb6yC,CAAuB7yC,GAAtC3Z,EAMnI,SAAS8yC,EAAgBz3B,GAAwJ,OAAnJy3B,EAAkBzzC,OAAOs2B,eAAiBt2B,OAAO0zC,eAAiB,SAAyB13B,GAAK,OAAOA,EAAEjW,WAAa/F,OAAO0zC,eAAe13B,IAAcy3B,EAAgBz3B,GAWxM,IAMIi3Y,EAAmB,SAA0B9yY,GAC/C,IAAI4wB,EAAK5wB,EAAK4wB,GACVC,EAAK7wB,EAAK6wB,GACVC,EAAS9wB,EAAK8wB,OACdC,EAAQ/wB,EAAK+wB,MACb9jB,EAAOjN,EAAKiN,KACZ8lY,EAAa/yY,EAAK+yY,WAClBC,EAAehzY,EAAKgzY,aACpBC,EAAmBjzY,EAAKizY,iBACxBC,EAAeF,GAAgBD,EAAa,GAAK,GAAKjiX,EACtDqiX,EAAQjoZ,KAAKkoZ,KAAKJ,EAAeE,GAAgB3iX,IACjD8iX,EAAcJ,EAAmBliX,EAAQA,EAAQ9jB,EAAOkmY,EAKxDG,EAAoBL,EAAmBliX,EAAQ9jB,EAAOkmY,EAAQpiX,EAElE,MAAO,CACLs/K,OAPW1/K,YAAiBC,EAAIC,EAAIqiX,EAAcG,GAQlDE,eANmB5iX,YAAiBC,EAAIC,EAAIC,EAAQuiX,GAOpDG,aAJiB7iX,YAAiBC,EAAIC,EAAIqiX,EAAehoZ,KAAK8lC,IAAImiX,EAAQ5iX,KAAS+iX,GAKnFH,MAAOA,IAIPM,EAAgB,SAAuBxzY,GACzC,IAAI2wB,EAAK3wB,EAAM2wB,GACXC,EAAK5wB,EAAM4wB,GACXqB,EAAcjyB,EAAMiyB,YACpBC,EAAclyB,EAAMkyB,YACpBR,EAAa1xB,EAAM0xB,WAEnBZ,EAvCc,SAAuBY,EAAYC,GAGrD,OAFWhvC,YAASgvC,EAAWD,GACdzmC,KAAKC,IAAID,KAAK2T,IAAI+yB,EAAWD,GAAa,SAqC/CilE,CAAcjlE,EADX1xB,EAAM2xB,UAGjB8hX,EAAe/hX,EAAaZ,EAC5B4iX,EAAkBhjX,YAAiBC,EAAIC,EAAIsB,EAAaR,GACxDiiX,EAAgBjjX,YAAiBC,EAAIC,EAAIsB,EAAauhX,GACtD79X,EAAO,KAAKryB,OAAOmwZ,EAAgB1mZ,EAAG,KAAKzJ,OAAOmwZ,EAAgBzmZ,EAAG,YAAY1J,OAAO2uC,EAAa,KAAK3uC,OAAO2uC,EAAa,aAAa3uC,SAAS0H,KAAK2T,IAAIkyB,GAAS,KAAM,KAAKvtC,SAASmuC,EAAa+hX,GAAe,WAAWlwZ,OAAOowZ,EAAc3mZ,EAAG,KAAKzJ,OAAOowZ,EAAc1mZ,EAAG,QAE1R,GAAIglC,EAAc,EAAG,CACnB,IAAI2hX,EAAkBljX,YAAiBC,EAAIC,EAAIqB,EAAaP,GACxDmiX,EAAgBnjX,YAAiBC,EAAIC,EAAIqB,EAAawhX,GAC1D79X,GAAQ,KAAKryB,OAAOswZ,EAAc7mZ,EAAG,KAAKzJ,OAAOswZ,EAAc5mZ,EAAG,oBAAoB1J,OAAO0uC,EAAa,KAAK1uC,OAAO0uC,EAAa,qBAAqB1uC,SAAS0H,KAAK2T,IAAIkyB,GAAS,KAAM,KAAKvtC,SAASmuC,GAAc+hX,GAAe,mBAAmBlwZ,OAAOqwZ,EAAgB5mZ,EAAG,KAAKzJ,OAAOqwZ,EAAgB3mZ,EAAG,WAEhT2oB,GAAQ,KAAKryB,OAAOotC,EAAI,KAAKptC,OAAOqtC,EAAI,MAG1C,OAAOhb,GAuGE+zX,EAAsB,SAAUx8Q,IApL3C,SAAmB55F,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvtC,UAAU,sDAAyDstC,EAASlzC,UAAYT,OAAOy2B,OAAOmd,GAAcA,EAAWnzC,UAAW,CAAE0W,YAAa,CAAEnU,MAAO2wC,EAAUnvB,UAAU,EAAMzX,cAAc,KAAe6mC,GAAY84F,EAAgB/4F,EAAUC,GAqLjX45F,CAAUu8Q,EAAQx8Q,GAElB,IAzLoBn9F,EAAaG,EAAYC,EAyLzC62E,EAASslB,EAAao9Q,GAE1B,SAASA,IAGP,OAFA/5S,EAAgBnvG,KAAMkpZ,GAEf1iS,EAAOzmH,MAAMC,KAAMP,WAyD5B,OAvPoB8vC,EAiMP25W,GAjMoBx5W,EAiMZ,CAAC,CACpB9uC,IAAK,SACLuB,MAAO,WACL,IAAIuiH,EAAc1kH,KAAKgB,MACnBkvC,EAAKw0E,EAAYx0E,GACjBC,EAAKu0E,EAAYv0E,GACjBqB,EAAckzE,EAAYlzE,YAC1BC,EAAcizE,EAAYjzE,YAC1B6gX,EAAe5tS,EAAY4tS,aAC3Be,EAAoB3uS,EAAY2uS,kBAChCd,EAAmB7tS,EAAY6tS,iBAC/BthX,EAAayzE,EAAYzzE,WACzBC,EAAWwzE,EAAYxzE,SACvBtyC,EAAY8lH,EAAY9lH,UAE5B,GAAI6yC,EAAcD,GAAeP,IAAeC,EAC9C,OAAO,KAGT,IAGI/b,EAHAsd,EAAaj/B,IAAW,kBAAmB5U,GAC3C00Z,EAAc7hX,EAAcD,EAC5B4zR,EAAKriU,YAAgBuvZ,EAAcgB,EAAa,GAAG,GA0BvD,OAtBEn+X,EADEiwS,EAAK,GAAK56T,KAAK2T,IAAI8yB,EAAaC,GAAY,IAvI5B,SAA6B7vB,GACrD,IAAI6uB,EAAK7uB,EAAM6uB,GACXC,EAAK9uB,EAAM8uB,GACXqB,EAAcnwB,EAAMmwB,YACpBC,EAAcpwB,EAAMowB,YACpB6gX,EAAejxY,EAAMixY,aACrBe,EAAoBhyY,EAAMgyY,kBAC1Bd,EAAmBlxY,EAAMkxY,iBACzBthX,EAAa5vB,EAAM4vB,WACnBC,EAAW7vB,EAAM6vB,SACjB3kB,EAAOrqB,YAASgvC,EAAWD,GAE3BsiX,EAAoBnB,EAAiB,CACvCliX,GAAIA,EACJC,GAAIA,EACJC,OAAQqB,EACRpB,MAAOY,EACP1kB,KAAMA,EACN+lY,aAAcA,EACdC,iBAAkBA,IAEhBiB,EAAOD,EAAkBV,eACzBY,EAAOF,EAAkBT,aACzBY,EAAMH,EAAkBd,MAExBkB,EAAqBvB,EAAiB,CACxCliX,GAAIA,EACJC,GAAIA,EACJC,OAAQqB,EACRpB,MAAOa,EACP3kB,MAAOA,EACP+lY,aAAcA,EACdC,iBAAkBA,IAEhBqB,EAAOD,EAAmBd,eAC1BgB,EAAOF,EAAmBb,aAC1BgB,EAAMH,EAAmBlB,MAEzBsB,EAAgBxB,EAAmB/nZ,KAAK2T,IAAI8yB,EAAaC,GAAY1mC,KAAK2T,IAAI8yB,EAAaC,GAAYwiX,EAAMI,EAEjH,GAAIC,EAAgB,EAClB,OAAIV,EACK,KAAKvwZ,OAAO2wZ,EAAKlnZ,EAAG,KAAKzJ,OAAO2wZ,EAAKjnZ,EAAG,eAAe1J,OAAOwvZ,EAAc,KAAKxvZ,OAAOwvZ,EAAc,WAAWxvZ,OAAsB,EAAfwvZ,EAAkB,iBAAiBxvZ,OAAOwvZ,EAAc,KAAKxvZ,OAAOwvZ,EAAc,WAAWxvZ,OAAuB,GAAfwvZ,EAAkB,cAGjPS,EAAc,CACnB7iX,GAAIA,EACJC,GAAIA,EACJqB,YAAaA,EACbC,YAAaA,EACbR,WAAYA,EACZC,SAAUA,IAId,IAAI/b,EAAO,KAAKryB,OAAO2wZ,EAAKlnZ,EAAG,KAAKzJ,OAAO2wZ,EAAKjnZ,EAAG,WAAW1J,OAAOwvZ,EAAc,KAAKxvZ,OAAOwvZ,EAAc,SAASxvZ,SAASypB,EAAO,GAAI,KAAKzpB,OAAO0wZ,EAAKjnZ,EAAG,KAAKzJ,OAAO0wZ,EAAKhnZ,EAAG,WAAW1J,OAAO2uC,EAAa,KAAK3uC,OAAO2uC,EAAa,OAAO3uC,SAASixZ,EAAgB,KAAM,KAAKjxZ,SAASypB,EAAO,GAAI,KAAKzpB,OAAO8wZ,EAAKrnZ,EAAG,KAAKzJ,OAAO8wZ,EAAKpnZ,EAAG,WAAW1J,OAAOwvZ,EAAc,KAAKxvZ,OAAOwvZ,EAAc,SAASxvZ,SAASypB,EAAO,GAAI,KAAKzpB,OAAO+wZ,EAAKtnZ,EAAG,KAAKzJ,OAAO+wZ,EAAKrnZ,EAAG,QAEhd,GAAIglC,EAAc,EAAG,CACnB,IAAIwiX,EAAqB5B,EAAiB,CACxCliX,GAAIA,EACJC,GAAIA,EACJC,OAAQoB,EACRnB,MAAOY,EACP1kB,KAAMA,EACN8lY,YAAY,EACZC,aAAcA,EACdC,iBAAkBA,IAEhB0B,EAAOD,EAAmBnB,eAC1BqB,EAAOF,EAAmBlB,aAC1BqB,EAAMH,EAAmBvB,MAEzB2B,EAAqBhC,EAAiB,CACxCliX,GAAIA,EACJC,GAAIA,EACJC,OAAQoB,EACRnB,MAAOa,EACP3kB,MAAOA,EACP8lY,YAAY,EACZC,aAAcA,EACdC,iBAAkBA,IAEhB8B,EAAOD,EAAmBvB,eAC1ByB,EAAOF,EAAmBtB,aAC1ByB,EAAMH,EAAmB3B,MAEzB+B,EAAgBjC,EAAmB/nZ,KAAK2T,IAAI8yB,EAAaC,GAAY1mC,KAAK2T,IAAI8yB,EAAaC,GAAYijX,EAAMI,EAEjH,GAAIC,EAAgB,GAAsB,IAAjBlC,EACvB,MAAO,GAAGxvZ,OAAOqyB,EAAM,KAAKryB,OAAOotC,EAAI,KAAKptC,OAAOqtC,EAAI,KAGzDhb,GAAQ,IAAIryB,OAAOwxZ,EAAK/nZ,EAAG,KAAKzJ,OAAOwxZ,EAAK9nZ,EAAG,aAAa1J,OAAOwvZ,EAAc,KAAKxvZ,OAAOwvZ,EAAc,SAASxvZ,SAASypB,EAAO,GAAI,KAAKzpB,OAAOuxZ,EAAK9nZ,EAAG,KAAKzJ,OAAOuxZ,EAAK7nZ,EAAG,aAAa1J,OAAO0uC,EAAa,KAAK1uC,OAAO0uC,EAAa,OAAO1uC,SAAS0xZ,EAAgB,KAAM,KAAK1xZ,SAASypB,EAAO,GAAI,KAAKzpB,OAAOmxZ,EAAK1nZ,EAAG,KAAKzJ,OAAOmxZ,EAAKznZ,EAAG,aAAa1J,OAAOwvZ,EAAc,KAAKxvZ,OAAOwvZ,EAAc,SAASxvZ,SAASypB,EAAO,GAAI,KAAKzpB,OAAOoxZ,EAAK3nZ,EAAG,KAAKzJ,OAAOoxZ,EAAK1nZ,EAAG,UAEld2oB,GAAQ,IAAIryB,OAAOotC,EAAI,KAAKptC,OAAOqtC,EAAI,KAGzC,OAAOhb,EAuCMs/X,CAAoB,CACzBvkX,GAAIA,EACJC,GAAIA,EACJqB,YAAaA,EACbC,YAAaA,EACb6gX,aAAc9nZ,KAAKC,IAAI26T,EAAIkuF,EAAc,GACzCD,kBAAmBA,EACnBd,iBAAkBA,EAClBthX,WAAYA,EACZC,SAAUA,IAGL6hX,EAAc,CACnB7iX,GAAIA,EACJC,GAAIA,EACJqB,YAAaA,EACbC,YAAaA,EACbR,WAAYA,EACZC,SAAUA,IAIMlyC,IAAM0B,cAAc,OAAQkvC,EAAS,GAAIxe,YAAYpxB,KAAKgB,OAAO,GAAO,CAC1FpC,UAAW6zC,EACX5vB,EAAGsS,UAlPmEqa,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAuP3Ku5W,EAjEwB,CAkE/BliR,iBACFkiR,EAAO7wS,aAAe,CACpBnoE,GAAI,EACJC,GAAI,EACJqB,YAAa,EACbC,YAAa,EACbR,WAAY,EACZC,SAAU,EACVohX,aAAc,EACde,mBAAmB,EACnBd,kBAAkB,I,6BCxQpB,IAAIpgX,EAAMhzC,OAAOS,UAAUC,eACvB+C,EAAS,IASb,SAASsyN,KA4BT,SAASC,EAAG/iN,EAAI6hB,EAAS4I,GACvB78B,KAAKoS,GAAKA,EACVpS,KAAKi0B,QAAUA,EACfj0B,KAAK68B,KAAOA,IAAQ,EActB,SAASoL,EAAYutG,EAAS9hH,EAAOthB,EAAI6hB,EAAS4I,GAChD,GAAkB,oBAAPzqB,EACT,MAAM,IAAI5M,UAAU,mCAGtB,IAAIswF,EAAW,IAAIq/H,EAAG/iN,EAAI6hB,GAAWuhH,EAAS34G,GAC1Cu4L,EAAMxyN,EAASA,EAAS8wB,EAAQA,EAMpC,OAJK8hH,EAAQn0E,QAAQ+zJ,GACX5/E,EAAQn0E,QAAQ+zJ,GAAKhjN,GAC1BojI,EAAQn0E,QAAQ+zJ,GAAO,CAAC5/E,EAAQn0E,QAAQ+zJ,GAAMt/H,GADhB0/C,EAAQn0E,QAAQ+zJ,GAAKxrN,KAAKksF,IADlC0/C,EAAQn0E,QAAQ+zJ,GAAOt/H,EAAU0/C,EAAQI,gBAI7DJ,EAUT,SAAS6/E,EAAW7/E,EAAS4/E,GACI,MAAzB5/E,EAAQI,aAAoBJ,EAAQn0E,QAAU,IAAI6zJ,SAC5C1/E,EAAQn0E,QAAQ+zJ,GAU9B,SAAS5uH,IACPxmG,KAAKqhE,QAAU,IAAI6zJ,EACnBl1N,KAAK41I,aAAe,EAxElBz2I,OAAOy2B,SACTs/L,EAAOt1N,UAAYT,OAAOy2B,OAAO,OAM5B,IAAIs/L,GAAShwN,YAAWtC,GAAS,IA2ExC4jG,EAAa5mG,UAAU03I,WAAa,WAClC,IACInB,EACA96H,EAFAmzC,EAAQ,GAIZ,GAA0B,IAAtBxuD,KAAK41I,aAAoB,OAAOpnF,EAEpC,IAAKnzC,KAAS86H,EAASn2I,KAAKqhE,QACtBlvB,EAAIryC,KAAKq2I,EAAQ96H,IAAOmzC,EAAM5kD,KAAKhH,EAASyY,EAAK/X,MAAM,GAAK+X,GAGlE,OAAIlc,OAAOiB,sBACFouD,EAAM1rD,OAAO3D,OAAOiB,sBAAsB+1I,IAG5C3nF,GAUTg4C,EAAa5mG,UAAU4oC,UAAY,SAAmB9U,GACpD,IAAI0hM,EAAMxyN,EAASA,EAAS8wB,EAAQA,EAChC4hM,EAAWt1N,KAAKqhE,QAAQ+zJ,GAE5B,IAAKE,EAAU,MAAO,GACtB,GAAIA,EAASljN,GAAI,MAAO,CAACkjN,EAASljN,IAElC,IAAK,IAAI7S,EAAI,EAAGu7C,EAAIw6K,EAAS51N,OAAQ61N,EAAK,IAAI5nN,MAAMmtC,GAAIv7C,EAAIu7C,EAAGv7C,IAC7Dg2N,EAAGh2N,GAAK+1N,EAAS/1N,GAAG6S,GAGtB,OAAOmjN,GAUT/uH,EAAa5mG,UAAU2rG,cAAgB,SAAuB73E,GAC5D,IAAI0hM,EAAMxyN,EAASA,EAAS8wB,EAAQA,EAChC8U,EAAYxoC,KAAKqhE,QAAQ+zJ,GAE7B,OAAK5sL,EACDA,EAAUp2B,GAAW,EAClBo2B,EAAU9oC,OAFM,GAYzB8mG,EAAa5mG,UAAUyoC,KAAO,SAAc3U,EAAO4gC,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAI0gK,EAAMxyN,EAASA,EAAS8wB,EAAQA,EAEpC,IAAK1zB,KAAKqhE,QAAQ+zJ,GAAM,OAAO,EAE/B,IAEIp5M,EACAzc,EAHAipC,EAAYxoC,KAAKqhE,QAAQ+zJ,GACzBvxN,EAAMpE,UAAUC,OAIpB,GAAI8oC,EAAUp2B,GAAI,CAGhB,OAFIo2B,EAAU3L,MAAM78B,KAAKmoC,eAAezU,EAAO8U,EAAUp2B,QAAI1T,GAAW,GAEhEmF,GACN,KAAK,EAAG,OAAO2kC,EAAUp2B,GAAGtS,KAAK0oC,EAAUvU,UAAU,EACrD,KAAK,EAAG,OAAOuU,EAAUp2B,GAAGtS,KAAK0oC,EAAUvU,QAASqgC,IAAK,EACzD,KAAK,EAAG,OAAO9rB,EAAUp2B,GAAGtS,KAAK0oC,EAAUvU,QAASqgC,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAO/rB,EAAUp2B,GAAGtS,KAAK0oC,EAAUvU,QAASqgC,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOhsB,EAAUp2B,GAAGtS,KAAK0oC,EAAUvU,QAASqgC,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOjsB,EAAUp2B,GAAGtS,KAAK0oC,EAAUvU,QAASqgC,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKn1D,EAAI,EAAGyc,EAAO,IAAIrO,MAAM9J,EAAK,GAAItE,EAAIsE,EAAKtE,IAC7Cyc,EAAKzc,EAAI,GAAKE,UAAUF,GAG1BipC,EAAUp2B,GAAGrS,MAAMyoC,EAAUvU,QAASjY,OACjC,CACL,IACIlT,EADApJ,EAAS8oC,EAAU9oC,OAGvB,IAAKH,EAAI,EAAGA,EAAIG,EAAQH,IAGtB,OAFIipC,EAAUjpC,GAAGs9B,MAAM78B,KAAKmoC,eAAezU,EAAO8U,EAAUjpC,GAAG6S,QAAI1T,GAAW,GAEtEmF,GACN,KAAK,EAAG2kC,EAAUjpC,GAAG6S,GAAGtS,KAAK0oC,EAAUjpC,GAAG00B,SAAU,MACpD,KAAK,EAAGuU,EAAUjpC,GAAG6S,GAAGtS,KAAK0oC,EAAUjpC,GAAG00B,QAASqgC,GAAK,MACxD,KAAK,EAAG9rB,EAAUjpC,GAAG6S,GAAGtS,KAAK0oC,EAAUjpC,GAAG00B,QAASqgC,EAAIC,GAAK,MAC5D,KAAK,EAAG/rB,EAAUjpC,GAAG6S,GAAGtS,KAAK0oC,EAAUjpC,GAAG00B,QAASqgC,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKx4C,EAAM,IAAKlT,EAAI,EAAGkT,EAAO,IAAIrO,MAAM9J,EAAK,GAAIiF,EAAIjF,EAAKiF,IACxDkT,EAAKlT,EAAI,GAAKrJ,UAAUqJ,GAG1B0/B,EAAUjpC,GAAG6S,GAAGrS,MAAMyoC,EAAUjpC,GAAG00B,QAASjY,IAKpD,OAAO,GAYTwqF,EAAa5mG,UAAUooC,GAAK,SAAYtU,EAAOthB,EAAI6hB,GACjD,OAAOgU,EAAYjoC,KAAM0zB,EAAOthB,EAAI6hB,GAAS,IAY/CuyE,EAAa5mG,UAAUi9B,KAAO,SAAcnJ,EAAOthB,EAAI6hB,GACrD,OAAOgU,EAAYjoC,KAAM0zB,EAAOthB,EAAI6hB,GAAS,IAa/CuyE,EAAa5mG,UAAUuoC,eAAiB,SAAwBzU,EAAOthB,EAAI6hB,EAAS4I,GAClF,IAAIu4L,EAAMxyN,EAASA,EAAS8wB,EAAQA,EAEpC,IAAK1zB,KAAKqhE,QAAQ+zJ,GAAM,OAAOp1N,KAC/B,IAAKoS,EAEH,OADAijN,EAAWr1N,KAAMo1N,GACVp1N,KAGT,IAAIwoC,EAAYxoC,KAAKqhE,QAAQ+zJ,GAE7B,GAAI5sL,EAAUp2B,GAEVo2B,EAAUp2B,KAAOA,GACfyqB,IAAQ2L,EAAU3L,MAClB5I,GAAWuU,EAAUvU,UAAYA,GAEnCohM,EAAWr1N,KAAMo1N,OAEd,CACL,IAAK,IAAI71N,EAAI,EAAG42I,EAAS,GAAIz2I,EAAS8oC,EAAU9oC,OAAQH,EAAIG,EAAQH,KAEhEipC,EAAUjpC,GAAG6S,KAAOA,GACnByqB,IAAS2L,EAAUjpC,GAAGs9B,MACtB5I,GAAWuU,EAAUjpC,GAAG00B,UAAYA,IAErCkiH,EAAOvsI,KAAK4+B,EAAUjpC,IAOtB42I,EAAOz2I,OAAQM,KAAKqhE,QAAQ+zJ,GAAyB,IAAlBj/E,EAAOz2I,OAAey2I,EAAO,GAAKA,EACpEk/E,EAAWr1N,KAAMo1N,GAGxB,OAAOp1N,MAUTwmG,EAAa5mG,UAAUwoC,mBAAqB,SAA4B1U,GACtE,IAAI0hM,EAUJ,OARI1hM,GACF0hM,EAAMxyN,EAASA,EAAS8wB,EAAQA,EAC5B1zB,KAAKqhE,QAAQ+zJ,IAAMC,EAAWr1N,KAAMo1N,KAExCp1N,KAAKqhE,QAAU,IAAI6zJ,EACnBl1N,KAAK41I,aAAe,GAGf51I,MAMTwmG,EAAa5mG,UAAUsoC,IAAMs+D,EAAa5mG,UAAUuoC,eACpDq+D,EAAa5mG,UAAUqoC,YAAcu+D,EAAa5mG,UAAUooC,GAK5Dw+D,EAAagvH,SAAW5yN,EAKxB4jG,EAAaA,aAAeA,EAM1BzkG,EAAOC,QAAUwkG,G,cC3TnBzkG,EAAOC,QALP,SAAc0D,GACZ,IAAIhG,EAAkB,MAATgG,EAAgB,EAAIA,EAAMhG,OACvC,OAAOA,EAASgG,EAAMhG,EAAS,QAAKhB,I,6BChBtC,kCAKO,IAAI2vZ,EAAQ,WACjB,OAAO,MAETA,EAAM5oY,YAAc,QACpB4oY,EAAMh2S,aAAe,CACnBz4F,eAAe,EACf4G,MAAM,EACN86F,YAAa,SACb3/G,MAAO,EACPD,OAAQ,GACR8/G,QAAQ,EACR+1M,QAAS,EACT/2S,UAAW,EACX9Z,KAAM,WACN0d,OAAQ,CAAC,EAAG,QACZotC,QAAS,CACP1oC,KAAM,EACNC,MAAO,GAETmH,mBAAmB,EACnBtF,MAAO,OACP62F,UAAU,EACVnyF,yBAAyB,I,6BC3B3B,kCAGO,IAAIg/X,EAAQ,WACjB,OAAO,MAETA,EAAM7oY,YAAc,QACpB6oY,EAAMj2S,aAAe,CACnB/oF,yBAAyB,EACzB1P,eAAe,EACf4G,MAAM,EACN86F,YAAa,OACb3/G,MAAO,GACPD,OAAQ,EACR8/G,QAAQ,EACRg2M,QAAS,EACTh3S,UAAW,EACX9Z,KAAM,SACN0d,OAAQ,CAAC,EAAG,QACZotC,QAAS,CACPugD,IAAK,EACLmP,OAAQ,GAEVhxF,mBAAmB,EACnBtF,MAAO,OACP62F,UAAU,I,6BCzBZ,6CAwSO,SAASizS,EAAgB1zZ,GAC9B,OAAOF,YAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,YAAY,KAAO,OAAO,OAAS,eAAe,YAAc,IAAI,cAAgB,QAAQ,eAAiB,SAAS,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,6DAA6D,CAAC,IAAM,WAAW,KAAO,CAAC,OAAS,mBAAmB,CAAC,IAAM,OAAO,KAAO,CAAC,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,QAA5WA,CAAqXE,K,iD7W1QnX9B,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,GAEJH,EAASa,MAAMC,KAAMP,YA6HzB,SAASk1Z,EAAc7hY,EAAIvtB,EAAMoiD,GACpC,GAAIA,GAA6B,IAArBloD,UAAUC,OAAc,IAAK,IAA4B6xB,EAAxBhyB,EAAI,EAAGu7C,EAAIv1C,EAAK7F,OAAYH,EAAIu7C,EAAGv7C,KACxEgyB,GAAQhyB,KAAKgG,IACRgsB,IAAIA,EAAK5jB,MAAM/N,UAAU0D,MAAMxD,KAAKyF,EAAM,EAAGhG,IAClDgyB,EAAGhyB,GAAKgG,EAAKhG,IAGrB,OAAOuzB,EAAGhwB,OAAOyuB,GAAMhsB,G8WtKpB,IAAM,EAAe,SAAC,GAC3B,OAAO,EAAuB,QAAQ,yBAA0B,SCiB5D,EAAmB,CAAE,EAAG,IAAM,EAAG,IAAS,EAAG,KCFtC,EAAa,SAAC,G,IACzB,EAAK,QACL,0BAAc,MAAG,IAAG,EACpB,4BAAgB,MAAG,IAAG,EACtB,yBAAa,OAAO,EACpB,yBAAa,MAAG,EAAC,EACjB,8BAAkB,OAAO,EACzB,gCAAoB,OAAQ,EAC5B,kBAAM,MAAG,GAAE,EACX,sBAEM,QAFW,MAAG,SAAC,GAAa,UAAQ,GAEC,GAE3C,GAAyB,MAArB,EACF,OAAO,EAGT,IAAM,EAAgB,EAAuB,GAAK,CAAC,IAAK,IAAK,KAEvD,EADM,IAAI,OAAO,mBAAmB,EAAa,GAAO,KACvC,KAAK,GAGtB,EAA8B,OAAO,WAAW,EAAa,IAAW,KAAK,IAAU,GAAtF,EAAe,KAAE,EAAQ,KAM1B,EC5CwB,SAAC,EAAe,uBAC9C,IAAM,EAAM,IAAI,OAAO,EAAa,GAAY,KAChD,OAAO,EAAM,QAAQ,EAAK,ID0CA,CALJ,EAClB,EACE,EAAiB,QAAQ,EAAiB,IAAI,OAAO,GACrD,EAAiB,QAAQ,EAAQ,IACnC,EACsD,GACpD,EE7C0B,SAAC,EAAe,GAChD,IAAM,EAAQ,EAAa,EAAW,KAAK,KACrC,EAAM,IAAI,OAAO,QAAQ,EAAK,IAAK,MACzC,OAAO,EAAM,QAAQ,EAAK,IF0CE,CAAmB,EAAiB,GAC9D,EACA,GACG,IAGD,EAAY,EAEhB,IAAK,EAAsB,CAEzB,GAAI,EAAc,MAAK,SAAC,GAAW,WAAW,EAAoB,iBAChE,MAAO,GAET,IAAM,EDnCoB,SAAC,EAAe,uBAC5C,IAAM,EAAM,IAAI,OAAO,SAAS,EAAa,GAAiB,kBAAmB,KAC3E,EAAQ,EAAM,MAAM,GAE1B,GAAI,EAAO,CACA,MAAkB,EAAZ,GAAI,EAAQ,EAAJ,GACjB,EAAa,EAAQ,EAAK,eAEhC,OAAO,OAAO,EAAO,QAAQ,EAAkB,MAAQ,GC2BxC,CAAe,EAAqB,GAC/C,IACF,EAAY,OAAO,IAIvB,IAAM,EAAkB,GAAc,EAAqB,IAAM,GAEjE,GAAI,GAAoB,EAAU,SAAS,GAAmB,CACtD,MAAkB,EAAoB,MAAM,GAA3C,EAAG,KAAE,EAAQ,KACd,EAAkB,GAAiB,EAAW,EAAS,MAAM,EAAG,GAAiB,EAGvF,MAAO,GAAG,EAAkB,GAFJ,EAAgB,GAAG,EAAmB,EAAoB,IAKpF,MAAO,GAAG,EAAkB,GGzEjB,EAAY,SACvB,EACA,G,IAAE,0BAAc,MAAG,IAAG,EAAE,4BAAgB,MAAG,IAAG,EAExC,EAAY,IAAI,OACpB,SAAS,EAAa,GAAkB,EAAa,GAAiB,UAElE,EAAc,EAAM,MAAM,GAChC,OAAO,EAAc,EAAY,QAAK,GC6C3B,EAAc,SAAC,GAExB,IAAO,EAML,EANW,MACb,EAKE,EALc,iBAChB,EAIE,EAJQ,WACV,EAGE,EAHU,aACZ,EAEE,EAFS,OAAX,OAAM,MAAG,GAAE,EACX,EACE,EADS,OAAX,OAAM,MAAG,GAAE,EAGb,GAAe,KAAX,QAA4B,IAAX,EACnB,MAAO,GAGT,GAAe,MAAX,EACF,MAAO,IAGT,IAAM,EAAa,IAAI,OAAO,UAAS,EAAY,EAAa,GAAO,IAAM,IAAE,OAAO,KACpF,GAGI,EACiB,MAArB,EACI,EAAwB,EAAQ,EAAkB,GAClD,EAmBA,GAjBkB,EACpB,IAAI,KAAK,aACP,EAAW,OACX,EAAW,SACP,CACE,MAAO,WACP,SAAU,EAAW,SACrB,sBAAuB,GAAgB,EACvC,sBAAuB,SAEzB,GAEN,IAAI,KAAK,kBAAa,EAAW,CAC/B,sBAAuB,GAAgB,EACvC,sBAAuB,MAGC,cAAc,OAAO,IAE/C,EAAY,EAAa,EAAO,GAG9B,EAAa,EAAU,EAAS,KAAO,IAGvC,EAA0B,EAAO,OAAO,KAAO,EAAmB,EAAmB,GAElF,GAAY,EAAM,MAAM,OAAO,mBAAqB,IAA5C,GAkBjB,YAfqB,IAAjB,GAA8B,GAAY,IAE1C,EADE,EAAU,SAAS,GACT,EAAU,QACpB,OAAO,UAAU,EAAa,GAAiB,UAAW,KAC1D,OAAO,GAGL,IAAe,EACL,EAAU,QAAQ,EAAY,GAAG,EAAmB,EAAW,GAE/D,GAAG,EAAY,EAAmB,GAKhD,GAAU,EACL,GAAG,EAAY,EAA0B,EAG9C,GAAc,EACT,EAAU,QAAQ,EAAY,GAAG,EAA0B,GAGhE,GAAc,EACT,EAAU,QAAQ,EAAY,GAAG,EAA0B,GAG7D,CAAC,EAAW,EAAyB,GAAQ,KAAK,KAMrD,EAA0B,SAC9B,EACA,EACA,GAEA,IAAI,EAAW,EAOf,OANI,GAAyC,MAArB,IACtB,EAAW,EAAS,QAAQ,OAAO,EAAa,GAAmB,KAAM,KACrE,GAAmC,MAArB,IAChB,EAAW,IAAI,EAAS,MAAM,KAG3B,GAGH,EAAe,SACnB,EACA,G,IACE,EAAM,SACN,EAAc,iBACd,EAAgB,mBAChB,EAAY,eACZ,kCAAsB,OAAQ,EAMhC,OAAO,EACJ,QACC,SAAC,EAAM,EAAiB,G,IAAf,EAAI,OAAE,EAAK,QAClB,OAAU,IAAN,GAAW,EACA,cAAT,EACK,CAAC,EAAO,GAGJ,aAAT,EACF,OAAW,GAAI,CAAE,IAGZ,CAAC,EAAQ,GAGL,aAAT,EACK,EAAS,EAAI,OAAO,GAAI,CAAE,IAGtB,UAAT,EACM,EAEJ,E,OADI,GAAI,MAAqB,IAAnB,EAA+B,EAAiB,IAInD,YAAT,OACmB,IAAjB,GAA+C,IAAjB,EACzB,EAGT,OAAW,GAAI,MAAuB,IAArB,EAAiC,EAAmB,IAIrE,OAAW,GADA,aAAT,EACa,MAAmB,IAAjB,EAA6B,EAAM,MAAM,EAAG,GAAgB,GAGhE,CAAE,MAEnB,CAAC,KAEF,KAAK,KChNJ,EAA8B,CAClC,eAAgB,GAChB,eAAgB,GAChB,iBAAkB,GAClB,OAAQ,GACR,OAAQ,ICfG,EAAW,SAAC,GAA2B,cAAO,KAAM,MAAM,KAAK,ICe/D,EAAwC,sBAInD,SACE,EAkCA,GAjCE,6BAAa,OAAO,EACpB,8BAAkB,OAAO,EACzB,EAAE,KACF,EAAI,OACJ,EAAS,YACT,EAAW,cACX,EAAa,gBACb,EAAY,eACZ,oBAAQ,OAAQ,EACL,EAAa,YACjB,EAAS,QAChB,EAAa,gBACb,EAAkB,qBAClB,EAAW,cACX,EAAY,eACZ,EAAM,SACN,EAAM,SACN,EAAU,aACV,EAAI,OACJ,EAAG,MACH,EAAG,MACH,kCAAsB,OAAQ,EAC9B,gCAAoB,OAAQ,EACV,EAAiB,mBACnB,EAAe,iBAC/B,EAAQ,WACR,EAAO,UACP,EAAM,SACN,EAAS,YACT,EAAO,UACP,EAAiB,oBACd,EvXVF,SAAgBjG,EAAGY,GACtB,IAAIb,EAAI,GACR,IAAK,IAAIM,KAAKL,EAAOH,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,IAAMO,EAAEC,QAAQR,GAAK,IAC9EN,EAAEM,GAAKL,EAAEK,IACb,GAAS,MAALL,GAAqD,oBAAjCH,OAAOiB,sBACtB,KAAIb,EAAI,EAAb,IAAgBI,EAAIR,OAAOiB,sBAAsBd,GAAIC,EAAII,EAAED,OAAQH,IAC3DW,EAAEC,QAAQR,EAAEJ,IAAM,GAAKJ,OAAOS,UAAUS,qBAAqBP,KAAKR,EAAGK,EAAEJ,MACvEF,EAAEM,EAAEJ,IAAMD,EAAEK,EAAEJ,KAE1B,OAAOF,EuXCG,GAhCV,4ZAoCA,GAAI,GAAqB,EAAS,GAChC,MAAM,IAAI,MAAM,uCAGlB,GAAI,GAAmB,EAAS,GAC9B,MAAM,IAAI,MAAM,qCAGlB,IAAM,EAAe,mBAAQ,WAAM,OF3CR,SAAC,GACxB,MAAuB,GAAc,GAAnC,EAAM,SAAE,EAAQ,WAKxB,OAJwB,EACpB,IAAI,KAAK,aAAa,EAAQ,EAAW,CAAE,SAAQ,EAAE,MAAO,iBAAe,GAC3E,IAAI,KAAK,cAEU,cAAc,QAAQ,QAAO,SAAC,EAAM,EAAM,GAC/D,MAAkB,aAAd,EAAK,KAEL,OAAY,GADJ,IAAN,EACc,CAAE,eAAgB,EAAK,MAAO,OAAQ,EAAK,OAE3C,CAAE,eAAgB,EAAK,MAAO,OAAQ,EAAK,QAG7C,UAAd,EAAK,KACP,OAAY,GAAI,CAAE,eAAgB,EAAK,QAEvB,YAAd,EAAK,KACP,OAAY,GAAI,CAAE,iBAAkB,EAAK,QAGpC,IACN,GEqBkC,CAAgB,KAAa,CAAC,IAC3D,EAAmB,GAAqB,EAAa,kBAAoB,GACzE,EAAiB,GAAmB,EAAa,gBAAkB,GAEzE,GACE,GACA,GACA,IAAqB,IACM,IAA3B,EAEA,MAAM,IAAI,MAAM,yDAGlB,IAAM,EAAkD,CACtD,iBAAgB,EAChB,eAAc,EACd,uBAAsB,EACtB,WAAU,EACV,OAAQ,GAAU,EAAa,OAC/B,OAAQ,GAGJ,EAAgD,CACpD,iBAAgB,EAChB,eAAc,EACd,cAAa,EACb,cAAe,GAAiB,GAAsB,EACtD,mBAAkB,EAClB,qBAAoB,EACpB,OAAQ,GAAU,EAAa,OAC/B,kBAAiB,GAGb,OACa,IAAjB,GAA+C,OAAjB,EAC1B,EAAW,OAAM,GAAkB,CAAE,aAAY,EAAE,MAAO,OAAO,WACnD,IAAd,GAAyC,OAAd,EAC3B,EAAW,OAAM,GAAkB,CAAE,aAAY,EAAE,MAAO,OAAO,MACjE,GAEA,EAA8B,mBAAS,GAAtC,GAAU,KAAE,GAAa,KAC1B,GAAoB,oBAAS,GAA5B,GAAK,MAAE,GAAQ,MAChB,GAAsB,mBAAS,GAA9B,GAAM,MAAE,GAAS,MAClB,GAAgC,mBAAS,GAAxC,GAAW,MAAE,GAAc,MAC5B,GAAoC,mBAAwB,MAA3D,GAAa,MAAE,GAAgB,MAChC,GAAW,GAAO,iBAAyB,MAK3C,GAAgB,SAAC,EAAe,GACpC,IAAS,GAEH,MCzGoB,SAAC,G,IAC/B,EAAc,iBACd,EAAK,QACL,EAAa,gBACb,EAAU,aACV,EAAc,iBAKV,EAAiB,EACjB,EAAgB,EACpB,GAAI,GAAc,EAAgB,CAChC,IAAM,EAAa,EAAM,MAAM,IAY/B,MAVsB,cAAlB,GAAiC,EAAW,KAAoB,IAClE,EAAW,OAAO,EAAiB,EAAG,GACtC,GAAkB,GAGE,WAAlB,GAA8B,EAAW,KAAoB,IAC/D,EAAW,OAAO,EAAgB,GAClC,GAAkB,GAGb,CAAE,cADT,EAAgB,EAAW,KAAK,IACR,eAAc,GAGxC,MAAO,CAAE,cAAa,EAAE,eAAgB,GD6EM,CAAiB,CACzD,eAAc,EACd,MAAK,EACL,cAAa,GACb,WAAU,GACV,eAAc,IALR,EAAa,gBAAE,EAAc,iBAQ/B,EAAc,EAAU,GAAG,MAAO,GAAkB,IAE1D,KAAI,GAAiB,EAAY,QAAQ,KAAM,IAAI,OAAS,GAA5D,CAIA,GAAoB,KAAhB,GAAsC,MAAhB,GAAuB,IAAgB,EAG/D,OAFA,GAAiB,OAAc,EAAW,EAAM,CAAE,MAAO,KAAM,UAAW,GAAI,MAAO,UACrF,GAAc,GAIhB,IAAM,EAAc,WAAW,EAAY,QAAQ,EAAkB,MAE/D,EAAiB,EAAW,GAChC,MAAO,GACJ,IAGL,QAAuB,IAAnB,GAAmD,OAAnB,EAAyB,CAE3D,IAAI,EAAY,GAAkB,EAAe,OAAS,EAAM,QAChE,EAAY,GAAa,EAAK,EAAS,EAAO,OAAS,EAAK,EAE5D,GAAU,GACV,GAAe,GAAc,GAK/B,GAFA,GAAc,GAEV,EAMF,EAAc,EAAa,EALiB,CAC1C,MAAO,EACP,UAAW,EACX,MAAO,MA+Ib,qBAAU,WAGN,IACe,MAAf,IACA,IACoB,kBAAb,IACP,GAAS,SAET,GAAS,QAAQ,kBAAkB,GAAQ,MAE5C,CAAC,GAAY,GAAQ,GAAU,GAAO,KAMzC,IAiBM,GAAU,GACd,KAAM,OACN,UAAW,UACX,GAAE,EACF,KAAI,EACJ,UAAS,EACT,SA9KqB,SAAC,GAEpB,MACE,EAD+B,OAAvB,EAAK,QAAE,EAAc,iBAGjC,GAAc,EAAO,GAErB,GAAY,EAAS,IAwKrB,OAxJmB,SAAC,GAER,MACR,EAAK,OADQ,MAGX,EAAY,EAAU,GAAG,MAAK,GAAK,IAEzC,GAAkB,MAAd,IAAsB,EAGxB,OAFA,GAAc,SACd,GAAU,EAAO,IAInB,IAAM,EE5MqB,SAC/B,EACA,EACA,GAEA,GAAI,GAAsB,EAAM,OAAS,EAAG,CAC1C,GAAI,EAAM,SAAS,GAAmB,CAC9B,MAAkB,EAAM,MAAM,GAA7B,EAAG,KACV,IADY,EAAQ,MACP,OAAS,EACpB,MAAO,GAAG,EAAM,EAAmB,EAAS,MAAM,EAAG,GAIzD,IAOgB,EAPV,EACJ,EAAM,OAAS,EACX,IAAI,OAAO,cAAc,EAAkB,MAC3C,IAAI,OAAO,eAEX,EAAQ,EAAM,MAAM,GAC1B,GAAI,EAEF,MAAO,IADE,EAAiB,EAAd,IACI,EADU,EAAJ,GAK1B,OAAO,EFmLmB,CAAkB,EAAW,EAAkB,GAE/D,EG9MgB,SAC1B,EACA,EACA,GAEA,QAHA,oBAGqB,IAAjB,GAAwC,KAAV,QAA0B,IAAV,EAChD,OAAO,EAGT,IAAK,EAAM,MAAM,OACf,MAAO,GAGH,MAAkB,EAAM,MAAM,GAA7B,EAAG,KAAE,EAAQ,KAEpB,GAAqB,IAAjB,EACF,OAAO,EAGT,IAAI,EAAW,GAAY,GAE3B,GAAI,EAAS,OAAS,EACpB,KAAO,EAAS,OAAS,GACvB,GAAY,SAGd,EAAW,EAAS,MAAM,EAAG,GAG/B,MAAO,GAAG,EAAM,EAAmB,EHiLd,CACf,EACA,OACiB,IAAjB,EAA6B,EAAe,GAGxC,EAAc,WAAW,EAAS,QAAQ,EAAkB,MAE5D,EAAiB,EAAW,OAC7B,GAAkB,CACrB,MAAO,KAGL,GACF,EAAc,EAAU,EAAM,CAC5B,MAAO,EACP,UAAW,EACX,MAAO,IAIX,GAAc,GAEd,GAAU,EAAO,IAmHjB,QAnKoB,SAAC,GAErB,OADA,GAAW,EAAQ,GACZ,GAAa,GAAW,OAAS,GAkKxC,UA5GsB,SAAC,GACf,MAAQ,EAAL,IAIX,GAFA,GAAiB,GAEb,IAAiB,YAAR,GAA6B,cAAR,GAAsB,CACtD,EAAM,iBACN,GAAU,GAAW,QAErB,IAAM,EACJ,gBACgB,IAAd,GAAyC,OAAd,EACvB,OAAO,GAAW,QAAQ,EAAkB,KAC5C,EAAU,GAAG,MAAO,IAAe,MACpC,EACD,EAAmB,YAAR,EAAoB,EAAe,EAAO,EAAe,EAE1E,QAAY,IAAR,GAAqB,EAAW,EAClC,OAGF,QAAY,IAAR,GAAqB,EAAW,EAClC,OAGF,IAAM,EAAc,OAAO,GAAM,SAAS,KACtC,OAAO,OAAO,GAAM,MAAM,KAAK,GAAG,aAClC,EAEJ,GACE,OAAO,EAAc,EAAS,QAAQ,GAAe,GAAU,QAC7D,IACA,IAKN,GAAa,EAAU,IAwEvB,QAhEoB,SAAC,GAEnB,MAEE,EAFC,IACc,EACf,EAAK,cADwB,eAEjC,GAAY,YAAR,GAA6B,cAAR,GAAsC,MAAf,GAAoB,CAClE,IAAM,EAAS,EAAU,GAAY,CAAE,eAAc,EAAE,iBAAgB,IAEvE,GAAI,GAAU,GAAkB,EAAiB,GAAW,OAAS,EAAO,QAEtE,IAAgC,kBAAb,IAAyB,GAAS,QAAS,CAChE,IAAM,EAAY,GAAW,OAAS,EAAO,OAC7C,GAAS,QAAQ,kBAAkB,EAAW,IAKpD,GAAW,EAAQ,IAgDnB,YAAW,EACX,SAAQ,EACR,WA5BgB,IAAd,GACc,OAAd,GACe,MAAf,IACE,GAAoB,KAAe,EAShC,GAPE,EAAW,OACb,GAAkB,CACrB,aAAc,QAAQ,EAAY,EAClC,MAAO,OAAO,MAqBlB,IAAK,IACF,GAGL,GAAI,EAAa,CACf,IAAM,GAAc,EACpB,OAAO,kBAAC,GAAW,KAAK,KAG1B,OAAO,+BAAW,QAItB,EAAc,YAAc,gB,wBI3W5B,wBACE,IAAIu1Z,EAAQ3yZ,EAAQ,MAChBgxI,EAAOhxI,EAAQ,KAAWgxI,KAC1BujQ,EAAMv0Y,EAAQ,KAAWu0Y,IAmE7BziD,EAAM,SAAU95U,EAAS5H,GACvB,IAAIwiZ,EAAcD,EAAME,aAjEnB,SAAU76Y,GAEXA,EAAQ3D,aAAe9N,OACzByR,EAAUg5H,EAAKsjQ,cAAct8X,GACJ,qBAAXrV,GAAoD,mBAAnBA,EAAOyB,UAA0BzB,EAAOyB,SAAS4T,GAChGA,EAAUtM,MAAM/N,UAAU0D,MAAMxD,KAAKma,EAAS,GACtCtM,MAAMjJ,QAAQuV,KACtBA,EAAUA,EAAQpT,YAIpB,IAAIiB,EAAK8sZ,EAAMG,aAAa96Y,GACxB6gC,EAAsB,EAAjB7gC,EAAQva,OACbqgC,EAAK,GACLi1X,EAAM,WACNC,GAAM,UACNC,GAAM,WACNC,EAAM,UACNC,GAAM,WAGVttZ,EAAEgzC,GAAK,IAAM,KAAS,GAAKA,EAAI,GAC/BhzC,EAA0B,IAAtBgzC,EAAI,KAAO,GAAM,IAAWA,EAEhC,IAAK,IAAIv7C,EAAI,EAAGA,EAAIuI,EAAEpI,OAAQH,GAAK,GAAI,CAOrC,IANA,IAAI+M,EAAI0oZ,EACJntZ,EAAIotZ,EACJ9qZ,EAAI+qZ,EACJryY,EAAIsyY,EACJj1Z,EAAIk1Z,EAECtsZ,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAE3B,GAAIA,EAAI,GACNi3B,EAAEj3B,GAAKhB,EAAEvI,EAAIuJ,OACV,CACH,IAAItJ,EAAIugC,EAAEj3B,EAAI,GAAKi3B,EAAEj3B,EAAI,GAAKi3B,EAAEj3B,EAAI,IAAMi3B,EAAEj3B,EAAI,IAChDi3B,EAAEj3B,GAAMtJ,GAAK,EAAMA,IAAM,GAG3B,IAAIH,GAAM21Z,GAAM,EAAMA,IAAO,IAAOI,GAAMr1X,EAAEj3B,KAAO,IAC3CA,EAAI,GAA4B,YAAtBmsZ,EAAKC,GAAMD,EAAKE,GAC1BrsZ,EAAI,GAAsB,YAAhBmsZ,EAAKC,EAAKC,GACpBrsZ,EAAI,IAAMmsZ,EAAKC,EAAKD,EAAKE,EAAKD,EAAKC,GAAM,YAC/BF,EAAKC,EAAKC,GAAM,WAElCC,EAAKD,EACLA,EAAKD,EACLA,EAAMD,GAAM,GAAOA,IAAO,EAC1BA,EAAKD,EACLA,EAAK31Z,EAGP21Z,GAAM1oZ,EACN2oZ,GAAMptZ,EACNqtZ,GAAM/qZ,EACNgrZ,GAAMtyY,EACNuyY,GAAMl1Z,EAGR,MAAO,CAAC80Z,EAAIC,EAAIC,EAAIC,EAAIC,GAKa5vF,CAAKvrT,IAC1C,OAAO5H,GAAWA,EAAQgjZ,QAAUR,EAChCxiZ,GAAWA,EAAQijZ,SAAW9e,EAAIvpV,cAAc4nW,GAChDD,EAAMW,WAAWV,IAGvB9gE,EAAIyhE,WAAa,GACjBzhE,EAAI0hE,YAAc,GAElB1zZ,EAAOC,QAAU+xV,EAhFnB,K,qDCAA,6CA2oCO,SAAS2hE,EAAe10Z,GAC7B,OAAOF,YAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,0TAA0T,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,kVAA7aA,CAAgwBE,K,6BC5oCzwB,6CAsxDO,SAAS20Z,EAAU30Z,GACxB,OAAOF,YAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,aAAa,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,oNAAvFA,CAA4SE,K,kHCvxDrT,SAASywB,EAAQjuB,GAAmV,OAAtOiuB,EAArD,oBAAX1lB,QAAoD,kBAApBA,OAAOkP,SAAmC,SAAiBzX,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXuI,QAAyBvI,EAAI8S,cAAgBvK,QAAUvI,IAAQuI,OAAOnM,UAAY,gBAAkB4D,GAAiBiuB,EAAQjuB,GAEnX,SAAS2rG,EAAgB7/D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAMhH,SAASgnI,EAA2B/yH,EAAM3Z,GAAQ,OAAIA,GAA2B,WAAlB2xB,EAAQ3xB,IAAsC,oBAATA,EAEpG,SAAgC2Z,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIk5B,eAAe,6DAAgE,OAAOl5B,EAFb6yC,CAAuB7yC,GAAtC3Z,EAInI,SAASwpR,EAAiBC,GAAS,IAAIC,EAAwB,oBAAR5yP,IAAqB,IAAIA,SAAQl4B,EAA8nB,OAAnnB4qR,EAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAMlIn3Q,EANuKm3Q,GAMjG,IAAzD/iP,SAAS3/B,SAAS/G,KAAKsS,GAAIjS,QAAQ,kBAN+H,OAAOopR,EAMjN,IAA2Bn3Q,EAN6L,GAAqB,oBAAVm3Q,EAAwB,MAAM,IAAI/jR,UAAU,sDAAyD,GAAsB,qBAAXgkR,EAAwB,CAAE,GAAIA,EAAOr3O,IAAIo3O,GAAQ,OAAOC,EAAOjwP,IAAIgwP,GAAQC,EAAOl4Q,IAAIi4Q,EAAOE,GAAY,SAASA,IAAY,OAAOC,EAAWH,EAAO9pR,UAAWmzC,EAAgB5yC,MAAMsW,aAAgK,OAAhJmzQ,EAAQ7pR,UAAYT,OAAOy2B,OAAO2zP,EAAM3pR,UAAW,CAAE0W,YAAa,CAAEnU,MAAOsnR,EAASpmQ,YAAY,EAAOM,UAAU,EAAMzX,cAAc,KAAkB2/H,EAAgB49I,EAASF,IAAkBD,EAAiBC,GAE9uB,SAASG,EAAWC,EAAQ3tQ,EAAMutQ,GAAqV,OAAzSG,EAA/Br9I,IAA4CJ,QAAQC,UAAiC,SAAoBy9I,EAAQ3tQ,EAAMutQ,GAAS,IAAIj9Q,EAAI,CAAC,MAAOA,EAAE1C,KAAK7J,MAAMuM,EAAG0P,GAAO,IAAsDszB,EAAW,IAA/C9I,SAASsrD,KAAK/xF,MAAM4pR,EAAQr9Q,IAA6F,OAAnDi9Q,GAAO19I,EAAgBv8F,EAAUi6O,EAAM3pR,WAAmB0vC,GAAsBo6O,EAAW3pR,MAAM,KAAMN,WAErZ,SAAS4sI,IAA8B,GAAuB,qBAAZJ,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFj9F,QAAQvvC,UAAU+jC,QAAQ7jC,KAAKmsI,QAAQC,UAAU/8F,QAAS,IAAI,iBAAyB,EAAQ,MAAOjvC,GAAK,OAAO,GAI/T,SAAS2rI,EAAgB1wH,EAAGxb,GAA+G,OAA1GksI,EAAkB1sI,OAAOs2B,gBAAkB,SAAyBta,EAAGxb,GAAsB,OAAjBwb,EAAEjW,UAAYvF,EAAUwb,GAAa0wH,EAAgB1wH,EAAGxb,GAErK,SAASizC,EAAgBz3B,GAAwJ,OAAnJy3B,EAAkBzzC,OAAOs2B,eAAiBt2B,OAAO0zC,eAAiB,SAAyB13B,GAAK,OAAOA,EAAEjW,WAAa/F,OAAO0zC,eAAe13B,IAAcy3B,EAAgBz3B,GAExM,IAAIy6Y,EAA6B,SAAUnqI,IApB3C,SAAmB34O,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvtC,UAAU,sDAAyDstC,EAASlzC,UAAYT,OAAOy2B,OAAOmd,GAAcA,EAAWnzC,UAAW,CAAE0W,YAAa,CAAEnU,MAAO2wC,EAAUnvB,UAAU,EAAMzX,cAAc,KAAe6mC,GAAY84F,EAAgB/4F,EAAUC,GAqBjX45F,CAAUipR,EAAenqI,GAEzB,IAAIjlK,EArBN,SAAsBulB,GAAW,IAAIC,EAA4BK,IAA6B,OAAO,WAAkC,IAAsCzyH,EAAlC0yH,EAAQ15F,EAAgBm5F,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY35F,EAAgB5yC,MAAMsW,YAAasD,EAASqyH,QAAQC,UAAUI,EAAO7sI,UAAW8sI,QAAqB3yH,EAAS0yH,EAAMvsI,MAAMC,KAAMP,WAAc,OAAO+sI,EAA2BxsI,KAAM4Z,IAqB7YkyH,CAAa8pR,GAE1B,SAASA,EAAc37Y,GACrB,IAAIkqG,EAEA0xS,EAAap2Z,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,KACjF+kU,EAAM/kU,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,KAC1EiL,EAAMjL,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,KAa9E,GAXA0vG,EAAgBnvG,KAAM41Z,IAEtBzxS,EAAQqC,EAAO1mH,KAAKE,KAAMia,IACpB67Y,gBAAkBtxF,EACxBrgN,EAAM4xS,iBAAmBrrZ,EACzBy5G,EAAM6xS,aAAeH,EAEH,MAAdA,IACF57Y,GAAW,eAAenX,OAAO+yZ,EAAWhvZ,aAGnC,MAAP29T,EAAa,CACf,IAAIyxF,EAAYzxF,EAAI0xF,UAAU,iBAAmB,MAC7C5hY,EAASkwS,EAAI2xF,YACbltX,EAAMu7R,EAAI4xF,SACVl2T,EAASx1F,EAAMA,EAAI+6F,YAAc,MACjC1E,EAAOr2F,EAAMA,EAAI2rZ,WAAa,GAAK,MACvCp8Y,GAAW,sCAAsCnX,OAAOwxB,EAAQ,WAAWxxB,OAAOmmC,EAAK,qBAAqBnmC,OAAOo9F,EAAQ,qBAAqBp9F,OAAOi+F,EAAM,kBAAkBj+F,OAAOmzZ,EAAW,KAInM,OADA9xS,EAAMlqG,QAAUA,EACTkqG,EAGT,OAAOyxS,EApCwB,CAqCjBtsI,EAAiBjkR,QAElBuwZ,IC9DXU,GAAY,EAIT,SAASl4Y,EAAImsC,GACb+rW,GACLz8X,QAAQzb,IAAImsC,GCPd,SAASxnC,EAAQC,EAAQC,GAAkB,IAAIxf,EAAOtE,OAAOsE,KAAKuf,GAAS,GAAI7jB,OAAOiB,sBAAuB,CAAE,IAAI8iB,EAAU/jB,OAAOiB,sBAAsB4iB,GAAaC,IAAgBC,EAAUA,EAAQ/G,QAAO,SAAUgH,GAAO,OAAOhkB,OAAOikB,yBAAyBJ,EAAQG,GAAKE,eAAgB5f,EAAKmG,KAAK7J,MAAM0D,EAAMyf,GAAY,OAAOzf,EAE9U,SAAS6f,EAAcnW,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAyB,MAAhB9jB,UAAUF,GAAaE,UAAUF,GAAK,GAAQA,EAAI,EAAKwjB,EAAQ5jB,OAAOokB,IAAS,GAAMlQ,SAAQ,SAAUzS,GAAO4iB,EAAgBrW,EAAQvM,EAAK2iB,EAAO3iB,OAAsBzB,OAAOskB,0BAA6BtkB,OAAOukB,iBAAiBvW,EAAQhO,OAAOskB,0BAA0BF,IAAmBR,EAAQ5jB,OAAOokB,IAASlQ,SAAQ,SAAUzS,GAAOzB,OAAO8M,eAAekB,EAAQvM,EAAKzB,OAAOikB,yBAAyBG,EAAQ3iB,OAAe,OAAOuM,EAE7gB,SAASqW,EAAgBhgB,EAAK5C,EAAKuB,GAAiK,OAApJvB,KAAO4C,EAAOrE,OAAO8M,eAAezI,EAAK5C,EAAK,CAAEuB,MAAOA,EAAOkhB,YAAY,EAAMnX,cAAc,EAAMyX,UAAU,IAAkBngB,EAAI5C,GAAOuB,EAAgBqB,EAI3M,SAASgsC,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAU7S,IAAIghF,EAAiB,CACnB6oO,SAAU,KACVi9D,UAAW,KACXjxQ,SAAU,GACVwtE,YAAa,KACb0jM,WAAY,KACZ7rI,WAAY,KACZ8rI,gBAAiB,KACjBlsI,UAAW,KACXzoD,QAAS,KACT40L,sBAAuB,KACvBC,qBAAqB,EACrB91T,QAAS,GACT+1T,cAAc,EACdC,gBAAiB,KACjBC,gBAAiB,KACjBC,cAAe,KACfr8P,UAAWjpJ,IACXulZ,YAAa,CAAC,EAAG,IAAM,IAAM,KAC7BC,gBAAiB,EACjBC,6BAA6B,EAC7BC,4BAA4B,EAC5BC,sBAAsB,EACtBC,0BAA0B,EAC1BC,WAAY,KACZC,WAAY,KACZC,UAAW,MAGTC,EAA0B,WAC5B,SAASA,EAAW9yM,EAAMtyM,IA1C5B,SAAyBi9B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCA2C5G2pG,CAAgBnvG,KAAMy3Z,GAGlB,WAAYplZ,GACdwnB,QAAQzb,IAAI,0GAIdpe,KAAKqS,QAAUA,EAEfrS,KAAKqS,QAAQqoJ,WAAa16J,KAAKqS,QAAQqoJ,UAEvC16J,KAAK03Z,YAAc13Z,KAAKqS,QAAQilZ,WAEhCt3Z,KAAK2kN,KAAOA,EAEZ3kN,KAAKipC,IAAM,KAEXjpC,KAAK23Z,KAAO,KAEZ33Z,KAAKqyN,aAAe,KAEpBryN,KAAK43Z,eAAiB,KAEtB53Z,KAAKyoB,QAAU,KAEfzoB,KAAK63Z,UAAW,EAEhB73Z,KAAK2+S,MAAQ,KAIb3+S,KAAK83Z,QAAU,KAEf93Z,KAAK+3Z,cAAgB,EAErB/3Z,KAAKg4Z,cAAgB,KAErBh4Z,KAAKi4Z,mBAAqB,EAG1Bj4Z,KAAKk4Z,iBAAmB,KAGxBl4Z,KAAKm4Z,oBAAsB,KAnF/B,IAAsB5oX,EAAaG,EAAYC,EAq6B7C,OAr6BoBJ,EAiGPkoX,EAjGoB/nX,EAiGR,CAAC,CACxB9uC,IAAK,sBACLuB,MAAO,WACL,IAAIgiH,EAAQnkH,KAEZ,OAAOA,KAAKqS,QAAQygN,YAAY9yN,KAAK2kN,KAAM3kN,KAAKqS,SAAS+8B,MAAK,SAAU0jL,GACtE,OAAO3uG,EAAMuzS,YAAYU,yBAAyBtlM,QAGrD,CACDlyN,IAAK,2BACLuB,MAAO,SAAkCk2Z,GACvCr4Z,KAAKipC,IAAMovX,EAAe9B,WAAa,KACvCv2Z,KAAKm4Z,oBAAsBE,EAAeC,oBAAsB,KAChEt4Z,KAAK43Z,eAAiBS,EAAeE,gBAEtC,CACD33Z,IAAK,QACLuB,MAAO,WACL,IAAIurI,EAAS1tI,KAET2kN,EAAO3kN,KAAK2kN,KAEhB,GAAKA,EAML,GAAK3kN,KAAKqS,QAAQinV,UAAat5V,KAAKqS,QAAQkkZ,UAA5C,CAMA,IAAIS,EAAch3Z,KAAKqS,QAAQ2kZ,YAEZ,MAAfA,GAAuE,mBAAhD73Z,OAAOS,UAAUiH,SAAS/G,KAAKk3Z,IAMtDh3Z,KAAKqS,QAAQ4kZ,gBAAkB,GAEjC,CAAC,YAAa,aAAc,wBAAwB5jZ,SAAQ,SAAUmlZ,GAChE9qR,EAAOr7H,QAAQmmZ,IACjB9qR,EAAO+qR,WAAW,IAAIpzZ,MAAM,uBAAuBvC,OAAO01Z,EAAY,gDAK5Ex4Z,KAAKqS,QAAQygN,YAAYnO,EAAM3kN,KAAKqS,SAAS+8B,MAAK,SAAU0jL,GAS1D,OAPE10M,EADiB,MAAf00M,EACE,6FAEA,2BAA2BhwN,OAAOgwN,IAGxCplF,EAAO2kF,aAAeS,EAElBplF,EAAOoqR,QACFpqR,EAAOoqR,QAGTpqR,EAAOr7H,QAAQklZ,WAAWmB,SAAS/zM,EAAMj3E,EAAOr7H,QAAQqoJ,cAC9DtrH,MAAK,SAAU7rB,GAChBmqH,EAAOoqR,QAAUv0Y,EAGbmqH,EAAOr7H,QAAQ4kZ,gBAAkB,GAAmC,MAA9BvpR,EAAOyqR,oBAC/CzqR,EAAOirR,uBAEPjrR,EAAOkrR,wBArBX,OAuBY,SAAU15Y,GACpBwuH,EAAO+qR,WAAWv5Y,OAtClBlf,KAAKy4Z,WAAW,IAAIpzZ,MAAM,uEAR1BrF,KAAKy4Z,WAAW,IAAIpzZ,MAAM,+DAN1BrF,KAAKy4Z,WAAW,IAAIpzZ,MAAM,gDA8D7B,CACDzE,IAAK,uBACLuB,MAAO,WACL,IAAI6rI,EAAShuI,KAET64Z,EAAY74Z,KAAK2+S,MAAQ3+S,KAAK83Z,QAAQn5Z,KACtCm6Z,EAAgB,EACpB94Z,KAAKk4Z,iBAAmB,GACxB,IAAIa,EAAwC,MAA5B/4Z,KAAKm4Z,oBAA8Bn4Z,KAAKm4Z,oBAAoBz4Z,OAASM,KAAKqS,QAAQ4kZ,gBAG9FhoW,EA22BV,SAA4B4pW,EAAWE,EAAWC,GAIhD,IAHA,IAAIC,EAAWzuZ,KAAK2F,MAAM0oZ,EAAYE,GAClC9pW,EAAQ,GAEH1vD,EAAI,EAAGA,EAAIw5Z,EAAWx5Z,IAC7B0vD,EAAMrlD,KAAK,CACTxC,MAAO6xZ,EAAW15Z,EAClB8H,IAAK4xZ,GAAY15Z,EAAI,KAYzB,OARA0vD,EAAM8pW,EAAY,GAAG1xZ,IAAMwxZ,EAEvBG,GACF/pW,EAAM57C,SAAQ,SAAUw0F,EAAMzkG,GAC5BykG,EAAK0uT,UAAYyC,EAAa51Z,IAAU,QAIrC6rD,EA93BSiqW,CAAmBl5Z,KAAK83Z,QAAQn5Z,KAAMo6Z,EAAW/4Z,KAAKm4Z,qBAElEn4Z,KAAKm4Z,oBAAsB,IAAIxqZ,MAAMshD,EAAMvvD,QAG3C,IAmDI8kU,EAnDA20F,EAAUlqW,EAAMzuD,KAAI,SAAUqnG,EAAMzkG,GACtC,IAAIg2Z,EAAmB,EACvB,OAAOprR,EAAO8pR,QAAQx0Z,MAAMukG,EAAKzgG,MAAOygG,EAAKxgG,KAAK+nC,MAAK,SAAU9vB,GAC/D,IAAInd,EAAQmd,EAAKnd,MACjB,OAAO,IAAIuU,SAAQ,SAAUF,EAASD,GAEpC,IAAIlE,EAAUiR,EAAcA,EAAc,GAAI0qH,EAAO37H,SAAU,GAAI,CAEjEkkZ,UAAW1uT,EAAK0uT,WAAa,KAG7BW,6BAA6B,EAC7BC,4BAA4B,EAE5BF,gBAAiB,EACjB3xQ,SAAU,GAEVzkD,QAASv9E,EAAcA,EAAc,GAAI0qH,EAAO37H,QAAQwuF,SAAU,GAAI,CACpE,gBAAiB,YAGnB0pL,UAAW/zQ,EACXsrN,QAASvrN,EAGTo0Q,WAAY,SAAoB0uI,GAC9BP,EAAgBA,EAAgBM,EAAmBC,EACnDD,EAAmBC,EAEnBrrR,EAAOsrR,cAAcR,EAAeD,IAItCnC,sBAAuB,WACrB1oR,EAAOmqR,oBAAoB/0Z,GAASw4J,EAAO3yH,IAEvC+kG,EAAOmqR,oBAAoBh8Y,QAAO,SAAUxG,GAC9C,QAASA,KACRjW,SAAWuvD,EAAMvvD,QAClBsuI,EAAOurR,6BAKT39P,EAAS,IAAI67P,EAAWt1Z,EAAOkQ,GACnCupJ,EAAOx0J,QAEP4mI,EAAOkqR,iBAAiBtuZ,KAAKgyJ,YAOnCllJ,QAAQ0yG,IAAI+vS,GAAS/pX,MAAK,YACxBo1R,EAAMx2L,EAAOwrR,aAAa,OAAQxrR,EAAO37H,QAAQinV,WAC7C70B,UAAU,gBAAiB,SAAS3hU,OAAOkrI,EAAOmqR,oBAAoBjrZ,KAAK,OAE/E,IAAIo4I,EAAWm0Q,EAAezrR,EAAO37H,QAAQizI,UAM7C,MAJiB,KAAbA,GACFk/K,EAAIC,UAAU,kBAAmBn/K,GAG5BtX,EAAO0rR,aAAal1F,EAAK,SAC/Bp1R,MAAK,SAAU1kC,GAChB,GAAKivZ,EAAiBjvZ,EAAI+6F,YAAa,KAAvC,CAMA,IAAIvxE,EAAWxpB,EAAIwrZ,UAAU,YAEb,MAAZhiY,GAMJ85G,EAAO/kG,IAAM2wX,EAAW5rR,EAAO37H,QAAQinV,SAAUplU,GACjD9V,EAAI,qBAAqBtb,OAAOkrI,EAAO/kG,MAEvC+kG,EAAO6rR,gBARL7rR,EAAO8rR,eAAet1F,EAAK95T,EAAK,gDARhCsjI,EAAO8rR,eAAet1F,EAAK95T,EAAK,qDAbpC,OA8BY,SAAUwU,GACpB8uH,EAAOyqR,WAAWv5Y,QAUrB,CACDte,IAAK,qBACLuB,MAAO,WAIL,GAAInC,KAAKqS,QAAQ+kZ,qBACfp3Z,KAAK2+S,MAAQ,UACR,GAA+B,MAA3B3+S,KAAKqS,QAAQmkZ,YAGtB,GAFAx2Z,KAAK2+S,OAAS3+S,KAAKqS,QAAQmkZ,WAEvBvuZ,MAAMjI,KAAK2+S,OAGb,YAFA3+S,KAAKy4Z,WAAW,IAAIpzZ,MAAM,+DAO5B,GAFArF,KAAK2+S,MAAQ3+S,KAAK83Z,QAAQn5Z,KAER,MAAdqB,KAAK2+S,MAGP,YAFA3+S,KAAKy4Z,WAAW,IAAIpzZ,MAAM,0JAW9B,OAFArF,KAAK63Z,UAAW,EAEA,MAAZ73Z,KAAKipC,KACP7qB,EAAI,sCAAsCtb,OAAO9C,KAAKipC,WAEtDjpC,KAAK+5Z,iBAMuB,MAA1B/5Z,KAAKqS,QAAQkkZ,WACfn4Y,EAAI,sCAAsCtb,OAAO9C,KAAKqS,QAAQkkZ,YAC9Dv2Z,KAAKipC,IAAMjpC,KAAKqS,QAAQkkZ,eAExBv2Z,KAAK+5Z,kBAMP37Y,EAAI,8BAEJpe,KAAKg6Z,mBAaN,CACDp5Z,IAAK,QACLuB,MAAO,SAAe83Z,GACpB,IAAI3gL,EAASt5O,KAIb,GAAIP,UAAUC,OAAS,GAA6B,oBAAjBD,UAAU,GAC3C,MAAM,IAAI4F,MAAM,gHAwBlB,OApB6B,MAAzBrF,KAAKk4Z,kBACPl4Z,KAAKk4Z,iBAAiB7kZ,SAAQ,SAAUuoJ,GACtCA,EAAO5/D,MAAMi+T,MAKC,OAAdj6Z,KAAK23Z,OACP33Z,KAAK23Z,KAAK37T,QAEVh8F,KAAK83Z,QAAQj+Y,SAGf7Z,KAAK63Z,UAAW,EAEU,MAAtB73Z,KAAKg4Z,gBACPhxX,aAAahnC,KAAKg4Z,eAClBh4Z,KAAKg4Z,cAAgB,MAGlBiC,GAA+B,MAAZj6Z,KAAKipC,IAItBwuX,EAAW97I,UAAU37Q,KAAKipC,IAAKjpC,KAAKqS,SAC1C+8B,MAAK,WACJ,OAAOkqM,EAAO4gL,2BALPxjZ,QAAQF,YAQlB,CACD5V,IAAK,iBACLuB,MAAO,SAAwBqiU,EAAK95T,EAAKuP,EAAS47Y,GAChD71Z,KAAKy4Z,WAAW,IAAI7C,EAAc37Y,EAAS47Y,EAAYrxF,EAAK95T,MAE7D,CACD9J,IAAK,aACLuB,MAAO,SAAoB+c,GACzB,IAAI26N,EAAS75O,KAGb,IAAIA,KAAK63Z,SAAT,CAEA,GAAgC,MAA5B73Z,KAAKqS,QAAQ2kZ,cAIyB,MAAhBh3Z,KAAKyoB,SAAmBzoB,KAAKyoB,QAAUzoB,KAAKi4Z,qBAGlEj4Z,KAAK+3Z,cAAgB,GAGnBoC,EAAYj7Y,EAAKlf,KAAK+3Z,cAAe/3Z,KAAKqS,UAAU,CACtD,IAAIkiM,EAAQv0M,KAAKqS,QAAQ2kZ,YAAYh3Z,KAAK+3Z,iBAK1C,OAJA/3Z,KAAKi4Z,mBAAqBj4Z,KAAKyoB,aAC/BzoB,KAAKg4Z,cAAgBjxX,YAAW,WAC9B8yM,EAAOzyO,UACNmtM,IAKP,GAAoC,oBAAzBv0M,KAAKqS,QAAQyvN,QAGtB,MAAM5iN,EAFNlf,KAAKqS,QAAQyvN,QAAQ5iN,MAWxB,CACDte,IAAK,eACLuB,MAAO,WACDnC,KAAKqS,QAAQ8kZ,4BAGfn3Z,KAAKk6Z,wBAG+B,oBAA3Bl6Z,KAAKqS,QAAQk4Q,WACtBvqR,KAAKqS,QAAQk4Q,cAYhB,CACD3pR,IAAK,gBACLuB,MAAO,SAAuBi4Z,EAAWC,GACA,oBAA5Br6Z,KAAKqS,QAAQs4Q,YACtB3qR,KAAKqS,QAAQs4Q,WAAWyvI,EAAWC,KAatC,CACDz5Z,IAAK,qBACLuB,MAAO,SAA4Bu4J,EAAW4/P,EAAeD,GACf,oBAAjCr6Z,KAAKqS,QAAQokZ,iBACtBz2Z,KAAKqS,QAAQokZ,gBAAgB/7P,EAAW4/P,EAAeD,KAW1D,CACDz5Z,IAAK,gBACLuB,MAAO,WACL,IAAIu7O,EAAS19O,KAEb,GAAKA,KAAKqS,QAAQinV,SAAlB,CAMA,IAAI90B,EAAMxkU,KAAKw5Z,aAAa,OAAQx5Z,KAAKqS,QAAQinV,UAE7Ct5V,KAAKqS,QAAQ+kZ,qBACf5yF,EAAIC,UAAU,sBAAuB,GAErCD,EAAIC,UAAU,gBAAiBzkU,KAAK2+S,OAItC,IAMIloS,EANA6uI,EAAWm0Q,EAAez5Z,KAAKqS,QAAQizI,UAE1B,KAAbA,GACFk/K,EAAIC,UAAU,kBAAmBn/K,GAK/BtlJ,KAAKqS,QAAQglZ,2BAA6Br3Z,KAAKqS,QAAQ+kZ,sBACzDp3Z,KAAKyoB,QAAU,EACfhS,EAAUzW,KAAKu6Z,mBAAmB/1F,IAElC/tT,EAAUzW,KAAK05Z,aAAal1F,EAAK,MAGnC/tT,EAAQ24B,MAAK,SAAU1kC,GACrB,GAAKivZ,EAAiBjvZ,EAAI+6F,YAAa,KAAvC,CAMA,IAAIvxE,EAAWxpB,EAAIwrZ,UAAU,YAE7B,GAAgB,MAAZhiY,EAAJ,CAaA,GAPAwpN,EAAOz0M,IAAM2wX,EAAWl8K,EAAOrrO,QAAQinV,SAAUplU,GACjD9V,EAAI,qBAAqBtb,OAAO46O,EAAOz0M,MAEa,oBAAzCy0M,EAAOrrO,QAAQqkZ,uBACxBh5K,EAAOrrO,QAAQqkZ,wBAGI,IAAjBh5K,EAAOihE,MAMT,OAJAjhE,EAAOm8K,oBAEPn8K,EAAOo6K,QAAQj+Y,QAKjB6jO,EAAO67K,0BAEH77K,EAAOrrO,QAAQglZ,yBACjB35K,EAAO88K,sBAAsBh2F,EAAK95T,IAElCgzO,EAAOj1N,QAAU,EAEjBi1N,EAAO+8K,uBA5BP/8K,EAAOo8K,eAAet1F,EAAK95T,EAAK,gDARhCgzO,EAAOo8K,eAAet1F,EAAK95T,EAAK,qDAFpC,OAwCY,SAAUwU,GACpBw+N,EAAOo8K,eAAet1F,EAAK,KAAM,+BAAgCtlT,WAtEjElf,KAAKy4Z,WAAW,IAAIpzZ,MAAM,mEAiF7B,CACDzE,IAAK,gBACLuB,MAAO,WACL,IAAIqgP,EAASxiP,KAETwkU,EAAMxkU,KAAKw5Z,aAAa,OAAQx5Z,KAAKipC,KAE3BjpC,KAAK05Z,aAAal1F,EAAK,MAE7Bp1R,MAAK,SAAU1kC,GACrB,IAAIw1F,EAASx1F,EAAI+6F,YAEjB,IAAKk0T,EAAiBz5T,EAAQ,KAY5B,OAXIy5T,EAAiBz5T,EAAQ,MAG3BsiJ,EAAO03K,wBAQM,MAAXh6T,OACFsiJ,EAAOs3K,eAAet1F,EAAK95T,EAAK,gDAK7B83O,EAAOnwO,QAAQinV,UAQpB92G,EAAOv5M,IAAM,UAEbu5M,EAAOw3K,sBARLx3K,EAAOs3K,eAAet1F,EAAK95T,EAAK,mFAapC,IAAI1B,EAASK,SAASqB,EAAIwrZ,UAAU,iBAAkB,IAEtD,GAAIjuZ,MAAMe,GACRw5O,EAAOs3K,eAAet1F,EAAK95T,EAAK,4CADlC,CAMA,IAAIhL,EAAS2J,SAASqB,EAAIwrZ,UAAU,iBAAkB,IAEtD,IAAIjuZ,MAAMvI,IAAY8iP,EAAOnwO,QAAQ+kZ,qBAArC,CAYA,GANoD,oBAAzC50K,EAAOnwO,QAAQqkZ,uBACxBl0K,EAAOnwO,QAAQqkZ,wBAKb1tZ,IAAWtJ,EAKb,OAJA8iP,EAAO82K,cAAc55Z,EAAQA,QAE7B8iP,EAAOq3K,eAKTr3K,EAAO/5N,QAAUzf,EAEjBw5O,EAAOi4K,sBArBLj4K,EAAOs3K,eAAet1F,EAAK95T,EAAK,4CA/CpC,OAqEY,SAAUwU,GACpBsjO,EAAOs3K,eAAet1F,EAAK,KAAM,+BAAgCtlT,QAWpE,CACDte,IAAK,iBACLuB,MAAO,WACL,IASIqiU,EATA1hF,EAAS9iP,KAKTA,KAAK63Z,WAQL73Z,KAAKqS,QAAQskZ,qBACfnyF,EAAMxkU,KAAKw5Z,aAAa,OAAQx5Z,KAAKipC,MACjCw7R,UAAU,yBAA0B,SAExCD,EAAMxkU,KAAKw5Z,aAAa,QAASx5Z,KAAKipC,KAGxCu7R,EAAIC,UAAU,gBAAiBzkU,KAAKyoB,SAEtBzoB,KAAKu6Z,mBAAmB/1F,GAE9Bp1R,MAAK,SAAU1kC,GAChBivZ,EAAiBjvZ,EAAI+6F,YAAa,KAMvCq9I,EAAO03K,sBAAsBh2F,EAAK95T,GALhCo4O,EAAOg3K,eAAet1F,EAAK95T,EAAK,qDAFpC,OAQY,SAAUwU,GAEhB4jO,EAAO+0K,UAIX/0K,EAAOg3K,eAAet1F,EAAK,KAAM,yCAAyC1hU,OAAOggP,EAAOr6N,SAAUvJ,SAUrG,CACDte,IAAK,qBACLuB,MAAO,SAA4BqiU,GACjC,IAAI1/E,EAAS9kP,KAEToH,EAAQpH,KAAKyoB,QACbphB,EAAMrH,KAAKyoB,QAAUzoB,KAAKqS,QAAQqoJ,UAYtC,OAXA8pK,EAAIk2F,oBAAmB,SAAUN,GAC/Bt1K,EAAOw0K,cAAclyZ,EAAQgzZ,EAAWt1K,EAAO65D,UAEjD6lB,EAAIC,UAAU,eAAgB,oCAIzBp9T,IAAQoK,KAAYpK,EAAMrH,KAAK2+S,SAAW3+S,KAAKqS,QAAQ+kZ,uBAC1D/vZ,EAAMrH,KAAK2+S,OAGN3+S,KAAK83Z,QAAQx0Z,MAAM8D,EAAOC,GAAK+nC,MAAK,SAAU7vB,GACnD,IAAIpd,EAAQod,EAAMpd,MACd8c,EAAOM,EAAMN,KAUjB,OALI6lO,EAAOzyO,QAAQ+kZ,sBAAwBn4Y,IACzC6lO,EAAO65D,MAAQ75D,EAAOr8N,SAAWtmB,GAASA,EAAMxD,KAAOwD,EAAMxD,KAAO,GACpE6lU,EAAIC,UAAU,gBAAiB3/E,EAAO65D,QAG1B,OAAVx8S,EACK2iP,EAAO40K,aAAal1F,IAG7B1/E,EAAOw0K,cAAcx0K,EAAOr8N,QAASq8N,EAAO65D,OAErC75D,EAAO40K,aAAal1F,EAAKriU,SAUnC,CACDvB,IAAK,wBACLuB,MAAO,SAA+BqiU,EAAK95T,GACzC,IAAI1B,EAASK,SAASqB,EAAIwrZ,UAAU,iBAAkB,IAEtD,GAAIjuZ,MAAMe,GACRhJ,KAAK85Z,eAAet1F,EAAK95T,EAAK,4CADhC,CAYA,GANA1K,KAAKs5Z,cAActwZ,EAAQhJ,KAAK2+S,OAEhC3+S,KAAK26Z,mBAAmB3xZ,EAAShJ,KAAKyoB,QAASzf,EAAQhJ,KAAK2+S,OAE5D3+S,KAAKyoB,QAAUzf,EAEXA,GAAUhJ,KAAK2+S,MAMjB,OAJA3+S,KAAK65Z,oBAEL75Z,KAAK83Z,QAAQj+Y,QAKf7Z,KAAKy6Z,oBAQN,CACD75Z,IAAK,eACLuB,MAAO,SAAsBmyB,EAAQ2U,GACnC,IAAIu7R,EAAMo2F,EAAYtmY,EAAQ2U,EAAKjpC,KAAKqS,SAExC,OADArS,KAAK23Z,KAAOnzF,EACLA,IAQR,CACD5jU,IAAK,wBACLuB,MAAO,WACL,IAAI04Z,EAAU76Z,KAETA,KAAK43Z,iBAEV53Z,KAAK03Z,YAAYoD,aAAa96Z,KAAK43Z,gBAAnC,OAA4D,SAAU14Y,GACpE27Y,EAAQpC,WAAWv5Y,MAGrBlf,KAAK43Z,eAAiB,QAQvB,CACDh3Z,IAAK,0BACLuB,MAAO,WACL,IAAI44Z,EAAU/6Z,KAGd,GAAKA,KAAKqS,QAAQ6kZ,6BAAgCl3Z,KAAKqyN,aAAvD,CAIA,IAAI2oM,EAAe,CACjBr8Z,KAAMqB,KAAK2+S,MACXr5J,SAAUtlJ,KAAKqS,QAAQizI,SACvB21Q,cAAc,IAAI12Y,MAAO1d,YAGvB7G,KAAKk4Z,iBAEP8C,EAAa1C,mBAAqBt4Z,KAAKm4Z,oBAGvC6C,EAAazE,UAAYv2Z,KAAKipC,IAGhCjpC,KAAK03Z,YAAYwD,UAAUl7Z,KAAKqyN,aAAc2oM,GAAc5rX,MAAK,SAAUmpX,GACzE,OAAOwC,EAAQnD,eAAiBW,KADlC,OAEY,SAAUr5Y,GACpB67Y,EAAQtC,WAAWv5Y,SAStB,CACDte,IAAK,eACLuB,MAAO,SAAsBqiU,GAC3B,IAAIzjO,EAAOthG,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,KAC/E,OAAO07Z,EAAY32F,EAAKzjO,EAAM/gG,KAAKqS,YA/2BMs9B,EAi3BzC,CAAC,CACH/uC,IAAK,YACLuB,MAAO,SAAmB8mC,EAAK52B,GAI7B,GAAI5S,UAAUC,OAAS,GAAgD,oBAApCD,UAAUA,UAAUC,OAAS,GAC9D,MAAM,IAAI2F,MAAM,yHAKF3G,IAAZ2T,IACFA,EAAU,IAGZ,IAAImyT,EAAMo2F,EAAY,SAAU3xX,EAAK52B,GACrC,OAAO8oZ,EAAY32F,EAAK,KAAMnyT,GAAS+8B,MAAK,SAAU1kC,GAEpD,GAAwB,MAApBA,EAAI+6F,YAIR,MAAM,IAAImwT,EAAc,oDAAqD,KAAMpxF,EAAK95T,MANnF,OAOK,SAAUwU,GAKpB,GAJMA,aAAe02Y,IACnB12Y,EAAM,IAAI02Y,EAAc,kCAAmC12Y,EAAKslT,EAAK,QAGlE21F,EAAYj7Y,EAAK,EAAG7M,GACvB,MAAM6M,EAMR,IAAIq1L,EAAQliM,EAAQ2kZ,YAAY,GAC5BoE,EAAkB/oZ,EAAQ2kZ,YAAY1zZ,MAAM,GAE5C+3Z,EAAa/3Y,EAAcA,EAAc,GAAIjR,GAAU,GAAI,CAC7D2kZ,YAAaoE,IAGf,OAAO,IAAI1kZ,SAAQ,SAAUF,GAC3B,OAAOuwB,WAAWvwB,EAAS+9L,MAC1BnlK,MAAK,WACN,OAAOqoX,EAAW97I,UAAU1yO,EAAKoyX,YA/5BuB3rX,GAAYF,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAq6B3K8nX,EAh4BqB,GAm4B9B,SAASgC,EAAen0Q,GACtB,IAAIg2Q,EAAU,GAEd,IAAK,IAAI16Z,KAAO0kJ,EACdg2Q,EAAQ1xZ,KAAK,GAAG9G,OAAOlC,EAAK,KAAKkC,OAAOs5Y,SAAO5iX,OAAO8rH,EAAS1kJ,MAGjE,OAAO06Z,EAAQpuZ,KAAK,KAUtB,SAASysZ,EAAiBz5T,EAAQ4pF,GAChC,OAAO5pF,GAAU4pF,GAAY5pF,EAAS4pF,EAAW,IAWnD,SAAS8wO,EAAYtmY,EAAQ2U,EAAK52B,GAChC,IAAImyT,EAAMnyT,EAAQmlZ,UAAUl5P,cAAchqI,EAAQ2U,GAClDu7R,EAAIC,UAAU,gBAAiB,SAC/B,IAAI5jO,EAAUxuF,EAAQwuF,SAAW,GAEjC,IAAK,IAAIxlF,KAAQwlF,EACf2jO,EAAIC,UAAUppT,EAAMwlF,EAAQxlF,IAG9B,GAAIhJ,EAAQukZ,aAAc,CACxB,IAAIX,EC58BC,uCAAuCpkZ,QAAQ,SAAS,SAAU1H,GACvE,IAAImnB,EAAoB,GAAhB9mB,KAAKmnF,SAAgB,EAE7B,OADa,KAALxnF,EAAWmnB,EAAQ,EAAJA,EAAU,GACxBzqB,SAAS,OD08BlB29T,EAAIC,UAAU,eAAgBwxF,GAGhC,OAAOzxF,EAUT,SAAS22F,EAAY32F,EAAKzjO,EAAM1uF,GAE9B,OADgE,oBAA5BA,EAAQwkZ,gBAAiCngZ,QAAQF,QAAQnE,EAAQwkZ,gBAAgBryF,IAAQ9tT,QAAQF,WACvG44B,MAAK,WACjC,OAAOo1R,EAAI5jO,KAAKG,GAAM3xD,MAAK,SAAU1kC,GAEnC,OADgE,oBAA5B2H,EAAQykZ,gBAAiCpgZ,QAAQF,QAAQnE,EAAQykZ,gBAAgBtyF,EAAK95T,IAAQgM,QAAQF,WAC5G44B,MAAK,WACjC,OAAO1kC,WAgCf,SAASyvZ,EAAYj7Y,EAAKq8Y,EAAclpZ,GAQtC,GAA2B,MAAvBA,EAAQ2kZ,aAAuBuE,GAAgBlpZ,EAAQ2kZ,YAAYt3Z,QAAiC,MAAvBwf,EAAI42Y,gBACnF,OAAO,EAGT,GAAIzjZ,GAA4C,oBAA1BA,EAAQ0kZ,cAC5B,OAAO1kZ,EAAQ0kZ,cAAc73Y,EAAKq8Y,EAAclpZ,GAGlD,IAAI6tF,EAAShhF,EAAI62Y,iBAAmB72Y,EAAI62Y,iBAAiBtwT,YAAc,EACvE,QAASk0T,EAAiBz5T,EAAQ,MAAmB,MAAXA,GAA6B,MAAXA,IApC9D,WACE,IAAIs7T,GAAS,EAMb,MAJsB,qBAAXpjZ,QAA0B,cAAeA,SAAsC,IAA5BA,OAAOF,UAAUujZ,SAC7ED,GAAS,GAGJA,EA6BwEvzQ,GAUjF,SAAS2xQ,EAAW76Q,EAAQmzD,GAC1B,OAAO,IAAIqmB,IAAIrmB,EAAMnzD,GAAQl4I,WAoC/B4wZ,EAAWhnS,eAAiBA,EACbgnS,QE5kCf,SAASjoX,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAK7S,IAAIisX,EAA8B,WAChC,SAASA,KARX,SAAyBpsX,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAS5G2pG,CAAgBnvG,KAAM07Z,GAL1B,IAAsBnsX,EAAaG,EAAYC,EA8B7C,OA9BoBJ,EAQPmsX,GARoBhsX,EAQJ,CAAC,CAC5B9uC,IAAK,iBACLuB,MAAO,WACL,OAAOuU,QAAQF,QAAQ,MAExB,CACD5V,IAAK,2BACLuB,MAAO,SAAkC2wN,GACvC,OAAOp8M,QAAQF,QAAQ,MAExB,CACD5V,IAAK,eACLuB,MAAO,SAAsBo2Z,GAC3B,OAAO7hZ,QAAQF,YAEhB,CACD5V,IAAK,YACLuB,MAAO,SAAmB2wN,EAAal3D,GACrC,OAAOllJ,QAAQF,QAAQ,WA1BiDg5B,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GA8B3K+rX,EA3ByB,GCLlC,SAASlsX,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAK7S,IAAIksX,GAAa,EAEjB,IACEA,EAAa,iBAAkBvjZ,OAG/B,IAAIxX,EAAM,aACVgjU,aAAakuB,QAAQlxV,EAAKgjU,aAAaouB,QAAQpxV,IAC/C,MAAOV,IAIP,GAAIA,GAAEqR,OAASrR,GAAE07Z,cAAgB17Z,GAAEqR,OAASrR,GAAEmiP,mBAG5C,MAAMniP,GAFNy7Z,GAAa,EAMV,IAAIE,EAAeF,EACfG,EAAoC,WAC7C,SAASA,KA5BX,SAAyBxsX,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCA6B5G2pG,CAAgBnvG,KAAM87Z,GAzB1B,IAAsBvsX,EAAaG,EAAYC,EA+E7C,OA/EoBJ,EA4BPusX,GA5BoBpsX,EA4BE,CAAC,CAClC9uC,IAAK,iBACLuB,MAAO,WACL,IAAI26B,EAAU98B,KAAK+7Z,aAAa,SAEhC,OAAOrlZ,QAAQF,QAAQsmB,KAExB,CACDl8B,IAAK,2BACLuB,MAAO,SAAkC2wN,GACvC,IAAIh2L,EAAU98B,KAAK+7Z,aAAa,QAAQj5Z,OAAOgwN,EAAa,OAE5D,OAAOp8M,QAAQF,QAAQsmB,KAExB,CACDl8B,IAAK,eACLuB,MAAO,SAAsBo2Z,GAE3B,OADA30F,aAAamuB,WAAWwmE,GACjB7hZ,QAAQF,YAEhB,CACD5V,IAAK,YACLuB,MAAO,SAAmB2wN,EAAal3D,GACrC,IAAI/4J,EAAK2H,KAAKg1B,MAAsB,KAAhBh1B,KAAKmnF,UACrB/wF,EAAM,QAAQkC,OAAOgwN,EAAa,MAAMhwN,OAAOD,GAEnD,OADA+gU,aAAakuB,QAAQlxV,EAAKkX,KAAKC,UAAU6jJ,IAClCllJ,QAAQF,QAAQ5V,KAExB,CACDA,IAAK,eACLuB,MAAO,SAAsBS,GAG3B,IAFA,IAAIk6B,EAAU,GAELv9B,EAAI,EAAGA,EAAIqkU,aAAalkU,OAAQH,IAAK,CAC5C,IAAI0c,EAAO2nT,aAAahjU,IAAIrB,GAE5B,GAA6B,IAAzB0c,EAAK9b,QAAQyC,GAEjB,IACE,IAAIg5J,EAAS9jJ,KAAK62C,MAAMi1Q,aAAaouB,QAAQ/1U,IAC7C2/I,EAAO28P,cAAgBt8Y,EACvB6gB,EAAQlzB,KAAKgyJ,GACb,MAAO17J,MAKX,OAAO48B,OA3EiE0S,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GA+E3KmsX,EAxDsC,GC3B/C,SAAS3sT,EAAgB7/D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAEhH,SAASgqC,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAE7S,SAAS2/D,EAAa7/D,EAAaG,EAAYC,GAAmJ,OAAhID,GAAYF,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAAqBJ,EAGzM,IAAIysX,EAA4B,WAC9B,SAASA,IACP7sT,EAAgBnvG,KAAMg8Z,GAexB,OAZA5sT,EAAa4sT,EAAc,CAAC,CAC1Bp7Z,IAAK,gBACLuB,MAAO,SAAuBmyB,EAAQ2U,GACpC,OAAO,IAAIg4D,EAAQ3sE,EAAQ2U,KAE5B,CACDroC,IAAK,UACLuB,MAAO,WACL,MAAO,mBAIJ65Z,EAjBuB,GAsB5B/6T,EAAuB,WACzB,SAASA,EAAQ3sE,EAAQ2U,GACvBkmE,EAAgBnvG,KAAMihG,GAEtBjhG,KAAK2uP,KAAO,IAAIj0J,eAEhB16F,KAAK2uP,KAAKj1O,KAAK4a,EAAQ2U,GAAK,GAE5BjpC,KAAKi8Z,QAAU3nY,EACft0B,KAAK2hK,KAAO14H,EACZjpC,KAAKk8Z,SAAW,GAyElB,OAtEA9sT,EAAanO,EAAS,CAAC,CACrBrgG,IAAK,YACLuB,MAAO,WACL,OAAOnC,KAAKi8Z,UAEb,CACDr7Z,IAAK,SACLuB,MAAO,WACL,OAAOnC,KAAK2hK,OAEb,CACD/gK,IAAK,YACLuB,MAAO,SAAmBw5J,EAAQx5J,GAChCnC,KAAK2uP,KAAKrtJ,iBAAiBq6D,EAAQx5J,GAEnCnC,KAAKk8Z,SAASvgQ,GAAUx5J,IAEzB,CACDvB,IAAK,YACLuB,MAAO,SAAmBw5J,GACxB,OAAO37J,KAAKk8Z,SAASvgQ,KAEtB,CACD/6J,IAAK,qBACLuB,MAAO,SAA4Bg6Z,GAE3B,WAAYn8Z,KAAK2uP,OAIvB3uP,KAAK2uP,KAAK/yF,OAAOgnJ,WAAa,SAAU1iT,GACjCA,EAAEuyJ,kBAIP0pQ,EAAgBj8Z,EAAEsyJ,YAGrB,CACD5xJ,IAAK,OACLuB,MAAO,WACL,IAAIgiH,EAAQnkH,KAER+gG,EAAOthG,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,KAC/E,OAAO,IAAIiX,SAAQ,SAAUF,EAASD,GACpC4tG,EAAMwqI,KAAK9uJ,OAAS,WAClBrpF,EAAQ,IAAIyhL,EAAS9zE,EAAMwqI,QAG7BxqI,EAAMwqI,KAAK30O,QAAU,SAAUkF,GAC7B3I,EAAO2I,IAGTilG,EAAMwqI,KAAK/tJ,KAAKG,QAGnB,CACDngG,IAAK,QACLuB,MAAO,WAGL,OAFAnC,KAAK2uP,KAAK3yJ,QAEHtlF,QAAQF,YAEhB,CACD5V,IAAK,sBACLuB,MAAO,WACL,OAAOnC,KAAK2uP,SAIT1tJ,EAnFkB,GAsFvBg3F,EAAwB,WAC1B,SAASA,EAASl/B,GAChB5pD,EAAgBnvG,KAAMi4L,GAEtBj4L,KAAK2uP,KAAO51F,EAyBd,OAtBA3pD,EAAa6oF,EAAU,CAAC,CACtBr3L,IAAK,YACLuB,MAAO,WACL,OAAOnC,KAAK2uP,KAAKzuJ,SAElB,CACDt/F,IAAK,YACLuB,MAAO,SAAmBw5J,GACxB,OAAO37J,KAAK2uP,KAAKjyJ,kBAAkBi/D,KAEpC,CACD/6J,IAAK,UACLuB,MAAO,WACL,OAAOnC,KAAK2uP,KAAKvuJ,eAElB,CACDx/F,IAAK,sBACLuB,MAAO,WACL,OAAOnC,KAAK2uP,SAIT12D,EA7BmB,GC/Gbv/K,EAJK,WAClB,MAA4B,qBAAdR,WAA0D,kBAAtBA,UAAU02F,SAA4D,gBAApC12F,UAAU02F,QAAQ1nG,eCDxG,IAIek1Z,EAJC,WACd,MAAwB,oBAAVhkZ,SAAoD,oBAAnBA,OAAOikZ,UAAoD,oBAAlBjkZ,OAAOkkZ,SAAmD,oBAAlBlkZ,OAAOmkZ,UCCzI,SAAS/sX,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAO7S,IAAI+sX,EAA0B,WAE5B,SAASA,EAAW73M,IAXtB,SAAyBr1K,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAY5G2pG,CAAgBnvG,KAAMw8Z,GAEtBx8Z,KAAKy8Z,MAAQ93M,EACb3kN,KAAKrB,KAAOgmN,EAAKhmN,KAXrB,IAAsB4wC,EAAaG,EAAYC,EAoC7C,OApCoBJ,EAcPitX,GAdoB9sX,EAcR,CAAC,CACxB9uC,IAAK,QACLuB,MAAO,SAAeiF,EAAOC,GAI3B,GAAI+0Z,IACF,OCpBgC7oJ,EDoBTvzQ,KAAKy8Z,MAAMn5Z,MAAM8D,EAAOC,GCnB9C,IAAIqP,SAAQ,SAAUF,EAASD,GACpC,IAAIo/R,EAAS,IAAI+mH,WAEjB/mH,EAAO91M,OAAS,WACd,IAAI19F,EAAQ,IAAI8C,WAAW0wS,EAAO/7R,QAClCpD,EAAQ,CACNrU,MAAOA,KAIXwzS,EAAO37R,QAAU,SAAUkF,GACzB3I,EAAO2I,IAGTy2R,EAAOgnH,kBAAkBppJ,MAfd,IAAyBA,EDuB9BpxQ,EAAQnC,KAAKy8Z,MAAMn5Z,MAAM8D,EAAOC,GAEpC,OAAOqP,QAAQF,QAAQ,CACrBrU,MAAOA,MAGV,CACDvB,IAAK,QACLuB,MAAO,iBAhCmEqtC,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAoC3K6sX,EA/BqB,GEP9B,SAAShtX,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAI7S,SAAS5rC,EAAI+4Z,GACX,YAAoBl+Z,IAAhBk+Z,EAAkC,OACbl+Z,IAArBk+Z,EAAYj+Z,KAA2Bi+Z,EAAYj+Z,KAChDi+Z,EAAYl9Z,OA+BrB,IAAIm9Z,EAA4B,WAC9B,SAASA,EAAalnH,EAAQj7I,IAzChC,SAAyBprH,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCA0C5G2pG,CAAgBnvG,KAAM68Z,GAEtB78Z,KAAK88Z,WAAapiQ,EAClB16J,KAAK8qU,aAAUpsU,EACfsB,KAAK+8Z,cAAgB,EACrB/8Z,KAAKg9Z,QAAUrnH,EACf31S,KAAKi9Z,OAAQ,EA5CjB,IAAsB1tX,EAAaG,EAAYC,EAuH7C,OAvHoBJ,EA+CPstX,GA/CoBntX,EA+CN,CAAC,CAC1B9uC,IAAK,QACLuB,MAAO,SAAeiF,EAAOC,GAC3B,OAAID,EAAQpH,KAAK+8Z,cACRrmZ,QAAQH,OAAO,IAAIlR,MAAM,yDAG3BrF,KAAKk9Z,2BAA2B91Z,EAAOC,KAE/C,CACDzG,IAAK,6BACLuB,MAAO,SAAoCiF,EAAOC,GAChD,IAAI88G,EAAQnkH,KAERm9Z,EAAgB91Z,GAAOrH,KAAK+8Z,cAAgBl5Z,EAAI7D,KAAK8qU,SAEzD,GAAI9qU,KAAKi9Z,OAASE,EAAe,CAC/B,IAAIh7Z,EAAQnC,KAAKo9Z,mBAAmBh2Z,EAAOC,GAEvC4X,EAAgB,MAAT9c,GAAgBnC,KAAKi9Z,MAChC,OAAOvmZ,QAAQF,QAAQ,CACrBrU,MAAOA,EACP8c,KAAMA,IAIV,OAAOjf,KAAKg9Z,QAAQv0Z,OAAO2mC,MAAK,SAAU9vB,GACxC,IAAInd,EAAQmd,EAAKnd,MAWjB,OAVWmd,EAAKL,KAGdklG,EAAM84S,OAAQ,OACav+Z,IAAlBylH,EAAM2mN,QACf3mN,EAAM2mN,QAAU3oU,EAEhBgiH,EAAM2mN,QArEhB,SAAgBx+T,EAAGzE,GACjB,GAAIyE,EAAExJ,OAEJ,OAAOwJ,EAAExJ,OAAO+E,GAGlB,GAAIyE,aAAaikJ,KACf,OAAO,IAAIA,KAAK,CAACjkJ,EAAGzE,GAAI,CACtBnB,KAAM4F,EAAE5F,OAIZ,GAAI4F,EAAEgF,IAAK,CAET,IAAInH,EAAI,IAAImC,EAAEgK,YAAYhK,EAAE5M,OAASmI,EAAEnI,QAGvC,OAFAyK,EAAEmH,IAAIhF,GACNnC,EAAEmH,IAAIzJ,EAAGyE,EAAE5M,QACJyK,EAGT,MAAM,IAAI9E,MAAM,qBAiDQvC,CAAOqhH,EAAM2mN,QAAS3oU,GAGjCgiH,EAAM+4S,2BAA2B91Z,EAAOC,QAGlD,CACDzG,IAAK,qBACLuB,MAAO,SAA4BiF,EAAOC,GAIpCD,EAAQpH,KAAK+8Z,gBACf/8Z,KAAK8qU,QAAU9qU,KAAK8qU,QAAQxnU,MAAM8D,EAAQpH,KAAK+8Z,eAC/C/8Z,KAAK+8Z,cAAgB31Z,GAIvB,IAAIi2Z,EAA2C,IAAtBx5Z,EAAI7D,KAAK8qU,SAElC,OAAI9qU,KAAKi9Z,OAASI,EACT,KAKFr9Z,KAAK8qU,QAAQxnU,MAAM,EAAG+D,EAAMD,KAEpC,CACDxG,IAAK,QACLuB,MAAO,WACDnC,KAAKg9Z,QAAQn/T,QACf79F,KAAKg9Z,QAAQn/T,cAlHyDruD,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAuH3KktX,EAnFuB,GCtChC,SAASrtX,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAS7S,IAAIitX,GAA0B,WAC5B,SAASA,KAZX,SAAyBptX,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAa5G2pG,CAAgBnvG,KAAM08Z,GAT1B,IAAsBntX,EAAaG,EAAYC,EAiD7C,OAjDoBJ,EAYPmtX,GAZoBhtX,EAYR,CAAC,CACxB9uC,IAAK,WACLuB,MAAO,SAAkBqS,EAAOkmJ,GAK9B,OAAIhiJ,KAAmBlE,GAA8B,qBAAdA,EAAM4/N,KClBjBA,EDmBT5/N,EAAM4/N,IClBtB,IAAI19N,SAAQ,SAAUF,EAASD,GACpC,IAAIwiJ,EAAM,IAAIr+D,eACdq+D,EAAI54D,aAAe,OAEnB44D,EAAIl5D,OAAS,WACX,IAAI02D,EAAOwC,EAAI14D,SACf7pF,EAAQ+/I,IAGVwC,EAAI/+I,QAAU,SAAUkF,GACtB3I,EAAO2I,IAGT65I,EAAIr/I,KAAK,MAAO06N,GAChBr7E,EAAIn4D,WDI4BxxD,MAAK,SAAUmnH,GACzC,OAAO,IAAIimQ,EAAWjmQ,MADjB,OAEK,SAAUr3I,GACpB,MAAM,IAAI7Z,MAAM,sFAAsFvC,OAAOoc,OAQtF,oBAAhB1K,EAAMlR,OAA8C,qBAAfkR,EAAM7V,KAC7C+X,QAAQF,QAAQ,IAAIgmZ,EAAWhoZ,IAGd,oBAAfA,EAAM/L,MACfiyJ,GAAaA,EAERjtJ,SAASitJ,GAIPhkJ,QAAQF,QAAQ,IAAIqmZ,EAAaroZ,EAAOkmJ,IAHtChkJ,QAAQH,OAAO,IAAIlR,MAAM,uFAM7BqR,QAAQH,OAAO,IAAIlR,MAAM,uFC5CvB,IAAmB+uO,ODD4C5kM,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GAiD3K+sX,EA1CqB,GEX9B,SAASjrY,GAAQjuB,GAAmV,OAAtOiuB,GAArD,oBAAX1lB,QAAoD,kBAApBA,OAAOkP,SAAmC,SAAiBzX,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXuI,QAAyBvI,EAAI8S,cAAgBvK,QAAUvI,IAAQuI,OAAOnM,UAAY,gBAAkB4D,GAAiBiuB,GAAQjuB,GAEnX,SAAS2rG,GAAgB7/D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAEhH,SAASgqC,GAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAM7S,SAASo8F,GAAgB1wH,EAAGxb,GAA+G,OAA1GksI,GAAkB1sI,OAAOs2B,gBAAkB,SAAyBta,EAAGxb,GAAsB,OAAjBwb,EAAEjW,UAAYvF,EAAUwb,GAAa0wH,GAAgB1wH,EAAGxb,GAErK,SAASmsI,GAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFj9F,QAAQvvC,UAAU+jC,QAAQ7jC,KAAKmsI,QAAQC,UAAU/8F,QAAS,IAAI,iBAAyB,EAAQ,MAAOjvC,IAAK,OAAO,GAN9PmsI,GAA6B,OAAO,WAAkC,IAAsCzyH,EAAlC0yH,EAAQ15F,GAAgBm5F,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY35F,GAAgB5yC,MAAMsW,YAAasD,EAASqyH,QAAQC,UAAUI,EAAO7sI,UAAW8sI,QAAqB3yH,EAAS0yH,EAAMvsI,MAAMC,KAAMP,WAAc,OAAO+sI,GAA2BxsI,KAAM4Z,IAE5Z,SAAS4yH,GAA2B/yH,EAAM3Z,GAAQ,OAAIA,GAA2B,WAAlB2xB,GAAQ3xB,IAAsC,oBAATA,EAEpG,SAAgC2Z,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIk5B,eAAe,6DAAgE,OAAOl5B,EAFb6yC,CAAuB7yC,GAAtC3Z,EAMnI,SAAS8yC,GAAgBz3B,GAAwJ,OAAnJy3B,GAAkBzzC,OAAOs2B,eAAiBt2B,OAAO0zC,eAAiB,SAAyB13B,GAAK,OAAOA,EAAEjW,WAAa/F,OAAO0zC,eAAe13B,IAAcy3B,GAAgBz3B,GAExM,SAAS4H,GAAQC,EAAQC,GAAkB,IAAIxf,EAAOtE,OAAOsE,KAAKuf,GAAS,GAAI7jB,OAAOiB,sBAAuB,CAAE,IAAI8iB,EAAU/jB,OAAOiB,sBAAsB4iB,GAAaC,IAAgBC,EAAUA,EAAQ/G,QAAO,SAAUgH,GAAO,OAAOhkB,OAAOikB,yBAAyBJ,EAAQG,GAAKE,eAAgB5f,EAAKmG,KAAK7J,MAAM0D,EAAMyf,GAAY,OAAOzf,EAE9U,SAAS6f,GAAcnW,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAyB,MAAhB9jB,UAAUF,GAAaE,UAAUF,GAAK,GAAQA,EAAI,EAAKwjB,GAAQ5jB,OAAOokB,IAAS,GAAMlQ,SAAQ,SAAUzS,GAAO4iB,GAAgBrW,EAAQvM,EAAK2iB,EAAO3iB,OAAsBzB,OAAOskB,0BAA6BtkB,OAAOukB,iBAAiBvW,EAAQhO,OAAOskB,0BAA0BF,IAAmBR,GAAQ5jB,OAAOokB,IAASlQ,SAAQ,SAAUzS,GAAOzB,OAAO8M,eAAekB,EAAQvM,EAAKzB,OAAOikB,yBAAyBG,EAAQ3iB,OAAe,OAAOuM,EAE7gB,SAASqW,GAAgBhgB,EAAK5C,EAAKuB,GAAiK,OAApJvB,KAAO4C,EAAOrE,OAAO8M,eAAezI,EAAK5C,EAAK,CAAEuB,MAAOA,EAAOkhB,YAAY,EAAMnX,cAAc,EAAMyX,UAAU,IAAkBngB,EAAI5C,GAAOuB,EAAgBqB,EAU3M,IAAIitH,GAAiBntG,GAAcA,GAAc,GAAIm0Y,EAAWhnS,gBAAiB,GAAI,CACnF+mS,UAAW,IAAI8F,EACf/F,WAAY,IAAImF,GAChBpF,WAAYuE,EAAe,IAAIC,EAAyB,IAAIJ,EAC5D5oM,YC9Ba,SAAqBnO,EAAMtyM,GACxC,OAAIqG,IACKhC,QAAQF,QAMnB,SAAgCmuM,EAAMtyM,GACpC,IAAIkrZ,EAAW54M,EAAK64M,KAItB,SAAkB9zZ,GAEhB,IAAIoJ,EAAO,EAEX,GAAmB,IAAfpJ,EAAIhK,OACN,OAAOoT,EAGT,IAAK,IAAIvT,EAAI,EAAGA,EAAImK,EAAIhK,OAAQH,IAAK,CAGnCuT,GAAQA,GAAQ,GAAKA,EAFTpJ,EAAIG,WAAWtK,GAG3BuT,GAAQA,EAGV,OAAOA,EAnBoB2qZ,CAAS3lZ,KAAKC,UAAU4sM,EAAK64M,OAAS,SACjE,MAAO,CAAC,SAAU74M,EAAKtpM,MAAQ,SAAUspM,EAAKhmN,MAAQ,SAAU4+Z,EAAUlrZ,EAAQinV,UAAUpsV,KAAK,KARxEwwZ,CAAuB/4M,EAAMtyM,IAG/CqE,QAAQF,QAAQ,CAAC,SAAUmuM,EAAKtpM,KAAMspM,EAAKj+M,KAAMi+M,EAAKhmN,KAAMgmN,EAAKg5M,aAActrZ,EAAQinV,UAAUpsV,KAAK,SD4B3G0wZ,GAAsB,SAAUC,IAnCpC,SAAmB/qX,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvtC,UAAU,sDAAyDstC,EAASlzC,UAAYT,OAAOy2B,OAAOmd,GAAcA,EAAWnzC,UAAW,CAAE0W,YAAa,CAAEnU,MAAO2wC,EAAUnvB,UAAU,EAAMzX,cAAc,KAAe6mC,GAAY84F,GAAgB/4F,EAAUC,GAoCjX45F,CAAUixR,EAAQC,GAElB,IAxCoBtuX,EAAaG,EAAYC,EAwCzC62E,EAASslB,GAAa8xR,GAE1B,SAASA,IACP,IAAIj5M,EAAOllN,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,KAC3E4S,EAAU5S,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,GAKlF,OAHA0vG,GAAgBnvG,KAAM49Z,GAEtBvrZ,EAAUiR,GAAcA,GAAc,GAAImtG,IAAiBp+G,GACpDm0G,EAAO1mH,KAAKE,KAAM2kN,EAAMtyM,GAWjC,OA5DoBk9B,EAoDPquX,EApDgCjuX,EAoDlB,CAAC,CAC1B/uC,IAAK,YACLuB,MAAO,SAAmB8mC,EAAK52B,EAASkkF,GAEtC,OADAlkF,EAAUiR,GAAcA,GAAc,GAAImtG,IAAiBp+G,GACpDolZ,EAAW97I,UAAU1yO,EAAK52B,EAASkkF,OAxDb7mD,EAoDZ,OApDuDF,GAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,GAAkBD,EAAaI,GA4D3KiuX,EAvBiB,CAwBxBnG,GAEEqG,GAAU1lZ,OACVsiF,GAAiBojU,GAAQpjU,eACzB61D,GAAOutQ,GAAQvtQ,K,IACD71D,IAAkB61D,IAAeA,GAAK3wJ,UAAU0D,M,qEEpE3D,MAKMy6Z,GAAuB,SAKvBC,GAAoB,SAiD1B,SAASC,GAAah1X,EAAKwwW,GAC9B,MAAMykB,EAAS,IAAI3lM,IAAItvL,GACvBi1X,EAAOt6T,SAAY,GAAE61S,KAAaykB,EAAOt6T,WAEzC,OAAOu6T,GADKD,EAAOr3Z,WACI,KASpB,SAASu3Z,GAAYn1X,EAAK4lF,GAC7B,MAAMzlH,EAASulD,IAAM1lB,GAAK,GAI1B,OAFA4lF,EAAQ,IAAKzlH,EAAOylH,SAAUA,GAC9BzlH,EAAOkI,IAAI,QAASu9G,GACbzlH,EAAOvC,WASX,SAAS+pJ,KAAiB,2BAAN50I,EAAM,yBAANA,EAAM,gBAI7B,OAHoB,IAAhBA,EAAKtc,QACL2+Z,GAAqB,OAAQriZ,EAAM,YAAa,aAE7CA,EAAKmB,QAAO,CAACg+C,EAAKn2C,IAAQs5Y,KAAQnjW,EAAKn2C,KAU3C,SAASu5Y,GAA0BC,EAAWp6Y,GAMjD,IAAI+Q,EAGA8T,EAYJ,OApBAw1X,GAAe,YAAaD,EAAW,aACvCC,GAAe,SAAUr6Y,EAAQ,aAEjCA,EAASs6Y,GADTt6Y,EAASu6Y,GAAcv6Y,EAzFI45Y,YA6F1B55Y,EAAQ+Q,GAAQ/Q,EAAOhH,MAAM,UAK1B6rB,EAFW,cAAX7kB,EAEM,YAGA65Y,GAAaO,EAAWp6Y,GAG9B+Q,IACA8T,EApFD,SAAiBA,EAAK9T,GAIzB,IAAIzrB,EACJ,GAJA+0Z,GAAe,MAAOx1X,EAAK,aAC3Bw1X,GAAe,OAAQtpY,EAAM,aAC7BA,EAAOupY,GAAiBvpY,GAEZ,cAAR8T,EAEAv/B,EAAO,aAAYyrB,QAElB,CAED,MAAM+oY,EAAS,IAAI3lM,IAAItvL,GACvBi1X,EAAO90X,SAAWjU,EAClBzrB,EAAMw0Z,EAAOr3Z,WAEjB,OAAOs3Z,GAAWz0Z,EAAK,KAqEbk1Z,CAAQ31X,EAAK9T,IAEhB8T,ECzHX,MAAM41X,GAA6B,CAC/BC,eAAe,EACfC,aAAa,EACbC,UAAU,GAERC,GAAkB,sBAElBC,GAAuB,IAAIn4V,OAAQ,IAAGk4V,OACtCE,GAAyB,IAAIp4V,OAAQ,MAAKk4V,eAC1CG,GAA0B,IAAIr4V,OAAQ,8BAWrC,SAASs4V,GAAaC,EAAYC,GACrCd,GAAe,aAAca,EAAY,aACzCE,GAAuB,gBAAiBD,EAAe,YAAaV,IACpE,MAAM9vY,EAAO,IAAK8vY,MAA+BU,GACjD,GAAIxwY,EAAKgwY,aAAehwY,EAAKiwY,SACzB,MAAM,IAAI35Z,MAAM,2DAEpB,GAAI0pB,EAAKgwY,aAAehwY,EAAK+vY,cACzB,MAAM,IAAIz5Z,MAAM,gEAEpB,GAAI0pB,EAAK+vY,cACL,OAuCD,SAA4BQ,EAAYC,GAE3C,MAAMxwY,EAAO,IAAK8vY,MAA+BU,GAG3Cn2Z,EAASulD,IAAM2wW,EAAY,IAE3BG,EAAgBr2Z,EAAOw6F,SAAS32F,MAAMmyZ,IAC5C,GAAIK,EACA,OAAI1wY,EAAKiwY,SACEb,GAAW/0Z,EAAOggC,SAAU,KAEhCq2X,EAxEuB,GA0ElC,OAAO,KArDIC,CAAmBJ,EAAYvwY,GAO1C,MAAM4wY,GAFNL,EAAaX,GAAcW,EAAYtB,KAER/wZ,MAAMiyZ,IACrC,GAAIS,EACA,OAAI5wY,EAAKiwY,SACE,GAEJW,EAjCuB,GAwClC,MACMC,EAAiBzB,GADRxvW,IAAM2wW,EAAY,IACQl2X,SAAU,KAC7Cy2X,EAAgBD,EAAe3yZ,MAAMkyZ,IAC3C,IAAKU,EACD,OAAO,KACX,MAAM1qY,EAAO0qY,EA5CmB,GA6ChC,OAAI9wY,EAAKgwY,YACEL,GAAiBkB,GACnB7wY,EAAKiwY,SACH7pY,EAEA0qY,EAnDuB,GCJ/B,SAASC,GAAezkZ,EAAMlZ,EAAO49Z,GACnB,kBAAV59Z,GACPk8Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,iBAW9C,SAASC,GAAgB3kZ,EAAMlZ,EAAO49Z,GACpB,mBAAV59Z,GACPk8Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,kBAW9C,SAASE,GAAe5kZ,EAAMlZ,EAAO49Z,GACnB,kBAAV59Z,GACPk8Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,iBAEnC,OAAV59Z,GACAk8Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,YAY9C,SAASP,GAAuBnkZ,EAAMlZ,EAAO49Z,EAAWx9U,GAC3D,GAAKpgF,EAAL,CAIA89Z,GAAe5kZ,EAAMlZ,EAAO49Z,GAE5B,IAAK,MAAMl7U,KAAY1iF,EACnB,KAAM0iF,KAAYtC,GACd,MAAM,IAAIl9E,MAAO,UAAS06Z,MAAc1kZ,oCAAuCwpE,OAYpF,SAAS2rE,GAAen1I,EAAMlZ,EAAO49Z,GACnB,kBAAV59Z,GACPk8Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,iBAY9C,SAASG,GAAsB7kZ,EAAMlZ,EAAO49Z,GAC/CtB,GAAepjZ,EAAMlZ,EAAO49Z,GAC5B,MAAMI,EAAgBd,GAAal9Z,GACnC,GAAsB,OAAlBg+Z,EACA,MAAM9B,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAY,kCAExD,OAAOI,EAUJ,SAAS1B,GAAepjZ,EAAMlZ,EAAO49Z,GACnB,kBAAV59Z,GACPk8Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,iBAY9C,SAASK,GAAkB/kZ,EAAMlZ,EAAO49Z,EAAWl8Z,GACtD46Z,GAAepjZ,EAAMlZ,EAAO49Z,GAC5B,MAAMM,EAAYl+Z,EAAMzC,OACpB2ga,IAAcx8Z,GACdw6Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAY,2BAA0Bl8Z,iBAAmBw8Z,KAW5F,SAASC,GAAkBjlZ,EAAMlZ,EAAO49Z,GAC3CtB,GAAepjZ,EAAMlZ,EAAO49Z,GACvBQ,GAAYp+Z,IACbk8Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,wBAW9C,SAASS,GAAmBnlZ,EAAMlZ,EAAO49Z,GACtC59Z,aAAiB8C,YACnBo5Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,qBAY9C,SAASU,GAAsBplZ,EAAMlZ,EAAO49Z,EAAWl8Z,GAC1D28Z,GAAmBnlZ,EAAMlZ,EAAO49Z,GAChC,MAAMM,EAAYl+Z,EAAMzC,OACpB2ga,IAAcx8Z,GACdw6Z,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAY,+BAA8Bl8Z,iBAAmBw8Z,KAYhG,SAAShC,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAWl9Q,GACzD,IAAI69Q,EAUJ,MARIA,OADUhia,IAAVyD,EACc,mBAEC,OAAVA,EACS,cAGC,gBAAeA,cAAkBA,KAE9C,IAAIkD,MAAO,YAAW06Z,MAAc1kZ,YAAewnI,UAAiB69Q,KCnLvE,SAASC,GAAaj3Z,EAAK9G,GAI9B,OAHK8G,EAAI43S,WAAW1+S,KAChB8G,EAAO,GAAE9G,IAAS8G,KAEfA,EAQJ,SAASg1Z,GAAiBh1Z,GAC7B,OAAOk3Z,GAAWzC,GAAWz0Z,EAAK,KAAM,KAWrC,SAASk3Z,GAAWl3Z,EAAK9G,EAAQ6N,GACpC,KAAO/G,EAAI43S,WAAW1+S,WACJlE,IAAV+R,GAAuBA,GAAS,IAGpC/G,EAAMA,EAAIpG,MAAMV,EAAOlD,QACnB+Q,IACAA,GAAS,GAGjB,OAAO/G,EAWJ,SAASy0Z,GAAWz0Z,EAAKo9E,EAAQr2E,GACpC,KAAO/G,EAAIs5I,SAASl8D,WACFpoF,IAAV+R,GAAuBA,GAAS,IAGpC/G,EAAMA,EAAIy7B,UAAU,EAAGz7B,EAAIhK,OAASonF,EAAOpnF,QACvC+Q,IACAA,GAAS,GAGjB,OAAO/G,EASJ,SAASi1Z,GAAcj1Z,EAAK9G,GAC/B,MAAMi+Z,EAAaj+Z,EAAOsE,cACpB45Z,EAAc3C,GAAW0C,EAAY,KAErCE,EAAWr3Z,EAAIxC,cACrB,OAAI65Z,EAASz/G,WAAWu/G,GAEbn3Z,EAAIpG,MAAMu9Z,EAAWnha,QAE5Bqha,EAASz/G,WAAWw/G,GAEbp3Z,EAAIpG,MAAMw9Z,EAAYpha,QAE1BgK,EASJ,SAASs3Z,GAAuBt3Z,GAEnC,OADA+0Z,GAAe,MAAO/0Z,EAAK,aACpBzE,WAAWM,KAAKX,UAAOW,KAAKmE,EAAK,UAQrC,SAASu3Z,GAAuBv7Z,GACnC,OAAOd,UAAOW,KAAKG,GAAOmB,SAAS,SAShC,SAASq6Z,GAAgBx3Z,GAC5B42Z,GAAkB,MAAO52Z,EAAK,aAC9B,MAAM24E,EAAU34E,EAAIuD,MAAM,WAC1B,GAAgB,OAAZo1E,EACA,MAAMg8U,GAAqB,MAAO30Z,EAAK,YAAa,wBAExD,OAAO,IAAIzE,WAAWo9E,EAAQ7hF,KAAKwgI,GAAS33H,SAAS23H,EAAM,OASxD,SAASu/R,GAAY72Z,GAExB,OADA+0Z,GAAe,MAAO/0Z,EAAK,aACpB,kBAAkB2O,KAAK3O,GAS3B,SAASy3Z,GAAYx3Z,GACxB,IAAIrK,EAAI,GAIR,OAHAqK,EAAU0J,SAAQ,SAAU2tH,GACxB1hI,IAAM,KAAc,IAAP0hI,GAAan6H,SAAS,KAAKvD,OAAO,MAE5ChE,ECvGJ,SAAS8ha,GAAgBz8M,GAC5B,GAAIA,EAAKj+M,KACL,OAAOi+M,EAAKj+M,KAChB,IAAIwH,EAAMinB,KAAKkgG,QAAQsvF,EAAKtpM,MAE5B,GADAnN,EAAM0yZ,GAAW1yZ,EAAK,KACV,KAARA,EAAY,CACZ,MAAM8yO,EAAWqgL,KAAKC,QAAQpzZ,GAC9B,GAAI8yO,EACA,OAAOA,EAGf,MAAO,GCnDJ,MAAMugL,GAAuB,CAChCC,OAAQ,GACRC,gBAAiB,GACjBC,aAAc,GACd7lE,wBAAoBn9V,EACpBy7V,sBAAkBz7V,GAUf,SAASija,GAAe5yY,EAAMwzD,GACjC,MAAM3oE,EAAS,GACf,IAAK,MAAMirE,KAAYtC,EAEnB,GAAKpjF,OAAOS,UAAUC,eAAeC,KAAKyiF,EAAOsC,GAAjD,CAIA,IAAK1lF,OAAOS,UAAUC,eAAeC,KAAKivB,EAAM81D,GAC5C,MAAM,IAAIx/E,MAAO,aAAYw/E,gBAEjCjrE,EAAOirE,GAAY91D,EAAK81D,GAE5B,OAAOjrE,E,uGC3BJ,MAAMgoZ,GAAe12S,OAAO,wBAQ5B,SAAS22S,GAAa/pO,GAEzB,GADAgoO,GAAe,MAAOhoO,EAAK,aACvBA,EAAM5sE,OAAO,GACb,MAAM,IAAI7lH,MAAO,YAAWyyL,sDAEhC,GAAIA,EAAM8pO,GACN,MAAM,IAAIv8Z,MAAO,YAAWyyL,+DCbpC,MAAMgqO,GAA0B,cAOzB,SAASC,GAAoBC,GAChCA,EAAUA,EAAQn4V,cAClB,MAAM77D,EAAQi0Z,KAAaD,EAASF,IACpC,OAAO,IAAI78Z,WAAW+I,GAiBnB,SAASk0Z,GAAoBF,GAKhC,OADAA,GAFAA,EAAW,GAAEA,OAEKnwZ,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAC5CF,uBAAYqwZ,GAQhB,SAASG,GAAoBn0Z,GAChC,IAAIxJ,EAAS+F,yBAAcyD,GAK3B,OAHAxJ,EAASA,EAAOqN,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAG5CrN,EAAOlB,MAAM,GAAI,GAyCrB,SAAS8+Z,GAAoBp0Z,GAChC,MAAMnK,EAAMmK,EAAMtO,OACZgJ,EAAM,IAAIjD,YAAY,EAAI5B,GACnB,IAAI+lM,SAASlhM,GAErBmhM,UAAU,EAAGhmM,GAAK,GACvB,MAAMw+Z,EAAa,IAAIp9Z,WAAWyD,GAElC,OADA25Z,EAAW/wZ,IAAItD,EAAO,GACfq0Z,EAQJ,SAASC,GAAiB54Z,GAC7B,MAAMC,EAAYq3Z,GAAuBt3Z,GACnC4xZ,EAAU,IAAIr2Z,WAAW,EAAI0E,EAAUjK,QAG7C,OAFA47Z,EAAQhqZ,IApDL,SAAsBuM,GACzB,MAAMy9Y,EAAU,IAAIr2Z,WAAW,GAC/B,IAAK,IAAI7B,EAAQ,EAAGA,EAAQk4Z,EAAQ57Z,OAAQ0D,IAAS,CACjD,MAAM49H,EAAa,IAANnjH,EACby9Y,EAAQl4Z,GAAS49H,EACjBnjH,IAAa,EAEjB,OAAOy9Y,EA6CKiH,CAAa54Z,EAAUjK,SACnC47Z,EAAQhqZ,IAAI3H,EAAW,GAChB2xZ,EC1GJ,MACMkH,GAA2C,EAAvBj2Y,QAAK6+B,gBAEzBq3W,IADqBl2Y,QAAK8+B,gBACP9+B,QAAKy/B,iBAMrC,SAAS02W,KACL,OAAOpuM,uBAAY,IA+ChB,SAASquM,KACZ,MAAM/4Q,EAAS84Q,KADc,2BAAN1mZ,EAAM,yBAANA,EAAM,gBAG7B,OADAA,EAAK3I,SAASlO,GAAQovN,yBAAc3qE,EAAQzkJ,KACrCqvN,wBAAa5qE,GASjB,SAASg5Q,GAAY/+Y,GACxB,OAAO8+Y,GAAQL,GAAiBz+Y,IAS7B,SAASg/Y,GAAkBC,EAAeC,GAC7C,IAAIC,EAEAA,EADAD,EACe7B,GAAgB4B,EAAcj/Y,SAG9B++Y,GAAYE,EAAcj/Y,SAG7C,OAAO8+Y,GAAQK,EADGZ,GAAoBU,EAAc/ha,MDnBjD,SAA8B+2L,GAEjC+pO,GAAa/pO,GACb,MAAMwjO,EAAU,IAAIr2Z,WAAW,GAC/B,IAAK,IAAI7B,EAAQ,EAAGA,EAAQk4Z,EAAQ57Z,OAAQ0D,IAAS,CACjD,MAAM49H,EAAO82D,EAAM5sE,OAAO,KAC1BowS,EAAQl4Z,GAAS6F,OAAO+3H,GACxB82D,IAAa5sE,OAAO,GAExB,OAAOowS,ECWiC2H,CAAqBH,EAAcI,WAQxE,SAASx9F,GAAOzrT,GACnB,MAAuB,kBAAZA,EACAnH,gBAAKkuZ,GAAuB/mZ,IAG5BnH,gBAAKmH,GCpGb,MAaMkpZ,GAAmB,GAInBC,GAAgB,IAAIn+Z,WAAWk+Z,IACrC,MAAME,GACT/sZ,YAAYgtZ,EAAUC,GAClBvja,KAAKsja,SAAWA,EAChBtja,KAAKuja,WAAaA,EAClB/yQ,GAAe,WAAY8yQ,EAAU,yBACrC7C,GAAsB,aAAc8C,EAAY,wBAAyB,IAE7E5yP,UACI,MAAMjoK,EAAM,IAAIjD,YAAY09Z,IACf,IAAIv5N,SAASlhM,GACrB0mV,UAAU,EAAGpvV,KAAKsja,UAAU,GACjC,MAAMjB,EAAa,IAAIp9Z,WAAWyD,GAElC,OADA25Z,EAAW/wZ,IAAItR,KAAKuja,WAAY,GACzBlB,EAEXx7Z,WACI,OAAOs7Z,GAAoBnia,KAAK2wK,WAUpB,iBAAC5vK,GACb0/Z,GAAsB,OAAQ1/Z,EAAM,YAAaoia,IACjD,MAEMG,EAFO,IAAI15N,SAAS7oM,EAAKyF,QAETg9Z,UAAU,GAAG,GAE7BD,EAAa,IAAIt+Z,WAAW,IAElC,OADAs+Z,EAAWjyZ,IAAIvQ,EAAKuC,MAAM,IACnB,IAAI+/Z,GAAWC,EAAUC,GAUnB,kBAACvB,GACd,MAAMh0Z,EAAQy1Z,GAAczB,GAC5B,OAAOqB,GAAWt2W,UAAU/+C,IAiEpC,MAAM01Z,GACFptZ,YAAY2oL,EAAWr+L,GACnBZ,KAAKi/L,UAAYA,EACjBj/L,KAAKY,IAAMA,EAEf+ia,aACI,MAAM31Z,EAAQ,IAAI/I,WAAW2+Z,IAG7B,OAFA51Z,EAAMsD,IAAItR,KAAKi/L,WACfjxL,EAAMsD,IAAI8wZ,GAAoBpia,KAAKY,KAvBrB,IAwBPoN,GASR,SAAS61Z,GAAoB94W,GAChCu1W,GAAkB,YAAav1W,EAAW,aAC1C,MAAMk0I,EA3BH,SAAsB5jL,GACzBojZ,GAAe,OAAQpjZ,EAAM,aAC7B,MAAMinD,EAAY,IAAIr9D,WAVJ,IAYlB,OADAq9D,EAAUhxD,IAAI0vZ,GAAuB3lZ,IAC9BinD,EAuBWwhW,CAAa,WACzBC,EAAiB7C,GAAgBn2W,GAEvC,OADA01W,GAAsB,iBAAkBsD,EAAgB,sBAvBpC,IAwBb,IAAIL,GAAazkO,EAAW8kO,GAShC,SAASC,GAAaC,EAAcC,GACvC,MAEMX,EAsCV,SAA+BY,EAAQD,GACnC,OAAOvB,GAAQwB,EAAOR,aAAcO,GAvCjBE,CAAsBH,EAAcC,GACvD,OAAO,IAAIb,GAFM7sY,EAEe+sY,GAW7B,SAASE,GAAcnI,GAE1B,IAAIttZ,EACJ,GAnLuC,MAiLvCstZ,EAAUqD,GAAcrD,EAAS0C,KAErBt+Z,OACRsO,EAAQ+zZ,GAAoBzG,OAE3B,IAlLkC,KAkL9BA,EAAQ57Z,OAIb,MAAM,IAAI2F,MAjLwB,8BA8KlC2I,EAAQk0Z,GAAoB5G,GAOhC,GAAIttZ,EAAMtO,QAAUyja,GAChB,MAAM,IAAI99Z,MAAM,+BAEpB,OAAO2I,EC9LJ,SAASq2Z,GAAuBrC,GAEnC5B,GAAkB,UADlB4B,EAAUrD,GAAcqD,EAAShE,IACK,YDDC,ICGvC,OHQG,SAA6BhwZ,GAChC,OAAOs2Z,KAAat2Z,EAAO8zZ,GAAyB,CAAEtwW,SAAS,IAAStqD,cGTjEq9Z,CADOrC,GAAoBF,IAqB/B,SAASwC,GAAcxC,GAE1B,OADAvD,GAAe,UAAWuD,EAAS,aACnB,KAAZA,GAGCA,EAAQ1gH,WAAW08G,MACpBgE,EAAW,SAAsBA,KAH1BA,EC7Bf,MAAMyC,GAAiB,SAajBC,GAAyB,OAKlBC,GAAyB,IAC/BpD,GACHqD,eAAgB,kBAChBC,oBAAqB,cACrBC,eAAgB,GAChBC,gBAAYrma,EACZsma,cAAeP,GACfzN,YAhB6B,CAAC,EAAG,IAAM,KAAO,IAAO,IAAQ,KAiB7DiO,cAAUvma,GAaPu4C,eAAeiuX,GAAWvgN,EAAM46M,GAEnC,MAAMxwY,EAAO,IAAK41Y,MAA2B3ka,KAAKu/Z,iBAAkBA,GACpE,OAAI56M,EAAKhmN,KAAOowB,EAAKi2Y,cACVhla,KAAKmla,gBAAgBxgN,EAAM51L,GAG3B/uB,KAAKola,gBAAgBzgN,EAAM51L,GAanCkoB,eAAekuX,GAAgBxgN,EAAM46M,GACxC,MAAMl/T,QAAiBrgG,KAAKqla,uBAAuB1gN,EAAM46M,GAEzD+F,GAAuBjlU,GAEvB,MAAO,CAAE2hU,QADOwC,GAAcnkU,EAASt/F,KAAKiha,UAYzC/qX,eAAeouX,GAAuB1gN,EAAM46M,GAC/CgG,GAAa,OAAQ5gN,EAAM,aAC3B66M,GAAuB,gBAAiBD,EAAe,YAAaoF,IACpE,MAAM51Y,EAAO,IAAK41Y,MAA2B3ka,KAAKu/Z,iBAAkBA,GAC9D1jT,EAAW,IAAInX,SACrBigH,EAAO6gN,GAA4B7gN,GAC/B51L,EAAK+1Y,eACLjpT,EAASvoG,OAAOoxZ,GAAwB//M,EAAM51L,EAAK+1Y,gBAGnDjpT,EAASvoG,OAAOoxZ,GAAwB//M,GAQ5C,aANuB3kN,KAAKyla,eAAe,IACpC12Y,EACH22Y,aAAc32Y,EAAK61Y,eACnBtwY,OAAQ,OACRvzB,KAAM86G,IAeP5kE,eAAemuX,GAAgBzgN,EAAM46M,GAExC,MAAMl/T,QAAiBrgG,KAAK2la,uBAAuBhhN,EAAM46M,IAsM7D,SAAqCl/T,GACjC,IACI,IAAKA,EAASQ,QACV,MAAM,IAAIx7F,MAAM,kCAEpBo5Z,GAAe,qCAAsCp+T,EAASQ,QAAQ,kBAAmB,yBAE7F,MAAO3hF,GACH,MAAM,IAAI7Z,MAAO,kJAAiJ6Z,MA5MtK0mZ,CAA4BvlU,GAE5B,IAAI2hU,EAAU3hU,EAASQ,QAAQ,kBAG/B,OADAmhU,EAAUwC,GAAcxC,GACjB,CAAEA,WAYN/qX,eAAe0uX,GAAuBhhN,EAAM46M,GAC/C,IAAIvwV,EACJu2V,GAAa,OAAQ5gN,EAAM,aAC3B66M,GAAuB,gBAAiBD,EAAe,YAAaoF,IACpE,MAAM51Y,EAAO,IAAK41Y,MAA2B3ka,KAAKu/Z,iBAAkBA,GAE9Dt2X,QAAY48X,GAAgB7la,KAAM+uB,EAAK81Y,qBACvChkU,EAAUilU,QAAoBpna,EAAWqwB,EAAK0yY,gBAAiB1yY,EAAK2yY,cAE1E,IAAIt6N,GADJud,EAAO6gN,GAA4B7gN,IACftpM,KAChB0T,EAAK+1Y,iBACL19N,EAAWr4K,EAAK+1Y,gBAEpB,MAAMn6I,EAAa57P,EAAKorU,kBACpB,SAAUigE,EAAWC,GACjB,MAAMh/E,EAAW++E,EAAYC,EAE7BtrY,EAAKorU,iBAAiB9e,EAAU,CAAE7oL,OAAQ4nQ,EAAW1pW,MAAO2pW,KAI9D0L,QAAa/la,KAAKyla,eAAe,IAChC12Y,EACH22Y,aAAc32Y,EAAK81Y,oBACnBvwY,OAAQ,YAEZ,IAAI2iY,EAAkB,EAItB,OAH6C,QAAxCjoV,EAAK+2V,EAAKllU,QAAQ,wBAAqC,IAAP7xB,OAAgB,EAASA,EAAGg6I,SAAS,oBACtFiuM,EAvJqB,GAyJlB,IAAIvgZ,SAAQ,CAACF,EAASD,KACzB,MAAMyvZ,EAAU,CACZ1sE,SAAUrwT,EACVyxH,UAAW+pQ,GACXzN,YAAajoY,EAAKioY,YAClB1xQ,SAAU,CACN8hD,WACA6+N,SAAUthN,EAAKj+M,MAEnBuwZ,kBACAp2T,UACA8pL,aACAksI,gBAAiB,SAAUryF,GACXA,EAAI0hG,sBACZvhU,iBAAkB,GAE1Bm9H,QAAUjrN,IAGN,MAAMnM,EAAMmM,EAAMk/Y,iBACZnjR,EAAWloI,GAAM,IAAIrF,MAAMqF,EAAI2rZ,UAAUzkZ,SAAmBiF,EAClEN,EAAOq8H,IAEX23I,UAAWtzO,UACP,IAAK2kH,EAAO3yH,IAER,YADA1yB,EAAO,IAAIlR,MAAM,6BAIrB,MAAM0ga,QAAa/la,KAAKyla,eAAe,IAChC12Y,EACHka,IAAK2yH,EAAO3yH,IACZy8X,aAAc32Y,EAAK81Y,oBACnBvwY,OAAQ,OACRusE,QAAS,IAAKA,EAAS,gBAAiB,WAE5CrqF,EAAQuvZ,KAGVnqQ,EAAS,IAAIgiQ,GAAOj5M,EAAMqhN,GAChCpqQ,EAAOx0J,WAcR6vC,eAAekvX,GAAgBC,EAAWh/N,EAAUm4N,GAEvD,MAAMl/T,QAAiBrgG,KAAKqma,uBAAuBD,EAAWh/N,EAAUm4N,GAExE+F,GAAuBjlU,GAEvB,MAAO,CAAE2hU,QADOwC,GAAcnkU,EAASt/F,KAAKiha,UAczC/qX,eAAeovX,GAAuBD,EAAWh/N,EAAUm4N,GAC9DU,GAAe,YAAamG,EAAW,aACvC3H,GAAe,WAAYr3N,EAAU,aACrCo4N,GAAuB,gBAAiBD,EAAe,YAAaoF,IACpE,MAAM51Y,EAAO,IAAK41Y,MAA2B3ka,KAAKu/Z,iBAAkBA,GAC9D1jT,EAAW,IAAInX,SACrBvlG,OAAOqiG,QAAQ4kU,GAAW/yZ,SAAQ,IAAkB,IAAhB8hB,EAAMwvL,GAAU,EAChDA,EAAO6gN,GAA4B7gN,GACnC9oG,EAASvoG,OA7NwB,UA6NiBqxM,EAAMxvL,MAE5D,MAAM05F,EAAQ,CAAEu4E,YACZr4K,EAAKk2Y,WACLp2S,EAAMy3S,SAAWxuZ,KAAKC,UAAUgX,EAAKk2Y,WAErCl2Y,EAAKg2Y,aACLl2S,EAAM03S,WAAazuZ,KAAKC,UAAUgX,EAAKg2Y,aAS3C,aAPuB/ka,KAAKyla,eAAe,IACpC12Y,EACH22Y,aAAc32Y,EAAK61Y,eACnBtwY,OAAQ,OACRvzB,KAAM86G,EACNgT,UAcR,SAAS22S,GAA4B7gN,GACjC,OAAO,IAAIzoG,KAAK,CAACyoG,GAAOA,EAAKtpM,KAAM,CAAE3U,KAAM06Z,GAAgBz8M,KAU/D,SAAS4gN,GAAalqZ,EAAMlZ,EAAO49Z,GACzB59Z,aAAiB+5G,MACnBmiT,GAAqBhjZ,EAAMlZ,EAAO49Z,EAAW,eASrD,SAASuF,GAAuBjlU,GAC5B,IACI,IAAKA,EAASt/F,KACV,MAAM,IAAIsE,MAAM,+BAEpBo5Z,GAAe,UAAWp+T,EAASt/F,KAAKiha,QAAS,yBAErD,MAAO9iZ,GACH,MAAM,IAAI7Z,MAAO,2IAA0I6Z,MCrS5J,MAAMsnZ,GAA4B,IAClCjF,GACHkF,iBAAkB,mBAClB1D,kBAAkB,GAET2D,GAA4B,IAClCnF,GACHoF,iBAAkB,mBAClB5D,kBAAkB,GAMT6D,GAA2B,yBAgBlCC,GAA6B,2BAC7BC,GAAiB,WAWhB7vX,eAAe82U,GAAShjU,EAAWlnC,EAAS07Y,GAE/C,MAAMxwY,EAAO,IACNy3Y,MACAxma,KAAKu/Z,iBACLA,GAEDt2X,QAAYjpC,KAAKypK,SAASs9P,YAAYh8W,EAAWlnC,EAASkL,GAChE,IAAIsxE,EACJ,IACIA,QAAiBrgG,KAAKyla,eAAe,IAC9B12Y,EACH22Y,aAAc32Y,EAAK03Y,iBACnBx9X,MACA3U,OAAQ,MAGRqtK,kBAAmB,SAAU5gM,GACzB,QAAarC,IAATqC,EACA,MAAO,GAGXA,EAAOA,EAAK8Q,QAAQ+0Z,GAA0B,mBAE9C,IACI,OAAO9uZ,KAAK62C,MAAM5tD,GAEtB,MAEI,OAAOA,MAKvB,MAAOme,GACH,OA2TR,SAAmCA,GAE/B,IAAKA,EAAImhF,SACL,MAAM,IAAIh7F,MAAO,uEAAsE6Z,KAG3F,IAAKA,EAAImhF,SAASH,OACd,MAAM,IAAI76F,MAAO,uEAAsE6Z,KAG3F,GAA4B,MAAxBA,EAAImhF,SAASH,OACb,MAAO,CAAE57F,MAAO,KAAMm8L,UAAW,MAErC,MAAMvhL,EAxUK8nZ,CAA0B9nZ,GAGrC,IACIu/Y,GAAe,qBAAsBp+T,EAASt/F,KAAKA,KAAM,wBACzD09Z,GAAe,yBAA0Bp+T,EAASt/F,KAAKmia,SAAU,wBACjEzE,GAAe,0BAA2Bp+T,EAASt/F,KAAK0/L,UAAW,wBAEvE,MAAOvhL,GACH,MAAM,IAAI7Z,MAAO,iJAAgJ6Z,KAGrK,MAAMgkZ,EAAWh4S,OAAO7qB,EAASt/F,KAAKmia,UAChCziO,EAAY77L,UAAOW,KAAK27Z,GAAgB7gU,EAASt/F,KAAK0/L,YAE5D,IAAI1/L,EAAO,IAAIkE,WAAW,IACtBo7F,EAASt/F,KAAKA,OACdA,EAAOmga,GAAgB7gU,EAASt/F,KAAKA,OAEzC,MAAMkma,EAAc,CAChB3ia,MAAO,CACHuf,UACA9iB,OACAmia,YAEJziO,aAGEymO,EAAiB,IAAIjia,WAAWgia,EAAYxmO,WAC5CsjO,EAAiB7C,GAAgBn2W,GAIvC,GAFA01W,GAAsB,iBAAkByG,EAAgB,iBAAkBzE,IAC1EhC,GAAsB,iBAAkBsD,EAAgB,iBAAkBvB,GAAoB,GAC1Fj2Y,QAAKm/B,SAASE,OAAOi3W,GAAkBoE,EAAY3ia,MAAOyqB,EAAKg0Y,kBAAmBmE,EAAgBnD,GAClG,OAAOkD,EAGX,MAAM,IAAI5ha,MAAM,gGAYb4xC,eAAe8vX,GAAYh8W,EAAWlnC,EAAS07Y,GAElD,MAAMxwY,EAAO,IACNy3Y,MACAxma,KAAKu/Z,iBACLA,GAGP,OAYG,SAA8Bf,EAAWzzW,EAAWlnC,EAAS07Y,GAChEd,GAAe,YAAaD,EAAW,aACvC2I,GAAkB,YAAap8W,EAAW,aAC1C0zW,GAAe,UAAW56Y,EAAS,aACnC27Y,GAAuB,gBAAiBD,EAAe,YAAaiH,IACpE,MAAMz3Y,EAAO,IACNy3Y,MACAjH,GAGP,IAAI6H,EAAiBvjZ,EAChBkL,EAAKg0Y,mBACNqE,EAAiBjG,GAAYyB,GAAY/+Y,KAE7C,MAAMgrG,EAAQ,CACVw4S,UAAW1G,GAAa51W,EAAW+7W,IACnCQ,QAASF,EACTl0Z,QAzJiC,GA2JrC,IAAI+1B,EAAM2nH,GAAQ4tQ,EAAWzvY,EAAK03Y,kBAElC,OADAx9X,EAAMm1X,GAAYn1X,EAAK4lF,GAChB5lF,EAjCAs+X,OADiBvna,KAAKw+Z,YACUzzW,EAAWlnC,EAASkL,GA4CxD,SAASy4Y,GAAaz8W,EAAWlnC,EAAS07Y,GAC7C4H,GAAkB,YAAap8W,EAAW,aAC1C0zW,GAAe,UAAW56Y,EAAS,aACnC27Y,GAAuB,gBAAiBD,EAAe,YAAaiH,IACpE,MAAMz3Y,EAAO,IACNy3Y,MACAjH,GAED0E,EAAeJ,GAAoBjD,GAAW71W,EAAW+7W,KAC/D,IAAI5C,EAEAA,EADAn1Y,EAAKg0Y,iBACG7B,GAAgBr9Y,GAGhB++Y,GAAY/+Y,GAGxB,OAAO2gZ,GADSR,GAAaC,EAAcC,GAAOr9Z,YAe/CowC,eAAewwX,GAAkB18W,EAAWlnC,EAAS07Y,GACxD4H,GAAkB,YAAap8W,EAAW,aAC1C0zW,GAAe,UAAW56Y,EAAS,aACnC27Y,GAAuB,gBAAiBD,EAAe,YAAaiH,IACpE,MAAMz3Y,EAAO,IACNy3Y,MACAjH,GAED0E,EAAeJ,GAAoBjD,GAAW71W,EAAW+7W,KAC/D,IAAI5C,EAEAA,EADAn1Y,EAAKg0Y,iBACG7B,GAAgBr9Y,GAGhB++Y,GAAY/+Y,GAGxB,OAAO2gZ,GADSR,GAAaC,EAAcC,GAAOr9Z,YAa/CowC,eAAeywX,GAAStnO,EAAY97L,EAAOi7Z,GAC9Ce,GAAkB,aAAclgO,EAAY,aAC5CunO,GAAsB,QAASrja,EAAO,aACtCk7Z,GAAuB,gBAAiBD,EAAe,YAAamH,IAEpE7E,GAAav9Z,EAAM4+Z,UACnB,MAAMn0Y,EAAO,IACN23Y,MACA1ma,KAAKu/Z,iBACLA,GAEDqI,EAAkB1G,GAAgB9gO,GAClCK,QAYHxpJ,eAAyBmpJ,EAAY97L,EAAOy+Z,GAE/C,MAAM6E,EAAkB1G,GAAgB9gO,GAGxC,OAAO7zK,gBAAKs2Y,GAAkBv+Z,EAAOy+Z,GAAmB6E,GAjBhCC,CAAUznO,EAAY97L,EAAOyqB,EAAKg0Y,mBAClDh4W,UAAW+8W,GAAmBv7Y,QAAK2+B,QAAQC,cAAcy8W,GACjE,aAAa5na,KAAKypK,SAASs+P,gBAAgB5G,GAAY2G,GAAiBxja,EAAOm8L,EAAW1xK,GA2BvFkoB,eAAe8wX,GAAgBh9W,EAAWzmD,EAAOm8L,EAAW8+N,GAC/De,GAAkB,YAAav1W,EAAW,aAC1C48W,GAAsB,QAASrja,EAAO,aACtCk8Z,GAAmB,YAAa//N,EAAW,aAC3C++N,GAAuB,gBAAiBD,EAAe,YAAamH,IACpE,MAAM33Y,EAAO,IACN23Y,MACA1ma,KAAKu/Z,iBACLA,GAGP,IAAI+H,EAAUhja,EAAMuf,QACfkL,EAAKg0Y,mBACNuE,EAAUnG,GAAYyB,GAAY0E,KAGtC,MAAMU,EAAYr6Z,MAAMpI,KAAKjB,EAAMvD,MAC7BA,EAAO,CACTsma,UAAW,CACPpoO,UAAW,UACXr+L,IAAK+M,MAAMpI,KAAK27Z,GAAgBn2W,KAEpCu8W,UAGApE,SAAU5+Z,EAAM4+Z,SAASr8Z,WACzB9F,KAAMina,EACNvnO,UAAW9yL,MAAMpI,KAAKk7L,UAEpBzgM,KAAKyla,eAAe,IACnB12Y,EACH22Y,aAAc32Y,EAAK43Y,iBACnBryY,OAAQ,OACRvzB,OAGAygM,iBAAkB,SAAUzgM,GAIxB,OAFa+W,KAAKC,UAAUhX,GAEhB8Q,QAAQg1Z,GAA4B,oBA+FrD,SAASc,GAAsBtsZ,EAAMlZ,EAAO49Z,GAC/CE,GAAe5kZ,EAAMlZ,EAAO49Z,GAC5BtB,GAAgB,GAAEpjZ,YAAgBlZ,EAAM0hB,QAAU,GAAEk8Y,WACpDS,GAAoB,GAAEnlZ,SAAalZ,EAAMpB,KAAO,GAAEg/Z,WAClDD,GAAgB,GAAEzkZ,aAAiBlZ,EAAM+ga,SAAW,GAAEnD,WAU1D,SAASoH,GAAkB9rZ,EAAM0vC,EAAWg1W,GACnCQ,GAAYK,GAAW71W,EAAW+7W,MACnCzI,GAAqBhjZ,EAAM0vC,EAAWg1W,EAAW,4CClblD,MAAMkI,GAA2B,IACjC1G,GACH2G,iBAAkB,IAClBC,UAAU,EACVhzY,UAAMz2B,EACNge,WAAOhe,EACPyhG,kBAAczhG,EACd+6Y,WAAW,GAET2uB,GAA+B,IAC9B7G,GACH8G,oBAAqB,oBAEnBC,GAA+B,IAC9BL,GACHM,oBAAqB,MACrBC,aAAc,MAEd/uB,WAAW,GAETgvB,GAA8B,IAC7BlH,GACHmH,mBAAoB,UAYjBzxX,eAAe0xX,GAAarJ,EAAYC,GAE3C,MAAMxwY,EAAO,IAAKk5Y,MAA6Bjoa,KAAKu/Z,iBAAkBA,EAAe4I,UAAU,GACzFl/X,QAAYjpC,KAAK4oa,cAActJ,EAAYvwY,GAGjD,OADA3W,OAAO8b,SAAS90B,OAAO6pC,GAChBA,EAYJgO,eAAe4xX,GAAgBzkZ,EAAQm7Y,GAE1C,MAAMxwY,EAAO,IAAKu5Y,MAAiCtoa,KAAKu/Z,iBAAkBA,EAAe4I,UAAU,GAC7Fl/X,QAAYjpC,KAAK8oa,UAAU1kZ,EAAQ2K,GAGzC,OADA3W,OAAO8b,SAAS90B,OAAO6pC,GAChBA,EAYJgO,eAAe2xX,GAActJ,EAAYC,GAE5C,MAAMxwY,EAAO,IAAKk5Y,MAA6Bjoa,KAAKu/Z,iBAAkBA,GAEtE,OAYG,SAAgCf,EAAWc,EAAYC,GAC1D,IAAIvwV,EACJyvV,GAAe,YAAaD,EAAW,aACvCC,GAAe,aAAca,EAAY,aACzCE,GAAuB,gBAAiBD,EAAe,YAAa0I,IACpE,MAAMl5Y,EAAO,IAAKk5Y,MAA6B1I,GACzC1wS,EAAQ,GACV9/F,EAAKo5Y,WAELt5S,EAAMk6S,YAAa,GAGvB,IAeI9/X,EAfA9T,EAAO,GACX,GAAIpG,EAAKoG,KAAM,CACX,GAAyB,kBAAdpG,EAAKoG,KACZ,MAAM,IAAI9vB,MAAO,wCAAuC0pB,EAAKoG,iBAOjEA,EAAOpG,EAAKoG,KACP/X,MAAM,KACN5c,KAAKqqC,GAAY21B,mBAAmB31B,KACpC39B,KAAK,KAGd,GAAI6hB,EAAK0qX,UAAW,CAIhB,MAAMuvB,EAAsE,QAAvDh6V,EAAKqwV,GAAaC,EAAY,CAAEN,UAAU,WAA4B,IAAPhwV,EAAgBA,EAAK,GAEzG,IAAIgzV,EAAU3C,GAAaC,GAC3B,GAAgB,OAAZ0C,EACA,MAAM,IAAI38Z,MAAO,uCAAsCi6Z,MAG3D0C,EAAUqC,GAAuBrC,GACjC/4X,EAAMg1X,GAAaO,EAAWwD,GAC9B/4X,EAAM2nH,GAAQ3nH,EAAK+/X,EAAa7zY,OAE/B,CAED,MAAM6sY,EAAU3C,GAAaC,EAAY,CAAEP,aAAa,IACxD,GAAgB,OAAZiD,EACA,MAAM,IAAI38Z,MAAO,iDAAgDi6Z,MAGrEr2X,EAAM2nH,GAAQ4tQ,EAAWzvY,EAAKm5Y,iBAAkBlG,GAChD/4X,EAAM2nH,GAAQ3nH,EAAK9T,GAEvB,OAAOipY,GAAYn1X,EAAK4lF,GAjEjBo6S,OADiBjpa,KAAKw+Z,YACYc,EAAYvwY,GA6ElDkoB,eAAe6xX,GAAU1kZ,EAAQm7Y,GACpCd,GAAe,SAAUr6Y,EAAQ,aACjCo7Y,GAAuB,gBAAiBD,EAAe,YAAa+I,IACpE,MAAMv5Y,EAAO,IAAKu5Y,MAAiCtoa,KAAKu/Z,iBAAkBA,GACpE1wS,EAAQ,GACV9/F,EAAKo5Y,WACLt5S,EAAMk6S,YAAa,GAEvB3kZ,EAASu6Y,GAAcv6Y,EAAQ25Y,IAC/B,MAAMS,QAAkBx+Z,KAAKw+Z,YAI7B,OAAOJ,GAHKrvY,EAAK0qX,UACXwkB,GAAaA,GAAaO,EAAWzvY,EAAKy5Y,cAAepkZ,GACzDwsI,GAAQ4tQ,EAAWzvY,EAAKw5Y,oBAAqBnkZ,GAC3ByqG,GAYrB53E,eAAeiyX,GAAa9kZ,EAAQm7Y,GACvCd,GAAe,SAAUr6Y,EAAQ,aACjCo7Y,GAAuB,gBAAiBD,EAAe,YAAakJ,IACpE,MAAM15Y,EAAO,IAAK05Y,MAAgCzoa,KAAKu/Z,iBAAkBA,GACzEn7Y,EAASu6Y,GAAcv6Y,EAAQ25Y,IAE/B,OAAOntQ,SADiB5wJ,KAAKw+Z,YACHzvY,EAAK25Y,mBAAoBtkZ,GAYhD6yB,eAAesiH,GAAY+lQ,EAAYC,GAC1CC,GAAuB,gBAAiBD,EAAe,YAAa6I,IAEpE,MAAMr5Y,EAAO,IAAKq5Y,MAAiCpoa,KAAKu/Z,iBAAkBA,GAG1E,GADaF,GAAaC,EAAY,CAAEN,UAAU,IAE9C,MAAM,IAAI35Z,MAAM,4CAEpB,MAAM8ja,EAAoB,CAAEjB,iBAAkBn5Y,EAAKs5Y,qBAC7Cp/X,QAAYjpC,KAAK4oa,cAActJ,EAAY6J,GAC3C9oU,QAAiBrgG,KAAKyla,eAAe,IACpC12Y,EACH22Y,aAAc32Y,EAAKs5Y,oBACnB/zY,OAAQ,MACR2U,SAyMR,SAAqCo3D,EAAU+oU,GAC3C,IACI,IAAK/oU,EAASt/F,KACV,MAAM,IAAIsE,MAAM,iCAEpB,IAAKg7F,EAASQ,QACV,MAAM,IAAIx7F,MAAM,oCAEpB,MAAMm5Z,EAAYn+T,EAASQ,QAAQ,qBACnC,IAAK29T,EACD,MAAM,IAAIn5Z,MAAM,sCAEpBo5Z,GAAgB,wCAAwCD,EAAW,+BACnE,MAAMwD,EAAU3hU,EAASQ,QAAQ,kBACjC,IAAKmhU,EACD,MAAM,IAAI38Z,MAAM,mCAEpB66Z,GAAuB,qCAAqC8B,EAAS,+BACrEqH,GAA8BD,EAAcpH,EAAS3hU,EAASQ,QAAQ,iBAE1E,MAAO3hF,GACH,MAAM,IAAI7Z,MAAO,8HAA6H6Z,MA1NlJoqZ,CAA4BjpU,EADPg/T,GAAaC,IAKlC,MAAO,CAAEh6Q,SAHQjlD,EAASt/F,KAGPy9Z,UAFDn+T,EAASQ,QAAQ,qBAELmhU,QADdwC,GAAcnkU,EAASQ,QAAQ,oBAa5C5pD,eAAesyX,GAAejK,EAAYC,GAE7C,MAAMxwY,EAAO,IAAKk5Y,MAA6Bjoa,KAAKu/Z,iBAAkBA,GAChEt2X,QAAYjpC,KAAK4oa,cAActJ,EAAYvwY,GAC3Cq6Y,EAAe/J,GAAaC,GAC5Bz+T,EAAU2oU,GAA2Bz6Y,EAAKrS,OAE1C2jF,QAAiBrgG,KAAKyla,eAAe,IACpC12Y,EACH22Y,aAAc32Y,EAAKm5Y,iBACnB5zY,OAAQ,MACR2U,MACA43D,YAGJ4oU,GAA+BppU,EAAU+oU,GAKzC,MAAO,CAAEroa,KAJIs/F,EAASt/F,KAIPg0J,YAHK10D,EAASQ,QAAQ,gBAGT29T,UAFVn+T,EAASQ,QAAQ,qBAEImhU,QADvBwC,GAAcnkU,EAASQ,QAAQ,oBAa5C5pD,eAAeyyX,GAAkBtlZ,EAAQm7Y,GAE5C,MAAMxwY,EAAO,IAAKu5Y,MAAiCtoa,KAAKu/Z,iBAAkBA,GACpEt2X,QAAYjpC,KAAK8oa,UAAU1kZ,EAAQ2K,GACnC8xE,EAAU2oU,GAA2Bz6Y,EAAKrS,QAEzC2jF,GAAY2hU,QAASoH,UAAwB1yZ,QAAQ0yG,IAAI,CAC5DppH,KAAKyla,eAAe,IACb12Y,EACH22Y,aAAc32Y,EAAKm5Y,iBACnB5zY,OAAQ,MACR2U,MACA43D,YAEJ7gG,KAAK2pa,WAAWvlZ,KAEpBqlZ,GAA+BppU,EAAU+oU,GAKzC,MAAO,CAAEroa,KAJIs/F,EAASt/F,KAIPg0J,YAHK10D,EAASQ,QAAQ,gBAGT29T,UAFVn+T,EAASQ,QAAQ,qBAEImhU,QADvBwC,GAAcnkU,EAASQ,QAAQ,oBAa5C5pD,eAAeyhX,GAAS4G,EAAYC,GAEvC,MAAMxwY,EAAO,IAAKk5Y,MAA6Bjoa,KAAKu/Z,iBAAkBA,GAChEt2X,QAAYjpC,KAAK4oa,cAActJ,EAAYvwY,GAEjD,OADA3W,OAAOsB,KAAKuvB,EAAK,UACVA,EAYJgO,eAAe2yX,GAAYxlZ,EAAQm7Y,GAEtC,MAAMxwY,EAAO,IAAKu5Y,MAAiCtoa,KAAKu/Z,iBAAkBA,GACpEt2X,QAAYjpC,KAAK8oa,UAAU1kZ,EAAQ2K,GAGzC,OADA3W,OAAOsB,KAAKuvB,EAAK,UACVA,EAYJgO,eAAe0yX,GAAWvlZ,EAAQm7Y,GAErC,MAAMxwY,EAAO,IAAK05Y,MAAgCzoa,KAAKu/Z,iBAAkBA,GACnEt2X,QAAYjpC,KAAKkpa,aAAa9kZ,EAAQ2K,GAEtCsxE,QAAiBrgG,KAAKyla,eAAe,IACpC12Y,EACH22Y,aAAc32Y,EAAK25Y,mBACnBp0Y,OAAQ,MACR2U,QAGJ,GAmGJ,SAAoCo3D,GAChC,IACI,IAAKA,EAASt/F,KACV,MAAM,IAAIsE,MAAM,iCAEhBg7F,EAASt/F,KAAKiha,QAEd9B,GAAsB,wBAAyB7/T,EAASt/F,KAAKiha,QAAS,6BAEjE3hU,EAASt/F,KAAK0oK,UAEnBw2P,GAAe,yBAA0B5/T,EAASt/F,KAAK0oK,SAAU,6BACjEg1P,GAAe,mCAAoCp+T,EAASt/F,KAAK0oK,SAAS49P,UAAW,6BACrF5I,GAAe,iCAAkCp+T,EAASt/F,KAAK0oK,SAAS69P,QAAS,8BAIjFjJ,GAAqB,gBAAiBh+T,EAASt/F,KAAM,uBAAwB,+CAGrF,MAAOme,GACH,MAAM,IAAI7Z,MAAO,gJAA+I6Z,MAzHpK2qZ,CAA2BxpU,GACvBA,EAASt/F,KAAKiha,QACd,MAAO,CAAEjha,KAAMs/F,EAASt/F,KAAMiha,QAAS3hU,EAASt/F,KAAKiha,SAEpD,CAED,MAAM8H,EAAYtC,GAAannU,EAASt/F,KAAK0oK,SAAS49P,UAAWhnU,EAASt/F,KAAK0oK,SAAS69P,QAAS,CAC7FvE,kBAAkB,IAEtB,MAAO,CAAEhia,KAAMs/F,EAASt/F,KAAMiha,QAAS8H,IAS/C,SAASN,GAA2B9sZ,GAChC,MAAMmkF,EAAU,GAIhB,OAHInkF,IACAmkF,EAAO,MAAYnkF,GAEhBmkF,EASX,SAAS4oU,GAA+BppU,EAAU+oU,GAC9C,IAEI,IAAK/oU,EAASt/F,MAA0B,KAAlBs/F,EAASt/F,KAC3B,MAAM,IAAIsE,MAAM,iCAEpB,IAAKg7F,EAASQ,QACV,MAAM,IAAIx7F,MAAM,oCAEpB,MAAM0vJ,EAAc10D,EAASQ,QAAQ,gBACrC,IAAKk0D,EACD,MAAM,IAAI1vJ,MAAM,iCAEpBo5Z,GAAgB,mCAAmC1pQ,EAAa,kCAChE,MAAMypQ,EAAYn+T,EAASQ,QAAQ,qBACnC,IAAK29T,EACD,MAAM,IAAIn5Z,MAAM,sCAEpBo5Z,GAAgB,wCAAwCD,EAAW,kCACnE,MAAMwD,EAAU3hU,EAASQ,QAAQ,kBACjC,IAAKmhU,EACD,MAAM,IAAI38Z,MAAM,mCAEpB66Z,GAAuB,qCAAqC8B,EAAS,kCAErEqH,GAA8BD,EAAcpH,EAD9B3hU,EAASQ,QAAQ,iBAGnC,MAAO3hF,GACH,MAAM,IAAI7Z,MAAO,kIAAiI6Z,MAwE1J,SAASmqZ,GAA8BD,EAAcW,EAAUC,GAC3D,IAAIC,EAAa,GACjB,IAEI,GAAID,IACAC,EAAanyZ,KAAK62C,MAAMq7W,IACnBC,GACD,MAAM,IAAI5ka,MAAM,iDAI5B,MAAO6Z,GACH,MAAM,IAAI7Z,MAAO,kDAAiD6Z,KAEtE,GJ7ZG,SAAqB8iZ,GACxB,MAAMh8R,EAAMy9R,GAAczB,GAI1B,OAsByBsB,EAxBZ,IAAI15N,SAAS5jE,EAAIx/H,QACRg9Z,UAAU,GAAG,GAwBT,KAAP,EAAXF,GADZ,IAA6BA,EIkYrB4G,CAAYd,GAAhB,CACI,GAAIA,IAAiBW,EACjB,MAAM,IAAI1ka,MAAM,+DAGpB,GAAI2ka,EACA,MAAM,IAAI3ka,MAAM,gEANxB,CAYA,GAAI+ja,IAAiBW,EAEjB,MAAM,IAAI1ka,MAAM,oEDrKjB,SAA+B2ka,EAAOj7Y,GACzC,IAAIo7Y,EACAC,EAAuB,OAATr7Y,QAA0B,IAATA,OAAkB,EAASA,EAAKo7Y,gBACnE,MAAMJ,EAAoB,OAATh7Y,QAA0B,IAATA,OAAkB,EAASA,EAAKizY,QAElE,GAAqB,IAAjBgI,EAAMtqa,OACN,MAAM,IAAI2F,MAAM,2CAGpB,IAAK,MAAMf,KAAS0la,EAAO,CACvB,GAlUoC,IAkUhC1la,EAAMoC,KACN,MAAM,IAAIrB,MAAO,wCAAuCf,EAAMoC,SAElE,MAAMqkD,EAAYzmD,EAAM+ia,UAAUzma,IAC5Bmja,EAAiBpyZ,uBAAYo5C,GAC7Bs/W,EAAelJ,GAAY4C,GAC3BlgZ,EAAUvf,EAAMgja,QAChBvma,EAAOuD,EAAMvD,KACbmma,EAAiBhG,GAAgB58Z,EAAMm8L,WAE7C,IAAIqpO,EAAYtC,GAAa6C,EAAcxmZ,EAAS,CAAEk/Y,kBAAkB,IAExE,GADA+G,EAAYnL,GAAcmL,EAAW9L,IACjCoM,GAAeN,IAAcM,EAC7B,MAAM,IAAI/ka,MAAM,yCAGf8ka,IACDA,EAAkBL,GAGtB,MAAMQ,EAAUpJ,GAAgBnga,GAC1Biha,EAAUG,GAAoBmI,GAE9BC,EAAgB,CAClB1mZ,UACA9iB,KAAMupa,EACNpH,SAAUh4S,OAAO5mH,EAAM4+Z,WAK3B,GAFAzC,GAAsB,iBAAkByG,EAAgB,iBAAkBzE,IAC1EhC,GAAsB,iBAAkBsD,EAAgB,YAAavB,GAAoB,IACpFj2Y,QAAKm/B,SAASE,OAAOi3W,GAAkB0H,GAAe,GAAOrD,EAAgBnD,GAE9E,MAAM,IAAI1+Z,MAAM,sFAEpB+ka,EAAcpI,EAElB,GAAI+H,GAAYK,IAAgBL,EAC5B,MAAM,IAAI1ka,MAAM,yCCuHpBmla,CAAsBP,EAAY,CAAEE,gBAAiBf,EAAcpH,QAAS+H,K,aCpfzE,MAUMU,GAA0C,GA4BhD,SAASC,GAAgB3pa,EAAMH,GAIlC,GAHA4/Z,GAAmB,OAAQz/Z,EAAM,aACjC0/Z,GAAsB,MAAO7/Z,EAAK,YApCD,KA4N9B,SAA0BjC,GAC7B,MAAMgsa,EAAM,KAEZ,IAAK,IAAInra,EAAI,EAAGA,EAAI,GAAIA,IACpB,GAAIb,GAAmB,IAAV,GAAKa,GAAUmra,EAAK,CAE7B,OAAOhsa,GADyB,GAAV,GAAKa,GAASmra,KACL,EAIvC,MAAM,IAAItla,MAAM,wDAhMXula,CAAiB7pa,EAAKrB,QACvB,MAAM,IAAI2F,MAAO,sEAAqEtE,EAAKrB,qCAAqCmra,GAAY9pa,EAAKrB,YAGrJ,MAAM8qD,EAAQzpD,EAAKuC,MAAM,EA/BU,IAkC7Bwna,GAFN/pa,EAAOA,EAAKuC,MAhCuB,KAkCRA,MAAM,EAvCkB,IAwCnDvC,EAAOA,EAAKuC,MAxCuC,IAyCnD,MAAMgiJ,EAgMV,SAAqCt3I,GAEjCyyZ,GAAsB,QAASzyZ,EAAO,gCAAiCy8Z,IAEvE,MAAO,CACHj0Y,QAFYxoB,EAAM,IAnML+8Z,CAA4BD,GAC7C,GApD2C,IAoDvCxlR,EAAS9uH,QACT,MAAM,IAAInxB,MAAO,gDAA+CigJ,EAAS9uH,sCAG7E,IAAIw0Y,EAAiB1gX,aAAU5wC,KAAK3Y,EAAMypD,EAAO5pD,GACjD,IAAKoqa,EACD,MAAM,IAAI3la,MAAM,+CAIpB,IAAI4la,EAAeD,EAAetra,OAClC,KAAOura,EAAe,GAA0C,IAArCD,EAAeC,EAAe,IACrDA,IAIJ,OAFAD,EAAiBA,EAAe1na,MAAM,EAAG2na,GAElCnzZ,KAAK62C,MAAMsyW,GAAuB+J,IAUtC,SAASE,GAAgBh2R,EAAMoQ,EAAU1kJ,GAC5Cq/Z,GAAe,OAAQ/qR,EAAM,aAC7Bsb,GAAe,mBAAoBlL,EAAS9uH,QAAS,aACrDiqY,GAAsB,MAAO7/Z,EAAK,YA7ED,IA+EjC,IAAIG,EAAOiga,GAAuBlpZ,KAAKC,UAAUm9H,IAEjD,MACMkO,EAAYynR,GAAY9pa,EAAKrB,OADbyra,OAEtBpqa,EAAO,IAAIkE,WAAW,IAAIlE,KAAS,IAAIkE,WAAWm+I,EAAYriJ,EAAKrB,UAEnE,MAAM8qD,EAAQ,IAAIvlD,WAAWolD,KA1EM,KA4E7B+gX,EAAiB9gX,qBAAUvpD,EAAMypD,EAAO5pD,GAExCkqa,EAqKH,SAAqCxlR,GACxC,MAAMt3I,EAAQ,IAAI/I,WAAWwla,IAE7B,GAAInlR,EAAS9uH,SAAW,KAAU8uH,EAAS9uH,QAAU,EACjD,MAAM,IAAInxB,MAAO,qBAAoBigJ,EAAS9uH,2CAIlD,OADAxoB,EAAM,GAAKs3I,EAAS9uH,QACbxoB,EA7Keq9Z,CAA4B/lR,GAC5CgmR,EAAa,IAAIrma,WAAW,IAAI6la,KAAkBM,IAExD,OAAO,IAAInma,WAAW,IAAIulD,KAAU8gX,IAQjC,SAASC,GAA8BC,GAC1C,MAAMx9Z,EAAQ,IAAI/I,WAAW,IAAIygU,GA5Eb,iBA4EyCA,GAAO8lG,KAGpE,OAFkB9lG,GAAO13T,GAER1K,MAAM,EAxGU,IAgH9B,SAASmoa,GAAyBD,GACrC,IAAIE,EAAYhmG,GAAO,IAAIzgU,WAAW,IAAIygU,GA1FjB,iCA0FkDA,GAAO8lG,MAGlF,OADAE,EAAYA,EAAUpoa,MAAM,EN1HL,IM2HhB69Z,GAAYuK,GAiFhB,SAASb,GAAYc,GAGxB,IAAK,IAAInsa,EAAI,EAAGA,EAAI,GAAIA,IACpB,GAAImsa,GAA0B,IAAV,GAAKnsa,GAHjB,KAGgC,CACpC,MAAMosa,EAA0B,GAAV,GAAKpsa,GAJvB,KAKJ,IAAI4jJ,EAAYuoR,EAIhB,OAHIvoR,EAAYwoR,IAAiB,IAC7BxoR,EAAYuoR,EAAeA,EAAcC,EAAgBA,GAEtDxoR,EAIf,MAAM,IAAI/9I,MAAM,+CCxNb,SAASwma,GAA4B12Y,GAGxC,OAAOgsY,GAFK,IAAI2K,GAAwB32Y,GACtBi7F,WAGf,MAAM07S,GACTx1Z,YAAY6e,GACR,MAAMktH,EA2BP,SAAmBltH,GACtB,OAAOA,EAAK/X,MAAM,KA5BA2uZ,CAAU52Y,GAClB62Y,EAAa3pR,EAAM7hJ,IAAIyra,IAC7Bjsa,KAAKw2B,QAhB6B,EAiBlCx2B,KAAKm1B,KAAO62Y,EAEhBxyY,SACI,MAAM76B,EAAO,EAAI,GAAKqB,KAAKm1B,KAAKz1B,OAC1BgJ,EAAM,IAAIzD,WAAWtG,GAC3B+J,EAAI4I,IAAI,CAACtR,KAAKw2B,UACd,IAAIxtB,EAAS,EACb,IAAK,MAAMkja,KAAalsa,KAAKm1B,KACzBzsB,EAAI4I,IAAI46Z,EAAWlja,GACnBA,GAAU,GAEd,OAAON,EAEX0nH,UAEI,OAAOuyS,GADU3ia,KAAKw5B,WAoBvB,SAASyyY,GAAkBl4Y,GAC9B,OAAO4uY,GAAQ3B,GAAuBjtY,ICzC1C,MAKao4Y,GAA2B,IACjC5K,MACAiF,MACAyB,GACHmE,oBAAgB1ta,GAMP2ta,GAA2B,IACjC9K,MACAoD,MACAwH,MACAzF,IAeAzvX,eAAeq1X,GAAQvhX,EAAWlnC,EAAS07Y,GAC9CC,GAAuB,gBAAiBD,EAAe,YAAa4M,IAEpE,MAAMp9Y,EAAO,IACNo9Y,MACAnsa,KAAKu/Z,iBACLA,GAGDj7Z,QAAcioa,GAAsBvsa,KAAM+qD,EAAWlnC,EAASkL,GACpE,GAAc,OAAVzqB,EACA,MAAO,CAAEvD,KAAM,KAAMgpa,SAAU,MAInC,MAAM,YAAEyC,EAAF,SAAezC,GAAa0C,GAAcnoa,EAAMvD,MAAM,GAE5D,GAAI2ra,GAAoBF,EAAaz9Y,EAAKq9Y,gBACtC,MAAO,CAAErra,KAAM,KAAMgpa,YAGzB,MAAM4C,EAAehL,GAAe5yY,EAAMk5Y,KACpC,KAAElna,SAAef,KAAKupa,eAAeQ,EAAU4C,GACrD,GAAoB,kBAAT5ra,GAA8B,OAATA,EAC5B,MAAM,IAAIsE,MAAO,wCAAuCwe,mBAE5D,IAAM9iB,EAAI,QAAaA,EAAI,GAEvB,MAAO,CAAEA,OAAMgpa,YAEnB,MAAM6C,EAAa7ra,EAAI,MACvB,GAA0B,kBAAf6ra,GAAoC,OAAT7ra,EAClC,MAAM,IAAIsE,MAAO,gDAA+Cwe,mBAEpE,MAAO,CAAE9iB,KAAM6ra,EAAY7C,YAaxB9yX,eAAe41X,GAAQzsO,EAAYv8K,EAASqxH,EAAMqqR,GACrDe,GAAkB,aAAclgO,EAAY,aAC5Cq+N,GAAe,UAAW56Y,EAAS,aACnCo8Y,GAAe,OAAQ/qR,EAAM,aAC7BsqR,GAAuB,gBAAiBD,EAAe,YAAa8M,IACpE,MAAMt9Y,EAAO,IACNs9Y,MACArsa,KAAKu/Z,iBACLA,IAECx0W,UAAW+8W,GAAmBv7Y,QAAK2+B,QAAQC,cAAc+1W,GAAgB9gO,KAC1E97L,EAAOyla,SAAkB+C,GAAyB9sa,KAAMmha,GAAY2G,GAAiBjkZ,EAASqxH,EAAMnmH,GAErGg+Y,EAAepL,GAAe5yY,EAAM23Y,IAE1C,aADM1ma,KAAKypK,SAASi+P,SAAStnO,EAAY97L,EAAOyoa,GACzC,CAAEhsa,KAAMm0I,EAAM60R,SAAUvF,GAAcuF,IAW1C9yX,eAAe+1X,GAAW5sO,EAAYv8K,EAAS07Y,GAClDe,GAAkB,aAAclgO,EAAY,aAC5Cq+N,GAAe,UAAW56Y,EAAS,aACnC27Y,GAAuB,gBAAiBD,EAAe,YAAa8M,IACpE,MAAMt9Y,EAAO,IACNs9Y,MACArsa,KAAKu/Z,iBACLA,IAECx0W,UAAW+8W,GAAmBv7Y,QAAK2+B,QAAQC,cAAc+1W,GAAgB9gO,IAC3E6sO,EAAetL,GAAe5yY,EAAMy3Y,IACpClia,QAAc4oa,GAAqBlta,KAAMmha,GAAY2G,GAAiBjkZ,EAAS,IAAI5e,WAAWk+Z,IAAmB8J,GAEjHF,EAAepL,GAAe5yY,EAAM23Y,UACpC1ma,KAAKypK,SAASi+P,SAAStnO,EAAY97L,EAAOyoa,GAY7C91X,eAAek2X,GAAY/sO,EAAYv8K,EAASkmZ,EAAUxK,GAC7De,GAAkB,aAAclgO,EAAY,aAC5Cq+N,GAAe,UAAW56Y,EAAS,aACnC46Y,GAAe,WAAYsL,EAAU,aACrCvK,GAAuB,gBAAiBD,EAAe,YAAa8M,IACpE,MAAMt9Y,EAAO,IACNs9Y,MACArsa,KAAKu/Z,iBACLA,IAECx0W,UAAW+8W,GAAmBv7Y,QAAK2+B,QAAQC,cAAc+1W,GAAgB9gO,IAC3E6sO,EAAetL,GAAe5yY,EAAMy3Y,IACpClia,QAAc4oa,GAAqBlta,KAAMmha,GAAY2G,GAAiBjkZ,EAAS4/Y,GAAcsG,GAAWkD,GAExGF,EAAepL,GAAe5yY,EAAM23Y,UACpC1ma,KAAKypK,SAASi+P,SAAStnO,EAAY97L,EAAOyoa,GAe7C91X,eAAem2X,GAAYriX,EAAWlnC,EAE7C07Y,GACIC,GAAuB,gBAAiBD,EAAe,YAAa4M,IAEpE,MAAMp9Y,EAAO,IACNo9Y,MACAnsa,KAAKu/Z,iBACLA,GAGDj7Z,QAAcioa,GAAsBvsa,KAAM+qD,EAAWlnC,EAASkL,GACpE,GAAc,OAAVzqB,EACA,MAAO,CAAEvD,KAAM,KAAMgpa,SAAU,MAInC,MAAM,YAAEyC,EAAF,SAAezC,GAAa0C,GAAcnoa,EAAMvD,MAAM,GAE5D,GAAI2ra,GAAoBF,EAAaz9Y,EAAKq9Y,gBACtC,MAAO,CAAErra,KAAM,KAAMgpa,YAGzB,MAAM4C,EAAe,IACdhL,GAAe5yY,EAAMk5Y,IACxB9nU,aAAc,gBAEVp/F,KAAMyF,SAAiBxG,KAAKupa,eAAeQ,EAAU4C,GAC7D,MAAO,CAAE5ra,KAAM,IAAIkE,WAAWuB,GAASuja,YAmEpC9yX,eAAei2X,GAAqBvyR,EAAQ5vF,EAAWlnC,EAAS9iB,EAAMw+Z,GAEzE,MAAMxwY,EAAO,IACNy3Y,MACA7rR,EAAO4kR,iBACPA,GAYP,MALc,CACV17Y,UACA9iB,OACAmia,SALamK,UADS1yR,EAAO8uB,SAASskN,SAAShjU,EAAWlnC,EAASkL,IACjBzqB,QAoBnD2yC,eAAe61X,GAAyBnyR,EAAQ5vF,EAAWlnC,EAASqxH,EAAMqqR,GAE7E,MAAMxwY,EAAO,IACNs9Y,MACA1xR,EAAO4kR,iBACPA,GAGD+N,EAAW,CAAEhsV,MAAO4zD,EAAMq4R,GAxSN,GA0S1B,IAAIC,EAAa3pZ,EACZkL,EAAKg0Y,mBACNyK,EAAarM,GAAYH,GAAuBn9Y,KAEpD,MAAM8gM,EAAO,IAAIzoG,KAAK,CAACpkG,KAAKC,UAAUu1Z,IAAa,MAAKE,IAAc,CAAE9ma,KAAM,qBAExE+ma,EAAa9L,GAAe5yY,EAAM41Y,IAClC+I,EAAiB/yR,EAAOuqR,WAAWvgN,EAAM8oN,GAIzCR,EAAetL,GAAe5yY,EAAMy3Y,IACpCmH,EAAehzR,EAAO8uB,SAASskN,SAAShjU,EAAWlnC,EAASopZ,IAE3DhG,EAAa2G,SAAiBl3Z,QAAQ0yG,IAAI,CAC7CukT,EACAD,IAEExK,EAAWmK,GAAyBpG,EAAY3ia,OAEhDyla,EAAWpL,GAAciP,EAAQ5L,QAAShE,IAC1Cj9Z,EAAOmha,GAAoB6H,GACjCtJ,GAAsB,OAAQ1/Z,EAAM,qBAAsBoia,IAM1D,MAAO,CALO,CACVt/Y,UACA9iB,OACAmia,YAEWsB,GAAcuF,IAS1B,SAASsD,GAAyB/oa,GACrC,IAAI4+Z,EAQJ,GANIA,EADU,OAAV5+Z,EACW4mH,OAAO,GAGP5mH,EAAM4+Z,SAAWh4S,OAAO,GAGnCg4S,EAAWtB,GACX,MAAM,IAAIv8Z,MAAM,kFAEpB,OAAO69Z,EAUJ,SAASwJ,GAAoBF,EAAaJ,GAC7C,QAAIA,GAEOI,KADPJ,EAAiBlM,GAAsB,iBAAkBkM,EAAgB,uBAcjFn1X,eAAes1X,GAAsB5xR,EAAQ5vF,EAAWlnC,EAASkL,GAC7D,MAAMk+Y,EAAetL,GAAe5yY,EAAMy3Y,KACpC,MAAElia,SAAgBq2I,EAAO8uB,SAASskN,SAAShjU,EAAWlnC,EAASopZ,GACrE,OAAc,OAAV3oa,GC7XD,SAA6Bq9E,EAAQC,GACxC,GAAID,EAAOjiF,QAAUkiF,EAAOliF,OACxB,OAAO,EAEX,IAAK,IAAIH,EAAI,EAAGA,EAAIoiF,EAAOjiF,OAAQH,IAC/B,GAAIoiF,EAAOpiF,IAAMqiF,EAAOriF,GACpB,OAAO,EAGf,OAAO,EDoXesua,CAAoBvpa,EAAMvD,KAAMqia,IAC3C,KAEJ9+Z,EAUX,SAASmoa,GAAc1ra,EAAM+sa,GACzB,IAAItB,EAAc,GAYlB,OAXIsB,GPxYmC,KOwYzB/sa,EAAKrB,OAEf8sa,EAAcvL,GAAuBlga,GAEhCA,EAAKrB,SAAWyja,GAErBqJ,EAAcrK,GAAoBpha,GAGlCs9Z,GAAqB,aAAct9Z,EAAM,sBAAwB,mBAE9D,CAAEyra,cAAazC,SAAUvF,GAAcgI,IE7Y3Cv1X,eAAeq1X,GAAQyB,EAAQ54Y,EAAMoqY,GACxCd,GAAe,SAAUsP,EAAQ,aACjCtP,GAAe,OAAQtpY,EAAM,aAC7BqqY,GAAuB,gBAAiBD,EAAe,YAAa4M,IACpE,MAAMp9Y,EAAO,IACNo9Y,MACAnsa,KAAKu/Z,iBACLA,GAED17Y,EAAUgoZ,GAA4B12Y,GAE5C,OADApG,EAAKg0Y,kBAAmB,QACX/ia,KAAKw2F,GAAG81U,QAAQyB,EAAQlqZ,EAASkL,GAe3CkoB,eAAeuwX,GAAauG,EAAQ54Y,GACvCspY,GAAe,SAAUsP,EAAQ,aACjCtP,GAAe,OAAQtpY,EAAM,aAI7B,OAAO64Y,GAAqBD,EAHZlC,GAA4B12Y,GAE/B,IAAKqxY,GAA2BzD,kBAAkB,IAa5D9rX,eAAeg3X,GAAaF,EAAQ54Y,EAAMoqY,GAC7Cd,GAAe,SAAUsP,EAAQ,aACjCtP,GAAe,OAAQtpY,EAAM,aAC7BqqY,GAAuB,gBAAiBD,EAAe,YAAaiH,IACpE,MAAMz3Y,EAAO,IACNy3Y,MACAxma,KAAKu/Z,iBACLA,GAED17Y,EAAUgoZ,GAA4B12Y,GAC5CpG,EAAKg0Y,kBAAmB,EACxB,MAAM,MAAEz+Z,SAAgBtE,KAAKypK,SAASskN,SAASggD,EAAQlqZ,EAASkL,GAChE,OAAKzqB,EAGE,CAAEvD,KAAMuD,EAAMvD,MAFV,CAAEA,KAAM,MAiBhBk2C,eAAei3X,GAAiBH,EAAQvC,EAE/CjM,GACId,GAAe,SAAUsP,EAAQ,aACjC3N,GAAkB,WAAYoL,EAAU,YAAa,IACrDhM,GAAuB,gBAAiBD,EAAe,YAAa4M,IACpE,MAAMp9Y,EAAO,IACNo9Y,MACAnsa,KAAKu/Z,iBACLA,EACHwD,kBAAkB,GAGhBl/Y,EAAU4nZ,GAAyBD,IACnC,KAAEzqa,SAAef,KAAKw2F,GAAG42U,YAAYW,EAAQlqZ,EAASkL,GAC5D,GAAa,OAAThuB,EACA,MAAO,CAAEA,KAAM,MAInB,MAAO,CAAEA,KADI2pa,GAAgB3pa,EADjBwqa,GAA8BC,KC1GvC,MAAM2C,GAAsB,IAC5B5M,GACH6M,YAAa,eAWVn3X,eAAeo3X,GAAW/O,EAAYC,GACzC,MAAMyC,EAAU9B,GAAsB,aAAcZ,EAAY,aAC1DvwY,EAAO,IAAKo/Y,MAAwBnua,KAAKu/Z,iBAAkBA,GAGjE,GADaF,GAAaC,EAAY,CAAEN,UAAU,IAE9C,MAAM,IAAI35Z,MAAM,4CAEpB,MAAMg7F,QAAiBrgG,KAAKyla,eAAe,IACpC12Y,EACH22Y,aAAc32Y,EAAKq/Y,YACnB95Y,OAAQ,OACRg6Y,UAAWtM,KAgBnB,SAA6B3hU,GACzB,IACI,IAAKA,EAASQ,QACV,MAAM,IAAIx7F,MAAM,kCAEpBo5Z,GAAe,qCAAsCp+T,EAASQ,QAAQ,kBAAmB,sBAE7F,MAAO3hF,GACH,MAAM,IAAI7Z,MAAO,wIAAuI6Z,MArB5JqvZ,CAAoBluU,GAEpB,IAAImuU,EAAkBnuU,EAASQ,QAAQ,kBAGvC,OADA2tU,EAAkBhK,GAAcgK,GACzB,CAAExM,QAASwM,GCrCtB,SAAS/8Y,GAAQjuB,GAAmV,OAAtOiuB,GAArD,oBAAX1lB,QAAoD,kBAApBA,OAAOkP,SAAmC,SAAiBzX,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXuI,QAAyBvI,EAAI8S,cAAgBvK,QAAUvI,IAAQuI,OAAOnM,UAAY,gBAAkB4D,GAAiBiuB,GAAQjuB,GAEnX,SAASqX,GAAmBzS,GAAO,OAQnC,SAA4BA,GAAO,GAAIuF,MAAMjJ,QAAQ0D,GAAM,OAAO0S,GAAkB1S,GAR1C2S,CAAmB3S,IAM7D,SAA0B4S,GAAQ,GAAsB,qBAAXjP,QAA0BA,OAAOkP,YAAY9b,OAAO6b,GAAO,OAAOrN,MAAMpI,KAAKyV,GANrDE,CAAiB9S,IAItF,SAAqC+S,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOL,GAAkBK,EAAGC,GAAS,IAAI5b,EAAIL,OAAOS,UAAUiH,SAAS/G,KAAKqb,GAAG7X,MAAM,GAAI,GAAc,WAAN9D,GAAkB2b,EAAE7E,cAAa9W,EAAI2b,EAAE7E,YAAY+E,MAAM,GAAU,QAAN7b,GAAqB,QAANA,EAAa,OAAOmO,MAAMpI,KAAK4V,GAAI,GAAU,cAAN3b,GAAqB,2CAA2C6Y,KAAK7Y,GAAI,OAAOsb,GAAkBK,EAAGC,GAJxTE,CAA4BlT,IAE1H,WAAgC,MAAM,IAAI5C,UAAU,wIAF8E+V,GAUlI,SAAST,GAAkB1S,EAAKvE,IAAkB,MAAPA,GAAeA,EAAMuE,EAAI1I,UAAQmE,EAAMuE,EAAI1I,QAAQ,IAAK,IAAIH,EAAI,EAAGic,EAAO,IAAI7N,MAAM9J,GAAMtE,EAAIsE,EAAKtE,IAAOic,EAAKjc,GAAK6I,EAAI7I,GAAM,OAAOic,EAEhL,SAASmxH,GAAU75F,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvtC,UAAU,sDAAyDstC,EAASlzC,UAAYT,OAAOy2B,OAAOmd,GAAcA,EAAWnzC,UAAW,CAAE0W,YAAa,CAAEnU,MAAO2wC,EAAUnvB,UAAU,EAAMzX,cAAc,KAAe6mC,GAAY84F,GAAgB/4F,EAAUC,GAEnX,SAAS84F,GAAgB1wH,EAAGxb,GAA+G,OAA1GksI,GAAkB1sI,OAAOs2B,gBAAkB,SAAyBta,EAAGxb,GAAsB,OAAjBwb,EAAEjW,UAAYvF,EAAUwb,GAAa0wH,GAAgB1wH,EAAGxb,GAErK,SAASmsI,GAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAiF,OAA3E7nH,KAAK3kB,UAAUiH,SAAS/G,KAAKmsI,QAAQC,UAAU3nH,KAAM,IAAI,iBAAyB,EAAQ,MAAOrkB,IAAK,OAAO,GANzPmsI,GAA6B,OAAO,WAAkC,IAAsCzyH,EAAlC0yH,EAAQ15F,GAAgBm5F,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY35F,GAAgB5yC,MAAMsW,YAAasD,EAASqyH,QAAQC,UAAUI,EAAO7sI,UAAW8sI,QAAqB3yH,EAAS0yH,EAAMvsI,MAAMC,KAAMP,WAAc,OAAO+sI,GAA2BxsI,KAAM4Z,IAE5Z,SAAS4yH,GAA2B/yH,EAAM3Z,GAAQ,OAAIA,GAA2B,WAAlB2xB,GAAQ3xB,IAAsC,oBAATA,EAA8CwsD,GAAuB7yC,GAAtC3Z,EAEnI,SAASwsD,GAAuB7yC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIk5B,eAAe,6DAAgE,OAAOl5B,EAI/J,SAASm5B,GAAgBz3B,GAAwJ,OAAnJy3B,GAAkBzzC,OAAOs2B,eAAiBt2B,OAAO0zC,eAAiB,SAAyB13B,GAAK,OAAOA,EAAEjW,WAAa/F,OAAO0zC,eAAe13B,IAAcy3B,GAAgBz3B,GAExM,SAASg0F,GAAgB7/D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAEhH,SAASgqC,GAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAE7S,SAAS2/D,GAAa7/D,EAAaG,EAAYC,GAAmJ,OAAhID,GAAYF,GAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,GAAkBD,EAAaI,GAAqBJ,EAEzM,IAAIk/X,GAAS,WAEb,SAASC,KACP,IAAIC,EAAO,EACX,OAAO,WACL,IAAI9ra,EAAK8ra,EAET,OADAA,GAAQ,EACD9ra,GAUX,IAkFI+ra,GAlFAC,GAA+B,WACjC,SAASA,IACP1/T,GAAgBnvG,KAAM6ua,GAEtB7ua,KAAK22I,WAAa,GA2EpB,OAtEAvnC,GAAay/T,EAAiB,CAAC,CAC7Bjua,IAAK,mBACLuB,MAAO,SAA0B8lZ,EAAWnyT,GAC1C,IAAIttD,EAAYxoC,KAAK22I,WAAWsxQ,GAE3Bz/W,IACHA,EAAY,IAAIm0D,IAChB38F,KAAK22I,WAAWsxQ,GAAaz/W,GAG/BA,EAAUvqB,IAAI63E,KAIf,CACDl1F,IAAK,sBACLuB,MAAO,SAA6B8lZ,EAAWnyT,GAC7C,IAAIttD,EAAYxoC,KAAK22I,WAAWsxQ,GAE3Bz/W,GAILA,EAAS,OAAWstD,KAIrB,CACDl1F,IAAK,OACLuB,MAAO,SAAc8lZ,GACnB,IAAI9jS,EAAQnkH,KAEZ,OAAO,IAAI0W,SAAQ,SAAUF,GAO3B2tG,EAAMhwB,iBAAiB8zT,GANR,SAASnyT,EAAS/0F,GAC/BojH,EAAM/vB,oBAAoB6zT,EAAWnyT,GAErCt/E,EAAQzV,WAQb,CACDH,IAAK,OACLuB,MAAO,SAAc8lZ,EAAWlnZ,GAC9B,IAAIynC,EAAYxoC,KAAK22I,WAAWsxQ,GAE3Bz/W,GAILA,EAAUn1B,SAAQ,SAAUyiF,GAC1BA,EAAS/0F,QAKZ,CACDH,IAAK,qBACLuB,MAAO,WACLhD,OAAO2iB,OAAO9hB,KAAK22I,YAAYtjI,SAAQ,SAAUm1B,GAC3CA,GACFA,EAAUi4D,eAMXouU,EA/E0B,GAmKnC,SAASC,GAAUhna,GACjB,OAAOA,GAAKA,EAAEpB,OAAS+na,GA2BzB,SAASM,GAAkB9Y,GACzB,MAAO,YAAYnzZ,OAAOmzZ,GAG5B,SAAS+Y,GAAkB/Y,GACzB,MAAO,YAAYnzZ,OAAOmzZ,IAhH5B,SAAW2Y,GACTA,EAAW,iBAAuB,oBAClCA,EAAW,kBAAwB,qBACnCA,EAAW,KAAW,OACtBA,EAAW,SAAe,WAC1BA,EAAW,MAAY,QACvBA,EAAW,MAAY,QACvBA,EAAW,SAAe,WAP5B,CAQGA,KAAgBA,GAAc,KA2GjC,IAwLIK,GAxLAC,GAA0B,SAAUC,GACtCxiS,GAAUuiS,EAAYC,GAEtB,IAAI3oT,EAASslB,GAAaojS,GAE1B,SAASA,EAAWE,EAAW7mL,GAC7B,IAAI76G,EASJ,OAPAv+B,GAAgBnvG,KAAMkva,IAEtBxhS,EAASlnB,EAAO1mH,KAAKE,OACd2C,SAAW+ra,KAClBhhS,EAAO0hS,UAAYA,EACnB1hS,EAAO66G,UAAYA,EACnB76G,EAAO2hS,wBAA0B3hS,EAAO0hS,UAAUE,mBAAmB5hS,EAAO6hS,kBAAkBz9U,KAAKxlC,GAAuBohF,KACnHA,EAwET,OArEAt+B,GAAa8/T,EAAY,CAAC,CACxBtua,IAAK,oBACLuB,MAAO,SAA2BuxB,GAChC,IA7CiB5rB,EA6Cb/G,EAAO2yB,EAAM3yB,KAEZ+ta,GAAU/ta,KAIXf,KAAKuoP,YAAcxnP,EAAKwnP,YAlDzBumL,GADchna,EAuDC/G,IAtDC+G,EAAEghG,SAAW8lU,GAAYY,KAuD1Cxva,KAAKqoC,KAAKumY,GAAYY,KAAMzua,IApDpC,SAA2B+G,GACzB,OAAOgna,GAAUhna,IAAMA,EAAEghG,SAAW8lU,GAAY32O,SAoDjCw3O,CAAkB1ua,IA7CnC,SAAwB+G,GACtB,OAAOgna,GAAUhna,IAAMA,EAAEghG,SAAW8lU,GAAY9/X,MA8CjC4gY,CAAe3ua,GAnDhC,SAA2B+G,GACzB,OAAOgna,GAAUhna,IAAMA,EAAEghG,SAAW8lU,GAAYe,SAoDjCC,CAAkB7ua,IAC3Bf,KAAKqoC,KAAK0mY,GAAkBhua,EAAKk1Z,WAAYl1Z,GAF7Cf,KAAKqoC,KAAKumY,GAAY9/X,MAAO/tC,GAF7Bf,KAAKqoC,KAAK2mY,GAAkBjua,EAAKk1Z,WAAYl1Z,OAOhD,CACDH,IAAK,eACLuB,MAAO,SAAsBuoC,EAAY1uB,EAAM6zZ,GAC7C,IAAI5Z,EAAYj2Z,KAAK2C,WACjBmta,EAAgBf,GAAkB9Y,GAClC8Z,EAAgBf,GAAkB/Y,GAClCh8Y,EAvIV,SAA2BsuO,EAAW0tK,EAAWvrX,EAAY1uB,GAC3D,MAAO,CACLtV,KAAM+na,GACN3lU,OAAQ8lU,GAAYY,KACpBjnL,UAAWA,EACX0tK,UAAWA,EACXvrX,WAAYA,EACZ1uB,KAAMA,GAgIUg0Z,CAAkBhwa,KAAKuoP,UAAW0tK,EAAWvrX,EAAY1uB,GAEvE,OADAhc,KAAKova,UAAU1zJ,YAAYzhQ,EAAS41Z,GAC7B,CACLC,cAAeA,EACfC,cAAeA,KAGlB,CACDnva,IAAK,kBACLuB,MAAO,SAAyB8zZ,EAAW9zZ,EAAO0U,EAAOg5Z,GACnDh5Z,aAAiBxR,QACnBwR,EAAQ,CACNwE,KAAMxE,EAAMwE,KACZpB,QAASpD,EAAMoD,UAInB,IAAIA,EA7IV,SAA8BsuO,EAAW0tK,EAAWr8Y,EAAQ/C,GAC1D,IAAIoD,EAAU,CACZvT,KAAM+na,GACN3lU,OAAQ8lU,GAAY32O,SACpBswD,UAAWA,EACX0tK,UAAWA,GAWb,YARev3Z,IAAXkb,IACFK,EAAQL,OAASA,QAGLlb,IAAVmY,IACFoD,EAAQpD,MAAQA,GAGXoD,EA6HWg2Z,CAAqBjwa,KAAKuoP,UAAW0tK,EAAW9zZ,EAAO0U,GACrE7W,KAAKova,UAAU1zJ,YAAYzhQ,EAAS41Z,KAErC,CACDjva,IAAK,mBACLuB,MAAO,SAA0B8zZ,EAAWia,EAAYl0Z,GACtD,IAAI/B,EAhIV,SAA+BsuO,EAAW0tK,EAAWia,EAAYl0Z,GAC/D,MAAO,CACLtV,KAAM+na,GACN3lU,OAAQ8lU,GAAYe,SACpBpnL,UAAWA,EACX0tK,UAAWA,EACXia,WAAYA,EACZl0Z,KAAMA,GAyHUm0Z,CAAsBnwa,KAAKuoP,UAAW0tK,EAAWia,EAAYl0Z,GAC3Ehc,KAAKova,UAAU1zJ,YAAYzhQ,KAE5B,CACDrZ,IAAK,eACLuB,MAAO,SAAsB8lZ,EAAW3wY,EAASu4Z,GAC/C,IAAI51Z,EA3HV,SAA4BsuO,EAAW0/J,EAAW3wY,GAChD,MAAO,CACL5Q,KAAM+na,GACN3lU,OAAQ8lU,GAAY9/X,MACpBy5M,UAAWA,EACX0/J,UAAWA,EACX3wY,QAASA,GAqHO84Z,CAAmBpwa,KAAKuoP,UAAW0/J,EAAW3wY,GAC5DtX,KAAKova,UAAU1zJ,YAAYzhQ,EAAS41Z,KAErC,CACDjva,IAAK,QACLuB,MAAO,WACLnC,KAAKqva,0BACLrva,KAAKooC,yBAIF8mY,EAvFqB,CAwF5BL,IAEEwB,GAAyC,SAAUC,GACrD3jS,GAAU0jS,EAA2BC,GAErC,IAAIC,EAAUzkS,GAAaukS,GAE3B,SAASA,EAA0BjB,EAAW7mL,GAC5C,IAAIv6G,EAQJ,OANA7+B,GAAgBnvG,KAAMqwa,IAEtBriS,EAASuiS,EAAQzwa,KAAKE,OACfova,UAAYA,EACnBphS,EAAOu6G,UAAYA,EACnBv6G,EAAOqhS,wBAA0BrhS,EAAOohS,UAAUE,mBAAmBthS,EAAOuhS,kBAAkBz9U,KAAKxlC,GAAuB0hF,KACnHA,EAmCT,OAhCA5+B,GAAaihU,EAA2B,CAAC,CACvCzva,IAAK,oBACLuB,MAAO,SAA2BuxB,GAChC,IA1I8B5rB,EA0I1B/G,EAAO2yB,EAAM3yB,KAEZ+ta,GAAU/ta,KAIXf,KAAKuoP,YAAcxnP,EAAKwnP,WA/IzBumL,GAD2Bhna,EAoJC/G,IAnJZ+G,EAAEghG,SAAW8lU,GAAY4B,mBAoJ1Cxwa,KAAKqoC,KAAKtnC,EAAKwnP,UAAWxnP,MAG7B,CACDH,IAAK,oBACLuB,MAAO,WACL,IAvOiComP,EAuO7BtuO,GAvO6BsuO,EAuOWvoP,KAAKuoP,UAtO9C,CACL7hP,KAAM+na,GACN3lU,OAAQ8lU,GAAY6B,iBACpBloL,UAAWA,IAqOT,OADAvoP,KAAKova,UAAU1zJ,YAAYzhQ,GACpBja,KAAKuoP,YAEb,CACD3nP,IAAK,QACLuB,MAAO,WACLnC,KAAKqva,0BACLrva,KAAKooC,yBAIFioY,EAjDoC,CAkD3CxB,IAkDF,SAAS6B,GAAoBR,GAC3B,MAAO,CACLxpa,KAAM+na,GACN14U,MAAOk5U,GAAUU,SACjBO,WAAYA,IARhB,SAAWjB,GACTA,EAAS,SAAe,WAD1B,CAEGA,KAAcA,GAAY,KAc7B,IAAI0B,GAAoC,SAAUC,GAChDjkS,GAAUgkS,EAAsBC,GAEhC,IAAIC,EAAU/kS,GAAa6kS,GAE3B,SAASA,EAAqBG,GAC5B,IAAIj3L,EAUJ,OARA1qI,GAAgBnvG,KAAM2wa,IAEtB92L,EAASg3L,EAAQ/wa,KAAKE,OACf+wa,YAAcD,EACrBj3L,EAAOm3L,cAAgB,GAEvBn3L,EAAOk3L,YAAY58U,iBAAiBy6U,GAAY9/X,MAAO+qM,EAAOo3L,aAAan/U,KAAKxlC,GAAuButL,KAEhGA,EA6FT,OA1FAzqI,GAAauhU,EAAsB,CAAC,CAClC/va,IAAK,QACLuB,MAAO,WACLnC,KAAKooC,uBAEN,CACDxnC,IAAK,kBACLuB,MAAO,SAAyBuoC,EAAYmlY,GAC1C7va,KAAKgxa,cAActmY,GAAcmlY,IAElC,CACDjva,IAAK,OACLuB,MAAO,SAAcuoC,GACnB,IAAK,IAAI3uB,EAAOtc,UAAUC,OAAQsc,EAAO,IAAIrO,MAAMoO,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAAKC,EAAO,GAAKxc,UAAUwc,GAG7B,OAAOjc,KAAKkxa,WAAWxmY,EAAY1uB,KAEpC,CACDpb,IAAK,aACLuB,MAAO,SAAoBuoC,EAAY1uB,GACrC,IAAI0hO,EAAS19O,KAETqS,EAAU5S,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO,IAAIiX,SAAQ,SAAUF,EAASD,GACpC,IAAI46Z,EAAgB,GAChBrnT,EAAY,GACZomT,EAAa,EACjBl0Z,EAAK3I,SAAQ,SAAUlO,GACF,oBAARA,GACT2kH,EAAUlgH,KAAKzE,GACfgsa,EAAcvna,KAAK8ma,GAAoBR,IACvCA,GAAc,GAEdiB,EAAcvna,KAAKzE,MAGvB,IAAIisa,EAAetnT,EAAUpqH,OAAS,EAClC2xa,OAAmB3ya,EAEnB0ya,IACFC,EAAmB,SAA0Btwa,GAC3C,IAAImva,EAAanva,EAAKmva,WAClBl0Z,EAAOjb,EAAKib,KAChB8tG,EAAUomT,GAAYnwa,MAAM+pH,EAAWjvG,GAAmBmB,MAI9D,IAGMs1Z,EAHFzB,EAAWx9Z,EAAQw9Z,cAENnxa,IAAbmxa,GAA0BnyL,EAAOszL,cAActmY,KAGjDmlY,GAAYyB,EAAuB5zL,EAAOszL,eAAetmY,GAAY3qC,MAAMuxa,EAAsBH,IAGnG,IAAII,EAAwB7zL,EAAOqzL,YAAYS,aAAa9mY,EAAYymY,EAAetB,GACnFC,EAAgByB,EAAsBzB,cACtCC,EAAgBwB,EAAsBxB,cAEtCqB,GACF1zL,EAAOqzL,YAAY58U,iBAAiB27U,EAAeuB,GAGrD3zL,EAAOqzL,YAAYl0Y,KAAKkzY,GAAe3gY,MAAK,SAAUixD,GAChDgxU,GACF3zL,EAAOqzL,YAAY38U,oBAAoB07U,EAAeuB,GAGxD,IAAIz3Z,EAASymF,EAASzmF,OAClB/C,EAAQwpF,EAASxpF,WAEPnY,IAAVmY,EACFN,EAAOM,GAEPL,EAAQoD,WAKf,CACDhZ,IAAK,eACLuB,MAAO,SAAsBpB,GAC3B,IAAIknZ,EAAYlnZ,EAAKknZ,UACjB3wY,EAAUvW,EAAKuW,QACnBtX,KAAKqoC,KAAK4/W,EAAW3wY,OAIlBq5Z,EA7G+B,CA8GtC9B,IAEE4C,GAAmC,WACrC,SAASA,EAAoBX,EAAYY,GACvCviU,GAAgBnvG,KAAMyxa,GAEtBzxa,KAAK+wa,YAAcD,EACnB9wa,KAAK2xa,SAAWD,EAChB1xa,KAAK4xa,gBAAkB,GACvB5xa,KAAK6xa,cAAgB,GAErB7xa,KAAK+wa,YAAY58U,iBAAiBy6U,GAAYY,KAAMxva,KAAK8xa,YAAYhgV,KAAK9xF,OAmF5E,OAhFAovG,GAAaqiU,EAAqB,CAAC,CACjC7wa,IAAK,OACLuB,MAAO,SAAc8lZ,EAAW3wY,GAC9B,IAAIjF,EAAU5S,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,GAC9Eowa,EAAWx9Z,EAAQw9Z,cAENnxa,IAAbmxa,GAA0B7va,KAAK6xa,cAAc5pB,KAC/C4nB,EAAW7va,KAAK6xa,cAAc5pB,GAAW3wY,IAG3CtX,KAAK+wa,YAAYgB,aAAa9pB,EAAW3wY,EAASu4Z,KAEnD,CACDjva,IAAK,aACLuB,MAAO,SAAoB0sU,GACzB7uU,KAAK2xa,SAAW9iG,IAEjB,CACDjuU,IAAK,YACLuB,MAAO,SAAmBuoC,EAAYpW,GACpCt0B,KAAK2xa,SAASjnY,GAAcpW,IAE7B,CACD1zB,IAAK,oBACLuB,MAAO,SAA2BuoC,EAAYmlY,GAC5C7va,KAAK4xa,gBAAgBlnY,GAAcmlY,IAEpC,CACDjva,IAAK,kBACLuB,MAAO,SAAyB8lZ,EAAW4nB,GACzC7va,KAAK6xa,cAAc5pB,GAAa4nB,IAEjC,CACDjva,IAAK,cACLuB,MAAO,SAAqBpB,GAC1B,IAAIyhP,EAASxiP,KAETi2Z,EAAYl1Z,EAAKk1Z,UACjBvrX,EAAa3pC,EAAK2pC,WAClB1uB,EAAOjb,EAAKib,KACZg2Z,EAAa,IAAIt7Z,SAAQ,SAAUF,EAASD,GAC9C,IAAI07Z,EAIJ,GAAsB,oBAFTzvL,EAAOmvL,SAASjnY,GAE7B,CAKA,IAAIwnY,EAAkBl2Z,EAAKxb,KAAI,SAAU2E,GACvC,IAnLexF,EAmLKwF,IAlLhBxF,EAAE+G,OAAS+na,IAAU9ua,EAAEo2F,QAAUk5U,GAAUU,SAkLrB,CACxB,IAAIO,EAAa/qa,EAAI+qa,WACrB,OAAO,WACL,IAAK,IAAI9zZ,EAAQ3c,UAAUC,OAAQsc,EAAO,IAAIrO,MAAMyO,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IACpFN,EAAKM,GAAS7c,UAAU6c,GAG1BkmO,EAAOuuL,YAAYoB,iBAAiBlc,EAAWia,EAAYl0Z,IAG7D,OAAO7W,EA7LnB,IAAyBxF,KAgMjB+W,QAAQF,SAASy7Z,EAAkBzvL,EAAOmvL,UAAUjnY,GAAY3qC,MAAMkya,EAAiBp3Z,GAAmBq3Z,KAAmB9iY,KAAK54B,GAAlI,MAAoJD,QAlBlJA,EAAO,IAAIlR,MAAM,eAAgBvC,OAAO4nC,EAAY,oCAoBxDsnY,EAAW5iY,MAAK,SAAUx1B,GACxB,IAAIi2Z,EAEArtL,EAAOovL,gBAAgBlnY,KACzBmlY,EAAWrtL,EAAOovL,gBAAgBlnY,GAAY9wB,IAGhD4oO,EAAOuuL,YAAYqB,gBAAgBnc,EAAWr8Y,OAAQlb,EAAWmxa,MAPnE,OAQY,SAAUh5Z,GACpB2rO,EAAOuuL,YAAYqB,gBAAgBnc,OAAWv3Z,EAAWmY,UAKxD46Z,EA5F8B,GA+FnCY,GAAkC,WACpC,SAASA,EAAmBvB,EAAYY,GACtCviU,GAAgBnvG,KAAMqya,GAEtBrya,KAAK+wa,YAAcD,EACnB9wa,KAAKsya,aAAe,IAAIb,GAAoBX,EAAYY,GACxD1xa,KAAKuya,cAAgB,IAAI5B,GAAqBG,GAsBhD,OAnBA1hU,GAAaijU,EAAoB,CAAC,CAChCzxa,IAAK,QACLuB,MAAO,WACLnC,KAAK+wa,YAAYl3Z,QAEjB7Z,KAAKwya,eAAe34Z,UAErB,CACDjZ,IAAK,cACLuB,MAAO,WACL,OAAOnC,KAAKsya,eAEb,CACD1xa,IAAK,eACLuB,MAAO,WACL,OAAOnC,KAAKuya,kBAITF,EA5B6B,GA+BlCI,GAAkB/D,KAElBgE,GAAW,SAAkB95M,EAAQ1pH,EAAWyjU,EAAaC,EAAaC,GAC5E,IAAIC,EAAU,GAEL,SAAS1ga,KACX88F,MAAgB4jU,EAAUF,GAAeA,EAAc,IAC1Dh6M,IACAk6M,GAAW,EACX/rY,WAAW30B,EAAIyga,KACL3jU,KAAe4jU,GAAWF,GAAeA,GAAe,GAClED,IAIJvga,IAeF,SAAS2ga,GAAgB3D,GACvB,IAAIsC,EAAejya,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,GACnFmza,EAAcnza,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,EAClFuza,EAAmBvza,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,GAAmBA,UAAU,GAAK,IACvFwza,EAAgBR,KAChBS,GAAY,EAChB,OAAO,IAAIx8Z,SAAQ,SAAUF,EAASD,GACpC,IAAI48Z,EAAsB,IAAI9C,GAA0BjB,EAAW6D,GACnEE,EAAoBt2Y,KAAKo2Y,GAAe7jY,MAAK,SAAUixD,GACrD6yU,GAAY,EACZC,EAAoBt5Z,QACpB,IAAI0uO,EAAYloJ,EAASkoJ,UACrBuoL,EAAa,IAAI5B,GAAWE,EAAW7mL,GACvCl2F,EAAa,IAAIggR,GAAmBvB,EAAYY,GACpDl7Z,EAAQ67I,MAEVqgR,IAAS,WACP,OAAOS,EAAoBC,uBAC1B,WACD,OAAOF,KACN,WACD,OAAO38Z,EAAO,IAAIlR,MAAM,2DACvButa,EAAaI,MA6BpB,IAsBIK,GAAkB,SAASA,EAAgB/zZ,GAC7C,IAAIg0Z,EAAch0Z,EAAKg0Z,YACnBC,EAAej0Z,EAAKi0Z,aACpBC,EAAel0Z,EAAKk0Z,aAExBrkU,GAAgBnvG,KAAMqza,GAEtBC,EAAcA,GAAel7Z,OAE7BpY,KAAK07Q,YAAc,SAAUzhQ,EAAS41Z,GACpC0D,EAAa73J,YAAYzhQ,EAASu5Z,EAAc3D,IAGlD7va,KAAKsva,mBAAqB,SAAUx5U,GAClC,IAAI29U,EAAgB,SAAuB//Y,IApClB,SAAgCA,EAAO6/Y,EAAcG,GAChF,IAAInwZ,EAASmQ,EAAMnQ,OACfw7H,EAASrrH,EAAMqrH,OAEnB,OAAIx7H,IAAWgwZ,IAIXx0R,IAAW20R,GAAqC,MAAnBA,IA6BzBC,CAAuBjgZ,EAAO6/Y,EAAcC,IAC9C19U,EAASpiE,IAIb4/Y,EAAYn/U,iBAAiB,UAAWs/U,GAMxC,OAJqB,WACnBH,EAAYl/U,oBAAoB,UAAWq/U,MC5yB1C,MAAMG,GAA4B,CACrCC,KAAK,EACLx/X,OAAO,EACPs2F,OAAO,EACPmpS,qBAAsBC,+BACtBC,0BAA2BC,qCAExB,MAAMhiH,GACT37S,YAAY2yB,EAAK0xG,EAAQu5R,EAAY7hR,EAAYhgJ,GAC7CrS,KAAKipC,IAAMA,EACXjpC,KAAK26I,OAASA,EACd36I,KAAKk0a,WAAaA,EAClBl0a,KAAKqyJ,WAAaA,EAClBryJ,KAAKqS,QAAUA,EAGF,kBAACsoI,EAAQv2H,EAAQm7Y,GAC9B,MAAMxwY,EAAO,IAAK6kZ,MAA8BrU,GAEhD,IAAI4U,QAAkBx5R,EAAOy5R,iBAAiBhwZ,GAC1C2K,EAAK8kZ,MACLM,EAAY/V,GAAY+V,EAAW,CAAEN,IAAK,UAE1C9kZ,EAAKslB,QACL8/X,EAAY/V,GAAY+V,EAAW,CAAE9/X,MAAO,UAE5CtlB,EAAK47G,QACLwpS,EAAY/V,GAAY+V,EAAW,CAAExpS,MAAO,UAGhD,MAAMupS,EAAaG,wBAAaF,EAAWA,GAE3C,IAAKD,EAAW10F,cACZ,MAAM,IAAIn6U,MAAM,uCAEpB,MAAMiva,EAAcJ,EAAW10F,cAEzB4vF,EAAY,IAAIiE,GAAgB,CAClCC,YAAal7Z,OACbm7Z,aAAce,EACdd,aAAc,MAEZnhR,QAAmB0gR,GAAgB3D,EAAW,GAAIrgZ,EAAK+kZ,qBAAsB/kZ,EAAKilZ,2BAExF,OAAO,IAAI/hH,GAAUkiH,EAAWx5R,EAAQu5R,EAAY7hR,EAAYtjI,GAE1D,WAACuF,GAAiB,2BAANtY,EAAM,iCAANA,EAAM,kBACxB,OAAOhc,KAAKqyJ,WAAWmgR,eAAe1ya,KAAKw0B,KAAWtY,ICzCvDi7B,eAAem9X,GAAiBhwZ,GAEnC,OAAOm6Y,SADiBv+Z,KAAKw+Z,YACep6Y,GAUzC6yB,eAAes9X,GAAcC,GAEhC,OtB+GG,SAAgChW,EAAWgW,GAG9C,IAAIr/Y,EAFJspY,GAAe,YAAaD,EAAW,aACvCC,GAAe,aAAc+V,EAAY,aAEzC,IAEI,MAAMC,EAAgB,IAAIl8M,IAAIi8M,GAC9BA,EAAaC,EAAc7wU,SAC3BzuE,EAAOs/Y,EAAcrrY,SACrBjU,EAAOupY,GAAiBvpY,GAE5B,MAIIq/Y,EAAa9V,GAAiB8V,IAE7BA,EAAYr/Y,GAAQq/Y,EAAWp3Z,MAAM,UAEtCo3Z,EAAaA,EAAWtta,cAM5B,IAAIkd,EAAS+5Y,GAAWqW,EAFH9V,GADA,IAAInmM,IAAIimM,GACsB56T,UAED,GAOlD,OANAx/E,EAAS+5Y,GAAW/5Y,EAAQ,KAExB+Q,GAAiB,KAATA,IACRA,EAAOupY,GAAiBvpY,GACxB/Q,EAAU,GAAEA,KAAU+Q,KAEnB/Q,EsB/IAswZ,OADiB10a,KAAKw+Z,YACYgW,GCRtC,MAAMG,GAAe,mBAQfC,GAAmB,wBAezBC,GAAUC,IAAY,CAAC,IAAK,KAS5B79X,eAAe89X,GAAUC,EAAazV,GAEzC,aADoB0V,GAAMC,IAAIl1a,KAAMg1a,EAAazV,GAG9C,MAAM0V,GAIT3+Z,YAAY6+Z,EAAWC,EAAaC,GAChCr1a,KAAKm1a,UAAYA,EACjBn1a,KAAKq1a,WAAaA,EAElBr1a,KAAKs1a,KAAO,GAEZt1a,KAAKu1a,mBAAqB,GAC1Bv1a,KAAKw1a,mBAAqBJ,EAEd,iBAACz6R,EAAQq6R,EAAazV,GAClC,MAAMxwY,EAAO,IAAK6kZ,MAA8BrU,GAEhD,GAAI0V,GAAM3lY,SACN,OAAO2lY,GAAM3lY,SAEjB,IAAIlrB,EAASuwZ,GACT5lZ,EAAK47G,MACLvmH,EAzCsB,iBA2CjB2K,EAAK8kZ,MACVzvZ,EAASwwZ,IAEb,MAAMO,QAAkBljH,GAAUl4Q,KAAK4gG,EAAQv2H,EAAQm7Y,GACjD8V,QAAmB16R,EAAO45R,cAAcn8Z,OAAO8b,SAAS0vE,UACxDwxU,EAAc,GACpB,GAAIJ,EAAa,CACb,MAAMS,EAAQ,IAAIC,cAAWL,EAAYL,EAAaW,gBAAaC,aAAcC,YAASC,OACpFC,EAAQ,IAAIL,cAAWL,EAAYL,EAAaW,gBAAaK,OAAQH,YAASI,MAC9EC,EAAQ,IAAIR,cAAWL,EAAYL,EAAaW,gBAAaK,OAAQH,YAASC,OACpFV,EAAYxra,KAAK6ra,EAAOM,EAAOG,GAGnC,OADAjB,GAAM3lY,SAAW,IAAI2lY,GAAME,EAAWC,EAAaC,GAC5CJ,GAAM3lY,SAUc,kCAE3B,MADiB,iCAAiCj3B,KAAKH,UAAUgB,WAEtD,EAAC,EAAO,wDAEZ,EAAC,EAAM,IAOJ,iBACV,MAAMi9Z,EAAW,GADG,2BAANb,EAAM,yBAANA,EAAM,gBAEpB,IAAK,MAAMc,KAAOd,EACda,EAASvsa,KAAK5J,KAAKq2a,QAAQD,IAE/Bp2a,KAAKs1a,KAAK1ra,QAAQ0ra,SACZ5+Z,QAAQ0yG,IAAI+sT,GAEF,uBAChBn2a,KAAKw1a,mBAAmB5ra,QAAQ,WAEpB,mBACZ,MAAO0sa,EAAWC,SAA6Bv2a,KAAKm1a,UAAU9iR,WACzDmgR,eACA1ya,KAAK,aAAcE,KAAKw1a,qBAEvB,mBAAED,EAAF,kBAAsBiB,GAAsBD,EAClDv2a,KAAKu1a,mBAAqBA,EAC1Bv1a,KAAKw1a,mBAAqBgB,EAC1B,MAAMC,EAAWH,GAA0C,IAA7BE,EAAkB92a,OAEhD,aADMM,KAAK02a,YAAYD,GAChBA,EAaE,gBAITz2a,KAAKm1a,UAAU9iR,WAAWx4I,QAE1B,MAAMitL,EAAQ9mM,KAAKm1a,UAAUjB,WAC7B,GAAIptO,EAAO,CAEP,IAAKA,EAAM7C,WACP,MAAM,IAAI5+L,MAAM,uCAEpByhM,EAAM7C,WAAW0M,YAAY7J,IAGzB,eACR,aAAa9mM,KAAKm1a,UAAU9iR,WAAWmgR,eAAe1ya,KAAK,UAEvC,2BACpB,IAAI62a,EACAC,EACAN,GAAY,EAEhB,MAAQ7/Z,QAASoga,EAAcvuJ,WAAYwuJ,GAAoBC,gCAEzDtga,EAAU,IAAIC,SAAQugC,MAAOzgC,EAASD,KAExCsga,EAAa//Z,OAAOoI,IACZA,IAAQ83Z,qBAKZzga,EAAO2I,GAHH1I,OAKR,IAEImga,EAAW32a,KAAKi3a,WAChBL,QAAqB52a,KAAKk3a,UAAUP,GAGpC,MAAOQ,EAAmBZ,SAA6BK,EAClDpE,eACA1ya,KAAK,qBAAsBE,KAAKw1a,oBACrCc,EAAYa,EAEZ,MAAM,mBAAE5B,EAAF,kBAAsBiB,GAAsBD,EAClDv2a,KAAKu1a,mBAAqBA,EAC1Bv1a,KAAKw1a,mBAAqBgB,EAC1Bhga,IAEJ,MAAO0I,GACH3I,EAAO2I,aAGTzI,EACDK,OAAOoI,IACR,MAAMA,KAEL8lK,SAAQ,KAEL2xP,GACAA,EAAS98Z,QAGT+8Z,GACAA,EAAa/8Z,QAGjBi9Z,EAAgB1tX,aAEpB,MAAMqtX,EAAWH,GAAgD,IAAnCt2a,KAAKw1a,mBAAmB91a,OAEtD,aADMM,KAAK02a,YAAYD,GAChBA,EAEC,eACR,aAAaz2a,KAAKm1a,UAAU9iR,WAAWmgR,eAAe1ya,KAAK,UAWlD,cAACq1B,EAAMoqY,GAChBd,GAAe,OAAQtpY,EAAM,aAC7BqqY,GAAuB,gBAAiBD,EAAe,YAAa4M,IACpE,MAAMp9Y,EAAO,IACNo9Y,MACAnsa,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,GAEDx0W,QAAkB/qD,KAAK+ta,SACvBlqZ,EAAUgoZ,GAA4B12Y,GAE5C,OADApG,EAAKg0Y,kBAAmB,QACX/ia,KAAKm1a,UAAUx6R,OAAOnkD,GAAG81U,QAAQvhX,EAAWlnC,EAASkL,GASpD,mBAACoG,GACfspY,GAAe,OAAQtpY,EAAM,aAK7B,OAAOqyY,SAJiBxna,KAAK+ta,SACblC,GAA4B12Y,GAE/B,IAAKqxY,GAA2BzD,kBAAkB,IAatD,cAAC5tY,EAAM+/G,EAAMqqR,GACtBd,GAAe,OAAQtpY,EAAM,aAC7B8qY,GAAe,OAAQ/qR,EAAM,aAC7BsqR,GAAuB,gBAAiBD,EAAe,YAAa8M,IACpE,MAAMt9Y,EAAO,IACNs9Y,MACArsa,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,GAEDx0W,QAAkB/qD,KAAK+ta,SACvBlqZ,EAAUgoZ,GAA4B12Y,GAC5CpG,EAAKg0Y,kBAAmB,EACxB,MAAOz+Z,EAAOyla,SAAkB+C,GAAyB9sa,KAAKm1a,UAAUx6R,OAAQ5vF,EAAWlnC,EAASqxH,EAAMnmH,GACpG0xK,QAAkBzgM,KAAKo3a,kBAAkB9ya,EAAO6wB,GAChD43Y,EAAepL,GAAe5yY,EAAM23Y,IAE1C,aADM1ma,KAAKm1a,UAAUx6R,OAAO8uB,SAASs+P,gBAAgBh9W,EAAWzmD,EAAOm8L,EAAWssO,GAC3E,CAAEhsa,KAAMm0I,EAAM60R,YAWR,kBAAC50Y,EAAM40Y,EAAUxK,GAC9Bd,GAAe,OAAQtpY,EAAM,aAC7BspY,GAAe,WAAYsL,EAAU,aACrCvK,GAAuB,gBAAiBD,EAAe,YAAa8M,IACpE,MAAMt9Y,EAAO,IACNs9Y,MACArsa,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,GAEDx0W,QAAkB/qD,KAAK+ta,SACvBlqZ,EAAUgoZ,GAA4B12Y,GAC5CpG,EAAKg0Y,kBAAmB,EACxB,MAAMkK,EAAetL,GAAe5yY,EAAMy3Y,IACpClia,QAAc4oa,GAAqBlta,KAAKm1a,UAAUx6R,OAAQ5vF,EAAWlnC,EAAS4/Y,GAAcsG,GAAWkD,GACvGxsO,QAAkBzgM,KAAKo3a,kBAAkB9ya,EAAO6wB,GAChD43Y,EAAepL,GAAe5yY,EAAM23Y,UACpC1ma,KAAKm1a,UAAUx6R,OAAO8uB,SAASs+P,gBAAgBh9W,EAAWzmD,EAAOm8L,EAAWssO,GAYtE,iBAAC53Y,EAAMoqY,GACnBd,GAAe,OAAQtpY,EAAM,aAC7BqqY,GAAuB,gBAAiBD,EAAe,YAAa8M,IACpE,MAAMt9Y,EAAO,IACNs9Y,MACArsa,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,GAEDx0W,QAAkB/qD,KAAK+ta,SACvBlqZ,EAAUgoZ,GAA4B12Y,GAC5CpG,EAAKg0Y,kBAAmB,EACxB,MAAMkK,EAAetL,GAAe5yY,EAAMy3Y,IACpClia,QAAc4oa,GAAqBlta,KAAKm1a,UAAUx6R,OAAQ5vF,EAAWlnC,EAAS,IAAI5e,WAAWk+Z,IAAmB8J,GAChHxsO,QAAkBzgM,KAAKo3a,kBAAkB9ya,EAAO6wB,GAChD43Y,EAAepL,GAAe5yY,EAAM23Y,UACpC1ma,KAAKm1a,UAAUx6R,OAAO8uB,SAASs+P,gBAAgBh9W,EAAWzmD,EAAOm8L,EAAWssO,GAWpE,mBAAC53Y,EAAMoqY,GACrBd,GAAe,OAAQtpY,EAAM,aAC7BqqY,GAAuB,gBAAiBD,EAAe,YAAaiH,IACpE,MAAMz3Y,EAAO,IACNy3Y,MACAxma,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,GAEDx0W,QAAkB/qD,KAAK+ta,SACvBlqZ,EAAUgoZ,GAA4B12Y,GAC5CpG,EAAKg0Y,kBAAmB,EACxB,MAAM,MAAEz+Z,SAAgBtE,KAAKm1a,UAAUx6R,OAAO8uB,SAASskN,SAAShjU,EAAWlnC,EAASkL,GACpF,OAAKzqB,EAGE,CAAEvD,KAAMuD,EAAMvD,MAFV,CAAEA,KAAM,MAeL,mBAACo0B,EAAMp0B,EAAMw+Z,GAC3Bd,GAAe,OAAQtpY,EAAM,aAC7BqrY,GAAmB,OAAQz/Z,EAAM,aACjCy+Z,GAAuB,gBAAiBD,EAAe,YAAamH,IAChE3la,EAAKrB,OA1Ve,IA2VpB2+Z,GAAqB,OAAQt9Z,EAAM,YAAc,4CAA4DA,EAAKrB,UAEtH,MAAMqvB,EAAO,IACNs9Y,MACArsa,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,GAEDx0W,QAAkB/qD,KAAK+ta,SACvBlqZ,EAAUgoZ,GAA4B12Y,GAC5CpG,EAAKg0Y,kBAAmB,EACxB,MAAMkK,EAAetL,GAAe5yY,EAAMy3Y,IACpClia,QAAc4oa,GAAqBlta,KAAKm1a,UAAUx6R,OAAQ5vF,EAAWlnC,EAAS9iB,EAAMksa,GACpFxsO,QAAkBzgM,KAAKo3a,kBAAkB9ya,EAAO6wB,GAChD43Y,EAAepL,GAAe5yY,EAAM23Y,IAE1C,aADM1ma,KAAKm1a,UAAUx6R,OAAO8uB,SAASs+P,gBAAgBh9W,EAAWzmD,EAAOm8L,EAAWssO,GAC3E,CAAEhsa,KAAMuD,EAAMvD,MAcC,2BAACo0B,EAAMkiZ,GAG7B,OAFA5Y,GAAe,OAAQtpY,EAAM,aAC7B6qY,GAAgB,cAAeqX,EAAa,mBAC/Br3a,KAAKm1a,UAAU9iR,WAAWmgR,eAAe1ya,KAAK,uBAAwBq1B,EAAMkiZ,GAWvE,uBAACliZ,EAAMoqY,GACzBd,GAAe,OAAQtpY,EAAM,aAC7BqqY,GAAuB,gBAAiBD,EAAe,YAAa4M,IACpE,MAAMp9Y,EAAO,IACNo9Y,MACAnsa,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,EACHwD,kBAAkB,IAGfh4W,EAAWygX,SAAkB90Z,QAAQ0yG,IAAI,CAACppH,KAAK+ta,SAAU/ta,KAAKs3a,qBAAqBniZ,GAAM,KAE1FtR,EAAU4nZ,GAAyBD,IACnC,KAAEzqa,SAAef,KAAKm1a,UAAUx6R,OAAOnkD,GAAG42U,YAAYriX,EAAWlnC,EAASkL,GAChF,GAAa,OAAThuB,EACA,MAAO,CAAEA,KAAM,MAInB,MAAO,CAAEA,KADI2pa,GAAgB3pa,EADPwqa,GAA8BC,KAclC,uBAACr2Y,EAAM+/G,EAAMqqR,GAC/Bd,GAAe,OAAQtpY,EAAM,aAC7B8qY,GAAe,OAAQ/qR,EAAM,aAC7BsqR,GAAuB,gBAAiBD,EAAe,YAAa8M,IACpE,MAAMt9Y,EAAO,IACNs9Y,MACArsa,KAAKm1a,UAAUx6R,OAAO4kR,iBACtBA,IAGAx0W,EAAWygX,SAAkB90Z,QAAQ0yG,IAAI,CAACppH,KAAK+ta,SAAU/ta,KAAKs3a,qBAAqBniZ,GAAM,KAC1FtR,EAAU4nZ,GAAyBD,GACzCz8Y,EAAKg0Y,kBAAmB,EACxB,MAEMhia,EAAOmqa,GAAgBh2R,EAAM,CAAE1+G,QT9cE,GS4cjB+0Y,GAA8BC,IAG9Clna,QP9PP2yC,eAAgD0jG,EAAQ5vF,EAAWlnC,EAAS9iB,EAAMw+Z,GAErF,MAAMxwY,EAAO,IACNs9Y,MACA1xR,EAAO4kR,iBACPA,GAGP,IAAIiO,EAAa3pZ,EACZkL,EAAKg0Y,mBACNyK,EAAarM,GAAYH,GAAuBn9Y,KAEpD,MAAM8gM,EAAO,IAAIzoG,KAAK,CAACn7G,GAAQ,MAAKysa,IAAc,CAAE9ma,KAAM,6BAEpD+ma,EAAa9L,GAAe5yY,EAAM41Y,IAClC+I,EAAiB/yR,EAAOuqR,WAAWvgN,EAAM8oN,GAIzCR,EAAetL,GAAe5yY,EAAMy3Y,IACpCmH,EAAehzR,EAAO8uB,SAASskN,SAAShjU,EAAWlnC,EAASopZ,IAE3DhG,EAAa2G,SAAiBl3Z,QAAQ0yG,IAAI,CAC7CukT,EACAD,IAEExK,EAAWmK,GAAyBpG,EAAY3ia,OAGhDkoa,EAActK,GADHvD,GAAciP,EAAQ5L,QAAShE,KAQhD,OANAyC,GAAsB,cAAe+L,EAAa,qBAAsBrJ,IAC1D,CACVt/Y,UACA9iB,KAAMyra,EACNtJ,YO4NoBqU,CAAiCv3a,KAAKm1a,UAAUx6R,OAAQ5vF,EAAWlnC,EAAS9iB,EAAMguB,GAEhG0xK,QAAkBzgM,KAAKw3a,2BAA2Blza,EAAO6wB,GACzD43Y,EAAepL,GAAe5yY,EAAM23Y,IAE1C,aADM1ma,KAAKm1a,UAAUx6R,OAAO8uB,SAASs+P,gBAAgBh9W,EAAWzmD,EAAOm8L,EAAWssO,GAC3E,CAAEhsa,KAAMm0I,GAKH,iBAACuiS,GACb,MAAM/jZ,EAAQ,IAAIktC,YAAY82W,wBAAsB,CAAE72W,OAAQ42W,IAC9Dr/Z,OAAOukS,cAAcjpR,GAEzBujZ,WACI,MAAMU,EAAW,IAAIp/M,IAAIv4N,KAAKm1a,UAAUlsY,KACxC0uY,EAASvuY,SApcU,UAqcnB,MAAMwuY,EAAQD,EAAS9wa,WAEjByta,EDvcP,SAAqBrrY,EAAK4uY,EAAS93Y,EAAG8a,GACzC,IAAKziC,OAAO25F,IACR,MAAM,IAAI1sG,MAAM,+BAEpB4jC,EAAM6uY,qBAAU7uY,GAChB,MAAMz8B,EAAI4L,OAAO25F,IAAIgmU,YAAc,EAAI3/Z,OAAO25F,IAAIvd,QAAU35C,EAAI,EAC1DtuC,EAAI6L,OAAO25F,IAAIimU,WAAa,EAAI5/Z,OAAO25F,IAAItd,QAAU10D,EAAI,EACzDk4Y,EAAY7/Z,OAAOsB,KAAKuvB,EAAK4uY,EAAU,yGAAwG93Y,aAAa8a,UAAUruC,WAAWD,KACvL,IAAK0ra,EACD,MAAM,IAAI5ya,MAAM,yBAKpB,OAHI4ya,EAAU9yO,OACV8yO,EAAU9yO,QAEP8yO,ECybiBC,CAAYN,EAtcnB,WAscwC/C,GAAUC,IAC/D,IAAKR,EACD,MAAM,IAAIjva,MAAO,6BAA4Buya,MAEjD,OAAOtD,EAEI,gBAACA,GACZ,MAAMjia,EAAUrS,KAAKm1a,UAAU9ia,QAEzB+8Z,EAAY,IAAIiE,GAAgB,CAClCC,YAAal7Z,OACbm7Z,aAAce,EACdd,aAAc,MAEZ3kG,EAAU,CACZspG,WAAYn4a,KAAKm4a,YAGrB,aADyBpF,GAAgB3D,EAAWvgG,EAASx8T,EAAQyha,qBAAsBzha,EAAQ2ha,2BAG1F,cAACoC,SAEJA,EAAIr8X,KAAK/5C,KAAKm1a,UAAUx6R,OAAQ36I,KAAKm1a,UAAU9ia,SAErD,MAAM+la,EAAQhC,EAAIiC,uBACZr4a,KAAKs4a,kBAAkBF,GAEhB,kBAAC3B,GACVA,SACM//Z,QAAQ0yG,IAAIppH,KAAKs1a,KAAK90a,KAAIy2C,UAC5B,UACUm/X,EAAImC,cAEd,MAAO1ha,GAEHgjB,QAAQC,KAAKjjB,QAKN,wBAACvS,EAAO6wB,GAC3B,aAAan1B,KAAKm1a,UAAU9iR,WAAWmgR,eAAe1ya,KAAK,oBAAqBwE,EAAO6wB,GAE3D,iCAAC7wB,EAAO6wB,GACpC,aAAan1B,KAAKm1a,UAAU9iR,WAAWmgR,eAAe1ya,KAAK,6BAA8BwE,EAAO6wB,IAGxG8/Y,GAAM3lY,SAAW,KC7gBV,MAAMkpY,GAQTlia,cAAuD,IAA3Cmia,EAA2C,uDAAxB,GAAIlZ,EAAoB,uDAAJ,GAG/Cv/Z,KAAKkla,WAAaA,GAClBlla,KAAKmla,gBAAkBA,GACvBnla,KAAKqla,uBAAyBA,GAC9Brla,KAAKola,gBAAkBA,GACvBpla,KAAK2la,uBAAyBA,GAC9B3la,KAAKmma,gBAAkBA,GACvBnma,KAAKqma,uBAAyBA,GAE9Brma,KAAK2oa,aAAeA,GACpB3oa,KAAK6oa,gBAAkBA,GACvB7oa,KAAK4oa,cAAgBA,GACrB5oa,KAAK8oa,UAAYA,GACjB9oa,KAAKkpa,aAAeA,GACpBlpa,KAAKu5J,YAAcA,GACnBv5J,KAAKupa,eAAiBA,GACtBvpa,KAAK0pa,kBAAoBA,GACzB1pa,KAAK04Z,SAAWA,GAChB14Z,KAAK4pa,YAAcA,GACnB5pa,KAAK2pa,WAAaA,GAElB3pa,KAAKqua,WAAaA,GAElBrua,KAAKu0a,cAAgBA,GACrBv0a,KAAKo0a,iBAAmBA,GACxBp0a,KAAK+0a,UAAYA,GAEjB/0a,KAAK2kN,KAAO,CACR2nN,QAASoM,GAAY5mV,KAAK9xF,MAC1Biua,aAAcA,GAAan8U,KAAK9xF,MAChCwna,aAAcmR,GAAiB7mV,KAAK9xF,MACpCkua,iBAAkBA,GAAiBp8U,KAAK9xF,OAG5CA,KAAKw2F,GAAK,CACNw2U,WAAYA,GAAWl7U,KAAK9xF,MAC5Bssa,QAASA,GAAQx6U,KAAK9xF,MACtB6sa,QAASA,GAAQ/6U,KAAK9xF,MACtBmta,YAAaA,GAAYr7U,KAAK9xF,MAC9Bota,YAAaA,GAAYt7U,KAAK9xF,OAGlCA,KAAKypK,SAAW,CACZskN,SAAUA,GAASj8R,KAAK9xF,MACxB+ma,YAAaA,GAAYj1U,KAAK9xF,MAC9Bwna,aAAcC,GAAkB31U,KAAK9xF,MACrC0na,SAAUA,GAAS51U,KAAK9xF,MACxB+na,gBAAiBA,GAAgBj2U,KAAK9xF,OAEjB,KAArBy4a,EAEAA,ExB/Cc,qBAAXrga,OACA,IACJA,OAAO8b,SAAS6qH,OwBiDf/+I,KAAK44a,gBAAkBH,EAE3Bz4a,KAAKy4a,iBAAmBA,EACxBz4a,KAAKu/Z,cAAgBA,EAQN,sBACXv/Z,KAAK44a,kBAIJJ,GAAaK,oBACdL,GAAaK,kBAAoB74a,KAAK84a,0BAEpCN,GAAaK,mBASR,kBACX,OAAI74a,KAAK44a,gBACE54a,KAAK44a,uBAGV54a,KAAK+4a,sBACEP,GAAaK,mBAWV,qBAACnzY,GACjB,MAAMuD,QAAY48X,GAAgB7la,KAAM0lC,EAAOggY,aAAchgY,EAAOuD,IAAKvD,EAAO4oY,UAAW5oY,EAAOmpF,OAE5FhuB,EAAUilU,GAAoBpgY,EAAOm7D,QAASn7D,EAAO+7X,gBAAiB/7X,EAAOg8X,cAC7E5iR,EAAOp5G,EAAO87X,OAAS,CAAE5iR,SAAU,GAAIC,SAAUn5G,EAAO87X,aAAW9ia,EACzE,IAAIm9V,EAUA1B,EAUJ,OAnBIz0T,EAAOm2T,qBACPA,EAAqB,SAAUnoU,GAG3B,MAAM2nT,EAAW3nT,EAAMg9B,MAAQh9B,EAAM8+H,OAAS9+H,EAAMg9B,MAAQ,EAE5DhrB,EAAOm2T,mBAAmBxgB,EAAU3nT,KAIxCgS,EAAOy0T,mBACPA,EAAmB,SAAUzmU,GAGzB,MAAM2nT,EAAW3nT,EAAMg9B,MAAQh9B,EAAM8+H,OAAS9+H,EAAMg9B,MAAQ,EAE5DhrB,EAAOy0T,iBAAiB9e,EAAU3nT,KAGnCslZ,IAAM,CACT/vY,MACA3U,OAAQoR,EAAOpR,OACfvzB,KAAM2kC,EAAO3kC,KACb8/F,UACAi+C,OACA+8M,qBACA1B,mBACAh6P,aAAcz6D,EAAOy6D,aACrBqhG,iBAAkB97J,EAAO87J,iBACzBG,kBAAmBj8J,EAAOi8J,kBAC1BI,iBAAkBtwL,IAClBuwL,cAAevwL,IAEfkzF,iBAAiB,IAGH,yBAClB,MAAMtE,QAAiBrgG,KAAKyla,eAAe,IACpCzla,KAAKu/Z,cACRjrY,OAAQ,OACR2U,IAAKjpC,KAAKy4a,iBACV/S,aAAc,MAElB,GAAgC,qBAArBrlU,EAASQ,QAChB,MAAM,IAAIx7F,MAAM,sIAEpB,MAAMm5Z,EAAYn+T,EAASQ,QAAQ,qBACnC,IAAK29T,EACD,MAAM,IAAIn5Z,MAAM,iDAEpB,OAAO84Z,GAAWK,EAAW,MAgB9BvnX,eAAe4uX,GAAgBlrR,EAAQ+qR,EAAcz8X,EAAKqlY,EAAWz/S,GAExE,IAAK5lF,EAAK,CAENA,EAAM2nH,SADkBjW,EAAO6jR,YACNkH,EAA4B,OAAd4I,QAAoC,IAAdA,EAAuBA,EAAY,IAKpG,OAHIz/S,IACA5lF,EAAMm1X,GAAYn1X,EAAK4lF,IAEpB5lF,EAUJ,SAAS68X,GAAoBmT,EAAaxX,EAAiBC,GAC9D,MAAMwX,EAAgB,IAAKD,GAQ3B,OANIxX,IACAyX,EAAc,cAAgBzX,GAE9BC,IACAwX,EAAa,OAAaxX,GAEvBwX,I,wTC7KX,aAoBE,WAAmB7ma,QAAA,IAAAA,MAAA,IAXZ,KAAAgJ,KAAe89Z,EAAQt2a,GAY5B7C,KAAKo5a,QAAU/ma,EAAQgna,QAAUhna,EAAQ8hC,IACzCn0C,KAAK2xa,UAAYhka,MAAMjJ,QAAQ2N,EAAQw8T,SAAWx8T,EAAQw8T,QAAU,IAAI/rU,OAAO,OAanF,OAPS,YAAAw2a,UAAP,WACOt5a,KAAKo5a,QAkId,SAA+BC,EAAgBxqG,QAAA,IAAAA,MAAA,IAC7CA,EAAQx7T,SAAQ,SAACihB,GAAmB,OAdtC,SAAyB+kZ,EAAgB/kZ,GACvC,IAAMilZ,EAAmBF,EAAO/kZ,GAMhC,OAJA+kZ,EAAO/kZ,GAAU,W,IAAU,sDACzB,OAAOilZ,EAAiBz5a,KAAI,MAArBy5a,EAAgB,aAAMv5a,MAASw5a,EAAmBx9Z,EAAMsY,MAG1D+kZ,EAO6BI,CAAgBJ,EAAhB,MA/HlCK,CAAsB15a,KAAKo5a,QAASp5a,KAAK2xa,UAHvC7zY,EAAA,EAAOjnB,MAAM,sDA1BH,EAAAhU,GAAa,UA+B7B,EAnCA,GAoDA,SAASi+V,EAAK1uV,EAAckiB,GAC1B,IAAM0/I,EAAQ5hK,EAAG1S,OAEjB,OAAQs0K,GACN,KAAK,EACH,OAAO,SAA+BwwJ,EAAc95T,GAClD,IAAM2sC,EAAc3sC,EAAIiva,qBACxB,GAAItiY,EAAa,CACf,IAAM,EAAOA,EAAYqsF,WAAW,CAClCF,YAAapxH,EAAGiJ,KAChBkoH,GAAI,sBAAsBjvG,IAE5B5pB,EAAImyB,KAAK,UAAU,WACjB,EAAKiiB,YAGT,OAAO1sC,EAAGtS,KAAKE,KAAMwkU,EAAK95T,IAG9B,KAAK,EACH,OAAO,SAEL85T,EACA95T,EACAsU,G,MAGM8jH,EAAkB,QAAd,EADUp4H,EAAIiva,4BACA,eAAEj2S,WAAW,CACnCF,YAAapxH,EAAGiJ,KAChBkoH,GAAI,sBAAsBjvG,IAE5BliB,EAAGtS,KAAKE,KAAMwkU,EAAK95T,GAAK,W,IAA+B,I,EAAA,kDACjD,QAAJ,EAAAo4H,SAAI,SAAEhkF,SACN9/B,EAAKlf,KAAI,MAATkf,EAAI,aAAMhf,MAASgc,QAIzB,KAAK,EACH,OAAO,SAELkD,EACAslT,EACA95T,EACAsU,G,MAGM8jH,EAAkB,QAAd,EADUp4H,EAAIiva,4BACA,eAAEj2S,WAAW,CACnCF,YAAapxH,EAAGiJ,KAChBkoH,GAAI,sBAAsBjvG,IAE5BliB,EAAGtS,KAAKE,KAAMkf,EAAKslT,EAAK95T,GAAK,W,IAA+B,I,EAAA,kDACtD,QAAJ,EAAAo4H,SAAI,SAAEhkF,SACN9/B,EAAKlf,KAAI,MAATkf,EAAI,aAAMhf,MAASgc,QAIzB,QACE,MAAM,IAAI3W,MAAM,gDAAgD2uK,IAetE,SAASwlQ,EAAmBx9Z,EAAiBsY,GAC3C,OAAOtY,EAAKxb,KAAI,SAAC2E,GACf,MAAmB,oBAARA,EACF27V,EAAK37V,EAAKmvB,GAGf3mB,MAAMjJ,QAAQS,GACTA,EAAI3E,KAAI,SAAC8L,GACd,MAAiB,oBAANA,EACFw0V,EAAKx0V,EAAGgoB,GAEVhoB,KAIJnH,K,4BC/KX,aAaE,WAAmBkN,QAAA,IAAAA,MAAA,IAJZ,KAAAgJ,KAAe2gI,EAASn5I,GAK7B7C,KAAK45a,eAAiBvna,EAAQwna,YAiElC,OA3DS,YAAAP,UAAP,SAAiBxrZ,EAAuC87I,G,MAChD1tB,EAAM,YAA+D,MAE3E,GAAKA,EAKL,IAAIl8I,KAAK45a,eAA2B,QAAX,EAAC19R,EAAI49R,cAAM,eAAExna,QAAtC,CAKQ,IAAAA,GAAA,8BAAAA,OASR,YAAKA,EAAO1S,UAAW,SAAS,SAAUm6a,GACxC,OAAO,SAAyBr0Y,EAAiB5jB,EAAiBlL,G,UAG1DksH,EAAiB,QAAb,EADc,QAAR,EADF8mC,IAAgBhwB,kBACN,eAAEC,iBACH,eAAEnW,WAAW,CAClCF,YAA+B,kBAAX99F,EAAsBA,EAAUA,EAA4B27D,KAChFkiC,GAAI,OAGN,GAAwB,oBAAb3sH,EACT,OAAOmja,EAAKj6a,KAAKE,KAAM0lC,EAAQ5jB,GAAQ,SAAU5C,EAAYtF,G,MACvD,QAAJ,EAAAkpH,SAAI,SAAEhkF,SACNloC,EAASsI,EAAKtF,MAIlB,GAAsB,oBAAXkI,EACT,OAAOi4Z,EAAKj6a,KAAKE,KAAM0lC,GAAQ,SAAUxmB,EAAYtF,G,MAC/C,QAAJ,EAAAkpH,SAAI,SAAEhkF,SACNh9B,EAAO5C,EAAKtF,MAIhB,IAAMuoD,EAAuB,qBAAXrgD,EAAyBi4Z,EAAKj6a,KAAKE,KAAM0lC,EAAQ5jB,GAAUi4Z,EAAKj6a,KAAKE,KAAM0lC,GAE7F,OAAI,OAAA0yF,EAAA,GAAWj2D,GACLA,EAAwB/yB,MAAK,SAAC1kC,G,MAEpC,OADI,QAAJ,EAAAo4H,SAAI,SAAEhkF,SACCp0C,MAIP,QAAJ,EAAAo4H,SAAI,SAAEhkF,SACCqjB,YA9CTrkC,EAAA,EAAOjnB,MAAM,wEALbinB,EAAA,EAAOjnB,MAAM,6DApBH,EAAAhU,GAAa,WA2E7B,EA/EA,GCNA,0BASS,KAAAwY,KAAeygI,EAAMj5I,GA4C9B,OAvCS,YAAAy2a,UAAP,SAAiBxrZ,EAAuC87I,GACtD,IAAM1tB,EAAM,YAA4B,2BAEnCA,EASL,YAAKA,EAAK,eAAe,SAAU69R,GACjC,OAAO,SAAyB1na,EAAkByP,EAAiBlL,G,QAG3DksH,EAAiB,QAAb,EADc,QAAR,EADF8mC,IAAgBhwB,kBACN,eAAEC,iBACH,eAAEnW,WAAW,CAClCF,YAAgC,kBAAZnxH,EAAuBA,EAAWA,EAA4B2na,IAClFz2S,GAAI,OAGN,MAAwB,oBAAb3sH,EACFmja,EAAKj6a,KAAKE,KAAMqS,EAASyP,GAAQ,SAAU5C,EAAYtF,EAAiBg9V,G,MACzE,QAAJ,EAAA9zO,SAAI,SAAEhkF,SACNloC,EAASsI,EAAKtF,EAAQg9V,MAIJ,oBAAX90V,EACFi4Z,EAAKj6a,KAAKE,KAAMqS,GAAS,SAAU6M,EAAYtF,EAAiBg9V,G,MACjE,QAAJ,EAAA9zO,SAAI,SAAEhkF,SACNh9B,EAAO5C,EAAKtF,EAAQg9V,MAIjBmjE,EAAKj6a,KAAKE,KAAMqS,EAASyP,EAAQlL,OA/B1CknB,EAAA,EAAOjnB,MAAM,6DAdH,EAAAhU,GAAa,QAiD7B,EArDA,GCDMo3a,EAAa,CACjB,YACA,YACA,iBACA,cACA,gBACA,aACA,YACA,WACA,OACA,YACA,cACA,yBACA,OACA,UACA,mBACA,oBACA,mBACA,UACA,cACA,mBACA,0BACA,aACA,YACA,WACA,YACA,UACA,yBACA,SACA,aACA,QACA,aACA,aAOIC,EAEF,CAGFC,UAAW,CAAC,cACZC,eAAgB,CAAC,SACjBt6B,YAAa,CAAC,eACdu6B,cAAe,CAAC,cAChBC,WAAY,CAAC,UACbC,UAAW,CAAC,UACZC,SAAU,CAAC,MAAO,SAClBC,UAAW,CAAC,aACZp2a,KAAM,CAAC,SACPq2a,QAAS,CAAC,SACVC,iBAAkB,CAAC,UACnBC,kBAAmB,CAAC,SAAU,eAC9BC,iBAAkB,CAAC,SAAU,UAC7BC,YAAa,CAAC,WACdC,WAAY,CAAC,QACbC,UAAW,CAAC,OACZC,UAAW,CAAC,MAAO,UACnBC,OAAQ,CAAC,WACTC,WAAY,CAAC,SAAU,OACvBC,WAAY,CAAC,SAAU,UACvBC,UAAW,CAAC,SAAU,WAmBxB,aAkBE,WAAmBhpa,QAAA,IAAAA,MAAA,IATZ,KAAAgJ,KAAesgI,EAAM94I,GAU1B7C,KAAKs7a,YAAc3ta,MAAMjJ,QAAQ2N,EAAQkpa,YAAclpa,EAAQkpa,WAActB,EAC7Ej6a,KAAKw7a,sBAAsB,uBAAwBnpa,IAAUA,EAAQopa,mBACrEz7a,KAAK07a,eAAiBrpa,EAAQspa,YAgHlC,OA1GS,YAAArC,UAAP,SAAiBxrZ,EAAuC87I,GACtD,IAAM51D,EAAah0G,KAAK07a,aAAe,WAAa,UAC9Cx/R,EAAM,YAA4CloC,GAEnDkoC,EAKLl8I,KAAK47a,sBAAsB1/R,EAAI2/R,WAAY77a,KAAKs7a,YAAa1xQ,GAJ3D9rI,EAAA,EAAOjnB,MAAM,4CAA6Cm9F,EAAU,eAUhE,YAAA4nU,sBAAR,SAA8BnuR,EAA6B8tR,EAAyB3xQ,GAApF,WACE2xQ,EAAWloa,SAAQ,SAACwvL,GAAyB,SAAKi5O,gBAAgBruR,EAAYo1C,EAAjC,OAMvC,YAAAi5O,gBAAR,SAAwBruR,EAA6Bo1C,EAAsBj5B,GACzE,GAAMi5B,KAAap1C,EAAW7tJ,UAA9B,CAEA,IAAMm8a,EAAiB/7a,KAAKg8a,sCAAsClqV,KAAK9xF,MAEvE,YAAKytJ,EAAW7tJ,UAAWijM,GAAW,SAAUk3O,GAC9C,OAAO,W,IAAyB,I,QAAA,kDAC9B,IAAMkC,EAAUjga,EAAKA,EAAKtc,OAAS,GAC7Bi6I,EAAQiwB,IAAgBhwB,WACxBsiS,EAAkB,QAAR,EAAGviS,SAAK,eAAEE,UAI1B,GAAuB,oBAAZoiS,GAAyC,cAAdp5O,GAA6C,IAAhB7mL,EAAKtc,OAAe,CACrF,IAAM,EAAiB,QAAb,EAAGw8a,SAAU,eAAEx4S,WAAWq4S,EAAe/7a,KAAM6iM,EAAW7mL,IAC9Dmga,EAAepC,EAAKj6a,KAAI,MAATi6a,EAAI,aAAM/5a,MAASgc,IAExC,OAAI,OAAAo8G,EAAA,GAAW+jT,GACNA,EAAa/sY,MAAK,SAAC1kC,G,MAExB,OADI,QAAJ,WAAI,SAAEo0C,SACCp0C,MAGL,QAAJ,WAAI,SAAEo0C,SACCq9X,GAIX,IAAMr5S,EAAiB,QAAb,EAAGo5S,SAAU,eAAEx4S,WAAWq4S,EAAe/7a,KAAM6iM,EAAW7mL,EAAK1Y,MAAM,GAAI,KACnF,OAAOy2a,EAAKj6a,KAAI,MAATi6a,EAAI,aAAM/5a,MAASgc,EAAK1Y,MAAM,GAAI,GAAE,CAAE,SAAU4b,EAAYtF,G,MAC7D,QAAJ,EAAAkpH,SAAI,SAAEhkF,SACNm9X,EAAQ/8Z,EAAKtF,aASb,YAAAoia,sCAAR,SACEvuR,EACAo1C,EACA7mL,GAEA,IAAMjb,EAAkC,CACtCq7a,eAAgB3uR,EAAW2uR,eAC3BC,OAAQ5uR,EAAW4uR,OACnB10H,UAAWl6J,EAAWk6J,WAElB3kL,EAA2B,CAC/BO,GAAI,KACJC,YAAaq/D,EACb9hM,KAAI,GAKA0/L,EAAYy5O,EAAqBr3O,GACjCy5O,EAAiB3ua,MAAMjJ,QAAQ1E,KAAKw7a,qBACtCx7a,KAAKw7a,oBAAoBhua,SAASq1L,GAClC7iM,KAAKw7a,oBAET,IAAK/6O,IAAc67O,EACjB,OAAOt5S,EAGT,IAEE,GAAkB,cAAd6/D,EAA2B,CACvB,uBAACriM,EAAA,KAAK2c,EAAA,KACZpc,EAAK0/L,EAAU,IAAqB,kBAARjgM,EAAmBA,EAAMA,EAAI6a,MAAQ,cACjEta,EAAK0/L,EAAU,IAAwB,kBAAXtjL,EAAsBA,EAASA,EAAO9B,MAAQ,mBAE1E,IAAK,IAAI9b,EAAI,EAAGA,EAAIkhM,EAAU/gM,OAAQH,IACpCwB,EAAK0/L,EAAUlhM,IAAMuY,KAAKC,UAAUiE,EAAKzc,IAG7C,MAAOmhE,IAIT,OAAOsiE,GA/HK,EAAAngI,GAAa,QAiI7B,EArIA,G,2CCpFM,EAAS,c,sBCWF05a,EAAe,SAC1B3la,EACA4la,EACAC,GAEA,IAAI3/G,EACJ,OAAO,SAAC4/G,GACFF,EAAOr6a,OAAS,IACdu6a,GAAeD,KACjBD,EAAO1gX,MAAQ0gX,EAAOr6a,OAAS26T,GAAa,IAMxC0/G,EAAO1gX,YAAuBp9D,IAAdo+T,KAClBA,EAAY0/G,EAAOr6a,MACnByU,EAAS4la,OChBNG,EAAa,SAACtha,EAAsBlZ,GAC/C,MAAO,CACLkZ,KAAI,EACJlZ,MAAY,OAALA,QAAK,IAALA,KAAU,EACjB25D,MAAO,EACP0lC,QAAS,GACT3+F,GCHK,MAAM0hB,KAAK+zB,MAAK,KAAI9tC,KAAK2F,MAAM,cAAA3F,KAAKmnF,UAAyB,QCMzDqxB,EAAU,SAACt8G,EAAckQ,GACpC,IACE,GAAIgma,oBAAoBC,oBAAoBrva,SAAS9G,GAAO,CAG1D,GAAa,gBAATA,KAA4B,2BAA4B+S,MAC1D,OAGF,IAAMo/W,EAA0B,IAAI+jD,qBAAoB,SAAA9hY,GAAK,OAAAA,EAAEuxU,aAAa7rX,IAAf,MAG7D,OADAq4X,EAAG71Q,QAAQ,CAAEt8G,KAAI,EAAE8jO,UAAU,IACtBquJ,GAET,MAAO34X,MCpBE48a,EAAW,SAACvmV,EAAsB15D,GAC7C,IAAMkgZ,EAAqB,SAACrpZ,GACP,aAAfA,EAAMhtB,MAA8E,WAAvD,cAA0B46D,SAAS4/T,kBAClE3qS,EAAG7iE,GACCmJ,IACFu3D,oBAAoB,mBAAoB2oV,GAAoB,GAC5D3oV,oBAAoB,WAAY2oV,GAAoB,MAI1D5oV,iBAAiB,mBAAoB4oV,GAAoB,GAGzD5oV,iBAAiB,WAAY4oV,GAAoB,ICf/CC,GAAmB,EAaVC,EAAuB,WAWlC,OARID,EAAkB,IAKpBA,EAlB4D,WAAvD,cAA0B17W,SAAS4/T,gBAA+B,EAAIzvX,IAK7Eqra,GAAS,SAAC,G,IAAEI,EAAA,EAAAA,UACVF,EAAkBE,KACjB,IAcI,CACDF,sBACF,OAAOA,KCZPG,EAA6C,GCpB7C,EAAS,cAGf,aAOE,WAA2BC,QAAA,IAAAA,OAAA,QAAAA,oBANnB,KAAAh4R,cAA8B,GAE9B,KAAAi4R,mBAA6B,GAK9B,eAAe,GAAU,EAAOh+U,aAAe,EAAO/9B,WACrD,EAAO+9B,YAAYi+U,MACrB,EAAOj+U,YAAYi+U,KAAK,uBAG1Bt9a,KAAKu9a,YACLv9a,KAAKw9a,YACLx9a,KAAKy9a,aA+NX,OA1NS,YAAAC,sBAAP,SAA6BrmY,GAA7B,WACE,GAAK,GAAW,EAAOgoD,aAAgB,EAAOA,YAAYgtR,YAAe,IAAzE,CAKAvuV,EAAA,EAAO1f,IAAI,4DAEX,IAEIu/Z,EACAC,EAHErjU,EAAa,YAAQ,KA8D3B,GAzDA,EAAOlb,YACJgtR,aACA/oX,MAAMtD,KAAKq9a,oBACXhqa,SAAQ,SAAC/O,GACR,IAAMq0O,EAAY,YAAQr0O,EAAMq0O,WAC1B/3J,EAAW,YAAQt8E,EAAMs8E,UAE/B,KAAuB,eAAnBvpC,EAAYksF,IAAuBhpB,EAAao+H,EAAYthM,EAAY8rF,gBAI5E,OAAQ7+H,EAAMu5a,WACZ,IAAK,cAoMf,SAA4BxmY,EAA0B/yC,EAA4Bi2G,GAChF,CAAC,cAAe,WAAY,wBAAyB,YAAa,WAAWlnG,SAAQ,SAAAqgB,GACnFoqZ,EAA+BzmY,EAAa/yC,EAAOovB,EAAO6mF,MAE5DujU,EAA+BzmY,EAAa/yC,EAAO,mBAAoBi2G,EAAY,UAAW,cAC9FujU,EAA+BzmY,EAAa/yC,EAAO,QAASi2G,EAAY,QAAS,qBACjFujU,EAA+BzmY,EAAa/yC,EAAO,eAAgBi2G,EAAY,OA6FjF,SAAoBljE,EAA0B/yC,EAA4Bi2G,GACxEwjU,EAAY1mY,EAAa,CACvBksF,GAAI,UACJC,YAAa,UACbL,eAAgB5oB,EAAa,YAAQj2G,EAAM05a,cAC3Cv6S,aAAclpB,EAAa,YAAQj2G,EAAM25a,eAG3CF,EAAY1mY,EAAa,CACvBksF,GAAI,UACJC,YAAa,WACbL,eAAgB5oB,EAAa,YAAQj2G,EAAM45a,eAC3Cz6S,aAAclpB,EAAa,YAAQj2G,EAAM25a,eAxG3CE,CAAW9mY,EAAa/yC,EAAOi2G,GA1MrB6jU,CAAmB/mY,EAAa/yC,EAAOi2G,GACvCojU,EAAyBpjU,EAAa,YAAQj2G,EAAM45a,eACpDN,EAAwBrjU,EAAa,YAAQj2G,EAAM05a,cACnD,MAEF,IAAK,OACL,IAAK,QACL,IAAK,UACH,IAAM76S,EAsMlB,SACE9rF,EACA/yC,EACAq0O,EACA/3J,EACA25B,GAEA,IAAM8jU,EAAwB9jU,EAAao+H,EACrC2lM,EAAsBD,EAAwBz9V,EASpD,OAPAm9V,EAAY1mY,EAAa,CACvBmsF,YAAal/H,EAAM+W,KACnBooH,aAAc66S,EACd/6S,GAAIj/H,EAAMu5a,UACV16S,eAAgBk7S,IAGXA,EAvN0BE,CAAgBlnY,EAAa/yC,EAAOq0O,EAAW/3J,EAAU25B,GAG1EikU,EAAcvB,IAEdwB,EAAen6a,EAAMq0O,UAAY6lM,EAAYxB,gBAEhC,gBAAf14a,EAAM+W,MAA0Boja,IAClC3gZ,EAAA,EAAO1f,IAAI,4BACX,EAAKgnI,cAAL,GAA2B,CAAEjjJ,MAAOmC,EAAMq0O,WAC1C,EAAKvzF,cAAc,WAAa,CAAEjjJ,MAAOghI,IAGxB,2BAAf7+H,EAAM+W,MAAqCoja,IAC7C3gZ,EAAA,EAAO1f,IAAI,6BACX,EAAKgnI,cAAL,IAA4B,CAAEjjJ,MAAOmC,EAAMq0O,WAC3C,EAAKvzF,cAAc,YAAc,CAAEjjJ,MAAOghI,IAG5C,MAEF,IAAK,WACH,IAAMu7S,EAAgBp6a,EAAM+W,KAAgBxJ,QAAQ,EAAOqiB,SAAS6qH,OAAQ,KA4MlF,SACJ1nG,EACA/yC,EACAo6a,EACA/lM,EACA/3J,EACA25B,GAIA,GAA4B,mBAAxBj2G,EAAMq6a,eAA8D,UAAxBr6a,EAAMq6a,cACpD,OAGF,IAAM59a,EAA4B,GAC9B,iBAAkBuD,IACpBvD,EAAK,iBAAmBuD,EAAMs6a,cAE5B,oBAAqBt6a,IACvBvD,EAAK,qBAAuBuD,EAAMu6a,iBAEhC,oBAAqBv6a,IACvBvD,EAAK,qBAAuBuD,EAAMw6a,iBAGpC,IAAM37S,EAAiB5oB,EAAao+H,EAGpColM,EAAY1mY,EAAa,CACvBmsF,YAAak7S,EACbj7S,aAJmBN,EAAiBviD,EAKpC2iD,GAAIj/H,EAAMq6a,cAAgB,YAAYr6a,EAAMq6a,cAAkB,WAC9Dx7S,eAAc,EACdpiI,KAAI,IA5OIg+a,CAAiB1nY,EAAa/yC,EAAOo6a,EAAc/lM,EAAW/3J,EAAU25B,OAQhFv6G,KAAKq9a,mBAAqB7ya,KAAKwC,IAAIqyF,YAAYgtR,aAAa3sX,OAAS,EAAG,GAExEM,KAAKg/a,gBAAgB3nY,GAGE,aAAnBA,EAAYksF,GAAmB,CAGjC,IAAM,EAAa,YAAQ,KAIW,kBAA3Bo6S,IACT7/Y,EAAA,EAAO1f,IAAI,8BACXpe,KAAKolJ,cAAL,KAA6B,CAAEjjJ,MAA+D,KAAvDw7a,EAAyBtmY,EAAY8rF,iBAEvC,kBAA1By6S,GAAsCA,GAAyBD,IAGxE39a,KAAKolJ,cAAc,oBAAsB,CAAEjjJ,MAA0D,KAAlDw7a,EAAyBC,MAIhF,CAAC,MAAO,KAAM,OAAOvqa,SAAQ,SAAAgI,GAC3B,GAAK,EAAK+pI,cAAc/pI,MAAS,GAAcg8B,EAAY8rF,gBAA3D,CAQA,IAAM43Q,EAAW,EAAK31P,cAAc/pI,GAAMlZ,MACpC88a,EAAuB,EAAa,YAAQlkC,GAE5CmkC,EAAkB10a,KAAK2T,IAA0D,KAArD8ga,EAAuB5nY,EAAY8rF,iBAE/DrnE,EAAQojX,EAAkBnkC,EAChCj9W,EAAA,EAAO1f,IAAI,6BAA6B/C,EAAI,SAAS0/X,EAAQ,OAAOmkC,EAAe,KAAKpjX,EAAK,KAE7F,EAAKspF,cAAc/pI,GAAMlZ,MAAQ+8a,MAG/Bl/a,KAAKolJ,cAAc,aAAeplJ,KAAKolJ,cAAL,KAGpC24R,EAAY1mY,EAAa,CACvBmsF,YAAa,oBACbC,aAAczjI,KAAKolJ,cAAc,YAAYjjJ,MAAQ,YAAQnC,KAAKolJ,cAAL,IAA0BjjJ,OACvFohI,GAAI,aACJJ,eAAgBnjI,KAAKolJ,cAAc,YAAYjjJ,QAM7C,QAASnC,KAAKolJ,sBACXplJ,KAAKolJ,cAAcuvC,IAG5Bt9I,EAAYquG,gBAAgB1lJ,KAAKolJ,eA2OvC,SACE/tG,EACA8nY,EACAC,GAEID,IACFrhZ,EAAA,EAAO1f,IAAI,kCAIP+ga,EAASt0Y,SACXwM,EAAYwsF,OAAO,cAAe,YAAiBs7S,EAASt0Y,UAG1Ds0Y,EAASt8a,IACXw0C,EAAYwsF,OAAO,SAAUs7S,EAASt8a,IAGpCs8a,EAASl2Y,KAEXoO,EAAYwsF,OAAO,UAAWs7S,EAASl2Y,IAAIr3B,OAAOtO,MAAM,EAAG,MAG7D+zC,EAAYwsF,OAAO,WAAYs7S,EAASxgb,OAItCygb,GAAYA,EAASjoN,UACvBr5L,EAAA,EAAO1f,IAAI,kCACXgha,EAASjoN,QAAQ9jN,SAAQ,SAACkQ,EAAQngB,GAChC,OAAAi0C,EAAYwsF,OAAO,eAAczgI,EAAQ,GAAK,YAAiBmgB,EAAO9iB,WAxQtE4+a,CAAchoY,EAAar3C,KAAKs/a,UAAWt/a,KAAKu/a,WAChDloY,EAAYwsF,OAAO,0BAA2B7jI,KAAKo9a,sBAO/C,YAAA4B,gBAAR,SAAwB3nY,GACtB,IAAMn/B,EAAY,EAAOA,UACzB,GAAKA,EAAL,CAKA,IAAMm6I,EAAan6I,EAAUm6I,WACzBA,IACEA,EAAWmtR,eACbnoY,EAAYwsF,OAAO,0BAA2BwuB,EAAWmtR,eAGvDntR,EAAW3rJ,MACb2wC,EAAYwsF,OAAO,iBAAkBwuB,EAAW3rJ,MAG9C+4a,EAAmBptR,EAAWqtR,OAChC1/a,KAAKolJ,cAAc,kBAAoB,CAAEjjJ,MAAOkwJ,EAAWqtR,MAGzDD,EAAmBptR,EAAWstR,YAChC3/a,KAAKolJ,cAAc,uBAAyB,CAAEjjJ,MAAOkwJ,EAAWstR,YAIhEF,EAAmBvna,EAAU0na,eAC/BvoY,EAAYwsF,OAAO,eAAgBr7H,OAAO0P,EAAU0na,eAGlDH,EAAmBvna,EAAU2na,sBAC/BxoY,EAAYwsF,OAAO,sBAAuBr7H,OAAO0P,EAAU2na,wBAKvD,YAAAtC,UAAR,uBC3KoB,SAACuC,EAAyBrD,GAC9C,IACIsD,EADEvD,EAASG,EAAW,MAAO,GAG7BqD,EAAe,EACfC,EAAqC,GAEnCC,EAAe,SAAC57a,GAGpB,GAAIA,IAAUA,EAAM67a,eAAgB,CAClC,IAAMC,EAAoBH,EAAe,GACnCI,EAAmBJ,EAAeA,EAAevgb,OAAS,GAM9Dsgb,GAC0B,IAA1BC,EAAevgb,QACf4E,EAAMq0O,UAAY0nM,EAAiB1nM,UAAY,KAC/Cr0O,EAAMq0O,UAAYynM,EAAkBznM,UAAY,KAEhDqnM,GAAgB17a,EAAMnC,MACtB89a,EAAer2a,KAAKtF,KAEpB07a,EAAe17a,EAAMnC,MACrB89a,EAAiB,CAAC37a,IAKhB07a,EAAexD,EAAOr6a,QACxBq6a,EAAOr6a,MAAQ69a,EACfxD,EAAOh7U,QAAUy+U,EACbF,GACFA,OAMFlnD,EAAK71Q,EAAQ,eAAgBk9T,GAC/BrnD,IACFknD,EAASxD,EAAauD,EAAUtD,EAAQC,GAExCK,GAAS,WACPjkD,EAAGynD,cAAc9/a,IAAI0/a,GACrBH,GAAO,OD+HTQ,EAAO,SAAA/D,GACL,IAAMl4a,EAAQk4a,EAAOh7U,QAAQ9hE,MACxBp7B,IAILw5B,EAAA,EAAO1f,IAAI,6BACX,EAAKgnI,cAAL,IAA4B,CAAEjjJ,MAAOq6a,EAAOr6a,OAC5C,EAAKo9a,UAAYj7a,OAKb,YAAAk5a,UAAR,uBD5LoB,SAACsC,EAAyBrD,GAC9C,IAEIsD,EAFES,EAAoBvD,IACpBT,EAASG,EAAW,OAGpBuD,EAAe,SAAC57a,GAGpB,IAAMnC,EAAQmC,EAAMq0O,UAIhBx2O,EAAQq+a,EAAkBxD,kBAC5BR,EAAOr6a,MAAQA,EACfq6a,EAAOh7U,QAAQ53F,KAAKtF,IAGlBy7a,GACFA,KAIElnD,EAAK71Q,EAAQ,2BAA4Bk9T,GAE/C,GAAIrnD,EAAI,CACNknD,EAASxD,EAAauD,EAAUtD,EAAQC,GAExC,IAAM,EAAgB,WACfU,EAAkBX,EAAO35a,MAC5Bg2X,EAAGynD,cAAc9/a,IAAI0/a,GACrBrnD,EAAGl1Q,aACHw5T,EAAkBX,EAAO35a,KAAM,EAC/Bk9a,GAAO,KAOX,CAAC,UAAW,SAAS1sa,SAAQ,SAAA3M,GAC3BytF,iBAAiBztF,EAAM,EAAe,CAAEm2B,MAAM,EAAMm5D,SAAS,OAG/D8mV,EAAS,GAAe,ICkJxB2D,EAAO,SAAAjE,GACL,IAAMl4a,EAAQk4a,EAAOh7U,QAAQ9hE,MAC7B,GAAKp7B,EAAL,CAIA,IAAMi2G,EAAa,YAAQ,KACrBo+H,EAAY,YAAQr0O,EAAMq0O,WAChC76M,EAAA,EAAO1f,IAAI,6BACX,EAAKgnI,cAAL,IAA4B,CAAEjjJ,MAAOq6a,EAAOr6a,OAC5C,EAAKijJ,cAAc,YAAc,CAAEjjJ,MAAOo4G,EAAao+H,GACvD,EAAK2mM,UAAYh7a,KAChBtE,KAAKo9a,oBAIF,YAAAK,UAAR,uBE1NoB,SAACqC,EAAyBrD,GAC9C,IAEIsD,EAFES,EAAoBvD,IACpBT,EAASG,EAAW,OAGpBuD,EAAe,SAAC57a,GAEhBy7a,GAAUz7a,EAAMq0O,UAAY6nM,EAAkBxD,kBAChDR,EAAOr6a,MAAQmC,EAAMo8a,gBAAkBp8a,EAAMq0O,UAC7C6jM,EAAOh7U,QAAQ53F,KAAKtF,GACpBy7a,GAAO,KAILlnD,EAAK71Q,EAAQ,cAAek9T,GAC9BrnD,IACFknD,EAASxD,EAAauD,EAAUtD,EAAQC,GACxCK,GAAS,WACPjkD,EAAGynD,cAAc9/a,IAAI0/a,GACrBrnD,EAAGl1Q,gBACF,IFuMHg9T,EAAO,SAAAnE,GACL,IAAMl4a,EAAQk4a,EAAOh7U,QAAQ9hE,MAC7B,GAAKp7B,EAAL,CAIA,IAAMi2G,EAAa,YAAQ,KACrBo+H,EAAY,YAAQr0O,EAAMq0O,WAChC76M,EAAA,EAAO1f,IAAI,6BACX,EAAKgnI,cAAL,IAA4B,CAAEjjJ,MAAOq6a,EAAOr6a,OAC5C,EAAKijJ,cAAc,YAAc,CAAEjjJ,MAAOo4G,EAAao+H,QAG7D,EA9OA,GA8TA,SAASmlM,EACPzmY,EACA/yC,EACAovB,EACA6mF,EACAipB,EACAo9S,GAEA,IAAMv5a,EAAMu5a,EAAYt8a,EAAMs8a,GAAoCt8a,EAASovB,EAAK,OAC1EtsB,EAAQ9C,EAASovB,EAAK,SACvBtsB,GAAUC,GAGf02a,EAAY1mY,EAAa,CACvBksF,GAAI,UACJC,YAAwB,OAAXA,QAAW,IAAXA,IAAe9vG,EAC5ByvG,eAAgB5oB,EAAa,YAAQnzG,GACrCq8H,aAAclpB,EAAa,YAAQlzG,KA0BjC,SAAU02a,EAAY1mY,EAA0B,GAAE,IAAA8rF,EAAA,EAAAA,eAAgB,oCAKtE,OAJIA,GAAkB9rF,EAAY8rF,eAAiBA,IACjD9rF,EAAY8rF,eAAiBA,GAGxB9rF,EAAYqsF,WAAU,aAC3BP,eAAc,GACXzmE,IAOP,SAAS+iX,EAAmBt9a,GAC1B,MAAwB,kBAAVA,GAAsBsL,SAAStL,G,sBG3TlC0+a,EAAsE,CACjFC,YAAY,EACZC,UAAU,EACVC,eA5EqC,CAAC,YAAa,QAgF/C,SAAUC,EAA2B5rY,GAEnC,uCAAEyrY,EAAA,EAAAA,WAAYC,EAAA,EAAAA,SAAUC,EAAA,EAAAA,eAAgBE,EAAA,EAAAA,2BAOxCC,EAAkC,GAElCC,EAA0B,SAACn4Y,GAC/B,GAAIk4Y,EAAOl4Y,GACT,OAAOk4Y,EAAOl4Y,GAEhB,IAAMyvJ,EAAUsoP,EAIhB,OAHAG,EAAOl4Y,GACLyvJ,EAAQvgJ,MAAK,SAAC4mG,GAA4B,mBAAkB91G,EAAlB,QACzC,YAAkBA,EAAK,cACnBk4Y,EAAOl4Y,IAKZo4Y,EAAmBD,EACmB,oBAA/BF,IACTG,EAAmB,SAACp4Y,GAClB,OAAOm4Y,EAAwBn4Y,IAAQi4Y,EAA2Bj4Y,KAItE,IAAM25F,EAA8B,GAEhCk+S,GACF,YAA0B,SAAS,SAACQ,IAelC,SACJA,EACAD,EACAz+S,GAEA,IAAK,gBAAyB0+S,EAAYC,YAAaF,EAAiBC,EAAYC,UAAUt4Y,KAC5F,OAGF,GAAIq4Y,EAAY79S,aAAc,CAC5B,IAAMP,EAASo+S,EAAYC,UAAUC,OACrC,IAAKt+S,EAAQ,OAgBb,aAdMJ,EAAOF,EAAMM,MAEbo+S,EAAYjhV,SAGdyiC,EAAKkB,cAAcs9S,EAAYjhV,SAASH,QAC/BohV,EAAYzqa,OACrBisH,EAAKiB,UAAU,kBAEjBjB,EAAKhkF,gBAGE8jF,EAAMM,KAKjB,IAAMm0Q,EAAoB,cAC1B,GAAIA,EAAmB,CACrB,IAAMv0Q,EAAOu0Q,EAAkB3zQ,WAAW,CACxC3iI,KAAM,OAAF,IAAE,CAAF,eACCugb,EAAYC,WAAS,CACxB76a,KAAM,UAER88H,YAAgB89S,EAAYC,UAAUjtZ,OAAM,IAAIgtZ,EAAYC,UAAUt4Y,IACtEs6F,GAAI,gBAGN+9S,EAAYC,UAAUC,OAAS1+S,EAAKI,OACpCN,EAAME,EAAKI,QAAUJ,EAErB,IAAMtpH,EAAW8na,EAAYtla,KAAK,GAAKsla,EAAYtla,KAAK,GAElD3J,EAAWiva,EAAYtla,KAAK,GAAMsla,EAAYtla,KAAK,IAAiC,GACtF6kF,EAAUxuF,EAAQwuF,QAClB,OAAAu3B,EAAA,GAAa5+G,EAASynF,WACxBJ,EAAWrnF,EAAoBqnF,SAE7BA,EAE4B,oBAAnBA,EAAQvtF,OAEjButF,EAAQvtF,OAAO,eAAgBwvH,EAAKuB,iBAEpCxjC,EADSlzF,MAAMjJ,QAAQm8F,GACb,OAAH,IAAG,CAAIA,EAAO,CAAE,CAAC,eAAgBiiC,EAAKuB,mBAEnC,OAAH,IAAG,CAAH,eAAQxjC,GAAO,CAAE,eAAgBiiC,EAAKuB,kBAG/CxjC,EAAU,CAAE,eAAgBiiC,EAAKuB,iBAEnChyH,EAAQwuF,QAAUA,GA9EhB4gV,CAAcH,EAAaD,EAAkBz+S,MAI7Cm+S,GACF,YAA0B,OAAO,SAACO,IAgFhC,SACJA,EACAD,EACAz+S,GAEA,IACG,eACA0+S,EAAYvoR,KAAOuoR,EAAYvoR,IAAI2oR,0BAClCJ,EAAYvoR,KAAOuoR,EAAYvoR,IAAI4oR,gBAAkBN,EAAiBC,EAAYvoR,IAAI4oR,eAAe14Y,MAEvG,OAGF,IAAM8vH,EAAMuoR,EAAYvoR,IAAI4oR,eAG5B,GAAIL,EAAY79S,aAAc,CAC5B,IAAMP,EAASo+S,EAAYvoR,IAAI6oR,uBAC/B,IAAK1+S,EAAQ,OAUb,aARMJ,EAAOF,EAAMM,MAEjBJ,EAAKkB,cAAc+0B,EAAI8oR,aACvB/+S,EAAKhkF,gBAGE8jF,EAAMM,KAMjB,IAAMm0Q,EAAoB,cAC1B,GAAIA,EAAmB,CACrB,IAAMv0Q,EAAOu0Q,EAAkB3zQ,WAAW,CACxC3iI,KAAM,OAAF,IAAE,CAAF,eACCg4J,EAAIh4J,MAAI,CACX2F,KAAM,MACN4tB,OAAQykI,EAAIzkI,OACZ2U,IAAK8vH,EAAI9vH,MAEXu6F,YAAgBu1B,EAAIzkI,OAAM,IAAIykI,EAAI9vH,IAClCs6F,GAAI,gBAMN,GAHA+9S,EAAYvoR,IAAI6oR,uBAAyB9+S,EAAKI,OAC9CN,EAAM0+S,EAAYvoR,IAAI6oR,wBAA0B9+S,EAE5Cw+S,EAAYvoR,IAAIz3D,iBAClB,IACEggV,EAAYvoR,IAAIz3D,iBAAiB,eAAgBwhC,EAAKuB,iBACtD,MAAOv2G,MAlITg0Z,CAAYR,EAAaD,EAAkBz+S,MC3HjD,IAAM,EAAS,cCaR,IA6EDm/S,EAAkC,OAAH,IAAG,CAAH,CACnC7mS,YAAa,IACb8mS,4BAA4B,EAC5BC,uBAhFsD,IAiFtDC,uBDzFI,SACJC,EACAC,EACAC,GAEA,QAHA,IAAAD,OAAA,QACA,IAAAC,OAAA,GAEK,GAAW,EAAOnuZ,SAAvB,CAKA,IAEImjX,EAFAirC,EAAkC,EAAOpuZ,SAASC,KAGlDiuZ,IACF/qC,EAAoB8qC,EAAuB,CAAE9ma,KAAM,EAAO6Y,SAASkV,SAAUm6F,GAAI,cAG/E8+S,GACF,YAA0B,WAAW,SAAC,G,IAAEvvZ,EAAA,EAAAA,GAAIvtB,EAAA,EAAAA,UAU7B7G,IAAT6G,GAAsB+8a,IAA4C,IAA7BA,EAAYnib,QAAQ2yB,GAC3DwvZ,OAAc5jb,EAIZ6G,IAASutB,IACXwvZ,OAAc5jb,EACV24Y,IACFv5W,EAAA,EAAO1f,IAAI,oDAAoDi5X,EAAkB9zQ,IAEjF8zQ,EAAkBv4V,UAEpBu4V,EAAoB8qC,EAAuB,CAAE9ma,KAAM,EAAO6Y,SAASkV,SAAUm6F,GAAI,wBAlCrFzlG,EAAA,EAAOhE,KAAK,yECoFduoZ,kCAAkC,EAClCD,4BAA4B,GACzBvB,GAUL,aAuBE,WAAmBxrY,GAXZ,KAAAh6B,KAAekna,EAAe1/a,GAMpB,KAAA2/a,qBAA+B,EAGxC,KAAAC,4BAA2E/jb,EAGjF,IAAIsib,EAAiBH,EAAqCG,eAEtD3rY,IACFr1C,KAAKyib,uBAAyBptY,EAAS6lG,YACnC7lG,EAAS2rY,gBAAkBrza,MAAMjJ,QAAQ2wC,EAAS2rY,iBAAsD,IAAnC3rY,EAAS2rY,eAAethb,OAC/Fshb,EAAiB3rY,EAAS2rY,eAE1Bhhb,KAAKwib,qBAAsB,GAI/Bxib,KAAKqS,QAAO,uCACP0va,GACA1sY,GAAQ,CACX2rY,eAAc,IAGR,IAAA0B,EAAA,aAAAA,eACR1ib,KAAK2ib,SAAW,IAAI,EAAuBD,GAAkBA,EAAetF,mBA2FhF,OArFS,YAAA9D,UAAP,SAAiBxrZ,EAAuC87I,GAAxD,WACE5pK,KAAK4ib,eAAiBh5Q,EAElB5pK,KAAKwib,sBACP1kZ,EAAA,EAAOhE,KACL,4GAEFgE,EAAA,EAAOhE,KACL,oDAAoD+mZ,EAAqCG,iBAKvF,mBACJ,IAAAkB,uBACAG,EAAA,EAAAA,iCACAD,EAAA,EAAAA,2BACAJ,EAAA,EAAAA,2BACAlB,EAAA,EAAAA,WACAC,EAAA,EAAAA,SACAC,EAAA,EAAAA,eACAE,EAAA,EAAAA,2BAGF2B,GACE,SAAC5uZ,GAAgC,SAAK6uZ,wBAAL,KACjCV,EACAC,GAGEL,Ib9KF,GAAU,EAAO1gX,SACnB,EAAOA,SAAS6yB,iBAAiB,oBAAoB,WACnD,IAAMkjT,EAAoB,cAC1B,GAAI,EAAO/1U,SAASzqC,QAAUwgX,EAAmB,CAC/C,IAAM0rC,EAA6B,YAEnCjlZ,EAAA,EAAO1f,IACL,8EAAkFi5X,EAAkB9zQ,IAIjG8zQ,EAAkBn3S,QACrBm3S,EAAkBtzQ,UAAUg/S,GAE9B1rC,EAAkBxzQ,OAAO,mBAAoB,mBAC7CwzQ,EAAkBxzQ,OAAO,IAAmB,IAAgC,IAC5EwzQ,EAAkBv4V,aAItBhhB,EAAA,EAAOhE,KAAK,uFa8JZmnZ,EAA2B,CAAEH,WAAU,EAAEC,SAAQ,EAAEC,eAAc,EAAEE,2BAA0B,KAIvF,YAAA4B,wBAAR,SAAgC7uZ,GAAhC,WACE,GAAKj0B,KAAK4ib,eAAV,CAMM,mBAAEI,EAAA,EAAAA,eAAgB9nS,EAAA,EAAAA,YAAa+mS,EAAA,EAAAA,uBAE/BgB,EAAyC,aAAfhvZ,EAAQsvG,GA6CtC,WACJ,IAAMo4B,EASF,SAAyBunR,GAC7B,IAAMvnZ,EAAK,cAA0B2lC,SAASgsC,cAAc,aAAa41U,EAAQ,KACjF,OAAOvnZ,EAAKA,EAAG4xE,aAAa,WAAa,KAX1B41U,CAAe,gBAC9B,GAAIxnR,EACF,OAAO,YAAuBA,GAGhC,OAnD8DynR,QAAqB1kb,EAE3E2kb,EAAkB,OAAH,IAAG,CAAH,2BAChBpvZ,GACAgvZ,GAAuB,CAC1Bz9R,SAAS,IAEL89R,EAA4C,oBAAnBN,EAAgCA,EAAeK,GAAmBA,EAI3FE,OAAmC7kb,IAApB4kb,EAA+B,2BAAMD,GAAe,CAAE//S,SAAS,IAAUggT,GAEjE,IAAzBC,EAAajgT,SACfxlG,EAAA,EAAO1f,IAAI,2BAA2Bmla,EAAahgT,GAAE,2CAGvDzlG,EAAA,EAAO1f,IAAI,sBAAsBmla,EAAahgT,GAAE,yBAEhD,IAAM0X,EAAMj7I,KAAK4ib,iBACT1uZ,EAAA,cAAAA,SAEFsvZ,EAAkB,YACtBvoS,EACAsoS,EACAroS,GACA,EACA,CAAEhnH,SAAQ,IASZ,OAPAsvZ,EAAgB3+R,8BAA6B,SAACxtG,EAAaosF,GACzD,EAAKk/S,SAASjF,sBAAsBrmY,GA+B1C,SAAmCosY,EAAqBpsY,EAA8BosF,GACpF,IAAMllH,EAAOklH,EAAepsF,EAAY8rF,eACVM,IAAiBllH,EAAOkla,GAAella,EAAO,KAE1E84B,EAAY0sF,UAAU,qBACtB1sF,EAAYwsF,OAAO,iCAAkC,SAnCnD6/S,CAA0B,YAAQzB,GAAyB5qY,EAAaosF,MAG1E+/S,EAAgB3/S,OAAO,cAAe7jI,KAAKyib,wBAEpCe,EA3CL1lZ,EAAA,EAAOhE,KAAK,4BAA4B7F,EAAQsvG,GAAE,oDApFxC,EAAA1gI,GAAa,iBAiI7B,EArIA,G52BzEA,e,6B62BrCe,eAASyT,EAAa66E,EAASvxF,GAC5C0W,EAAY1W,UAAYuxF,EAAQvxF,UAAYA,EAC5CA,EAAU0W,YAAcA,GAGnB,SAASitD,EAAOg9F,EAAQu9O,GAC7B,IAAIl+Y,EAAYT,OAAOy2B,OAAO2qI,EAAO3gK,WACrC,IAAK,IAAIgB,KAAOk9Y,EAAYl+Y,EAAUgB,GAAOk9Y,EAAWl9Y,GACxD,OAAOhB,ECNF,SAAS+jb,KAET,IAAIC,EAAS,GACTC,EAAW,EAAID,EAEtBE,EAAM,sBACNC,EAAM,gDACNC,EAAM,iDACNC,EAAQ,qBACRC,EAAe,IAAIn9W,OAAO,UAAY,CAAC+8W,EAAKA,EAAKA,GAAO,QACxDK,EAAe,IAAIp9W,OAAO,UAAY,CAACi9W,EAAKA,EAAKA,GAAO,QACxDI,EAAgB,IAAIr9W,OAAO,WAAa,CAAC+8W,EAAKA,EAAKA,EAAKC,GAAO,QAC/DM,EAAgB,IAAIt9W,OAAO,WAAa,CAACi9W,EAAKA,EAAKA,EAAKD,GAAO,QAC/DO,EAAe,IAAIv9W,OAAO,UAAY,CAACg9W,EAAKC,EAAKA,GAAO,QACxDO,EAAgB,IAAIx9W,OAAO,WAAa,CAACg9W,EAAKC,EAAKA,EAAKD,GAAO,QAE/DS,EAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfp8X,IAAK,SACLq8X,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXtrQ,IAAK,SACLurQ,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAiBf,SAASC,IACP,OAAO3tb,KAAK4tb,MAAMC,YAOpB,SAASC,IACP,OAAO9tb,KAAK4tb,MAAMG,YAGL,SAAStvb,EAAMglE,GAC5B,IAAI37D,EAAGgzC,EAEP,OADA2oB,GAAUA,EAAS,IAAI7xD,OAAO1K,eACtBY,EAAIm8a,EAAM9zZ,KAAKszC,KAAY3oB,EAAIhzC,EAAE,GAAGpI,OAAQoI,EAAIuB,SAASvB,EAAE,GAAI,IAAW,IAANgzC,EAAUkzY,EAAKlmb,GAC/E,IAANgzC,EAAU,IAAImzY,EAAKnmb,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAANgzC,EAAUozY,EAAKpmb,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANgzC,EAAUozY,EAAMpmb,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAIo8a,EAAa/zZ,KAAKszC,IAAW,IAAIwqX,EAAInmb,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAIq8a,EAAah0Z,KAAKszC,IAAW,IAAIwqX,EAAW,IAAPnmb,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAIs8a,EAAcj0Z,KAAKszC,IAAWyqX,EAAKpmb,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAIu8a,EAAcl0Z,KAAKszC,IAAWyqX,EAAY,IAAPpmb,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIw8a,EAAan0Z,KAAKszC,IAAW0qX,EAAKrmb,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIy8a,EAAcp0Z,KAAKszC,IAAW0qX,EAAKrmb,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxE08a,EAAM3kb,eAAe4jE,GAAUuqX,EAAKxJ,EAAM/gX,IAC/B,gBAAXA,EAA2B,IAAIwqX,EAAI9iZ,IAAKA,IAAKA,IAAK,GAClD,KAGR,SAAS6iZ,EAAKxub,GACZ,OAAO,IAAIyub,EAAIzub,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAAS0ub,EAAK58Z,EAAG1C,EAAG/mB,EAAGyE,GAErB,OADIA,GAAK,IAAGglB,EAAI1C,EAAI/mB,EAAIsjC,KACjB,IAAI8iZ,EAAI38Z,EAAG1C,EAAG/mB,EAAGyE,GAGnB,SAAS8hb,EAAWjza,GAEzB,OADMA,aAAawoa,IAAQxoa,EAAI1c,EAAM0c,IAChCA,EAEE,IAAI8ya,GADX9ya,EAAIA,EAAEyya,OACWt8Z,EAAGnW,EAAEyT,EAAGzT,EAAEtT,EAAGsT,EAAEkza,SAFjB,IAAIJ,EAKd,SAASL,EAAIt8Z,EAAG1C,EAAG/mB,EAAGwmb,GAC3B,OAA4B,IAArB5ub,UAAUC,OAAe0ub,EAAW98Z,GAAK,IAAI28Z,EAAI38Z,EAAG1C,EAAG/mB,EAAc,MAAXwmb,EAAkB,EAAIA,GAGlF,SAASJ,EAAI38Z,EAAG1C,EAAG/mB,EAAGwmb,GAC3Brub,KAAKsxB,GAAKA,EACVtxB,KAAK4uB,GAAKA,EACV5uB,KAAK6H,GAAKA,EACV7H,KAAKqub,SAAWA,EA2BlB,SAASC,IACP,MAAO,IAAM1tT,EAAI5gI,KAAKsxB,GAAKsvG,EAAI5gI,KAAK4uB,GAAKgyG,EAAI5gI,KAAK6H,GAGpD,SAAS0mb,IACP,IAAIjib,EAAItM,KAAKqub,QACb,OAAc,KADQ/hb,EAAIrE,MAAMqE,GAAK,EAAI9B,KAAKwC,IAAI,EAAGxC,KAAKC,IAAI,EAAG6B,KAC/C,OAAS,SACrB9B,KAAKwC,IAAI,EAAGxC,KAAKC,IAAI,IAAKD,KAAKg1B,MAAMx/B,KAAKsxB,IAAM,IAAM,KACtD9mB,KAAKwC,IAAI,EAAGxC,KAAKC,IAAI,IAAKD,KAAKg1B,MAAMx/B,KAAK4uB,IAAM,IAAM,KACtDpkB,KAAKwC,IAAI,EAAGxC,KAAKC,IAAI,IAAKD,KAAKg1B,MAAMx/B,KAAK6H,IAAM,KACzC,IAANyE,EAAU,IAAM,KAAOA,EAAI,KAGpC,SAASs0H,EAAIz+H,GAEX,QADAA,EAAQqI,KAAKwC,IAAI,EAAGxC,KAAKC,IAAI,IAAKD,KAAKg1B,MAAMr9B,IAAU,KACvC,GAAK,IAAM,IAAMA,EAAM0E,SAAS,IAGlD,SAASsnb,EAAKtzY,EAAGv7C,EAAGw7C,EAAGxuC,GAIrB,OAHIA,GAAK,EAAGuuC,EAAIv7C,EAAIw7C,EAAI3P,IACf2P,GAAK,GAAKA,GAAK,EAAGD,EAAIv7C,EAAI6rC,IAC1B7rC,GAAK,IAAGu7C,EAAI1P,KACd,IAAIqjZ,EAAI3zY,EAAGv7C,EAAGw7C,EAAGxuC,GAGnB,SAASmib,EAAWtza,GACzB,GAAIA,aAAaqza,EAAK,OAAO,IAAIA,EAAIrza,EAAE0/B,EAAG1/B,EAAE7b,EAAG6b,EAAE2/B,EAAG3/B,EAAEkza,SAEtD,GADMlza,aAAawoa,IAAQxoa,EAAI1c,EAAM0c,KAChCA,EAAG,OAAO,IAAIqza,EACnB,GAAIrza,aAAaqza,EAAK,OAAOrza,EAE7B,IAAImW,GADJnW,EAAIA,EAAEyya,OACIt8Z,EAAI,IACV1C,EAAIzT,EAAEyT,EAAI,IACV/mB,EAAIsT,EAAEtT,EAAI,IACV4C,EAAMD,KAAKC,IAAI6mB,EAAG1C,EAAG/mB,GACrBmF,EAAMxC,KAAKwC,IAAIskB,EAAG1C,EAAG/mB,GACrBgzC,EAAI1P,IACJ7rC,EAAI0N,EAAMvC,EACVqwC,GAAK9tC,EAAMvC,GAAO,EAUtB,OATInL,GACau7C,EAAXvpB,IAAMtkB,GAAU4hB,EAAI/mB,GAAKvI,EAAc,GAATsvB,EAAI/mB,GAC7B+mB,IAAM5hB,GAAUnF,EAAIypB,GAAKhyB,EAAI,GAC5BgyB,EAAI1C,GAAKtvB,EAAI,EACvBA,GAAKw7C,EAAI,GAAM9tC,EAAMvC,EAAM,EAAIuC,EAAMvC,EACrCowC,GAAK,IAELv7C,EAAIw7C,EAAI,GAAKA,EAAI,EAAI,EAAID,EAEpB,IAAI2zY,EAAI3zY,EAAGv7C,EAAGw7C,EAAG3/B,EAAEkza,SAO5B,SAASG,EAAI3zY,EAAGv7C,EAAGw7C,EAAGuzY,GACpBrub,KAAK66C,GAAKA,EACV76C,KAAKV,GAAKA,EACVU,KAAK86C,GAAKA,EACV96C,KAAKqub,SAAWA,EAyClB,SAASK,EAAQ7zY,EAAG+/I,EAAI+yI,GACtB,OAGY,KAHJ9yR,EAAI,GAAK+/I,GAAM+yI,EAAK/yI,GAAM//I,EAAI,GAChCA,EAAI,IAAM8yR,EACV9yR,EAAI,IAAM+/I,GAAM+yI,EAAK/yI,IAAO,IAAM//I,GAAK,GACvC+/I,GCjXD,SAASyzI,EAAMrwR,EAAIi5E,EAAI03T,EAAIlsJ,EAAImsJ,GACpC,IAAI3wY,EAAKD,EAAKA,EAAIE,EAAKD,EAAKD,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAIC,EAAKC,GAAM+4E,GAC9B,EAAI,EAAIh5E,EAAK,EAAIC,GAAMywY,GACvB,EAAI,EAAI3wY,EAAK,EAAIC,EAAK,EAAIC,GAAMukP,EACjCvkP,EAAK0wY,GAAM,EDoKnBroZ,EAAOo9Y,EAAOllb,EAAO,CACnB8H,KAAM,SAASylS,GACb,OAAO7sS,OAAOC,OAAO,IAAIY,KAAKsW,YAAatW,KAAMgsS,IAEnD6iJ,YAAa,WACX,OAAO7ub,KAAK4tb,MAAMiB,eAEpBjuT,IAAK+sT,EACLE,UAAWF,EACXmB,UASF,WACE,OAAOL,EAAWzub,MAAM8ub,aATxBf,UAAWD,EACXjnb,SAAUinb,IA6DZvnZ,EAAO0nZ,EAAKL,EAAKrqX,EAAOogX,EAAO,CAC7BE,SAAU,SAASxpa,GAEjB,OADAA,EAAS,MAALA,EAAYwpa,EAAWr5a,KAAK6E,IAAIw0a,EAAUxpa,GACvC,IAAI4za,EAAIjub,KAAKsxB,EAAIjX,EAAGra,KAAK4uB,EAAIvU,EAAGra,KAAK6H,EAAIwS,EAAGra,KAAKqub,UAE1DzK,OAAQ,SAASvpa,GAEf,OADAA,EAAS,MAALA,EAAYupa,EAASp5a,KAAK6E,IAAIu0a,EAAQvpa,GACnC,IAAI4za,EAAIjub,KAAKsxB,EAAIjX,EAAGra,KAAK4uB,EAAIvU,EAAGra,KAAK6H,EAAIwS,EAAGra,KAAKqub,UAE1DT,IAAK,WACH,OAAO5tb,MAET6ub,YAAa,WACX,OAAS,IAAO7ub,KAAKsxB,GAAKtxB,KAAKsxB,EAAI,QAC1B,IAAOtxB,KAAK4uB,GAAK5uB,KAAK4uB,EAAI,QAC1B,IAAO5uB,KAAK6H,GAAK7H,KAAK6H,EAAI,OAC3B,GAAK7H,KAAKqub,SAAWrub,KAAKqub,SAAW,GAE/CztT,IAAK0tT,EACLT,UAAWS,EACXP,UAAWQ,EACX1nb,SAAU0nb,KAiEZhoZ,EAAOioZ,GAXA,SAAa3zY,EAAGv7C,EAAGw7C,EAAGuzY,GAC3B,OAA4B,IAArB5ub,UAAUC,OAAe+ub,EAAW5zY,GAAK,IAAI2zY,EAAI3zY,EAAGv7C,EAAGw7C,EAAc,MAAXuzY,EAAkB,EAAIA,KAUxE9qX,EAAOogX,EAAO,CAC7BE,SAAU,SAASxpa,GAEjB,OADAA,EAAS,MAALA,EAAYwpa,EAAWr5a,KAAK6E,IAAIw0a,EAAUxpa,GACvC,IAAIm0a,EAAIxub,KAAK66C,EAAG76C,KAAKV,EAAGU,KAAK86C,EAAIzgC,EAAGra,KAAKqub,UAElDzK,OAAQ,SAASvpa,GAEf,OADAA,EAAS,MAALA,EAAYupa,EAASp5a,KAAK6E,IAAIu0a,EAAQvpa,GACnC,IAAIm0a,EAAIxub,KAAK66C,EAAG76C,KAAKV,EAAGU,KAAK86C,EAAIzgC,EAAGra,KAAKqub,UAElDT,IAAK,WACH,IAAI/yY,EAAI76C,KAAK66C,EAAI,IAAqB,KAAd76C,KAAK66C,EAAI,GAC7Bv7C,EAAI2I,MAAM4yC,IAAM5yC,MAAMjI,KAAKV,GAAK,EAAIU,KAAKV,EACzCw7C,EAAI96C,KAAK86C,EACT6yR,EAAK7yR,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKx7C,EACjCs7L,EAAK,EAAI9/I,EAAI6yR,EACjB,OAAO,IAAIsgH,EACTS,EAAQ7zY,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAK+/I,EAAI+yI,GAC1C+gH,EAAQ7zY,EAAG+/I,EAAI+yI,GACf+gH,EAAQ7zY,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAK+/I,EAAI+yI,GACzC3tU,KAAKqub,UAGTQ,YAAa,WACX,OAAQ,GAAK7ub,KAAKV,GAAKU,KAAKV,GAAK,GAAK2I,MAAMjI,KAAKV,KACzC,GAAKU,KAAK86C,GAAK96C,KAAK86C,GAAK,GACzB,GAAK96C,KAAKqub,SAAWrub,KAAKqub,SAAW,GAE/CS,UAAW,WACT,IAAIxib,EAAItM,KAAKqub,QACb,OAAc,KADQ/hb,EAAIrE,MAAMqE,GAAK,EAAI9B,KAAKwC,IAAI,EAAGxC,KAAKC,IAAI,EAAG6B,KAC/C,OAAS,UACpBtM,KAAK66C,GAAK,GAAK,KACA,KAAf76C,KAAKV,GAAK,GAAW,MACN,KAAfU,KAAK86C,GAAK,GAAW,KACf,IAANxuC,EAAU,IAAM,KAAOA,EAAI,SChWvB,ICRAC,KAAK,IAAMA,ECE1B,SAASu2D,EAAOx2D,EAAGuW,GACjB,OAAO,SAASxjB,GACd,OAAOiN,EAAIjN,EAAIwjB,GAeZ,SAASusK,EAAM5iL,GACpB,OAAoB,KAAZA,GAAKA,GAAWuib,EAAU,SAASzib,EAAGzE,GAC5C,OAAOA,EAAIyE,EAbf,SAAqBA,EAAGzE,EAAG2E,GACzB,OAAOF,EAAI9B,KAAK6E,IAAI/C,EAAGE,GAAI3E,EAAI2C,KAAK6E,IAAIxH,EAAG2E,GAAKF,EAAGE,EAAI,EAAIA,EAAG,SAASnN,GACrE,OAAOmL,KAAK6E,IAAI/C,EAAIjN,EAAIwI,EAAG2E,IAWZwib,CAAY1ib,EAAGzE,EAAG2E,GAAKihB,EAASxlB,MAAMqE,GAAKzE,EAAIyE,IAInD,SAASyib,EAAQzib,EAAGzE,GACjC,IAAIgb,EAAIhb,EAAIyE,EACZ,OAAOuW,EAAIigD,EAAOx2D,EAAGuW,GAAK4K,EAASxlB,MAAMqE,GAAKzE,EAAIyE,GCtBrC,eAAU2ib,EAASzib,GAChC,IAAI/N,EAAQ2wL,EAAM5iL,GAElB,SAASohb,EAAIxmb,EAAOC,GAClB,IAAIiqB,EAAI7yB,GAAO2I,EAAQ8nb,EAAS9nb,IAAQkqB,GAAIjqB,EAAM6nb,EAAS7nb,IAAMiqB,GAC7D1C,EAAInwB,EAAM2I,EAAMwnB,EAAGvnB,EAAIunB,GACvB/mB,EAAIpJ,EAAM2I,EAAMS,EAAGR,EAAIQ,GACvBwmb,EAAUU,EAAQ3nb,EAAMinb,QAAShnb,EAAIgnb,SACzC,OAAO,SAAShvb,GAKd,OAJA+H,EAAMkqB,EAAIA,EAAEjyB,GACZ+H,EAAMwnB,EAAIA,EAAEvvB,GACZ+H,EAAMS,EAAIA,EAAExI,GACZ+H,EAAMinb,QAAUA,EAAQhvb,GACjB+H,EAAQ,IAMnB,OAFAwmb,EAAIx+P,MAAQ6/P,EAELrB,EAnBM,CAoBZ,GAEH,SAASuB,EAAUC,GACjB,OAAO,SAASj8G,GACd,IAII5zU,EAAGd,EAJHe,EAAI2zU,EAAOzzU,OACX4xB,EAAI,IAAI3jB,MAAMnO,GACdovB,EAAI,IAAIjhB,MAAMnO,GACdqI,EAAI,IAAI8F,MAAMnO,GAElB,IAAKD,EAAI,EAAGA,EAAIC,IAAKD,EACnBd,EAAQywb,EAAS/7G,EAAO5zU,IACxB+xB,EAAE/xB,GAAKd,EAAM6yB,GAAK,EAClB1C,EAAErvB,GAAKd,EAAMmwB,GAAK,EAClB/mB,EAAEtI,GAAKd,EAAMoJ,GAAK,EAMpB,OAJAypB,EAAI89Z,EAAO99Z,GACX1C,EAAIwga,EAAOxga,GACX/mB,EAAIunb,EAAOvnb,GACXpJ,EAAM4vb,QAAU,EACT,SAAShvb,GAId,OAHAZ,EAAM6yB,EAAIA,EAAEjyB,GACZZ,EAAMmwB,EAAIA,EAAEvvB,GACZZ,EAAMoJ,EAAIA,EAAExI,GACLZ,EAAQ,KAKC0wb,GH7CP,SAASrta,GACtB,IAAItiB,EAAIsiB,EAAOpiB,OAAS,EACxB,OAAO,SAASL,GACd,IAAIE,EAAIF,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAGG,EAAI,GAAKgL,KAAK2F,MAAM9Q,EAAIG,GAChEmvb,EAAK7sa,EAAOviB,GACZkjS,EAAK3gR,EAAOviB,EAAI,GAChB03H,EAAK13H,EAAI,EAAIuiB,EAAOviB,EAAI,GAAK,EAAIovb,EAAKlsJ,EACtCmsJ,EAAKrvb,EAAIC,EAAI,EAAIsiB,EAAOviB,EAAI,GAAK,EAAIkjS,EAAKksJ,EAC9C,OAAOtgH,GAAOhvU,EAAIE,EAAIC,GAAKA,EAAGy3H,EAAI03T,EAAIlsJ,EAAImsJ,OGsClBO,GCpDb,SAASrta,GACtB,IAAItiB,EAAIsiB,EAAOpiB,OACf,OAAO,SAASL,GACd,IAAIE,EAAIiL,KAAK2F,QAAQ9Q,GAAK,GAAK,IAAMA,EAAIA,GAAKG,GAC1Cy3H,EAAKn1G,GAAQviB,EAAIC,EAAI,GAAKA,GAC1Bmvb,EAAK7sa,EAAOviB,EAAIC,GAChBijS,EAAK3gR,GAAQviB,EAAI,GAAKC,GACtBovb,EAAK9sa,GAAQviB,EAAI,GAAKC,GAC1B,OAAO6uU,GAAOhvU,EAAIE,EAAIC,GAAKA,EAAGy3H,EAAI03T,EAAIlsJ,EAAImsJ,OD2CvC,IErDQ,WAAStib,EAAGzE,GACpBA,IAAGA,EAAI,IACZ,IAEItI,EAFAC,EAAI8M,EAAI9B,KAAKC,IAAI5C,EAAEnI,OAAQ4M,EAAE5M,QAAU,EACvCyK,EAAItC,EAAEvE,QAEV,OAAO,SAASjE,GACd,IAAKE,EAAI,EAAGA,EAAIC,IAAKD,EAAG4K,EAAE5K,GAAK+M,EAAE/M,IAAM,EAAIF,GAAKwI,EAAEtI,GAAKF,EACvD,OAAO8K,IAIJ,SAASklb,EAAc9ib,GAC5B,OAAO9G,YAAYqB,OAAOyF,MAAQA,aAAaq9L,UCL1C,SAAS0lP,EAAahjb,EAAGzE,GAC9B,IAIItI,EAJA23F,EAAKrvF,EAAIA,EAAEnI,OAAS,EACpByyF,EAAK7lF,EAAI9B,KAAKC,IAAIysF,EAAI5qF,EAAE5M,QAAU,EAClC6M,EAAI,IAAIoB,MAAMwkF,GACdhoF,EAAI,IAAIwD,MAAMupF,GAGlB,IAAK33F,EAAI,EAAGA,EAAI4yF,IAAM5yF,EAAGgN,EAAEhN,GAAK4C,EAAMmK,EAAE/M,GAAIsI,EAAEtI,IAC9C,KAAOA,EAAI23F,IAAM33F,EAAG4K,EAAE5K,GAAKsI,EAAEtI,GAE7B,OAAO,SAASF,GACd,IAAKE,EAAI,EAAGA,EAAI4yF,IAAM5yF,EAAG4K,EAAE5K,GAAKgN,EAAEhN,GAAGF,GACrC,OAAO8K,GCnBI,eAASmC,EAAGzE,GACzB,IAAIgb,EAAI,IAAI0B,KACZ,OAAOjY,GAAKA,EAAGzE,GAAKA,EAAG,SAASxI,GAC9B,OAAOwjB,EAAE2/D,QAAQl2E,GAAK,EAAIjN,GAAKwI,EAAIxI,GAAIwjB,I,SCD5B,WAASvW,EAAGzE,GACzB,IAEIwS,EAFA9a,EAAI,GACJ4K,EAAI,GAMR,IAAKkQ,KAHK,OAAN/N,GAA2B,kBAANA,IAAgBA,EAAI,IACnC,OAANzE,GAA2B,kBAANA,IAAgBA,EAAI,IAEnCA,EACJwS,KAAK/N,EACP/M,EAAE8a,GAAKlY,EAAMmK,EAAE+N,GAAIxS,EAAEwS,IAErBlQ,EAAEkQ,GAAKxS,EAAEwS,GAIb,OAAO,SAAShb,GACd,IAAKgb,KAAK9a,EAAG4K,EAAEkQ,GAAK9a,EAAE8a,GAAGhb,GACzB,OAAO8K,IClBPolb,EAAM,8CACNC,EAAM,IAAIzoX,OAAOwoX,EAAIhsa,OAAQ,KAclB,eAASjX,EAAGzE,GACzB,IACIivH,EACA24T,EACAn4T,EAHA6lQ,EAAKoyD,EAAInmX,UAAYomX,EAAIpmX,UAAY,EAIrC7pE,GAAK,EACLD,EAAI,GACJ2iC,EAAI,GAMR,IAHA31B,GAAQ,GAAIzE,GAAQ,IAGZivH,EAAKy4T,EAAIp/Z,KAAK7jB,MACdmjb,EAAKD,EAAIr/Z,KAAKtoB,MACfyvH,EAAKm4T,EAAGrsb,OAAS+5X,IACpB7lQ,EAAKzvH,EAAEvE,MAAM65X,EAAI7lQ,GACbh4H,EAAEC,GAAID,EAAEC,IAAM+3H,EACbh4H,IAAIC,GAAK+3H,IAEXR,EAAKA,EAAG,OAAS24T,EAAKA,EAAG,IACxBnwb,EAAEC,GAAID,EAAEC,IAAMkwb,EACbnwb,IAAIC,GAAKkwb,GAEdnwb,IAAIC,GAAK,KACT0iC,EAAEr4B,KAAK,CAACrK,EAAGA,EAAGgN,EAAG+/B,YAAOwqF,EAAI24T,MAE9BtyD,EAAKqyD,EAAIpmX,UAYX,OARI+zT,EAAKt1X,EAAEnI,SACT43H,EAAKzvH,EAAEvE,MAAM65X,GACT79X,EAAEC,GAAID,EAAEC,IAAM+3H,EACbh4H,IAAIC,GAAK+3H,GAKTh4H,EAAEI,OAAS,EAAKuiC,EAAE,GA7C3B,SAAap6B,GACX,OAAO,SAASxI,GACd,OAAOwI,EAAExI,GAAK,IA4CVkgE,CAAIt9B,EAAE,GAAG11B,GApDjB,SAAc1E,GACZ,OAAO,WACL,OAAOA,GAmDH0zL,CAAK1zL,IACJA,EAAIo6B,EAAEviC,OAAQ,SAASL,GACtB,IAAK,IAAW8b,EAAP5b,EAAI,EAAMA,EAAIsI,IAAKtI,EAAGD,GAAG6b,EAAI8mB,EAAE1iC,IAAIA,GAAK4b,EAAE5O,EAAElN,GACrD,OAAOC,EAAE4N,KAAK,OCnDT,eAASZ,EAAGzE,GACzB,IAAkBsC,EAAd9K,SAAWwI,EACf,OAAY,MAALA,GAAmB,YAANxI,EAAkBouB,EAAS5lB,IAClC,WAANxI,EAAiBitC,IACZ,WAANjtC,GAAmB8K,EAAI1L,EAAMoJ,KAAOA,EAAIsC,EAAGyjb,GAAO7nb,EAClD8B,aAAapJ,EAAQmvb,EACrB/lb,aAAa0c,KAAO0zB,EACpBo3Y,EAAcxnb,GAAK6nb,EACnB/hb,MAAMjJ,QAAQmD,GAAKynb,EACE,oBAAdznb,EAAE87B,SAAgD,oBAAf97B,EAAEhB,UAA2BoB,MAAMJ,GAAKmb,EAClFspB,KAAQhgC,EAAGzE,K,gRCdnB,SAASgT,EAAmBzS,GAAO,OAQnC,SAA4BA,GAAO,GAAIuF,MAAMjJ,QAAQ0D,GAAM,OAAO0S,EAAkB1S,GAR1C2S,CAAmB3S,IAM7D,SAA0B4S,GAAQ,GAAsB,qBAAXjP,QAA0BA,OAAOkP,YAAY9b,OAAO6b,GAAO,OAAOrN,MAAMpI,KAAKyV,GANrDE,CAAiB9S,IAItF,SAAqC+S,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOL,EAAkBK,EAAGC,GAAS,IAAI5b,EAAIL,OAAOS,UAAUiH,SAAS/G,KAAKqb,GAAG7X,MAAM,GAAI,GAAc,WAAN9D,GAAkB2b,EAAE7E,cAAa9W,EAAI2b,EAAE7E,YAAY+E,MAAM,GAAU,QAAN7b,GAAqB,QAANA,EAAa,OAAOmO,MAAMpI,KAAK4V,GAAI,GAAU,cAAN3b,GAAqB,2CAA2C6Y,KAAK7Y,GAAI,OAAOsb,EAAkBK,EAAGC,GAJxTE,CAA4BlT,IAE1H,WAAgC,MAAM,IAAI5C,UAAU,wIAF8E+V,GAUlI,SAAST,EAAkB1S,EAAKvE,IAAkB,MAAPA,GAAeA,EAAMuE,EAAI1I,UAAQmE,EAAMuE,EAAI1I,QAAQ,IAAK,IAAIH,EAAI,EAAGic,EAAO,IAAI7N,MAAM9J,GAAMtE,EAAIsE,EAAKtE,IAAOic,EAAKjc,GAAK6I,EAAI7I,GAAM,OAAOic,EAEhL,SAASo0B,IAA2Q,OAA9PA,EAAWzwC,OAAOC,QAAU,SAAU+N,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAS9jB,UAAUF,GAAI,IAAK,IAAIqB,KAAO2iB,EAAcpkB,OAAOS,UAAUC,eAAeC,KAAKyjB,EAAQ3iB,KAAQuM,EAAOvM,GAAO2iB,EAAO3iB,IAAY,OAAOuM,GAAkByiC,EAAS7vC,MAAMC,KAAMP,WAEhT,SAASsjB,EAAQC,EAAQC,GAAkB,IAAIxf,EAAOtE,OAAOsE,KAAKuf,GAAS,GAAI7jB,OAAOiB,sBAAuB,CAAE,IAAI8iB,EAAU/jB,OAAOiB,sBAAsB4iB,GAAaC,IAAgBC,EAAUA,EAAQ/G,QAAO,SAAUgH,GAAO,OAAOhkB,OAAOikB,yBAAyBJ,EAAQG,GAAKE,eAAgB5f,EAAKmG,KAAK7J,MAAM0D,EAAMyf,GAAY,OAAOzf,EAE9U,SAAS6f,EAAcnW,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAyB,MAAhB9jB,UAAUF,GAAaE,UAAUF,GAAK,GAAQA,EAAI,EAAKwjB,EAAQ5jB,OAAOokB,IAAS,GAAMlQ,SAAQ,SAAUzS,GAAO4iB,EAAgBrW,EAAQvM,EAAK2iB,EAAO3iB,OAAsBzB,OAAOskB,0BAA6BtkB,OAAOukB,iBAAiBvW,EAAQhO,OAAOskB,0BAA0BF,IAAmBR,EAAQ5jB,OAAOokB,IAASlQ,SAAQ,SAAUzS,GAAOzB,OAAO8M,eAAekB,EAAQvM,EAAKzB,OAAOikB,yBAAyBG,EAAQ3iB,OAAe,OAAOuM,EAE7gB,SAASqW,EAAgBhgB,EAAK5C,EAAKuB,GAAiK,OAApJvB,KAAO4C,EAAOrE,OAAO8M,eAAezI,EAAK5C,EAAK,CAAEuB,MAAOA,EAAOkhB,YAAY,EAAMnX,cAAc,EAAMyX,UAAU,IAAkBngB,EAAI5C,GAAOuB,EAAgBqB,EAE3M,SAASy2B,EAAyB1W,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAAkE3iB,EAAKrB,EAAnE4N,EAEzF,SAAuCoW,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAA2D3iB,EAAKrB,EAA5D4N,EAAS,GAAQgtB,EAAah7B,OAAOsE,KAAK8f,GAAqB,IAAKhkB,EAAI,EAAGA,EAAI46B,EAAWz6B,OAAQH,IAAOqB,EAAMu5B,EAAW56B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,IAAauM,EAAOvM,GAAO2iB,EAAO3iB,IAAQ,OAAOuM,EAFxMitB,CAA8B7W,EAAQ2W,GAAuB,GAAI/6B,OAAOiB,sBAAuB,CAAE,IAAIi6B,EAAmBl7B,OAAOiB,sBAAsBmjB,GAAS,IAAKhkB,EAAI,EAAGA,EAAI86B,EAAiB36B,OAAQH,IAAOqB,EAAMy5B,EAAiB96B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,GAAkBzB,OAAOS,UAAUS,qBAAqBP,KAAKyjB,EAAQ3iB,KAAgBuM,EAAOvM,GAAO2iB,EAAO3iB,IAAU,OAAOuM,EAUne,IAAIkrG,EAAe,CACjBs3U,cAAe,SAAuBrrb,GACpC,OAAOV,IAASU,EAAMnC,OAASytb,IAAMtrb,EAAMnC,OAASmC,EAAMnC,QAGvD,SAAS0tb,EAAU7ub,GACxB,IAAID,EAAOC,EAAMD,KACb4ub,EAAgB3ub,EAAM2ub,cACtB9ra,EAAU7iB,EAAM6iB,QAChBmyF,EAAYh1G,EAAMg1G,UAClBnzG,EAAK7B,EAAM6B,GACX4zG,EAAez1G,EAAMy1G,aACrBjkE,EAASvY,EAAyBj5B,EAAO,CAAC,OAAQ,gBAAiB,UAAW,YAAa,KAAM,iBAErG,OAAKD,GAASA,EAAKrB,OAICV,IAAM0B,cAAc6xC,IAAO,CAC7C3zC,UAAW,uBACVmC,EAAKP,KAAI,SAAU8D,EAAOlB,GAC3B,IAAIjB,EAAQ2hB,IAAOD,GAAW8ra,EAAcrrb,EAAOlB,GAASwgB,YAAkBtf,GAASA,EAAMgT,QAASuM,GAClGisa,EAAUhsa,IAAOjhB,GAAM,GAAK,CAC9BA,GAAI,GAAGC,OAAOD,EAAI,KAAKC,OAAOM,IAEhC,OAAoBpE,IAAM0B,cAAc61G,IAAO3mE,EAAS,GAAIxe,YAAY9sB,GAAO,GAAOkuC,EAAQs9Y,EAAS,CACrGx4U,cAAehzG,EAAMgzG,cACrBl0G,MAAOA,EACPjB,MAAOA,EACPs0G,aAAcA,EACdV,QAASQ,IAAM+B,aAAax0F,IAAOkyF,GAAa1xG,EAAQgf,EAAcA,EAAc,GAAIhf,GAAQ,GAAI,CAClG0xG,UAAWA,KAEbp1G,IAAK,SAASkC,OAAOM,UAlBhB,KAyBX,SAAS2sb,EAAen6U,EAAO70G,GAC7B,OAAK60G,GAIS,IAAVA,EACkB52G,IAAM0B,cAAcmvb,EAAW,CACjDjvb,IAAK,qBACLG,KAAMA,IAIQ/B,IAAMgzB,eAAe4jF,IAAU7xF,IAAY6xF,GACvC52G,IAAM0B,cAAcmvb,EAAW,CACjDjvb,IAAK,qBACLG,KAAMA,EACNkuG,QAAS2G,IAIT3jF,IAAU2jF,GACQ52G,IAAM0B,cAAcmvb,EAAWjgZ,EAAS,CAC1D7uC,KAAMA,GACL60G,EAAO,CACRh1G,IAAK,wBAIF,KA1BE,KC9EX,SAASgvC,IAA2Q,OAA9PA,EAAWzwC,OAAOC,QAAU,SAAU+N,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAS9jB,UAAUF,GAAI,IAAK,IAAIqB,KAAO2iB,EAAcpkB,OAAOS,UAAUC,eAAeC,KAAKyjB,EAAQ3iB,KAAQuM,EAAOvM,GAAO2iB,EAAO3iB,IAAY,OAAOuM,GAAkByiC,EAAS7vC,MAAMC,KAAMP,WAEhT,SAASgf,EAAerW,EAAK7I,GAAK,OAUlC,SAAyB6I,GAAO,GAAIuF,MAAMjJ,QAAQ0D,GAAM,OAAOA,EAVtBsW,CAAgBtW,IAQzD,SAA+BA,EAAK7I,GAAK,GAAsB,qBAAXwM,UAA4BA,OAAOkP,YAAY9b,OAAOiJ,IAAO,OAAQ,IAAIwF,EAAO,GAAQ+Q,GAAK,EAAUC,GAAK,EAAWC,OAAKngB,EAAW,IAAM,IAAK,IAAiCogB,EAA7BC,EAAK3W,EAAI2D,OAAOkP,cAAmB0D,GAAMG,EAAKC,EAAGC,QAAQC,QAAoBrR,EAAKhE,KAAKkV,EAAG3c,QAAY5C,GAAKqO,EAAKlO,SAAWH,GAA3Dof,GAAK,IAAoE,MAAOO,GAAON,GAAK,EAAMC,EAAKK,EAAtL,QAAuM,IAAWP,GAAsB,MAAhBI,EAAE,QAAoBA,EAAE,SAAzC,QAAmE,GAAIH,EAAI,MAAMC,GAAQ,OAAOjR,EARjauR,CAAsB/W,EAAK7I,IAI5F,SAAqC4b,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOL,EAAkBK,EAAGC,GAAS,IAAI5b,EAAIL,OAAOS,UAAUiH,SAAS/G,KAAKqb,GAAG7X,MAAM,GAAI,GAAc,WAAN9D,GAAkB2b,EAAE7E,cAAa9W,EAAI2b,EAAE7E,YAAY+E,MAAM,GAAU,QAAN7b,GAAqB,QAANA,EAAa,OAAOmO,MAAMpI,KAAK4V,GAAI,GAAU,cAAN3b,GAAqB,2CAA2C6Y,KAAK7Y,GAAI,OAAOsb,EAAkBK,EAAGC,GAJpTE,CAA4BlT,EAAK7I,IAEnI,WAA8B,MAAM,IAAIiG,UAAU,6IAFuF4Z,GAMzI,SAAStE,EAAkB1S,EAAKvE,IAAkB,MAAPA,GAAeA,EAAMuE,EAAI1I,UAAQmE,EAAMuE,EAAI1I,QAAQ,IAAK,IAAIH,EAAI,EAAGic,EAAO,IAAI7N,MAAM9J,GAAMtE,EAAIsE,EAAKtE,IAAOic,EAAKjc,GAAK6I,EAAI7I,GAAM,OAAOic,EAMhL,SAASye,EAAyB1W,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAAkE3iB,EAAKrB,EAAnE4N,EAEzF,SAAuCoW,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAA2D3iB,EAAKrB,EAA5D4N,EAAS,GAAQgtB,EAAah7B,OAAOsE,KAAK8f,GAAqB,IAAKhkB,EAAI,EAAGA,EAAI46B,EAAWz6B,OAAQH,IAAOqB,EAAMu5B,EAAW56B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,IAAauM,EAAOvM,GAAO2iB,EAAO3iB,IAAQ,OAAOuM,EAFxMitB,CAA8B7W,EAAQ2W,GAAuB,GAAI/6B,OAAOiB,sBAAuB,CAAE,IAAIi6B,EAAmBl7B,OAAOiB,sBAAsBmjB,GAAS,IAAKhkB,EAAI,EAAGA,EAAI86B,EAAiB36B,OAAQH,IAAOqB,EAAMy5B,EAAiB96B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,GAAkBzB,OAAOS,UAAUS,qBAAqBP,KAAKyjB,EAAQ3iB,KAAgBuM,EAAOvM,GAAO2iB,EAAO3iB,IAAU,OAAOuM,EAU5d,SAAS6ib,EAAShvb,GACvB,IAAIgI,EAAShI,EAAMgI,OACfqgB,EAASroB,EAAMqoB,OACf1nB,EAAQX,EAAMW,MACdkiB,EAAU7iB,EAAM6iB,QAChB9iB,EAAOC,EAAMD,KACbkvb,EAAqBjvb,EAAMivb,mBAC3Bj5H,EAAQh2T,EAAMg2T,MACdC,EAAQj2T,EAAMi2T,MACdzkR,EAASvY,EAAyBj5B,EAAO,CAAC,SAAU,SAAU,QAAS,UAAW,OAAQ,qBAAsB,QAAS,UAEzHK,EAAW+vB,YAAYohB,GACvBjpB,EAAYxoB,EAAKP,KAAI,SAAU8D,EAAO/E,GACxC,IAAI2wb,EAAsBD,EAAmB3rb,EAAOuf,GAChDtX,EAAI2jb,EAAoB3jb,EACxBC,EAAI0jb,EAAoB1jb,EACxBrK,EAAQ+tb,EAAoB/tb,MAC5Bgub,EAAWD,EAAoBC,SAEnC,IAAKA,EACH,OAAO,KAGT,IACIC,EAAUC,EADVC,EAAkB,GAGtB,GAAI3ib,MAAMjJ,QAAQyrb,GAAW,CAC3B,IAAII,EAAY9xa,EAAe0xa,EAAU,GAEzCC,EAAWG,EAAU,GACrBF,EAAYE,EAAU,QAEtBH,EAAWC,EAAYF,EAGzB,GAAe,aAAX9ma,EAAuB,CAEzB,IAAIuB,EAAQosS,EAAMpsS,MACdmjM,EAAOvhN,EAAIxD,EACXwnb,EAAOziO,EAAOpsN,EACd8ub,EAAO1iO,EAAOpsN,EACd+ub,EAAO9la,EAAMzoB,EAAQiub,GACrBO,EAAO/la,EAAMzoB,EAAQkub,GAEzBC,EAAgB1mb,KAAK,CACnB+mC,GAAIggZ,EACJ//Y,GAAI4/Y,EACJxrZ,GAAI2rZ,EACJ9/Y,GAAI4/Y,IAGNH,EAAgB1mb,KAAK,CACnB+mC,GAAI+/Y,EACJ9/Y,GAAIm9K,EACJ/oL,GAAI2rZ,EACJ9/Y,GAAIk9K,IAGNuiO,EAAgB1mb,KAAK,CACnB+mC,GAAI+/Y,EACJ9/Y,GAAI4/Y,EACJxrZ,GAAI0rZ,EACJ7/Y,GAAI4/Y,SAED,GAAe,eAAXpna,EAAyB,CAElC,IAAIuna,EAAS35H,EAAMrsS,MACfkjM,EAAOvhN,EAAIvD,EAEX6nb,EAAQ/iO,EAAOnsN,EAEfmvb,EAAQhjO,EAAOnsN,EAEfovb,EAAQH,EAAOzub,EAAQiub,GAEvBY,EAAQJ,EAAOzub,EAAQkub,GAG3BC,EAAgB1mb,KAAK,CACnB+mC,GAAIkgZ,EACJjgZ,GAAIogZ,EACJhsZ,GAAI8rZ,EACJjgZ,GAAImgZ,IAGNV,EAAgB1mb,KAAK,CACnB+mC,GAAIm9K,EACJl9K,GAAImgZ,EACJ/rZ,GAAI8oL,EACJj9K,GAAImgZ,IAGNV,EAAgB1mb,KAAK,CACnB+mC,GAAIkgZ,EACJjgZ,GAAImgZ,EACJ/rZ,GAAI8rZ,EACJjgZ,GAAIkgZ,IAIR,OAGE/xb,IAAM0B,cAAc6xC,IAAO3C,EAAS,CAClChxC,UAAW,oBACXgC,IAAK,OAAOkC,OAAOvD,IAClB8B,GAAWivb,EAAgB9vb,KAAI,SAAUywb,EAAa7tb,GACvD,OAGEpE,IAAM0B,cAAc,OAAQkvC,EAAS,GAAIqhZ,EAAa,CACpDrwb,IAAK,QAAQkC,OAAOM,aAM9B,OAAoBpE,IAAM0B,cAAc6xC,IAAO,CAC7C3zC,UAAW,sBACV2qB,GDrELsma,EAAUpqa,YAAc,YAwDxBoqa,EAAUp3U,mBAvBV,SAA4BC,EAAa33G,GACvC,IAAImwb,IAAkBzxb,UAAUC,OAAS,QAAsBhB,IAAjBe,UAAU,KAAmBA,UAAU,GAErF,IAAKi5G,IAAgBA,EAAY72G,UAAYqvb,IAAoBx4U,EAAY9C,MAC3E,OAAO,KAGT,IAAI/zG,EAAW62G,EAAY72G,SACvBsvb,EAAkB3na,YAAc3nB,EAAUgub,EAAUpqa,aAAajlB,KAAI,SAAUK,EAAOuC,GACxF,OAAoBszG,uBAAa71G,EAAO,CACtCE,KAAMA,EACNH,IAAK,aAAakC,OAAOM,QAI7B,IAAK8tb,EACH,OAAOC,EAGT,IAAIC,EAAoBrB,EAAer3U,EAAY9C,MAAO70G,GAC1D,MAAO,CAACqwb,GAAmBtub,OAAO+X,EAAmBs2a,KAIvDtB,EAAUx3U,aAAeA,ECczB23U,EAAS33U,aAAe,CACtB92G,OAAQ,QACRE,YAAa,IACbE,MAAO,EACPqH,OAAQ,EACRqgB,OAAQ,cAEV2ma,EAASvqa,YAAc,W,oBCxJvB,SAASgM,EAAQjuB,GAAmV,OAAtOiuB,EAArD,oBAAX1lB,QAAoD,kBAApBA,OAAOkP,SAAmC,SAAiBzX,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXuI,QAAyBvI,EAAI8S,cAAgBvK,QAAUvI,IAAQuI,OAAOnM,UAAY,gBAAkB4D,GAAiBiuB,EAAQjuB,GAMnX,SAASy2B,EAAyB1W,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAAkE3iB,EAAKrB,EAAnE4N,EAEzF,SAAuCoW,EAAQ2W,GAAY,GAAc,MAAV3W,EAAgB,MAAO,GAAI,IAA2D3iB,EAAKrB,EAA5D4N,EAAS,GAAQgtB,EAAah7B,OAAOsE,KAAK8f,GAAqB,IAAKhkB,EAAI,EAAGA,EAAI46B,EAAWz6B,OAAQH,IAAOqB,EAAMu5B,EAAW56B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,IAAauM,EAAOvM,GAAO2iB,EAAO3iB,IAAQ,OAAOuM,EAFxMitB,CAA8B7W,EAAQ2W,GAAuB,GAAI/6B,OAAOiB,sBAAuB,CAAE,IAAIi6B,EAAmBl7B,OAAOiB,sBAAsBmjB,GAAS,IAAKhkB,EAAI,EAAGA,EAAI86B,EAAiB36B,OAAQH,IAAOqB,EAAMy5B,EAAiB96B,GAAQ26B,EAAS/5B,QAAQS,IAAQ,GAAkBzB,OAAOS,UAAUS,qBAAqBP,KAAKyjB,EAAQ3iB,KAAgBuM,EAAOvM,GAAO2iB,EAAO3iB,IAAU,OAAOuM,EAIne,SAASyiC,IAA2Q,OAA9PA,EAAWzwC,OAAOC,QAAU,SAAU+N,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAS9jB,UAAUF,GAAI,IAAK,IAAIqB,KAAO2iB,EAAcpkB,OAAOS,UAAUC,eAAeC,KAAKyjB,EAAQ3iB,KAAQuM,EAAOvM,GAAO2iB,EAAO3iB,IAAY,OAAOuM,GAAkByiC,EAAS7vC,MAAMC,KAAMP,WAEhT,SAASsjB,EAAQC,EAAQC,GAAkB,IAAIxf,EAAOtE,OAAOsE,KAAKuf,GAAS,GAAI7jB,OAAOiB,sBAAuB,CAAE,IAAI8iB,EAAU/jB,OAAOiB,sBAAsB4iB,GAAaC,IAAgBC,EAAUA,EAAQ/G,QAAO,SAAUgH,GAAO,OAAOhkB,OAAOikB,yBAAyBJ,EAAQG,GAAKE,eAAgB5f,EAAKmG,KAAK7J,MAAM0D,EAAMyf,GAAY,OAAOzf,EAE9U,SAAS6f,EAAcnW,GAAU,IAAK,IAAI5N,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAAK,CAAE,IAAIgkB,EAAyB,MAAhB9jB,UAAUF,GAAaE,UAAUF,GAAK,GAAQA,EAAI,EAAKwjB,EAAQ5jB,OAAOokB,IAAS,GAAMlQ,SAAQ,SAAUzS,GAAO4iB,EAAgBrW,EAAQvM,EAAK2iB,EAAO3iB,OAAsBzB,OAAOskB,0BAA6BtkB,OAAOukB,iBAAiBvW,EAAQhO,OAAOskB,0BAA0BF,IAAmBR,EAAQ5jB,OAAOokB,IAASlQ,SAAQ,SAAUzS,GAAOzB,OAAO8M,eAAekB,EAAQvM,EAAKzB,OAAOikB,yBAAyBG,EAAQ3iB,OAAe,OAAOuM,EAE7gB,SAASqW,EAAgBhgB,EAAK5C,EAAKuB,GAAiK,OAApJvB,KAAO4C,EAAOrE,OAAO8M,eAAezI,EAAK5C,EAAK,CAAEuB,MAAOA,EAAOkhB,YAAY,EAAMnX,cAAc,EAAMyX,UAAU,IAAkBngB,EAAI5C,GAAOuB,EAAgBqB,EAE3M,SAASqX,EAAmBzS,GAAO,OAQnC,SAA4BA,GAAO,GAAIuF,MAAMjJ,QAAQ0D,GAAM,OAAO0S,EAAkB1S,GAR1C2S,CAAmB3S,IAM7D,SAA0B4S,GAAQ,GAAsB,qBAAXjP,QAA0BA,OAAOkP,YAAY9b,OAAO6b,GAAO,OAAOrN,MAAMpI,KAAKyV,GANrDE,CAAiB9S,IAItF,SAAqC+S,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOL,EAAkBK,EAAGC,GAAS,IAAI5b,EAAIL,OAAOS,UAAUiH,SAAS/G,KAAKqb,GAAG7X,MAAM,GAAI,GAAc,WAAN9D,GAAkB2b,EAAE7E,cAAa9W,EAAI2b,EAAE7E,YAAY+E,MAAM,GAAU,QAAN7b,GAAqB,QAANA,EAAa,OAAOmO,MAAMpI,KAAK4V,GAAI,GAAU,cAAN3b,GAAqB,2CAA2C6Y,KAAK7Y,GAAI,OAAOsb,EAAkBK,EAAGC,GAJxTE,CAA4BlT,IAE1H,WAAgC,MAAM,IAAI5C,UAAU,wIAF8E+V,GAUlI,SAAST,EAAkB1S,EAAKvE,IAAkB,MAAPA,GAAeA,EAAMuE,EAAI1I,UAAQmE,EAAMuE,EAAI1I,QAAQ,IAAK,IAAIH,EAAI,EAAGic,EAAO,IAAI7N,MAAM9J,GAAMtE,EAAIsE,EAAKtE,IAAOic,EAAKjc,GAAK6I,EAAI7I,GAAM,OAAOic,EAEhL,SAAS2zF,EAAgB7/D,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI/pC,UAAU,qCAEhH,SAASgqC,EAAkBriC,EAAQnM,GAAS,IAAK,IAAIzB,EAAI,EAAGA,EAAIyB,EAAMtB,OAAQH,IAAK,CAAE,IAAIkwC,EAAazuC,EAAMzB,GAAIkwC,EAAWpsB,WAAaosB,EAAWpsB,aAAc,EAAOosB,EAAWvjC,cAAe,EAAU,UAAWujC,IAAYA,EAAW9rB,UAAW,GAAMxkB,OAAO8M,eAAekB,EAAQsiC,EAAW7uC,IAAK6uC,IAM7S,SAASo8F,GAAgB1wH,EAAGxb,GAA+G,OAA1GksI,GAAkB1sI,OAAOs2B,gBAAkB,SAAyBta,EAAGxb,GAAsB,OAAjBwb,EAAEjW,UAAYvF,EAAUwb,GAAa0wH,GAAgB1wH,EAAGxb,GAErK,SAASmsI,GAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFj9F,QAAQvvC,UAAU+jC,QAAQ7jC,KAAKmsI,QAAQC,UAAU/8F,QAAS,IAAI,iBAAyB,EAAQ,MAAOjvC,GAAK,OAAO,GAN9PmsI,GAA6B,OAAO,WAAkC,IAAsCzyH,EAAlC0yH,EAAQ15F,GAAgBm5F,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY35F,GAAgB5yC,MAAMsW,YAAasD,EAASqyH,QAAQC,UAAUI,EAAO7sI,UAAW8sI,QAAqB3yH,EAAS0yH,EAAMvsI,MAAMC,KAAMP,WAAc,OAAO+sI,GAA2BxsI,KAAM4Z,IAE5Z,SAAS4yH,GAA2B/yH,EAAM3Z,GAAQ,OAAIA,GAA2B,WAAlB2xB,EAAQ3xB,IAAsC,oBAATA,EAEpG,SAAgC2Z,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIk5B,eAAe,6DAAgE,OAAOl5B,EAFb6yC,CAAuB7yC,GAAtC3Z,EAMnI,SAAS8yC,GAAgBz3B,GAAwJ,OAAnJy3B,GAAkBzzC,OAAOs2B,eAAiBt2B,OAAO0zC,eAAiB,SAAyB13B,GAAK,OAAOA,EAAEjW,WAAa/F,OAAO0zC,eAAe13B,IAAcy3B,GAAgBz3B,GAkBjM,IAAIqzY,GAAoB,SAAU9hR,IA9BzC,SAAmB55F,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvtC,UAAU,sDAAyDstC,EAASlzC,UAAYT,OAAOy2B,OAAOmd,GAAcA,EAAWnzC,UAAW,CAAE0W,YAAa,CAAEnU,MAAO2wC,EAAUnvB,UAAU,EAAMzX,cAAc,KAAe6mC,GAAY84F,GAAgB/4F,EAAUC,GA+BjX45F,CAAU6hR,EAAM9hR,GAEhB,IAnCoBn9F,EAAaG,EAAYC,EAmCzC62E,EAASslB,GAAa0iR,GAE1B,SAASA,IACP,IAAIrqS,EAEJhV,EAAgBnvG,KAAMwuZ,GAEtB,IAAK,IAAIzyY,EAAOtc,UAAUC,OAAQsc,EAAO,IAAIrO,MAAMoO,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQxc,UAAUwc,GA0DzB,OAvDAkoG,EAAQqC,EAAO1mH,KAAKC,MAAMymH,EAAQ,CAACxmH,MAAM8C,OAAOkZ,KAC1Cq1a,eAAY,EAClBltU,EAAM36E,MAAQ,CACZ8nZ,qBAAqB,EACrBr7Q,YAAa,GAGf9xD,EAAMotU,mBAAqB,SAAU7xb,EAAQu2K,EAAa6jJ,GASxD,IARA,IAAIh4K,EAAag4K,EAAM38S,QAAO,SAAU2rH,EAAK9pH,GAC3C,OAAO8pH,EAAM9pH,KAEXuC,EAAQ/W,KAAK2F,MAAMzQ,EAASoiJ,GAC5B0vS,EAAe9xb,EAASoiJ,EACxB2vS,EAAax7Q,EAAcv2K,EAC3Bgyb,EAAc,GAETnyb,EAAI,EAAG8oB,EAAM,GAAIA,GAAOyxS,EAAMv6T,KAAMA,EAC3C,GAAI8oB,EAAMyxS,EAAMv6T,GAAKiyb,EAAc,CACjCE,EAAc,GAAG5ub,OAAO+X,EAAmBi/S,EAAMx2T,MAAM,EAAG/D,IAAK,CAACiyb,EAAenpa,IAC/E,MAIJ,IAAIspa,EAAaD,EAAYhyb,OAAS,IAAM,EAAI,CAAC,EAAG+xb,GAAc,CAACA,GACnE,MAAO,GAAG3ub,OAAO+X,EAAmB2zY,EAAKluE,OAAOxmB,EAAOv4S,IAAS1G,EAAmB62a,GAAcC,GAAYnxb,KAAI,SAAUmhJ,GACzH,MAAO,GAAG7+I,OAAO6+I,EAAM,SACtBz0I,KAAK,OAGVi3G,EAAMthH,GAAKF,YAAS,kBAEpBwhH,EAAM47D,QAAU,SAAUt/K,GACxB0jH,EAAMktU,UAAY5wb,GAGpB0jH,EAAMytU,mBAAqB,WACzBztU,EAAM5Z,SAAS,CACb+mV,qBAAqB,IAGnBntU,EAAMnjH,MAAM2sI,gBACdxpB,EAAMnjH,MAAM2sI,kBAIhBxpB,EAAM0tU,qBAAuB,WAC3B1tU,EAAM5Z,SAAS,CACb+mV,qBAAqB,IAGnBntU,EAAMnjH,MAAM4sI,kBACdzpB,EAAMnjH,MAAM4sI,oBAITzpB,EAqUT,OA1aoB50E,EAwGPi/W,EAxGgC7+W,EAuXzC,CAAC,CACH/uC,IAAK,2BACLuB,MAAO,SAAkCk6B,EAAWmoF,GAClD,OAAInoF,EAAUy1Z,cAAgBttU,EAAUutU,gBAC/B,CACLA,gBAAiB11Z,EAAUy1Z,YAC3BE,UAAW31Z,EAAUgjJ,OACrB4yQ,WAAYztU,EAAUwtU,WAItB31Z,EAAUgjJ,SAAW76D,EAAUwtU,UAC1B,CACLA,UAAW31Z,EAAUgjJ,QAIlB,OAER,CACDz+K,IAAK,SACLuB,MAAO,SAAgB23T,EAAOv4S,GAI5B,IAHA,IAAI2wa,EAAYp4H,EAAMp6T,OAAS,IAAM,EAAI,GAAGoD,OAAO+X,EAAmBi/S,GAAQ,CAAC,IAAMA,EACjFlgT,EAAS,GAEJra,EAAI,EAAGA,EAAIgiB,IAAShiB,EAC3Bqa,EAAS,GAAG9W,OAAO+X,EAAmBjB,GAASiB,EAAmBq3a,IAGpE,OAAOt4a,IAER,CACDhZ,IAAK,gBACLuB,MAAO,SAAuBkiK,EAAQrjK,GACpC,IAAImxb,EAEJ,GAAkBnzb,IAAMgzB,eAAeqyI,GACrC8tR,EAAuBnzb,IAAM03G,aAAa2tD,EAAQrjK,QAC7C,GAAI+iB,IAAYsgJ,GACrB8tR,EAAU9tR,EAAOrjK,OACZ,CACL,IAAIpC,EAAY4U,IAAW,oBAAqB6wJ,EAASA,EAAOzlK,UAAY,IAC5Euzb,EAAuBnzb,IAAM0B,cAAcitJ,IAAK/9G,EAAS,GAAI5uC,EAAO,CAClEpC,UAAWA,KAIf,OAAOuzb,MAtasBziZ,EAwGd,CAAC,CAClB9uC,IAAK,oBACLuB,MAEA,WACE,GAAKnC,KAAKgB,MAAMs1K,kBAAhB,CAIA,IAAIL,EAAcj2K,KAAKk2K,iBACvBl2K,KAAKuqG,SAAS,CACZ0rE,YAAaA,OAGhB,CACDr1K,IAAK,iBACLuB,MAAO,WACL,IAAIiwb,EAAWpyb,KAAKqxb,UAEpB,IACE,OAAOe,GAAYA,EAASl8Q,gBAAkBk8Q,EAASl8Q,kBAAoB,EAC3E,MAAOh3J,GACP,OAAO,KAGV,CACDte,IAAK,iBACLuB,MAAO,WACL,GAAInC,KAAKgB,MAAMs1K,oBAAsBt2K,KAAKwpC,MAAM8nZ,oBAC9C,OAAO,KAGT,IAAI5sU,EAAc1kH,KAAKgB,MACnBq+K,EAAS36D,EAAY26D,OACrB23I,EAAQtyM,EAAYsyM,MACpBC,EAAQvyM,EAAYuyM,MACpB5tS,EAASq7F,EAAYr7F,OACrBxnB,EAAW6iH,EAAY7iH,SACvBwwb,EAAgB7oa,YAAc3nB,EAAUmub,EAASvqa,aAErD,IAAK4sa,EACH,OAAO,KAGT,SAASpC,EAAmBqC,EAAWzua,GACrC,MAAO,CACLtX,EAAG+lb,EAAU/lb,EACbC,EAAG8lb,EAAU9lb,EACbrK,MAAOmwb,EAAUnwb,MACjBgub,SAAUvsa,YAAkB0ua,EAAUh7a,QAASuM,IAInD,OAAOwua,EAAc7xb,KAAI,SAAUglB,EAAMjmB,GACvC,OAAoBP,IAAM03G,aAAalxF,EAAM,CAE3C5kB,IAAK,OAAOkC,OAAOvD,GACnBwB,KAAMs+K,EACN23I,MAAOA,EACPC,MAAOA,EACP5tS,OAAQA,EACR4ma,mBAAoBA,SAIzB,CACDrvb,IAAK,aACLuB,MAAO,SAAoBowb,EAAU17H,GAGnC,GAFwB72T,KAAKgB,MAAMs1K,oBAETt2K,KAAKwpC,MAAM8nZ,oBACnC,OAAO,KAGT,IAAI1sU,EAAe5kH,KAAKgB,MACpB8uZ,EAAMlrS,EAAakrS,IACnBzwO,EAASz6D,EAAay6D,OACtBx7J,EAAU+gG,EAAa/gG,QACvBg1S,EAAYznS,YAAYpxB,KAAKgB,OAC7Bwxb,EAAiBpha,YAAY0+X,GAAK,GAClC97R,EAAOqrD,EAAO7+K,KAAI,SAAU8D,EAAO/E,GACrC,IAAI43T,EAAW7zS,EAAcA,EAAcA,EAAc,CACvD1iB,IAAK,OAAOkC,OAAOvD,GACnB+xB,EAAG,GACFunS,GAAY25H,GAAiB,GAAI,CAClCrwb,MAAOmC,EAAMnC,MACb0hB,QAASA,EACTqsB,GAAI5rC,EAAMiI,EACV4jC,GAAI7rC,EAAMkI,EACVpJ,MAAO7D,EACP+X,QAAShT,EAAMgT,UAGjB,OAAOk3Y,EAAKikC,cAAc3iC,EAAK34F,MAE7Bu7H,EAAY,CACdt7H,SAAUm7H,EAAW,iBAAiBzvb,OAAO+zT,EAAY,KAAO,MAElE,OAAoB73T,IAAM0B,cAAc6xC,IAAO3C,EAAS,CACtDhxC,UAAW,qBACXgC,IAAK,QACJ8xb,GAAY1+T,KAEhB,CACDpzH,IAAK,wBACLuB,MAAO,SAA+Bk9K,EAAQkzQ,EAAU17H,EAAY71T,GAElE,IAAIksI,EAAeltI,KAAKgB,MACpB0F,EAAOwmI,EAAaxmI,KACpB2iB,EAAS6jH,EAAa7jH,OACtBk2J,EAAeryC,EAAaqyC,aAE5B/sI,GADM06F,EAAanoB,IACV9qF,EAAyBizG,EAAc,CAAC,OAAQ,SAAU,eAAgB,SAEnFylT,EAAarva,EAAcA,EAAcA,EAAc,GAAI8N,YAAYohB,GAAQ,IAAQ,GAAI,CAC7FhxC,KAAM,OACN5C,UAAW,sBACXw4T,SAAUm7H,EAAW,iBAAiBzvb,OAAO+zT,EAAY,KAAO,KAChEx3I,OAAQA,GACPr+K,GAAQ,GAAI,CACb0F,KAAMA,EACN2iB,OAAQA,EACRk2J,aAAcA,IAGhB,OAAoBvgL,IAAM0B,cAAcy+K,IAAOvvI,EAAS,GAAI+iZ,EAAY,CACtE5yQ,QAAS//K,KAAK+/K,aAGjB,CACDn/K,IAAK,2BACLuB,MAAO,SAAkCowb,EAAU17H,GACjD,IAAInpL,EAAS1tI,KAET+uI,EAAe/uI,KAAKgB,MACpBq+K,EAAStwC,EAAaswC,OACtB8C,EAAkBpzC,EAAaozC,gBAC/B7L,EAAoBvnC,EAAaunC,kBACjCD,EAAiBtnC,EAAasnC,eAC9BD,EAAoBrnC,EAAaqnC,kBACjCD,EAAkBpnC,EAAaonC,gBAC/B27Q,EAAc/iT,EAAa+iT,YAC3Bc,EAAmB7jT,EAAa6jT,iBAChCjxb,EAAQotI,EAAaptI,MACrBD,EAASqtI,EAAartI,OACtBmjH,EAAc7kH,KAAKwpC,MACnByoZ,EAAaptU,EAAYotU,WACzBh8Q,EAAcpxD,EAAYoxD,YAC9B,OAAoBj3K,IAAM0B,cAAc+rI,IAAS,CAC/C9vH,MAAO05J,EACPz1F,SAAUw1F,EACVvhJ,SAAUyhJ,EACV5tC,OAAQytC,EACR5wK,KAAM,CACJlG,EAAG,GAELyzB,GAAI,CACFzzB,EAAG,GAELuB,IAAK,QAAQkC,OAAOgvb,GACpBnkT,eAAgB3tI,KAAK4xb,mBACrBhkT,iBAAkB5tI,KAAK6xb,uBACtB,SAAUvya,GACX,IAAIjgB,EAAIigB,EAAKjgB,EAEb,GAAI4yb,EAAY,CACd,IAAIY,EAAuBZ,EAAWvyb,OAAS2/K,EAAO3/K,OAClDozb,EAAWzzQ,EAAO7+K,KAAI,SAAU8D,EAAOlB,GACzC,IAAI2vb,EAAiBvob,KAAK2F,MAAM/M,EAAQyvb,GAExC,GAAIZ,EAAWc,GAAiB,CAC9B,IAAIzqa,EAAO2pa,EAAWc,GAClBC,EAAgBjvb,YAAkBukB,EAAK/b,EAAGjI,EAAMiI,GAChD0mb,EAAgBlvb,YAAkBukB,EAAK9b,EAAGlI,EAAMkI,GACpD,OAAO8W,EAAcA,EAAc,GAAIhf,GAAQ,GAAI,CACjDiI,EAAGymb,EAAc3zb,GACjBmN,EAAGymb,EAAc5zb,KAKrB,GAAIuzb,EAAkB,CACpB,IAAIM,EAAiBnvb,YAA0B,EAARpC,EAAW2C,EAAMiI,GAEpD4mb,EAAiBpvb,YAAkBrC,EAAS,EAAG4C,EAAMkI,GAEzD,OAAO8W,EAAcA,EAAc,GAAIhf,GAAQ,GAAI,CACjDiI,EAAG2mb,EAAe7zb,GAClBmN,EAAG2mb,EAAe9zb,KAItB,OAAOikB,EAAcA,EAAc,GAAIhf,GAAQ,GAAI,CACjDiI,EAAGjI,EAAMiI,EACTC,EAAGlI,EAAMkI,OAGb,OAAOkhI,EAAO0lT,sBAAsBN,EAAUP,EAAU17H,GAG1D,IAEIw8H,EADAC,EADevvb,YAAkB,EAAGkyK,EACxB94I,CAAa99B,GAG7B,GAAI8iL,EAAiB,CACnB,IAAI23I,EAAQ,GAAGh3T,OAAOq/K,GAAiB/kK,MAAM,aAAa5c,KAAI,SAAUqd,GACtE,OAAOxa,WAAWwa,MAEpBw1a,EAAyB3lT,EAAO6jT,mBAAmB+B,EAAWr9Q,EAAa6jJ,QAE3Eu5H,EAAyB,GAAGvwb,OAAOwwb,EAAW,OAAOxwb,OAAOmzK,EAAcq9Q,EAAW,MAGvF,OAAO5lT,EAAO0lT,sBAAsB/zQ,EAAQkzQ,EAAU17H,EAAY,CAChE10I,gBAAiBkxQ,SAItB,CACDzyb,IAAK,cACLuB,MAAO,SAAqBowb,EAAU17H,GACpC,IAAIjyJ,EAAe5kK,KAAKgB,MACpBq+K,EAASza,EAAaya,OACtB/I,EAAoB1R,EAAa0R,kBACjCsN,EAAe5jL,KAAKwpC,MACpByoZ,EAAaruQ,EAAaquQ,WAC1Bh8Q,EAAc2N,EAAa3N,YAE/B,OAAIK,GAAqB+I,GAAUA,EAAO3/K,UAAYuyb,GAAch8Q,EAAc,IAAMplJ,IAASoha,EAAY5yQ,IACpGr/K,KAAKuzb,yBAAyBhB,EAAU17H,GAG1C72T,KAAKozb,sBAAsB/zQ,EAAQkzQ,EAAU17H,KAErD,CACDj2T,IAAK,SACLuB,MAAO,WACL,IAAI6iK,EAAehlK,KAAKgB,MACpBwlB,EAAOw+I,EAAax+I,KACpBspY,EAAM9qP,EAAa8qP,IACnBzwO,EAASra,EAAaqa,OACtBzgL,EAAYomK,EAAapmK,UACzBo4T,EAAQhyJ,EAAagyJ,MACrBC,EAAQjyJ,EAAaiyJ,MACrBllN,EAAMizD,EAAajzD,IACnBjpF,EAAOk8I,EAAal8I,KACpBnnB,EAAQqjK,EAAarjK,MACrBD,EAASsjK,EAAatjK,OACtB40K,EAAoBtR,EAAasR,kBACjCzzK,EAAKmiK,EAAaniK,GAEtB,GAAI2jB,IAAS64J,IAAWA,EAAO3/K,OAC7B,OAAO,KAGT,IAAI4xb,EAAsBtxb,KAAKwpC,MAAM8nZ,oBACjCkC,EAAmC,IAAlBn0Q,EAAO3/K,OACxB+yC,EAAaj/B,IAAW,gBAAiB5U,GACzC2zb,EAAWv7H,GAASA,EAAM9mS,mBAAqB+mS,GAASA,EAAM/mS,kBAC9D2mS,EAAa/yS,IAAOjhB,GAAM7C,KAAK6C,GAAKA,EACxC,OAAoB7D,IAAM0B,cAAc6xC,IAAO,CAC7C3zC,UAAW6zC,GACV8/Y,EAAwBvzb,IAAM0B,cAAc,OAAQ,KAAmB1B,IAAM0B,cAAc,WAAY,CACxGmC,GAAI,YAAYC,OAAO+zT,IACT73T,IAAM0B,cAAc,OAAQ,CAC1C6L,EAAGuc,EACHtc,EAAGulG,EACHpwG,MAAOA,EACPD,OAAQA,MACH,MAAO8xb,GAAkBxzb,KAAKyzb,YAAYlB,EAAU17H,GAAa72T,KAAK0zb,kBAAmBF,GAAkB1jC,IAAQ9vZ,KAAK2zb,WAAWpB,EAAU17H,KAAevgJ,GAAqBg7Q,IAAwBzB,EAAUp3U,mBAAmBz4G,KAAKgB,MAAOq+K,SArXjL7vI,EAAkBD,EAAY3vC,UAAW8vC,GAAiBC,GAAaH,EAAkBD,EAAaI,GA0a3K6+W,EA1YsB,CA2Y7BxnR,iBACFwnR,GAAK/oY,YAAc,OACnB+oY,GAAKn2S,aAAe,CAClBk/M,QAAS,EACTC,QAAS,EACTj4I,cAAc,EACd8rO,WAAW,EACXyE,KAAK,EACLzpY,WAAY,OACZ9kB,OAAQ,UACRE,YAAa,EACbD,KAAM,OACN69K,OAAQ,GACR/I,mBAAoBhkE,IAAOC,MAC3BqgV,kBAAkB,EAClBv8Q,eAAgB,EAChBD,kBAAmB,KACnBD,gBAAiB,OACjB3vJ,MAAM,GAGRgoY,GAAKlJ,gBAAkB,SAAU/lY,GAC/B,IAAIve,EAAQue,EAAMve,MACdg2T,EAAQz3S,EAAMy3S,MACdC,EAAQ13S,EAAM03S,MACd28H,EAAar0a,EAAMq0a,WACnBC,EAAat0a,EAAMs0a,WACnBhwa,EAAUtE,EAAMsE,QAChBiE,EAAWvI,EAAMuI,SACjBi6X,EAAgBxiY,EAAMwiY,cACtB/4Y,EAASuW,EAAMvW,OACfqgB,EAASroB,EAAMqoB,OAgCnB,OAAO/F,EAAc,CACnB+7J,OAhCW0iO,EAAcvhZ,KAAI,SAAU8D,EAAOlB,GAC9C,IAAIjB,EAAQyhB,YAAkBtf,EAAOuf,GAErC,MAAe,eAAXwF,EACK,CACL9c,EAAG8iB,YAAwB,CACzBxK,KAAMmyS,EACNryS,MAAOiva,EACP9ra,SAAUA,EACVxjB,MAAOA,EACPlB,MAAOA,IAEToJ,EAAGsX,IAAO3hB,GAAS,KAAO80T,EAAMrsS,MAAMzoB,GACtCA,MAAOA,EACPmV,QAAShT,GAIN,CACLiI,EAAGuX,IAAO3hB,GAAS,KAAO60T,EAAMpsS,MAAMzoB,GACtCqK,EAAG6iB,YAAwB,CACzBxK,KAAMoyS,EACNtyS,MAAOkva,EACP/ra,SAAUA,EACVxjB,MAAOA,EACPlB,MAAOA,IAETjB,MAAOA,EACPmV,QAAShT,MAKX+kB,OAAQA,GACPrgB,K,0ECtfU8qb,MAlBK,SAACl9a,GAAuE,IAA7D,KAAEypG,EAAF,WAAQ6C,EAAR,UAAoBpzB,GAAyC,uDAA3B,GAAIsvE,EAAuB,uDAAP,GACjF,MAAMjyJ,EAASm7M,iBAAO,MAChB9kG,EAAW8kG,iBAAO,MAClByrO,EAAY7qO,uBAAazoN,IACvB0M,EAAOyyD,SAAW4jD,EAAS5jD,UAC3B4jD,EAAS5jD,QAAQ6jD,UAAUt2G,EAAOyyD,SAClC4jD,EAAS5jD,QAAQ+jD,aACjBH,EAAS5jD,QAAU,MAEnBn/D,IACA+iH,EAAS5jD,QAAU,IAAIyjD,qBAAqBzsG,EAAU,CAAEypG,OAAM6C,aAAYpzB,cAC1E0zB,EAAS5jD,QAAQojD,QAAQviH,GACzB0M,EAAOyyD,QAAUn/D,KAGtB,CAAC0M,EAAQkzG,EAAM6C,EAAYprG,KAAKC,UAAU+3E,MAAesvE,IAC5D,OAAO20R,I,mEC2QPC,E,mEArREvob,EAAS,cAwBT6pN,EAA6E,GAC7E2+N,EAA6D,GAGnE,SAASC,EAAWxtb,GAClB,IAAIutb,EAAavtb,GAMjB,OAFAutb,EAAavtb,IAAQ,EAEbA,GACN,IAAK,WA0DT,WACE,KAAM,YAAa+E,GACjB,OAGF,CAAC,QAAS,OAAQ,OAAQ,QAAS,MAAO,UAAU4H,SAAQ,SAAUmqB,GAC9DA,KAAS/xB,EAAOouB,SAItB,YAAKpuB,EAAOouB,QAAS2D,GAAO,SAAU22Z,GACpC,OAAO,W,IAAU,sDACfC,EAAgB,UAAW,CAAEp4a,KAAI,EAAEwhB,MAAK,IAGpC22Z,GACFA,EAAsBp0b,MAAM0L,EAAOouB,QAAS7d,UAzEhDq4a,GACA,MACF,IAAK,OA+aT,WACE,KAAM,aAAc5ob,GAClB,OAMF,IAAM6ob,EAAoBF,EAAgBtiW,KAAK,KAAM,OAC/CyiW,EAAwBC,EAAoBF,GAAmB,GACrE7ob,EAAO61D,SAAS6yB,iBAAiB,QAASogW,GAAuB,GACjE9ob,EAAO61D,SAAS6yB,iBAAiB,WAAYogW,GAAuB,GAOpE,CAAC,cAAe,QAAQlhb,SAAQ,SAAClG,GAE/B,IAAMygD,EAASniD,EAAe0B,IAAY1B,EAAe0B,GAAQvN,UAE5DguD,GAAUA,EAAM/tD,gBAAmB+tD,EAAM/tD,eAAe,sBAI7D,YAAK+tD,EAAO,oBAAoB,SAAU6mY,GACxC,OAAO,SAEL/tb,EACAovF,EACAzjF,GAEA,GAAa,UAAT3L,GAA4B,YAARA,EACtB,IACE,IAAMi1B,EAAK37B,KACL,EAAY27B,EAAG+4Z,oCAAsC/4Z,EAAG+4Z,qCAAuC,GAC/FC,EAAkB,EAASjub,GAAQ,EAASA,IAAS,CAAEkub,SAAU,GAEvE,IAAKD,EAAe/3Z,QAAS,CAC3B,IAAMA,EAAU43Z,EAAoBF,GACpCK,EAAe/3Z,QAAUA,EACzB63Z,EAAyB30b,KAAKE,KAAM0G,EAAMk2B,EAASvqB,GAGrDsib,EAAeC,UAAY,EAC3B,MAAO10b,IAMX,OAAOu0b,EAAyB30b,KAAKE,KAAM0G,EAAMovF,EAAUzjF,OAI/D,YACEu7C,EACA,uBACA,SAAUinY,GACR,OAAO,SAELnub,EACAovF,EACAzjF,GAEA,GAAa,UAAT3L,GAA4B,YAARA,EACtB,IACE,IAAMi1B,EAAK37B,KACL,EAAW27B,EAAG+4Z,qCAAuC,GACrDC,EAAiB,EAASjub,GAE5Biub,IACFA,EAAeC,UAAY,EAEvBD,EAAeC,UAAY,IAC7BC,EAA4B/0b,KAAKE,KAAM0G,EAAMiub,EAAe/3Z,QAASvqB,GACrEsib,EAAe/3Z,aAAUl+B,SAClB,EAASgI,IAImB,IAAjCvH,OAAOsE,KAAK,GAAU/D,eACjBi8B,EAAG+4Z,qCAGd,MAAOx0b,IAMX,OAAO20b,EAA4B/0b,KAAKE,KAAM0G,EAAMovF,EAAUzjF,WA1gBlEyib,GACA,MACF,IAAK,OAgKT,WACE,KAAM,mBAAoBrpb,GACxB,OAGF,IAAMspb,EAAWr6V,eAAe96F,UAEhC,YAAKm1b,EAAU,QAAQ,SAAUC,GAC/B,OAAO,W,IAA6C,sDAElD,IAAMj8R,EAAM/4J,KACNipC,EAAMjtB,EAAK,GACXi5a,EAA0Dl8R,EAAI4oR,eAAiB,CAEnFrtZ,OAAQ,YAAStY,EAAK,IAAMA,EAAK,GAAG6tD,cAAgB7tD,EAAK,GACzDitB,IAAKjtB,EAAK,IAKR,YAASitB,IAA2B,SAAnBgsZ,EAAQ3ga,QAAqB2U,EAAIh8B,MAAM,gBAC1D8rJ,EAAI2oR,wBAAyB,GAG/B,IAAMwT,EAA4B,WAChC,GAAuB,IAAnBn8R,EAAI94D,WAAkB,CACxB,IAGEg1V,EAAQpT,YAAc9oR,EAAI74D,OAC1B,MAAOhgG,IAITk0b,EAAgB,MAAO,CACrBp4a,KAAI,EACJynH,aAAcl/G,KAAK+zB,MACnB6qF,eAAgB5+G,KAAK+zB,MACrBygH,IAAG,MAgBT,MAXI,uBAAwBA,GAAyC,oBAA3BA,EAAIx4D,mBAC5C,YAAKw4D,EAAK,sBAAsB,SAAU/4F,GACxC,OAAO,W,IAAU,sDAEf,OADAk1X,IACOl1X,EAASjgE,MAAMg5J,EAAKo8R,OAI/Bp8R,EAAI5kE,iBAAiB,mBAAoB+gW,GAGpCF,EAAaj1b,MAAMg5J,EAAK/8I,OAInC,YAAK+4a,EAAU,QAAQ,SAAUK,GAC/B,OAAO,W,IAA6C,sDAWlD,OAVIp1b,KAAK2hb,qBAA8Bjjb,IAAZsd,EAAK,KAC9Bhc,KAAK2hb,eAAe5gV,KAAO/kF,EAAK,IAGlCo4a,EAAgB,MAAO,CACrBp4a,KAAI,EACJmnH,eAAgB5+G,KAAK+zB,MACrBygH,IAAK/4J,OAGAo1b,EAAar1b,MAAMC,KAAMgc,OArOhCq5a,GACA,MACF,IAAK,SAyET,WACE,IAAK,cACH,OAGF,YAAK5pb,EAAQ,SAAS,SAAU6pb,GAC9B,OAAO,W,IAAU,sDACf,IAAMhU,EAAc,CAClBtla,KAAI,EACJula,UAAW,CACTjtZ,OAAQiha,EAAev5a,GACvBitB,IAAKusZ,EAAYx5a,IAEnBmnH,eAAgB5+G,KAAK+zB,OAQvB,OALA87Y,EAAgB,QAAO,eAClB9S,IAIEgU,EAAcv1b,MAAM0L,EAAQuQ,GAAMozB,MACvC,SAACixD,GAMC,OALA+zV,EAAgB,QAAO,2BAClB9S,GAAW,CACd79S,aAAcl/G,KAAK+zB,MACnB+nD,SAAQ,KAEHA,KAET,SAACxpF,GASC,MARAu9a,EAAgB,QAAO,2BAClB9S,GAAW,CACd79S,aAAcl/G,KAAK+zB,MACnBzhC,MAAK,KAKDA,SA/GV4+a,GACA,MACF,IAAK,WAwOT,WACE,IAAK,cACH,OAGF,IAAMC,EAAgBjqb,EAAOkqb,WAuB7B,SAASC,EAA2BC,GAClC,OAAO,W,IAAyB,sDAC9B,IAAM5sZ,EAAMjtB,EAAKtc,OAAS,EAAIsc,EAAK,QAAKtd,EACxC,GAAIuqC,EAAK,CAEP,IAAM1jC,EAAOyub,EACPlha,EAAKtqB,OAAOygC,GAElB+qZ,EAAWlha,EACXsha,EAAgB,UAAW,CACzB7ub,KAAI,EACJutB,GAAE,IAGN,OAAO+ia,EAAwB91b,MAAMC,KAAMgc,IApC/CvQ,EAAOkqb,WAAa,W,IAAqC,sDACvD,IAAM7ia,EAAKrnB,EAAOyoB,SAASC,KAErB5uB,EAAOyub,EAMb,GALAA,EAAWlha,EACXsha,EAAgB,UAAW,CACzB7ub,KAAI,EACJutB,GAAE,IAEA4ia,EAIF,IACE,OAAOA,EAAc31b,MAAMC,KAAMgc,GACjC,MAAO0kD,MAyBb,YAAKj1D,EAAOgnB,QAAS,YAAamja,GAClC,YAAKnqb,EAAOgnB,QAAS,eAAgBmja,GAtRjCE,GACA,MACF,IAAK,QAygBPC,EAAqBtqb,EAAOuO,QAE5BvO,EAAOuO,QAAU,SAAUuwC,EAAUthB,EAAU04G,EAAWgmC,EAAa9wK,GASrE,OARAu9a,EAAgB,QAAS,CACvBzsQ,OAAM,EACN9wK,MAAK,EACL8qI,KAAI,EACJp3F,IAAG,EACHthB,IAAG,MAGD8sZ,GAEKA,EAAmBh2b,MAAMC,KAAMP,YAphBtC,MACF,IAAK,qBA6hBPu2b,EAAkCvqb,EAAOwqb,qBAEzCxqb,EAAOwqb,qBAAuB,SAAU/1b,GAGtC,OAFAk0b,EAAgB,qBAAsBl0b,IAElC81b,GAEKA,EAAgCj2b,MAAMC,KAAMP,YAliBnD,MACF,QACE,IAAOq6B,KAAK,gCAAiCpzB,IAS7C,SAAUwvb,EAA0Bxvb,EAA6BkQ,GACrE0+M,EAAS5uN,GAAQ4uN,EAAS5uN,IAAS,GAClC4uN,EAAS5uN,GAAsCkD,KAAKgN,GACrDs9a,EAAWxtb,GAIb,SAAS0tb,EAAgB1tb,EAA6B3F,G,QACpD,GAAK2F,GAAS4uN,EAAS5uN,G,IAIvB,IAAsB,kBAAA4uN,EAAS5uN,IAAS,IAAE,8BAAE,CAAvC,IAAMk2B,EAAO,QAChB,IACEA,EAAQ77B,GACR,MAAOb,GACH,eACF,IAAO2W,MACL,0DAA0DnQ,EAAI,WAAW,YAAgBk2B,GAAQ,WACjG18B,K,kGA6FV,SAASq1b,EAAeY,GACtB,YADsB,IAAAA,MAAA,IAClB,YAAa1qb,GAAU,YAAa0qb,EAAU,GAAIl1V,UAAYk1V,EAAU,GAAG7ha,OACtE9rB,OAAO2tb,EAAU,GAAG7ha,QAAQu1C,cAEjCssX,EAAU,IAAMA,EAAU,GAAG7ha,OACxB9rB,OAAO2tb,EAAU,GAAG7ha,QAAQu1C,cAE9B,MAIT,SAAS2rX,EAAYW,GACnB,YADmB,IAAAA,MAAA,IACS,kBAAjBA,EAAU,GACZA,EAAU,GAEf,YAAa1qb,GAAU,YAAa0qb,EAAU,GAAIl1V,SAC7Ck1V,EAAU,GAAGltZ,IAEfzgC,OAAO2tb,EAAU,IAqI1B,IACIC,EACAC,EAwEJ,SAAS7B,EAAoB53Z,EAAmB05Z,GAC9C,YAD8C,IAAAA,OAAA,GACvC,SAAC5ia,GAIN,GAAKA,GAAS2ia,IAAsB3ia,IAtCxC,SAA4BA,GAE1B,GAAmB,aAAfA,EAAMhtB,KACR,OAAO,EAGT,IACE,IAAMyG,EAASumB,EAAMvmB,OAErB,IAAKA,IAAWA,EAAO2/L,QACrB,OAAO,EAKT,GAAuB,UAAnB3/L,EAAO2/L,SAA0C,aAAnB3/L,EAAO2/L,SAA0B3/L,EAAOopb,kBACxE,OAAO,EAET,MAAOr2b,IAKT,OAAO,EAoBDs2b,CAAmB9ia,GAAvB,CAIA,IAAMrY,EAAsB,aAAfqY,EAAMhtB,KAAsB,QAAUgtB,EAAMhtB,WAGjChI,IAApB03b,GAlFR,SAA4Ch+O,EAA6Bx4I,GAEvE,IAAKw4I,EACH,OAAO,EAIT,GAAIA,EAAS1xM,OAASk5D,EAAQl5D,KAC5B,OAAO,EAGT,IAGE,GAAI0xM,EAASjrM,SAAWyyD,EAAQzyD,OAC9B,OAAO,EAET,MAAOjN,IAQT,OAAO,EAmEIu2b,CAAmCJ,EAAmB3ia,MAT7DkJ,EAAQ,CACNlJ,MAAOA,EACPrY,KAAI,EACJ5P,OAAQ6qb,IAEVD,EAAoB3ia,GActBsT,aAAaovZ,GACbA,EAAkB3qb,EAAOs7B,YAAW,WAClCqvZ,OAAkB13b,IAjHC,OA+OzB,IAAIq3b,EAA0C,KAuB9C,IAAIC,EAA6D,M,6BC7lBjE,wEAAIU,EAAMlsb,KAAKm4B,KAAK,IAChBg0Z,EAAKnsb,KAAKm4B,KAAK,IACfi0Z,EAAKpsb,KAAKm4B,KAAK,GAkCZ,SAASkgC,EAAcz7D,EAAOu7D,EAAMphD,GACzC,IAAI3D,GAAQ+kD,EAAOv7D,GAASoD,KAAKwC,IAAI,EAAGuU,GACpCu8K,EAAQtzL,KAAK2F,MAAM3F,KAAK4T,IAAIR,GAAQpT,KAAK+zB,MACzC1nB,EAAQ+G,EAAOpT,KAAK6E,IAAI,GAAIyuL,GAChC,OAAOA,GAAS,GACTjnL,GAAS6/a,EAAM,GAAK7/a,GAAS8/a,EAAK,EAAI9/a,GAAS+/a,EAAK,EAAI,GAAKpsb,KAAK6E,IAAI,GAAIyuL,IAC1EtzL,KAAK6E,IAAI,IAAKyuL,IAAUjnL,GAAS6/a,EAAM,GAAK7/a,GAAS8/a,EAAK,EAAI9/a,GAAS+/a,EAAK,EAAI,GAGlF,SAASzwP,EAAS/+L,EAAOu7D,EAAMphD,GACpC,IAAIs1a,EAAQrsb,KAAK2T,IAAIwkD,EAAOv7D,GAASoD,KAAKwC,IAAI,EAAGuU,GAC7Cu1a,EAAQtsb,KAAK6E,IAAI,GAAI7E,KAAK2F,MAAM3F,KAAK4T,IAAIy4a,GAASrsb,KAAK+zB,OACvD1nB,EAAQggb,EAAQC,EAIpB,OAHIjgb,GAAS6/a,EAAKI,GAAS,GAClBjgb,GAAS8/a,EAAIG,GAAS,EACtBjgb,GAAS+/a,IAAIE,GAAS,GACxBn0X,EAAOv7D,GAAS0vb,EAAQA,EAhDlB,aAAS1vb,EAAOu7D,EAAMphD,GACnC,IAAIvE,EAEAxd,EACAmlB,EACA/G,EAHAre,GAAK,EAMT,GAD8BgiB,GAASA,GAAzBna,GAASA,MAAvBu7D,GAAQA,IACcphD,EAAQ,EAAG,MAAO,CAACna,GAEzC,IADI4V,EAAU2lD,EAAOv7D,KAAO5H,EAAI4H,EAAOA,EAAQu7D,EAAMA,EAAOnjE,GACT,KAA9Coe,EAAOilD,EAAcz7D,EAAOu7D,EAAMphD,MAAkB9T,SAASmQ,GAAO,MAAO,GAEhF,GAAIA,EAAO,EAAG,CACZ,IAAI4tB,EAAKhhC,KAAKg1B,MAAMp4B,EAAQwW,GAAO6tB,EAAKjhC,KAAKg1B,MAAMmjC,EAAO/kD,GAI1D,IAHI4tB,EAAK5tB,EAAOxW,KAASokC,EACrBC,EAAK7tB,EAAO+kD,KAAQl3B,EACxB9mB,EAAQ,IAAIhX,MAAMnO,EAAIisC,EAAKD,EAAK,KACvBjsC,EAAIC,GAAGmlB,EAAMplB,IAAMisC,EAAKjsC,GAAKqe,MACjC,CACLA,GAAQA,EACR,IAAI4tB,EAAKhhC,KAAKg1B,MAAMp4B,EAAQwW,GAAO6tB,EAAKjhC,KAAKg1B,MAAMmjC,EAAO/kD,GAI1D,IAHI4tB,EAAK5tB,EAAOxW,KAASokC,EACrBC,EAAK7tB,EAAO+kD,KAAQl3B,EACxB9mB,EAAQ,IAAIhX,MAAMnO,EAAIisC,EAAKD,EAAK,KACvBjsC,EAAIC,GAAGmlB,EAAMplB,IAAMisC,EAAKjsC,GAAKqe,EAKxC,OAFIZ,GAAS2H,EAAM3H,UAEZ2H,I,uBCzBR,WACD,aAGA,GAAsB,kBAAXvM,OAMX,GAAI,yBAA0BA,QAC1B,8BAA+BA,QAC/B,sBAAuBA,OAAO2+a,0BAA0Bn3b,UAIpD,mBAAoBwY,OAAO2+a,0BAA0Bn3b,WACzDT,OAAO8M,eAAemM,OAAO2+a,0BAA0Bn3b,UACrD,iBAAkB,CAClB25B,IAAK,WACH,OAAOv5B,KAAK+jH,kBAAoB,SAVxC,CAkCA,IAAIziD,EAAY,SAAS01X,GAGvB,IAFA,IAAI13G,EAOHlnU,OAAOkpD,SANJwlI,EAAQmwP,EAAgB33G,GACrBx4I,GAELA,EAAQmwP,EADR33G,EAAMx4I,EAAM1zF,eAGd,OAAOksO,EAPO,GAgBZ71K,EAAW,GAOXytR,EAAqB,KAMrBC,EAAkB,KAwFtB9zU,EAAqBzjH,UAAUw3b,iBAAmB,IAQlD/zU,EAAqBzjH,UAAUy3b,cAAgB,KAM/Ch0U,EAAqBzjH,UAAU03b,uBAAwB,EAYvDj0U,EAAqBk0U,yBAA2B,WAiB9C,OAhBKL,IAKHA,EAAqB,SAASM,EAAoBC,GAI9CN,EAHGK,GAAuBC,EAGRC,EAAsBF,EAAoBC,GAgrB3D,CACL1lV,IAAK,EACLmP,OAAQ,EACRp4F,KAAM,EACNC,MAAO,EACPpnB,MAAO,EACPD,OAAQ,GAprBN+nK,EAASp2J,SAAQ,SAASmwG,GACxBA,EAASm0U,8BAIRT,GAOT7zU,EAAqBu0U,yBAA2B,WAC9CV,EAAqB,KACrBC,EAAkB,MASpB9zU,EAAqBzjH,UAAUojH,QAAU,SAAS71G,GAKhD,IAJ8BnN,KAAK63b,oBAAoB1/Y,MAAK,SAAS3yB,GACnE,OAAOA,EAAKqlB,SAAW19B,KAGzB,CAIA,IAAMA,GAA6B,GAAnBA,EAAOwjV,SACrB,MAAM,IAAItrV,MAAM,6BAGlBrF,KAAK83b,oBACL93b,KAAK63b,oBAAoBjub,KAAK,CAACihC,QAAS19B,EAAQ7I,MAAO,OACvDtE,KAAK+3b,sBAAsB5qb,EAAOimG,eAClCpzG,KAAK23b,2BAQPt0U,EAAqBzjH,UAAU6jH,UAAY,SAASt2G,GAClDnN,KAAK63b,oBACD73b,KAAK63b,oBAAoB17a,QAAO,SAASqJ,GACvC,OAAOA,EAAKqlB,SAAW19B,KAE7BnN,KAAKg4b,wBAAwB7qb,EAAOimG,eACG,GAAnCpzG,KAAK63b,oBAAoBn4b,QAC3BM,KAAKi4b,uBAQT50U,EAAqBzjH,UAAU+jH,WAAa,WAC1C3jH,KAAK63b,oBAAsB,GAC3B73b,KAAKk4b,6BACLl4b,KAAKi4b,uBAUP50U,EAAqBzjH,UAAU0gb,YAAc,WAC3C,IAAI6X,EAAUn4b,KAAKo4b,eAAe90b,QAElC,OADAtD,KAAKo4b,eAAiB,GACfD,GAaT90U,EAAqBzjH,UAAUy4b,gBAAkB,SAASC,GACxD,IAAIxoW,EAAYwoW,GAAiB,CAAC,GAGlC,OAFK3qb,MAAMjJ,QAAQorF,KAAYA,EAAY,CAACA,IAErCA,EAAU9tB,OAAO7lD,QAAO,SAAS9c,EAAGE,EAAG+M,GAC5C,GAAgB,iBAALjN,GAAiB4I,MAAM5I,IAAMA,EAAI,GAAKA,EAAI,EACnD,MAAM,IAAIgG,MAAM,0DAElB,OAAOhG,IAAMiN,EAAE/M,EAAI,OAgBvB8jH,EAAqBzjH,UAAU24b,iBAAmB,SAASC,GACzD,IACIC,GADeD,GAAkB,OACVp7a,MAAM,OAAO5c,KAAI,SAASqoB,GACnD,IAAIomC,EAAQ,wBAAwB9+B,KAAKtH,GACzC,IAAKomC,EACH,MAAM,IAAI5pD,MAAM,qDAElB,MAAO,CAAClD,MAAOkB,WAAW4rD,EAAM,IAAKh+B,KAAMg+B,EAAM,OAQnD,OAJAwpY,EAAQ,GAAKA,EAAQ,IAAMA,EAAQ,GACnCA,EAAQ,GAAKA,EAAQ,IAAMA,EAAQ,GACnCA,EAAQ,GAAKA,EAAQ,IAAMA,EAAQ,GAE5BA,GAUTp1U,EAAqBzjH,UAAUm4b,sBAAwB,SAASz4G,GAC9D,IAAIlyN,EAAMkyN,EAAIo5G,YACd,GAAKtrU,IAI0C,GAA3CptH,KAAK24b,qBAAqBx4b,QAAQm/U,GAAtC,CAMA,IAAI1oU,EAAW5W,KAAK23b,uBAChBiB,EAAqB,KACrBC,EAAc,KAId74b,KAAKq3b,cACPuB,EAAqBxrU,EAAIi1G,YAAYzrN,EAAU5W,KAAKq3b,gBAEpDyB,EAAS1rU,EAAK,SAAUx2G,GAAU,GAClCkib,EAASx5G,EAAK,SAAU1oU,GAAU,GAC9B5W,KAAKs3b,uBAAyB,qBAAsBlqU,IACtDyrU,EAAc,IAAIzrU,EAAI2rU,iBAAiBnib,IAC3BosG,QAAQs8N,EAAK,CACvBjwI,YAAY,EACZ2pP,WAAW,EACXC,eAAe,EACfC,SAAS,KAKfl5b,KAAK24b,qBAAqB/ub,KAAK01U,GAC/Bt/U,KAAKm5b,wBAAwBvvb,MAAK,WAGhC,IAAIwjH,EAAMkyN,EAAIo5G,YAEVtrU,IACEwrU,GACFxrU,EAAI+2G,cAAcy0N,GAEpBQ,EAAYhsU,EAAK,SAAUx2G,GAAU,IAGvCwib,EAAY95G,EAAK,SAAU1oU,GAAU,GACjCiib,GACFA,EAAYl1U,gBAKhB,IAAI01U,EACDr5b,KAAKqgH,OAASrgH,KAAKqgH,KAAKjN,eAAiBpzG,KAAKqgH,OAAU/+C,EAC3D,GAAIg+Q,GAAO+5G,EAAS,CAClB,IAAIvyP,EAAQmwP,EAAgB33G,GACxBx4I,GACF9mM,KAAK+3b,sBAAsBjxP,EAAM1zF,kBAWvCiQ,EAAqBzjH,UAAUo4b,wBAA0B,SAAS14G,GAChE,IAAIl8U,EAAQpD,KAAK24b,qBAAqBx4b,QAAQm/U,GAC9C,IAAc,GAAVl8U,EAAJ,CAIA,IAAIi2b,EACDr5b,KAAKqgH,OAASrgH,KAAKqgH,KAAKjN,eAAiBpzG,KAAKqgH,OAAU/+C,EAGvDg4X,EACAt5b,KAAK63b,oBAAoB1/Y,MAAK,SAAS3yB,GACrC,IAAI+za,EAAU/za,EAAKqlB,QAAQuoE,cAE3B,GAAImmV,GAAWj6G,EACb,OAAO,EAGT,KAAOi6G,GAAWA,GAAWF,GAAS,CACpC,IAAIvyP,EAAQmwP,EAAgBsC,GAE5B,IADAA,EAAUzyP,GAASA,EAAM1zF,gBACVksO,EACb,OAAO,EAGX,OAAO,KAEb,IAAIg6G,EAAJ,CAKA,IAAIrnF,EAAcjyW,KAAKm5b,wBAAwB/1b,GAM/C,GALApD,KAAK24b,qBAAqBtiW,OAAOjzF,EAAO,GACxCpD,KAAKm5b,wBAAwB9iW,OAAOjzF,EAAO,GAC3C6uW,IAGI3yB,GAAO+5G,EAAS,CAClB,IAAIvyP,EAAQmwP,EAAgB33G,GACxBx4I,GACF9mM,KAAKg4b,wBAAwBlxP,EAAM1zF,mBAWzCiQ,EAAqBzjH,UAAUs4b,2BAA6B,WAC1D,IAAIsB,EAAex5b,KAAKm5b,wBAAwB71b,MAAM,GACtDtD,KAAK24b,qBAAqBj5b,OAAS,EACnCM,KAAKm5b,wBAAwBz5b,OAAS,EACtC,IAAK,IAAIH,EAAI,EAAGA,EAAIi6b,EAAa95b,OAAQH,IACvCi6b,EAAaj6b,MAWjB8jH,EAAqBzjH,UAAU+3b,uBAAyB,WACtD,GAAK33b,KAAKqgH,OAAQ62U,GAAuBC,EAAzC,CAKA,IAAIsC,EAAcz5b,KAAK05b,eACnBC,EAAWF,EAAcz5b,KAAK45b,eAiZ3B,CACL7nV,IAAK,EACLmP,OAAQ,EACRp4F,KAAM,EACNC,MAAO,EACPpnB,MAAO,EACPD,OAAQ,GArZV1B,KAAK63b,oBAAoBxkb,SAAQ,SAASmS,GACxC,IAAIrY,EAASqY,EAAKqlB,QACdgvZ,EAAa5mV,EAAsB9lG,GACnC2sb,EAAqB95b,KAAK+5b,oBAAoB5sb,GAC9C6sb,EAAWx0a,EAAKlhB,MAChBmzb,EAAmBgC,GAAeK,GAClC95b,KAAKi6b,kCAAkC9sb,EAAQ0sb,EAAYF,GAE3DO,EAAa,KACZl6b,KAAK+5b,oBAAoB5sb,GAElB+pb,IAAsBl3b,KAAKqgH,OACrC65U,EAAaP,GAFbO,EAqYG,CACLnoV,IAAK,EACLmP,OAAQ,EACRp4F,KAAM,EACNC,MAAO,EACPpnB,MAAO,EACPD,OAAQ,GAtYR,IAAIy4b,EAAW30a,EAAKlhB,MAAQ,IAAIyyb,EAA0B,CACxDxxW,KAkQGntE,OAAOinF,aAAeA,YAAY/mD,KAAO+mD,YAAY/mD,MAjQxDnrC,OAAQA,EACRqqb,mBAAoBqC,EACpBK,WAAYA,EACZzC,iBAAkBA,IAGfuC,EAEMP,GAAeK,EAGpB95b,KAAKo6b,qBAAqBJ,EAAUG,IACtCn6b,KAAKo4b,eAAexub,KAAKuwb,GAMvBH,GAAYA,EAASl2U,gBACvB9jH,KAAKo4b,eAAexub,KAAKuwb,GAZ3Bn6b,KAAKo4b,eAAexub,KAAKuwb,KAe1Bn6b,MAECA,KAAKo4b,eAAe14b,QACtBM,KAAKq6b,UAAUr6b,KAAKsgb,cAAetgb,QAkBvCqjH,EAAqBzjH,UAAUq6b,kCAC3B,SAAS9sb,EAAQ0sb,EAAYF,GAE/B,GAA+C,QAA3Cvhb,OAAO6rX,iBAAiB92X,GAAQq1K,QAApC,CAMA,IAJA,IAAIi1Q,EAAmBoC,EACnBt5R,EAAS+5R,EAAcntb,GACvBotb,GAAS,GAELA,GAAUh6R,GAAQ,CACxB,IAAIi6R,EAAa,KACbC,EAAyC,GAAnBl6R,EAAOowL,SAC7Bv4U,OAAO6rX,iBAAiB1jO,GAAU,GAGtC,GAAmC,QAA/Bk6R,EAAoBj4Q,QAAmB,OAAO,KAElD,GAAIjiB,GAAUvgK,KAAKqgH,MAA0C,GAAlCkgD,EAAOowL,SAEhC,GADA4pG,GAAS,EACLh6R,GAAUvgK,KAAKqgH,MAAQkgD,GAAUj/F,EAC/B41X,IAAuBl3b,KAAKqgH,MACzB82U,GACwB,GAAzBA,EAAgBx1b,OAAwC,GAA1Bw1b,EAAgBz1b,QAEhD6+J,EAAS,KACTi6R,EAAa,KACb/C,EAAmB,MAEnB+C,EAAarD,EAGfqD,EAAab,MAEV,CAEL,IAAI7yP,EAAQwzP,EAAc/5R,GACtBm6R,EAAY5zP,GAAS7zF,EAAsB6zF,GAC3C6zP,EACA7zP,GACA9mM,KAAKi6b,kCAAkCnzP,EAAO4zP,EAAWf,GACzDe,GAAaC,GACfp6R,EAASumC,EACT0zP,EAAa9C,EAAsBgD,EAAWC,KAE9Cp6R,EAAS,KACTk3R,EAAmB,UAGlB,CAKL,IAAIn4G,EAAM/+K,EAAOntD,cACbmtD,GAAU++K,EAAIv+O,MACdw/D,GAAU++K,EAAIjsO,iBACkB,WAAhConV,EAAoBx2X,WACtBu2X,EAAavnV,EAAsBstD,IASvC,GAHIi6R,IACF/C,EAAmBmD,EAAwBJ,EAAY/C,KAEpDA,EAAkB,MACvBl3R,EAASA,GAAU+5R,EAAc/5R,GAEnC,OAAOk3R,IASTp0U,EAAqBzjH,UAAUg6b,aAAe,WAC5C,IAAID,EACJ,GAAI35b,KAAKqgH,OAASw6U,EAAM76b,KAAKqgH,MAC3Bs5U,EAAW1mV,EAAsBjzG,KAAKqgH,UACjC,CAEL,IAAIi/N,EAAMu7G,EAAM76b,KAAKqgH,MAAQrgH,KAAKqgH,KAAO/+C,EACrC6xC,EAAOmsO,EAAIjsO,gBACXtS,EAAOu+O,EAAIv+O,KACf44V,EAAW,CACT5nV,IAAK,EACLjpF,KAAM,EACNC,MAAOoqF,EAAKma,aAAevsB,EAAKusB,YAChC3rH,MAAOwxG,EAAKma,aAAevsB,EAAKusB,YAChCpM,OAAQ/N,EAAKoa,cAAgBxsB,EAAKwsB,aAClC7rH,OAAQyxG,EAAKoa,cAAgBxsB,EAAKwsB,cAGtC,OAAOvtH,KAAK86b,wBAAwBnB,IAUtCt2U,EAAqBzjH,UAAUk7b,wBAA0B,SAAS9nV,GAChE,IAAIylV,EAAUz4b,KAAK+6b,kBAAkBv6b,KAAI,SAASqoB,EAAQtpB,GACxD,MAAsB,MAAfspB,EAAOoI,KAAepI,EAAO1mB,MAChC0mB,EAAO1mB,OAAS5C,EAAI,EAAIyzG,EAAKrxG,MAAQqxG,EAAKtxG,QAAU,OAEtDs5b,EAAU,CACZjpV,IAAKiB,EAAKjB,IAAM0mV,EAAQ,GACxB1va,MAAOiqF,EAAKjqF,MAAQ0va,EAAQ,GAC5Bv3U,OAAQlO,EAAKkO,OAASu3U,EAAQ,GAC9B3va,KAAMkqF,EAAKlqF,KAAO2va,EAAQ,IAK5B,OAHAuC,EAAQr5b,MAAQq5b,EAAQjya,MAAQiya,EAAQlya,KACxCkya,EAAQt5b,OAASs5b,EAAQ95U,OAAS85U,EAAQjpV,IAEnCipV,GAcT33U,EAAqBzjH,UAAUw6b,qBAC3B,SAASJ,EAAUG,GAIrB,IAAIc,EAAWjB,GAAYA,EAASl2U,eAChCk2U,EAASj2U,mBAAqB,GAAK,EACnCm3U,EAAWf,EAASr2U,eACpBq2U,EAASp2U,mBAAqB,GAAK,EAGvC,GAAIk3U,IAAaC,EAEjB,IAAK,IAAI37b,EAAI,EAAGA,EAAIS,KAAKuvF,WAAW7vF,OAAQH,IAAK,CAC/C,IAAIuwF,EAAY9vF,KAAKuvF,WAAWhwF,GAIhC,GAAIuwF,GAAamrW,GAAYnrW,GAAaorW,GACtCprW,EAAYmrW,IAAanrW,EAAYorW,EACvC,OAAO,IAWb73U,EAAqBzjH,UAAU85b,aAAe,WAC5C,OAAQ15b,KAAKqgH,MAAQ86U,EAAa75X,EAAUthE,KAAKqgH,OAUnDgD,EAAqBzjH,UAAUm6b,oBAAsB,SAAS5sb,GAC5D,IAAIksb,EACDr5b,KAAKqgH,OAASrgH,KAAKqgH,KAAKjN,eAAiBpzG,KAAKqgH,OAAU/+C,EAC3D,OACE65X,EAAa9B,EAASlsb,MACpBnN,KAAKqgH,MAAQg5U,GAAWlsb,EAAOimG,gBAUrCiQ,EAAqBzjH,UAAUk4b,kBAAoB,WAC7CruR,EAAStpK,QAAQH,MAAQ,GAC3BypK,EAAS7/J,KAAK5J,OASlBqjH,EAAqBzjH,UAAUq4b,oBAAsB,WACnD,IAAI70b,EAAQqmK,EAAStpK,QAAQH,OACf,GAAVoD,GAAaqmK,EAASpzE,OAAOjzF,EAAO,IA4P1CgV,OAAOirG,qBAAuBA,EAC9BjrG,OAAO2+a,0BAA4BA,EA38BnC,SAASE,EAAgB33G,GACvB,IACE,OAAOA,EAAIo5G,aAAep5G,EAAIo5G,YAAY0C,cAAgB,KAC1D,MAAOl7b,GAEP,OAAO,MA6CX,SAAS62b,EAA0Bzyb,GACjCtE,KAAKulF,KAAOjhF,EAAMihF,KAClBvlF,KAAKmN,OAAS7I,EAAM6I,OACpBnN,KAAKk6b,WAAamB,EAAc/2b,EAAM41b,YACtCl6b,KAAKw3b,mBAAqB6D,EAAc/2b,EAAMkzb,oBAC9Cx3b,KAAKy3b,iBAAmB4D,EAAc/2b,EAAMmzb,kBA8xBrC,CACL1lV,IAAK,EACLmP,OAAQ,EACRp4F,KAAM,EACNC,MAAO,EACPpnB,MAAO,EACPD,OAAQ,IAnyBV1B,KAAK8jH,iBAAmBx/G,EAAMmzb,iBAG9B,IAAIoC,EAAa75b,KAAKw3b,mBAClB8D,EAAazB,EAAWl4b,MAAQk4b,EAAWn4b,OAC3C+1b,EAAmBz3b,KAAKy3b,iBACxB8D,EAAmB9D,EAAiB91b,MAAQ81b,EAAiB/1b,OAM/D1B,KAAK+jH,kBAHHu3U,EAGuBryb,QAAQsyb,EAAmBD,GAAYr4Z,QAAQ,IAG/CjjC,KAAK8jH,eAAiB,EAAI,EAcvD,SAAST,EAAqBzsG,EAAU4kb,GAEtC,IAAInpb,EAAUmpb,GAAe,GAE7B,GAAuB,mBAAZ5kb,EACT,MAAM,IAAIvR,MAAM,+BAGlB,GACEgN,EAAQguG,MACiB,GAAzBhuG,EAAQguG,KAAKswO,UACY,GAAzBt+U,EAAQguG,KAAKswO,SAEb,MAAM,IAAItrV,MAAM,sCAIlBrF,KAAK23b,uBA8nBP,SAAkBvlb,EAAIc,GACpB,IAAI4tN,EAAQ,KACZ,OAAO,WACAA,IACHA,EAAQ/5L,YAAW,WACjB30B,IACA0uN,EAAQ,OACP5tN,KAroBuBwsG,CAC1B1/G,KAAK23b,uBAAuB7lW,KAAK9xF,MAAOA,KAAKo3b,kBAGjDp3b,KAAKq6b,UAAYzjb,EACjB5W,KAAK63b,oBAAsB,GAC3B73b,KAAKo4b,eAAiB,GACtBp4b,KAAK+6b,kBAAoB/6b,KAAKu4b,iBAAiBlmb,EAAQ6wG,YAGvDljH,KAAKuvF,WAAavvF,KAAKq4b,gBAAgBhmb,EAAQy9E,WAC/C9vF,KAAKqgH,KAAOhuG,EAAQguG,MAAQ,KAC5BrgH,KAAKkjH,WAAaljH,KAAK+6b,kBAAkBv6b,KAAI,SAASqoB,GACpD,OAAOA,EAAO1mB,MAAQ0mB,EAAOoI,QAC5B/jB,KAAK,KAGRlN,KAAK24b,qBAAuB,GAE5B34b,KAAKm5b,wBAA0B,GAgoBjC,SAASL,EAASr4b,EAAMizB,EAAOthB,EAAIqpb,GACG,mBAAzBh7b,EAAK0zF,iBACd1zF,EAAK0zF,iBAAiBzgE,EAAOthB,EAAIqpb,IAAkB,GAEjB,mBAApBh7b,EAAKs2F,aACnBt2F,EAAKs2F,YAAY,KAAOrjE,EAAOthB,GAanC,SAASgnb,EAAY34b,EAAMizB,EAAOthB,EAAIqpb,GACG,mBAA5Bh7b,EAAK2zF,oBACd3zF,EAAK2zF,oBAAoB1gE,EAAOthB,EAAIqpb,IAAkB,GAEnB,mBAArBh7b,EAAKi7b,cACnBj7b,EAAKi7b,aAAa,KAAOhoa,EAAOthB,GAYpC,SAASwob,EAAwBe,EAAOC,GACtC,IAAI7pV,EAAMvnG,KAAKwC,IAAI2ub,EAAM5pV,IAAK6pV,EAAM7pV,KAChCmP,EAAS12G,KAAKC,IAAIkxb,EAAMz6U,OAAQ06U,EAAM16U,QACtCp4F,EAAOte,KAAKwC,IAAI2ub,EAAM7ya,KAAM8ya,EAAM9ya,MAClCC,EAAQve,KAAKC,IAAIkxb,EAAM5ya,MAAO6ya,EAAM7ya,OACpCpnB,EAAQonB,EAAQD,EAChBpnB,EAASw/G,EAASnP,EAEtB,OAAQpwG,GAAS,GAAKD,GAAU,GAAM,CACpCqwG,IAAKA,EACLmP,OAAQA,EACRp4F,KAAMA,EACNC,MAAOA,EACPpnB,MAAOA,EACPD,OAAQA,IACL,KASP,SAASuxG,EAAsBt3E,GAC7B,IAAIq3E,EAEJ,IACEA,EAAOr3E,EAAGs3E,wBACV,MAAO/zF,IAKT,OAAK8zF,GAGCA,EAAKrxG,OAASqxG,EAAKtxG,SACvBsxG,EAAO,CACLjB,IAAKiB,EAAKjB,IACVhpF,MAAOiqF,EAAKjqF,MACZm4F,OAAQlO,EAAKkO,OACbp4F,KAAMkqF,EAAKlqF,KACXnnB,MAAOqxG,EAAKjqF,MAAQiqF,EAAKlqF,KACzBpnB,OAAQsxG,EAAKkO,OAASlO,EAAKjB,MAGxBiB,GAUA,CACLjB,IAAK,EACLmP,OAAQ,EACRp4F,KAAM,EACNC,MAAO,EACPpnB,MAAO,EACPD,OAAQ,GAYZ,SAAS25b,EAAcroV,GAErB,OAAKA,GAAQ,MAAOA,EACXA,EAMF,CACLjB,IAAKiB,EAAKjB,IACVvlG,EAAGwmG,EAAKjB,IACRmP,OAAQlO,EAAKkO,OACbp4F,KAAMkqF,EAAKlqF,KACXvc,EAAGymG,EAAKlqF,KACRC,MAAOiqF,EAAKjqF,MACZpnB,MAAOqxG,EAAKrxG,MACZD,OAAQsxG,EAAKtxG,QAYjB,SAASg2b,EAAsBmE,EAAoBC,GACjD,IAAI/pV,EAAM+pV,EAAuB/pV,IAAM8pV,EAAmB9pV,IACtDjpF,EAAOgza,EAAuBhza,KAAO+ya,EAAmB/ya,KAC5D,MAAO,CACLipF,IAAKA,EACLjpF,KAAMA,EACNpnB,OAAQo6b,EAAuBp6b,OAC/BC,MAAOm6b,EAAuBn6b,MAC9Bu/G,OAAQnP,EAAM+pV,EAAuBp6b,OACrCqnB,MAAOD,EAAOgza,EAAuBn6b,OAYzC,SAASw5b,EAAa56R,EAAQ1/J,GAE5B,IADA,IAAIJ,EAAOI,EACJJ,GAAM,CACX,GAAIA,GAAQ8/J,EAAQ,OAAO,EAE3B9/J,EAAO65b,EAAc75b,GAEvB,OAAO,EAUT,SAAS65b,EAAc75b,GACrB,IAAI8/J,EAAS9/J,EAAKwjM,WAElB,OAAoC,GAAhCxjM,EAAKkwV,UAAgClwV,GAAQ6gE,EAExC21X,EAAgBx2b,IAIrB8/J,GAAUA,EAAOw7R,eACnBx7R,EAASA,EAAOw7R,aAAa93P,YAG3B1jC,GAA6B,IAAnBA,EAAOowL,UAAkBpwL,EAAOnzG,KAErCmzG,EAAOnzG,KAGTmzG,GAQT,SAASs6R,EAAMp6b,GACb,OAAOA,GAA0B,IAAlBA,EAAKkwV,UAr+BrB,I,6BCAY,IAAI71S,EAAE74C,EAAQ,KAAiBzC,EAAE,MAAMG,EAAE,MAAMqC,EAAQwkN,SAAS,MAAMxkN,EAAQg6b,WAAW,MAAMh6b,EAAQi6b,SAAS,MAAM,IAAIh6Z,EAAE,MAAM3Q,EAAE,MAAMjyB,EAAE,MAAM2C,EAAQk6b,SAAS,MAAM,IAAIvmb,EAAE,MAAMgwB,EAAE,MACpM,GAAG,oBAAoB55B,QAAQA,OAAO8rB,IAAI,CAAC,IAAIkI,EAAEh0B,OAAO8rB,IAAIr4B,EAAEugC,EAAE,iBAAiBpgC,EAAEogC,EAAE,gBAAgB/9B,EAAQwkN,SAASzmL,EAAE,kBAAkB/9B,EAAQg6b,WAAWj8Z,EAAE,qBAAqB/9B,EAAQi6b,SAASl8Z,EAAE,kBAAkBkC,EAAElC,EAAE,kBAAkBzO,EAAEyO,EAAE,iBAAiB1gC,EAAE0gC,EAAE,qBAAqB/9B,EAAQk6b,SAASn8Z,EAAE,kBAAkBpqB,EAAEoqB,EAAE,cAAc4F,EAAE5F,EAAE,cAAc,IAAIxzB,EAAE,oBAAoBR,QAAQA,OAAOkP,SACtR,SAASwnB,EAAEn2B,GAAG,IAAI,IAAIzE,EAAE,yDAAyDyE,EAAEnC,EAAE,EAAEA,EAAE1K,UAAUC,OAAOyK,IAAItC,GAAG,WAAW24D,mBAAmB/gE,UAAU0K,IAAI,MAAM,yBAAyBmC,EAAE,WAAWzE,EAAE,iHACpU,IAAI63C,EAAE,CAACy8Y,UAAU,WAAW,OAAM,GAAIC,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAcjhY,EAAE,GAAG,SAASloC,EAAE7mB,EAAEzE,EAAEsC,GAAGnK,KAAKgB,MAAMsL,EAAEtM,KAAKi0B,QAAQpsB,EAAE7H,KAAKisJ,KAAK5wF,EAAEr7D,KAAKu8b,QAAQpyb,GAAGu1C,EACpN,SAASnF,KAA6B,SAAS2jC,EAAE5xE,EAAEzE,EAAEsC,GAAGnK,KAAKgB,MAAMsL,EAAEtM,KAAKi0B,QAAQpsB,EAAE7H,KAAKisJ,KAAK5wF,EAAEr7D,KAAKu8b,QAAQpyb,GAAGu1C,EADsGvsB,EAAEvzB,UAAUi2U,iBAAiB,GAAG1iT,EAAEvzB,UAAU2qG,SAAS,SAASj+F,EAAEzE,GAAG,GAAG,kBAAkByE,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMjH,MAAMo9B,EAAE,KAAKziC,KAAKu8b,QAAQD,gBAAgBt8b,KAAKsM,EAAEzE,EAAE,aAAasrB,EAAEvzB,UAAUgqY,YAAY,SAASt9X,GAAGtM,KAAKu8b,QAAQH,mBAAmBp8b,KAAKsM,EAAE,gBACndiuC,EAAE36C,UAAUuzB,EAAEvzB,UAAsF,IAAIi5F,EAAE3a,EAAEt+E,UAAU,IAAI26C,EAAEs+C,EAAEviF,YAAY4nE,EAAEpjC,EAAE+9C,EAAE1lE,EAAEvzB,WAAWi5F,EAAE2jW,sBAAqB,EAAG,IAAIrhW,EAAE,CAACv7B,QAAQ,MAAMo5B,EAAE75F,OAAOS,UAAUC,eAAe86C,EAAE,CAAC/5C,KAAI,EAAGmkH,KAAI,EAAG03U,QAAO,EAAGC,UAAS,GAChS,SAASnjW,EAAEjtF,EAAEzE,EAAEsC,GAAG,IAAIjK,EAAE2iB,EAAE,GAAGxI,EAAE,KAAKwgC,EAAE,KAAK,GAAG,MAAMhzC,EAAE,IAAI3H,UAAK,IAAS2H,EAAEk9G,MAAMlqE,EAAEhzC,EAAEk9G,UAAK,IAASl9G,EAAEjH,MAAMyZ,EAAE,GAAGxS,EAAEjH,KAAKiH,EAAEmxF,EAAEl5F,KAAK+H,EAAE3H,KAAKy6C,EAAE96C,eAAeK,KAAK2iB,EAAE3iB,GAAG2H,EAAE3H,IAAI,IAAI0uB,EAAEnvB,UAAUC,OAAO,EAAE,GAAG,IAAIkvB,EAAE/L,EAAEhhB,SAASsI,OAAO,GAAG,EAAEykB,EAAE,CAAC,IAAI,IAAI4zB,EAAE70C,MAAMihB,GAAG9mB,EAAE,EAAEA,EAAE8mB,EAAE9mB,IAAI06C,EAAE16C,GAAGrI,UAAUqI,EAAE,GAAG+a,EAAEhhB,SAAS2gD,EAAE,GAAGl2C,GAAGA,EAAE+rG,aAAa,IAAIn4G,KAAK0uB,EAAEtiB,EAAE+rG,kBAAe,IAASx1F,EAAE3iB,KAAK2iB,EAAE3iB,GAAG0uB,EAAE1uB,IAAI,MAAM,CAACg8Y,SAAS18Y,EAAEkH,KAAK4F,EAAE1L,IAAIyZ,EAAE0qG,IAAIlqE,EAAE75C,MAAM6hB,EAAE85a,OAAOxhW,EAAEv7B,SACxU,SAAS1X,EAAE57C,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAE4vY,WAAW18Y,EAAqG,IAAIogD,EAAE,OAAO,SAASsX,EAAE5qD,EAAEzE,GAAG,MAAM,kBAAkByE,GAAG,OAAOA,GAAG,MAAMA,EAAE1L,IAA7K,SAAgB0L,GAAG,IAAIzE,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAIyE,EAAEuF,QAAQ,SAAQ,SAASvF,GAAG,OAAOzE,EAAEyE,MAAmFw4S,CAAO,GAAGx4S,EAAE1L,KAAKiH,EAAEhB,SAAS,IAC5W,SAASowF,EAAE3qF,EAAEzE,EAAEsC,EAAEjK,EAAE2iB,GAAG,IAAIxI,SAAS/N,EAAK,cAAc+N,GAAG,YAAYA,IAAE/N,EAAE,MAAK,IAAIuuC,GAAE,EAAG,GAAG,OAAOvuC,EAAEuuC,GAAE,OAAQ,OAAOxgC,GAAG,IAAK,SAAS,IAAK,SAASwgC,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOvuC,EAAE4vY,UAAU,KAAK18Y,EAAE,KAAKG,EAAEk7C,GAAE,GAAI,GAAGA,EAAE,OAAWh4B,EAAEA,EAANg4B,EAAEvuC,GAASA,EAAE,KAAKpM,EAAE,IAAIg3D,EAAErc,EAAE,GAAG36C,EAAEyN,MAAMjJ,QAAQme,IAAI1Y,EAAE,GAAG,MAAMmC,IAAInC,EAAEmC,EAAEuF,QAAQ+tC,EAAE,OAAO,KAAKq3C,EAAEp0E,EAAEhb,EAAEsC,EAAE,IAAG,SAASmC,GAAG,OAAOA,MAAK,MAAMuW,IAAIqlC,EAAErlC,KAAKA,EAD/W,SAAWvW,EAAEzE,GAAG,MAAM,CAACq0Y,SAAS18Y,EAAEkH,KAAK4F,EAAE5F,KAAK9F,IAAIiH,EAAEk9G,IAAIz4G,EAAEy4G,IAAI/jH,MAAMsL,EAAEtL,MAAM27b,OAAOrwb,EAAEqwb,QAC4R33Y,CAAEniC,EAAE1Y,IAAI0Y,EAAEjiB,KAAKi6C,GAAGA,EAAEj6C,MAAMiiB,EAAEjiB,IAAI,IAAI,GAAGiiB,EAAEjiB,KAAKiR,QAAQ+tC,EAAE,OAAO,KAAKtzC,IAAIzE,EAAE+B,KAAKiZ,IAAI,EAAyB,GAAvBg4B,EAAE,EAAE36C,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOyN,MAAMjJ,QAAQ4H,GAAG,IAAI,IAAIsiB,EACzf,EAAEA,EAAEtiB,EAAE5M,OAAOkvB,IAAI,CAAQ,IAAI4zB,EAAEtiD,EAAEg3D,EAAf78C,EAAE/N,EAAEsiB,GAAeA,GAAGisB,GAAGo8C,EAAE58E,EAAExS,EAAEsC,EAAEq4C,EAAE3/B,QAAQ,GAAG2/B,EANhE,SAAWl2C,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEC,GAAGD,EAAEC,IAAID,EAAE,eAA0CA,EAAE,KAMlDE,CAAEF,GAAG,oBAAoBk2C,EAAE,IAAIl2C,EAAEk2C,EAAE1iD,KAAKwM,GAAGsiB,EAAE,IAAIvU,EAAE/N,EAAE0S,QAAQC,MAA6B47B,GAAGo8C,EAA1B58E,EAAEA,EAAElY,MAA0B0F,EAAEsC,EAAtBq4C,EAAEtiD,EAAEg3D,EAAE78C,EAAEuU,KAAkB/L,QAAQ,GAAG,WAAWxI,EAAE,MAAMxS,EAAE,GAAGyE,EAAEjH,MAAMo9B,EAAE,GAAG,oBAAoB56B,EAAE,qBAAqB1I,OAAOsE,KAAK6I,GAAGY,KAAK,MAAM,IAAIrF,IAAI,OAAOgzC,EAAE,SAAS3b,EAAE5yB,EAAEzE,EAAEsC,GAAG,GAAG,MAAMmC,EAAE,OAAOA,EAAE,IAAIpM,EAAE,GAAG2iB,EAAE,EAAmD,OAAjDo0E,EAAE3qF,EAAEpM,EAAE,GAAG,IAAG,SAASoM,GAAG,OAAOzE,EAAE/H,KAAKqK,EAAEmC,EAAEuW,QAAc3iB,EAC1Z,SAASq8F,EAAEjwF,GAAG,IAAI,IAAIA,EAAEswb,QAAQ,CAAC,IAAI/0b,EAAEyE,EAAE+vR,QAAQx0R,EAAEA,IAAIyE,EAAEswb,QAAQ,EAAEtwb,EAAE+vR,QAAQx0R,EAAEA,EAAEunC,MAAK,SAASvnC,GAAG,IAAIyE,EAAEswb,UAAU/0b,EAAEA,EAAE+L,QAAQtH,EAAEswb,QAAQ,EAAEtwb,EAAE+vR,QAAQx0R,MAAI,SAASA,GAAG,IAAIyE,EAAEswb,UAAUtwb,EAAEswb,QAAQ,EAAEtwb,EAAE+vR,QAAQx0R,MAAK,GAAG,IAAIyE,EAAEswb,QAAQ,OAAOtwb,EAAE+vR,QAAQ,MAAM/vR,EAAE+vR,QAAS,IAAIx/L,EAAE,CAACj9B,QAAQ,MAAM,SAASxd,IAAI,IAAI91C,EAAEuwF,EAAEj9B,QAAQ,GAAG,OAAOtzD,EAAE,MAAMjH,MAAMo9B,EAAE,MAAM,OAAOn2B,EAAE,IAAI+wF,EAAE,CAACw/V,uBAAuBhgW,EAAEigW,wBAAwB,CAACnuT,WAAW,GAAGouT,kBAAkB5hW,EAAE6hW,qBAAqB,CAACp9X,SAAQ,GAAIxgE,OAAO07C,GACje94C,EAAQs5B,SAAS,CAAC96B,IAAI0+B,EAAE7rB,QAAQ,SAAS/G,EAAEzE,EAAEsC,GAAG+0B,EAAE5yB,GAAE,WAAWzE,EAAE9H,MAAMC,KAAKP,aAAY0K,IAAIoX,MAAM,SAASjV,GAAG,IAAIzE,EAAE,EAAuB,OAArBq3B,EAAE5yB,GAAE,WAAWzE,OAAaA,GAAGwzB,QAAQ,SAAS/uB,GAAG,OAAO4yB,EAAE5yB,GAAE,SAASA,GAAG,OAAOA,MAAK,IAAI+iI,KAAK,SAAS/iI,GAAG,IAAI47C,EAAE57C,GAAG,MAAMjH,MAAMo9B,EAAE,MAAM,OAAOn2B,IAAItK,EAAQ4wB,UAAUO,EAAEnxB,EAAQglI,cAAc9oD,EAAEl8E,EAAQi7b,mDAAmD5/V,EAChXr7F,EAAQ00G,aAAa,SAASpqG,EAAEzE,EAAEsC,GAAG,GAAG,OAAOmC,QAAG,IAASA,EAAE,MAAMjH,MAAMo9B,EAAE,IAAIn2B,IAAI,IAAIpM,EAAE46C,EAAE,GAAGxuC,EAAEtL,OAAO6hB,EAAEvW,EAAE1L,IAAIyZ,EAAE/N,EAAEy4G,IAAIlqE,EAAEvuC,EAAEqwb,OAAO,GAAG,MAAM90b,EAAE,CAAoE,QAAnE,IAASA,EAAEk9G,MAAM1qG,EAAExS,EAAEk9G,IAAIlqE,EAAEsgD,EAAEv7B,cAAS,IAAS/3D,EAAEjH,MAAMiiB,EAAE,GAAGhb,EAAEjH,KAAQ0L,EAAE5F,MAAM4F,EAAE5F,KAAK2xG,aAAa,IAAIzpF,EAAEtiB,EAAE5F,KAAK2xG,aAAa,IAAI71D,KAAK36C,EAAEmxF,EAAEl5F,KAAK+H,EAAE26C,KAAK7H,EAAE96C,eAAe2iD,KAAKtiD,EAAEsiD,QAAG,IAAS36C,EAAE26C,SAAI,IAAS5zB,EAAEA,EAAE4zB,GAAG36C,EAAE26C,IAAI,IAAIA,EAAE/iD,UAAUC,OAAO,EAAE,GAAG,IAAI8iD,EAAEtiD,EAAE2B,SAASsI,OAAO,GAAG,EAAEq4C,EAAE,CAAC5zB,EAAEjhB,MAAM60C,GAAG,IAAI,IAAI16C,EAAE,EAAEA,EAAE06C,EAAE16C,IAAI8mB,EAAE9mB,GAAGrI,UAAUqI,EAAE,GAAG5H,EAAE2B,SAAS+sB,EAAE,MAAM,CAACstX,SAAS18Y,EAAEkH,KAAK4F,EAAE5F,KACxf9F,IAAIiiB,EAAEkiG,IAAI1qG,EAAErZ,MAAMd,EAAEy8b,OAAO9hZ,IAAI74C,EAAQ/C,cAAc,SAASqN,EAAEzE,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMyE,EAAE,CAAC4vY,SAAS5qX,EAAE4ra,sBAAsBr1b,EAAEs1b,cAAc7wb,EAAE8wb,eAAe9wb,EAAE+wb,aAAa,EAAE90U,SAAS,KAAKzmH,SAAS,OAAQymH,SAAS,CAAC2zR,SAASj6W,EAAEk5I,SAAS7uK,GAAUA,EAAExK,SAASwK,GAAGtK,EAAQtB,cAAc64F,EAAEv3F,EAAQs7b,cAAc,SAAShxb,GAAG,IAAIzE,EAAE0xF,EAAEzH,KAAK,KAAKxlF,GAAY,OAATzE,EAAEnB,KAAK4F,EAASzE,GAAG7F,EAAQu7b,UAAU,WAAW,MAAM,CAAC39X,QAAQ,OAAO59D,EAAQoxB,WAAW,SAAS9mB,GAAG,MAAM,CAAC4vY,SAAS78Y,EAAEszB,OAAOrmB,IAAItK,EAAQgwB,eAAek2B,EAC3elmD,EAAQw7b,KAAK,SAASlxb,GAAG,MAAM,CAAC4vY,SAASv2W,EAAE83Z,SAAS,CAACb,SAAS,EAAEvgK,QAAQ/vR,GAAGujD,MAAM0sC,IAAIv6F,EAAQkoC,KAAK,SAAS59B,EAAEzE,GAAG,MAAM,CAACq0Y,SAASvmY,EAAEjP,KAAK4F,EAAED,aAAQ,IAASxE,EAAE,KAAKA,IAAI7F,EAAQknN,YAAY,SAAS58M,EAAEzE,GAAG,OAAOu6C,IAAI8mK,YAAY58M,EAAEzE,IAAI7F,EAAQ+oC,WAAW,SAASz+B,EAAEzE,GAAG,OAAOu6C,IAAIrX,WAAWz+B,EAAEzE,IAAI7F,EAAQ07b,cAAc,aAAa17b,EAAQ6qJ,UAAU,SAASvgJ,EAAEzE,GAAG,OAAOu6C,IAAIyqG,UAAUvgJ,EAAEzE,IAAI7F,EAAQukN,oBAAoB,SAASj6M,EAAEzE,EAAEsC,GAAG,OAAOi4C,IAAImkK,oBAAoBj6M,EAAEzE,EAAEsC,IAC9cnI,EAAQ27b,gBAAgB,SAASrxb,EAAEzE,GAAG,OAAOu6C,IAAIu7Y,gBAAgBrxb,EAAEzE,IAAI7F,EAAQmmN,QAAQ,SAAS77M,EAAEzE,GAAG,OAAOu6C,IAAI+lK,QAAQ77M,EAAEzE,IAAI7F,EAAQymN,WAAW,SAASn8M,EAAEzE,EAAEsC,GAAG,OAAOi4C,IAAIqmK,WAAWn8M,EAAEzE,EAAEsC,IAAInI,EAAQsmN,OAAO,SAASh8M,GAAG,OAAO81C,IAAIkmK,OAAOh8M,IAAItK,EAAQ47b,SAAS,SAAStxb,GAAG,OAAO81C,IAAIw7Y,SAAStxb,IAAItK,EAAQw0B,QAAQ,U,6BCXxS,IAAIg7D,EAAGvvF,EAAQ,GAAS6F,EAAE7F,EAAQ,KAAiBqvB,EAAErvB,EAAQ,KAAa,SAASuK,EAAEF,GAAG,IAAI,IAAIzE,EAAE,yDAAyDyE,EAAEnC,EAAE,EAAEA,EAAE1K,UAAUC,OAAOyK,IAAItC,GAAG,WAAW24D,mBAAmB/gE,UAAU0K,IAAI,MAAM,yBAAyBmC,EAAE,WAAWzE,EAAE,iHAAiH,IAAI2pF,EAAG,MAAMnsF,MAAMmH,EAAE,MAAM,IAAIilF,EAAG,IAAIkL,IAAI1G,EAAG,GAAG,SAAS7D,EAAG9lF,EAAEzE,GAAG6pF,EAAGplF,EAAEzE,GAAG6pF,EAAGplF,EAAE,UAAUzE,GAC3e,SAAS6pF,EAAGplF,EAAEzE,GAAW,IAARouF,EAAG3pF,GAAGzE,EAAMyE,EAAE,EAAEA,EAAEzE,EAAEnI,OAAO4M,IAAImlF,EAAGxzE,IAAIpW,EAAEyE,IACzD,IAAIslF,IAAK,qBAAqBx5E,QAAQ,qBAAqBA,OAAOkpD,UAAU,qBAAqBlpD,OAAOkpD,SAAS5gE,eAAemxF,EAAG,8VAA8VE,EAAG5yF,OAAOS,UAAUC,eACrfmyF,EAAG,GAAGsK,EAAG,GAC+M,SAASjhC,EAAE/uD,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,EAAE5zB,GAAG5uB,KAAK69b,gBAAgB,IAAIh2b,GAAG,IAAIA,GAAG,IAAIA,EAAE7H,KAAK4sI,cAAc/pH,EAAE7iB,KAAK89b,mBAAmB59b,EAAEF,KAAK+9b,gBAAgB5zb,EAAEnK,KAAKg+b,aAAa1xb,EAAEtM,KAAK0G,KAAKmB,EAAE7H,KAAKi+b,YAAYz7Y,EAAExiD,KAAKk+b,kBAAkBtva,EAAE,IAAI2rB,EAAE,GACnb,uIAAuIn9B,MAAM,KAAK/J,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe+G,SAAQ,SAAS/G,GAAG,IAAIzE,EAAEyE,EAAE,GAAGiuC,EAAE1yC,GAAG,IAAIwzD,EAAExzD,EAAE,GAAE,EAAGyE,EAAE,GAAG,MAAK,GAAG,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAAS+G,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAEpF,cAAc,MAAK,GAAG,MACve,CAAC,cAAc,4BAA4B,YAAY,iBAAiBmM,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,8OAA8O8Q,MAAM,KAAK/J,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAEpF,cAAc,MAAK,GAAG,MACrb,CAAC,UAAU,WAAW,QAAQ,YAAYmM,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,YAAY+G,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQ+G,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,SAAS+G,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAEpF,cAAc,MAAK,GAAG,MAAM,IAAI41F,EAAG,gBAAgB,SAAS6E,EAAGr1F,GAAG,OAAOA,EAAE,GAAGu9D,cAI3Y,SAASyoB,EAAGhmF,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEq6C,EAAE16C,eAAegI,GAAG0yC,EAAE1yC,GAAG,MAAW,OAAO3H,EAAE,IAAIA,EAAEwG,MAAKmc,IAAO,EAAEhb,EAAEnI,SAAS,MAAMmI,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYyE,EAAEzE,EAAEsC,EAAE0Y,GAAG,GAAG,OAAOhb,GAAG,qBAAqBA,GADwE,SAAYyE,EAAEzE,EAAEsC,EAAE0Y,GAAG,GAAG,OAAO1Y,GAAG,IAAIA,EAAEzD,KAAK,OAAM,EAAG,cAAcmB,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGgb,IAAc,OAAO1Y,GAASA,EAAE0zb,gBAAmD,WAAnCvxb,EAAEA,EAAEpF,cAAc5D,MAAM,EAAE,KAAsB,UAAUgJ,GAAE,QAAQ,OAAM,GAC/T+lF,CAAG/lF,EAAEzE,EAAEsC,EAAE0Y,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO1Y,EAAE,OAAOA,EAAEzD,MAAM,KAAK,EAAE,OAAOmB,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOI,MAAMJ,GAAG,KAAK,EAAE,OAAOI,MAAMJ,IAAI,EAAEA,EAAE,OAAM,EAOrDsqF,CAAGtqF,EAAEsC,EAAEjK,EAAE2iB,KAAK1Y,EAAE,MAAM0Y,GAAG,OAAO3iB,EARpL,SAAYoM,GAAG,QAAGylF,EAAGjyF,KAAKw8F,EAAGhwF,KAAeylF,EAAGjyF,KAAKkyF,EAAG1lF,KAAeulF,EAAGx5E,KAAK/L,GAAUgwF,EAAGhwF,IAAG,GAAG0lF,EAAG1lF,IAAG,GAAS,IAQsE4lF,CAAGrqF,KAAK,OAAOsC,EAAEmC,EAAEwjM,gBAAgBjoM,GAAGyE,EAAEqmG,aAAa9qG,EAAE,GAAGsC,IAAIjK,EAAE69b,gBAAgBzxb,EAAEpM,EAAE89b,cAAc,OAAO7zb,EAAE,IAAIjK,EAAEwG,MAAQ,GAAGyD,GAAGtC,EAAE3H,EAAE0sI,cAAc/pH,EAAE3iB,EAAE49b,mBAAmB,OAAO3zb,EAAEmC,EAAEwjM,gBAAgBjoM,IAAasC,EAAE,KAAXjK,EAAEA,EAAEwG,OAAc,IAAIxG,IAAG,IAAKiK,EAAE,GAAG,GAAGA,EAAE0Y,EAAEvW,EAAE6xb,eAAet7a,EAAEhb,EAAEsC,GAAGmC,EAAEqmG,aAAa9qG,EAAEsC,MAH5d,0jCAA0jCiT,MAAM,KAAK/J,SAAQ,SAAS/G,GAAG,IAAIzE,EAAEyE,EAAEuF,QAAQirF,EACzmC6E,GAAIpnD,EAAE1yC,GAAG,IAAIwzD,EAAExzD,EAAE,GAAE,EAAGyE,EAAE,MAAK,GAAG,MAAM,2EAA2E8Q,MAAM,KAAK/J,SAAQ,SAAS/G,GAAG,IAAIzE,EAAEyE,EAAEuF,QAAQirF,EAAG6E,GAAIpnD,EAAE1yC,GAAG,IAAIwzD,EAAExzD,EAAE,GAAE,EAAGyE,EAAE,gCAA+B,GAAG,MAAM,CAAC,WAAW,WAAW,aAAa+G,SAAQ,SAAS/G,GAAG,IAAIzE,EAAEyE,EAAEuF,QAAQirF,EAAG6E,GAAIpnD,EAAE1yC,GAAG,IAAIwzD,EAAExzD,EAAE,GAAE,EAAGyE,EAAE,wCAAuC,GAAG,MAAM,CAAC,WAAW,eAAe+G,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAEpF,cAAc,MAAK,GAAG,MAC/cqzC,EAAE+7D,UAAU,IAAIj7C,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAchoD,SAAQ,SAAS/G,GAAGiuC,EAAEjuC,GAAG,IAAI+uD,EAAE/uD,EAAE,GAAE,EAAGA,EAAEpF,cAAc,MAAK,GAAG,MAEzL,IAAIqrF,EAAGf,EAAGyrW,mDAAmDzqW,EAAG,MAAMC,EAAG,MAAM55E,EAAG,MAAM85E,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMuI,EAAG,MAAMtI,EAAG,MAAMwJ,EAAG,MAAMC,EAAG,MAAM1I,EAAG,MAAMF,EAAG,MAAMX,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAChN,GAAG,oBAAoBrnF,QAAQA,OAAO8rB,IAAI,CAAC,IAAIqmD,EAAEnyE,OAAO8rB,IAAI26D,EAAGtU,EAAE,iBAAiBuU,EAAGvU,EAAE,gBAAgBrlE,EAAGqlE,EAAE,kBAAkByU,EAAGzU,EAAE,qBAAqB0U,EAAG1U,EAAE,kBAAkB2U,EAAG3U,EAAE,kBAAkB4U,EAAG5U,EAAE,iBAAiB6U,EAAG7U,EAAE,qBAAqBod,EAAGpd,EAAE,kBAAkB8U,EAAG9U,EAAE,uBAAuBse,EAAGte,EAAE,cAAcue,EAAGve,EAAE,cAAc6V,EAAG7V,EAAE,eAAeA,EAAE,eAAe2V,EAAG3V,EAAE,mBAAmBgV,EAAGhV,EAAE,0BAA0BiV,EAAGjV,EAAE,mBAAmBkV,EAAGlV,EAAE,uBACxc,IAAmLqV,EAA/KF,EAAG,oBAAoBtnF,QAAQA,OAAOkP,SAAS,SAASq4E,EAAGhnF,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAE+mF,GAAI/mF,EAAE+mF,IAAK/mF,EAAE,eAA0CA,EAAE,KAAY,SAAS2mF,EAAG3mF,GAAG,QAAG,IAASinF,EAAG,IAAI,MAAMluF,QAAS,MAAM8E,GAAG,IAAItC,EAAEsC,EAAEqjB,MAAM5b,OAAO3E,MAAM,gBAAgBsmF,EAAG1rF,GAAGA,EAAE,IAAI,GAAG,MAAM,KAAK0rF,EAAGjnF,EAAE,IAAImnF,GAAG,EACjU,SAASC,EAAGpnF,EAAEzE,GAAG,IAAIyE,GAAGmnF,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAItpF,EAAE9E,MAAM+4b,kBAAkB/4b,MAAM+4b,uBAAkB,EAAO,IAAI,GAAGv2b,EAAE,GAAGA,EAAE,WAAW,MAAMxC,SAAUlG,OAAO8M,eAAepE,EAAEjI,UAAU,QAAQ,CAAC0R,IAAI,WAAW,MAAMjM,WAAY,kBAAkB4mI,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAUrkI,EAAE,IAAI,MAAMwS,GAAG,IAAIwI,EAAExI,EAAE4xH,QAAQC,UAAU5/H,EAAE,GAAGzE,OAAO,CAAC,IAAIA,EAAE/H,OAAO,MAAMua,GAAGwI,EAAExI,EAAE/N,EAAExM,KAAK+H,EAAEjI,eAAe,CAAC,IAAI,MAAMyF,QAAS,MAAMgV,GAAGwI,EAAExI,EAAE/N,KAAK,MAAM+N,GAAG,GAAGA,GAAGwI,GAAG,kBAAkBxI,EAAEmT,MAAM,CAAC,IAAI,IAAIttB,EAAEma,EAAEmT,MAAMpQ,MAAM,MACnfolC,EAAE3/B,EAAE2K,MAAMpQ,MAAM,MAAMwR,EAAE1uB,EAAER,OAAO,EAAEm7C,EAAE2H,EAAE9iD,OAAO,EAAE,GAAGkvB,GAAG,GAAGisB,GAAG36C,EAAE0uB,KAAK4zB,EAAE3H,IAAIA,IAAI,KAAK,GAAGjsB,GAAG,GAAGisB,EAAEjsB,IAAIisB,IAAI,GAAG36C,EAAE0uB,KAAK4zB,EAAE3H,GAAG,CAAC,GAAG,IAAIjsB,GAAG,IAAIisB,EAAG,MAAMjsB,IAAQ,IAAJisB,GAAS36C,EAAE0uB,KAAK4zB,EAAE3H,GAAG,MAAM,KAAK36C,EAAE0uB,GAAG/c,QAAQ,WAAW,cAAc,GAAG+c,GAAG,GAAGisB,GAAG,QAD3H,QAC2I44C,GAAG,EAAGpuF,MAAM+4b,kBAAkBj0b,EAAE,OAAOmC,EAAEA,EAAEA,EAAEmZ,aAAanZ,EAAE+O,KAAK,IAAI43E,EAAG3mF,GAAG,GAC7T,SAASqnF,EAAGrnF,GAAG,OAAOA,EAAE3L,KAAK,KAAK,EAAE,OAAOsyF,EAAG3mF,EAAE5F,MAAM,KAAK,GAAG,OAAOusF,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO3mF,EAAEonF,EAAGpnF,EAAE5F,MAAK,GAAM,KAAK,GAAG,OAAO4F,EAAEonF,EAAGpnF,EAAE5F,KAAKisB,QAAO,GAAM,KAAK,GAAG,OAAOrmB,EAAEonF,EAAGpnF,EAAE5F,KAAK23b,SAAQ,GAAM,KAAK,EAAE,OAAO/xb,EAAEonF,EAAGpnF,EAAE5F,MAAK,GAAM,QAAQ,MAAM,IAC9T,SAASotF,EAAGxnF,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAEmZ,aAAanZ,EAAE+O,MAAM,KAAK,GAAG,kBAAkB/O,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKuM,EAAG,MAAM,WAAW,KAAK45E,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAK2I,EAAG,MAAM,WAAW,KAAKtI,EAAG,MAAM,eAAe,GAAG,kBAAkB1mF,EAAE,OAAOA,EAAE4vY,UAAU,KAAKppT,EAAG,OAAOxmF,EAAEmZ,aAAa,WAAW,YAAY,KAAKotE,EAAG,OAAOvmF,EAAE6uK,SAAS11J,aAAa,WAAW,YAAY,KAAKstE,EAAG,IAAIlrF,EAAEyE,EAAEqmB,OACnd,OAD0d9qB,EAAEA,EAAE4d,aAAa5d,EAAEwT,MAAM,GAC5e/O,EAAEmZ,cAAc,KAAK5d,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK20F,EAAG,OAAO1I,EAAGxnF,EAAE5F,MAAM,KAAKqtF,EAAG,OAAOD,EAAGxnF,EAAE+xb,SAAS,KAAK5hW,EAAG50F,EAAEyE,EAAEmxb,SAASnxb,EAAEA,EAAEujD,MAAM,IAAI,OAAOikC,EAAGxnF,EAAEzE,IAAI,MAAMsC,KAAK,OAAO,KAAK,SAASypF,EAAGtnF,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAAI,SAAS0nF,EAAG1nF,GAAG,IAAIzE,EAAEyE,EAAE5F,KAAK,OAAO4F,EAAEA,EAAE8oF,WAAW,UAAU9oF,EAAEpF,gBAAgB,aAAaW,GAAG,UAAUA,GAE1Z,SAASqsF,EAAG5nF,GAAGA,EAAEgyb,gBAAgBhyb,EAAEgyb,cADvD,SAAYhyb,GAAG,IAAIzE,EAAEmsF,EAAG1nF,GAAG,UAAU,QAAQnC,EAAEhL,OAAOikB,yBAAyB9W,EAAEgK,YAAY1W,UAAUiI,GAAGgb,EAAE,GAAGvW,EAAEzE,GAAG,IAAIyE,EAAEzM,eAAegI,IAAI,qBAAqBsC,GAAG,oBAAoBA,EAAEovB,KAAK,oBAAoBpvB,EAAEmH,IAAI,CAAC,IAAIpR,EAAEiK,EAAEovB,IAAIipB,EAAEr4C,EAAEmH,IAAiL,OAA7KnS,OAAO8M,eAAeK,EAAEzE,EAAE,CAACqE,cAAa,EAAGqtB,IAAI,WAAW,OAAOr5B,EAAEJ,KAAKE,OAAOsR,IAAI,SAAShF,GAAGuW,EAAE,GAAGvW,EAAEk2C,EAAE1iD,KAAKE,KAAKsM,MAAMnN,OAAO8M,eAAeK,EAAEzE,EAAE,CAACwb,WAAWlZ,EAAEkZ,aAAmB,CAACo2H,SAAS,WAAW,OAAO52H,GAAGo3J,SAAS,SAAS3tK,GAAGuW,EAAE,GAAGvW,GAAGiyb,aAAa,WAAWjyb,EAAEgyb,cACxf,YAAYhyb,EAAEzE,MAAuDosF,CAAG3nF,IAAI,SAASmpF,EAAGnpF,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIzE,EAAEyE,EAAEgyb,cAAc,IAAIz2b,EAAE,OAAM,EAAG,IAAIsC,EAAEtC,EAAE4xI,WAAe52H,EAAE,GAAqD,OAAlDvW,IAAIuW,EAAEmxE,EAAG1nF,GAAGA,EAAEhG,QAAQ,OAAO,QAAQgG,EAAEnK,QAAOmK,EAAEuW,KAAa1Y,IAAGtC,EAAEoyK,SAAS3tK,IAAG,GAAO,SAASspF,EAAGtpF,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBg1D,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOh1D,EAAE2gY,eAAe3gY,EAAEy0F,KAAK,MAAMl5F,GAAG,OAAOyE,EAAEy0F,MAC/Z,SAASlL,EAAGvpF,EAAEzE,GAAG,IAAIsC,EAAEtC,EAAEvB,QAAQ,OAAOwB,EAAE,GAAGD,EAAE,CAAC22b,oBAAe,EAAOt7b,kBAAa,EAAOf,WAAM,EAAOmE,QAAQ,MAAM6D,EAAEA,EAAEmC,EAAEmyb,cAAcC,iBAAiB,SAASxoW,GAAG5pF,EAAEzE,GAAG,IAAIsC,EAAE,MAAMtC,EAAE3E,aAAa,GAAG2E,EAAE3E,aAAa2f,EAAE,MAAMhb,EAAEvB,QAAQuB,EAAEvB,QAAQuB,EAAE22b,eAAer0b,EAAEypF,EAAG,MAAM/rF,EAAE1F,MAAM0F,EAAE1F,MAAMgI,GAAGmC,EAAEmyb,cAAc,CAACC,eAAe77a,EAAE87a,aAAax0b,EAAEy0b,WAAW,aAAa/2b,EAAEnB,MAAM,UAAUmB,EAAEnB,KAAK,MAAMmB,EAAEvB,QAAQ,MAAMuB,EAAE1F,OAAO,SAASg0F,GAAG7pF,EAAEzE,GAAe,OAAZA,EAAEA,EAAEvB,UAAiBgsF,EAAGhmF,EAAE,UAAUzE,GAAE,GAC3d,SAASyuF,GAAGhqF,EAAEzE,GAAGsuF,GAAG7pF,EAAEzE,GAAG,IAAIsC,EAAEypF,EAAG/rF,EAAE1F,OAAO0gB,EAAEhb,EAAEnB,KAAK,GAAG,MAAMyD,EAAK,WAAW0Y,GAAM,IAAI1Y,GAAG,KAAKmC,EAAEnK,OAAOmK,EAAEnK,OAAOgI,KAAEmC,EAAEnK,MAAM,GAAGgI,GAAOmC,EAAEnK,QAAQ,GAAGgI,IAAImC,EAAEnK,MAAM,GAAGgI,QAAQ,GAAG,WAAW0Y,GAAG,UAAUA,EAA8B,YAA3BvW,EAAEwjM,gBAAgB,SAAgBjoM,EAAEhI,eAAe,SAASu2F,GAAG9pF,EAAEzE,EAAEnB,KAAKyD,GAAGtC,EAAEhI,eAAe,iBAAiBu2F,GAAG9pF,EAAEzE,EAAEnB,KAAKktF,EAAG/rF,EAAE3E,eAAe,MAAM2E,EAAEvB,SAAS,MAAMuB,EAAE22b,iBAAiBlyb,EAAEkyb,iBAAiB32b,EAAE22b,gBACnZ,SAASjoW,GAAGjqF,EAAEzE,EAAEsC,GAAG,GAAGtC,EAAEhI,eAAe,UAAUgI,EAAEhI,eAAe,gBAAgB,CAAC,IAAIgjB,EAAEhb,EAAEnB,KAAK,KAAK,WAAWmc,GAAG,UAAUA,QAAG,IAAShb,EAAE1F,OAAO,OAAO0F,EAAE1F,OAAO,OAAO0F,EAAE,GAAGyE,EAAEmyb,cAAcE,aAAax0b,GAAGtC,IAAIyE,EAAEnK,QAAQmK,EAAEnK,MAAM0F,GAAGyE,EAAEpJ,aAAa2E,EAAW,MAATsC,EAAEmC,EAAE+O,QAAc/O,EAAE+O,KAAK,IAAI/O,EAAEkyb,iBAAiBlyb,EAAEmyb,cAAcC,eAAe,KAAKv0b,IAAImC,EAAE+O,KAAKlR,GACvV,SAASisF,GAAG9pF,EAAEzE,EAAEsC,GAAM,WAAWtC,GAAG+tF,EAAGtpF,EAAE8mG,iBAAiB9mG,IAAE,MAAMnC,EAAEmC,EAAEpJ,aAAa,GAAGoJ,EAAEmyb,cAAcE,aAAaryb,EAAEpJ,eAAe,GAAGiH,IAAImC,EAAEpJ,aAAa,GAAGiH,IAAwF,SAAS0xF,GAAGvvF,EAAEzE,GAA6D,OAA1DyE,EAAExE,EAAE,CAACjG,cAAS,GAAQgG,IAAMA,EAAlI,SAAYyE,GAAG,IAAIzE,EAAE,GAAuD,OAApD2pF,EAAGl2D,SAASjoB,QAAQ/G,GAAE,SAASA,GAAG,MAAMA,IAAIzE,GAAGyE,MAAYzE,EAAiD2uF,CAAG3uF,EAAEhG,aAAUyK,EAAEzK,SAASgG,GAASyE,EACvU,SAASmqF,GAAGnqF,EAAEzE,EAAEsC,EAAE0Y,GAAe,GAAZvW,EAAEA,EAAE+F,QAAWxK,EAAE,CAACA,EAAE,GAAG,IAAI,IAAI3H,EAAE,EAAEA,EAAEiK,EAAEzK,OAAOQ,IAAI2H,EAAE,IAAIsC,EAAEjK,KAAI,EAAG,IAAIiK,EAAE,EAAEA,EAAEmC,EAAE5M,OAAOyK,IAAIjK,EAAE2H,EAAEhI,eAAe,IAAIyM,EAAEnC,GAAGhI,OAAOmK,EAAEnC,GAAG00b,WAAW3+b,IAAIoM,EAAEnC,GAAG00b,SAAS3+b,GAAGA,GAAG2iB,IAAIvW,EAAEnC,GAAG20b,iBAAgB,OAAQ,CAAmB,IAAlB30b,EAAE,GAAGypF,EAAGzpF,GAAGtC,EAAE,KAAS3H,EAAE,EAAEA,EAAEoM,EAAE5M,OAAOQ,IAAI,CAAC,GAAGoM,EAAEpM,GAAGiC,QAAQgI,EAAiD,OAA9CmC,EAAEpM,GAAG2+b,UAAS,OAAGh8a,IAAIvW,EAAEpM,GAAG4+b,iBAAgB,IAAW,OAAOj3b,GAAGyE,EAAEpM,GAAGi/G,WAAWt3G,EAAEyE,EAAEpM,IAAI,OAAO2H,IAAIA,EAAEg3b,UAAS,IACpY,SAASnoW,GAAGpqF,EAAEzE,GAAG,GAAG,MAAMA,EAAE4pM,wBAAwB,MAAMpsM,MAAMmH,EAAE,KAAK,OAAO1E,EAAE,GAAGD,EAAE,CAAC1F,WAAM,EAAOe,kBAAa,EAAOrB,SAAS,GAAGyK,EAAEmyb,cAAcE,eAAe,SAAS9lZ,GAAGvsC,EAAEzE,GAAG,IAAIsC,EAAEtC,EAAE1F,MAAM,GAAG,MAAMgI,EAAE,CAA+B,GAA9BA,EAAEtC,EAAEhG,SAASgG,EAAEA,EAAE3E,aAAgB,MAAMiH,EAAE,CAAC,GAAG,MAAMtC,EAAE,MAAMxC,MAAMmH,EAAE,KAAK,GAAGmB,MAAMjJ,QAAQyF,GAAG,CAAC,KAAK,GAAGA,EAAEzK,QAAQ,MAAM2F,MAAMmH,EAAE,KAAKrC,EAAEA,EAAE,GAAGtC,EAAEsC,EAAE,MAAMtC,IAAIA,EAAE,IAAIsC,EAAEtC,EAAEyE,EAAEmyb,cAAc,CAACE,aAAa/qW,EAAGzpF,IAC/Y,SAASwsF,GAAGrqF,EAAEzE,GAAG,IAAIsC,EAAEypF,EAAG/rF,EAAE1F,OAAO0gB,EAAE+wE,EAAG/rF,EAAE3E,cAAc,MAAMiH,KAAIA,EAAE,GAAGA,KAAMmC,EAAEnK,QAAQmK,EAAEnK,MAAMgI,GAAG,MAAMtC,EAAE3E,cAAcoJ,EAAEpJ,eAAeiH,IAAImC,EAAEpJ,aAAaiH,IAAI,MAAM0Y,IAAIvW,EAAEpJ,aAAa,GAAG2f,GAAG,SAAS+zE,GAAGtqF,GAAG,IAAIzE,EAAEyE,EAAEymG,YAAYlrG,IAAIyE,EAAEmyb,cAAcE,cAAc,KAAK92b,GAAG,OAAOA,IAAIyE,EAAEnK,MAAM0F,GAAG,IAAIivF,GAAS,+BAATA,GAAwF,6BAC9X,SAASE,GAAG1qF,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAASuqF,GAAGvqF,EAAEzE,GAAG,OAAO,MAAMyE,GAAG,iCAAiCA,EAAE0qF,GAAGnvF,GAAG,+BAA+ByE,GAAG,kBAAkBzE,EAAE,+BAA+ByE,EAC3U,IAAI4qF,GAAe5qF,GAAZ6qF,IAAY7qF,GAAsJ,SAASA,EAAEzE,GAAG,GAAGyE,EAAEyyb,eAAejoW,IAAQ,cAAcxqF,EAAEA,EAAE+jM,UAAUxoM,MAAM,CAA2F,KAA1FqvF,GAAGA,IAAI51B,SAAS5gE,cAAc,QAAU2vM,UAAU,QAAQxoM,EAAE87B,UAAU98B,WAAW,SAAagB,EAAEqvF,GAAG8nW,WAAW1yb,EAAE0yb,YAAY1yb,EAAEqkM,YAAYrkM,EAAE0yb,YAAY,KAAKn3b,EAAEm3b,YAAY1yb,EAAEsmG,YAAY/qG,EAAEm3b,cAArZ,qBAAqBC,OAAOA,MAAMC,wBAAwB,SAASr3b,EAAEsC,EAAE0Y,EAAE3iB,GAAG++b,MAAMC,yBAAwB,WAAW,OAAO5yb,GAAEzE,EAAEsC,OAAUmC,IACtK,SAAS+qF,GAAG/qF,EAAEzE,GAAG,GAAGA,EAAE,CAAC,IAAIsC,EAAEmC,EAAE0yb,WAAW,GAAG70b,GAAGA,IAAImC,EAAE6yb,WAAW,IAAIh1b,EAAEwmV,SAAwB,YAAdxmV,EAAEi1b,UAAUv3b,GAAUyE,EAAEymG,YAAYlrG,EACrH,IAAI0vF,GAAG,CAAC8nW,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGp4Q,SAAQ,EAAGq4Q,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGx/S,YAAW,EAAGgtS,SAAQ,EAAG5ra,OAAM,EAAGq+a,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGz0O,MAAK,EAAGirG,aAAY,EAC1fypI,cAAa,EAAGC,aAAY,EAAGh/Q,iBAAgB,EAAGi/Q,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAG7/b,aAAY,GAAI21D,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASogC,GAAGlrF,EAAEzE,EAAEsC,GAAG,OAAO,MAAMtC,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGsC,GAAG,kBAAkBtC,GAAG,IAAIA,GAAG0vF,GAAG13F,eAAeyM,IAAIirF,GAAGjrF,IAAI,GAAGzE,GAAG+J,OAAO/J,EAAE,KAC9Z,SAAS4vF,GAAGnrF,EAAEzE,GAAa,IAAI,IAAIsC,KAAlBmC,EAAEA,EAAEzN,MAAmBgJ,EAAE,GAAGA,EAAEhI,eAAesK,GAAG,CAAC,IAAI0Y,EAAE,IAAI1Y,EAAEhK,QAAQ,MAAMD,EAAEs3F,GAAGrtF,EAAEtC,EAAEsC,GAAG0Y,GAAG,UAAU1Y,IAAIA,EAAE,YAAY0Y,EAAEvW,EAAE+3U,YAAYl6U,EAAEjK,GAAGoM,EAAEnC,GAAGjK,GADTf,OAAOsE,KAAK8zF,IAAIlkF,SAAQ,SAAS/G,GAAG8qD,GAAG/jD,SAAQ,SAASxL,GAAGA,EAAEA,EAAEyE,EAAE0J,OAAO,GAAG6zD,cAAcv9D,EAAE64B,UAAU,GAAGoyD,GAAG1vF,GAAG0vF,GAAGjrF,SACrG,IAAI05F,GAAGl+F,EAAE,CAACy5b,UAAS,GAAI,CAACzjR,MAAK,EAAGvmJ,MAAK,EAAG6/F,IAAG,EAAGoqU,KAAI,EAAGC,OAAM,EAAG38H,IAAG,EAAG48H,KAAI,EAAGltb,OAAM,EAAGmtb,QAAO,EAAGzvP,MAAK,EAAGC,MAAK,EAAG9iF,OAAM,EAAG9rG,QAAO,EAAGqpN,OAAM,EAAGg1N,KAAI,IAClT,SAASjqW,GAAGrrF,EAAEzE,GAAG,GAAGA,EAAE,CAAC,GAAGm+F,GAAG15F,KAAK,MAAMzE,EAAEhG,UAAU,MAAMgG,EAAE4pM,yBAAyB,MAAMpsM,MAAMmH,EAAE,IAAIF,IAAI,GAAG,MAAMzE,EAAE4pM,wBAAwB,CAAC,GAAG,MAAM5pM,EAAEhG,SAAS,MAAMwD,MAAMmH,EAAE,KAAK,GAAK,kBAAkB3E,EAAE4pM,2BAAyB,WAAW5pM,EAAE4pM,yBAAyB,MAAMpsM,MAAMmH,EAAE,KAAM,GAAG,MAAM3E,EAAEhJ,OAAO,kBAAkBgJ,EAAEhJ,MAAM,MAAMwG,MAAMmH,EAAE,MAC5V,SAASorF,GAAGtrF,EAAEzE,GAAG,IAAI,IAAIyE,EAAEnM,QAAQ,KAAK,MAAM,kBAAkB0H,EAAEuwH,GAAG,OAAO9rH,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASotF,GAAGptF,GAA6F,OAA1FA,EAAEA,EAAEa,QAAQb,EAAE6oF,YAAY/8E,QAASypb,0BAA0Bv1b,EAAEA,EAAEu1b,yBAAgC,IAAIv1b,EAAEqkV,SAASrkV,EAAE23L,WAAW33L,EAAE,IAAIwrF,GAAG,KAAKC,GAAG,KAAKL,GAAG,KACxb,SAASO,GAAG3rF,GAAG,GAAGA,EAAE4rF,GAAG5rF,GAAG,CAAC,GAAG,oBAAoBwrF,GAAG,MAAMzyF,MAAMmH,EAAE,MAAM,IAAI3E,EAAEyE,EAAEw1b,UAAUj6b,IAAIA,EAAEmwF,GAAGnwF,GAAGiwF,GAAGxrF,EAAEw1b,UAAUx1b,EAAE5F,KAAKmB,KAAK,SAASswF,GAAG7rF,GAAGyrF,GAAGL,GAAGA,GAAG9tF,KAAK0C,GAAGorF,GAAG,CAACprF,GAAGyrF,GAAGzrF,EAAE,SAAS8rF,KAAK,GAAGL,GAAG,CAAC,IAAIzrF,EAAEyrF,GAAGlwF,EAAE6vF,GAAoB,GAAjBA,GAAGK,GAAG,KAAKE,GAAG3rF,GAAMzE,EAAE,IAAIyE,EAAE,EAAEA,EAAEzE,EAAEnI,OAAO4M,IAAI2rF,GAAGpwF,EAAEyE,KAAK,SAAS+rF,GAAG/rF,EAAEzE,GAAG,OAAOyE,EAAEzE,GAAG,SAASywF,GAAGhsF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,OAAOoM,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,SAASq4F,MAAM,IAAIE,GAAGJ,GAAGK,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOb,IAAI,OAAOL,KAAGa,KAAKH,MAE9Z,SAASwF,GAAGtxF,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAEw1b,UAAU,GAAG,OAAO33b,EAAE,OAAO,KAAK,IAAI0Y,EAAEm1E,GAAG7tF,GAAG,GAAG,OAAO0Y,EAAE,OAAO,KAAK1Y,EAAE0Y,EAAEhb,GAAGyE,EAAE,OAAOzE,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBgb,GAAGA,EAAEs8F,YAAqBt8F,IAAI,YAAbvW,EAAEA,EAAE5F,OAAuB,UAAU4F,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGuW,EAAE,MAAMvW,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGnC,GAAG,oBACleA,EAAE,MAAM9E,MAAMmH,EAAE,IAAI3E,SAASsC,IAAI,OAAOA,EAAE,IAAI4uF,IAAG,EAAG,GAAGnH,EAAG,IAAI,IAAIkM,GAAG,GAAG3+F,OAAO8M,eAAe6xF,GAAG,UAAU,CAACvkE,IAAI,WAAWw/D,IAAG,KAAM3gF,OAAO+7E,iBAAiB,OAAO2J,GAAGA,IAAI1lF,OAAOg8E,oBAAoB,OAAO0J,GAAGA,IAAI,MAAMxxF,IAAGysF,IAAG,EAAG,SAASE,GAAG3sF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,EAAE5zB,EAAEisB,EAAExgC,GAAG,IAAIygC,EAAEntC,MAAM/N,UAAU0D,MAAMxD,KAAKL,UAAU,GAAG,IAAIoI,EAAE9H,MAAMoK,EAAE2wC,GAAG,MAAMt7C,GAAGQ,KAAK8hO,QAAQtiO,IAAI,IAAI05F,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGnH,GAAG,KAAKuH,GAAG,CAACsoI,QAAQ,SAASx1N,GAAG4sF,IAAG,EAAGC,GAAG7sF,IAAI,SAASstF,GAAGttF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,EAAE5zB,EAAEisB,EAAExgC,GAAG6+E,IAAG,EAAGC,GAAG,KAAKF,GAAGl5F,MAAMy5F,GAAG/5F,WACvV,SAASq6F,GAAGxtF,GAAG,IAAIzE,EAAEyE,EAAEnC,EAAEmC,EAAE,GAAGA,EAAE81P,UAAU,KAAKv6P,EAAEgrV,QAAQhrV,EAAEA,EAAEgrV,WAAW,CAACvmV,EAAEzE,EAAE,GAAO,KAAa,MAAjBA,EAAEyE,GAAS44D,SAAc/6D,EAAEtC,EAAEgrV,QAAQvmV,EAAEzE,EAAEgrV,aAAavmV,GAAG,OAAO,IAAIzE,EAAElH,IAAIwJ,EAAE,KAAK,SAAS4vF,GAAGztF,GAAG,GAAG,KAAKA,EAAE3L,IAAI,CAAC,IAAIkH,EAAEyE,EAAEy1b,cAAsE,GAAxD,OAAOl6b,IAAkB,QAAdyE,EAAEA,EAAE81P,aAAqBv6P,EAAEyE,EAAEy1b,gBAAmB,OAAOl6b,EAAE,OAAOA,EAAEm6b,WAAW,OAAO,KAAK,SAAS9nW,GAAG5tF,GAAG,GAAGwtF,GAAGxtF,KAAKA,EAAE,MAAMjH,MAAMmH,EAAE,MAEpS,SAASwtF,GAAG1tF,GAAW,GAARA,EADtN,SAAYA,GAAG,IAAIzE,EAAEyE,EAAE81P,UAAU,IAAIv6P,EAAE,CAAS,GAAG,QAAXA,EAAEiyF,GAAGxtF,IAAe,MAAMjH,MAAMmH,EAAE,MAAM,OAAO3E,IAAIyE,EAAE,KAAKA,EAAE,IAAI,IAAInC,EAAEmC,EAAEuW,EAAEhb,IAAI,CAAC,IAAI3H,EAAEiK,EAAE0oV,OAAO,GAAG,OAAO3yV,EAAE,MAAM,IAAIsiD,EAAEtiD,EAAEkiQ,UAAU,GAAG,OAAO5/M,EAAE,CAAY,GAAG,QAAd3/B,EAAE3iB,EAAE2yV,QAAmB,CAAC1oV,EAAE0Y,EAAE,SAAS,MAAM,GAAG3iB,EAAEW,QAAQ2hD,EAAE3hD,MAAM,CAAC,IAAI2hD,EAAEtiD,EAAEW,MAAM2hD,GAAG,CAAC,GAAGA,IAAIr4C,EAAE,OAAO+vF,GAAGh6F,GAAGoM,EAAE,GAAGk2C,IAAI3/B,EAAE,OAAOq3E,GAAGh6F,GAAG2H,EAAE26C,EAAEA,EAAEy/Y,QAAQ,MAAM58b,MAAMmH,EAAE,MAAO,GAAGrC,EAAE0oV,SAAShwU,EAAEgwU,OAAO1oV,EAAEjK,EAAE2iB,EAAE2/B,MAAM,CAAC,IAAI,IAAI5zB,GAAE,EAAGisB,EAAE36C,EAAEW,MAAMg6C,GAAG,CAAC,GAAGA,IAAI1wC,EAAE,CAACykB,GAAE,EAAGzkB,EAAEjK,EAAE2iB,EAAE2/B,EAAE,MAAM,GAAG3H,IAAIh4B,EAAE,CAAC+L,GAAE,EAAG/L,EAAE3iB,EAAEiK,EAAEq4C,EAAE,MAAM3H,EAAEA,EAAEonZ,QAAQ,IAAIrza,EAAE,CAAC,IAAIisB,EAAE2H,EAAE3hD,MAAMg6C,GAAG,CAAC,GAAGA,IAC5f1wC,EAAE,CAACykB,GAAE,EAAGzkB,EAAEq4C,EAAE3/B,EAAE3iB,EAAE,MAAM,GAAG26C,IAAIh4B,EAAE,CAAC+L,GAAE,EAAG/L,EAAE2/B,EAAEr4C,EAAEjK,EAAE,MAAM26C,EAAEA,EAAEonZ,QAAQ,IAAIrza,EAAE,MAAMvpB,MAAMmH,EAAE,OAAQ,GAAGrC,EAAEi4P,YAAYv/O,EAAE,MAAMxd,MAAMmH,EAAE,MAAO,GAAG,IAAIrC,EAAExJ,IAAI,MAAM0E,MAAMmH,EAAE,MAAM,OAAOrC,EAAE23b,UAAUliY,UAAUz1D,EAAEmC,EAAEzE,EAAmBsyF,CAAG7tF,IAAOA,EAAE,OAAO,KAAK,IAAI,IAAIzE,EAAEyE,IAAI,CAAC,GAAG,IAAIzE,EAAElH,KAAK,IAAIkH,EAAElH,IAAI,OAAOkH,EAAE,GAAGA,EAAEhH,MAAMgH,EAAEhH,MAAMgyV,OAAOhrV,EAAEA,EAAEA,EAAEhH,UAAU,CAAC,GAAGgH,IAAIyE,EAAE,MAAM,MAAMzE,EAAEo6b,SAAS,CAAC,IAAIp6b,EAAEgrV,QAAQhrV,EAAEgrV,SAASvmV,EAAE,OAAO,KAAKzE,EAAEA,EAAEgrV,OAAOhrV,EAAEo6b,QAAQpvG,OAAOhrV,EAAEgrV,OAAOhrV,EAAEA,EAAEo6b,SAAS,OAAO,KAC5c,SAAS7nW,GAAG9tF,EAAEzE,GAAG,IAAI,IAAIsC,EAAEmC,EAAE81P,UAAU,OAAOv6P,GAAG,CAAC,GAAGA,IAAIyE,GAAGzE,IAAIsC,EAAE,OAAM,EAAGtC,EAAEA,EAAEgrV,OAAO,OAAM,EAAG,IAAIv4P,GAAGG,GAAGE,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAItkE,IAAI6mE,GAAG,IAAI7mE,IAAIklE,GAAG,GAAGT,GAAG,6PAA6Pj+E,MAAM,KACrb,SAASu+E,GAAGrvF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,MAAM,CAACgic,UAAU51b,EAAE61b,aAAat6b,EAAEu6b,iBAAmB,GAAFj4b,EAAKk4b,YAAYnic,EAAEoic,iBAAiB,CAACz/a,IAAI,SAAS44E,GAAGnvF,EAAEzE,GAAG,OAAOyE,GAAG,IAAK,UAAU,IAAK,WAAWyuF,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGxhD,OAAO7xC,EAAEmtF,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqByI,GAAG/jD,OAAO7xC,EAAEmtF,YAC3Z,SAASuG,GAAGjvF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAG,OAAG,OAAOl2C,GAAGA,EAAE+1b,cAAc7/Y,GAASl2C,EAAEqvF,GAAG9zF,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAG,OAAO36C,IAAY,QAARA,EAAEqwF,GAAGrwF,KAAa4yF,GAAG5yF,IAAIyE,IAAEA,EAAE81b,kBAAkBv/a,EAAEhb,EAAEyE,EAAEg2b,iBAAiB,OAAOpic,IAAI,IAAI2H,EAAE1H,QAAQD,IAAI2H,EAAE+B,KAAK1J,GAAUoM,GAE9M,SAASkvF,GAAGlvF,GAAG,IAAIzE,EAAE6zF,GAAGpvF,EAAEa,QAAQ,GAAG,OAAOtF,EAAE,CAAC,IAAIsC,EAAE2vF,GAAGjyF,GAAG,GAAG,OAAOsC,EAAE,GAAW,MAARtC,EAAEsC,EAAExJ,MAAY,GAAW,QAARkH,EAAEkyF,GAAG5vF,IAAmH,OAAtGmC,EAAE41b,UAAUr6b,OAAE+yF,GAAGtuF,EAAEi2b,cAAa,WAAWjxa,EAAEkxa,yBAAyBl2b,EAAEu/D,UAAS,WAAW8uB,GAAGxwF,cAAoB,GAAG,IAAItC,GAAGsC,EAAE23b,UAAUW,QAA8D,YAArDn2b,EAAE41b,UAAU,IAAI/3b,EAAExJ,IAAIwJ,EAAE23b,UAAUY,cAAc,MAAap2b,EAAE41b,UAAU,KAC1U,SAAStmW,GAAGtvF,GAAG,GAAG,OAAOA,EAAE41b,UAAU,OAAM,EAAG,IAAI,IAAIr6b,EAAEyE,EAAEg2b,iBAAiB,EAAEz6b,EAAEnI,QAAQ,CAAC,IAAIyK,EAAE8xF,GAAG3vF,EAAE61b,aAAa71b,EAAE81b,iBAAiBv6b,EAAE,GAAGyE,EAAE+1b,aAAa,GAAG,OAAOl4b,EAAE,OAAe,QAARtC,EAAEqwF,GAAG/tF,KAAaswF,GAAG5yF,GAAGyE,EAAE41b,UAAU/3b,GAAE,EAAGtC,EAAE2U,QAAQ,OAAM,EAAG,SAAS0/E,GAAG5vF,EAAEzE,EAAEsC,GAAGyxF,GAAGtvF,IAAInC,EAAEuvC,OAAO7xC,GACzQ,SAASs0F,KAAK,IAAItB,IAAG,EAAG,EAAEC,GAAGp7F,QAAQ,CAAC,IAAI4M,EAAEwuF,GAAG,GAAG,GAAG,OAAOxuF,EAAE41b,UAAU,CAAmB,QAAlB51b,EAAE4rF,GAAG5rF,EAAE41b,aAAqB5nW,GAAGhuF,GAAG,MAAM,IAAI,IAAIzE,EAAEyE,EAAEg2b,iBAAiB,EAAEz6b,EAAEnI,QAAQ,CAAC,IAAIyK,EAAE8xF,GAAG3vF,EAAE61b,aAAa71b,EAAE81b,iBAAiBv6b,EAAE,GAAGyE,EAAE+1b,aAAa,GAAG,OAAOl4b,EAAE,CAACmC,EAAE41b,UAAU/3b,EAAE,MAAMtC,EAAE2U,QAAQ,OAAOlQ,EAAE41b,WAAWpnW,GAAGt+E,QAAQ,OAAOu+E,IAAIa,GAAGb,MAAMA,GAAG,MAAM,OAAOC,IAAIY,GAAGZ,MAAMA,GAAG,MAAM,OAAOC,IAAIW,GAAGX,MAAMA,GAAG,MAAMC,GAAG7nF,QAAQ6oF,IAAIuB,GAAGpqF,QAAQ6oF,IACrZ,SAASE,GAAG9vF,EAAEzE,GAAGyE,EAAE41b,YAAYr6b,IAAIyE,EAAE41b,UAAU,KAAKrnW,KAAKA,IAAG,EAAGvpE,EAAEqxa,0BAA0Brxa,EAAEsxa,wBAAwBzmW,MACrH,SAASE,GAAG/vF,GAAG,SAASzE,EAAEA,GAAG,OAAOu0F,GAAGv0F,EAAEyE,GAAG,GAAG,EAAEwuF,GAAGp7F,OAAO,CAAC08F,GAAGtB,GAAG,GAAGxuF,GAAG,IAAI,IAAInC,EAAE,EAAEA,EAAE2wF,GAAGp7F,OAAOyK,IAAI,CAAC,IAAI0Y,EAAEi4E,GAAG3wF,GAAG0Y,EAAEq/a,YAAY51b,IAAIuW,EAAEq/a,UAAU,OAA+F,IAAxF,OAAOnnW,IAAIqB,GAAGrB,GAAGzuF,GAAG,OAAO0uF,IAAIoB,GAAGpB,GAAG1uF,GAAG,OAAO2uF,IAAImB,GAAGnB,GAAG3uF,GAAG4uF,GAAG7nF,QAAQxL,GAAG41F,GAAGpqF,QAAQxL,GAAOsC,EAAE,EAAEA,EAAE2xF,GAAGp8F,OAAOyK,KAAI0Y,EAAEi5E,GAAG3xF,IAAK+3b,YAAY51b,IAAIuW,EAAEq/a,UAAU,MAAM,KAAK,EAAEpmW,GAAGp8F,QAAiB,QAARyK,EAAE2xF,GAAG,IAAYomW,WAAY1mW,GAAGrxF,GAAG,OAAOA,EAAE+3b,WAAWpmW,GAAGt/E,QAC/X,SAASogF,GAAGtwF,EAAEzE,GAAG,IAAIsC,EAAE,GAAkF,OAA/EA,EAAEmC,EAAEpF,eAAeW,EAAEX,cAAciD,EAAE,SAASmC,GAAG,SAASzE,EAAEsC,EAAE,MAAMmC,GAAG,MAAMzE,EAASsC,EAAE,IAAI4yF,GAAG,CAAC8lW,aAAajmW,GAAG,YAAY,gBAAgBkmW,mBAAmBlmW,GAAG,YAAY,sBAAsBmmW,eAAenmW,GAAG,YAAY,kBAAkBomW,cAAcpmW,GAAG,aAAa,kBAAkBI,GAAG,GAAGC,GAAG,GACnF,SAASC,GAAG5wF,GAAG,GAAG0wF,GAAG1wF,GAAG,OAAO0wF,GAAG1wF,GAAG,IAAIywF,GAAGzwF,GAAG,OAAOA,EAAE,IAAYnC,EAARtC,EAAEk1F,GAAGzwF,GAAK,IAAInC,KAAKtC,EAAE,GAAGA,EAAEhI,eAAesK,IAAIA,KAAK8yF,GAAG,OAAOD,GAAG1wF,GAAGzE,EAAEsC,GAAG,OAAOmC,EAA9XslF,IAAKqL,GAAG37B,SAAS5gE,cAAc,OAAO7B,MAAM,mBAAmBuZ,gBAAgB2kF,GAAG8lW,aAAaI,iBAAiBlmW,GAAG+lW,mBAAmBG,iBAAiBlmW,GAAGgmW,eAAeE,WAAW,oBAAoB7qb,eAAe2kF,GAAGimW,cAAcr0T,YACxO,IAAIxxC,GAAGD,GAAG,gBAAgBI,GAAGJ,GAAG,sBAAsBE,GAAGF,GAAG,kBAAkBK,GAAGL,GAAG,iBAAiBa,GAAG,IAAInnE,IAAIooE,GAAG,IAAIpoE,IAAIonE,GAAG,CAAC,QAAQ,QAAQb,GAAG,eAAeG,GAAG,qBAAqBF,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAC/e,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaG,GAAG,gBAAgB,UAAU,WAAW,SAASU,GAAG3xF,EAAEzE,GAAG,IAAI,IAAIsC,EAAE,EAAEA,EAAEmC,EAAE5M,OAAOyK,GAAG,EAAE,CAAC,IAAI0Y,EAAEvW,EAAEnC,GAAGjK,EAAEoM,EAAEnC,EAAE,GAAGjK,EAAE,MAAMA,EAAE,GAAG2pE,cAAc3pE,EAAEoD,MAAM,IAAI07F,GAAG1tF,IAAIuR,EAAEhb,GAAGk2F,GAAGzsF,IAAIuR,EAAE3iB,GAAGkyF,EAAGlyF,EAAE,CAAC2iB,MAA2Bq7E,EAAf5sE,EAAE4xa,gBAAkB,IAAIrqW,GAAE,EAC/X,SAASsF,GAAG7xF,GAAG,GAAG,KAAK,EAAEA,GAAG,OAAOusF,GAAE,GAAG,EAAE,GAAG,KAAK,EAAEvsF,GAAG,OAAOusF,GAAE,GAAG,EAAE,GAAG,KAAK,EAAEvsF,GAAG,OAAOusF,GAAE,GAAG,EAAE,IAAIhxF,EAAE,GAAGyE,EAAE,OAAG,IAAIzE,GAASgxF,GAAE,GAAGhxF,GAAK,KAAO,GAAFyE,IAAausF,GAAE,GAAG,IAAc,KAAXhxF,EAAE,IAAIyE,IAAkBusF,GAAE,GAAGhxF,GAAK,KAAO,IAAFyE,IAAcusF,GAAE,EAAE,KAAgB,KAAZhxF,EAAE,KAAKyE,IAAkBusF,GAAE,EAAEhxF,GAAK,KAAO,KAAFyE,IAAeusF,GAAE,EAAE,MAAoB,KAAfhxF,EAAE,QAAQyE,IAAkBusF,GAAE,EAAEhxF,GAAkB,KAAhBA,EAAE,SAASyE,IAAkBusF,GAAE,EAAEhxF,GAAO,SAAFyE,GAAkBusF,GAAE,EAAE,UAAY,KAAO,UAAFvsF,IAAoBusF,GAAE,EAAE,WAA2B,KAAjBhxF,EAAE,UAAUyE,IAAkBusF,GAAE,EAAEhxF,GAAK,KAAK,WAAWyE,IAAUusF,GAAE,EAAE,aACjfA,GAAE,EAASvsF,GACX,SAASiyF,GAAGjyF,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAE62b,aAAa,GAAG,IAAIh5b,EAAE,OAAO0uF,GAAE,EAAE,IAAIh2E,EAAE,EAAE3iB,EAAE,EAAEsiD,EAAEl2C,EAAE82b,aAAax0a,EAAEtiB,EAAE+2b,eAAexoZ,EAAEvuC,EAAEg3b,YAAY,GAAG,IAAI9gZ,EAAE3/B,EAAE2/B,EAAEtiD,EAAE24F,GAAE,QAAQ,GAAiB,KAAdr2C,EAAI,UAAFr4C,GAAkB,CAAC,IAAIkQ,EAAEmoC,GAAG5zB,EAAE,IAAIvU,GAAGwI,EAAEs7E,GAAG9jF,GAAGna,EAAE24F,IAAS,KAALh+C,GAAG2H,KAAU3/B,EAAEs7E,GAAGtjD,GAAG36C,EAAE24F,SAAgB,KAAPr2C,EAAEr4C,GAAGykB,IAAS/L,EAAEs7E,GAAG37C,GAAGtiD,EAAE24F,IAAG,IAAIh+C,IAAIh4B,EAAEs7E,GAAGtjD,GAAG36C,EAAE24F,IAAG,GAAG,IAAIh2E,EAAE,OAAO,EAAqC,GAAxBA,EAAE1Y,IAAI,GAAjB0Y,EAAE,GAAG+7E,GAAG/7E,IAAa,EAAE,GAAGA,IAAI,GAAG,EAAK,IAAIhb,GAAGA,IAAIgb,GAAG,KAAKhb,EAAE+mB,GAAG,CAAO,GAANuvE,GAAGt2F,GAAM3H,GAAG24F,GAAE,OAAOhxF,EAAEgxF,GAAE34F,EAAqB,GAAG,KAAtB2H,EAAEyE,EAAEi3b,gBAAwB,IAAIj3b,EAAEA,EAAEk3b,cAAc37b,GAAGgb,EAAE,EAAEhb,GAAc3H,EAAE,IAAbiK,EAAE,GAAGy0F,GAAG/2F,IAAUgb,GAAGvW,EAAEnC,GAAGtC,IAAI3H,EAAE,OAAO2iB,EAC1e,SAASg8E,GAAGvyF,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAE62b,cAAsC72b,EAAI,WAAFA,EAAa,WAAW,EAAE,SAASwyF,GAAGxyF,EAAEzE,GAAG,OAAOyE,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAmB,KAAZA,EAAEyyF,GAAG,IAAIl3F,IAASi3F,GAAG,GAAGj3F,GAAGyE,EAAE,KAAK,GAAG,OAAoB,KAAbA,EAAEyyF,GAAG,KAAKl3F,IAASi3F,GAAG,EAAEj3F,GAAGyE,EAAE,KAAK,EAAE,OAAqB,KAAdA,EAAEyyF,GAAG,MAAMl3F,MAA4B,KAAjByE,EAAEyyF,GAAG,SAASl3F,MAAWyE,EAAE,MAAMA,EAAE,KAAK,EAAE,OAA0B,KAAnBzE,EAAEk3F,GAAG,WAAWl3F,MAAWA,EAAE,WAAWA,EAAE,MAAMxC,MAAMmH,EAAE,IAAIF,IAAK,SAASyyF,GAAGzyF,GAAG,OAAOA,GAAGA,EAAE,SAASgyF,GAAGhyF,GAAG,IAAI,IAAIzE,EAAE,GAAGsC,EAAE,EAAE,GAAGA,EAAEA,IAAItC,EAAE+B,KAAK0C,GAAG,OAAOzE,EACrd,SAAS22F,GAAGlyF,EAAEzE,EAAEsC,GAAGmC,EAAE62b,cAAct7b,EAAE,IAAIgb,EAAEhb,EAAE,EAAEyE,EAAE+2b,gBAAgBxgb,EAAEvW,EAAEg3b,aAAazgb,GAAEvW,EAAEA,EAAEm3b,YAAW57b,EAAE,GAAG+2F,GAAG/2F,IAAQsC,EAAE,IAAIy0F,GAAGp0F,KAAK2nD,MAAM3nD,KAAK2nD,MAAiC,SAAY7lD,GAAG,OAAO,IAAIA,EAAE,GAAG,IAAIq3F,GAAGr3F,GAAGqyF,GAAG,GAAG,GAAvEgF,GAAGn5F,KAAK4T,IAAIugF,GAAGn0F,KAAK86U,IAAqD,IAAI76Q,GAAGn5C,EAAEoya,8BAA8BzkW,GAAG3tE,EAAEkxa,yBAAyBmB,IAAG,EAAG,SAASzkW,GAAG5yF,EAAEzE,EAAEsC,EAAE0Y,GAAG61E,IAAIH,KAAK,IAAIr4F,EAAEi/F,GAAG38C,EAAEk2C,GAAGA,IAAG,EAAG,IAAIJ,GAAGp4F,EAAEoM,EAAEzE,EAAEsC,EAAE0Y,GAAf,SAA2B61E,GAAGl2C,IAAIo2C,MAAM,SAAS/1F,GAAGyJ,EAAEzE,EAAEsC,EAAE0Y,GAAGo8E,GAAGx0B,GAAG00B,GAAGrN,KAAK,KAAKxlF,EAAEzE,EAAEsC,EAAE0Y,IACjb,SAASs8E,GAAG7yF,EAAEzE,EAAEsC,EAAE0Y,GAAU,IAAI3iB,EAAX,GAAGyjc,GAAU,IAAIzjc,EAAE,KAAO,EAAF2H,KAAO,EAAEizF,GAAGp7F,SAAS,EAAE27F,GAAGl7F,QAAQmM,GAAGA,EAAEqvF,GAAG,KAAKrvF,EAAEzE,EAAEsC,EAAE0Y,GAAGi4E,GAAGlxF,KAAK0C,OAAO,CAAC,IAAIk2C,EAAEy5C,GAAG3vF,EAAEzE,EAAEsC,EAAE0Y,GAAG,GAAG,OAAO2/B,EAAEtiD,GAAGu7F,GAAGnvF,EAAEuW,OAAO,CAAC,GAAG3iB,EAAE,CAAC,IAAI,EAAEm7F,GAAGl7F,QAAQmM,GAA+B,OAA3BA,EAAEqvF,GAAGn5C,EAAEl2C,EAAEzE,EAAEsC,EAAE0Y,QAAGi4E,GAAGlxF,KAAK0C,GAAU,GAfhO,SAAYA,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,OAAO2H,GAAG,IAAK,UAAU,OAAOkzF,GAAGQ,GAAGR,GAAGzuF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,IAAG,EAAG,IAAK,YAAY,OAAO86F,GAAGO,GAAGP,GAAG1uF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,IAAG,EAAG,IAAK,YAAY,OAAO+6F,GAAGM,GAAGN,GAAG3uF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,IAAG,EAAG,IAAK,cAAc,IAAIsiD,EAAEtiD,EAAE80F,UAAkD,OAAxCkG,GAAG5pF,IAAIkxC,EAAE+4C,GAAGL,GAAG3hE,IAAIipB,IAAI,KAAKl2C,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,KAAU,EAAG,IAAK,oBAAoB,OAAOsiD,EAAEtiD,EAAE80F,UAAUyI,GAAGnsF,IAAIkxC,EAAE+4C,GAAGkC,GAAGlkE,IAAIipB,IAAI,KAAKl2C,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,KAAI,EAAG,OAAM,EAe9H67F,CAAGv5C,EAAEl2C,EAAEzE,EAAEsC,EAAE0Y,GAAG,OAAO44E,GAAGnvF,EAAEuW,GAAG28E,GAAGlzF,EAAEzE,EAAEgb,EAAE,KAAK1Y,KAC9Q,SAAS8xF,GAAG3vF,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEw5F,GAAG72E,GAAW,GAAG,QAAX3iB,EAAEw7F,GAAGx7F,IAAe,CAAC,IAAIsiD,EAAEs3C,GAAG55F,GAAG,GAAG,OAAOsiD,EAAEtiD,EAAE,SAAS,CAAC,IAAI0uB,EAAE4zB,EAAE7hD,IAAI,GAAG,KAAKiuB,EAAE,CAAS,GAAG,QAAX1uB,EAAE65F,GAAGv3C,IAAe,OAAOtiD,EAAEA,EAAE,UAAU,GAAG,IAAI0uB,EAAE,CAAC,GAAG4zB,EAAEs/Y,UAAUW,QAAQ,OAAO,IAAIjgZ,EAAE7hD,IAAI6hD,EAAEs/Y,UAAUY,cAAc,KAAKxic,EAAE,UAAUsiD,IAAItiD,IAAIA,EAAE,OAAqB,OAAds/F,GAAGlzF,EAAEzE,EAAEgb,EAAE3iB,EAAEiK,GAAU,KAAK,IAAIs1F,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACzT,SAAS8D,KAAK,GAAG9D,GAAG,OAAOA,GAAG,IAAIrzF,EAAkBuW,EAAhBhb,EAAE63F,GAAGv1F,EAAEtC,EAAEnI,OAASQ,EAAE,UAAUu/F,GAAGA,GAAGt9F,MAAMs9F,GAAGsT,YAAYvwD,EAAEtiD,EAAER,OAAO,IAAI4M,EAAE,EAAEA,EAAEnC,GAAGtC,EAAEyE,KAAKpM,EAAEoM,GAAGA,KAAK,IAAIsiB,EAAEzkB,EAAEmC,EAAE,IAAIuW,EAAE,EAAEA,GAAG+L,GAAG/mB,EAAEsC,EAAE0Y,KAAK3iB,EAAEsiD,EAAE3/B,GAAGA,KAAK,OAAO88E,GAAGz/F,EAAEoD,MAAMgJ,EAAE,EAAEuW,EAAE,EAAEA,OAAE,GAAQ,SAAS+8E,GAAGtzF,GAAG,IAAIzE,EAAEyE,EAAEk+M,QAA+E,MAAvE,aAAal+M,EAAgB,KAAbA,EAAEA,EAAEw4R,WAAgB,KAAKj9R,IAAIyE,EAAE,IAAKA,EAAEzE,EAAE,KAAKyE,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EAAE,SAAS0zF,KAAK,OAAM,EAAG,SAAS97D,KAAK,OAAM,EACjY,SAASkB,GAAG94B,GAAG,SAASzE,EAAEA,EAAEgb,EAAE3iB,EAAEsiD,EAAE5zB,GAA6G,IAAI,IAAIzkB,KAAlHnK,KAAK4jc,WAAW/7b,EAAE7H,KAAK6jc,YAAY3jc,EAAEF,KAAK0G,KAAKmc,EAAE7iB,KAAKqic,YAAY7/Y,EAAExiD,KAAKmN,OAAOyhB,EAAE5uB,KAAK2gE,cAAc,KAAkBr0D,EAAEA,EAAEzM,eAAesK,KAAKtC,EAAEyE,EAAEnC,GAAGnK,KAAKmK,GAAGtC,EAAEA,EAAE26C,GAAGA,EAAEr4C,IAAgI,OAA5HnK,KAAK8jc,oBAAoB,MAAMthZ,EAAE6xC,iBAAiB7xC,EAAE6xC,kBAAiB,IAAK7xC,EAAEmzC,aAAaqK,GAAG97D,GAAGlkC,KAAKqlN,qBAAqBnhL,GAAUlkC,KAC1E,OAD+E8H,EAAED,EAAEjI,UAAU,CAAC81F,eAAe,WAAW11F,KAAKq0F,kBAAiB,EAAG,IAAI/nF,EAAEtM,KAAKqic,YAAY/1b,IAAIA,EAAEopF,eAAeppF,EAAEopF,iBAAiB,mBAAmBppF,EAAEqpF,cAC7erpF,EAAEqpF,aAAY,GAAI31F,KAAK8jc,mBAAmB9jW,KAAKopH,gBAAgB,WAAW,IAAI98M,EAAEtM,KAAKqic,YAAY/1b,IAAIA,EAAE88M,gBAAgB98M,EAAE88M,kBAAkB,mBAAmB98M,EAAEg5M,eAAeh5M,EAAEg5M,cAAa,GAAItlN,KAAKqlN,qBAAqBrlH,KAAKmpH,QAAQ,aAAa46O,aAAa/jW,KAAYn4F,EAChR,IAAoL65F,GAAGtiE,GAAGC,GAAtLmD,GAAG,CAACwha,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEhnB,UAAU,SAAS5wa,GAAG,OAAOA,EAAE4wa,WAAW34Z,KAAK+zB,OAAO+7C,iBAAiB,EAAE8vW,UAAU,GAAGxjW,GAAGv7D,GAAG5C,IAAIk+D,GAAG54F,EAAE,GAAG06B,GAAG,CAAC2pO,KAAK,EAAEtrM,OAAO,IAAI4gC,GAAGr8D,GAAGs7D,IAAauB,GAAGn6F,EAAE,GAAG44F,GAAG,CAACjM,QAAQ,EAAED,QAAQ,EAAEG,QAAQ,EAAED,QAAQ,EAAEa,MAAM,EAAEC,MAAM,EAAET,QAAQ,EAAEF,SAAS,EAAEC,OAAO,EAAEF,QAAQ,EAAEwvW,iBAAiBxiW,GAAGrN,OAAO,EAAE8vW,QAAQ,EAAE/vW,cAAc,SAAShoF,GAAG,YAAO,IAASA,EAAEgoF,cAAchoF,EAAE+oF,cAAc/oF,EAAE6oF,WAAW7oF,EAAEgpF,UAAUhpF,EAAE+oF,YAAY/oF,EAAEgoF,eAAegwW,UAAU,SAASh4b,GAAG,MAAG,cAC3eA,EAASA,EAAEg4b,WAAUh4b,IAAI+yB,KAAKA,IAAI,cAAc/yB,EAAE5F,MAAMg7F,GAAGp1F,EAAEmoF,QAAQp1D,GAAGo1D,QAAQr1D,GAAG9yB,EAAEkoF,QAAQn1D,GAAGm1D,SAASp1D,GAAGsiE,GAAG,EAAEriE,GAAG/yB,GAAUo1F,KAAI6iW,UAAU,SAASj4b,GAAG,MAAM,cAAcA,EAAEA,EAAEi4b,UAAUnla,MAAMwlE,GAAGx/D,GAAG68D,IAAiCH,GAAG18D,GAA7Bt9B,EAAE,GAAGm6F,GAAG,CAACujH,aAAa,KAA4CpjH,GAAGh9D,GAA9Bt9B,EAAE,GAAG44F,GAAG,CAACpM,cAAc,KAA0E+N,GAAGj9D,GAA5Dt9B,EAAE,GAAG06B,GAAG,CAACgia,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAcniW,GAAGz6F,EAAE,GAAG06B,GAAG,CAACmia,cAAc,SAASr4b,GAAG,MAAM,kBAAkBA,EAAEA,EAAEq4b,cAAcvsb,OAAOusb,iBAAiB7hW,GAAG19D,GAAGm9D,IAAyBW,GAAG99D,GAArBt9B,EAAE,GAAG06B,GAAG,CAACzhC,KAAK,KAAcoiG,GAAG,CAACyhW,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgB/hW,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQF,GAAG,CAACkiW,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAAStiW,GAAG/2F,GAAG,IAAIzE,EAAE7H,KAAKqic,YAAY,OAAOx6b,EAAEu8b,iBAAiBv8b,EAAEu8b,iBAAiB93b,MAAIA,EAAEg3F,GAAGh3F,OAAMzE,EAAEyE,GAAM,SAASs1F,KAAK,OAAOyB,GAC9R,IAAID,GAAGt7F,EAAE,GAAG44F,GAAG,CAAC9/F,IAAI,SAAS0L,GAAG,GAAGA,EAAE1L,IAAI,CAAC,IAAIiH,EAAEs7F,GAAG72F,EAAE1L,MAAM0L,EAAE1L,IAAI,GAAG,iBAAiBiH,EAAE,OAAOA,EAAE,MAAM,aAAayE,EAAE5F,KAAc,MAAR4F,EAAEszF,GAAGtzF,IAAU,QAAQ9D,OAAO4C,aAAakB,GAAI,YAAYA,EAAE5F,MAAM,UAAU4F,EAAE5F,KAAK88F,GAAGl3F,EAAEk+M,UAAU,eAAe,IAAIj5M,KAAK,EAAE2iB,SAAS,EAAE6gE,QAAQ,EAAEF,SAAS,EAAEC,OAAO,EAAEF,QAAQ,EAAE0rP,OAAO,EAAE58Q,OAAO,EAAE0gY,iBAAiBxiW,GAAGkjM,SAAS,SAASx4R,GAAG,MAAM,aAAaA,EAAE5F,KAAKk5F,GAAGtzF,GAAG,GAAGk+M,QAAQ,SAASl+M,GAAG,MAAM,YAAYA,EAAE5F,MAAM,UAAU4F,EAAE5F,KAAK4F,EAAEk+M,QAAQ,GAAGz9B,MAAM,SAASzgL,GAAG,MAAM,aAC7eA,EAAE5F,KAAKk5F,GAAGtzF,GAAG,YAAYA,EAAE5F,MAAM,UAAU4F,EAAE5F,KAAK4F,EAAEk+M,QAAQ,KAAKjnH,GAAGn+D,GAAGg+D,IAAiIU,GAAG1+D,GAA7Ht9B,EAAE,GAAGm6F,GAAG,CAACjN,UAAU,EAAErzF,MAAM,EAAED,OAAO,EAAEkkc,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE/wW,YAAY,EAAEgxW,UAAU,KAAmIxhW,GAAGr/D,GAArHt9B,EAAE,GAAG44F,GAAG,CAAC2iP,QAAQ,EAAE6iH,cAAc,EAAEhxW,eAAe,EAAEJ,OAAO,EAAEF,QAAQ,EAAEG,QAAQ,EAAEF,SAAS,EAAEuvW,iBAAiBxiW,MAA0EukW,GAAG/ga,GAA3Dt9B,EAAE,GAAG06B,GAAG,CAACw7Z,aAAa,EAAEyG,YAAY,EAAEC,cAAc,KAAc0B,GAAGt+b,EAAE,GAAGm6F,GAAG,CAACokW,OAAO,SAAS/5b,GAAG,MAAM,WAAWA,EAAEA,EAAE+5b,OAAO,gBAAgB/5b,GAAGA,EAAEg6b,YAAY,GAClfC,OAAO,SAASj6b,GAAG,MAAM,WAAWA,EAAEA,EAAEi6b,OAAO,gBAAgBj6b,GAAGA,EAAEk6b,YAAY,eAAel6b,GAAGA,EAAEm6b,WAAW,GAAGC,OAAO,EAAEC,UAAU,IAAIC,GAAGxha,GAAGgha,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI7qF,GAAGpqR,GAAI,qBAAqBx5E,OAAO8+G,GAAG,KAAKtlC,GAAI,iBAAiBtwB,WAAW41D,GAAG51D,SAASkyB,cAAc,IAAImoR,GAAG/pR,GAAI,cAAcx5E,SAAS8+G,GAAG4kP,GAAGlqR,KAAMoqR,IAAI9kP,IAAI,EAAEA,IAAI,IAAIA,IAAIq+F,GAAG/sN,OAAO4C,aAAa,IAAIywW,IAAG,EAC1W,SAASO,GAAG9vW,EAAEzE,GAAG,OAAOyE,GAAG,IAAK,QAAQ,OAAO,IAAIu6b,GAAG1mc,QAAQ0H,EAAE2iN,SAAS,IAAK,UAAU,OAAO,MAAM3iN,EAAE2iN,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASryF,GAAG7rH,GAAc,MAAM,kBAAjBA,EAAEA,EAAEu0D,SAAkC,SAASv0D,EAAEA,EAAEvL,KAAK,KAAK,IAAIi3D,IAAG,EAE9Q,IAAIikT,GAAG,CAACx9W,OAAM,EAAGw5C,MAAK,EAAG4uC,UAAS,EAAG,kBAAiB,EAAGowT,OAAM,EAAGxqU,OAAM,EAAGngC,QAAO,EAAGuyG,UAAS,EAAGniI,OAAM,EAAGwoB,QAAO,EAAG4ha,KAAI,EAAGzlW,MAAK,EAAG9b,MAAK,EAAGt8C,KAAI,EAAGkqC,MAAK,GAAI,SAASgpS,GAAG7vW,GAAG,IAAIzE,EAAEyE,GAAGA,EAAE8oF,UAAU9oF,EAAE8oF,SAASluF,cAAc,MAAM,UAAUW,IAAIo0W,GAAG3vW,EAAE5F,MAAM,aAAamB,EAAQ,SAAS2kK,GAAGlgK,EAAEzE,EAAEsC,EAAE0Y,GAAGs1E,GAAGt1E,GAAsB,GAAnBhb,EAAEgvN,GAAGhvN,EAAE,aAAgBnI,SAASyK,EAAE,IAAIw2F,GAAG,WAAW,SAAS,KAAKx2F,EAAE0Y,GAAGvW,EAAE1C,KAAK,CAAC8pB,MAAMvpB,EAAEq+B,UAAU3gC,KAAK,IAAIw0W,GAAG,KAAKsB,GAAG,KAAK,SAAS5lT,GAAGzrD,GAAGusH,GAAGvsH,EAAE,GAAG,SAAS2/W,GAAG3/W,GAAe,GAAGmpF,EAATmmR,GAAGtvW,IAAY,OAAOA,EACne,SAASuwW,GAAGvwW,EAAEzE,GAAG,GAAG,WAAWyE,EAAE,OAAOzE,EAAE,IAAIk0W,IAAG,EAAG,GAAGnqR,EAAG,CAAC,IAAIrsD,GAAG,GAAGqsD,EAAG,CAAC,IAAIw9E,GAAG,YAAY9tG,SAAS,IAAI8tG,GAAG,CAAC,IAAI2uM,GAAGz8S,SAAS5gE,cAAc,OAAOq9W,GAAGprQ,aAAa,UAAU,WAAWy8D,GAAG,oBAAoB2uM,GAAGgpF,QAAQxha,GAAG6pI,QAAQ7pI,IAAG,EAAGw2U,GAAGx2U,MAAM+7B,SAASkyB,cAAc,EAAElyB,SAASkyB,cAAc,SAASkpR,KAAKL,KAAKA,GAAGjlR,YAAY,mBAAmBqmR,IAAIE,GAAGtB,GAAG,MAAM,SAASoB,GAAGnxW,GAAG,GAAG,UAAUA,EAAE0xb,cAAc/xE,GAAGtO,IAAI,CAAC,IAAI91W,EAAE,GAAyB,GAAtB2kK,GAAG3kK,EAAE81W,GAAGrxW,EAAEotF,GAAGptF,IAAIA,EAAEyrD,GAAM2gC,GAAGpsF,EAAEzE,OAAO,CAAC6wF,IAAG,EAAG,IAAIL,GAAG/rF,EAAEzE,GAAT,QAAoB6wF,IAAG,EAAGE,QAC3e,SAASskR,GAAG5wW,EAAEzE,EAAEsC,GAAG,YAAYmC,GAAGowW,KAAUiB,GAAGxzW,GAARkyW,GAAGx0W,GAAUkvF,YAAY,mBAAmB0mR,KAAK,aAAanxW,GAAGowW,KAAK,SAASO,GAAG3wW,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAO2/W,GAAGtO,IAAI,SAASrB,GAAGhwW,EAAEzE,GAAG,GAAG,UAAUyE,EAAE,OAAO2/W,GAAGpkX,GAAG,SAAS21W,GAAGlxW,EAAEzE,GAAG,GAAG,UAAUyE,GAAG,WAAWA,EAAE,OAAO2/W,GAAGpkX,GAAmE,IAAIm2W,GAAG,oBAAoB7+W,OAAOi5H,GAAGj5H,OAAOi5H,GAA5G,SAAY9rH,EAAEzE,GAAG,OAAOyE,IAAIzE,IAAI,IAAIyE,GAAG,EAAEA,IAAI,EAAEzE,IAAIyE,IAAIA,GAAGzE,IAAIA,GAAoD4zW,GAAGt8W,OAAOS,UAAUC,eAC7a,SAASu+W,GAAG9xW,EAAEzE,GAAG,GAAGm2W,GAAG1xW,EAAEzE,GAAG,OAAM,EAAG,GAAG,kBAAkByE,GAAG,OAAOA,GAAG,kBAAkBzE,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIsC,EAAEhL,OAAOsE,KAAK6I,GAAGuW,EAAE1jB,OAAOsE,KAAKoE,GAAG,GAAGsC,EAAEzK,SAASmjB,EAAEnjB,OAAO,OAAM,EAAG,IAAImjB,EAAE,EAAEA,EAAE1Y,EAAEzK,OAAOmjB,IAAI,IAAI44V,GAAG37W,KAAK+H,EAAEsC,EAAE0Y,MAAMm7V,GAAG1xW,EAAEnC,EAAE0Y,IAAIhb,EAAEsC,EAAE0Y,KAAK,OAAM,EAAG,OAAM,EAAG,SAASs7V,GAAG7xW,GAAG,KAAKA,GAAGA,EAAE0yb,YAAY1yb,EAAEA,EAAE0yb,WAAW,OAAO1yb,EAClU,SAAS06b,GAAG16b,EAAEzE,GAAG,IAAwBgb,EAApB1Y,EAAEg0W,GAAG7xW,GAAO,IAAJA,EAAE,EAAYnC,GAAG,CAAC,GAAG,IAAIA,EAAEwmV,SAAS,CAA0B,GAAzB9tU,EAAEvW,EAAEnC,EAAE4oG,YAAYrzG,OAAU4M,GAAGzE,GAAGgb,GAAGhb,EAAE,MAAM,CAACpH,KAAK0J,EAAEnB,OAAOnB,EAAEyE,GAAGA,EAAEuW,EAAEvW,EAAE,CAAC,KAAKnC,GAAG,CAAC,GAAGA,EAAE88b,YAAY,CAAC98b,EAAEA,EAAE88b,YAAY,MAAM36b,EAAEnC,EAAEA,EAAE85L,WAAW95L,OAAE,EAAOA,EAAEg0W,GAAGh0W,IAAI,SAASmzW,GAAGhxW,EAAEzE,GAAG,SAAOyE,IAAGzE,KAAEyE,IAAIzE,KAAKyE,GAAG,IAAIA,EAAEqkV,YAAY9oV,GAAG,IAAIA,EAAE8oV,SAAS2sB,GAAGhxW,EAAEzE,EAAEo8L,YAAY,aAAa33L,EAAEA,EAAE08M,SAASnhN,KAAGyE,EAAE46b,4BAAwD,GAA7B56b,EAAE46b,wBAAwBr/b,MAClZ,SAASs1W,KAAK,IAAI,IAAI7wW,EAAE8L,OAAOvQ,EAAE+tF,IAAK/tF,aAAayE,EAAE66b,mBAAmB,CAAC,IAAI,IAAIh9b,EAAE,kBAAkBtC,EAAE23U,cAActrT,SAASC,KAAK,MAAMtR,GAAG1Y,GAAE,EAAG,IAAGA,EAAyB,MAAMtC,EAAE+tF,GAA/BtpF,EAAEzE,EAAE23U,eAAgCl+Q,UAAU,OAAOz5D,EAAE,SAASw1W,GAAG/wW,GAAG,IAAIzE,EAAEyE,GAAGA,EAAE8oF,UAAU9oF,EAAE8oF,SAASluF,cAAc,OAAOW,IAAI,UAAUA,IAAI,SAASyE,EAAE5F,MAAM,WAAW4F,EAAE5F,MAAM,QAAQ4F,EAAE5F,MAAM,QAAQ4F,EAAE5F,MAAM,aAAa4F,EAAE5F,OAAO,aAAamB,GAAG,SAASyE,EAAE86b,iBACxZ,IAAIxqF,GAAGhrR,GAAI,iBAAiBtwB,UAAU,IAAIA,SAASkyB,aAAaqqR,GAAG,KAAKlB,GAAG,KAAKI,GAAG,KAAKN,IAAG,EAC3F,SAASiB,GAAGpxW,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAE1Y,EAAEiO,SAASjO,EAAEA,EAAEm3D,SAAS,IAAIn3D,EAAEwmV,SAASxmV,EAAEA,EAAEipG,cAAcqpQ,IAAI,MAAMoB,IAAIA,KAAKjoR,EAAG/yE,KAAU,mBAALA,EAAEg7V,KAAyBR,GAAGx6V,GAAGA,EAAE,CAACzb,MAAMyb,EAAEwkb,eAAehgc,IAAIwb,EAAEykb,cAAuFzkb,EAAE,CAAC0kb,YAA3E1kb,GAAGA,EAAEuwF,eAAevwF,EAAEuwF,cAAcslV,aAAatgb,QAAQovb,gBAA+BD,WAAWE,aAAa5kb,EAAE4kb,aAAaviQ,UAAUriL,EAAEqiL,UAAUwiQ,YAAY7kb,EAAE6kb,aAAc3qF,IAAIqB,GAAGrB,GAAGl6V,KAAKk6V,GAAGl6V,EAAsB,GAApBA,EAAEg0M,GAAG8lJ,GAAG,aAAgBj9W,SAASmI,EAAE,IAAI84F,GAAG,WAAW,SAAS,KAAK94F,EAAEsC,GAAGmC,EAAE1C,KAAK,CAAC8pB,MAAM7rB,EAAE2gC,UAAU3lB,IAAIhb,EAAEsF,OAAO0wW,MACjf5/Q,GAAG,mjBAAmjB7gF,MAAM,KAC5jB,GAAG6gF,GAAG,oRAAoR7gF,MAAM,KAAK,GAAG6gF,GAAGD,GAAG,GAAG,IAAI,IAAI8+Q,GAAG,qFAAqF1/V,MAAM,KAAK0gW,GAAG,EAAEA,GAAGhB,GAAGp9W,OAAOo+W,KAAK9+Q,GAAG1tF,IAAIwrW,GAAGgB,IAAI,GAAGpsR,EAAG,eAAe,CAAC,WAAW,cACleA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBU,EAAG,WAAW,oEAAoEh1E,MAAM,MAAMg1E,EAAG,WAAW,uFAAuFh1E,MAAM,MAAMg1E,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2Dh1E,MAAM,MAC5fg1E,EAAG,qBAAqB,6DAA6Dh1E,MAAM,MAAMg1E,EAAG,sBAAsB,8DAA8Dh1E,MAAM,MAAM,IAAIihW,GAAG,sNAAsNjhW,MAAM,KAAK8gW,GAAG,IAAIvhR,IAAI,0CAA0Cv/E,MAAM,KAAKta,OAAOu7W,KACnf,SAAS8U,GAAG7mX,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEvW,EAAE5F,MAAM,gBAAgB4F,EAAEq0D,cAAcx2D,EA/CjE,SAAYmC,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,EAAE5zB,EAAEisB,EAAExgC,GAA4B,GAAzBu/E,GAAG75F,MAAMC,KAAKP,WAAcy5F,GAAG,CAAC,IAAGA,GAAgC,MAAM7zF,MAAMmH,EAAE,MAA1C,IAAIsuC,EAAEq+C,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGnH,GAAGn3C,IA+CjE++C,CAAGh3E,EAAEhb,OAAE,EAAOyE,GAAGA,EAAEq0D,cAAc,KACpG,SAASk4D,GAAGvsH,EAAEzE,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIsC,EAAE,EAAEA,EAAEmC,EAAE5M,OAAOyK,IAAI,CAAC,IAAI0Y,EAAEvW,EAAEnC,GAAGjK,EAAE2iB,EAAE6Q,MAAM7Q,EAAEA,EAAE2lB,UAAUl8B,EAAE,CAAC,IAAIk2C,OAAE,EAAO,GAAG36C,EAAE,IAAI,IAAI+mB,EAAE/L,EAAEnjB,OAAO,EAAE,GAAGkvB,EAAEA,IAAI,CAAC,IAAIisB,EAAEh4B,EAAE+L,GAAGvU,EAAEwgC,EAAEvL,SAASwL,EAAED,EAAE8lB,cAA2B,GAAb9lB,EAAEA,EAAEi7C,SAAYz7E,IAAImoC,GAAGtiD,EAAEmlN,uBAAuB,MAAM/4M,EAAE6mX,GAAGjzX,EAAE26C,EAAEC,GAAG0H,EAAEnoC,OAAO,IAAIuU,EAAE,EAAEA,EAAE/L,EAAEnjB,OAAOkvB,IAAI,CAAoD,GAA5CvU,GAAPwgC,EAAEh4B,EAAE+L,IAAO0gB,SAASwL,EAAED,EAAE8lB,cAAc9lB,EAAEA,EAAEi7C,SAAYz7E,IAAImoC,GAAGtiD,EAAEmlN,uBAAuB,MAAM/4M,EAAE6mX,GAAGjzX,EAAE26C,EAAEC,GAAG0H,EAAEnoC,IAAI,GAAG++E,GAAG,MAAM9sF,EAAE2lF,GAAGmH,IAAG,EAAGnH,GAAG,KAAK3lF,EAC1a,SAAS6uF,GAAE7uF,EAAEzE,GAAG,IAAIsC,EAAEozW,GAAG11W,GAAGgb,EAAEvW,EAAE,WAAWnC,EAAEgoC,IAAItvB,KAAKg0G,GAAGhvH,EAAEyE,EAAE,GAAE,GAAInC,EAAE8T,IAAI4E,IAAI,IAAI8kb,GAAG,kBAAkBn9b,KAAKmnF,SAAS9qF,SAAS,IAAIvD,MAAM,GAAG,SAASskc,GAAGt7b,GAAGA,EAAEq7b,MAAMr7b,EAAEq7b,KAAI,EAAGl2W,EAAGp+E,SAAQ,SAASxL,GAAGq2W,GAAG/rU,IAAItqC,IAAIggc,GAAGhgc,GAAE,EAAGyE,EAAE,MAAMu7b,GAAGhgc,GAAE,EAAGyE,EAAE,UACtO,SAASu7b,GAAGv7b,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAE,EAAET,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,EAAE+iD,EAAEr4C,EAA6D,GAA3D,oBAAoBmC,GAAG,IAAInC,EAAEwmV,WAAWnuS,EAAEr4C,EAAEipG,eAAkB,OAAOvwF,IAAIhb,GAAGq2W,GAAG/rU,IAAI7lC,GAAG,CAAC,GAAG,WAAWA,EAAE,OAAOpM,GAAG,EAAEsiD,EAAE3/B,EAAE,IAAI+L,EAAE2uV,GAAG/6T,GAAG3H,EAAEvuC,EAAE,MAAMzE,EAAE,UAAU,UAAU+mB,EAAEujB,IAAI0I,KAAKhzC,IAAI3H,GAAG,GAAG22H,GAAGr0E,EAAEl2C,EAAEpM,EAAE2H,GAAG+mB,EAAE3Q,IAAI48B,IAClS,SAASg8E,GAAGvqH,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAE8+F,GAAGzlE,IAAI1xB,GAAG,YAAO,IAAS3H,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAEg/F,GAAG,MAAM,KAAK,EAAEh/F,EAAE2C,GAAG,MAAM,QAAQ3C,EAAEi/F,GAAGh1F,EAAEjK,EAAE4xF,KAAK,KAAKjqF,EAAEsC,EAAEmC,GAAGpM,OAAE,GAAQ64F,IAAI,eAAelxF,GAAG,cAAcA,GAAG,UAAUA,IAAI3H,GAAE,GAAI2iB,OAAE,IAAS3iB,EAAEoM,EAAE6nF,iBAAiBtsF,EAAEsC,EAAE,CAAC6rF,SAAQ,EAAG64H,QAAQ3uN,IAAIoM,EAAE6nF,iBAAiBtsF,EAAEsC,GAAE,QAAI,IAASjK,EAAEoM,EAAE6nF,iBAAiBtsF,EAAEsC,EAAE,CAAC0kN,QAAQ3uN,IAAIoM,EAAE6nF,iBAAiBtsF,EAAEsC,GAAE,GACpW,SAASq1F,GAAGlzF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,IAAIsiD,EAAE3/B,EAAE,GAAG,KAAO,EAAFhb,IAAM,KAAO,EAAFA,IAAM,OAAOgb,EAAEvW,EAAE,OAAO,CAAC,GAAG,OAAOuW,EAAE,OAAO,IAAI+L,EAAE/L,EAAEliB,IAAI,GAAG,IAAIiuB,GAAG,IAAIA,EAAE,CAAC,IAAIisB,EAAEh4B,EAAEi/a,UAAUY,cAAc,GAAG7nZ,IAAI36C,GAAG,IAAI26C,EAAE81S,UAAU91S,EAAEopJ,aAAa/jM,EAAE,MAAM,GAAG,IAAI0uB,EAAE,IAAIA,EAAE/L,EAAEgwU,OAAO,OAAOjkU,GAAG,CAAC,IAAIvU,EAAEuU,EAAEjuB,IAAI,IAAG,IAAI0Z,GAAG,IAAIA,MAAKA,EAAEuU,EAAEkza,UAAUY,iBAAkBxic,GAAG,IAAIma,EAAEs2U,UAAUt2U,EAAE4pL,aAAa/jM,GAAE,OAAO0uB,EAAEA,EAAEikU,OAAO,KAAK,OAAOh4S,GAAG,CAAS,GAAG,QAAXjsB,EAAE8sE,GAAG7gD,IAAe,OAAe,GAAG,KAAXxgC,EAAEuU,EAAEjuB,MAAc,IAAI0Z,EAAE,CAACwI,EAAE2/B,EAAE5zB,EAAE,SAAStiB,EAAEuuC,EAAEA,EAAEopJ,YAAYphL,EAAEA,EAAEgwU,QAvD7c,SAAYvmV,EAAEzE,EAAEsC,GAAG,GAAGwuF,GAAG,OAAOrsF,EAAEzE,EAAEsC,GAAGwuF,IAAG,EAAG,IAAWF,GAAGnsF,EAAEzE,EAAEsC,GAAlB,QAA6BwuF,IAAG,EAAGC,MAuDoYwC,EAAG,WAAW,IAAIv4E,EAAE2/B,EAAEtiD,EAAEw5F,GAAGvvF,GAAGykB,EAAE,GACpftiB,EAAE,CAAC,IAAIuuC,EAAEkjD,GAAGxkE,IAAIjtB,GAAG,QAAG,IAASuuC,EAAE,CAAC,IAAIxgC,EAAEsmF,GAAGp0F,EAAED,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIszF,GAAGz1F,GAAG,MAAMmC,EAAE,IAAK,UAAU,IAAK,QAAQ+N,EAAEkpF,GAAG,MAAM,IAAK,UAAUh3F,EAAE,QAAQ8N,EAAE+nF,GAAG,MAAM,IAAK,WAAW71F,EAAE,OAAO8N,EAAE+nF,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY/nF,EAAE+nF,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIj4F,EAAEoqF,OAAO,MAAMjoF,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc+N,EAAEuqF,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOvqF,EAC1iBynF,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAaznF,EAAEoqF,GAAG,MAAM,KAAKtH,GAAG,KAAKG,GAAG,KAAKF,GAAG/iF,EAAEgoF,GAAG,MAAM,KAAK9E,GAAGljF,EAAE8rb,GAAG,MAAM,IAAK,SAAS9rb,EAAEonF,GAAG,MAAM,IAAK,QAAQpnF,EAAEusb,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQvsb,EAAEyoF,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYzoF,EAAEypF,GAAG,IAAI/jE,EAAE,KAAO,EAAFl4B,GAAK46B,GAAG1C,GAAG,WAAWzzB,EAAEqJ,EAAEoqB,EAAE,OAAO8a,EAAEA,EAAE,UAAU,KAAKA,EAAE9a,EAAE,GAAG,IAAI,IAAQkC,EAAJ5iC,EAAEwjB,EAAI,OAC/exjB,GAAG,CAAK,IAAIsmC,GAAR1D,EAAE5iC,GAAUyic,UAAsF,GAA5E,IAAI7/Z,EAAEthC,KAAK,OAAOglC,IAAI1D,EAAE0D,EAAE,OAAOhwB,IAAc,OAAVgwB,EAAEi4D,GAAGv+F,EAAEsW,KAAYoqB,EAAEn2B,KAAKk+b,GAAGzoc,EAAEsmC,EAAE1D,MAASQ,EAAE,MAAMpjC,EAAEA,EAAEwzV,OAAO,EAAE9yT,EAAErgC,SAASm7C,EAAE,IAAIxgC,EAAEwgC,EAAEtuC,EAAE,KAAKpC,EAAEjK,GAAG0uB,EAAEhlB,KAAK,CAAC8pB,MAAMmnB,EAAErS,UAAUzI,MAAM,GAAG,KAAO,EAAFl4B,GAAK,CAA4E,GAAnCwS,EAAE,aAAa/N,GAAG,eAAeA,KAAtEuuC,EAAE,cAAcvuC,GAAG,gBAAgBA,IAA2C,KAAO,GAAFzE,MAAQ0E,EAAEpC,EAAEmqF,eAAenqF,EAAEkrF,eAAeqG,GAAGnvF,KAAIA,EAAE0rH,OAAgB59G,GAAGwgC,KAAGA,EAAE36C,EAAEkY,SAASlY,EAAEA,GAAG26C,EAAE36C,EAAEkzG,eAAev4D,EAAE69Y,aAAa79Y,EAAEktZ,aAAa3vb,OAAUiC,GAAqCA,EAAEwI,EAAiB,QAAftW,GAAnCA,EAAEpC,EAAEmqF,eAAenqF,EAAEmrF,WAAkBoG,GAAGnvF,GAAG,QACleA,KAARk2B,EAAEq3D,GAAGvtF,KAAU,IAAIA,EAAE5L,KAAK,IAAI4L,EAAE5L,OAAK4L,EAAE,QAAU8N,EAAE,KAAK9N,EAAEsW,GAAKxI,IAAI9N,GAAE,CAAgU,GAA/TwzB,EAAE6kE,GAAGj/D,EAAE,eAAehwB,EAAE,eAAetW,EAAE,QAAW,eAAeiN,GAAG,gBAAgBA,IAAEyzB,EAAE+jE,GAAGn+D,EAAE,iBAAiBhwB,EAAE,iBAAiBtW,EAAE,WAAUojC,EAAE,MAAMpoB,EAAEwgC,EAAE+gU,GAAGvhW,GAAG4nB,EAAE,MAAM11B,EAAEsuC,EAAE+gU,GAAGrvW,IAAGsuC,EAAE,IAAI9a,EAAE4F,EAAEtmC,EAAE,QAAQgb,EAAElQ,EAAEjK,IAAKiN,OAAOs1B,EAAEoY,EAAEy5C,cAAcryD,EAAE0D,EAAE,KAAK+1D,GAAGx7F,KAAK2iB,KAAIkd,EAAE,IAAIA,EAAEpqB,EAAEtW,EAAE,QAAQkN,EAAEpC,EAAEjK,IAAKiN,OAAO80B,EAAElC,EAAEu0D,cAAc7xD,EAAEkD,EAAE5F,GAAG0C,EAAEkD,EAAKtrB,GAAG9N,EAAE1E,EAAE,CAAa,IAAR8N,EAAEpJ,EAAElN,EAAE,EAAM4iC,EAAhBlC,EAAE1lB,EAAkB4nB,EAAEA,EAAE6X,GAAG7X,GAAG5iC,IAAQ,IAAJ4iC,EAAE,EAAM0D,EAAEhwB,EAAEgwB,EAAEA,EAAEmU,GAAGnU,GAAG1D,IAAI,KAAK,EAAE5iC,EAAE4iC,GAAGlC,EAAE+Z,GAAG/Z,GAAG1gC,IAAI,KAAK,EAAE4iC,EAAE5iC,GAAGsW,EACpfmkC,GAAGnkC,GAAGssB,IAAI,KAAK5iC,KAAK,CAAC,GAAG0gC,IAAIpqB,GAAG,OAAOA,GAAGoqB,IAAIpqB,EAAEysP,UAAU,MAAMv6P,EAAEk4B,EAAE+Z,GAAG/Z,GAAGpqB,EAAEmkC,GAAGnkC,GAAGoqB,EAAE,UAAUA,EAAE,KAAK,OAAO1lB,GAAG2tb,GAAGp5a,EAAEisB,EAAExgC,EAAE0lB,GAAE,GAAI,OAAOxzB,GAAG,OAAOk2B,GAAGula,GAAGp5a,EAAE6T,EAAEl2B,EAAEwzB,GAAE,GAAiE,GAAG,YAA1C1lB,GAAjBwgC,EAAEh4B,EAAE+4V,GAAG/4V,GAAGzK,QAAWg9E,UAAUv6C,EAAEu6C,SAASluF,gBAA+B,UAAUmT,GAAG,SAASwgC,EAAEn0C,KAAK,IAAI6yF,EAAEsjR,QAAQ,GAAGV,GAAGthU,GAAG,GAAGkhU,GAAGxiR,EAAEikR,OAAO,CAACjkR,EAAE0jR,GAAG,IAAIj4T,EAAEk4T,QAAQ7iW,EAAEwgC,EAAEu6C,WAAW,UAAU/6E,EAAEnT,gBAAgB,aAAa2zC,EAAEn0C,MAAM,UAAUm0C,EAAEn0C,QAAQ6yF,EAAE+iR,IAClV,OADyV/iR,IAAIA,EAAEA,EAAEjtF,EAAEuW,IAAK2pJ,GAAG59I,EAAE2qE,EAAEpvF,EAAEjK,IAAW8kD,GAAGA,EAAE14C,EAAEuuC,EAAEh4B,GAAG,aAAavW,IAAI04C,EAAEnK,EAAE4jZ,gBACtez5Y,EAAE45Y,YAAY,WAAW/jZ,EAAEn0C,MAAM0vF,GAAGv7C,EAAE,SAASA,EAAE14C,QAAO6iD,EAAEniC,EAAE+4V,GAAG/4V,GAAGzK,OAAc9L,GAAG,IAAK,WAAa6vW,GAAGn3T,IAAI,SAASA,EAAEoiZ,mBAAgBvpF,GAAG74T,EAAE23T,GAAG95V,EAAEk6V,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGJ,GAAGkB,GAAG,KAAK,MAAM,IAAK,YAAYpB,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGiB,GAAG9uV,EAAEzkB,EAAEjK,GAAG,MAAM,IAAK,kBAAkB,GAAG08W,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQc,GAAG9uV,EAAEzkB,EAAEjK,GAAG,IAAIq8F,EAAE,GAAGy/Q,GAAGn0W,EAAE,CAAC,OAAOyE,GAAG,IAAK,mBAAmB,IAAI47C,EAAE,qBAAqB,MAAMrgD,EAAE,IAAK,iBAAiBqgD,EAAE,mBAAmB,MAAMrgD,EACrf,IAAK,oBAAoBqgD,EAAE,sBAAsB,MAAMrgD,EAAEqgD,OAAE,OAAY8P,GAAGokT,GAAG9vW,EAAEnC,KAAK+9C,EAAE,oBAAoB,YAAY57C,GAAG,MAAMnC,EAAEqgN,UAAUtiK,EAAE,sBAAsBA,IAAI4zT,IAAI,OAAO3xW,EAAEu5D,SAAS1L,IAAI,uBAAuB9P,EAAE,qBAAqBA,GAAG8P,KAAKukC,EAAEkH,OAAY/D,GAAG,UAARD,GAAGv/F,GAAkBu/F,GAAGt9F,MAAMs9F,GAAGsT,YAAY/6C,IAAG,IAAe,GAAVhT,EAAE6xK,GAAGh0M,EAAEqlC,IAAOxoD,SAASwoD,EAAE,IAAIg7C,GAAGh7C,EAAE57C,EAAE,KAAKnC,EAAEjK,GAAG0uB,EAAEhlB,KAAK,CAAC8pB,MAAMw0B,EAAE1f,UAAUwc,IAAIu3C,EAAEr0C,EAAEnnD,KAAKw7F,EAAW,QAARA,EAAE47B,GAAGhuH,MAAc+9C,EAAEnnD,KAAKw7F,MAASA,EAAEo/Q,GA1BjK,SAAYrvW,EAAEzE,GAAG,OAAOyE,GAAG,IAAK,iBAAiB,OAAO6rH,GAAGtwH,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEklL,MAAa,MAAK8uL,IAAG,EAAUtmJ,IAAG,IAAK,YAAY,OAAOjpN,EAAEzE,EAAE9G,QAASw0N,IAAIsmJ,GAAG,KAAKvvW,EAAE,QAAQ,OAAO,MA0BxBsxW,CAAGtxW,EAAEnC,GAzB1b,SAAYmC,EAAEzE,GAAG,GAAGmwD,GAAG,MAAM,mBAAmB1rD,IAAI0vW,IAAII,GAAG9vW,EAAEzE,IAAIyE,EAAEm3F,KAAK9D,GAAGD,GAAGD,GAAG,KAAKznC,IAAG,EAAG1rD,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKzE,EAAEktF,SAASltF,EAAEitF,QAAQjtF,EAAE+sF,UAAU/sF,EAAEktF,SAASltF,EAAEitF,OAAO,CAAC,GAAGjtF,EAAEm3I,MAAM,EAAEn3I,EAAEm3I,KAAKt/I,OAAO,OAAOmI,EAAEm3I,KAAK,GAAGn3I,EAAEklL,MAAM,OAAOvkL,OAAO4C,aAAavD,EAAEklL,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAO+uL,IAAI,OAAOj0W,EAAE67D,OAAO,KAAK77D,EAAE9G,MAyB+Eq8W,CAAG9wW,EAAEnC,MAA2B,GAAxB0Y,EAAEg0M,GAAGh0M,EAAE,kBAAqBnjB,SAASQ,EAAE,IAAIgjG,GAAG,gBACnf,cAAc,KAAK/4F,EAAEjK,GAAG0uB,EAAEhlB,KAAK,CAAC8pB,MAAMxzB,EAAEsoC,UAAU3lB,IAAI3iB,EAAEa,KAAKw7F,IAAGs8B,GAAGjqG,EAAE/mB,MAAK,SAASigc,GAAGx7b,EAAEzE,EAAEsC,GAAG,MAAM,CAACmlC,SAAShjC,EAAEwpF,SAASjuF,EAAE84D,cAAcx2D,GAAG,SAAS0sN,GAAGvqN,EAAEzE,GAAG,IAAI,IAAIsC,EAAEtC,EAAE,UAAUgb,EAAE,GAAG,OAAOvW,GAAG,CAAC,IAAIpM,EAAEoM,EAAEk2C,EAAEtiD,EAAE4hc,UAAU,IAAI5hc,EAAES,KAAK,OAAO6hD,IAAItiD,EAAEsiD,EAAY,OAAVA,EAAEo7C,GAAGtxF,EAAEnC,KAAY0Y,EAAE4c,QAAQqoa,GAAGx7b,EAAEk2C,EAAEtiD,IAAc,OAAVsiD,EAAEo7C,GAAGtxF,EAAEzE,KAAYgb,EAAEjZ,KAAKk+b,GAAGx7b,EAAEk2C,EAAEtiD,KAAKoM,EAAEA,EAAEumV,OAAO,OAAOhwU,EAAE,SAASi3B,GAAGxtC,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEumV,aAAavmV,GAAG,IAAIA,EAAE3L,KAAK,OAAO2L,GAAI,KACxa,SAAS07b,GAAG17b,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,IAAI,IAAIsiD,EAAE36C,EAAE+7b,WAAWh1a,EAAE,GAAG,OAAOzkB,GAAGA,IAAI0Y,GAAG,CAAC,IAAIg4B,EAAE1wC,EAAEkQ,EAAEwgC,EAAEunN,UAAUtnN,EAAED,EAAEinZ,UAAU,GAAG,OAAOznb,GAAGA,IAAIwI,EAAE,MAAM,IAAIg4B,EAAEl6C,KAAK,OAAOm6C,IAAID,EAAEC,EAAE56C,EAAa,OAAVma,EAAEujF,GAAGzzF,EAAEq4C,KAAY5zB,EAAE6Q,QAAQqoa,GAAG39b,EAAEkQ,EAAEwgC,IAAK36C,GAAc,OAAVma,EAAEujF,GAAGzzF,EAAEq4C,KAAY5zB,EAAEhlB,KAAKk+b,GAAG39b,EAAEkQ,EAAEwgC,KAAM1wC,EAAEA,EAAE0oV,OAAO,IAAIjkU,EAAElvB,QAAQ4M,EAAE1C,KAAK,CAAC8pB,MAAM7rB,EAAE2gC,UAAU5Z,IAAI,SAASq5a,MAAM,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG97b,EAAEzE,GAAG,OAAOyE,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQzE,EAAEwgc,UAAU,OAAM,EAC3b,SAASC,GAAGh8b,EAAEzE,GAAG,MAAM,aAAayE,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBzE,EAAEhG,UAAU,kBAAkBgG,EAAEhG,UAAU,kBAAkBgG,EAAE4pM,yBAAyB,OAAO5pM,EAAE4pM,yBAAyB,MAAM5pM,EAAE4pM,wBAAwBC,OAAO,IAAI62P,GAAG,oBAAoBxha,WAAWA,gBAAW,EAAOyha,GAAG,oBAAoBxha,aAAaA,kBAAa,EAAO,SAASyha,GAAGn8b,GAAG,IAAIA,EAAEqkV,SAASrkV,EAAEymG,YAAY,GAAG,IAAIzmG,EAAEqkV,WAAoB,OAATrkV,EAAEA,EAAEy0F,QAAez0F,EAAEymG,YAAY,KACxc,SAAS21V,GAAGp8b,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE26b,YAAY,CAAC,IAAIp/b,EAAEyE,EAAEqkV,SAAS,GAAG,IAAI9oV,GAAG,IAAIA,EAAE,MAAM,OAAOyE,EAAE,SAASw8O,GAAGx8O,GAAGA,EAAEA,EAAEq8b,gBAAgB,IAAI,IAAI9gc,EAAE,EAAEyE,GAAG,CAAC,GAAG,IAAIA,EAAEqkV,SAAS,CAAC,IAAIxmV,EAAEmC,EAAEvL,KAAK,GAAG,MAAMoJ,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAItC,EAAE,OAAOyE,EAAEzE,QAAQ,OAAOsC,GAAGtC,IAAIyE,EAAEA,EAAEq8b,gBAAgB,OAAO,KAAK,IAAIC,GAAG,EAA0D,IAAIC,GAAGr+b,KAAKmnF,SAAS9qF,SAAS,IAAIvD,MAAM,GAAGwlc,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAG5wU,GAAG,oBAAoB4wU,GAAGG,GAAG,iBAAiBH,GAC9d,SAASntW,GAAGpvF,GAAG,IAAIzE,EAAEyE,EAAEw8b,IAAI,GAAGjhc,EAAE,OAAOA,EAAE,IAAI,IAAIsC,EAAEmC,EAAE23L,WAAW95L,GAAG,CAAC,GAAGtC,EAAEsC,EAAE8tH,KAAK9tH,EAAE2+b,IAAI,CAAe,GAAd3+b,EAAEtC,EAAEu6P,UAAa,OAAOv6P,EAAEhH,OAAO,OAAOsJ,GAAG,OAAOA,EAAEtJ,MAAM,IAAIyL,EAAEw8O,GAAGx8O,GAAG,OAAOA,GAAG,CAAC,GAAGnC,EAAEmC,EAAEw8b,IAAI,OAAO3+b,EAAEmC,EAAEw8O,GAAGx8O,GAAG,OAAOzE,EAAMsC,GAAJmC,EAAEnC,GAAM85L,WAAW,OAAO,KAAK,SAAS/rG,GAAG5rF,GAAkB,QAAfA,EAAEA,EAAEw8b,KAAKx8b,EAAE2rH,MAAc,IAAI3rH,EAAE3L,KAAK,IAAI2L,EAAE3L,KAAK,KAAK2L,EAAE3L,KAAK,IAAI2L,EAAE3L,IAAI,KAAK2L,EAAE,SAASsvW,GAAGtvW,GAAG,GAAG,IAAIA,EAAE3L,KAAK,IAAI2L,EAAE3L,IAAI,OAAO2L,EAAEw1b,UAAU,MAAMz8b,MAAMmH,EAAE,KAAM,SAASwrF,GAAG1rF,GAAG,OAAOA,EAAEy8b,KAAK,KAClb,SAASxrF,GAAGjxW,GAAG,IAAIzE,EAAEyE,EAAE08b,IAAkC,YAA9B,IAASnhc,IAAIA,EAAEyE,EAAE08b,IAAI,IAAIrsW,KAAY90F,EAAE,IAAIohc,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAG78b,GAAG,MAAM,CAACszD,QAAQtzD,GAAG,SAAS0sF,GAAE1sF,GAAG,EAAE48b,KAAK58b,EAAEszD,QAAQqpY,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MAAM,SAASvuZ,GAAEruC,EAAEzE,GAAGqhc,KAAKD,GAAGC,IAAI58b,EAAEszD,QAAQtzD,EAAEszD,QAAQ/3D,EAAE,IAAIuhc,GAAG,GAAGxpZ,GAAEupZ,GAAGC,IAAIlyY,GAAEiyY,IAAG,GAAIE,GAAGD,GAC5P,SAASE,GAAGh9b,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAE5F,KAAK8sK,aAAa,IAAIrpK,EAAE,OAAOi/b,GAAG,IAAIvmb,EAAEvW,EAAEw1b,UAAU,GAAGj/a,GAAGA,EAAE0mb,8CAA8C1hc,EAAE,OAAOgb,EAAE2mb,0CAA0C,IAAShnZ,EAALtiD,EAAE,GAAK,IAAIsiD,KAAKr4C,EAAEjK,EAAEsiD,GAAG36C,EAAE26C,GAAoH,OAAjH3/B,KAAIvW,EAAEA,EAAEw1b,WAAYyH,4CAA4C1hc,EAAEyE,EAAEk9b,0CAA0Ctpc,GAAUA,EAAE,SAASupc,GAAGn9b,GAAyB,OAAO,QAA7BA,EAAEA,EAAEgnK,yBAAmC,IAAShnK,EAAE,SAASo9b,KAAK1wW,GAAE9hC,IAAG8hC,GAAEp5C,IAAG,SAAS+pZ,GAAGr9b,EAAEzE,EAAEsC,GAAG,GAAGy1C,GAAEggB,UAAUwpY,GAAG,MAAM/jc,MAAMmH,EAAE,MAAMmuC,GAAEiF,GAAE/3C,GAAG8yC,GAAEuc,GAAE/sD,GAC/e,SAASy/b,GAAGt9b,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEvW,EAAEw1b,UAAgC,GAAtBx1b,EAAEzE,EAAEyrK,kBAAqB,oBAAoBzwJ,EAAEuxX,gBAAgB,OAAOjqY,EAAwB,IAAI,IAAIjK,KAA9B2iB,EAAEA,EAAEuxX,kBAAiC,KAAKl0Y,KAAKoM,GAAG,MAAMjH,MAAMmH,EAAE,IAAIsnF,EAAGjsF,IAAI,UAAU3H,IAAI,OAAO4H,EAAE,GAAGqC,EAAE0Y,GAAG,SAASgnb,GAAGv9b,GAAyG,OAAtGA,GAAGA,EAAEA,EAAEw1b,YAAYx1b,EAAEw9b,2CAA2CV,GAAGC,GAAGzpZ,GAAEggB,QAAQjlB,GAAEiF,GAAEtzC,GAAGquC,GAAEuc,GAAEA,GAAE0I,UAAe,EAAG,SAASmqY,GAAGz9b,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEvW,EAAEw1b,UAAU,IAAIj/a,EAAE,MAAMxd,MAAMmH,EAAE,MAAMrC,GAAGmC,EAAEs9b,GAAGt9b,EAAEzE,EAAEwhc,IAAIxmb,EAAEinb,0CAA0Cx9b,EAAE0sF,GAAE9hC,IAAG8hC,GAAEp5C,IAAGjF,GAAEiF,GAAEtzC,IAAI0sF,GAAE9hC,IAAGvc,GAAEuc,GAAE/sD,GAC7e,IAAI6/b,GAAG,KAAKC,GAAG,KAAKC,GAAG54a,EAAEkxa,yBAAyB2H,GAAG74a,EAAEqxa,0BAA0ByH,GAAG94a,EAAE+4a,wBAAwBC,GAAGh5a,EAAEi5a,qBAAqBC,GAAGl5a,EAAEm5a,sBAAsBC,GAAGp5a,EAAE4xa,aAAayH,GAAGr5a,EAAEs5a,iCAAiCC,GAAGv5a,EAAEw5a,2BAA2BC,GAAGz5a,EAAEoya,8BAA8BsH,GAAG15a,EAAEsxa,wBAAwBqI,GAAG35a,EAAE45a,qBAAqBC,GAAG75a,EAAE85a,sBAAsBC,GAAG,GAAGC,QAAG,IAASd,GAAGA,GAAG,aAAae,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGhB,KAAKzzW,GAAE,IAAIy0W,GAAGhB,GAAG,WAAW,OAAOA,KAAKgB,IACtd,SAASC,KAAK,OAAOhB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAM9lc,MAAMmH,EAAE,OAAQ,SAASo/b,GAAGt/b,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOu+b,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAM9lc,MAAMmH,EAAE,OAAQ,SAAS4xE,GAAG9xE,EAAEzE,GAAW,OAARyE,EAAEs/b,GAAGt/b,GAAU49b,GAAG59b,EAAEzE,GAAG,SAASgkc,GAAGv/b,EAAEzE,EAAEsC,GAAW,OAARmC,EAAEs/b,GAAGt/b,GAAU69b,GAAG79b,EAAEzE,EAAEsC,GAAG,SAAS2hc,KAAK,GAAG,OAAON,GAAG,CAAC,IAAIl/b,EAAEk/b,GAAGA,GAAG,KAAKpB,GAAG99b,GAAGy/b,KAC3a,SAASA,KAAK,IAAIN,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAIn/b,EAAE,EAAE,IAAI,IAAIzE,EAAE0jc,GAAGntX,GAAG,IAAG,WAAW,KAAK9xE,EAAEzE,EAAEnI,OAAO4M,IAAI,CAAC,IAAInC,EAAEtC,EAAEyE,GAAG,GAAGnC,EAAEA,GAAE,SAAU,OAAOA,OAAMohc,GAAG,KAAK,MAAMphc,GAAG,MAAM,OAAOohc,KAAKA,GAAGA,GAAGjoc,MAAMgJ,EAAE,IAAI69b,GAAGU,GAAGiB,IAAI3hc,EAA3J,QAAsKshc,IAAG,IAAK,IAAIO,GAAGz5W,EAAGuqW,wBAAwB,SAASmP,GAAG3/b,EAAEzE,GAAG,GAAGyE,GAAGA,EAAE+rG,aAAa,CAA4B,IAAI,IAAIluG,KAAnCtC,EAAEC,EAAE,GAAGD,GAAGyE,EAAEA,EAAE+rG,kBAA4B,IAASxwG,EAAEsC,KAAKtC,EAAEsC,GAAGmC,EAAEnC,IAAI,OAAOtC,EAAE,OAAOA,EAAE,IAAIqkc,GAAG/C,GAAG,MAAMgD,GAAG,KAAKC,GAAG,KAAKrwT,GAAG,KAAK,SAASswT,KAAKtwT,GAAGqwT,GAAGD,GAAG,KAC5b,SAASG,GAAGhgc,GAAG,IAAIzE,EAAEqkc,GAAGtsY,QAAQo5B,GAAEkzW,IAAI5/b,EAAE5F,KAAKy0K,SAASgiR,cAAct1b,EAAE,SAAS0kc,GAAGjgc,EAAEzE,GAAG,KAAK,OAAOyE,GAAG,CAAC,IAAInC,EAAEmC,EAAE81P,UAAU,IAAI91P,EAAEkgc,WAAW3kc,KAAKA,EAAtB,CAAwB,GAAG,OAAOsC,IAAIA,EAAEqic,WAAW3kc,KAAKA,EAAE,MAAWsC,EAAEqic,YAAY3kc,OAAOyE,EAAEkgc,YAAY3kc,EAAE,OAAOsC,IAAIA,EAAEqic,YAAY3kc,GAAGyE,EAAEA,EAAEumV,QAAQ,SAAS45G,GAAGngc,EAAEzE,GAAGskc,GAAG7/b,EAAEyvI,GAAGqwT,GAAG,KAAsB,QAAjB9/b,EAAEA,EAAEogc,eAAuB,OAAOpgc,EAAEqgc,eAAe,KAAKrgc,EAAEsgc,MAAM/kc,KAAKglc,IAAG,GAAIvgc,EAAEqgc,aAAa,MACvY,SAASG,GAAGxgc,EAAEzE,GAAG,GAAGk0I,KAAKzvI,IAAG,IAAKzE,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAEk0I,GAAGzvI,EAAEzE,EAAE,YAAWA,EAAE,CAACosB,QAAQ3nB,EAAE4uY,aAAarzY,EAAEmX,KAAK,MAAS,OAAOotb,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM9mc,MAAMmH,EAAE,MAAM4/b,GAAGvkc,EAAEskc,GAAGO,aAAa,CAACE,MAAM,EAAED,aAAa9kc,EAAEklc,WAAW,WAAWX,GAAGA,GAAGptb,KAAKnX,EAAE,OAAOyE,EAAE6wb,cAAc,IAAI6P,IAAG,EAAG,SAASC,GAAG3gc,GAAGA,EAAE4gc,YAAY,CAACC,UAAU7gc,EAAEy1b,cAAcqL,gBAAgB,KAAKC,eAAe,KAAK/zS,OAAO,CAAC+X,QAAQ,MAAMi8R,QAAQ,MAC1a,SAASC,GAAGjhc,EAAEzE,GAAGyE,EAAEA,EAAE4gc,YAAYrlc,EAAEqlc,cAAc5gc,IAAIzE,EAAEqlc,YAAY,CAACC,UAAU7gc,EAAE6gc,UAAUC,gBAAgB9gc,EAAE8gc,gBAAgBC,eAAe/gc,EAAE+gc,eAAe/zS,OAAOhtJ,EAAEgtJ,OAAOg0S,QAAQhhc,EAAEghc,UAAU,SAASE,GAAGlhc,EAAEzE,GAAG,MAAM,CAAC4lc,UAAUnhc,EAAEohc,KAAK7lc,EAAElH,IAAI,EAAE2W,QAAQ,KAAKV,SAAS,KAAKoI,KAAK,MAAM,SAAS2ub,GAAGrhc,EAAEzE,GAAmB,GAAG,QAAnByE,EAAEA,EAAE4gc,aAAwB,CAAY,IAAI/ic,GAAfmC,EAAEA,EAAEgtJ,QAAe+X,QAAQ,OAAOlnK,EAAEtC,EAAEmX,KAAKnX,GAAGA,EAAEmX,KAAK7U,EAAE6U,KAAK7U,EAAE6U,KAAKnX,GAAGyE,EAAE+kK,QAAQxpK,GACrZ,SAAS+lc,GAAGthc,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAE4gc,YAAYrqb,EAAEvW,EAAE81P,UAAU,GAAG,OAAOv/O,GAAoB1Y,KAAhB0Y,EAAEA,EAAEqqb,aAAmB,CAAC,IAAIhtc,EAAE,KAAKsiD,EAAE,KAAyB,GAAG,QAAvBr4C,EAAEA,EAAEijc,iBAA4B,CAAC,EAAE,CAAC,IAAIx+a,EAAE,CAAC6+a,UAAUtjc,EAAEsjc,UAAUC,KAAKvjc,EAAEujc,KAAK/sc,IAAIwJ,EAAExJ,IAAI2W,QAAQnN,EAAEmN,QAAQV,SAASzM,EAAEyM,SAASoI,KAAK,MAAM,OAAOwjC,EAAEtiD,EAAEsiD,EAAE5zB,EAAE4zB,EAAEA,EAAExjC,KAAK4P,EAAEzkB,EAAEA,EAAE6U,WAAW,OAAO7U,GAAG,OAAOq4C,EAAEtiD,EAAEsiD,EAAE36C,EAAE26C,EAAEA,EAAExjC,KAAKnX,OAAO3H,EAAEsiD,EAAE36C,EAAiH,OAA/GsC,EAAE,CAACgjc,UAAUtqb,EAAEsqb,UAAUC,gBAAgBltc,EAAEmtc,eAAe7qZ,EAAE82G,OAAOz2I,EAAEy2I,OAAOg0S,QAAQzqb,EAAEyqb,cAAShhc,EAAE4gc,YAAY/ic,GAA4B,QAAnBmC,EAAEnC,EAAEkjc,gBAAwBljc,EAAEijc,gBAAgBvlc,EAAEyE,EAAE0S,KACnfnX,EAAEsC,EAAEkjc,eAAexlc,EACnB,SAASgmc,GAAGvhc,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEoM,EAAE4gc,YAAYF,IAAG,EAAG,IAAIxqZ,EAAEtiD,EAAEktc,gBAAgBx+a,EAAE1uB,EAAEmtc,eAAexyZ,EAAE36C,EAAEo5J,OAAO+X,QAAQ,GAAG,OAAOx2H,EAAE,CAAC36C,EAAEo5J,OAAO+X,QAAQ,KAAK,IAAIh3J,EAAEwgC,EAAEC,EAAEzgC,EAAE2E,KAAK3E,EAAE2E,KAAK,KAAK,OAAO4P,EAAE4zB,EAAE1H,EAAElsB,EAAE5P,KAAK87B,EAAElsB,EAAEvU,EAAE,IAAI7a,EAAE8M,EAAE81P,UAAU,GAAG,OAAO5iQ,EAAE,CAAiB,IAAIkgD,GAApBlgD,EAAEA,EAAE0tc,aAAoBG,eAAe3tZ,IAAI9wB,IAAI,OAAO8wB,EAAElgD,EAAE4tc,gBAAgBtyZ,EAAE4E,EAAE1gC,KAAK87B,EAAEt7C,EAAE6tc,eAAehzb,IAAI,GAAG,OAAOmoC,EAAE,CAA8B,IAA7B9C,EAAEx/C,EAAEitc,UAAUv+a,EAAE,EAAEpvB,EAAEs7C,EAAEzgC,EAAE,OAAO,CAACwgC,EAAE2H,EAAEkrZ,KAAK,IAAI/tc,EAAE6iD,EAAEirZ,UAAU,IAAI5qb,EAAEg4B,KAAKA,EAAE,CAAC,OAAOr7C,IAAIA,EAAEA,EAAEwf,KAAK,CAACyub,UAAU9tc,EAAE+tc,KAAK,EAAE/sc,IAAI6hD,EAAE7hD,IAAI2W,QAAQkrC,EAAElrC,QAAQV,SAAS4rC,EAAE5rC,SACrfoI,KAAK,OAAO1S,EAAE,CAAC,IAAI6mB,EAAE7mB,EAAEC,EAAEi2C,EAAU,OAAR3H,EAAEhzC,EAAElI,EAAEwK,EAASoC,EAAE5L,KAAK,KAAK,EAAc,GAAG,oBAAfwyB,EAAE5mB,EAAE+K,SAAiC,CAACooC,EAAEvsB,EAAErzB,KAAKH,EAAE+/C,EAAE7E,GAAG,MAAMvuC,EAAEozC,EAAEvsB,EAAE,MAAM7mB,EAAE,KAAK,EAAE6mB,EAAE+xC,OAAe,KAAT/xC,EAAE+xC,MAAY,GAAG,KAAK,EAAsD,GAAG,QAA3CrqB,EAAE,oBAAd1nB,EAAE5mB,EAAE+K,SAAgC6b,EAAErzB,KAAKH,EAAE+/C,EAAE7E,GAAG1nB,SAAe,IAAS0nB,EAAE,MAAMvuC,EAAEozC,EAAE53C,EAAE,GAAG43C,EAAE7E,GAAG,MAAMvuC,EAAE,KAAK,EAAE0gc,IAAG,GAAI,OAAOxqZ,EAAE5rC,WAAWtK,EAAE44D,OAAO,GAAe,QAAZrqB,EAAE36C,EAAEotc,SAAiBptc,EAAEotc,QAAQ,CAAC9qZ,GAAG3H,EAAEjxC,KAAK44C,SAAS7iD,EAAE,CAAC8tc,UAAU9tc,EAAE+tc,KAAK7yZ,EAAEl6C,IAAI6hD,EAAE7hD,IAAI2W,QAAQkrC,EAAElrC,QAAQV,SAAS4rC,EAAE5rC,SAASoI,KAAK,MAAM,OAAOxf,GAAGs7C,EAAEt7C,EAAEG,EAAE0a,EAAEqlC,GAAGlgD,EAAEA,EAAEwf,KAAKrf,EAAEivB,GAAGisB,EAAW,GAAG,QAAZ2H,EAAEA,EAAExjC,MAC1e,IAAsB,QAAnB67B,EAAE36C,EAAEo5J,OAAO+X,SAAiB,MAAW7uH,EAAE3H,EAAE77B,KAAK67B,EAAE77B,KAAK,KAAK9e,EAAEmtc,eAAexyZ,EAAE36C,EAAEo5J,OAAO+X,QAAQ,MAAc,OAAO7xK,IAAI6a,EAAEqlC,GAAGx/C,EAAEitc,UAAU9yb,EAAEna,EAAEktc,gBAAgBtyZ,EAAE56C,EAAEmtc,eAAe7tc,EAAEsuc,IAAIl/a,EAAEtiB,EAAEsgc,MAAMh+a,EAAEtiB,EAAEy1b,cAAcriZ,GAAG,SAASquZ,GAAGzhc,EAAEzE,EAAEsC,GAA8B,GAA3BmC,EAAEzE,EAAEylc,QAAQzlc,EAAEylc,QAAQ,KAAQ,OAAOhhc,EAAE,IAAIzE,EAAE,EAAEA,EAAEyE,EAAE5M,OAAOmI,IAAI,CAAC,IAAIgb,EAAEvW,EAAEzE,GAAG3H,EAAE2iB,EAAEjM,SAAS,GAAG,OAAO1W,EAAE,CAAqB,GAApB2iB,EAAEjM,SAAS,KAAKiM,EAAE1Y,EAAK,oBAAoBjK,EAAE,MAAMmF,MAAMmH,EAAE,IAAItM,IAAIA,EAAEJ,KAAK+iB,KAAK,IAAImrb,IAAI,IAAIx8W,EAAG5+D,WAAWq5H,KAC3b,SAASgiT,GAAG3hc,EAAEzE,EAAEsC,EAAE0Y,GAA8B1Y,EAAE,QAAXA,EAAEA,EAAE0Y,EAAtBhb,EAAEyE,EAAEy1b,sBAAmC,IAAS53b,EAAEtC,EAAEC,EAAE,GAAGD,EAAEsC,GAAGmC,EAAEy1b,cAAc53b,EAAE,IAAImC,EAAEsgc,QAAQtgc,EAAE4gc,YAAYC,UAAUhjc,GAC3I,IAAI+jc,GAAG,CAAC/R,UAAU,SAAS7vb,GAAG,SAAOA,EAAEA,EAAE6hc,kBAAiBr0W,GAAGxtF,KAAKA,GAAMgwb,gBAAgB,SAAShwb,EAAEzE,EAAEsC,GAAGmC,EAAEA,EAAE6hc,gBAAgB,IAAItrb,EAAEurb,KAAKluc,EAAEmuc,GAAG/hc,GAAGk2C,EAAEgrZ,GAAG3qb,EAAE3iB,GAAGsiD,EAAElrC,QAAQzP,OAAE,IAASsC,GAAG,OAAOA,IAAIq4C,EAAE5rC,SAASzM,GAAGwjc,GAAGrhc,EAAEk2C,GAAG8rZ,GAAGhic,EAAEpM,EAAE2iB,IAAIw5a,oBAAoB,SAAS/vb,EAAEzE,EAAEsC,GAAGmC,EAAEA,EAAE6hc,gBAAgB,IAAItrb,EAAEurb,KAAKluc,EAAEmuc,GAAG/hc,GAAGk2C,EAAEgrZ,GAAG3qb,EAAE3iB,GAAGsiD,EAAE7hD,IAAI,EAAE6hD,EAAElrC,QAAQzP,OAAE,IAASsC,GAAG,OAAOA,IAAIq4C,EAAE5rC,SAASzM,GAAGwjc,GAAGrhc,EAAEk2C,GAAG8rZ,GAAGhic,EAAEpM,EAAE2iB,IAAIu5a,mBAAmB,SAAS9vb,EAAEzE,GAAGyE,EAAEA,EAAE6hc,gBAAgB,IAAIhkc,EAAEikc,KAAKvrb,EAAEwrb,GAAG/hc,GAAGpM,EAAEstc,GAAGrjc,EAAE0Y,GAAG3iB,EAAES,IAAI,OAAE,IAASkH,GAAG,OAAOA,IAAI3H,EAAE0W,SACjf/O,GAAG8lc,GAAGrhc,EAAEpM,GAAGouc,GAAGhic,EAAEuW,EAAE1Y,KAAK,SAASokc,GAAGjic,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,EAAE5zB,GAAiB,MAAM,oBAApBtiB,EAAEA,EAAEw1b,WAAsCpvP,sBAAsBpmM,EAAEomM,sBAAsB7vL,EAAE2/B,EAAE5zB,IAAG/mB,EAAEjI,YAAWiI,EAAEjI,UAAU48b,wBAAsBp+E,GAAGj0W,EAAE0Y,KAAKu7V,GAAGl+W,EAAEsiD,IAC/M,SAASgsZ,GAAGlic,EAAEzE,EAAEsC,GAAG,IAAI0Y,GAAE,EAAG3iB,EAAEkpc,GAAO5mZ,EAAE36C,EAAE0rK,YAA2W,MAA/V,kBAAkB/wH,GAAG,OAAOA,EAAEA,EAAEsqZ,GAAGtqZ,IAAItiD,EAAEupc,GAAG5hc,GAAGwhc,GAAGzpZ,GAAEggB,QAAyBpd,GAAG3/B,EAAE,QAAtBA,EAAEhb,EAAE2rK,oBAA4B,IAAS3wJ,GAAGymb,GAAGh9b,EAAEpM,GAAGkpc,IAAIvhc,EAAE,IAAIA,EAAEsC,EAAEq4C,GAAGl2C,EAAEy1b,cAAc,OAAOl6b,EAAE2hC,YAAO,IAAS3hC,EAAE2hC,MAAM3hC,EAAE2hC,MAAM,KAAK3hC,EAAE00b,QAAQ2R,GAAG5hc,EAAEw1b,UAAUj6b,EAAEA,EAAEsmc,gBAAgB7hc,EAAEuW,KAAIvW,EAAEA,EAAEw1b,WAAYyH,4CAA4Crpc,EAAEoM,EAAEk9b,0CAA0ChnZ,GAAU36C,EAC3Z,SAAS4mc,GAAGnic,EAAEzE,EAAEsC,EAAE0Y,GAAGvW,EAAEzE,EAAE2hC,MAAM,oBAAoB3hC,EAAE2tU,2BAA2B3tU,EAAE2tU,0BAA0BrrU,EAAE0Y,GAAG,oBAAoBhb,EAAEquU,kCAAkCruU,EAAEquU,iCAAiC/rU,EAAE0Y,GAAGhb,EAAE2hC,QAAQl9B,GAAG4hc,GAAG7R,oBAAoBx0b,EAAEA,EAAE2hC,MAAM,MAC/P,SAASkla,GAAGpic,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEoM,EAAEw1b,UAAU5hc,EAAEc,MAAMmJ,EAAEjK,EAAEspC,MAAMl9B,EAAEy1b,cAAc7hc,EAAE+rJ,KAAK+hT,GAAGf,GAAG3gc,GAAG,IAAIk2C,EAAE36C,EAAE0rK,YAAY,kBAAkB/wH,GAAG,OAAOA,EAAEtiD,EAAE+zB,QAAQ64a,GAAGtqZ,IAAIA,EAAEinZ,GAAG5hc,GAAGwhc,GAAGzpZ,GAAEggB,QAAQ1/D,EAAE+zB,QAAQq1a,GAAGh9b,EAAEk2C,IAAIqrZ,GAAGvhc,EAAEnC,EAAEjK,EAAE2iB,GAAG3iB,EAAEspC,MAAMl9B,EAAEy1b,cAA2C,oBAA7Bv/Y,EAAE36C,EAAE8rK,4BAAiDs6R,GAAG3hc,EAAEzE,EAAE26C,EAAEr4C,GAAGjK,EAAEspC,MAAMl9B,EAAEy1b,eAAe,oBAAoBl6b,EAAE8rK,0BAA0B,oBAAoBzzK,EAAE01U,yBAAyB,oBAAoB11U,EAAE+1U,2BAA2B,oBAAoB/1U,EAAEq1U,qBACve1tU,EAAE3H,EAAEspC,MAAM,oBAAoBtpC,EAAEq1U,oBAAoBr1U,EAAEq1U,qBAAqB,oBAAoBr1U,EAAE+1U,2BAA2B/1U,EAAE+1U,4BAA4BpuU,IAAI3H,EAAEspC,OAAO0ka,GAAG7R,oBAAoBn8b,EAAEA,EAAEspC,MAAM,MAAMqka,GAAGvhc,EAAEnC,EAAEjK,EAAE2iB,GAAG3iB,EAAEspC,MAAMl9B,EAAEy1b,eAAe,oBAAoB7hc,EAAEmpC,oBAAoB/8B,EAAE44D,OAAO,GAAG,IAAIypY,GAAGhhc,MAAMjJ,QACvT,SAASkqc,GAAGtic,EAAEzE,EAAEsC,GAAW,GAAG,QAAXmC,EAAEnC,EAAE46G,MAAiB,oBAAoBz4G,GAAG,kBAAkBA,EAAE,CAAC,GAAGnC,EAAEwyb,OAAO,CAAY,GAAXxyb,EAAEA,EAAEwyb,OAAY,CAAC,GAAG,IAAIxyb,EAAExJ,IAAI,MAAM0E,MAAMmH,EAAE,MAAM,IAAIqW,EAAE1Y,EAAE23b,UAAU,IAAIj/a,EAAE,MAAMxd,MAAMmH,EAAE,IAAIF,IAAI,IAAIpM,EAAE,GAAGoM,EAAE,OAAG,OAAOzE,GAAG,OAAOA,EAAEk9G,KAAK,oBAAoBl9G,EAAEk9G,KAAKl9G,EAAEk9G,IAAI8pV,aAAa3uc,EAAS2H,EAAEk9G,KAAIl9G,EAAE,SAASyE,GAAG,IAAIzE,EAAEgb,EAAEopI,KAAKpkJ,IAAImmc,KAAKnmc,EAAEgb,EAAEopI,KAAK,IAAI,OAAO3/I,SAASzE,EAAE3H,GAAG2H,EAAE3H,GAAGoM,GAAGzE,EAAEgnc,WAAW3uc,EAAS2H,GAAE,GAAG,kBAAkByE,EAAE,MAAMjH,MAAMmH,EAAE,MAAM,IAAIrC,EAAEwyb,OAAO,MAAMt3b,MAAMmH,EAAE,IAAIF,IAAK,OAAOA,EAChe,SAASwic,GAAGxic,EAAEzE,GAAG,GAAG,aAAayE,EAAE5F,KAAK,MAAMrB,MAAMmH,EAAE,GAAG,oBAAoBrN,OAAOS,UAAUiH,SAAS/G,KAAK+H,GAAG,qBAAqB1I,OAAOsE,KAAKoE,GAAGqF,KAAK,MAAM,IAAIrF,IAClK,SAASknc,GAAGzic,GAAG,SAASzE,EAAEA,EAAEsC,GAAG,GAAGmC,EAAE,CAAC,IAAIuW,EAAEhb,EAAEmnc,WAAW,OAAOnsb,GAAGA,EAAEosb,WAAW9kc,EAAEtC,EAAEmnc,WAAW7kc,GAAGtC,EAAEqnc,YAAYrnc,EAAEmnc,WAAW7kc,EAAEA,EAAE8kc,WAAW,KAAK9kc,EAAE+6D,MAAM,GAAG,SAAS/6D,EAAEA,EAAE0Y,GAAG,IAAIvW,EAAE,OAAO,KAAK,KAAK,OAAOuW,GAAGhb,EAAEsC,EAAE0Y,GAAGA,EAAEA,EAAEo/a,QAAQ,OAAO,KAAK,SAASp/a,EAAEvW,EAAEzE,GAAG,IAAIyE,EAAE,IAAIsqB,IAAI,OAAO/uB,GAAG,OAAOA,EAAEjH,IAAI0L,EAAEgF,IAAIzJ,EAAEjH,IAAIiH,GAAGyE,EAAEgF,IAAIzJ,EAAEzE,MAAMyE,GAAGA,EAAEA,EAAEo6b,QAAQ,OAAO31b,EAAE,SAASpM,EAAEoM,EAAEzE,GAAsC,OAAnCyE,EAAE6ic,GAAG7ic,EAAEzE,IAAKzE,MAAM,EAAEkJ,EAAE21b,QAAQ,KAAY31b,EAAE,SAASk2C,EAAE36C,EAAEsC,EAAE0Y,GAAa,OAAVhb,EAAEzE,MAAMyf,EAAMvW,EAA4B,QAAjBuW,EAAEhb,EAAEu6P,YAA6Bv/O,EAAEA,EAAEzf,OAAQ+G,GAAGtC,EAAEq9D,MAAM,EACpf/6D,GAAG0Y,GAAEhb,EAAEq9D,MAAM,EAAS/6D,GADoaA,EACla,SAASykB,EAAE/mB,GAAsC,OAAnCyE,GAAG,OAAOzE,EAAEu6P,YAAYv6P,EAAEq9D,MAAM,GAAUr9D,EAAE,SAASgzC,EAAEvuC,EAAEzE,EAAEsC,EAAE0Y,GAAG,OAAG,OAAOhb,GAAG,IAAIA,EAAElH,MAAWkH,EAAEunc,GAAGjlc,EAAEmC,EAAEuG,KAAKgQ,IAAKgwU,OAAOvmV,EAAEzE,KAAEA,EAAE3H,EAAE2H,EAAEsC,IAAK0oV,OAAOvmV,EAASzE,GAAE,SAASwS,EAAE/N,EAAEzE,EAAEsC,EAAE0Y,GAAG,OAAG,OAAOhb,GAAGA,EAAEwnc,cAAcllc,EAAEzD,OAAYmc,EAAE3iB,EAAE2H,EAAEsC,EAAEnJ,QAAS+jH,IAAI6pV,GAAGtic,EAAEzE,EAAEsC,GAAG0Y,EAAEgwU,OAAOvmV,EAAEuW,KAAEA,EAAEysb,GAAGnlc,EAAEzD,KAAKyD,EAAEvJ,IAAIuJ,EAAEnJ,MAAM,KAAKsL,EAAEuG,KAAKgQ,IAAKkiG,IAAI6pV,GAAGtic,EAAEzE,EAAEsC,GAAG0Y,EAAEgwU,OAAOvmV,EAASuW,GAAE,SAASi4B,EAAExuC,EAAEzE,EAAEsC,EAAE0Y,GAAG,OAAG,OAAOhb,GAAG,IAAIA,EAAElH,KAAKkH,EAAEi6b,UAAUY,gBAAgBv4b,EAAEu4b,eAAe76b,EAAEi6b,UAAUyN,iBAAiBplc,EAAEolc,iBAAsB1nc,EACrgB2nc,GAAGrlc,EAAEmC,EAAEuG,KAAKgQ,IAAKgwU,OAAOvmV,EAAEzE,KAAEA,EAAE3H,EAAE2H,EAAEsC,EAAEtI,UAAU,KAAMgxV,OAAOvmV,EAASzE,GAAE,SAASrI,EAAE8M,EAAEzE,EAAEsC,EAAE0Y,EAAE2/B,GAAG,OAAG,OAAO36C,GAAG,IAAIA,EAAElH,MAAWkH,EAAE4nc,GAAGtlc,EAAEmC,EAAEuG,KAAKgQ,EAAE2/B,IAAKqwS,OAAOvmV,EAAEzE,KAAEA,EAAE3H,EAAE2H,EAAEsC,IAAK0oV,OAAOvmV,EAASzE,GAAE,SAAS63C,EAAEpzC,EAAEzE,EAAEsC,GAAG,GAAG,kBAAkBtC,GAAG,kBAAkBA,EAAE,OAAOA,EAAEunc,GAAG,GAAGvnc,EAAEyE,EAAEuG,KAAK1I,IAAK0oV,OAAOvmV,EAAEzE,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEq0Y,UAAU,KAAK1pT,EAAG,OAAOroF,EAAEmlc,GAAGznc,EAAEnB,KAAKmB,EAAEjH,IAAIiH,EAAE7G,MAAM,KAAKsL,EAAEuG,KAAK1I,IAAK46G,IAAI6pV,GAAGtic,EAAE,KAAKzE,GAAGsC,EAAE0oV,OAAOvmV,EAAEnC,EAAE,KAAKsoF,EAAG,OAAO5qF,EAAE2nc,GAAG3nc,EAAEyE,EAAEuG,KAAK1I,IAAK0oV,OAAOvmV,EAAEzE,EAAE,GAAG8mc,GAAG9mc,IAAIyrF,EAAGzrF,GAAG,OAAOA,EAAE4nc,GAAG5nc,EACnfyE,EAAEuG,KAAK1I,EAAE,OAAQ0oV,OAAOvmV,EAAEzE,EAAEinc,GAAGxic,EAAEzE,GAAG,OAAO,KAAK,SAASlI,EAAE2M,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAE,OAAO2H,EAAEA,EAAEjH,IAAI,KAAK,GAAG,kBAAkBuJ,GAAG,kBAAkBA,EAAE,OAAO,OAAOjK,EAAE,KAAK26C,EAAEvuC,EAAEzE,EAAE,GAAGsC,EAAE0Y,GAAG,GAAG,kBAAkB1Y,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE+xY,UAAU,KAAK1pT,EAAG,OAAOroF,EAAEvJ,MAAMV,EAAEiK,EAAEzD,OAAOmS,EAAGrZ,EAAE8M,EAAEzE,EAAEsC,EAAEnJ,MAAMa,SAASghB,EAAE3iB,GAAGma,EAAE/N,EAAEzE,EAAEsC,EAAE0Y,GAAG,KAAK,KAAK4vE,EAAG,OAAOtoF,EAAEvJ,MAAMV,EAAE46C,EAAExuC,EAAEzE,EAAEsC,EAAE0Y,GAAG,KAAK,GAAG8rb,GAAGxkc,IAAImpF,EAAGnpF,GAAG,OAAO,OAAOjK,EAAE,KAAKV,EAAE8M,EAAEzE,EAAEsC,EAAE0Y,EAAE,MAAMisb,GAAGxic,EAAEnC,GAAG,OAAO,KAAK,SAASgpB,EAAE7mB,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,GAAG,kBAAkB2iB,GAAG,kBAAkBA,EAAE,OACleg4B,EAAEhzC,EADueyE,EAAEA,EAAEitB,IAAIpvB,IACtf,KAAW,GAAG0Y,EAAE3iB,GAAG,GAAG,kBAAkB2iB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEq5X,UAAU,KAAK1pT,EAAG,OAAOlmF,EAAEA,EAAEitB,IAAI,OAAO1W,EAAEjiB,IAAIuJ,EAAE0Y,EAAEjiB,MAAM,KAAKiiB,EAAEnc,OAAOmS,EAAGrZ,EAAEqI,EAAEyE,EAAEuW,EAAE7hB,MAAMa,SAAS3B,EAAE2iB,EAAEjiB,KAAKyZ,EAAExS,EAAEyE,EAAEuW,EAAE3iB,GAAG,KAAKuyF,EAAG,OAA2C33C,EAAEjzC,EAAtCyE,EAAEA,EAAEitB,IAAI,OAAO1W,EAAEjiB,IAAIuJ,EAAE0Y,EAAEjiB,MAAM,KAAWiiB,EAAE3iB,GAAG,GAAGyuc,GAAG9rb,IAAIywE,EAAGzwE,GAAG,OAAwBrjB,EAAEqI,EAAnByE,EAAEA,EAAEitB,IAAIpvB,IAAI,KAAW0Y,EAAE3iB,EAAE,MAAM4uc,GAAGjnc,EAAEgb,GAAG,OAAO,KAAK,SAAStW,EAAErM,EAAE0uB,EAAEisB,EAAExgC,GAAG,IAAI,IAAIygC,EAAE,KAAKz7C,EAAE,KAAKsW,EAAEiZ,EAAE6T,EAAE7T,EAAE,EAAEqT,EAAE,KAAK,OAAOtsB,GAAG8sB,EAAEoY,EAAEn7C,OAAO+iC,IAAI,CAAC9sB,EAAEvS,MAAMq/B,GAAGR,EAAEtsB,EAAEA,EAAE,MAAMssB,EAAEtsB,EAAEssb,QAAQ,IAAIzic,EAAEG,EAAEO,EAAEyV,EAAEklC,EAAEpY,GAAGpoB,GAAG,GAAG,OAAO7a,EAAE,CAAC,OAAOmW,IAAIA,EAAEssB,GAAG,MAAM31B,GAAGqJ,GAAG,OACjfnW,EAAE4iQ,WAAWv6P,EAAE3H,EAAEyV,GAAGiZ,EAAE4zB,EAAEhjD,EAAEovB,EAAE6T,GAAG,OAAOpjC,EAAEy7C,EAAEt7C,EAAEH,EAAE4ic,QAAQzic,EAAEH,EAAEG,EAAEmW,EAAEssB,EAAE,GAAGQ,IAAIoY,EAAEn7C,OAAO,OAAOyK,EAAEjK,EAAEyV,GAAGmlC,EAAE,GAAG,OAAOnlC,EAAE,CAAC,KAAK8sB,EAAEoY,EAAEn7C,OAAO+iC,IAAkB,QAAd9sB,EAAE+pC,EAAEx/C,EAAE26C,EAAEpY,GAAGpoB,MAAcuU,EAAE4zB,EAAE7sC,EAAEiZ,EAAE6T,GAAG,OAAOpjC,EAAEy7C,EAAEnlC,EAAEtW,EAAE4ic,QAAQtsb,EAAEtW,EAAEsW,GAAG,OAAOmlC,EAAE,IAAInlC,EAAEkN,EAAE3iB,EAAEyV,GAAG8sB,EAAEoY,EAAEn7C,OAAO+iC,IAAsB,QAAlBR,EAAE9O,EAAExd,EAAEzV,EAAEuiC,EAAEoY,EAAEpY,GAAGpoB,MAAc/N,GAAG,OAAO21B,EAAEmgO,WAAWzsP,EAAE+jC,OAAO,OAAOzX,EAAErhC,IAAI6hC,EAAER,EAAErhC,KAAKguB,EAAE4zB,EAAEvgB,EAAErT,EAAE6T,GAAG,OAAOpjC,EAAEy7C,EAAE7Y,EAAE5iC,EAAE4ic,QAAQhga,EAAE5iC,EAAE4iC,GAA4C,OAAzC31B,GAAGqJ,EAAEtC,SAAQ,SAAS/G,GAAG,OAAOzE,EAAE3H,EAAEoM,MAAYwuC,EAAE,SAAS/a,EAAE7/B,EAAE0uB,EAAEisB,EAAExgC,GAAG,IAAIygC,EAAEw4C,EAAGz4C,GAAG,GAAG,oBAAoBC,EAAE,MAAMz1C,MAAMmH,EAAE,MAAkB,GAAG,OAAfquC,EAAEC,EAAEh7C,KAAK+6C,IAC1e,MAAMx1C,MAAMmH,EAAE,MAAM,IAAI,IAAInN,EAAEy7C,EAAE,KAAKnlC,EAAEiZ,EAAE6T,EAAE7T,EAAE,EAAEqT,EAAE,KAAKziC,EAAEq7C,EAAE77B,OAAO,OAAOrJ,IAAInW,EAAEyf,KAAKwjB,IAAIjjC,EAAEq7C,EAAE77B,OAAO,CAACrJ,EAAEvS,MAAMq/B,GAAGR,EAAEtsB,EAAEA,EAAE,MAAMssB,EAAEtsB,EAAEssb,QAAQ,IAAIlia,EAAEpgC,EAAEO,EAAEyV,EAAEnW,EAAE2C,MAAMkY,GAAG,GAAG,OAAO0lB,EAAE,CAAC,OAAOpqB,IAAIA,EAAEssB,GAAG,MAAM31B,GAAGqJ,GAAG,OAAOoqB,EAAEqiO,WAAWv6P,EAAE3H,EAAEyV,GAAGiZ,EAAE4zB,EAAEziB,EAAEnR,EAAE6T,GAAG,OAAOpjC,EAAEy7C,EAAE/a,EAAE1gC,EAAE4ic,QAAQlia,EAAE1gC,EAAE0gC,EAAEpqB,EAAEssB,EAAE,GAAGziC,EAAEyf,KAAK,OAAO9U,EAAEjK,EAAEyV,GAAGmlC,EAAE,GAAG,OAAOnlC,EAAE,CAAC,MAAMnW,EAAEyf,KAAKwjB,IAAIjjC,EAAEq7C,EAAE77B,OAAwB,QAAjBxf,EAAEkgD,EAAEx/C,EAAEV,EAAE2C,MAAMkY,MAAcuU,EAAE4zB,EAAEhjD,EAAEovB,EAAE6T,GAAG,OAAOpjC,EAAEy7C,EAAEt7C,EAAEH,EAAE4ic,QAAQzic,EAAEH,EAAEG,GAAG,OAAOs7C,EAAE,IAAInlC,EAAEkN,EAAE3iB,EAAEyV,IAAInW,EAAEyf,KAAKwjB,IAAIjjC,EAAEq7C,EAAE77B,OAA4B,QAArBxf,EAAE2zB,EAAExd,EAAEzV,EAAEuiC,EAAEjjC,EAAE2C,MAAMkY,MAAc/N,GAAG,OAAO9M,EAAE4iQ,WAChfzsP,EAAE+jC,OAAO,OAAOl6C,EAAEoB,IAAI6hC,EAAEjjC,EAAEoB,KAAKguB,EAAE4zB,EAAEhjD,EAAEovB,EAAE6T,GAAG,OAAOpjC,EAAEy7C,EAAEt7C,EAAEH,EAAE4ic,QAAQzic,EAAEH,EAAEG,GAA4C,OAAzC8M,GAAGqJ,EAAEtC,SAAQ,SAAS/G,GAAG,OAAOzE,EAAE3H,EAAEoM,MAAYwuC,EAAE,OAAO,SAASxuC,EAAEuW,EAAE2/B,EAAE3H,GAAG,IAAIxgC,EAAE,kBAAkBmoC,GAAG,OAAOA,GAAGA,EAAE97C,OAAOmS,GAAI,OAAO2pC,EAAE5hD,IAAIyZ,IAAImoC,EAAEA,EAAExhD,MAAMa,UAAU,IAAIi5C,EAAE,kBAAkB0H,GAAG,OAAOA,EAAE,GAAG1H,EAAE,OAAO0H,EAAE05V,UAAU,KAAK1pT,EAAGlmF,EAAE,CAAS,IAARwuC,EAAE0H,EAAE5hD,IAAQyZ,EAAEwI,EAAE,OAAOxI,GAAG,CAAC,GAAGA,EAAEzZ,MAAMk6C,EAAE,CAAC,GAAmB,IAAZzgC,EAAE1Z,KAAY,GAAG6hD,EAAE97C,OAAOmS,EAAG,CAAC1O,EAAEmC,EAAE+N,EAAE4nb,UAASp/a,EAAE3iB,EAAEma,EAAEmoC,EAAExhD,MAAMa,WAAYgxV,OAAOvmV,EAAEA,EAAEuW,EAAE,MAAMvW,QAAgB,GAAG+N,EAAEg1b,cAAc7sZ,EAAE97C,KAAK,CAACyD,EAAEmC,EAAE+N,EAAE4nb,UAC5ep/a,EAAE3iB,EAAEma,EAAEmoC,EAAExhD,QAAS+jH,IAAI6pV,GAAGtic,EAAE+N,EAAEmoC,GAAG3/B,EAAEgwU,OAAOvmV,EAAEA,EAAEuW,EAAE,MAAMvW,EAAGnC,EAAEmC,EAAE+N,GAAG,MAAWxS,EAAEyE,EAAE+N,GAAGA,EAAEA,EAAE4nb,QAAQz/Y,EAAE97C,OAAOmS,IAAIgK,EAAE4sb,GAAGjtZ,EAAExhD,MAAMa,SAASyK,EAAEuG,KAAKgoC,EAAE2H,EAAE5hD,MAAOiyV,OAAOvmV,EAAEA,EAAEuW,KAAIg4B,EAAEy0Z,GAAG9sZ,EAAE97C,KAAK87C,EAAE5hD,IAAI4hD,EAAExhD,MAAM,KAAKsL,EAAEuG,KAAKgoC,IAAKkqE,IAAI6pV,GAAGtic,EAAEuW,EAAE2/B,GAAG3H,EAAEg4S,OAAOvmV,EAAEA,EAAEuuC,GAAG,OAAOjsB,EAAEtiB,GAAG,KAAKmmF,EAAGnmF,EAAE,CAAC,IAAI+N,EAAEmoC,EAAE5hD,IAAI,OAAOiiB,GAAG,CAAC,GAAGA,EAAEjiB,MAAMyZ,EAAX,CAAa,GAAG,IAAIwI,EAAEliB,KAAKkiB,EAAEi/a,UAAUY,gBAAgBlgZ,EAAEkgZ,eAAe7/a,EAAEi/a,UAAUyN,iBAAiB/sZ,EAAE+sZ,eAAe,CAACplc,EAAEmC,EAAEuW,EAAEo/a,UAASp/a,EAAE3iB,EAAE2iB,EAAE2/B,EAAE3gD,UAAU,KAAMgxV,OAAOvmV,EAAEA,EAAEuW,EAAE,MAAMvW,EAAOnC,EAAEmC,EAAEuW,GAAG,MAAWhb,EAAEyE,EAAEuW,GAAGA,EAAEA,EAAEo/a,SAAQp/a,EACpf2sb,GAAGhtZ,EAAEl2C,EAAEuG,KAAKgoC,IAAKg4S,OAAOvmV,EAAEA,EAAEuW,EAAE,OAAO+L,EAAEtiB,GAAG,GAAG,kBAAkBk2C,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAO3/B,GAAG,IAAIA,EAAEliB,KAAKwJ,EAAEmC,EAAEuW,EAAEo/a,UAASp/a,EAAE3iB,EAAE2iB,EAAE2/B,IAAKqwS,OAAOvmV,EAAEA,EAAEuW,IAAI1Y,EAAEmC,EAAEuW,IAAGA,EAAEusb,GAAG5sZ,EAAEl2C,EAAEuG,KAAKgoC,IAAKg4S,OAAOvmV,EAAEA,EAAEuW,GAAG+L,EAAEtiB,GAAG,GAAGqic,GAAGnsZ,GAAG,OAAOj2C,EAAED,EAAEuW,EAAE2/B,EAAE3H,GAAG,GAAGy4C,EAAG9wC,GAAG,OAAOziB,EAAEzzB,EAAEuW,EAAE2/B,EAAE3H,GAAc,GAAXC,GAAGg0Z,GAAGxic,EAAEk2C,GAAM,qBAAqBA,IAAInoC,EAAE,OAAO/N,EAAE3L,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM0E,MAAMmH,EAAE,IAAIsnF,EAAGxnF,EAAE5F,OAAO,cAAe,OAAOyD,EAAEmC,EAAEuW,IAAI,IAAI6sb,GAAGX,IAAG,GAAIY,GAAGZ,IAAG,GAAIa,GAAG,GAAGxyV,GAAG+rV,GAAGyG,IAAItyV,GAAG6rV,GAAGyG,IAAI9oW,GAAGqiW,GAAGyG,IACtd,SAAShyV,GAAGtxG,GAAG,GAAGA,IAAIsjc,GAAG,MAAMvqc,MAAMmH,EAAE,MAAM,OAAOF,EAAE,SAAS0xG,GAAG1xG,EAAEzE,GAAyC,OAAtC8yC,GAAEmsD,GAAGj/F,GAAG8yC,GAAE2iE,GAAGhxG,GAAGquC,GAAEyiE,GAAGwyV,IAAItjc,EAAEzE,EAAE8oV,UAAmB,KAAK,EAAE,KAAK,GAAG9oV,GAAGA,EAAEA,EAAEwrG,iBAAiBxrG,EAAEk3b,aAAaloW,GAAG,KAAK,IAAI,MAAM,QAAkEhvF,EAAEgvF,GAArChvF,GAAvByE,EAAE,IAAIA,EAAEzE,EAAEo8L,WAAWp8L,GAAMk3b,cAAc,KAAKzyb,EAAEA,EAAEwgM,SAAkB9zG,GAAEokB,IAAIziE,GAAEyiE,GAAGv1G,GAAG,SAAS28V,KAAKxrQ,GAAEokB,IAAIpkB,GAAEskB,IAAItkB,GAAE8N,IAAI,SAAS4X,GAAGpyG,GAAGsxG,GAAG9W,GAAGlnC,SAAS,IAAI/3D,EAAE+1G,GAAGR,GAAGx9C,SAAaz1D,EAAE0sF,GAAGhvF,EAAEyE,EAAE5F,MAAMmB,IAAIsC,IAAIwwC,GAAE2iE,GAAGhxG,GAAGquC,GAAEyiE,GAAGjzG,IAAI,SAAS+6C,GAAG54C,GAAGgxG,GAAG19C,UAAUtzD,IAAI0sF,GAAEokB,IAAIpkB,GAAEskB,KAAK,IAAIp+E,GAAEiqa,GAAG,GAC9c,SAASpnE,GAAGz1X,GAAG,IAAI,IAAIzE,EAAEyE,EAAE,OAAOzE,GAAG,CAAC,GAAG,KAAKA,EAAElH,IAAI,CAAC,IAAIwJ,EAAEtC,EAAEk6b,cAAc,GAAG,OAAO53b,IAAmB,QAAfA,EAAEA,EAAE63b,aAAqB,OAAO73b,EAAEpJ,MAAM,OAAOoJ,EAAEpJ,MAAM,OAAO8G,OAAO,GAAG,KAAKA,EAAElH,UAAK,IAASkH,EAAEgoc,cAAcC,aAAa,GAAG,KAAa,GAARjoc,EAAEq9D,OAAU,OAAOr9D,OAAO,GAAG,OAAOA,EAAEhH,MAAM,CAACgH,EAAEhH,MAAMgyV,OAAOhrV,EAAEA,EAAEA,EAAEhH,MAAM,SAAS,GAAGgH,IAAIyE,EAAE,MAAM,KAAK,OAAOzE,EAAEo6b,SAAS,CAAC,GAAG,OAAOp6b,EAAEgrV,QAAQhrV,EAAEgrV,SAASvmV,EAAE,OAAO,KAAKzE,EAAEA,EAAEgrV,OAAOhrV,EAAEo6b,QAAQpvG,OAAOhrV,EAAEgrV,OAAOhrV,EAAEA,EAAEo6b,QAAQ,OAAO,KAAK,IAAI8N,GAAG,KAAKC,GAAG,KAAKltE,IAAG,EACpd,SAASmtE,GAAG3jc,EAAEzE,GAAG,IAAIsC,EAAE23X,GAAG,EAAE,KAAK,KAAK,GAAG33X,EAAEklc,YAAY,UAAUllc,EAAEzD,KAAK,UAAUyD,EAAE23b,UAAUj6b,EAAEsC,EAAE0oV,OAAOvmV,EAAEnC,EAAE+6D,MAAM,EAAE,OAAO54D,EAAE0ic,YAAY1ic,EAAE0ic,WAAWC,WAAW9kc,EAAEmC,EAAE0ic,WAAW7kc,GAAGmC,EAAE4ic,YAAY5ic,EAAE0ic,WAAW7kc,EAAE,SAASm4X,GAAGh2X,EAAEzE,GAAG,OAAOyE,EAAE3L,KAAK,KAAK,EAAE,IAAIwJ,EAAEmC,EAAE5F,KAAyE,OAAO,QAA3EmB,EAAE,IAAIA,EAAE8oV,UAAUxmV,EAAEjD,gBAAgBW,EAAEutF,SAASluF,cAAc,KAAKW,KAAmByE,EAAEw1b,UAAUj6b,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKyE,EAAE4jc,cAAc,IAAIroc,EAAE8oV,SAAS,KAAK9oV,KAAYyE,EAAEw1b,UAAUj6b,GAAE,GAAwB,QAAQ,OAAM,GACve,SAAS6wD,GAAGpsD,GAAG,GAAGw2X,GAAG,CAAC,IAAIj7X,EAAEmoc,GAAG,GAAGnoc,EAAE,CAAC,IAAIsC,EAAEtC,EAAE,IAAIy6X,GAAGh2X,EAAEzE,GAAG,CAAqB,KAApBA,EAAE6gc,GAAGv+b,EAAE88b,gBAAqB3kE,GAAGh2X,EAAEzE,GAAuC,OAAnCyE,EAAE44D,OAAe,KAAT54D,EAAE44D,MAAY,EAAE49T,IAAG,OAAGitE,GAAGzjc,GAAS2jc,GAAGF,GAAG5lc,GAAG4lc,GAAGzjc,EAAE0jc,GAAGtH,GAAG7gc,EAAEm3b,iBAAiB1yb,EAAE44D,OAAe,KAAT54D,EAAE44D,MAAY,EAAE49T,IAAG,EAAGitE,GAAGzjc,GAAG,SAAS6jc,GAAG7jc,GAAG,IAAIA,EAAEA,EAAEumV,OAAO,OAAOvmV,GAAG,IAAIA,EAAE3L,KAAK,IAAI2L,EAAE3L,KAAK,KAAK2L,EAAE3L,KAAK2L,EAAEA,EAAEumV,OAAOk9G,GAAGzjc,EAC5S,SAAS61X,GAAG71X,GAAG,GAAGA,IAAIyjc,GAAG,OAAM,EAAG,IAAIjtE,GAAG,OAAOqtE,GAAG7jc,GAAGw2X,IAAG,GAAG,EAAG,IAAIj7X,EAAEyE,EAAE5F,KAAK,GAAG,IAAI4F,EAAE3L,KAAK,SAASkH,GAAG,SAASA,IAAIygc,GAAGzgc,EAAEyE,EAAEujc,eAAe,IAAIhoc,EAAEmoc,GAAGnoc,GAAGooc,GAAG3jc,EAAEzE,GAAGA,EAAE6gc,GAAG7gc,EAAEo/b,aAAmB,GAANkJ,GAAG7jc,GAAM,KAAKA,EAAE3L,IAAI,CAAgD,KAA7B2L,EAAE,QAApBA,EAAEA,EAAEy1b,eAAyBz1b,EAAE01b,WAAW,MAAW,MAAM38b,MAAMmH,EAAE,MAAMF,EAAE,CAAiB,IAAhBA,EAAEA,EAAE26b,YAAgBp/b,EAAE,EAAEyE,GAAG,CAAC,GAAG,IAAIA,EAAEqkV,SAAS,CAAC,IAAIxmV,EAAEmC,EAAEvL,KAAK,GAAG,OAAOoJ,EAAE,CAAC,GAAG,IAAItC,EAAE,CAACmoc,GAAGtH,GAAGp8b,EAAE26b,aAAa,MAAM36b,EAAEzE,QAAQ,MAAMsC,GAAG,OAAOA,GAAG,OAAOA,GAAGtC,IAAIyE,EAAEA,EAAE26b,YAAY+I,GAAG,WAAWA,GAAGD,GAAGrH,GAAGp8b,EAAEw1b,UAAUmF,aAAa,KAAK,OAAM,EACtf,SAASmJ,KAAKJ,GAAGD,GAAG,KAAKjtE,IAAG,EAAG,IAAI18U,GAAG,GAAG,SAASm8U,KAAK,IAAI,IAAIj2X,EAAE,EAAEA,EAAE85C,GAAG1mD,OAAO4M,IAAI85C,GAAG95C,GAAG+jc,8BAA8B,KAAKjqZ,GAAG1mD,OAAO,EAAE,IAAI4wc,GAAG/9W,EAAGsqW,uBAAuBv2Y,GAAGisC,EAAGuqW,wBAAwBn4F,GAAG,EAAE9nQ,GAAE,KAAKz6C,GAAE,KAAKi7C,GAAE,KAAK+vQ,IAAG,EAAGE,IAAG,EAAG,SAASijG,KAAK,MAAMlrc,MAAMmH,EAAE,MAAO,SAAS+2X,GAAGj3X,EAAEzE,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIsC,EAAE,EAAEA,EAAEtC,EAAEnI,QAAQyK,EAAEmC,EAAE5M,OAAOyK,IAAI,IAAI6zW,GAAG1xW,EAAEnC,GAAGtC,EAAEsC,IAAI,OAAM,EAAG,OAAM,EAC9X,SAAS84V,GAAG32V,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAyH,GAAtHmiT,GAAGniT,EAAEq6C,GAAEh1F,EAAEA,EAAEk6b,cAAc,KAAKl6b,EAAEqlc,YAAY,KAAKrlc,EAAE+kc,MAAM,EAAE0D,GAAG1wY,QAAQ,OAAOtzD,GAAG,OAAOA,EAAEy1b,cAAcyO,GAAGC,GAAGnkc,EAAEnC,EAAE0Y,EAAE3iB,GAAMotW,GAAG,CAAC9qT,EAAE,EAAE,EAAE,CAAO,GAAN8qT,IAAG,IAAQ,GAAG9qT,GAAG,MAAMn9C,MAAMmH,EAAE,MAAMg2C,GAAG,EAAE66C,GAAEj7C,GAAE,KAAKv6C,EAAEqlc,YAAY,KAAKoD,GAAG1wY,QAAQ8wY,GAAGpkc,EAAEnC,EAAE0Y,EAAE3iB,SAASotW,IAAkE,GAA9DgjG,GAAG1wY,QAAQ+wY,GAAG9oc,EAAE,OAAOu6C,IAAG,OAAOA,GAAEpjC,KAAK2lV,GAAG,EAAEtnQ,GAAEj7C,GAAEy6C,GAAE,KAAKuwQ,IAAG,EAAMvlW,EAAE,MAAMxC,MAAMmH,EAAE,MAAM,OAAOF,EAAE,SAASk3X,KAAK,IAAIl3X,EAAE,CAACy1b,cAAc,KAAKoL,UAAU,KAAKyD,UAAU,KAAK1pa,MAAM,KAAKloB,KAAK,MAA8C,OAAxC,OAAOq+E,GAAER,GAAEklW,cAAc1kW,GAAE/wF,EAAE+wF,GAAEA,GAAEr+E,KAAK1S,EAAS+wF,GAC/e,SAASwzW,KAAK,GAAG,OAAOzuZ,GAAE,CAAC,IAAI91C,EAAEuwF,GAAEulK,UAAU91P,EAAE,OAAOA,EAAEA,EAAEy1b,cAAc,UAAUz1b,EAAE81C,GAAEpjC,KAAK,IAAInX,EAAE,OAAOw1F,GAAER,GAAEklW,cAAc1kW,GAAEr+E,KAAK,GAAG,OAAOnX,EAAEw1F,GAAEx1F,EAAEu6C,GAAE91C,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMjH,MAAMmH,EAAE,MAAUF,EAAE,CAACy1b,eAAP3/Y,GAAE91C,GAAqBy1b,cAAcoL,UAAU/qZ,GAAE+qZ,UAAUyD,UAAUxuZ,GAAEwuZ,UAAU1pa,MAAMkb,GAAElb,MAAMloB,KAAK,MAAM,OAAOq+E,GAAER,GAAEklW,cAAc1kW,GAAE/wF,EAAE+wF,GAAEA,GAAEr+E,KAAK1S,EAAE,OAAO+wF,GAAE,SAASyzW,GAAGxkc,EAAEzE,GAAG,MAAM,oBAAoBA,EAAEA,EAAEyE,GAAGzE,EACvY,SAASkpc,GAAGzkc,GAAG,IAAIzE,EAAEgpc,KAAK1mc,EAAEtC,EAAEq/B,MAAM,GAAG,OAAO/8B,EAAE,MAAM9E,MAAMmH,EAAE,MAAMrC,EAAE6mc,oBAAoB1kc,EAAE,IAAIuW,EAAEu/B,GAAEliD,EAAE2iB,EAAE+tb,UAAUpuZ,EAAEr4C,EAAEknK,QAAQ,GAAG,OAAO7uH,EAAE,CAAC,GAAG,OAAOtiD,EAAE,CAAC,IAAI0uB,EAAE1uB,EAAE8e,KAAK9e,EAAE8e,KAAKwjC,EAAExjC,KAAKwjC,EAAExjC,KAAK4P,EAAE/L,EAAE+tb,UAAU1wc,EAAEsiD,EAAEr4C,EAAEknK,QAAQ,KAAK,GAAG,OAAOnxK,EAAE,CAACA,EAAEA,EAAE8e,KAAK6D,EAAEA,EAAEsqb,UAAU,IAAItyZ,EAAEjsB,EAAE4zB,EAAE,KAAKnoC,EAAEna,EAAE,EAAE,CAAC,IAAI46C,EAAEzgC,EAAEqzb,KAAK,IAAI/oG,GAAG7pT,KAAKA,EAAE,OAAOD,IAAIA,EAAEA,EAAE77B,KAAK,CAAC0ub,KAAK,EAAE5kW,OAAOzuF,EAAEyuF,OAAOmoW,aAAa52b,EAAE42b,aAAaC,WAAW72b,EAAE62b,WAAWlyb,KAAK,OAAO6D,EAAExI,EAAE42b,eAAe3kc,EAAE+N,EAAE62b,WAAW5kc,EAAEuW,EAAExI,EAAEyuF,YAAY,CAAC,IAAItpG,EAAE,CAACkuc,KAAK5yZ,EAAEguD,OAAOzuF,EAAEyuF,OAAOmoW,aAAa52b,EAAE42b,aAC9fC,WAAW72b,EAAE62b,WAAWlyb,KAAK,MAAM,OAAO67B,GAAGjsB,EAAEisB,EAAEr7C,EAAEgjD,EAAE3/B,GAAGg4B,EAAEA,EAAE77B,KAAKxf,EAAEq9F,GAAE+vW,OAAO9xZ,EAAEgzZ,IAAIhzZ,EAAEzgC,EAAEA,EAAE2E,WAAW,OAAO3E,GAAGA,IAAIna,GAAG,OAAO26C,EAAE2H,EAAE3/B,EAAEg4B,EAAE77B,KAAK4P,EAAEovV,GAAGn7V,EAAEhb,EAAEk6b,iBAAiB8K,IAAG,GAAIhlc,EAAEk6b,cAAcl/a,EAAEhb,EAAEslc,UAAU3qZ,EAAE36C,EAAE+oc,UAAU/1Z,EAAE1wC,EAAEgnc,kBAAkBtub,EAAE,MAAM,CAAChb,EAAEk6b,cAAc53b,EAAEy+M,UACtQ,SAASwoP,GAAG9kc,GAAG,IAAIzE,EAAEgpc,KAAK1mc,EAAEtC,EAAEq/B,MAAM,GAAG,OAAO/8B,EAAE,MAAM9E,MAAMmH,EAAE,MAAMrC,EAAE6mc,oBAAoB1kc,EAAE,IAAIuW,EAAE1Y,EAAEy+M,SAAS1oN,EAAEiK,EAAEknK,QAAQ7uH,EAAE36C,EAAEk6b,cAAc,GAAG,OAAO7hc,EAAE,CAACiK,EAAEknK,QAAQ,KAAK,IAAIziJ,EAAE1uB,EAAEA,EAAE8e,KAAK,GAAGwjC,EAAEl2C,EAAEk2C,EAAE5zB,EAAEk6E,QAAQl6E,EAAEA,EAAE5P,WAAW4P,IAAI1uB,GAAG89W,GAAGx7T,EAAE36C,EAAEk6b,iBAAiB8K,IAAG,GAAIhlc,EAAEk6b,cAAcv/Y,EAAE,OAAO36C,EAAE+oc,YAAY/oc,EAAEslc,UAAU3qZ,GAAGr4C,EAAEgnc,kBAAkB3uZ,EAAE,MAAM,CAACA,EAAE3/B,GACnV,SAASwub,GAAG/kc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEhb,EAAEypc,YAAYzub,EAAEA,EAAEhb,EAAEiwZ,SAAS,IAAI53Z,EAAE2H,EAAEwoc,8BAAyI,GAAxG,OAAOnwc,EAAEoM,EAAEpM,IAAI2iB,GAAUvW,EAAEA,EAAEilc,kBAAiBjlc,GAAGq4V,GAAGr4V,KAAKA,KAAEzE,EAAEwoc,8BAA8Bxtb,EAAEujC,GAAGx8C,KAAK/B,KAAMyE,EAAE,OAAOnC,EAAEtC,EAAEiwZ,SAAoB,MAAX1xW,GAAGx8C,KAAK/B,GAASxC,MAAMmH,EAAE,MACzP,SAASglc,GAAGllc,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEs6F,GAAE,GAAG,OAAOt6F,EAAE,MAAMmF,MAAMmH,EAAE,MAAM,IAAIg2C,EAAE36C,EAAEypc,YAAY1ib,EAAE4zB,EAAE36C,EAAEiwZ,SAASj9W,EAAEy1Z,GAAG1wY,QAAQvlD,EAAEwgC,EAAE+iZ,UAAS,WAAW,OAAOyT,GAAGnxc,EAAE2H,EAAEsC,MAAK2wC,EAAEzgC,EAAE,GAAG7a,EAAE6a,EAAE,GAAGA,EAAEgjF,GAAE,IAAI39C,EAAEpzC,EAAEy1b,cAAcpic,EAAE+/C,EAAEusG,KAAK94H,EAAExzB,EAAE8xc,YAAYllc,EAAEmzC,EAAEn8B,OAAOm8B,EAAEA,EAAEooF,UAAU,IAAI/nG,EAAE88D,GACuO,OADrOvwF,EAAEy1b,cAAc,CAAC91S,KAAKtsJ,EAAE4jB,OAAO1b,EAAEigI,UAAUjlH,GAAGg4B,EAAEgyG,WAAU,WAAWltJ,EAAE8xc,YAAYtnc,EAAExK,EAAE+xc,YAAY52Z,EAAE,IAAIxuC,EAAEk2C,EAAE36C,EAAEiwZ,SAAS,IAAI95C,GAAGpvV,EAAEtiB,GAAG,CAACA,EAAEnC,EAAEtC,EAAEiwZ,SAAS95C,GAAGx+W,EAAE8M,KAAKwuC,EAAExuC,GAAGA,EAAE+hc,GAAGtua,GAAG7/B,EAAEqxc,kBAAkBjlc,EAAEpM,EAAEijc,cAAc72b,EAAEpM,EAAEqxc,iBAAiBrxc,EAAEqjc,gBAAgBj3b,EAAE,IAAI,IAAIuW,EAC5f3iB,EAAEsjc,cAAc3oZ,EAAEvuC,EAAE,EAAEuuC,GAAG,CAAC,IAAIxgC,EAAE,GAAGukF,GAAG/jD,GAAGlV,EAAE,GAAGtrB,EAAEwI,EAAExI,IAAI/N,EAAEuuC,IAAIlV,MAAK,CAACx7B,EAAEtC,EAAEgb,IAAIg4B,EAAEgyG,WAAU,WAAW,OAAOhqI,EAAEhb,EAAEiwZ,SAAQ,WAAW,IAAIxrZ,EAAE3M,EAAE8xc,YAAYtnc,EAAExK,EAAE+xc,YAAY,IAAIvnc,EAAEmC,EAAEzE,EAAEiwZ,UAAU,IAAIj1Y,EAAEwrb,GAAGtua,GAAG7/B,EAAEqxc,kBAAkB1ub,EAAE3iB,EAAEijc,aAAa,MAAMlha,GAAG93B,GAAE,WAAW,MAAM83B,WAAS,CAACp6B,EAAEgb,IAAIm7V,GAAG7qV,EAAEhpB,IAAI6zW,GAAGzxW,EAAE1E,IAAIm2W,GAAGt+T,EAAE78B,MAAKvW,EAAE,CAAC+kK,QAAQ,KAAKu3C,SAAS,KAAKooP,oBAAoBF,GAAGK,kBAAkB3xc,IAAKopN,SAAS9tK,EAAE62Z,GAAG7/W,KAAK,KAAK+K,GAAEvwF,GAAG+N,EAAE6sB,MAAM56B,EAAE+N,EAAEu2b,UAAU,KAAKpxc,EAAE6xc,GAAGnxc,EAAE2H,EAAEsC,GAAGkQ,EAAE0nb,cAAc1nb,EAAE8yb,UAAU3tc,GAAUA,EACte,SAASoyc,GAAGtlc,EAAEzE,EAAEsC,GAAc,OAAOqnc,GAAZX,KAAiBvkc,EAAEzE,EAAEsC,GAAG,SAAS0nc,GAAGvlc,GAAG,IAAIzE,EAAE27X,KAAmL,MAA9K,oBAAoBl3X,IAAIA,EAAEA,KAAKzE,EAAEk6b,cAAcl6b,EAAEslc,UAAU7gc,EAAoFA,GAAlFA,EAAEzE,EAAEq/B,MAAM,CAACmqI,QAAQ,KAAKu3C,SAAS,KAAKooP,oBAAoBF,GAAGK,kBAAkB7kc,IAAOs8M,SAAS+oP,GAAG7/W,KAAK,KAAK+K,GAAEvwF,GAAS,CAACzE,EAAEk6b,cAAcz1b,GAChR,SAASwlc,GAAGxlc,EAAEzE,EAAEsC,EAAE0Y,GAAkO,OAA/NvW,EAAE,CAAC3L,IAAI2L,EAAEspB,OAAO/tB,EAAEm6N,QAAQ73N,EAAEyiH,KAAK/pG,EAAE7D,KAAK,MAAsB,QAAhBnX,EAAEg1F,GAAEqwW,cAAsBrlc,EAAE,CAACmnc,WAAW,MAAMnyW,GAAEqwW,YAAYrlc,EAAEA,EAAEmnc,WAAW1ic,EAAE0S,KAAK1S,GAAmB,QAAfnC,EAAEtC,EAAEmnc,YAAoBnnc,EAAEmnc,WAAW1ic,EAAE0S,KAAK1S,GAAGuW,EAAE1Y,EAAE6U,KAAK7U,EAAE6U,KAAK1S,EAAEA,EAAE0S,KAAK6D,EAAEhb,EAAEmnc,WAAW1ic,GAAWA,EAAE,SAASylc,GAAGzlc,GAA4B,OAAdA,EAAE,CAACszD,QAAQtzD,GAAhBk3X,KAA4Bu+D,cAAcz1b,EAAE,SAAS0lc,KAAK,OAAOnB,KAAK9O,cAAc,SAASkQ,GAAG3lc,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEsjY,KAAK3mS,GAAE33B,OAAO54D,EAAEpM,EAAE6hc,cAAc+P,GAAG,EAAEjqc,EAAEsC,OAAE,OAAO,IAAS0Y,EAAE,KAAKA,GACjc,SAASqvb,GAAG5lc,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAE2wc,KAAKhub,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI2/B,OAAE,EAAO,GAAG,OAAOJ,GAAE,CAAC,IAAIxzB,EAAEwzB,GAAE2/Y,cAA0B,GAAZv/Y,EAAE5zB,EAAEozM,QAAW,OAAOn/M,GAAG0gX,GAAG1gX,EAAE+L,EAAEg+F,MAAmB,YAAZklV,GAAGjqc,EAAEsC,EAAEq4C,EAAE3/B,GAAWg6E,GAAE33B,OAAO54D,EAAEpM,EAAE6hc,cAAc+P,GAAG,EAAEjqc,EAAEsC,EAAEq4C,EAAE3/B,GAAG,SAASsvb,GAAG7lc,EAAEzE,GAAG,OAAOoqc,GAAG,IAAI,EAAE3lc,EAAEzE,GAAG,SAAS47X,GAAGn3X,EAAEzE,GAAG,OAAOqqc,GAAG,IAAI,EAAE5lc,EAAEzE,GAAG,SAASuqc,GAAG9lc,EAAEzE,GAAG,OAAOqqc,GAAG,EAAE,EAAE5lc,EAAEzE,GAAG,SAASwqc,GAAG/lc,EAAEzE,GAAG,MAAG,oBAAoBA,GAASyE,EAAEA,IAAIzE,EAAEyE,GAAG,WAAWzE,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASyE,EAAEA,IAAIzE,EAAE+3D,QAAQtzD,EAAE,WAAWzE,EAAE+3D,QAAQ,YAAtE,EACxY,SAAS0yY,GAAGhmc,EAAEzE,EAAEsC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAErH,OAAO,CAACwJ,IAAI,KAAY4lc,GAAG,EAAE,EAAEG,GAAGvgX,KAAK,KAAKjqF,EAAEyE,GAAGnC,GAAG,SAASgoX,MAAM,SAASgL,GAAG7wX,EAAEzE,GAAG,IAAIsC,EAAE0mc,KAAKhpc,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIgb,EAAE1Y,EAAE43b,cAAc,OAAG,OAAOl/a,GAAG,OAAOhb,GAAG07X,GAAG17X,EAAEgb,EAAE,IAAWA,EAAE,IAAG1Y,EAAE43b,cAAc,CAACz1b,EAAEzE,GAAUyE,GAAE,SAASylX,GAAGzlX,EAAEzE,GAAG,IAAIsC,EAAE0mc,KAAKhpc,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIgb,EAAE1Y,EAAE43b,cAAc,OAAG,OAAOl/a,GAAG,OAAOhb,GAAG07X,GAAG17X,EAAEgb,EAAE,IAAWA,EAAE,IAAGvW,EAAEA,IAAInC,EAAE43b,cAAc,CAACz1b,EAAEzE,GAAUyE,GACzZ,SAASqmX,GAAGrmX,EAAEzE,GAAG,IAAIsC,EAAEwhc,KAAKvtX,GAAG,GAAGj0E,EAAE,GAAGA,GAAE,WAAWmC,GAAE,MAAM8xE,GAAG,GAAGj0E,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEm8C,GAAGqoF,WAAWroF,GAAGqoF,WAAW,EAAE,IAAIriI,GAAE,GAAIzE,IAAV,QAAsBy+C,GAAGqoF,WAAWxkI,MAC5J,SAASwnc,GAAGrlc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEurb,KAAKluc,EAAEmuc,GAAG/hc,GAAGk2C,EAAE,CAACkrZ,KAAKxtc,EAAE4oG,OAAO3+F,EAAE8mc,aAAa,KAAKC,WAAW,KAAKlyb,KAAK,MAAM4P,EAAE/mB,EAAEwpK,QAA6E,GAArE,OAAOziJ,EAAE4zB,EAAExjC,KAAKwjC,GAAGA,EAAExjC,KAAK4P,EAAE5P,KAAK4P,EAAE5P,KAAKwjC,GAAG36C,EAAEwpK,QAAQ7uH,EAAE5zB,EAAEtiB,EAAE81P,UAAa91P,IAAIuwF,IAAG,OAAOjuE,GAAGA,IAAIiuE,GAAEywQ,GAAGF,IAAG,MAAO,CAAC,GAAG,IAAI9gW,EAAEsgc,QAAQ,OAAOh+a,GAAG,IAAIA,EAAEg+a,QAAiC,QAAxBh+a,EAAE/mB,EAAEmpc,qBAA8B,IAAI,IAAIn2Z,EAAEhzC,EAAEspc,kBAAkB92b,EAAEuU,EAAEisB,EAAE1wC,GAAmC,GAAhCq4C,EAAEyuZ,aAAarib,EAAE4zB,EAAE0uZ,WAAW72b,EAAK2jW,GAAG3jW,EAAEwgC,GAAG,OAAO,MAAMC,IAAawzZ,GAAGhic,EAAEpM,EAAE2iB,IAC9Z,IAAI8tb,GAAG,CAAC4B,YAAYzF,GAAG5jP,YAAYqnP,GAAGxla,WAAWwla,GAAG1jT,UAAU0jT,GAAGhqP,oBAAoBgqP,GAAG5S,gBAAgB4S,GAAGpoP,QAAQooP,GAAG9nP,WAAW8nP,GAAGjoP,OAAOioP,GAAG3S,SAAS2S,GAAG7S,cAAc6S,GAAGiC,iBAAiBjC,GAAGkC,cAAclC,GAAGmC,iBAAiBnC,GAAGoC,oBAAoBpC,GAAGqC,0BAAyB,GAAIpC,GAAG,CAAC+B,YAAYzF,GAAG5jP,YAAY,SAAS58M,EAAEzE,GAA4C,OAAzC27X,KAAKu+D,cAAc,CAACz1b,OAAE,IAASzE,EAAE,KAAKA,GAAUyE,GAAGy+B,WAAW+ha,GAAGjgT,UAAUslT,GAAG5rP,oBAAoB,SAASj6M,EAAEzE,EAAEsC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAErH,OAAO,CAACwJ,IAAI,KAAY2lc,GAAG,EAAE,EAAEI,GAAGvgX,KAAK,KACvfjqF,EAAEyE,GAAGnC,IAAIwzb,gBAAgB,SAASrxb,EAAEzE,GAAG,OAAOoqc,GAAG,EAAE,EAAE3lc,EAAEzE,IAAIsgN,QAAQ,SAAS77M,EAAEzE,GAAG,IAAIsC,EAAEq5X,KAAqD,OAAhD37X,OAAE,IAASA,EAAE,KAAKA,EAAEyE,EAAEA,IAAInC,EAAE43b,cAAc,CAACz1b,EAAEzE,GAAUyE,GAAGm8M,WAAW,SAASn8M,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAE2gX,KAAuK,OAAlK37X,OAAE,IAASsC,EAAEA,EAAEtC,GAAGA,EAAEgb,EAAEk/a,cAAcl/a,EAAEsqb,UAAUtlc,EAAmFyE,GAAjFA,EAAEuW,EAAEqkB,MAAM,CAACmqI,QAAQ,KAAKu3C,SAAS,KAAKooP,oBAAoB1kc,EAAE6kc,kBAAkBtpc,IAAO+gN,SAAS+oP,GAAG7/W,KAAK,KAAK+K,GAAEvwF,GAAS,CAACuW,EAAEk/a,cAAcz1b,IAAIg8M,OAAOypP,GAAGnU,SAASiU,GAAGnU,cAAcvrE,GAAGqgF,iBAAiB,SAASlmc,GAAG,IAAIzE,EAAEgqc,GAAGvlc,GAAGnC,EAAEtC,EAAE,GAAGgb,EAAEhb,EAAE,GAC5Z,OAD+Zsqc,IAAG,WAAW,IAAItqc,EAAEy+C,GAAGqoF,WAC9eroF,GAAGqoF,WAAW,EAAE,IAAI9rH,EAAEvW,GAAN,QAAiBg6C,GAAGqoF,WAAW9mI,KAAI,CAACyE,IAAWnC,GAAGsoc,cAAc,WAAW,IAAInmc,EAAEulc,IAAG,GAAIhqc,EAAEyE,EAAE,GAA8B,OAANylc,GAArBzlc,EAAEqmX,GAAG7gS,KAAK,KAAKxlF,EAAE,KAAgB,CAACA,EAAEzE,IAAI6qc,iBAAiB,SAASpmc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAE2gX,KAAkF,OAA7E3gX,EAAEk/a,cAAc,CAAC91S,KAAK,CAACwlT,YAAY5pc,EAAE6pc,YAAY,MAAMnub,OAAOjX,EAAEw7H,UAAU39H,GAAUqnc,GAAG3ub,EAAEvW,EAAEzE,EAAEsC,IAAIwoc,oBAAoB,WAAW,GAAG7vE,GAAG,CAAC,IAAIx2X,GAAE,EAAGzE,EAzDlD,SAAYyE,GAAG,MAAM,CAAC4vY,SAASroT,EAAGhtF,SAASyF,EAAEq3B,QAAQr3B,GAyDDumc,EAAG,WAAiD,MAAtCvmc,IAAIA,GAAE,EAAGnC,EAAE,MAAMy+b,MAAM/hc,SAAS,MAAYxB,MAAMmH,EAAE,SAASrC,EAAE0nc,GAAGhqc,GAAG,GAC1Z,OAD6Z,KAAY,EAAPg1F,GAAEhqF,QAAUgqF,GAAE33B,OAAO,IAAI4sY,GAAG,GAAE,WAAW3nc,EAAE,MAAMy+b,MAAM/hc,SAAS,YAChf,EAAO,OAAcgB,EAAmC,OAANgqc,GAA3Bhqc,EAAE,MAAM+gc,MAAM/hc,SAAS,KAAiBgB,GAAG+qc,0BAAyB,GAAInC,GAAG,CAAC8B,YAAYzF,GAAG5jP,YAAYi0K,GAAGpyV,WAAW+ha,GAAGjgT,UAAU42O,GAAGl9K,oBAAoB+rP,GAAG3U,gBAAgByU,GAAGjqP,QAAQ4pK,GAAGtpK,WAAWsoP,GAAGzoP,OAAO0pP,GAAGpU,SAAS,WAAW,OAAOmT,GAAGD,KAAKpT,cAAcvrE,GAAGqgF,iBAAiB,SAASlmc,GAAG,IAAIzE,EAAEkpc,GAAGD,IAAI3mc,EAAEtC,EAAE,GAAGgb,EAAEhb,EAAE,GAA6F,OAA1F47X,IAAG,WAAW,IAAI57X,EAAEy+C,GAAGqoF,WAAWroF,GAAGqoF,WAAW,EAAE,IAAI9rH,EAAEvW,GAAN,QAAiBg6C,GAAGqoF,WAAW9mI,KAAI,CAACyE,IAAWnC,GAAGsoc,cAAc,WAAW,IAAInmc,EAAEykc,GAAGD,IAAI,GAAG,MAAM,CAACkB,KAAKpyY,QAC9etzD,IAAIomc,iBAAiBd,GAAGe,oBAAoB,WAAW,OAAO5B,GAAGD,IAAI,IAAI8B,0BAAyB,GAAIlC,GAAG,CAAC6B,YAAYzF,GAAG5jP,YAAYi0K,GAAGpyV,WAAW+ha,GAAGjgT,UAAU42O,GAAGl9K,oBAAoB+rP,GAAG3U,gBAAgByU,GAAGjqP,QAAQ4pK,GAAGtpK,WAAW2oP,GAAG9oP,OAAO0pP,GAAGpU,SAAS,WAAW,OAAOwT,GAAGN,KAAKpT,cAAcvrE,GAAGqgF,iBAAiB,SAASlmc,GAAG,IAAIzE,EAAEupc,GAAGN,IAAI3mc,EAAEtC,EAAE,GAAGgb,EAAEhb,EAAE,GAA6F,OAA1F47X,IAAG,WAAW,IAAI57X,EAAEy+C,GAAGqoF,WAAWroF,GAAGqoF,WAAW,EAAE,IAAI9rH,EAAEvW,GAAN,QAAiBg6C,GAAGqoF,WAAW9mI,KAAI,CAACyE,IAAWnC,GAAGsoc,cAAc,WAAW,IAAInmc,EAAE8kc,GAAGN,IAAI,GAAG,MAAM,CAACkB,KAAKpyY,QACrftzD,IAAIomc,iBAAiBd,GAAGe,oBAAoB,WAAW,OAAOvB,GAAGN,IAAI,IAAI8B,0BAAyB,GAAI1oF,GAAG33R,EAAGwqW,kBAAkB8P,IAAG,EAAG,SAASt6E,GAAGjmX,EAAEzE,EAAEsC,EAAE0Y,GAAGhb,EAAEhH,MAAM,OAAOyL,EAAEqjc,GAAG9nc,EAAE,KAAKsC,EAAE0Y,GAAG6sb,GAAG7nc,EAAEyE,EAAEzL,MAAMsJ,EAAE0Y,GAAG,SAASyoW,GAAGh/W,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAGiK,EAAEA,EAAEwoB,OAAO,IAAI6vB,EAAE36C,EAAEk9G,IAA8B,OAA1B0nV,GAAG5kc,EAAE3H,GAAG2iB,EAAEogV,GAAG32V,EAAEzE,EAAEsC,EAAE0Y,EAAE2/B,EAAEtiD,GAAM,OAAOoM,GAAIugc,IAA0Ehlc,EAAEq9D,OAAO,EAAEqtT,GAAGjmX,EAAEzE,EAAEgb,EAAE3iB,GAAU2H,EAAEhH,QAAhGgH,EAAEqlc,YAAY5gc,EAAE4gc,YAAYrlc,EAAEq9D,QAAQ,IAAI54D,EAAEsgc,QAAQ1sc,EAAEkK,GAAGkC,EAAEzE,EAAE3H,IACxW,SAAS0wE,GAAGtkE,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAG,GAAG,OAAOl2C,EAAE,CAAC,IAAIsiB,EAAEzkB,EAAEzD,KAAK,MAAG,oBAAoBkoB,GAAIkkb,GAAGlkb,SAAI,IAASA,EAAEypF,cAAc,OAAOluG,EAAEkC,cAAS,IAASlC,EAAEkuG,eAAsD/rG,EAAEgjc,GAAGnlc,EAAEzD,KAAK,KAAKmc,EAAEhb,EAAEA,EAAEgL,KAAK2vC,IAAKuiE,IAAIl9G,EAAEk9G,IAAIz4G,EAAEumV,OAAOhrV,EAASA,EAAEhH,MAAMyL,IAAvGzE,EAAElH,IAAI,GAAGkH,EAAEnB,KAAKkoB,EAAEy4R,GAAG/6S,EAAEzE,EAAE+mB,EAAE/L,EAAE3iB,EAAEsiD,IAAoF,OAAV5zB,EAAEtiB,EAAEzL,MAAS,KAAKX,EAAEsiD,KAAKtiD,EAAE0uB,EAAEihb,eAA0B1lc,EAAE,QAAdA,EAAEA,EAAEkC,SAAmBlC,EAAEi0W,IAAKl+W,EAAE2iB,IAAIvW,EAAEy4G,MAAMl9G,EAAEk9G,KAAY36G,GAAGkC,EAAEzE,EAAE26C,IAAG36C,EAAEq9D,OAAO,GAAE54D,EAAE6ic,GAAGvgb,EAAE/L,IAAKkiG,IAAIl9G,EAAEk9G,IAAIz4G,EAAEumV,OAAOhrV,EAASA,EAAEhH,MAAMyL,GAClb,SAAS+6S,GAAG/6S,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAG,GAAG,OAAOl2C,GAAG8xW,GAAG9xW,EAAEujc,cAAchtb,IAAIvW,EAAEy4G,MAAMl9G,EAAEk9G,IAAI,IAAG8nV,IAAG,EAAG,KAAKrqZ,EAAEtiD,GAAqC,OAAO2H,EAAE+kc,MAAMtgc,EAAEsgc,MAAMxic,GAAGkC,EAAEzE,EAAE26C,GAAhE,KAAa,MAARl2C,EAAE44D,SAAe2nY,IAAG,GAA0C,OAAO/3I,GAAGxoT,EAAEzE,EAAEsC,EAAE0Y,EAAE2/B,GACnL,SAASwwU,GAAG1mX,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEhb,EAAEqoc,aAAahwc,EAAE2iB,EAAEhhB,SAAS2gD,EAAE,OAAOl2C,EAAEA,EAAEy1b,cAAc,KAAK,GAAG,WAAWl/a,EAAEhQ,MAAM,kCAAkCgQ,EAAEhQ,KAAK,GAAG,KAAY,EAAPhL,EAAEgL,MAAQhL,EAAEk6b,cAAc,CAACgR,UAAU,GAAGpmS,GAAG9kK,EAAEsC,OAAQ,IAAG,KAAO,WAAFA,GAA8E,OAAOmC,EAAE,OAAOk2C,EAAEA,EAAEuwZ,UAAU5oc,EAAEA,EAAEtC,EAAE+kc,MAAM/kc,EAAE2kc,WAAW,WAAW3kc,EAAEk6b,cAAc,CAACgR,UAAUzmc,GAAGqgK,GAAG9kK,EAAEyE,GAAG,KAAxKzE,EAAEk6b,cAAc,CAACgR,UAAU,GAAGpmS,GAAG9kK,EAAE,OAAO26C,EAAEA,EAAEuwZ,UAAU5oc,QAA0H,OAAOq4C,GAAG3/B,EAAE2/B,EAAEuwZ,UAAU5oc,EAAEtC,EAAEk6b,cAAc,MAAMl/a,EAAE1Y,EAAEwiK,GAAG9kK,EAAEgb,GAAe,OAAZ0vW,GAAGjmX,EAAEzE,EAAE3H,EAAEiK,GAAUtC,EAAEhH,MAC1e,SAASixX,GAAGxlX,EAAEzE,GAAG,IAAIsC,EAAEtC,EAAEk9G,KAAO,OAAOz4G,GAAG,OAAOnC,GAAG,OAAOmC,GAAGA,EAAEy4G,MAAM56G,KAAEtC,EAAEq9D,OAAO,KAAI,SAAS4vP,GAAGxoT,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,IAAIsiD,EAAEinZ,GAAGt/b,GAAGk/b,GAAGzpZ,GAAEggB,QAA4C,OAApCpd,EAAE8mZ,GAAGzhc,EAAE26C,GAAGiqZ,GAAG5kc,EAAE3H,GAAGiK,EAAE84V,GAAG32V,EAAEzE,EAAEsC,EAAE0Y,EAAE2/B,EAAEtiD,GAAM,OAAOoM,GAAIugc,IAA0Ehlc,EAAEq9D,OAAO,EAAEqtT,GAAGjmX,EAAEzE,EAAEsC,EAAEjK,GAAU2H,EAAEhH,QAAhGgH,EAAEqlc,YAAY5gc,EAAE4gc,YAAYrlc,EAAEq9D,QAAQ,IAAI54D,EAAEsgc,QAAQ1sc,EAAEkK,GAAGkC,EAAEzE,EAAE3H,IAC9P,SAAS+/K,GAAG3zK,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,GAAGupc,GAAGt/b,GAAG,CAAC,IAAIq4C,GAAE,EAAGqnZ,GAAGhic,QAAQ26C,GAAE,EAAW,GAARiqZ,GAAG5kc,EAAE3H,GAAM,OAAO2H,EAAEi6b,UAAU,OAAOx1b,IAAIA,EAAE81P,UAAU,KAAKv6P,EAAEu6P,UAAU,KAAKv6P,EAAEq9D,OAAO,GAAGspY,GAAG3mc,EAAEsC,EAAE0Y,GAAG6rb,GAAG7mc,EAAEsC,EAAE0Y,EAAE3iB,GAAG2iB,GAAE,OAAQ,GAAG,OAAOvW,EAAE,CAAC,IAAIsiB,EAAE/mB,EAAEi6b,UAAUjnZ,EAAEhzC,EAAEgoc,cAAcjhb,EAAE5tB,MAAM65C,EAAE,IAAIxgC,EAAEuU,EAAEqF,QAAQ6mB,EAAE3wC,EAAEopK,YAAY,kBAAkBz4H,GAAG,OAAOA,EAAEA,EAAEgyZ,GAAGhyZ,GAAyBA,EAAEwuZ,GAAGzhc,EAA1BizC,EAAE2uZ,GAAGt/b,GAAGk/b,GAAGzpZ,GAAEggB,SAAmB,IAAIpgE,EAAE2K,EAAEwpK,yBAAyBj0H,EAAE,oBAAoBlgD,GAAG,oBAAoBovB,EAAEgnT,wBAAwBl2R,GAAG,oBAAoB9wB,EAAEsnT,kCACpd,oBAAoBtnT,EAAE4mT,4BAA4B36R,IAAIh4B,GAAGxI,IAAIygC,IAAI2zZ,GAAG5mc,EAAE+mB,EAAE/L,EAAEi4B,GAAGkyZ,IAAG,EAAG,IAAIrtc,EAAEkI,EAAEk6b,cAAcnza,EAAE4a,MAAM7pC,EAAEkuc,GAAGhmc,EAAEgb,EAAE+L,EAAE1uB,GAAGma,EAAExS,EAAEk6b,cAAclnZ,IAAIh4B,GAAGljB,IAAI0a,GAAG68C,GAAE0I,SAASotY,IAAI,oBAAoBxtc,IAAIyuc,GAAGpmc,EAAEsC,EAAE3K,EAAEqjB,GAAGxI,EAAExS,EAAEk6b,gBAAgBlnZ,EAAEmyZ,IAAIuB,GAAG1mc,EAAEsC,EAAE0wC,EAAEh4B,EAAEljB,EAAE0a,EAAEygC,KAAK4E,GAAG,oBAAoB9wB,EAAEqnT,2BAA2B,oBAAoBrnT,EAAE2mT,qBAAqB,oBAAoB3mT,EAAE2mT,oBAAoB3mT,EAAE2mT,qBAAqB,oBAAoB3mT,EAAEqnT,2BAA2BrnT,EAAEqnT,6BAA6B,oBACzernT,EAAEya,oBAAoBxhC,EAAEq9D,OAAO,KAAK,oBAAoBt2C,EAAEya,oBAAoBxhC,EAAEq9D,OAAO,GAAGr9D,EAAEgoc,cAAchtb,EAAEhb,EAAEk6b,cAAc1nb,GAAGuU,EAAE5tB,MAAM6hB,EAAE+L,EAAE4a,MAAMnvB,EAAEuU,EAAEqF,QAAQ6mB,EAAEj4B,EAAEg4B,IAAI,oBAAoBjsB,EAAEya,oBAAoBxhC,EAAEq9D,OAAO,GAAGriD,GAAE,OAAQ,CAAC+L,EAAE/mB,EAAEi6b,UAAUyL,GAAGjhc,EAAEzE,GAAGgzC,EAAEhzC,EAAEgoc,cAAc/0Z,EAAEjzC,EAAEnB,OAAOmB,EAAEwnc,YAAYx0Z,EAAEoxZ,GAAGpkc,EAAEnB,KAAKm0C,GAAGjsB,EAAE5tB,MAAM85C,EAAE4E,EAAE73C,EAAEqoc,aAAavwc,EAAEivB,EAAEqF,QAAwB,kBAAhB5Z,EAAElQ,EAAEopK,cAAiC,OAAOl5J,EAAEA,EAAEyyb,GAAGzyb,GAAyBA,EAAEivb,GAAGzhc,EAA1BwS,EAAEovb,GAAGt/b,GAAGk/b,GAAGzpZ,GAAEggB,SAAmB,IAAIzsC,EAAEhpB,EAAEwpK,0BAA0Bn0K,EAAE,oBAAoB2zB,GACnf,oBAAoBvE,EAAEgnT,0BAA0B,oBAAoBhnT,EAAEsnT,kCAAkC,oBAAoBtnT,EAAE4mT,4BAA4B36R,IAAI6E,GAAG//C,IAAI0a,IAAIo0b,GAAG5mc,EAAE+mB,EAAE/L,EAAExI,GAAG2yb,IAAG,EAAGrtc,EAAEkI,EAAEk6b,cAAcnza,EAAE4a,MAAM7pC,EAAEkuc,GAAGhmc,EAAEgb,EAAE+L,EAAE1uB,GAAG,IAAIqM,EAAE1E,EAAEk6b,cAAclnZ,IAAI6E,GAAG//C,IAAI4M,GAAG2qD,GAAE0I,SAASotY,IAAI,oBAAoB75a,IAAI86a,GAAGpmc,EAAEsC,EAAEgpB,EAAEtQ,GAAGtW,EAAE1E,EAAEk6b,gBAAgBjnZ,EAAEkyZ,IAAIuB,GAAG1mc,EAAEsC,EAAE2wC,EAAEj4B,EAAEljB,EAAE4M,EAAE8N,KAAK7a,GAAG,oBAAoBovB,EAAEunT,4BAA4B,oBAAoBvnT,EAAE6mT,sBAAsB,oBAAoB7mT,EAAE6mT,qBAAqB7mT,EAAE6mT,oBAAoB5yT,EAC1gBtW,EAAE8N,GAAG,oBAAoBuU,EAAEunT,4BAA4BvnT,EAAEunT,2BAA2BtzT,EAAEtW,EAAE8N,IAAI,oBAAoBuU,EAAE21F,qBAAqB18G,EAAEq9D,OAAO,GAAG,oBAAoBt2C,EAAEgnT,0BAA0B/tU,EAAEq9D,OAAO,OAAO,oBAAoBt2C,EAAE21F,oBAAoB1pE,IAAIvuC,EAAEujc,eAAelwc,IAAI2M,EAAEy1b,gBAAgBl6b,EAAEq9D,OAAO,GAAG,oBAAoBt2C,EAAEgnT,yBAAyB/6R,IAAIvuC,EAAEujc,eAAelwc,IAAI2M,EAAEy1b,gBAAgBl6b,EAAEq9D,OAAO,KAAKr9D,EAAEgoc,cAAchtb,EAAEhb,EAAEk6b,cAAcx1b,GAAGqiB,EAAE5tB,MAAM6hB,EAAE+L,EAAE4a,MAAMj9B,EAAEqiB,EAAEqF,QAAQ5Z,EAAEwI,EAAEi4B,IAAI,oBAAoBlsB,EAAE21F,oBAC7f1pE,IAAIvuC,EAAEujc,eAAelwc,IAAI2M,EAAEy1b,gBAAgBl6b,EAAEq9D,OAAO,GAAG,oBAAoBt2C,EAAEgnT,yBAAyB/6R,IAAIvuC,EAAEujc,eAAelwc,IAAI2M,EAAEy1b,gBAAgBl6b,EAAEq9D,OAAO,KAAKriD,GAAE,GAAI,OAAOmwb,GAAG1mc,EAAEzE,EAAEsC,EAAE0Y,EAAE2/B,EAAEtiD,GACzL,SAAS8yc,GAAG1mc,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAGsvU,GAAGxlX,EAAEzE,GAAG,IAAI+mB,EAAE,KAAa,GAAR/mB,EAAEq9D,OAAU,IAAIriD,IAAI+L,EAAE,OAAO1uB,GAAG6pc,GAAGlic,EAAEsC,GAAE,GAAIC,GAAGkC,EAAEzE,EAAE26C,GAAG3/B,EAAEhb,EAAEi6b,UAAU53E,GAAGtqT,QAAQ/3D,EAAE,IAAIgzC,EAAEjsB,GAAG,oBAAoBzkB,EAAEupK,yBAAyB,KAAK7wJ,EAAE8P,SAAwI,OAA/H9qB,EAAEq9D,OAAO,EAAE,OAAO54D,GAAGsiB,GAAG/mB,EAAEhH,MAAM6uc,GAAG7nc,EAAEyE,EAAEzL,MAAM,KAAK2hD,GAAG36C,EAAEhH,MAAM6uc,GAAG7nc,EAAE,KAAKgzC,EAAE2H,IAAI+vU,GAAGjmX,EAAEzE,EAAEgzC,EAAE2H,GAAG36C,EAAEk6b,cAAcl/a,EAAE2mB,MAAMtpC,GAAG6pc,GAAGlic,EAAEsC,GAAE,GAAWtC,EAAEhH,MAAM,SAAS+wX,GAAGtlX,GAAG,IAAIzE,EAAEyE,EAAEw1b,UAAUj6b,EAAEorc,eAAetJ,GAAGr9b,EAAEzE,EAAEorc,eAAeprc,EAAEorc,iBAAiBprc,EAAEosB,SAASpsB,EAAEosB,SAAS01a,GAAGr9b,EAAEzE,EAAEosB,SAAQ,GAAI+pF,GAAG1xG,EAAEzE,EAAE66b,eAC7d,IAS0VwQ,GAAMl+E,GAAGb,GAT/VnnW,GAAG,CAACg1a,WAAW,KAAKmR,UAAU,GAClC,SAASzhF,GAAGplX,EAAEzE,EAAEsC,GAAG,IAAsCykB,EAAlC/L,EAAEhb,EAAEqoc,aAAahwc,EAAEg/B,GAAE0gC,QAAQpd,GAAE,EAA6M,OAAvM5zB,EAAE,KAAa,GAAR/mB,EAAEq9D,UAAat2C,GAAE,OAAOtiB,GAAG,OAAOA,EAAEy1b,gBAAiB,KAAO,EAAF7hc,IAAM0uB,GAAG4zB,GAAE,EAAG36C,EAAEq9D,QAAQ,IAAI,OAAO54D,GAAG,OAAOA,EAAEy1b,oBAAe,IAASl/a,EAAEuwb,WAAU,IAAKvwb,EAAEwwb,6BAA6Bnzc,GAAG,GAAGy6C,GAAEzb,GAAI,EAAFh/B,GAAQ,OAAOoM,QAAG,IAASuW,EAAEuwb,UAAU16Y,GAAG7wD,GAAGyE,EAAEuW,EAAEhhB,SAAS3B,EAAE2iB,EAAEuwb,SAAY5wZ,GAASl2C,EAAEy+W,GAAGljX,EAAEyE,EAAEpM,EAAEiK,GAAGtC,EAAEhH,MAAMkhc,cAAc,CAACgR,UAAU5oc,GAAGtC,EAAEk6b,cAAc/0a,GAAG1gB,GAAK,kBAAkBuW,EAAEywb,2BAAiChnc,EAAEy+W,GAAGljX,EAAEyE,EAAEpM,EAAEiK,GAAGtC,EAAEhH,MAAMkhc,cAAc,CAACgR,UAAU5oc,GAC/ftC,EAAEk6b,cAAc/0a,GAAGnlB,EAAE+kc,MAAM,SAAStgc,KAAEnC,EAAEqqX,GAAG,CAAC3hX,KAAK,UAAUhR,SAASyK,GAAGzE,EAAEgL,KAAK1I,EAAE,OAAQ0oV,OAAOhrV,EAASA,EAAEhH,MAAMsJ,KAAYmC,EAAEy1b,cAAkBv/Y,GAAS3/B,EAAEmoW,GAAG1+W,EAAEzE,EAAEgb,EAAEhhB,SAASghB,EAAEuwb,SAASjpc,GAAGq4C,EAAE36C,EAAEhH,MAAMX,EAAEoM,EAAEzL,MAAMkhc,cAAcv/Y,EAAEu/Y,cAAc,OAAO7hc,EAAE,CAAC6yc,UAAU5oc,GAAG,CAAC4oc,UAAU7yc,EAAE6yc,UAAU5oc,GAAGq4C,EAAEgqZ,WAAWlgc,EAAEkgc,YAAYric,EAAEtC,EAAEk6b,cAAc/0a,GAAGnK,IAAE1Y,EAAEm6B,GAAGh4B,EAAEzE,EAAEgb,EAAEhhB,SAASsI,GAAGtC,EAAEk6b,cAAc,KAAY53b,IAClQ,SAAS4gX,GAAGz+W,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEoM,EAAEuG,KAAK2vC,EAAEl2C,EAAEzL,MAAuK,OAAjKgH,EAAE,CAACgL,KAAK,SAAShR,SAASgG,GAAG,KAAO,EAAF3H,IAAM,OAAOsiD,GAAGA,EAAEgqZ,WAAW,EAAEhqZ,EAAE0tZ,aAAaroc,GAAG26C,EAAEgyU,GAAG3sX,EAAE3H,EAAE,EAAE,MAAMiK,EAAEslc,GAAGtlc,EAAEjK,EAAE2iB,EAAE,MAAM2/B,EAAEqwS,OAAOvmV,EAAEnC,EAAE0oV,OAAOvmV,EAAEk2C,EAAEy/Y,QAAQ93b,EAAEmC,EAAEzL,MAAM2hD,EAASr4C,EACrV,SAASm6B,GAAGh4B,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEoM,EAAEzL,MAAiL,OAA3KyL,EAAEpM,EAAE+hc,QAAQ93b,EAAEglc,GAAGjvc,EAAE,CAAC2S,KAAK,UAAUhR,SAASsI,IAAI,KAAY,EAAPtC,EAAEgL,QAAU1I,EAAEyic,MAAM/pb,GAAG1Y,EAAE0oV,OAAOhrV,EAAEsC,EAAE83b,QAAQ,KAAK,OAAO31b,IAAIA,EAAE2ic,WAAW,KAAK3ic,EAAE44D,MAAM,EAAEr9D,EAAEqnc,YAAYrnc,EAAEmnc,WAAW1ic,GAAUzE,EAAEhH,MAAMsJ,EAC7N,SAAS6gX,GAAG1+W,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,IAAIsiD,EAAE36C,EAAEgL,KAAK+b,EAAEtiB,EAAEzL,MAAMyL,EAAEsiB,EAAEqza,QAAQ,IAAIpnZ,EAAE,CAAChoC,KAAK,SAAShR,SAASsI,GAAoS,OAAjS,KAAO,EAAFq4C,IAAM36C,EAAEhH,QAAQ+tB,IAAGzkB,EAAEtC,EAAEhH,OAAQ2rc,WAAW,EAAEric,EAAE+lc,aAAar1Z,EAAiB,QAAfjsB,EAAEzkB,EAAE6kc,aAAqBnnc,EAAEqnc,YAAY/kc,EAAE+kc,YAAYrnc,EAAEmnc,WAAWpgb,EAAEA,EAAEqgb,WAAW,MAAMpnc,EAAEqnc,YAAYrnc,EAAEmnc,WAAW,MAAM7kc,EAAEglc,GAAGvgb,EAAEisB,GAAG,OAAOvuC,EAAEuW,EAAEssb,GAAG7ic,EAAEuW,IAAIA,EAAE4sb,GAAG5sb,EAAE2/B,EAAEtiD,EAAE,OAAQglE,OAAO,EAAGriD,EAAEgwU,OAAOhrV,EAAEsC,EAAE0oV,OAAOhrV,EAAEsC,EAAE83b,QAAQp/a,EAAEhb,EAAEhH,MAAMsJ,EAAS0Y,EAAE,SAASm4B,GAAG1uC,EAAEzE,GAAGyE,EAAEsgc,OAAO/kc,EAAE,IAAIsC,EAAEmC,EAAE81P,UAAU,OAAOj4P,IAAIA,EAAEyic,OAAO/kc,GAAG0kc,GAAGjgc,EAAEumV,OAAOhrV,GACtd,SAAS+/C,GAAGt7C,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAG,IAAI5zB,EAAEtiB,EAAEy1b,cAAc,OAAOnza,EAAEtiB,EAAEy1b,cAAc,CAACwR,YAAY1rc,EAAE2rc,UAAU,KAAKC,mBAAmB,EAAEpnb,KAAKxJ,EAAEkhJ,KAAK55J,EAAEupc,SAASxzc,EAAE8uc,WAAWxsZ,IAAI5zB,EAAE2kb,YAAY1rc,EAAE+mB,EAAE4kb,UAAU,KAAK5kb,EAAE6kb,mBAAmB,EAAE7kb,EAAEvC,KAAKxJ,EAAE+L,EAAEm1I,KAAK55J,EAAEykB,EAAE8kb,SAASxzc,EAAE0uB,EAAEogb,WAAWxsZ,GACvQ,SAAS6xU,GAAG/nX,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEhb,EAAEqoc,aAAahwc,EAAE2iB,EAAEitb,YAAYttZ,EAAE3/B,EAAEkhJ,KAAsC,GAAjCwuN,GAAGjmX,EAAEzE,EAAEgb,EAAEhhB,SAASsI,GAAkB,KAAO,GAAtB0Y,EAAEqc,GAAE0gC,UAAqB/8C,EAAI,EAAFA,EAAI,EAAEhb,EAAEq9D,OAAO,OAAO,CAAC,GAAG,OAAO54D,GAAG,KAAa,GAARA,EAAE44D,OAAU54D,EAAE,IAAIA,EAAEzE,EAAEhH,MAAM,OAAOyL,GAAG,CAAC,GAAG,KAAKA,EAAE3L,IAAI,OAAO2L,EAAEy1b,eAAe/mZ,GAAG1uC,EAAEnC,QAAQ,GAAG,KAAKmC,EAAE3L,IAAIq6C,GAAG1uC,EAAEnC,QAAQ,GAAG,OAAOmC,EAAEzL,MAAM,CAACyL,EAAEzL,MAAMgyV,OAAOvmV,EAAEA,EAAEA,EAAEzL,MAAM,SAAS,GAAGyL,IAAIzE,EAAE,MAAMyE,EAAE,KAAK,OAAOA,EAAE21b,SAAS,CAAC,GAAG,OAAO31b,EAAEumV,QAAQvmV,EAAEumV,SAAShrV,EAAE,MAAMyE,EAAEA,EAAEA,EAAEumV,OAAOvmV,EAAE21b,QAAQpvG,OAAOvmV,EAAEumV,OAAOvmV,EAAEA,EAAE21b,QAAQp/a,GAAG,EAAS,GAAP83B,GAAEzb,GAAErc,GAAM,KAAY,EAAPhb,EAAEgL,MAAQhL,EAAEk6b,cACze,UAAU,OAAO7hc,GAAG,IAAK,WAAqB,IAAViK,EAAEtC,EAAEhH,MAAUX,EAAE,KAAK,OAAOiK,GAAiB,QAAdmC,EAAEnC,EAAEi4P,YAAoB,OAAO2/H,GAAGz1X,KAAKpM,EAAEiK,GAAGA,EAAEA,EAAE83b,QAAY,QAAJ93b,EAAEjK,IAAYA,EAAE2H,EAAEhH,MAAMgH,EAAEhH,MAAM,OAAOX,EAAEiK,EAAE83b,QAAQ93b,EAAE83b,QAAQ,MAAMr6Y,GAAG//C,GAAE,EAAG3H,EAAEiK,EAAEq4C,EAAE36C,EAAEmnc,YAAY,MAAM,IAAK,YAA6B,IAAjB7kc,EAAE,KAAKjK,EAAE2H,EAAEhH,MAAUgH,EAAEhH,MAAM,KAAK,OAAOX,GAAG,CAAe,GAAG,QAAjBoM,EAAEpM,EAAEkiQ,YAAuB,OAAO2/H,GAAGz1X,GAAG,CAACzE,EAAEhH,MAAMX,EAAE,MAAMoM,EAAEpM,EAAE+hc,QAAQ/hc,EAAE+hc,QAAQ93b,EAAEA,EAAEjK,EAAEA,EAAEoM,EAAEs7C,GAAG//C,GAAE,EAAGsC,EAAE,KAAKq4C,EAAE36C,EAAEmnc,YAAY,MAAM,IAAK,WAAWpnZ,GAAG//C,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAEmnc,YAAY,MAAM,QAAQnnc,EAAEk6b,cAAc,KAAK,OAAOl6b,EAAEhH,MAC/f,SAASuJ,GAAGkC,EAAEzE,EAAEsC,GAAyD,GAAtD,OAAOmC,IAAIzE,EAAE6kc,aAAapgc,EAAEogc,cAAcoB,IAAIjmc,EAAE+kc,MAAS,KAAKzic,EAAEtC,EAAE2kc,YAAY,CAAC,GAAG,OAAOlgc,GAAGzE,EAAEhH,QAAQyL,EAAEzL,MAAM,MAAMwE,MAAMmH,EAAE,MAAM,GAAG,OAAO3E,EAAEhH,MAAM,CAA4C,IAAjCsJ,EAAEglc,GAAZ7ic,EAAEzE,EAAEhH,MAAayL,EAAE4jc,cAAcroc,EAAEhH,MAAMsJ,EAAMA,EAAE0oV,OAAOhrV,EAAE,OAAOyE,EAAE21b,SAAS31b,EAAEA,EAAE21b,SAAQ93b,EAAEA,EAAE83b,QAAQkN,GAAG7ic,EAAEA,EAAE4jc,eAAgBr9G,OAAOhrV,EAAEsC,EAAE83b,QAAQ,KAAK,OAAOp6b,EAAEhH,MAAM,OAAO,KAK5P,SAAS8yc,GAAGrnc,EAAEzE,GAAG,IAAIi7X,GAAG,OAAOx2X,EAAEonc,UAAU,IAAK,SAAS7rc,EAAEyE,EAAEy3J,KAAK,IAAI,IAAI55J,EAAE,KAAK,OAAOtC,GAAG,OAAOA,EAAEu6P,YAAYj4P,EAAEtC,GAAGA,EAAEA,EAAEo6b,QAAQ,OAAO93b,EAAEmC,EAAEy3J,KAAK,KAAK55J,EAAE83b,QAAQ,KAAK,MAAM,IAAK,YAAY93b,EAAEmC,EAAEy3J,KAAK,IAAI,IAAIlhJ,EAAE,KAAK,OAAO1Y,GAAG,OAAOA,EAAEi4P,YAAYv/O,EAAE1Y,GAAGA,EAAEA,EAAE83b,QAAQ,OAAOp/a,EAAEhb,GAAG,OAAOyE,EAAEy3J,KAAKz3J,EAAEy3J,KAAK,KAAKz3J,EAAEy3J,KAAKk+R,QAAQ,KAAKp/a,EAAEo/a,QAAQ,MAC7Z,SAAS2R,GAAGtnc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEhb,EAAEqoc,aAAa,OAAOroc,EAAElH,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAQyC,KAAK,GAAG,OAAO8oc,GAAG5hc,EAAEnB,OAAOgjc,KAAK,KAR1C,KAAK,EAAsL,OAApLllG,KAAKxrQ,GAAE9hC,IAAG8hC,GAAEp5C,IAAG2iV,MAAK1/W,EAAEhb,EAAEi6b,WAAYmR,iBAAiBpwb,EAAEoR,QAAQpR,EAAEowb,eAAepwb,EAAEowb,eAAe,MAAS,OAAO3mc,GAAG,OAAOA,EAAEzL,QAAMshY,GAAGt6X,GAAGA,EAAEq9D,OAAO,EAAEriD,EAAE4/a,UAAU56b,EAAEq9D,OAAO,MAAkB,KAAK,KAAK,EAAEhgB,GAAGr9C,GAAG,IAAI3H,EAAE09G,GAAG9W,GAAGlnC,SAAkB,GAATz1D,EAAEtC,EAAEnB,KAAQ,OAAO4F,GAAG,MAAMzE,EAAEi6b,UAAU9sE,GAAG1oX,EAAEzE,EAAEsC,EAAE0Y,GAAKvW,EAAEy4G,MAAMl9G,EAAEk9G,MAAMl9G,EAAEq9D,OAAO,SAAS,CAAC,IAAIriD,EAAE,CAAC,GAAG,OAC7fhb,EAAEi6b,UAAU,MAAMz8b,MAAMmH,EAAE,MAAM,OAAO,KAAsB,GAAjBF,EAAEsxG,GAAGR,GAAGx9C,SAAYuiU,GAAGt6X,GAAG,CAACgb,EAAEhb,EAAEi6b,UAAU33b,EAAEtC,EAAEnB,KAAK,IAAI87C,EAAE36C,EAAEgoc,cAA8B,OAAhBhtb,EAAEimb,IAAIjhc,EAAEgb,EAAEkmb,IAAIvmZ,EAASr4C,GAAG,IAAK,SAASgxF,GAAE,SAASt4E,GAAGs4E,GAAE,QAAQt4E,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQs4E,GAAE,OAAOt4E,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIvW,EAAE,EAAEA,EAAE+xW,GAAG3+W,OAAO4M,IAAI6uF,GAAEkjR,GAAG/xW,GAAGuW,GAAG,MAAM,IAAK,SAASs4E,GAAE,QAAQt4E,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOs4E,GAAE,QAAQt4E,GAAGs4E,GAAE,OAAOt4E,GAAG,MAAM,IAAK,UAAUs4E,GAAE,SAASt4E,GAAG,MAAM,IAAK,QAAQqzE,GAAGrzE,EAAE2/B,GAAG24C,GAAE,UAAUt4E,GAAG,MAAM,IAAK,SAASA,EAAE47a,cAC5f,CAACoV,cAAcrxZ,EAAEyiK,UAAU9pH,GAAE,UAAUt4E,GAAG,MAAM,IAAK,WAAWg2B,GAAGh2B,EAAE2/B,GAAG24C,GAAE,UAAUt4E,GAAkB,IAAI,IAAI+L,KAAvB+oE,GAAGxtF,EAAEq4C,GAAGl2C,EAAE,KAAkBk2C,EAAEA,EAAE3iD,eAAe+uB,KAAK1uB,EAAEsiD,EAAE5zB,GAAG,aAAaA,EAAE,kBAAkB1uB,EAAE2iB,EAAEkwF,cAAc7yG,IAAIoM,EAAE,CAAC,WAAWpM,IAAI,kBAAkBA,GAAG2iB,EAAEkwF,cAAc,GAAG7yG,IAAIoM,EAAE,CAAC,WAAW,GAAGpM,IAAI+1F,EAAGp2F,eAAe+uB,IAAI,MAAM1uB,GAAG,aAAa0uB,GAAGusE,GAAE,SAASt4E,IAAI,OAAO1Y,GAAG,IAAK,QAAQ+pF,EAAGrxE,GAAG0zE,GAAG1zE,EAAE2/B,GAAE,GAAI,MAAM,IAAK,WAAW0xC,EAAGrxE,GAAG+zE,GAAG/zE,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoB2/B,EAAEhvB,UAAU3Q,EAAEixb,QACtf7L,IAAIplb,EAAEvW,EAAEzE,EAAEqlc,YAAYrqb,EAAE,OAAOA,IAAIhb,EAAEq9D,OAAO,OAAO,CAAiZ,OAAhZt2C,EAAE,IAAI1uB,EAAEywV,SAASzwV,EAAEA,EAAEkzG,cAAc9mG,IAAIwqF,KAAUxqF,EAAE0qF,GAAG7sF,IAAImC,IAAIwqF,GAAQ,WAAW3sF,IAAGmC,EAAEsiB,EAAEluB,cAAc,QAAS2vM,UAAU,qBAAuB/jM,EAAEA,EAAEqkM,YAAYrkM,EAAE0yb,aAAa,kBAAkBn8a,EAAEu1G,GAAG9rH,EAAEsiB,EAAEluB,cAAcyJ,EAAE,CAACiuH,GAAGv1G,EAAEu1G,MAAM9rH,EAAEsiB,EAAEluB,cAAcyJ,GAAG,WAAWA,IAAIykB,EAAEtiB,EAAEuW,EAAEoiM,SAASr2L,EAAEq2L,UAAS,EAAGpiM,EAAElkB,OAAOiwB,EAAEjwB,KAAKkkB,EAAElkB,QAAQ2N,EAAEsiB,EAAEmlb,gBAAgBznc,EAAEnC,GAAGmC,EAAEw8b,IAAIjhc,EAAEyE,EAAEy8b,IAAIlmb,EAAEqwb,GAAG5mc,EAAEzE,GAASA,EAAEi6b,UAAUx1b,EAAEsiB,EAAEgpE,GAAGztF,EAAE0Y,GAAU1Y,GAAG,IAAK,SAASgxF,GAAE,SAAS7uF,GAAG6uF,GAAE,QAAQ7uF,GACpfpM,EAAE2iB,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQs4E,GAAE,OAAO7uF,GAAGpM,EAAE2iB,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI3iB,EAAE,EAAEA,EAAEm+W,GAAG3+W,OAAOQ,IAAIi7F,GAAEkjR,GAAGn+W,GAAGoM,GAAGpM,EAAE2iB,EAAE,MAAM,IAAK,SAASs4E,GAAE,QAAQ7uF,GAAGpM,EAAE2iB,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOs4E,GAAE,QAAQ7uF,GAAG6uF,GAAE,OAAO7uF,GAAGpM,EAAE2iB,EAAE,MAAM,IAAK,UAAUs4E,GAAE,SAAS7uF,GAAGpM,EAAE2iB,EAAE,MAAM,IAAK,QAAQqzE,GAAG5pF,EAAEuW,GAAG3iB,EAAE21F,EAAGvpF,EAAEuW,GAAGs4E,GAAE,UAAU7uF,GAAG,MAAM,IAAK,SAASpM,EAAE27F,GAAGvvF,EAAEuW,GAAG,MAAM,IAAK,SAASvW,EAAEmyb,cAAc,CAACoV,cAAchxb,EAAEoiM,UAAU/kN,EAAE4H,EAAE,GAAG+a,EAAE,CAAC1gB,WAAM,IAASg5F,GAAE,UAAU7uF,GAAG,MAAM,IAAK,WAAWusC,GAAGvsC,EAAEuW,GAAG3iB,EACpfw2F,GAAGpqF,EAAEuW,GAAGs4E,GAAE,UAAU7uF,GAAG,MAAM,QAAQpM,EAAE2iB,EAAE80E,GAAGxtF,EAAEjK,GAAG,IAAI26C,EAAE36C,EAAE,IAAIsiD,KAAK3H,EAAE,GAAGA,EAAEh7C,eAAe2iD,GAAG,CAAC,IAAInoC,EAAEwgC,EAAE2H,GAAG,UAAUA,EAAEi1C,GAAGnrF,EAAE+N,GAAG,4BAA4BmoC,EAAuB,OAApBnoC,EAAEA,EAAEA,EAAEq3L,YAAO,IAAgBv6G,GAAG7qF,EAAE+N,GAAI,aAAamoC,EAAE,kBAAkBnoC,GAAG,aAAalQ,GAAG,KAAKkQ,IAAIg9E,GAAG/qF,EAAE+N,GAAG,kBAAkBA,GAAGg9E,GAAG/qF,EAAE,GAAG+N,GAAG,mCAAmCmoC,GAAG,6BAA6BA,GAAG,cAAcA,IAAIyzC,EAAGp2F,eAAe2iD,GAAG,MAAMnoC,GAAG,aAAamoC,GAAG24C,GAAE,SAAS7uF,GAAG,MAAM+N,GAAGi4E,EAAGhmF,EAAEk2C,EAAEnoC,EAAEuU,IAAI,OAAOzkB,GAAG,IAAK,QAAQ+pF,EAAG5nF,GAAGiqF,GAAGjqF,EAAEuW,GAAE,GACnf,MAAM,IAAK,WAAWqxE,EAAG5nF,GAAGsqF,GAAGtqF,GAAG,MAAM,IAAK,SAAS,MAAMuW,EAAE1gB,OAAOmK,EAAEqmG,aAAa,QAAQ,GAAG/e,EAAG/wE,EAAE1gB,QAAQ,MAAM,IAAK,SAASmK,EAAE24M,WAAWpiM,EAAEoiM,SAAmB,OAAVziK,EAAE3/B,EAAE1gB,OAAcs0F,GAAGnqF,IAAIuW,EAAEoiM,SAASziK,GAAE,GAAI,MAAM3/B,EAAE3f,cAAcuzF,GAAGnqF,IAAIuW,EAAEoiM,SAASpiM,EAAE3f,cAAa,GAAI,MAAM,QAAQ,oBAAoBhD,EAAEszB,UAAUlnB,EAAEwnc,QAAQ7L,IAAIG,GAAGj+b,EAAE0Y,KAAKhb,EAAEq9D,OAAO,GAAG,OAAOr9D,EAAEk9G,MAAMl9G,EAAEq9D,OAAO,KAAK,OAAO,KAAK,KAAK,EAAE,GAAG54D,GAAG,MAAMzE,EAAEi6b,UAAU3tE,GAAG7nX,EAAEzE,EAAEyE,EAAEujc,cAAchtb,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOhb,EAAEi6b,UAAU,MAAMz8b,MAAMmH,EAAE,MAC/erC,EAAEyzG,GAAG9W,GAAGlnC,SAASg+C,GAAGR,GAAGx9C,SAASuiU,GAAGt6X,IAAIgb,EAAEhb,EAAEi6b,UAAU33b,EAAEtC,EAAEgoc,cAAchtb,EAAEimb,IAAIjhc,EAAEgb,EAAEu8a,YAAYj1b,IAAItC,EAAEq9D,OAAO,MAAKriD,GAAG,IAAI1Y,EAAEwmV,SAASxmV,EAAEA,EAAEipG,eAAeo9F,eAAe3tL,IAAKimb,IAAIjhc,EAAEA,EAAEi6b,UAAUj/a,GAAG,OAAO,KAAK,KAAK,GAA0B,OAAvBm2E,GAAE95D,IAAGrc,EAAEhb,EAAEk6b,cAAiB,KAAa,GAARl6b,EAAEq9D,QAAiBr9D,EAAE+kc,MAAMzic,EAAEtC,IAAEgb,EAAE,OAAOA,EAAE1Y,GAAE,EAAG,OAAOmC,OAAE,IAASzE,EAAEgoc,cAAcuD,UAAUjxE,GAAGt6X,GAAGsC,EAAE,OAAOmC,EAAEy1b,cAAiBl/a,IAAI1Y,GAAG,KAAY,EAAPtC,EAAEgL,QAAW,OAAOvG,IAAG,IAAKzE,EAAEgoc,cAAcwD,4BAA4B,KAAe,EAAVn0a,GAAE0gC,SAAW,IAAIy6B,KAAIA,GAAE,IAAW,IAAIA,IAAG,IAAIA,KAAEA,GACrf,GAAE,OAAOG,IAAG,KAAQ,UAAHszW,KAAe,KAAQ,UAAHkG,KAAengF,GAAGr5R,GAAEvc,OAAMp7D,GAAG1Y,KAAEtC,EAAEq9D,OAAO,GAAS,MAAK,KAAK,EAAE,OAAOs/R,KAAW,OAAOl4V,GAAGs7b,GAAG//b,EAAEi6b,UAAUY,eAAe,KAAK,KAAK,GAAG,OAAO4J,GAAGzkc,GAAG,KAA0C,KAAK,GAA0B,GAAvBmxF,GAAE95D,IAAwB,QAArBrc,EAAEhb,EAAEk6b,eAA0B,OAAO,KAAsC,GAAjCv/Y,EAAE,KAAa,GAAR36C,EAAEq9D,OAA2B,QAAjBt2C,EAAE/L,EAAE2wb,WAAsB,GAAGhxZ,EAAEmxZ,GAAG9wb,GAAE,OAAQ,CAAC,GAAG,IAAIw3E,IAAG,OAAO/tF,GAAG,KAAa,GAARA,EAAE44D,OAAU,IAAI54D,EAAEzE,EAAEhH,MAAM,OAAOyL,GAAG,CAAS,GAAG,QAAXsiB,EAAEmzW,GAAGz1X,IAAe,CACjW,IADkWzE,EAAEq9D,OAAO,GAAGyuY,GAAG9wb,GAAE,GAAoB,QAAhB2/B,EAAE5zB,EAAEs+a,eAAuBrlc,EAAEqlc,YAAY1qZ,EAAE36C,EAAEq9D,OAAO,GACnf,OAAOriD,EAAEmsb,aAAannc,EAAEqnc,YAAY,MAAMrnc,EAAEmnc,WAAWnsb,EAAEmsb,WAAWnsb,EAAE1Y,EAAMA,EAAEtC,EAAEhH,MAAM,OAAOsJ,GAAOmC,EAAEuW,GAAN2/B,EAAEr4C,GAAQ+6D,OAAO,EAAE1iB,EAAEysZ,WAAW,KAAKzsZ,EAAE0sZ,YAAY,KAAK1sZ,EAAEwsZ,WAAW,KAAmB,QAAdpgb,EAAE4zB,EAAE4/M,YAAoB5/M,EAAEgqZ,WAAW,EAAEhqZ,EAAEoqZ,MAAMtgc,EAAEk2C,EAAE3hD,MAAM,KAAK2hD,EAAEqtZ,cAAc,KAAKrtZ,EAAEu/Y,cAAc,KAAKv/Y,EAAE0qZ,YAAY,KAAK1qZ,EAAEkqZ,aAAa,KAAKlqZ,EAAEs/Y,UAAU,OAAOt/Y,EAAEgqZ,WAAW59a,EAAE49a,WAAWhqZ,EAAEoqZ,MAAMh+a,EAAEg+a,MAAMpqZ,EAAE3hD,MAAM+tB,EAAE/tB,MAAM2hD,EAAEqtZ,cAAcjhb,EAAEihb,cAAcrtZ,EAAEu/Y,cAAcnza,EAAEmza,cAAcv/Y,EAAE0qZ,YAAYt+a,EAAEs+a,YAAY1qZ,EAAE97C,KAAKkoB,EAAEloB,KAAK4F,EAAEsiB,EAAE89a,aACpflqZ,EAAEkqZ,aAAa,OAAOpgc,EAAE,KAAK,CAACsgc,MAAMtgc,EAAEsgc,MAAMD,aAAargc,EAAEqgc,eAAexic,EAAEA,EAAE83b,QAA2B,OAAnBtnZ,GAAEzb,GAAY,EAAVA,GAAE0gC,QAAU,GAAU/3D,EAAEhH,MAAMyL,EAAEA,EAAE21b,QAAQ,OAAOp/a,EAAEkhJ,MAAM9sE,KAAIg9W,KAAKpsc,EAAEq9D,OAAO,GAAG1iB,GAAE,EAAGmxZ,GAAG9wb,GAAE,GAAIhb,EAAE+kc,MAAM,cAAc,CAAC,IAAIpqZ,EAAE,GAAW,QAARl2C,EAAEy1X,GAAGnzW,KAAa,GAAG/mB,EAAEq9D,OAAO,GAAG1iB,GAAE,EAAmB,QAAhBr4C,EAAEmC,EAAE4gc,eAAuBrlc,EAAEqlc,YAAY/ic,EAAEtC,EAAEq9D,OAAO,GAAGyuY,GAAG9wb,GAAE,GAAI,OAAOA,EAAEkhJ,MAAM,WAAWlhJ,EAAE6wb,WAAW9kb,EAAEwzO,YAAY0gI,GAAG,OAAmC,QAA5Bj7X,EAAEA,EAAEmnc,WAAWnsb,EAAEmsb,cAAsBnnc,EAAEonc,WAAW,MAAM,UAAU,EAAEh4W,KAAIp0E,EAAE4wb,mBAAmBQ,IAAI,aAAa9pc,IAAItC,EAAEq9D,OACjf,GAAG1iB,GAAE,EAAGmxZ,GAAG9wb,GAAE,GAAIhb,EAAE+kc,MAAM,UAAU/pb,EAAE0wb,aAAa3kb,EAAEqza,QAAQp6b,EAAEhH,MAAMgH,EAAEhH,MAAM+tB,IAAa,QAATzkB,EAAE0Y,EAAEwJ,MAAcliB,EAAE83b,QAAQrza,EAAE/mB,EAAEhH,MAAM+tB,EAAE/L,EAAEwJ,KAAKuC,GAAG,OAAO,OAAO/L,EAAEkhJ,MAAM55J,EAAE0Y,EAAEkhJ,KAAKlhJ,EAAE2wb,UAAUrpc,EAAE0Y,EAAEkhJ,KAAK55J,EAAE83b,QAAQp/a,EAAEmsb,WAAWnnc,EAAEmnc,WAAWnsb,EAAE4wb,mBAAmBx8W,KAAI9sF,EAAE83b,QAAQ,KAAKp6b,EAAEq3B,GAAE0gC,QAAQjlB,GAAEzb,GAAEsjB,EAAI,EAAF36C,EAAI,EAAI,EAAFA,GAAKsC,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO+pc,KAAK,OAAO5nc,GAAG,OAAOA,EAAEy1b,iBAAiB,OAAOl6b,EAAEk6b,gBAAgB,kCAAkCl/a,EAAEhQ,OAAOhL,EAAEq9D,OAAO,GAAG,KAAK,MAAM7/D,MAAMmH,EAAE,IAAI3E,EAAElH,MAChd,SAASwzc,GAAG7nc,GAAG,OAAOA,EAAE3L,KAAK,KAAK,EAAE8oc,GAAGn9b,EAAE5F,OAAOgjc,KAAK,IAAI7hc,EAAEyE,EAAE44D,MAAM,OAAS,KAAFr9D,GAAQyE,EAAE44D,OAAS,KAAHr9D,EAAQ,GAAGyE,GAAG,KAAK,KAAK,EAAgC,GAA9Bk4V,KAAKxrQ,GAAE9hC,IAAG8hC,GAAEp5C,IAAG2iV,KAAkB,KAAO,IAApB16X,EAAEyE,EAAE44D,QAAoB,MAAM7/D,MAAMmH,EAAE,MAAyB,OAAnBF,EAAE44D,OAAS,KAAHr9D,EAAQ,GAAUyE,EAAE,KAAK,EAAE,OAAO44C,GAAG54C,GAAG,KAAK,KAAK,GAAG,OAAO0sF,GAAE95D,IAAe,MAAZr3B,EAAEyE,EAAE44D,QAAc54D,EAAE44D,OAAS,KAAHr9D,EAAQ,GAAGyE,GAAG,KAAK,KAAK,GAAG,OAAO0sF,GAAE95D,IAAG,KAAK,KAAK,EAAE,OAAOslU,KAAK,KAAK,KAAK,GAAG,OAAO8nG,GAAGhgc,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO4nc,KAAK,KAAK,QAAQ,OAAO,MACra,SAASE,GAAG9nc,EAAEzE,GAAG,IAAI,IAAIsC,EAAE,GAAG0Y,EAAEhb,EAAE,GAAGsC,GAAGwpF,EAAG9wE,GAAGA,EAAEA,EAAEgwU,aAAahwU,GAAG,IAAI3iB,EAAEiK,EAAE,MAAMq4C,GAAGtiD,EAAE,6BAA6BsiD,EAAEvoC,QAAQ,KAAKuoC,EAAEh1B,MAAM,MAAM,CAACrrB,MAAMmK,EAAEiX,OAAO1b,EAAE2lB,MAAMttB,GAAG,SAAS60X,GAAGzoX,EAAEzE,GAAG,IAAIgyB,QAAQhjB,MAAMhP,EAAE1F,OAAO,MAAMgI,GAAG48B,YAAW,WAAW,MAAM58B,MAlB3P+oc,GAAG,SAAS5mc,EAAEzE,GAAG,IAAI,IAAIsC,EAAEtC,EAAEhH,MAAM,OAAOsJ,GAAG,CAAC,GAAG,IAAIA,EAAExJ,KAAK,IAAIwJ,EAAExJ,IAAI2L,EAAEsmG,YAAYzoG,EAAE23b,gBAAgB,GAAG,IAAI33b,EAAExJ,KAAK,OAAOwJ,EAAEtJ,MAAM,CAACsJ,EAAEtJ,MAAMgyV,OAAO1oV,EAAEA,EAAEA,EAAEtJ,MAAM,SAAS,GAAGsJ,IAAItC,EAAE,MAAM,KAAK,OAAOsC,EAAE83b,SAAS,CAAC,GAAG,OAAO93b,EAAE0oV,QAAQ1oV,EAAE0oV,SAAShrV,EAAE,OAAOsC,EAAEA,EAAE0oV,OAAO1oV,EAAE83b,QAAQpvG,OAAO1oV,EAAE0oV,OAAO1oV,EAAEA,EAAE83b,UAChSjtE,GAAG,SAAS1oX,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAEoM,EAAEujc,cAAc,GAAG3vc,IAAI2iB,EAAE,CAACvW,EAAEzE,EAAEi6b,UAAUlkV,GAAGR,GAAGx9C,SAAS,IAAyUhxC,EAArU4zB,EAAE,KAAK,OAAOr4C,GAAG,IAAK,QAAQjK,EAAE21F,EAAGvpF,EAAEpM,GAAG2iB,EAAEgzE,EAAGvpF,EAAEuW,GAAG2/B,EAAE,GAAG,MAAM,IAAK,SAAStiD,EAAE27F,GAAGvvF,EAAEpM,GAAG2iB,EAAEg5E,GAAGvvF,EAAEuW,GAAG2/B,EAAE,GAAG,MAAM,IAAK,SAAStiD,EAAE4H,EAAE,GAAG5H,EAAE,CAACiC,WAAM,IAAS0gB,EAAE/a,EAAE,GAAG+a,EAAE,CAAC1gB,WAAM,IAASqgD,EAAE,GAAG,MAAM,IAAK,WAAWtiD,EAAEw2F,GAAGpqF,EAAEpM,GAAG2iB,EAAE6zE,GAAGpqF,EAAEuW,GAAG2/B,EAAE,GAAG,MAAM,QAAQ,oBAAoBtiD,EAAEszB,SAAS,oBAAoB3Q,EAAE2Q,UAAUlnB,EAAEwnc,QAAQ7L,IAAyB,IAAIntZ,KAAzB68C,GAAGxtF,EAAE0Y,GAAS1Y,EAAE,KAAcjK,EAAE,IAAI2iB,EAAEhjB,eAAei7C,IAAI56C,EAAEL,eAAei7C,IAAI,MAAM56C,EAAE46C,GAAG,GAAG,UAC3eA,EAAE,CAAC,IAAID,EAAE36C,EAAE46C,GAAG,IAAIlsB,KAAKisB,EAAEA,EAAEh7C,eAAe+uB,KAAKzkB,IAAIA,EAAE,IAAIA,EAAEykB,GAAG,QAAQ,4BAA4BksB,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIm7C,EAAGp2F,eAAei7C,GAAG0H,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI54C,KAAKkxC,EAAE,OAAO,IAAIA,KAAKj4B,EAAE,CAAC,IAAIxI,EAAEwI,EAAEi4B,GAAyB,GAAtBD,EAAE,MAAM36C,EAAEA,EAAE46C,QAAG,EAAUj4B,EAAEhjB,eAAei7C,IAAIzgC,IAAIwgC,IAAI,MAAMxgC,GAAG,MAAMwgC,GAAG,GAAG,UAAUC,EAAE,GAAGD,EAAE,CAAC,IAAIjsB,KAAKisB,GAAGA,EAAEh7C,eAAe+uB,IAAIvU,GAAGA,EAAExa,eAAe+uB,KAAKzkB,IAAIA,EAAE,IAAIA,EAAEykB,GAAG,IAAI,IAAIA,KAAKvU,EAAEA,EAAExa,eAAe+uB,IAAIisB,EAAEjsB,KAAKvU,EAAEuU,KAAKzkB,IAClfA,EAAE,IAAIA,EAAEykB,GAAGvU,EAAEuU,SAASzkB,IAAIq4C,IAAIA,EAAE,IAAIA,EAAE54C,KAAKkxC,EAAE3wC,IAAIA,EAAEkQ,MAAM,4BAA4BygC,GAAGzgC,EAAEA,EAAEA,EAAEq3L,YAAO,EAAO72J,EAAEA,EAAEA,EAAE62J,YAAO,EAAO,MAAMr3L,GAAGwgC,IAAIxgC,IAAImoC,EAAEA,GAAG,IAAI54C,KAAKkxC,EAAEzgC,IAAI,aAAaygC,EAAE,kBAAkBzgC,GAAG,kBAAkBA,IAAImoC,EAAEA,GAAG,IAAI54C,KAAKkxC,EAAE,GAAGzgC,GAAG,mCAAmCygC,GAAG,6BAA6BA,IAAIm7C,EAAGp2F,eAAei7C,IAAI,MAAMzgC,GAAG,aAAaygC,GAAGqgD,GAAE,SAAS7uF,GAAGk2C,GAAG3H,IAAIxgC,IAAImoC,EAAE,KAAK,kBAAkBnoC,GAAG,OAAOA,GAAGA,EAAE6hY,WAAWroT,EAAGx5E,EAAExT,YAAY27C,EAAEA,GAAG,IAAI54C,KAAKkxC,EAAEzgC,IAAIlQ,IAAIq4C,EAAEA,GAAG,IAAI54C,KAAK,QAC/eO,GAAG,IAAI2wC,EAAE0H,GAAK36C,EAAEqlc,YAAYpyZ,KAAEjzC,EAAEq9D,OAAO,KAAIivT,GAAG,SAAS7nX,EAAEzE,EAAEsC,EAAE0Y,GAAG1Y,IAAI0Y,IAAIhb,EAAEq9D,OAAO,IAcgL,IAAImvY,GAAG,oBAAoBria,QAAQA,QAAQpb,IAAI,SAAS29V,GAAGjoX,EAAEzE,EAAEsC,IAAGA,EAAEqjc,IAAI,EAAErjc,IAAKxJ,IAAI,EAAEwJ,EAAEmN,QAAQ,CAACuzB,QAAQ,MAAM,IAAIhoB,EAAEhb,EAAE1F,MAAsD,OAAhDgI,EAAEyM,SAAS,WAAW09b,KAAKA,IAAG,EAAGhgF,GAAGzxW,GAAGkyW,GAAGzoX,EAAEzE,IAAWsC,EACpb,SAAS0hX,GAAGv/W,EAAEzE,EAAEsC,IAAGA,EAAEqjc,IAAI,EAAErjc,IAAKxJ,IAAI,EAAE,IAAIkiB,EAAEvW,EAAE5F,KAAKgtK,yBAAyB,GAAG,oBAAoB7wJ,EAAE,CAAC,IAAI3iB,EAAE2H,EAAE1F,MAAMgI,EAAEmN,QAAQ,WAAmB,OAARy9W,GAAGzoX,EAAEzE,GAAUgb,EAAE3iB,IAAI,IAAIsiD,EAAEl2C,EAAEw1b,UAA8O,OAApO,OAAOt/Y,GAAG,oBAAoBA,EAAE+xZ,oBAAoBpqc,EAAEyM,SAAS,WAAW,oBAAoBiM,IAAI,OAAOuxW,GAAGA,GAAG,IAAIz3R,IAAI,CAAC38F,OAAOo0X,GAAGn2W,IAAIje,MAAM+0X,GAAGzoX,EAAEzE,IAAI,IAAIsC,EAAEtC,EAAE2lB,MAAMxtB,KAAKu0c,kBAAkB1sc,EAAE1F,MAAM,CAACqyc,eAAe,OAAOrqc,EAAEA,EAAE,OAAcA,EAAE,IAAIsqc,GAAG,oBAAoB99D,QAAQA,QAAQh6S,IACxc,SAAS+3R,GAAGpoX,GAAG,IAAIzE,EAAEyE,EAAEy4G,IAAI,GAAG,OAAOl9G,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAMsC,GAAG+hX,GAAG5/W,EAAEnC,QAAQtC,EAAE+3D,QAAQ,KAAK,SAAS80Y,GAAGpoc,EAAEzE,GAAG,OAAOA,EAAElH,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAA8Q,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAjS,KAAK,EAAE,GAAW,IAARkH,EAAEq9D,OAAW,OAAO54D,EAAE,CAAC,IAAInC,EAAEmC,EAAEujc,cAAchtb,EAAEvW,EAAEy1b,cAA4Bl6b,GAAdyE,EAAEzE,EAAEi6b,WAAclsH,wBAAwB/tU,EAAEwnc,cAAcxnc,EAAEnB,KAAKyD,EAAE8hc,GAAGpkc,EAAEnB,KAAKyD,GAAG0Y,GAAGvW,EAAEqoc,oCAAoC9sc,EAAE,OAAO,KAAK,EAA6C,YAAnC,IAARA,EAAEq9D,OAAWujY,GAAG5gc,EAAEi6b,UAAUY,gBAA0D,MAAMr9b,MAAMmH,EAAE,MAC5e,SAASooc,GAAGtoc,EAAEzE,EAAEsC,GAAG,OAAOA,EAAExJ,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAgD,GAAG,QAAhCkH,EAAE,QAAlBA,EAAEsC,EAAE+ic,aAAuBrlc,EAAEmnc,WAAW,MAAiB,CAAC1ic,EAAEzE,EAAEA,EAAEmX,KAAK,EAAE,CAAC,GAAG,KAAW,EAAN1S,EAAE3L,KAAO,CAAC,IAAIkiB,EAAEvW,EAAEspB,OAAOtpB,EAAE01N,QAAQn/M,IAAIvW,EAAEA,EAAE0S,WAAW1S,IAAIzE,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEsC,EAAE+ic,aAAuBrlc,EAAEmnc,WAAW,MAAiB,CAAC1ic,EAAEzE,EAAEA,EAAEmX,KAAK,EAAE,CAAC,IAAI9e,EAAEoM,EAAEuW,EAAE3iB,EAAE8e,KAAa,KAAO,GAAf9e,EAAEA,EAAES,OAAe,KAAO,EAAFT,KAAO20c,GAAG1qc,EAAEmC,GAAGw/W,GAAG3hX,EAAEmC,IAAIA,EAAEuW,QAAQvW,IAAIzE,GAAG,OAAO,KAAK,EACtR,OADwRyE,EAAEnC,EAAE23b,UAAkB,EAAR33b,EAAE+6D,QAAU,OAAOr9D,EAAEyE,EAAE+8B,qBAAqBxmB,EAAE1Y,EAAEklc,cAAcllc,EAAEzD,KAAKmB,EAAEgoc,cAAc5D,GAAG9hc,EAAEzD,KAAKmB,EAAEgoc,eAAevjc,EAAEi4G,mBAAmB1hG,EACxgBhb,EAAEk6b,cAAcz1b,EAAEqoc,4CAAuD,QAAhB9sc,EAAEsC,EAAE+ic,cAAsBa,GAAG5jc,EAAEtC,EAAEyE,IAAU,KAAK,EAAkB,GAAG,QAAnBzE,EAAEsC,EAAE+ic,aAAwB,CAAQ,GAAP5gc,EAAE,KAAQ,OAAOnC,EAAEtJ,MAAM,OAAOsJ,EAAEtJ,MAAMF,KAAK,KAAK,EAA4B,KAAK,EAAE2L,EAAEnC,EAAEtJ,MAAMihc,UAAUiM,GAAG5jc,EAAEtC,EAAEyE,GAAG,OAAO,KAAK,EAA2E,OAAzEA,EAAEnC,EAAE23b,eAAU,OAAOj6b,GAAW,EAARsC,EAAE+6D,OAASkjY,GAAGj+b,EAAEzD,KAAKyD,EAAE0lc,gBAAgBvjc,EAAE64L,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GACnX,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAD6U,KAAK,GACzY,YAD4Y,OAAOh7L,EAAE43b,gBAAgB53b,EAAEA,EAAEi4P,UAAU,OAAOj4P,IAAIA,EAAEA,EAAE43b,cAAc,OAAO53b,IAAIA,EAAEA,EAAE63b,WAAW,OAAO73b,GAAGkyF,GAAGlyF,OACzb,MAAM9E,MAAMmH,EAAE,MAC5E,SAASsoc,GAAGxoc,EAAEzE,GAAG,IAAI,IAAIsC,EAAEmC,IAAI,CAAC,GAAG,IAAInC,EAAExJ,IAAI,CAAC,IAAIkiB,EAAE1Y,EAAE23b,UAAU,GAAGj6b,EAAY,oBAAVgb,EAAEA,EAAEhkB,OAA4BwlV,YAAYxhU,EAAEwhU,YAAY,UAAU,OAAO,aAAaxhU,EAAE2/J,QAAQ,WAAW,CAAC3/J,EAAE1Y,EAAE23b,UAAU,IAAI5hc,EAAEiK,EAAE0lc,cAAchxc,MAAMqB,OAAE,IAASA,GAAG,OAAOA,GAAGA,EAAEL,eAAe,WAAWK,EAAEsiL,QAAQ,KAAK3/J,EAAEhkB,MAAM2jL,QAAQhrF,GAAG,UAAUt3F,SAAS,GAAG,IAAIiK,EAAExJ,IAAIwJ,EAAE23b,UAAU1C,UAAUv3b,EAAE,GAAGsC,EAAE0lc,mBAAmB,IAAI,KAAK1lc,EAAExJ,KAAK,KAAKwJ,EAAExJ,KAAK,OAAOwJ,EAAE43b,eAAe53b,IAAImC,IAAI,OAAOnC,EAAEtJ,MAAM,CAACsJ,EAAEtJ,MAAMgyV,OAAO1oV,EAAEA,EAAEA,EAAEtJ,MAAM,SAAS,GAAGsJ,IACtfmC,EAAE,MAAM,KAAK,OAAOnC,EAAE83b,SAAS,CAAC,GAAG,OAAO93b,EAAE0oV,QAAQ1oV,EAAE0oV,SAASvmV,EAAE,OAAOnC,EAAEA,EAAE0oV,OAAO1oV,EAAE83b,QAAQpvG,OAAO1oV,EAAE0oV,OAAO1oV,EAAEA,EAAE83b,SACjH,SAAS8S,GAAGzoc,EAAEzE,GAAG,GAAGoic,IAAI,oBAAoBA,GAAG+K,qBAAqB,IAAI/K,GAAG+K,qBAAqBhL,GAAGnic,GAAG,MAAM26C,IAAI,OAAO36C,EAAElH,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnB2L,EAAEzE,EAAEqlc,cAAyC,QAAf5gc,EAAEA,EAAE0ic,YAAqB,CAAC,IAAI7kc,EAAEmC,EAAEA,EAAE0S,KAAK,EAAE,CAAC,IAAI6D,EAAE1Y,EAAEjK,EAAE2iB,EAAEm/M,QAAgB,GAARn/M,EAAEA,EAAEliB,SAAO,IAAST,EAAE,GAAG,KAAO,EAAF2iB,GAAKgyb,GAAGhtc,EAAEsC,OAAO,CAAC0Y,EAAEhb,EAAE,IAAI3H,IAAI,MAAMsiD,GAAG0pU,GAAGrpW,EAAE2/B,IAAIr4C,EAAEA,EAAE6U,WAAW7U,IAAImC,GAAG,MAAM,KAAK,EAAsB,GAApBooX,GAAG7sX,GAAoB,oBAAjByE,EAAEzE,EAAEi6b,WAAmCv4Z,qBAAqB,IAAIj9B,EAAEtL,MAAM6G,EAAEgoc,cAAcvjc,EAAEk9B,MAAM3hC,EAAEk6b,cAAcz1b,EAAEi9B,uBAAuB,MAAMiZ,GAAG0pU,GAAGrkX,EAC/gB26C,GAAG,MAAM,KAAK,EAAEkyU,GAAG7sX,GAAG,MAAM,KAAK,EAAEotc,GAAG3oc,EAAEzE,IAAI,SAASqtc,GAAG5oc,GAAGA,EAAE81P,UAAU,KAAK91P,EAAEzL,MAAM,KAAKyL,EAAEogc,aAAa,KAAKpgc,EAAE4ic,YAAY,KAAK5ic,EAAE0ic,WAAW,KAAK1ic,EAAEujc,cAAc,KAAKvjc,EAAEy1b,cAAc,KAAKz1b,EAAE4jc,aAAa,KAAK5jc,EAAEumV,OAAO,KAAKvmV,EAAE4gc,YAAY,KAAK,SAASiI,GAAG7oc,GAAG,OAAO,IAAIA,EAAE3L,KAAK,IAAI2L,EAAE3L,KAAK,IAAI2L,EAAE3L,IACnS,SAASy0c,GAAG9oc,GAAGA,EAAE,CAAC,IAAI,IAAIzE,EAAEyE,EAAEumV,OAAO,OAAOhrV,GAAG,CAAC,GAAGstc,GAAGttc,GAAG,MAAMyE,EAAEzE,EAAEA,EAAEgrV,OAAO,MAAMxtV,MAAMmH,EAAE,MAAO,IAAIrC,EAAEtC,EAAgB,OAAdA,EAAEsC,EAAE23b,UAAiB33b,EAAExJ,KAAK,KAAK,EAAE,IAAIkiB,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAEhb,EAAEA,EAAE66b,cAAc7/a,GAAE,EAAG,MAAM,QAAQ,MAAMxd,MAAMmH,EAAE,MAAe,GAARrC,EAAE+6D,QAAWmyB,GAAGxvF,EAAE,IAAIsC,EAAE+6D,QAAQ,IAAI54D,EAAEzE,EAAE,IAAIsC,EAAEmC,IAAI,CAAC,KAAK,OAAOnC,EAAE83b,SAAS,CAAC,GAAG,OAAO93b,EAAE0oV,QAAQsiH,GAAGhrc,EAAE0oV,QAAQ,CAAC1oV,EAAE,KAAK,MAAMmC,EAAEnC,EAAEA,EAAE0oV,OAAiC,IAA1B1oV,EAAE83b,QAAQpvG,OAAO1oV,EAAE0oV,OAAW1oV,EAAEA,EAAE83b,QAAQ,IAAI93b,EAAExJ,KAAK,IAAIwJ,EAAExJ,KAAK,KAAKwJ,EAAExJ,KAAK,CAAC,GAAW,EAARwJ,EAAE+6D,MAAQ,SAASr9D,EAAE,GAAG,OAC/esC,EAAEtJ,OAAO,IAAIsJ,EAAExJ,IAAI,SAASkH,EAAOsC,EAAEtJ,MAAMgyV,OAAO1oV,EAAEA,EAAEA,EAAEtJ,MAAM,KAAa,EAARsJ,EAAE+6D,OAAS,CAAC/6D,EAAEA,EAAE23b,UAAU,MAAMx1b,GAAGuW,EAAEwyb,GAAG/oc,EAAEnC,EAAEtC,GAAGytc,GAAGhpc,EAAEnC,EAAEtC,GACzH,SAASwtc,GAAG/oc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEvW,EAAE3L,IAAIT,EAAE,IAAI2iB,GAAG,IAAIA,EAAE,GAAG3iB,EAAEoM,EAAEpM,EAAEoM,EAAEw1b,UAAUx1b,EAAEw1b,UAAUxyZ,SAASznC,EAAE,IAAIsC,EAAEwmV,SAASxmV,EAAE85L,WAAWsxQ,aAAajpc,EAAEzE,GAAGsC,EAAEorc,aAAajpc,EAAEzE,IAAI,IAAIsC,EAAEwmV,UAAU9oV,EAAEsC,EAAE85L,YAAasxQ,aAAajpc,EAAEnC,IAAKtC,EAAEsC,GAAIyoG,YAAYtmG,GAA4B,QAAxBnC,EAAEA,EAAEqrc,2BAA8B,IAASrrc,GAAG,OAAOtC,EAAEisc,UAAUjsc,EAAEisc,QAAQ7L,UAAU,GAAG,IAAIplb,GAAc,QAAVvW,EAAEA,EAAEzL,OAAgB,IAAIw0c,GAAG/oc,EAAEzE,EAAEsC,GAAGmC,EAAEA,EAAE21b,QAAQ,OAAO31b,GAAG+oc,GAAG/oc,EAAEzE,EAAEsC,GAAGmC,EAAEA,EAAE21b,QAC9Y,SAASqT,GAAGhpc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEvW,EAAE3L,IAAIT,EAAE,IAAI2iB,GAAG,IAAIA,EAAE,GAAG3iB,EAAEoM,EAAEpM,EAAEoM,EAAEw1b,UAAUx1b,EAAEw1b,UAAUxyZ,SAASznC,EAAEsC,EAAEorc,aAAajpc,EAAEzE,GAAGsC,EAAEyoG,YAAYtmG,QAAQ,GAAG,IAAIuW,GAAc,QAAVvW,EAAEA,EAAEzL,OAAgB,IAAIy0c,GAAGhpc,EAAEzE,EAAEsC,GAAGmC,EAAEA,EAAE21b,QAAQ,OAAO31b,GAAGgpc,GAAGhpc,EAAEzE,EAAEsC,GAAGmC,EAAEA,EAAE21b,QACrN,SAASgT,GAAG3oc,EAAEzE,GAAG,IAAI,IAAa3H,EAAEsiD,EAAXr4C,EAAEtC,EAAEgb,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAE1Y,EAAE0oV,OAAOvmV,EAAE,OAAO,CAAC,GAAG,OAAOuW,EAAE,MAAMxd,MAAMmH,EAAE,MAAoB,OAAdtM,EAAE2iB,EAAEi/a,UAAiBj/a,EAAEliB,KAAK,KAAK,EAAE6hD,GAAE,EAAG,MAAMl2C,EAAE,KAAK,EAAiC,KAAK,EAAEpM,EAAEA,EAAEwic,cAAclgZ,GAAE,EAAG,MAAMl2C,EAAEuW,EAAEA,EAAEgwU,OAAOhwU,GAAE,EAAG,GAAG,IAAI1Y,EAAExJ,KAAK,IAAIwJ,EAAExJ,IAAI,CAAC2L,EAAE,IAAI,IAAIsiB,EAAEtiB,EAAEuuC,EAAE1wC,EAAEkQ,EAAEwgC,IAAI,GAAGk6Z,GAAGnmb,EAAEvU,GAAG,OAAOA,EAAExZ,OAAO,IAAIwZ,EAAE1Z,IAAI0Z,EAAExZ,MAAMgyV,OAAOx4U,EAAEA,EAAEA,EAAExZ,UAAU,CAAC,GAAGwZ,IAAIwgC,EAAE,MAAMvuC,EAAE,KAAK,OAAO+N,EAAE4nb,SAAS,CAAC,GAAG,OAAO5nb,EAAEw4U,QAAQx4U,EAAEw4U,SAASh4S,EAAE,MAAMvuC,EAAE+N,EAAEA,EAAEw4U,OAAOx4U,EAAE4nb,QAAQpvG,OAAOx4U,EAAEw4U,OAAOx4U,EAAEA,EAAE4nb,QAAQz/Y,GAAG5zB,EAAE1uB,EAAE26C,EAAE1wC,EAAE23b,UACrf,IAAIlza,EAAE+hU,SAAS/hU,EAAEq1K,WAAW0M,YAAY91J,GAAGjsB,EAAE+hL,YAAY91J,IAAI36C,EAAEywM,YAAYxmM,EAAE23b,gBAAgB,GAAG,IAAI33b,EAAExJ,KAAK,GAAG,OAAOwJ,EAAEtJ,MAAM,CAACX,EAAEiK,EAAE23b,UAAUY,cAAclgZ,GAAE,EAAGr4C,EAAEtJ,MAAMgyV,OAAO1oV,EAAEA,EAAEA,EAAEtJ,MAAM,eAAe,GAAGk0c,GAAGzoc,EAAEnC,GAAG,OAAOA,EAAEtJ,MAAM,CAACsJ,EAAEtJ,MAAMgyV,OAAO1oV,EAAEA,EAAEA,EAAEtJ,MAAM,SAAS,GAAGsJ,IAAItC,EAAE,MAAM,KAAK,OAAOsC,EAAE83b,SAAS,CAAC,GAAG,OAAO93b,EAAE0oV,QAAQ1oV,EAAE0oV,SAAShrV,EAAE,OAAkB,KAAXsC,EAAEA,EAAE0oV,QAAalyV,MAAMkiB,GAAE,GAAI1Y,EAAE83b,QAAQpvG,OAAO1oV,EAAE0oV,OAAO1oV,EAAEA,EAAE83b,SAClZ,SAASwT,GAAGnpc,EAAEzE,GAAG,OAAOA,EAAElH,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIwJ,EAAEtC,EAAEqlc,YAAyC,GAAG,QAAhC/ic,EAAE,OAAOA,EAAEA,EAAE6kc,WAAW,MAAiB,CAAC,IAAInsb,EAAE1Y,EAAEA,EAAE6U,KAAK,GAAG,KAAW,EAAN6D,EAAEliB,OAAS2L,EAAEuW,EAAEm/M,QAAQn/M,EAAEm/M,aAAQ,OAAO,IAAS11N,GAAGA,KAAKuW,EAAEA,EAAE7D,WAAW6D,IAAI1Y,GAAG,OAAO,KAAK,EAErJ,KAAK,GAAoG,KAAK,GAAG,OAF6C,KAAK,EAAgB,GAAG,OAAjBA,EAAEtC,EAAEi6b,WAAqB,CAACj/a,EAAEhb,EAAEgoc,cAAc,IAAI3vc,EAAE,OAAOoM,EAAEA,EAAEujc,cAAchtb,EAAEvW,EAAEzE,EAAEnB,KAAK,IAAI87C,EAAE36C,EAAEqlc,YAA+B,GAAnBrlc,EAAEqlc,YAAY,KAAQ,OAAO1qZ,EAAE,CAAgF,IAA/Er4C,EAAE4+b,IAAIlmb,EAAE,UAAUvW,GAAG,UAAUuW,EAAEnc,MAAM,MAAMmc,EAAExH,MAAM86E,GAAGhsF,EAAE0Y,GAAG+0E,GAAGtrF,EAAEpM,GAAG2H,EAAE+vF,GAAGtrF,EAAEuW,GAAO3iB,EAAE,EAAEA,EAAEsiD,EAAE9iD,OAAOQ,GAClf,EAAE,CAAC,IAAI0uB,EAAE4zB,EAAEtiD,GAAG26C,EAAE2H,EAAEtiD,EAAE,GAAG,UAAU0uB,EAAE6oE,GAAGttF,EAAE0wC,GAAG,4BAA4BjsB,EAAEuoE,GAAGhtF,EAAE0wC,GAAG,aAAajsB,EAAEyoE,GAAGltF,EAAE0wC,GAAGy3C,EAAGnoF,EAAEykB,EAAEisB,EAAEhzC,GAAG,OAAOyE,GAAG,IAAK,QAAQgqF,GAAGnsF,EAAE0Y,GAAG,MAAM,IAAK,WAAW8zE,GAAGxsF,EAAE0Y,GAAG,MAAM,IAAK,SAASvW,EAAEnC,EAAEs0b,cAAcoV,YAAY1pc,EAAEs0b,cAAcoV,cAAchxb,EAAEoiM,SAAmB,OAAVziK,EAAE3/B,EAAE1gB,OAAcs0F,GAAGtsF,IAAI0Y,EAAEoiM,SAASziK,GAAE,GAAIl2C,MAAMuW,EAAEoiM,WAAW,MAAMpiM,EAAE3f,aAAauzF,GAAGtsF,IAAI0Y,EAAEoiM,SAASpiM,EAAE3f,cAAa,GAAIuzF,GAAGtsF,IAAI0Y,EAAEoiM,SAASpiM,EAAEoiM,SAAS,GAAG,IAAG,MAAO,OAAO,KAAK,EAAE,GAAG,OAAOp9M,EAAEi6b,UAAU,MAAMz8b,MAAMmH,EAAE,MAC/c,YADqd3E,EAAEi6b,UAAU1C,UACjfv3b,EAAEgoc,eAAqB,KAAK,EAA8D,aAA5D1lc,EAAEtC,EAAEi6b,WAAYW,UAAUt4b,EAAEs4b,SAAQ,EAAGpmW,GAAGlyF,EAAEu4b,iBAAsC,KAAK,GAAyD,OAAtD,OAAO76b,EAAEk6b,gBAAgB2T,GAAGz+W,KAAI69W,GAAGjtc,EAAEhH,OAAM,SAAK80c,GAAG9tc,GAAU,KAAK,GAAS,YAAN8tc,GAAG9tc,GAAyB,KAAK,GAAG,KAAK,GAAgC,YAA7Bitc,GAAGjtc,EAAE,OAAOA,EAAEk6b,eAAsB,MAAM18b,MAAMmH,EAAE,MAAO,SAASmpc,GAAGrpc,GAAG,IAAIzE,EAAEyE,EAAE4gc,YAAY,GAAG,OAAOrlc,EAAE,CAACyE,EAAE4gc,YAAY,KAAK,IAAI/ic,EAAEmC,EAAEw1b,UAAU,OAAO33b,IAAIA,EAAEmC,EAAEw1b,UAAU,IAAI2S,IAAI5sc,EAAEwL,SAAQ,SAASxL,GAAG,IAAIgb,EAAE+yb,GAAG9jX,KAAK,KAAKxlF,EAAEzE,GAAGsC,EAAEgoC,IAAItqC,KAAKsC,EAAE8T,IAAIpW,GAAGA,EAAEunC,KAAKvsB,EAAEA,QACne,SAASgzb,GAAGvpc,EAAEzE,GAAG,OAAO,OAAOyE,IAAsB,QAAlBA,EAAEA,EAAEy1b,gBAAwB,OAAOz1b,EAAE01b,cAA+B,QAAlBn6b,EAAEA,EAAEk6b,gBAAwB,OAAOl6b,EAAEm6b,YAAe,IAAI8T,GAAGtrc,KAAK8V,KAAKy1b,GAAGxjX,EAAGsqW,uBAAuBmZ,GAAGzjX,EAAGwqW,kBAAkBtiZ,GAAE,EAAE+/C,GAAE,KAAK9/C,GAAE,KAAKujC,GAAE,EAAErjB,GAAG,EAAEq7Y,GAAG9M,GAAG,GAAG9uW,GAAE,EAAE67W,GAAG,KAAKC,GAAG,EAAErI,GAAG,EAAEkG,GAAG,EAAEoC,GAAG,EAAEC,GAAG,KAAKX,GAAG,EAAEzB,GAAGxic,IAAS,SAAS6kc,KAAKrC,GAAGh9W,KAAI,IAAI,IA8BsFqzQ,GA9BlF3qT,GAAE,KAAK20Z,IAAG,EAAGhgF,GAAG,KAAKF,GAAG,KAAKmiF,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAG,EAAG,SAAS/I,KAAK,OAAO,KAAO,GAAF3zZ,IAAMw8C,MAAK,IAAI8/W,GAAGA,GAAGA,GAAG9/W,KAC3e,SAASo3W,GAAG/hc,GAAY,GAAG,KAAO,GAAnBA,EAAEA,EAAEuG,OAAkB,OAAO,EAAE,GAAG,KAAO,EAAFvG,GAAK,OAAO,KAAKq/b,KAAK,EAAE,EAAkB,GAAhB,IAAIqL,KAAKA,GAAGb,IAAO,IAAInK,GAAGr9T,WAAW,CAAC,IAAIsoU,KAAKA,GAAG,OAAOZ,GAAGA,GAAGlT,aAAa,GAAG72b,EAAE0qc,GAAG,IAAInvc,EAAE,SAASovc,GAAsD,OAA7C,KAANpvc,IAAIA,KAA8B,KAAPA,GAAbyE,EAAE,SAASA,IAAOA,KAAUzE,EAAE,OAAcA,EAA4D,OAA1DyE,EAAEq/b,KAAK,KAAO,EAAFlxZ,KAAM,KAAKnuC,EAAEA,EAAEwyF,GAAG,GAAGk4W,IAAa1qc,EAAEwyF,GAAVxyF,EAtK3Q,SAAYA,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,OAAO,GAsKuJ8xF,CAAG9xF,GAAU0qc,IAAY1qc,EACnT,SAASgic,GAAGhic,EAAEzE,EAAEsC,GAAG,GAAG,GAAG0sc,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKzxc,MAAMmH,EAAE,MAAgB,GAAG,QAAbF,EAAE8qc,GAAG9qc,EAAEzE,IAAe,OAAO,KAAK22F,GAAGlyF,EAAEzE,EAAEsC,GAAGmC,IAAIkuF,KAAIw5W,IAAInsc,EAAE,IAAIwyF,IAAGw5R,GAAGvnX,EAAE2xE,KAAI,IAAIp7D,EAAE8ob,KAAK,IAAI9jc,EAAE,KAAO,EAAF4yC,KAAM,KAAO,GAAFA,IAAM48Z,GAAG/qc,IAAIgrc,GAAGhrc,EAAEnC,GAAG,IAAIswC,KAAI67Z,KAAKxK,QAAQ,KAAO,EAAFrxZ,KAAM,KAAK53B,GAAG,KAAKA,IAAI,OAAO+zb,GAAGA,GAAG,IAAIj6W,IAAI,CAACrwF,IAAIsqc,GAAG34b,IAAI3R,IAAIgrc,GAAGhrc,EAAEnC,IAAIksc,GAAG/pc,EAAE,SAAS8qc,GAAG9qc,EAAEzE,GAAGyE,EAAEsgc,OAAO/kc,EAAE,IAAIsC,EAAEmC,EAAE81P,UAAqC,IAA3B,OAAOj4P,IAAIA,EAAEyic,OAAO/kc,GAAGsC,EAAEmC,EAAMA,EAAEA,EAAEumV,OAAO,OAAOvmV,GAAGA,EAAEkgc,YAAY3kc,EAAgB,QAAdsC,EAAEmC,EAAE81P,aAAqBj4P,EAAEqic,YAAY3kc,GAAGsC,EAAEmC,EAAEA,EAAEA,EAAEumV,OAAO,OAAO,IAAI1oV,EAAExJ,IAAIwJ,EAAE23b,UAAU,KACze,SAASwV,GAAGhrc,EAAEzE,GAAG,IAAI,IAAIsC,EAAEmC,EAAEirc,aAAa10b,EAAEvW,EAAE+2b,eAAenjc,EAAEoM,EAAEg3b,YAAY9gZ,EAAEl2C,EAAEkrc,gBAAgB5ob,EAAEtiB,EAAE62b,aAAa,EAAEv0a,GAAG,CAAC,IAAIisB,EAAE,GAAG+jD,GAAGhwE,GAAGvU,EAAE,GAAGwgC,EAAEC,EAAE0H,EAAE3H,GAAG,IAAI,IAAIC,GAAG,GAAG,KAAKzgC,EAAEwI,IAAI,KAAKxI,EAAEna,GAAG,CAAC46C,EAAEjzC,EAAEs2F,GAAG9jF,GAAG,IAAI7a,EAAEq5F,GAAEr2C,EAAE3H,GAAG,IAAIr7C,EAAEs7C,EAAE,IAAI,GAAGt7C,EAAEs7C,EAAE,KAAK,QAAQA,GAAGjzC,IAAIyE,EAAE82b,cAAc/ob,GAAGuU,IAAIvU,EAAwB,GAAtBwI,EAAE07E,GAAGjyF,EAAEA,IAAIkuF,GAAEvc,GAAE,GAAGp2E,EAAEgxF,GAAK,IAAIh2E,EAAE,OAAO1Y,IAAIA,IAAIkhc,IAAIjB,GAAGjgc,GAAGmC,EAAEirc,aAAa,KAAKjrc,EAAEmrc,iBAAiB,OAAO,CAAC,GAAG,OAAOttc,EAAE,CAAC,GAAGmC,EAAEmrc,mBAAmB5vc,EAAE,OAAOsC,IAAIkhc,IAAIjB,GAAGjgc,GAAG,KAAKtC,GAAGsC,EAAEktc,GAAGvlX,KAAK,KAAKxlF,GAAG,OAAOi/b,IAAIA,GAAG,CAACphc,GAAGqhc,GAAGrB,GAAGU,GAAGkB,KAAKR,GAAG3hc,KAAKO,GACrfA,EAAEkhc,IAAI,KAAKxjc,EAAEsC,EAAE0hc,GAAG,GAAGwL,GAAGvlX,KAAK,KAAKxlF,KAAKnC,EAzK+F,SAAYmC,GAAG,OAAOA,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,QAAQ,MAAMjH,MAAMmH,EAAE,IAAIF,KAyKxT+xF,CAAGx2F,GAAGsC,EAAE0hc,GAAG1hc,EAAEutc,GAAG5lX,KAAK,KAAKxlF,KAAKA,EAAEmrc,iBAAiB5vc,EAAEyE,EAAEirc,aAAaptc,GAC5G,SAASutc,GAAGprc,GAAiB,GAAdyqc,IAAI,EAAEE,GAAGD,GAAG,EAAK,KAAO,GAAFv8Z,IAAM,MAAMp1C,MAAMmH,EAAE,MAAM,IAAI3E,EAAEyE,EAAEirc,aAAa,GAAGI,MAAMrrc,EAAEirc,eAAe1vc,EAAE,OAAO,KAAK,IAAIsC,EAAEo0F,GAAGjyF,EAAEA,IAAIkuF,GAAEvc,GAAE,GAAG,GAAG,IAAI9zE,EAAE,OAAO,KAAK,IAAI0Y,EAAE1Y,EAAMjK,EAAEu6C,GAAEA,IAAG,GAAG,IAAI+H,EAAEo1Z,KAAkC,IAA1Bp9W,KAAIluF,GAAG2xE,KAAIp7D,IAAEyzb,KAAKuB,GAAGvrc,EAAEuW,UAAUi1b,KAAK,MAAM,MAAMj9Z,GAAGk9Z,GAAGzrc,EAAEuuC,GAAgE,GAApDwxZ,KAAK0J,GAAGn2Y,QAAQpd,EAAE/H,GAAEv6C,EAAE,OAAOw6C,GAAE73B,EAAE,GAAG23E,GAAE,KAAKvc,GAAE,EAAEp7D,EAAEw3E,IAAM,KAAK87W,GAAGnC,IAAI6D,GAAGvrc,EAAE,QAAQ,GAAG,IAAIuW,EAAE,CAAyF,GAAxF,IAAIA,IAAI43B,IAAG,GAAGnuC,EAAEm2b,UAAUn2b,EAAEm2b,SAAQ,EAAGgG,GAAGn8b,EAAEo2b,gBAAwB,KAARv4b,EAAE00F,GAAGvyF,MAAWuW,EAAEm1b,GAAG1rc,EAAEnC,KAAQ,IAAI0Y,EAAE,MAAMhb,EAAEquc,GAAG2B,GAAGvrc,EAAE,GAAGunX,GAAGvnX,EAAEnC,GAAGmtc,GAAGhrc,EAAE2qF,MAAKpvF,EAC3c,OAD6cyE,EAAE2rc,aACrf3rc,EAAEszD,QAAQwiM,UAAU91P,EAAE4rc,cAAc/tc,EAAS0Y,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMxd,MAAMmH,EAAE,MAAM,KAAK,EACI,KAAK,EAAE2rc,GAAG7rc,GAAG,MADH,KAAK,EAAU,GAARunX,GAAGvnX,EAAEnC,IAAS,SAAFA,KAAcA,GAAiB,IAAb0Y,EAAE6yb,GAAG,IAAIz+W,MAAU,CAAC,GAAG,IAAIsH,GAAGjyF,EAAE,GAAG,MAAyB,KAAnBpM,EAAEoM,EAAE+2b,gBAAqBl5b,KAAKA,EAAE,CAACikc,KAAK9hc,EAAEg3b,aAAah3b,EAAE+2b,eAAenjc,EAAE,MAAMoM,EAAE8rc,cAAc7P,GAAG4P,GAAGrmX,KAAK,KAAKxlF,GAAGuW,GAAG,MAAMs1b,GAAG7rc,GAAG,MAAM,KAAK,EAAU,GAARunX,GAAGvnX,EAAEnC,IAAS,QAAFA,KAAaA,EAAE,MAAqB,IAAf0Y,EAAEvW,EAAEm3b,WAAevjc,GAAG,EAAE,EAAEiK,GAAG,CAAC,IAAIykB,EAAE,GAAGgwE,GAAGz0F,GAAGq4C,EAAE,GAAG5zB,GAAEA,EAAE/L,EAAE+L,IAAK1uB,IAAIA,EAAE0uB,GAAGzkB,IAAIq4C,EACjZ,GADmZr4C,EAAEjK,EAClZ,IAD4ZiK,GAAG,KAAXA,EAAE8sF,KAAI9sF,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAClfA,EAAE,KAAK,KAAK2rc,GAAG3rc,EAAE,OAAOA,GAAU,CAACmC,EAAE8rc,cAAc7P,GAAG4P,GAAGrmX,KAAK,KAAKxlF,GAAGnC,GAAG,MAAMguc,GAAG7rc,GAAG,MAAyB,QAAQ,MAAMjH,MAAMmH,EAAE,OAAkB,OAAV8qc,GAAGhrc,EAAE2qF,MAAY3qF,EAAEirc,eAAe1vc,EAAE6vc,GAAG5lX,KAAK,KAAKxlF,GAAG,KAAK,SAASunX,GAAGvnX,EAAEzE,GAAuD,IAApDA,IAAIuuc,GAAGvuc,IAAImsc,GAAG1nc,EAAE+2b,gBAAgBx7b,EAAEyE,EAAEg3b,cAAcz7b,EAAMyE,EAAEA,EAAEkrc,gBAAgB,EAAE3vc,GAAG,CAAC,IAAIsC,EAAE,GAAGy0F,GAAG/2F,GAAGgb,EAAE,GAAG1Y,EAAEmC,EAAEnC,IAAI,EAAEtC,IAAIgb,GAC1U,SAASw0b,GAAG/qc,GAAG,GAAG,KAAO,GAAFmuC,IAAM,MAAMp1C,MAAMmH,EAAE,MAAW,GAALmrc,KAAQrrc,IAAIkuF,IAAG,KAAKluF,EAAE82b,aAAanlX,IAAG,CAAC,IAAIp2E,EAAEo2E,GAAM9zE,EAAE6tc,GAAG1rc,EAAEzE,GAAG,KAAKsuc,GAAGnC,MAAgB7pc,EAAE6tc,GAAG1rc,EAAfzE,EAAE02F,GAAGjyF,EAAEzE,UAA6BsC,EAAE6tc,GAAG1rc,EAAfzE,EAAE02F,GAAGjyF,EAAE,IAAgH,GAAnG,IAAIA,EAAE3L,KAAK,IAAIwJ,IAAIswC,IAAG,GAAGnuC,EAAEm2b,UAAUn2b,EAAEm2b,SAAQ,EAAGgG,GAAGn8b,EAAEo2b,gBAAwB,KAAR76b,EAAEg3F,GAAGvyF,MAAWnC,EAAE6tc,GAAG1rc,EAAEzE,KAAQ,IAAIsC,EAAE,MAAMA,EAAE+rc,GAAG2B,GAAGvrc,EAAE,GAAGunX,GAAGvnX,EAAEzE,GAAGyvc,GAAGhrc,EAAE2qF,MAAK9sF,EAAuE,OAArEmC,EAAE2rc,aAAa3rc,EAAEszD,QAAQwiM,UAAU91P,EAAE4rc,cAAcrwc,EAAEswc,GAAG7rc,GAAGgrc,GAAGhrc,EAAE2qF,MAAY,KACnR,SAASohX,GAAG/rc,EAAEzE,GAAG,IAAIsC,EAAEswC,GAAEA,IAAG,EAAE,IAAI,OAAOnuC,EAAEzE,GAAb,QAA4B,KAAJ4yC,GAAEtwC,KAAUmsc,KAAKxK,OAAO,SAASwM,GAAGhsc,EAAEzE,GAAG,IAAIsC,EAAEswC,GAAEA,KAAI,EAAEA,IAAG,EAAE,IAAI,OAAOnuC,EAAEzE,GAAb,QAA4B,KAAJ4yC,GAAEtwC,KAAUmsc,KAAKxK,OAAO,SAASn/R,GAAGrgK,EAAEzE,GAAG8yC,GAAEs7Z,GAAGr7Y,IAAIA,IAAI/yD,EAAEsuc,IAAItuc,EAAE,SAASqsc,KAAKt5Y,GAAGq7Y,GAAGr2Y,QAAQo5B,GAAEi9W,IAC5V,SAAS4B,GAAGvrc,EAAEzE,GAAGyE,EAAE2rc,aAAa,KAAK3rc,EAAE4rc,cAAc,EAAE,IAAI/tc,EAAEmC,EAAE8rc,cAAiD,IAAlC,IAAIjuc,IAAImC,EAAE8rc,eAAe,EAAE5P,GAAGr+b,IAAO,OAAOuwC,GAAE,IAAIvwC,EAAEuwC,GAAEm4S,OAAO,OAAO1oV,GAAG,CAAC,IAAI0Y,EAAE1Y,EAAE,OAAO0Y,EAAEliB,KAAK,KAAK,EAA6B,QAA3BkiB,EAAEA,EAAEnc,KAAK4sK,yBAA4B,IAASzwJ,GAAG6mb,KAAK,MAAM,KAAK,EAAEllG,KAAKxrQ,GAAE9hC,IAAG8hC,GAAEp5C,IAAG2iV,KAAK,MAAM,KAAK,EAAEr9U,GAAGriC,GAAG,MAAM,KAAK,EAAE2hV,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGxrQ,GAAE95D,IAAG,MAAM,KAAK,GAAGota,GAAGzpb,GAAG,MAAM,KAAK,GAAG,KAAK,GAAGqxb,KAAK/pc,EAAEA,EAAE0oV,OAAOr4P,GAAEluF,EAAEouC,GAAEy0Z,GAAG7ic,EAAEszD,QAAQ,MAAMqe,GAAErjB,GAAGu7Y,GAAGtuc,EAAEwyF,GAAE,EAAE67W,GAAG,KAAKE,GAAGpC,GAAGlG,GAAG,EACvc,SAASiK,GAAGzrc,EAAEzE,GAAG,OAAE,CAAC,IAAIsC,EAAEuwC,GAAE,IAAuB,GAAnB2xZ,KAAKiE,GAAG1wY,QAAQ+wY,GAAMvjG,GAAG,CAAC,IAAI,IAAIvqV,EAAEg6E,GAAEklW,cAAc,OAAOl/a,GAAG,CAAC,IAAI3iB,EAAE2iB,EAAEqkB,MAAM,OAAOhnC,IAAIA,EAAEmxK,QAAQ,MAAMxuJ,EAAEA,EAAE7D,KAAKouV,IAAG,EAAyC,GAAtCzI,GAAG,EAAEtnQ,GAAEj7C,GAAEy6C,GAAE,KAAKywQ,IAAG,EAAG0oG,GAAGp2Y,QAAQ,KAAQ,OAAOz1D,GAAG,OAAOA,EAAE0oV,OAAO,CAACx4P,GAAE,EAAE67W,GAAGruc,EAAE6yC,GAAE,KAAK,MAAMpuC,EAAE,CAAC,IAAIk2C,EAAEl2C,EAAEsiB,EAAEzkB,EAAE0oV,OAAOh4S,EAAE1wC,EAAEkQ,EAAExS,EAAoD,GAAlDA,EAAEo2E,GAAEpjC,EAAEqqB,OAAO,KAAKrqB,EAAEq0Z,YAAYr0Z,EAAEm0Z,WAAW,KAAQ,OAAO30b,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE+0B,KAAK,CAAC,IAAI0L,EAAEzgC,EAAE,GAAG,KAAY,EAAPwgC,EAAEhoC,MAAQ,CAAC,IAAIrT,EAAEq7C,EAAEunN,UAAU5iQ,GAAGq7C,EAAEqyZ,YAAY1tc,EAAE0tc,YAAYryZ,EAAEknZ,cAAcvic,EAAEuic,cAAclnZ,EAAE+xZ,MAAMptc,EAAEotc,QACpf/xZ,EAAEqyZ,YAAY,KAAKryZ,EAAEknZ,cAAc,MAAM,IAAIriZ,EAAE,KAAe,EAAVxgB,GAAE0gC,SAAWjgE,EAAEivB,EAAE,EAAE,CAAC,IAAIuE,EAAE,GAAGA,EAAE,KAAKxzB,EAAEgB,IAAI,CAAC,IAAI4L,EAAE5M,EAAEoic,cAAc,GAAG,OAAOx1b,EAAE4mB,EAAE,OAAO5mB,EAAEy1b,eAAqB,CAAC,IAAIjia,EAAEpgC,EAAEkwc,cAAc18a,OAAE,IAAS4M,EAAEqza,YAAY,IAAKrza,EAAEsza,6BAA8B3zZ,IAAS,GAAGvsB,EAAE,CAAC,IAAIsP,EAAE9iC,EAAEutc,YAAY,GAAG,OAAOzqa,EAAE,CAAC,IAAI9sB,EAAE,IAAIgnF,IAAIhnF,EAAEsI,IAAI68B,GAAGn7C,EAAEutc,YAAYv3b,OAAO8sB,EAAExkB,IAAI68B,GAAG,GAAG,KAAY,EAAPn7C,EAAEkT,MAAQ,CAA2C,GAA1ClT,EAAEulE,OAAO,GAAGrqB,EAAEqqB,OAAO,MAAMrqB,EAAEqqB,QAAQ,KAAQ,IAAIrqB,EAAEl6C,IAAI,GAAG,OAAOk6C,EAAEunN,UAAUvnN,EAAEl6C,IAAI,OAAO,CAAC,IAAItB,EAAEmuc,IAAI,EAAE,GAAGnuc,EAAEsB,IAAI,EAAEgtc,GAAG9yZ,EAAEx7C,GAAGw7C,EAAE+xZ,OAAO,EAAE,MAAMtgc,EAAE+N,OAC5f,EAAOwgC,EAAEhzC,EAAE,IAAIo6B,EAAEugB,EAAE+1Z,UAA+G,GAArG,OAAOt2a,GAAGA,EAAEugB,EAAE+1Z,UAAU,IAAIlE,GAAGh6b,EAAE,IAAIsiF,IAAI16D,EAAE3wB,IAAIwpC,EAAEzgC,SAAgB,KAAXA,EAAE4nB,EAAE1I,IAAIuhB,MAAgBzgC,EAAE,IAAIsiF,IAAI16D,EAAE3wB,IAAIwpC,EAAEzgC,KAASA,EAAE83B,IAAI0I,GAAG,CAACxgC,EAAE4D,IAAI48B,GAAG,IAAIlV,EAAE6ya,GAAG1mX,KAAK,KAAKtvC,EAAE1H,EAAED,GAAGC,EAAE1L,KAAKzJ,EAAEA,GAAGhmC,EAAEulE,OAAO,KAAKvlE,EAAEitc,MAAM/kc,EAAE,MAAMyE,EAAE3M,EAAEA,EAAEkzV,aAAa,OAAOlzV,GAAG0a,EAAEhV,OAAOyuF,EAAGj5C,EAAEn0C,OAAO,qBAAqB,yLAAyL,IAAI2zF,KAAIA,GAAE,GAAGhgF,EAAE+5b,GAAG/5b,EAAEwgC,GAAGl7C,EACpfivB,EAAE,EAAE,CAAC,OAAOjvB,EAAEgB,KAAK,KAAK,EAAE6hD,EAAEnoC,EAAE1a,EAAEulE,OAAO,KAAKr9D,IAAIA,EAAElI,EAAEitc,OAAO/kc,EAAkB+lc,GAAGjuc,EAAb40X,GAAG50X,EAAE6iD,EAAE36C,IAAW,MAAMyE,EAAE,KAAK,EAAEk2C,EAAEnoC,EAAE,IAAI2qC,EAAErlD,EAAE+G,KAAK61F,EAAE58F,EAAEmic,UAAU,GAAG,KAAa,GAARnic,EAAEulE,SAAY,oBAAoBlgB,EAAE0uH,0BAA0B,OAAOn3E,GAAG,oBAAoBA,EAAEg4W,oBAAoB,OAAOngF,KAAKA,GAAGjiV,IAAIoqD,KAAK,CAAC58F,EAAEulE,OAAO,KAAKr9D,IAAIA,EAAElI,EAAEitc,OAAO/kc,EAAkB+lc,GAAGjuc,EAAbksX,GAAGlsX,EAAE6iD,EAAE36C,IAAW,MAAMyE,GAAG3M,EAAEA,EAAEkzV,aAAa,OAAOlzV,GAAG84c,GAAGtuc,GAAG,MAAMuoF,GAAI7qF,EAAE6qF,EAAGh4C,KAAIvwC,GAAG,OAAOA,IAAIuwC,GAAEvwC,EAAEA,EAAE0oV,QAAQ,SAAS,OAC/a,SAAS+kH,KAAK,IAAItrc,EAAEypc,GAAGn2Y,QAAsB,OAAdm2Y,GAAGn2Y,QAAQ+wY,GAAU,OAAOrkc,EAAEqkc,GAAGrkc,EAAE,SAAS0rc,GAAG1rc,EAAEzE,GAAG,IAAIsC,EAAEswC,GAAEA,IAAG,GAAG,IAAI53B,EAAE+0b,KAA2B,IAAtBp9W,KAAIluF,GAAG2xE,KAAIp2E,GAAGgwc,GAAGvrc,EAAEzE,SAAU6wc,KAAK,MAAM,MAAMx4c,GAAG63c,GAAGzrc,EAAEpM,GAAkC,GAAtBmsc,KAAK5xZ,GAAEtwC,EAAE4rc,GAAGn2Y,QAAQ/8C,EAAK,OAAO63B,GAAE,MAAMr1C,MAAMmH,EAAE,MAAiB,OAAXguF,GAAE,KAAKvc,GAAE,EAASoc,GAAE,SAASq+W,KAAK,KAAK,OAAOh+Z,IAAGi+Z,GAAGj+Z,IAAG,SAASo9Z,KAAK,KAAK,OAAOp9Z,KAAI4vZ,MAAMqO,GAAGj+Z,IAAG,SAASi+Z,GAAGrsc,GAAG,IAAIzE,EAAEyiW,GAAGh+V,EAAE81P,UAAU91P,EAAEsuD,IAAItuD,EAAEujc,cAAcvjc,EAAE4jc,aAAa,OAAOroc,EAAE4wc,GAAGnsc,GAAGouC,GAAE7yC,EAAEmuc,GAAGp2Y,QAAQ,KAC5a,SAAS64Y,GAAGnsc,GAAG,IAAIzE,EAAEyE,EAAE,EAAE,CAAC,IAAInC,EAAEtC,EAAEu6P,UAAqB,GAAX91P,EAAEzE,EAAEgrV,OAAU,KAAa,KAARhrV,EAAEq9D,OAAY,CAAc,GAAG,QAAhB/6D,EAAEypc,GAAGzpc,EAAEtC,EAAE+yD,KAAqB,YAAJlgB,GAAEvwC,GAAa,GAAG,MAAPA,EAAEtC,GAAYlH,KAAK,KAAKwJ,EAAExJ,KAAK,OAAOwJ,EAAE43b,eAAe,KAAQ,WAAHnnY,KAAgB,KAAY,EAAPzwD,EAAE0I,MAAQ,CAAC,IAAI,IAAIgQ,EAAE,EAAE3iB,EAAEiK,EAAEtJ,MAAM,OAAOX,GAAG2iB,GAAG3iB,EAAE0sc,MAAM1sc,EAAEssc,WAAWtsc,EAAEA,EAAE+hc,QAAQ93b,EAAEqic,WAAW3pb,EAAE,OAAOvW,GAAG,KAAa,KAARA,EAAE44D,SAAc,OAAO54D,EAAE4ic,cAAc5ic,EAAE4ic,YAAYrnc,EAAEqnc,aAAa,OAAOrnc,EAAEmnc,aAAa,OAAO1ic,EAAE0ic,aAAa1ic,EAAE0ic,WAAWC,WAAWpnc,EAAEqnc,aAAa5ic,EAAE0ic,WAAWnnc,EAAEmnc,YAAY,EAAEnnc,EAAEq9D,QAAQ,OAC/e54D,EAAE0ic,WAAW1ic,EAAE0ic,WAAWC,WAAWpnc,EAAEyE,EAAE4ic,YAAYrnc,EAAEyE,EAAE0ic,WAAWnnc,QAAQ,CAAS,GAAG,QAAXsC,EAAEgqc,GAAGtsc,IAAkC,OAAlBsC,EAAE+6D,OAAO,UAAKxqB,GAAEvwC,GAAS,OAAOmC,IAAIA,EAAE4ic,YAAY5ic,EAAE0ic,WAAW,KAAK1ic,EAAE44D,OAAO,MAAkB,GAAG,QAAfr9D,EAAEA,EAAEo6b,SAAyB,YAAJvnZ,GAAE7yC,GAAS6yC,GAAE7yC,EAAEyE,QAAQ,OAAOzE,GAAG,IAAIwyF,KAAIA,GAAE,GAAG,SAAS89W,GAAG7rc,GAAG,IAAIzE,EAAE8jc,KAA8B,OAAzBvtX,GAAG,GAAGw6X,GAAG9mX,KAAK,KAAKxlF,EAAEzE,IAAW,KACtT,SAAS+wc,GAAGtsc,EAAEzE,GAAG,GAAG8vc,WAAW,OAAOnB,IAAI,GAAG,KAAO,GAAF/7Z,IAAM,MAAMp1C,MAAMmH,EAAE,MAAM,IAAIrC,EAAEmC,EAAE2rc,aAAa,GAAG,OAAO9tc,EAAE,OAAO,KAA2C,GAAtCmC,EAAE2rc,aAAa,KAAK3rc,EAAE4rc,cAAc,EAAK/tc,IAAImC,EAAEszD,QAAQ,MAAMv6D,MAAMmH,EAAE,MAAMF,EAAEirc,aAAa,KAAK,IAAI10b,EAAE1Y,EAAEyic,MAAMzic,EAAEqic,WAAWtsc,EAAE2iB,EAAE2/B,EAAEl2C,EAAE62b,cAAcjjc,EAAEoM,EAAE62b,aAAajjc,EAAEoM,EAAE+2b,eAAe,EAAE/2b,EAAEg3b,YAAY,EAAEh3b,EAAE82b,cAAcljc,EAAEoM,EAAEilc,kBAAkBrxc,EAAEoM,EAAEi3b,gBAAgBrjc,EAAEA,EAAEoM,EAAEk3b,cAAc,IAAI,IAAI50a,EAAEtiB,EAAEm3b,WAAW5oZ,EAAEvuC,EAAEkrc,gBAAgB,EAAEh1Z,GAAG,CAAC,IAAInoC,EAAE,GAAGukF,GAAGp8C,GAAG1H,EAAE,GAAGzgC,EAAEna,EAAEma,GAAG,EAAEuU,EAAEvU,IAAI,EAAEwgC,EAAExgC,IAAI,EAAEmoC,IAAI1H,EACnV,GADqV,OACjf87Z,IAAI,KAAO,GAAF/zb,IAAO+zb,GAAGzka,IAAI7lC,IAAIsqc,GAAGl9Z,OAAOptC,GAAGA,IAAIkuF,KAAI9/C,GAAE8/C,GAAE,KAAKvc,GAAE,GAAG,EAAE9zE,EAAE+6D,MAAM,OAAO/6D,EAAE6kc,YAAY7kc,EAAE6kc,WAAWC,WAAW9kc,EAAE0Y,EAAE1Y,EAAE+kc,aAAarsb,EAAE1Y,EAAE0Y,EAAE1Y,EAAE+kc,YAAe,OAAOrsb,EAAE,CAAwC,GAAvC3iB,EAAEu6C,GAAEA,IAAG,GAAGu7Z,GAAGp2Y,QAAQ,KAAKsoY,GAAGvE,GAAatmF,GAAVzuV,EAAEuuV,MAAc,CAAC,GAAG,mBAAmBvuV,EAAEisB,EAAE,CAACzzC,MAAMwnB,EAAEy4a,eAAehgc,IAAIunB,EAAE04a,mBAAmBh7b,EAAE,GAAGuuC,GAAGA,EAAEjsB,EAAEwkF,gBAAgBv4D,EAAE69Y,aAAatgb,QAAQ0iC,EAAED,EAAE2sZ,cAAc3sZ,EAAE2sZ,iBAAiB,IAAI1sZ,EAAE+9Z,WAAW,CAACh+Z,EAAEC,EAAEysZ,WAAW/kZ,EAAE1H,EAAE2sZ,aAAaptb,EAAEygC,EAAEoqJ,UAAUpqJ,EAAEA,EAAE4sZ,YAAY,IAAI7sZ,EAAE81S,SAASt2U,EAAEs2U,SAAS,MAAMj+P,GAAI73C,EAAE,KACnf,MAAMvuC,EAAE,IAAI9M,EAAE,EAAEkgD,GAAG,EAAE//C,GAAG,EAAEwzB,EAAE,EAAE5mB,EAAE,EAAEwzB,EAAEnR,EAAE6T,EAAE,KAAK56B,EAAE,OAAO,CAAC,IAAI,IAAI8N,EAAKoqB,IAAI8a,GAAG,IAAI2H,GAAG,IAAIziB,EAAE4wT,WAAWjxS,EAAElgD,EAAEgjD,GAAGziB,IAAI1lB,GAAG,IAAIygC,GAAG,IAAI/a,EAAE4wT,WAAWhxV,EAAEH,EAAEs7C,GAAG,IAAI/a,EAAE4wT,WAAWnxV,GAAGugC,EAAEq/Z,UAAU1/b,QAAW,QAAQiW,EAAEoqB,EAAEi/Z,aAAkBv8Z,EAAE1C,EAAEA,EAAEpqB,EAAE,OAAO,CAAC,GAAGoqB,IAAInR,EAAE,MAAM/mB,EAA8C,GAA5C46B,IAAIoY,KAAK1nB,IAAIqvB,IAAI9C,EAAElgD,GAAGijC,IAAIpoB,KAAK9N,IAAIuuC,IAAIn7C,EAAEH,GAAM,QAAQmW,EAAEoqB,EAAEkna,aAAa,MAAUxka,GAAJ1C,EAAE0C,GAAMwhK,WAAWlkK,EAAEpqB,EAAEklC,GAAG,IAAI6E,IAAI,IAAI//C,EAAE,KAAK,CAACyH,MAAMs4C,EAAEr4C,IAAI1H,QAAQk7C,EAAE,KAAKA,EAAEA,GAAG,CAACzzC,MAAM,EAAEC,IAAI,QAAQwzC,EAAE,KAAKstZ,GAAG,CAAC2Q,YAAYlqb,EAAEmqb,eAAel+Z,GAAG8oZ,IAAG,EAAGuT,GAAG,KAAKC,IAAG,EAAGx3Z,GAAE98B,EAAE,OAAOm2b,KAAK,MAAMtmX,GAAI,GAAG,OACvgB/yC,GAAE,MAAMt6C,MAAMmH,EAAE,MAAM0/W,GAAGvsU,GAAE+yC,GAAI/yC,GAAEA,GAAEsvZ,kBAAiB,OAAOtvZ,IAAGu3Z,GAAG,KAAKv3Z,GAAE98B,EAAE,OAAO,IAAI+L,EAAEtiB,EAAE,OAAOqzC,IAAG,CAAC,IAAItgD,EAAEsgD,GAAEulB,MAA+B,GAAvB,GAAF7lE,GAAMg4F,GAAG13C,GAAEmiZ,UAAU,IAAS,IAAFzic,EAAM,CAAC,IAAI4iC,EAAE0d,GAAEyiN,UAAU,GAAG,OAAOngO,EAAE,CAAC,IAAI0D,EAAE1D,EAAE8iF,IAAI,OAAOp/E,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAEi6B,QAAQ,OAAO,OAAS,KAAFvgE,GAAQ,KAAK,EAAE+1c,GAAGz1Z,IAAGA,GAAEulB,QAAQ,EAAE,MAAM,KAAK,EAAEkwY,GAAGz1Z,IAAGA,GAAEulB,QAAQ,EAAEuwY,GAAG91Z,GAAEyiN,UAAUziN,IAAG,MAAM,KAAK,KAAKA,GAAEulB,QAAQ,KAAK,MAAM,KAAK,KAAKvlB,GAAEulB,QAAQ,KAAKuwY,GAAG91Z,GAAEyiN,UAAUziN,IAAG,MAAM,KAAK,EAAE81Z,GAAG91Z,GAAEyiN,UAAUziN,IAAG,MAAM,KAAK,EAAMs1Z,GAAGrmb,EAAPisB,EAAE8E,IAAU,IAAI45C,EAAE1+C,EAAEunN,UAAU8yM,GAAGr6Z,GAAG,OACnf0+C,GAAG27W,GAAG37W,GAAG55C,GAAEA,GAAEsvZ,YAAY,MAAMv8W,GAAI,GAAG,OAAO/yC,GAAE,MAAMt6C,MAAMmH,EAAE,MAAM0/W,GAAGvsU,GAAE+yC,GAAI/yC,GAAEA,GAAEsvZ,kBAAiB,OAAOtvZ,IAAkD,GAA/Cha,EAAEwia,GAAGlma,EAAEk7U,KAAK99W,EAAEsmC,EAAEmza,YAAYlqb,EAAE+W,EAAEoza,eAAkB92a,IAAI5iC,GAAGA,GAAGA,EAAE+zG,eAAekqQ,GAAGj+W,EAAE+zG,cAAcC,gBAAgBh0G,GAAG,CAAC,OAAOuvB,GAAGyuV,GAAGh+W,KAAK4iC,EAAErT,EAAExnB,WAAc,KAARu+B,EAAE/W,EAAEvnB,OAAiBs+B,EAAE1D,GAAG,mBAAmB5iC,GAAGA,EAAEgoc,eAAepla,EAAE5iC,EAAEioc,aAAa98b,KAAKC,IAAIk7B,EAAEtmC,EAAE8C,MAAMzC,UAAUimC,GAAG1D,EAAE5iC,EAAE+zG,eAAe9xC,WAAWr/B,EAAEy2Z,aAAatgb,QAASovb,eAAe7ha,EAAEA,EAAE6ha,eAAe3sZ,EAAEx7C,EAAE0zG,YAAYrzG,OAAO65F,EAAE/uF,KAAKC,IAAImkB,EAAExnB,MAAMyzC,GAAGjsB,OAAE,IACpfA,EAAEvnB,IAAIkyF,EAAE/uF,KAAKC,IAAImkB,EAAEvnB,IAAIwzC,IAAIlV,EAAE49B,QAAQg2B,EAAE3qE,IAAIisB,EAAEjsB,EAAEA,EAAE2qE,EAAEA,EAAE1+C,GAAGA,EAAEmsZ,GAAG3nc,EAAEk6F,GAAG/2C,EAAEwkZ,GAAG3nc,EAAEuvB,GAAGisB,GAAG2H,IAAI,IAAI7c,EAAEkza,YAAYlza,EAAE4ha,aAAa1sZ,EAAEp6C,MAAMklC,EAAE8ha,eAAe5sZ,EAAE7xC,QAAQ28B,EAAEu/J,YAAY1iJ,EAAE/hD,MAAMklC,EAAE+ha,cAAcllZ,EAAEx5C,WAAUi5B,EAAEA,EAAE+rH,eAAgBirT,SAASp+Z,EAAEp6C,KAAKo6C,EAAE7xC,QAAQ28B,EAAEuza,kBAAkB3/W,EAAE3qE,GAAG+W,EAAEwza,SAASl3a,GAAG0D,EAAE49B,OAAO/gB,EAAE/hD,KAAK+hD,EAAEx5C,UAAUi5B,EAAEm3a,OAAO52Z,EAAE/hD,KAAK+hD,EAAEx5C,QAAQ28B,EAAEwza,SAASl3a,OAAQA,EAAE,GAAG,IAAI0D,EAAEtmC,EAAEsmC,EAAEA,EAAEs+J,YAAY,IAAIt+J,EAAEgrT,UAAU1uT,EAAEr4B,KAAK,CAACihC,QAAQlF,EAAE7c,KAAK6c,EAAEy+J,WAAWryF,IAAIpsE,EAAE0+J,YAAmD,IAAvC,oBAAoBhlM,EAAE8lM,OAAO9lM,EAAE8lM,QAAY9lM,EACrf,EAAEA,EAAE4iC,EAAEviC,OAAOL,KAAIsmC,EAAE1D,EAAE5iC,IAAKwrC,QAAQu5J,WAAWz+J,EAAE7c,KAAK6c,EAAEkF,QAAQw5J,UAAU1+J,EAAEosE,IAAI4xV,KAAKuE,GAAGC,GAAGD,GAAG,KAAK57b,EAAEszD,QAAQz1D,EAAEw1C,GAAE98B,EAAE,OAAO,IAAIxjB,EAAEiN,EAAE,OAAOqzC,IAAG,CAAC,IAAIqF,EAAErF,GAAEulB,MAAgC,GAAxB,GAAFlgB,GAAM4vZ,GAAGv1c,EAAEsgD,GAAEyiN,UAAUziN,IAAQ,IAAFqF,EAAM,CAAC/iB,OAAE,EAAO,IAAIs6D,EAAE58C,GAAEolE,IAAI,GAAG,OAAOxoB,EAAE,CAAC,IAAIr0C,EAAEvI,GAAEmiZ,UAAiBniZ,GAAEh/C,IAA8BshC,EAAEimB,EAAE,oBAAoBq0C,EAAEA,EAAEt6D,GAAGs6D,EAAE38B,QAAQ39B,GAAG0d,GAAEA,GAAEsvZ,YAAY,MAAMv8W,GAAI,GAAG,OAAO/yC,GAAE,MAAMt6C,MAAMmH,EAAE,MAAM0/W,GAAGvsU,GAAE+yC,GAAI/yC,GAAEA,GAAEsvZ,kBAAiB,OAAOtvZ,IAAGA,GAAE,KAAK2rZ,KAAK7wZ,GAAEv6C,OAAOoM,EAAEszD,QAAQz1D,EAAE,GAAGosc,GAAGA,IAAG,EAAGC,GAAGlqc,EAAEmqc,GAAG5uc,OAAO,IAAI83C,GAAE98B,EAAE,OAAO88B,IAAG93C,EACpf83C,GAAEsvZ,WAAWtvZ,GAAEsvZ,WAAW,KAAa,EAARtvZ,GAAEulB,SAAUlgB,EAAErF,IAAIsiZ,QAAQ,KAAKj9Y,EAAE88Y,UAAU,MAAMniZ,GAAE93C,EAAqF,GAAlE,KAAjBgb,EAAEvW,EAAE62b,gBAAqB/uE,GAAG,MAAM,IAAIvxW,EAAEvW,IAAIwqc,GAAGD,MAAMA,GAAG,EAAEC,GAAGxqc,GAAGuqc,GAAG,EAAE1sc,EAAEA,EAAE23b,UAAamI,IAAI,oBAAoBA,GAAGoP,kBAAkB,IAAIpP,GAAGoP,kBAAkBrP,GAAG7/b,OAAE,EAAO,MAAsB,GAAhBA,EAAEy1D,QAAQsF,QAAW,MAAMwtB,IAAe,GAAV4kX,GAAGhrc,EAAE2qF,MAAQq9W,GAAG,MAAMA,IAAG,EAAGhoc,EAAEgoX,GAAGA,GAAG,KAAKhoX,EAAE,OAAG,KAAO,EAAFmuC,KAAiBqxZ,KAAL,KACjW,SAASkN,KAAK,KAAK,OAAOr5Z,IAAG,CAAC,IAAIrzC,EAAEqzC,GAAEyiN,UAAU+0M,IAAI,OAAOD,KAAK,KAAa,EAARv3Z,GAAEulB,OAASk1B,GAAGz6C,GAAEu3Z,MAAMC,IAAG,GAAI,KAAKx3Z,GAAEh/C,KAAKk1c,GAAGvpc,EAAEqzC,KAAIy6C,GAAGz6C,GAAEu3Z,MAAMC,IAAG,IAAK,IAAItvc,EAAE83C,GAAEulB,MAAM,KAAO,IAAFr9D,IAAQ6sc,GAAGpoc,EAAEqzC,IAAG,KAAO,IAAF93C,IAAQ0uc,KAAKA,IAAG,EAAG1K,GAAG,IAAG,WAAgB,OAAL8L,KAAY,SAAQh4Z,GAAEA,GAAEsvZ,YAAY,SAAS0I,KAAK,GAAG,KAAKlB,GAAG,CAAC,IAAInqc,EAAE,GAAGmqc,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAUr4X,GAAG9xE,EAAEk9S,IAAI,OAAM,EAAG,SAASsiE,GAAGx/W,EAAEzE,GAAG6uc,GAAG9sc,KAAK/B,EAAEyE,GAAGiqc,KAAKA,IAAG,EAAG1K,GAAG,IAAG,WAAgB,OAAL8L,KAAY,SAAQ,SAAS9C,GAAGvoc,EAAEzE,GAAG8uc,GAAG/sc,KAAK/B,EAAEyE,GAAGiqc,KAAKA,IAAG,EAAG1K,GAAG,IAAG,WAAgB,OAAL8L,KAAY,SACzd,SAASnuJ,KAAK,GAAG,OAAOgtJ,GAAG,OAAM,EAAG,IAAIlqc,EAAEkqc,GAAW,GAARA,GAAG,KAAQ,KAAO,GAAF/7Z,IAAM,MAAMp1C,MAAMmH,EAAE,MAAM,IAAI3E,EAAE4yC,GAAEA,IAAG,GAAG,IAAItwC,EAAEwsc,GAAGA,GAAG,GAAG,IAAI,IAAI9zb,EAAE,EAAEA,EAAE1Y,EAAEzK,OAAOmjB,GAAG,EAAE,CAAC,IAAI3iB,EAAEiK,EAAE0Y,GAAG2/B,EAAEr4C,EAAE0Y,EAAE,GAAG+L,EAAE1uB,EAAE8hO,QAAyB,GAAjB9hO,EAAE8hO,aAAQ,EAAU,oBAAoBpzM,EAAE,IAAIA,IAAI,MAAMvU,GAAG,GAAG,OAAOmoC,EAAE,MAAMn9C,MAAMmH,EAAE,MAAM0/W,GAAG1pU,EAAEnoC,IAAe,IAAXlQ,EAAEusc,GAAGA,GAAG,GAAO7zb,EAAE,EAAEA,EAAE1Y,EAAEzK,OAAOmjB,GAAG,EAAE,CAAC3iB,EAAEiK,EAAE0Y,GAAG2/B,EAAEr4C,EAAE0Y,EAAE,GAAG,IAAI,IAAIg4B,EAAE36C,EAAE01B,OAAO11B,EAAE8hO,QAAQnnL,IAAI,MAAMxgC,GAAG,GAAG,OAAOmoC,EAAE,MAAMn9C,MAAMmH,EAAE,MAAM0/W,GAAG1pU,EAAEnoC,IAAI,IAAIwgC,EAAEvuC,EAAEszD,QAAQsvY,YAAY,OAAOr0Z,GAAGvuC,EAAEuuC,EAAEo0Z,WAAWp0Z,EAAEo0Z,WAAW,KAAa,EAARp0Z,EAAEqqB,QAAUrqB,EAAEonZ,QACjf,KAAKpnZ,EAAEinZ,UAAU,MAAMjnZ,EAAEvuC,EAAW,OAATmuC,GAAE5yC,EAAEikc,MAAW,EAAG,SAASwN,GAAGhtc,EAAEzE,EAAEsC,GAAyBwjc,GAAGrhc,EAAfzE,EAAE0sX,GAAGjoX,EAAfzE,EAAEusc,GAAGjqc,EAAEtC,GAAY,IAAWA,EAAEumc,KAAe,QAAV9hc,EAAE8qc,GAAG9qc,EAAE,MAAckyF,GAAGlyF,EAAE,EAAEzE,GAAGyvc,GAAGhrc,EAAEzE,IACzI,SAASqkX,GAAG5/W,EAAEzE,GAAG,GAAG,IAAIyE,EAAE3L,IAAI24c,GAAGhtc,EAAEA,EAAEzE,QAAQ,IAAI,IAAIsC,EAAEmC,EAAEumV,OAAO,OAAO1oV,GAAG,CAAC,GAAG,IAAIA,EAAExJ,IAAI,CAAC24c,GAAGnvc,EAAEmC,EAAEzE,GAAG,MAAW,GAAG,IAAIsC,EAAExJ,IAAI,CAAC,IAAIkiB,EAAE1Y,EAAE23b,UAAU,GAAG,oBAAoB33b,EAAEzD,KAAKgtK,0BAA0B,oBAAoB7wJ,EAAE0xb,oBAAoB,OAAOngF,KAAKA,GAAGjiV,IAAItvB,IAAI,CAAW,IAAI3iB,EAAE2rX,GAAG1hX,EAAnBmC,EAAE8nc,GAAGvsc,EAAEyE,GAAgB,GAA4B,GAAzBqhc,GAAGxjc,EAAEjK,GAAGA,EAAEkuc,KAAkB,QAAbjkc,EAAEitc,GAAGjtc,EAAE,IAAeq0F,GAAGr0F,EAAE,EAAEjK,GAAGo3c,GAAGntc,EAAEjK,QAAQ,GAAG,oBAAoB2iB,EAAE0xb,oBAAoB,OAAOngF,KAAKA,GAAGjiV,IAAItvB,IAAI,IAAIA,EAAE0xb,kBAAkB1sc,EAAEyE,GAAG,MAAMk2C,IAAI,OAAOr4C,EAAEA,EAAE0oV,QACpd,SAAS2lH,GAAGlsc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEvW,EAAEisc,UAAU,OAAO11b,GAAGA,EAAE62B,OAAO7xC,GAAGA,EAAEumc,KAAK9hc,EAAEg3b,aAAah3b,EAAE+2b,eAAel5b,EAAEqwF,KAAIluF,IAAI2xE,GAAE9zE,KAAKA,IAAI,IAAIkwF,IAAG,IAAIA,KAAM,SAAFpc,MAAcA,IAAG,IAAIgZ,KAAIy+W,GAAGmC,GAAGvrc,EAAE,GAAG8pc,IAAIjsc,GAAGmtc,GAAGhrc,EAAEzE,GAAG,SAAS+tc,GAAGtpc,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAEw1b,UAAU,OAAO33b,GAAGA,EAAEuvC,OAAO7xC,GAAO,KAAJA,EAAE,KAAmB,KAAO,GAAhBA,EAAEyE,EAAEuG,OAAehL,EAAE,EAAE,KAAO,EAAFA,GAAKA,EAAE,KAAK8jc,KAAK,EAAE,GAAG,IAAIqL,KAAKA,GAAGb,IAAuB,KAAnBtuc,EAAEk3F,GAAG,UAAUi4W,OAAYnvc,EAAE,WAAWsC,EAAEikc,KAAe,QAAV9hc,EAAE8qc,GAAG9qc,EAAEzE,MAAc22F,GAAGlyF,EAAEzE,EAAEsC,GAAGmtc,GAAGhrc,EAAEnC,IAUjZ,SAASgwL,GAAG7tL,EAAEzE,EAAEsC,EAAE0Y,GAAG7iB,KAAKW,IAAI2L,EAAEtM,KAAKY,IAAIuJ,EAAEnK,KAAKiic,QAAQjic,KAAKa,MAAMb,KAAK6yV,OAAO7yV,KAAK8hc,UAAU9hc,KAAK0G,KAAK1G,KAAKqvc,YAAY,KAAKrvc,KAAKoD,MAAM,EAAEpD,KAAK+kH,IAAI,KAAK/kH,KAAKkwc,aAAaroc,EAAE7H,KAAK0sc,aAAa1sc,KAAK+hc,cAAc/hc,KAAKktc,YAAYltc,KAAK6vc,cAAc,KAAK7vc,KAAK6S,KAAKgQ,EAAE7iB,KAAKklE,MAAM,EAAEllE,KAAKgvc,WAAWhvc,KAAKkvc,YAAYlvc,KAAKivc,WAAW,KAAKjvc,KAAKwsc,WAAWxsc,KAAK4sc,MAAM,EAAE5sc,KAAKoiQ,UAAU,KAAK,SAAS0/H,GAAGx1X,EAAEzE,EAAEsC,EAAE0Y,GAAG,OAAO,IAAIs3K,GAAG7tL,EAAEzE,EAAEsC,EAAE0Y,GAAG,SAASiwb,GAAGxmc,GAAiB,UAAdA,EAAEA,EAAE1M,aAAuB0M,EAAEupU,kBAErd,SAASs5H,GAAG7ic,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAE81P,UACuB,OADb,OAAOj4P,IAAGA,EAAE23X,GAAGx1X,EAAE3L,IAAIkH,EAAEyE,EAAE1L,IAAI0L,EAAEuG,OAAQw8b,YAAY/ic,EAAE+ic,YAAYllc,EAAEzD,KAAK4F,EAAE5F,KAAKyD,EAAE23b,UAAUx1b,EAAEw1b,UAAU33b,EAAEi4P,UAAU91P,EAAEA,EAAE81P,UAAUj4P,IAAIA,EAAE+lc,aAAaroc,EAAEsC,EAAEzD,KAAK4F,EAAE5F,KAAKyD,EAAE+6D,MAAM,EAAE/6D,EAAE8kc,WAAW,KAAK9kc,EAAE+kc,YAAY,KAAK/kc,EAAE6kc,WAAW,MAAM7kc,EAAEqic,WAAWlgc,EAAEkgc,WAAWric,EAAEyic,MAAMtgc,EAAEsgc,MAAMzic,EAAEtJ,MAAMyL,EAAEzL,MAAMsJ,EAAE0lc,cAAcvjc,EAAEujc,cAAc1lc,EAAE43b,cAAcz1b,EAAEy1b,cAAc53b,EAAE+ic,YAAY5gc,EAAE4gc,YAAYrlc,EAAEyE,EAAEogc,aAAavic,EAAEuic,aAAa,OAAO7kc,EAAE,KAAK,CAAC+kc,MAAM/kc,EAAE+kc,MAAMD,aAAa9kc,EAAE8kc,cAC3exic,EAAE83b,QAAQ31b,EAAE21b,QAAQ93b,EAAE/G,MAAMkJ,EAAElJ,MAAM+G,EAAE46G,IAAIz4G,EAAEy4G,IAAW56G,EACvD,SAASmlc,GAAGhjc,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,EAAEsiD,GAAG,IAAI5zB,EAAE,EAAM,GAAJ/L,EAAEvW,EAAK,oBAAoBA,EAAEwmc,GAAGxmc,KAAKsiB,EAAE,QAAQ,GAAG,kBAAkBtiB,EAAEsiB,EAAE,OAAOtiB,EAAE,OAAOA,GAAG,KAAKuM,EAAG,OAAO42b,GAAGtlc,EAAEtI,SAAS3B,EAAEsiD,EAAE36C,GAAG,KAAKqrF,EAAGtkE,EAAE,EAAE1uB,GAAG,GAAG,MAAM,KAAKyyF,EAAG/jE,EAAE,EAAE1uB,GAAG,EAAE,MAAM,KAAK0yF,EAAG,OAAOtmF,EAAEw1X,GAAG,GAAG33X,EAAEtC,EAAI,EAAF3H,IAAOmvc,YAAYz8W,EAAGtmF,EAAE5F,KAAKksF,EAAGtmF,EAAEsgc,MAAMpqZ,EAAEl2C,EAAE,KAAKgvF,EAAG,OAAOhvF,EAAEw1X,GAAG,GAAG33X,EAAEtC,EAAE3H,IAAKwG,KAAK40F,EAAGhvF,EAAE+ic,YAAY/zW,EAAGhvF,EAAEsgc,MAAMpqZ,EAAEl2C,EAAE,KAAK0mF,EAAG,OAAO1mF,EAAEw1X,GAAG,GAAG33X,EAAEtC,EAAE3H,IAAKmvc,YAAYr8W,EAAG1mF,EAAEsgc,MAAMpqZ,EAAEl2C,EAAE,KAAK6mF,EAAG,OAAOqhS,GAAGrqX,EAAEjK,EAAEsiD,EAAE36C,GAAG,KAAKurF,EAAG,OAAO9mF,EAAEw1X,GAAG,GAAG33X,EAAEtC,EAAE3H,IAAKmvc,YAAYj8W,EAAG9mF,EAAEsgc,MAAMpqZ,EAAEl2C,EAAE,QAAQ,GAAG,kBAChfA,GAAG,OAAOA,EAAE,OAAOA,EAAE4vY,UAAU,KAAKrpT,EAAGjkE,EAAE,GAAG,MAAMtiB,EAAE,KAAKwmF,EAAGlkE,EAAE,EAAE,MAAMtiB,EAAE,KAAKymF,EAAGnkE,EAAE,GAAG,MAAMtiB,EAAE,KAAKkwF,EAAG5tE,EAAE,GAAG,MAAMtiB,EAAE,KAAKmwF,EAAG7tE,EAAE,GAAG/L,EAAE,KAAK,MAAMvW,EAAE,KAAKynF,EAAGnlE,EAAE,GAAG,MAAMtiB,EAAE,MAAMjH,MAAMmH,EAAE,IAAI,MAAMF,EAAEA,SAASA,EAAE,KAAuD,OAAjDzE,EAAEi6X,GAAGlzW,EAAEzkB,EAAEtC,EAAE3H,IAAKmvc,YAAY/ic,EAAEzE,EAAEnB,KAAKmc,EAAEhb,EAAE+kc,MAAMpqZ,EAAS36C,EAAE,SAAS4nc,GAAGnjc,EAAEzE,EAAEsC,EAAE0Y,GAA2B,OAAxBvW,EAAEw1X,GAAG,EAAEx1X,EAAEuW,EAAEhb,IAAK+kc,MAAMzic,EAASmC,EAAE,SAASkoX,GAAGloX,EAAEzE,EAAEsC,EAAE0Y,GAA6C,OAA1CvW,EAAEw1X,GAAG,GAAGx1X,EAAEuW,EAAEhb,IAAKwnc,YAAYl8W,EAAG7mF,EAAEsgc,MAAMzic,EAASmC,EAAE,SAAS8ic,GAAG9ic,EAAEzE,EAAEsC,GAA8B,OAA3BmC,EAAEw1X,GAAG,EAAEx1X,EAAE,KAAKzE,IAAK+kc,MAAMzic,EAASmC,EAClc,SAASkjc,GAAGljc,EAAEzE,EAAEsC,GAA8J,OAA3JtC,EAAEi6X,GAAG,EAAE,OAAOx1X,EAAEzK,SAASyK,EAAEzK,SAAS,GAAGyK,EAAE1L,IAAIiH,IAAK+kc,MAAMzic,EAAEtC,EAAEi6b,UAAU,CAACY,cAAcp2b,EAAEo2b,cAAc6W,gBAAgB,KAAKhK,eAAejjc,EAAEijc,gBAAuB1nc,EACrL,SAAS2xc,GAAGltc,EAAEzE,EAAEsC,GAAGnK,KAAKW,IAAIkH,EAAE7H,KAAK0ic,cAAcp2b,EAAEtM,KAAKi4c,aAAaj4c,KAAKu4c,UAAUv4c,KAAK4/D,QAAQ5/D,KAAKu5c,gBAAgB,KAAKv5c,KAAKo4c,eAAe,EAAEp4c,KAAKizc,eAAejzc,KAAKi0B,QAAQ,KAAKj0B,KAAKyic,QAAQt4b,EAAEnK,KAAKu3c,aAAa,KAAKv3c,KAAKy3c,iBAAiB,EAAEz3c,KAAKyjc,WAAWnlW,GAAG,GAAGt+F,KAAKw3c,gBAAgBl5W,IAAI,GAAGt+F,KAAKujc,eAAevjc,KAAKk4c,cAAcl4c,KAAKuxc,iBAAiBvxc,KAAKojc,aAAapjc,KAAKsjc,YAAYtjc,KAAKqjc,eAAerjc,KAAKmjc,aAAa,EAAEnjc,KAAKwjc,cAAcllW,GAAG,GAAGt+F,KAAKy5c,gCAAgC,KAC7e,SAASC,GAAGptc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAE,EAAEpjB,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACy8Y,SAASzpT,EAAG7xF,IAAI,MAAMiiB,EAAE,KAAK,GAAGA,EAAEhhB,SAASyK,EAAEo2b,cAAc76b,EAAE0nc,eAAeplc,GACxK,SAASwvc,GAAGrtc,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAI3iB,EAAE2H,EAAE+3D,QAAQpd,EAAE4rZ,KAAKx/a,EAAEy/a,GAAGnuc,GAAGoM,EAAE,GAAGnC,EAAE,CAAqBtC,EAAE,CAAC,GAAGiyF,GAA1B3vF,EAAEA,EAAEgkc,mBAA8Bhkc,GAAG,IAAIA,EAAExJ,IAAI,MAAM0E,MAAMmH,EAAE,MAAM,IAAIquC,EAAE1wC,EAAE,EAAE,CAAC,OAAO0wC,EAAEl6C,KAAK,KAAK,EAAEk6C,EAAEA,EAAEinZ,UAAU7ta,QAAQ,MAAMpsB,EAAE,KAAK,EAAE,GAAG4hc,GAAG5uZ,EAAEn0C,MAAM,CAACm0C,EAAEA,EAAEinZ,UAAUgI,0CAA0C,MAAMjic,GAAGgzC,EAAEA,EAAEg4S,aAAa,OAAOh4S,GAAG,MAAMx1C,MAAMmH,EAAE,MAAO,GAAG,IAAIrC,EAAExJ,IAAI,CAAC,IAAI0Z,EAAElQ,EAAEzD,KAAK,GAAG+ic,GAAGpvb,GAAG,CAAClQ,EAAEy/b,GAAGz/b,EAAEkQ,EAAEwgC,GAAG,MAAMvuC,GAAGnC,EAAE0wC,OAAO1wC,EAAEi/b,GACrW,OADwW,OAAOvhc,EAAEosB,QAAQpsB,EAAEosB,QAAQ9pB,EAAEtC,EAAEorc,eAAe9oc,GAAEtC,EAAE2lc,GAAGhrZ,EAAE5zB,IAAKtX,QAAQ,CAACuzB,QAAQv+B,GAAuB,QAApBuW,OAAE,IAASA,EAAE,KAAKA,KAC1ehb,EAAE+O,SAASiM,GAAG8qb,GAAGztc,EAAE2H,GAAGymc,GAAGpuc,EAAE0uB,EAAE4zB,GAAU5zB,EAAE,SAAS4pG,GAAGlsH,GAAe,OAAZA,EAAEA,EAAEszD,SAAc/+D,OAAyByL,EAAEzL,MAAMF,IAAoD2L,EAAEzL,MAAMihc,WAAhF,KAA2F,SAAS8X,GAAGttc,EAAEzE,GAAqB,GAAG,QAArByE,EAAEA,EAAEy1b,gBAA2B,OAAOz1b,EAAE01b,WAAW,CAAC,IAAI73b,EAAEmC,EAAE6mc,UAAU7mc,EAAE6mc,UAAU,IAAIhpc,GAAGA,EAAEtC,EAAEsC,EAAEtC,GAAG,SAASijG,GAAGx+F,EAAEzE,GAAG+xc,GAAGttc,EAAEzE,IAAIyE,EAAEA,EAAE81P,YAAYw3M,GAAGttc,EAAEzE,GACxV,SAASgyc,GAAGvtc,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAE,MAAM1Y,GAAG,MAAMA,EAAE2vc,kBAAkB3vc,EAAE2vc,iBAAiBC,gBAAgB,KAAiK,GAA5J5vc,EAAE,IAAIqvc,GAAGltc,EAAEzE,EAAE,MAAMsC,IAAG,IAAKA,EAAEs4b,SAAS56b,EAAEi6X,GAAG,EAAE,KAAK,KAAK,IAAIj6X,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAGsC,EAAEy1D,QAAQ/3D,EAAEA,EAAEi6b,UAAU33b,EAAE8ic,GAAGplc,GAAGyE,EAAE2rH,IAAI9tH,EAAEy1D,QAAQgoY,GAAG,IAAIt7b,EAAEqkV,SAASrkV,EAAE23L,WAAW33L,GAAMuW,EAAE,IAAIvW,EAAE,EAAEA,EAAEuW,EAAEnjB,OAAO4M,IAAI,CAAQ,IAAIpM,GAAX2H,EAAEgb,EAAEvW,IAAWglc,YAAYpxc,EAAEA,EAAE2H,EAAEiwZ,SAAS,MAAM3tZ,EAAEsvc,gCAAgCtvc,EAAEsvc,gCAAgC,CAAC5xc,EAAE3H,GAAGiK,EAAEsvc,gCAAgC7vc,KAAK/B,EAAE3H,GAAGF,KAAKg6c,cAAc7vc,EAC/R,SAAS8vc,GAAG3tc,GAAG,SAASA,GAAG,IAAIA,EAAEqkV,UAAU,IAAIrkV,EAAEqkV,UAAU,KAAKrkV,EAAEqkV,WAAW,IAAIrkV,EAAEqkV,UAAU,iCAAiCrkV,EAAE8yb,YAEvT,SAAS8a,GAAG5tc,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,IAAIsiD,EAAEr4C,EAAEqrc,oBAAoB,GAAGhzZ,EAAE,CAAC,IAAI5zB,EAAE4zB,EAAEw3Z,cAAc,GAAG,oBAAoB95c,EAAE,CAAC,IAAI26C,EAAE36C,EAAEA,EAAE,WAAW,IAAIoM,EAAEksH,GAAG5pG,GAAGisB,EAAE/6C,KAAKwM,IAAIqtc,GAAG9xc,EAAE+mB,EAAEtiB,EAAEpM,OAAO,CAAmD,GAAlDsiD,EAAEr4C,EAAEqrc,oBAD1K,SAAYlpc,EAAEzE,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAEyE,EAAE,IAAIA,EAAEqkV,SAASrkV,EAAE+mG,gBAAgB/mG,EAAE0yb,WAAW,OAAa,IAAIn3b,EAAE8oV,WAAW9oV,EAAE6vS,aAAa,qBAAwB7vS,EAAE,IAAI,IAAIsC,EAAEA,EAAEmC,EAAE6yb,WAAW7yb,EAAEqkM,YAAYxmM,GAAG,OAAO,IAAI0vc,GAAGvtc,EAAE,EAAEzE,EAAE,CAAC46b,SAAQ,QAAI,GAC3Bt1a,CAAGhjB,EAAE0Y,GAAG+L,EAAE4zB,EAAEw3Z,cAAiB,oBAAoB95c,EAAE,CAAC,IAAIma,EAAEna,EAAEA,EAAE,WAAW,IAAIoM,EAAEksH,GAAG5pG,GAAGvU,EAAEva,KAAKwM,IAAIgsc,IAAG,WAAWqB,GAAG9xc,EAAE+mB,EAAEtiB,EAAEpM,MAAK,OAAOs4H,GAAG5pG,GAGlG,SAASurb,GAAG7tc,EAAEzE,GAAG,IAAIsC,EAAE,EAAE1K,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIw6c,GAAGpyc,GAAG,MAAMxC,MAAMmH,EAAE,MAAM,OAAOktc,GAAGptc,EAAEzE,EAAE,KAAKsC,GA1BtWmgW,GAAG,SAASh+V,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAEhb,EAAE+kc,MAAM,GAAG,OAAOtgc,EAAE,GAAGA,EAAEujc,gBAAgBhoc,EAAEqoc,cAAch5Y,GAAE0I,QAAQitY,IAAG,MAAQ,IAAG,KAAK1ic,EAAE0Y,GAAoC,CAAO,OAANgqb,IAAG,EAAUhlc,EAAElH,KAAK,KAAK,EAAEixX,GAAG/pX,GAAGuoc,KAAK,MAAM,KAAK,EAAE1xV,GAAG72G,GAAG,MAAM,KAAK,EAAE4hc,GAAG5hc,EAAEnB,OAAOmjc,GAAGhic,GAAG,MAAM,KAAK,EAAEm2G,GAAGn2G,EAAEA,EAAEi6b,UAAUY,eAAe,MAAM,KAAK,GAAG7/a,EAAEhb,EAAEgoc,cAAc1tc,MAAM,IAAIjC,EAAE2H,EAAEnB,KAAKy0K,SAASxgI,GAAEuxZ,GAAGhsc,EAAEi9b,eAAej9b,EAAEi9b,cAAct6a,EAAE,MAAM,KAAK,GAAG,GAAG,OAAOhb,EAAEk6b,cAAe,OAAG,KAAK53b,EAAEtC,EAAEhH,MAAM2rc,YAAmB96E,GAAGplX,EAAEzE,EAAEsC,IAAGwwC,GAAEzb,GAAY,EAAVA,GAAE0gC,SAA8B,QAAnB/3D,EAAEuC,GAAGkC,EAAEzE,EAAEsC,IAC/etC,EAAEo6b,QAAQ,MAAKtnZ,GAAEzb,GAAY,EAAVA,GAAE0gC,SAAW,MAAM,KAAK,GAA0B,GAAvB/8C,EAAE,KAAK1Y,EAAEtC,EAAE2kc,YAAe,KAAa,GAARlgc,EAAE44D,OAAU,CAAC,GAAGriD,EAAE,OAAOwxW,GAAG/nX,EAAEzE,EAAEsC,GAAGtC,EAAEq9D,OAAO,GAA+F,GAA1E,QAAlBhlE,EAAE2H,EAAEk6b,iBAAyB7hc,EAAEszc,UAAU,KAAKtzc,EAAE6jK,KAAK,KAAK7jK,EAAE8uc,WAAW,MAAMr0Z,GAAEzb,GAAEA,GAAE0gC,SAAY/8C,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOhb,EAAE+kc,MAAM,EAAE55E,GAAG1mX,EAAEzE,EAAEsC,GAAG,OAAOC,GAAGkC,EAAEzE,EAAEsC,GAD3L0ic,GAAG,KAAa,MAARvgc,EAAE44D,YACyL2nY,IAAG,EAAa,OAAVhlc,EAAE+kc,MAAM,EAAS/kc,EAAElH,KAAK,KAAK,EAA+I,GAA7IkiB,EAAEhb,EAAEnB,KAAK,OAAO4F,IAAIA,EAAE81P,UAAU,KAAKv6P,EAAEu6P,UAAU,KAAKv6P,EAAEq9D,OAAO,GAAG54D,EAAEzE,EAAEqoc,aAAahwc,EAAEopc,GAAGzhc,EAAE+3C,GAAEggB,SAAS6sY,GAAG5kc,EAAEsC,GAAGjK,EAAE+iW,GAAG,KAAKp7V,EAAEgb,EAAEvW,EAAEpM,EAAEiK,GAAGtC,EAAEq9D,OAAO,EAAK,kBACrehlE,GAAG,OAAOA,GAAG,oBAAoBA,EAAEyyB,aAAQ,IAASzyB,EAAEg8Y,SAAS,CAAiD,GAAhDr0Y,EAAElH,IAAI,EAAEkH,EAAEk6b,cAAc,KAAKl6b,EAAEqlc,YAAY,KAAQzD,GAAG5mb,GAAG,CAAC,IAAI2/B,GAAE,EAAGqnZ,GAAGhic,QAAQ26C,GAAE,EAAG36C,EAAEk6b,cAAc,OAAO7hc,EAAEspC,YAAO,IAAStpC,EAAEspC,MAAMtpC,EAAEspC,MAAM,KAAKyja,GAAGplc,GAAG,IAAI+mB,EAAE/L,EAAE8wJ,yBAAyB,oBAAoB/kJ,GAAGq/a,GAAGpmc,EAAEgb,EAAE+L,EAAEtiB,GAAGpM,EAAEq8b,QAAQ2R,GAAGrmc,EAAEi6b,UAAU5hc,EAAEA,EAAEiuc,gBAAgBtmc,EAAE6mc,GAAG7mc,EAAEgb,EAAEvW,EAAEnC,GAAGtC,EAAEmrc,GAAG,KAAKnrc,EAAEgb,GAAE,EAAG2/B,EAAEr4C,QAAQtC,EAAElH,IAAI,EAAE4xX,GAAG,KAAK1qX,EAAE3H,EAAEiK,GAAGtC,EAAEA,EAAEhH,MAAM,OAAOgH,EAAE,KAAK,GAAG3H,EAAE2H,EAAEwnc,YAAY/ic,EAAE,CAChX,OADiX,OAAOA,IAAIA,EAAE81P,UAAU,KAAKv6P,EAAEu6P,UAAU,KAAKv6P,EAAEq9D,OAAO,GACnf54D,EAAEzE,EAAEqoc,aAAuBhwc,GAAVsiD,EAAEtiD,EAAE2vD,OAAU3vD,EAAEu9b,UAAU51b,EAAEnB,KAAKxG,EAAEsiD,EAAE36C,EAAElH,IAOxD,SAAY2L,GAAG,GAAG,oBAAoBA,EAAE,OAAOwmc,GAAGxmc,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAE4vY,YAAgBnpT,EAAG,OAAO,GAAG,GAAGzmF,IAAIkwF,EAAG,OAAO,GAAG,OAAO,EAPlF49W,CAAGl6c,GAAGoM,EAAE2/b,GAAG/rc,EAAEoM,GAAUk2C,GAAG,KAAK,EAAE36C,EAAEitT,GAAG,KAAKjtT,EAAE3H,EAAEoM,EAAEnC,GAAG,MAAMmC,EAAE,KAAK,EAAEzE,EAAEo4K,GAAG,KAAKp4K,EAAE3H,EAAEoM,EAAEnC,GAAG,MAAMmC,EAAE,KAAK,GAAGzE,EAAEyjX,GAAG,KAAKzjX,EAAE3H,EAAEoM,EAAEnC,GAAG,MAAMmC,EAAE,KAAK,GAAGzE,EAAE+oE,GAAG,KAAK/oE,EAAE3H,EAAE+rc,GAAG/rc,EAAEwG,KAAK4F,GAAGuW,EAAE1Y,GAAG,MAAMmC,EAAE,MAAMjH,MAAMmH,EAAE,IAAItM,EAAE,KAAM,OAAO2H,EAAE,KAAK,EAAE,OAAOgb,EAAEhb,EAAEnB,KAAKxG,EAAE2H,EAAEqoc,aAA2Cp7I,GAAGxoT,EAAEzE,EAAEgb,EAArC3iB,EAAE2H,EAAEwnc,cAAcxsb,EAAE3iB,EAAE+rc,GAAGppb,EAAE3iB,GAAciK,GAAG,KAAK,EAAE,OAAO0Y,EAAEhb,EAAEnB,KAAKxG,EAAE2H,EAAEqoc,aAA2CjwR,GAAG3zK,EAAEzE,EAAEgb,EAArC3iB,EAAE2H,EAAEwnc,cAAcxsb,EAAE3iB,EAAE+rc,GAAGppb,EAAE3iB,GAAciK,GAAG,KAAK,EAAwB,GAAtBynX,GAAG/pX,GAAGgb,EAAEhb,EAAEqlc,YAAe,OAAO5gc,GAAG,OAAOuW,EAAE,MAAMxd,MAAMmH,EAAE,MAC3Y,GAA9GqW,EAAEhb,EAAEqoc,aAA+Bhwc,EAAE,QAApBA,EAAE2H,EAAEk6b,eAAyB7hc,EAAE2qC,QAAQ,KAAK0ia,GAAGjhc,EAAEzE,GAAGgmc,GAAGhmc,EAAEgb,EAAE,KAAK1Y,IAAG0Y,EAAEhb,EAAEk6b,cAAcl3Z,WAAe3qC,EAAEkwc,KAAKvoc,EAAEuC,GAAGkC,EAAEzE,EAAEsC,OAAO,CAAuF,IAArEq4C,GAAjBtiD,EAAE2H,EAAEi6b,WAAiBW,WAAQuN,GAAGtH,GAAG7gc,EAAEi6b,UAAUY,cAAc1D,YAAY+Q,GAAGloc,EAAE26C,EAAEsgV,IAAG,GAAMtgV,EAAE,CAAqC,GAAG,OAAvCl2C,EAAEpM,EAAEu5c,iCAA2C,IAAIv5c,EAAE,EAAEA,EAAEoM,EAAE5M,OAAOQ,GAAG,GAAEsiD,EAAEl2C,EAAEpM,IAAKmwc,8BAA8B/jc,EAAEpM,EAAE,GAAGkmD,GAAGx8C,KAAK44C,GAAoB,IAAjBr4C,EAAEwlc,GAAG9nc,EAAE,KAAKgb,EAAE1Y,GAAOtC,EAAEhH,MAAMsJ,EAAEA,GAAGA,EAAE+6D,OAAe,EAAT/6D,EAAE+6D,MAAS,KAAK/6D,EAAEA,EAAE83b,aAAa1vE,GAAGjmX,EAAEzE,EAAEgb,EAAE1Y,GAAGimc,KAAKvoc,EAAEA,EAAEhH,MAAM,OAAOgH,EAAE,KAAK,EAAE,OAAO62G,GAAG72G,GAAG,OAAOyE,GACnfosD,GAAG7wD,GAAGgb,EAAEhb,EAAEnB,KAAKxG,EAAE2H,EAAEqoc,aAAa1tZ,EAAE,OAAOl2C,EAAEA,EAAEujc,cAAc,KAAKjhb,EAAE1uB,EAAE2B,SAASymc,GAAGzlb,EAAE3iB,GAAG0uB,EAAE,KAAK,OAAO4zB,GAAG8lZ,GAAGzlb,EAAE2/B,KAAK36C,EAAEq9D,OAAO,IAAI4sT,GAAGxlX,EAAEzE,GAAG0qX,GAAGjmX,EAAEzE,EAAE+mB,EAAEzkB,GAAGtC,EAAEhH,MAAM,KAAK,EAAE,OAAO,OAAOyL,GAAGosD,GAAG7wD,GAAG,KAAK,KAAK,GAAG,OAAO6pX,GAAGplX,EAAEzE,EAAEsC,GAAG,KAAK,EAAE,OAAO6zG,GAAGn2G,EAAEA,EAAEi6b,UAAUY,eAAe7/a,EAAEhb,EAAEqoc,aAAa,OAAO5jc,EAAEzE,EAAEhH,MAAM6uc,GAAG7nc,EAAE,KAAKgb,EAAE1Y,GAAGooX,GAAGjmX,EAAEzE,EAAEgb,EAAE1Y,GAAGtC,EAAEhH,MAAM,KAAK,GAAG,OAAOgiB,EAAEhb,EAAEnB,KAAKxG,EAAE2H,EAAEqoc,aAA2C5kF,GAAGh/W,EAAEzE,EAAEgb,EAArC3iB,EAAE2H,EAAEwnc,cAAcxsb,EAAE3iB,EAAE+rc,GAAGppb,EAAE3iB,GAAciK,GAAG,KAAK,EAAE,OAAOooX,GAAGjmX,EAAEzE,EAAEA,EAAEqoc,aAAa/lc,GAAGtC,EAAEhH,MAAM,KAAK,EACtc,KAAK,GAAG,OAAO0xX,GAAGjmX,EAAEzE,EAAEA,EAAEqoc,aAAaruc,SAASsI,GAAGtC,EAAEhH,MAAM,KAAK,GAAGyL,EAAE,CAACuW,EAAEhb,EAAEnB,KAAKy0K,SAASj7K,EAAE2H,EAAEqoc,aAAathb,EAAE/mB,EAAEgoc,cAAcrtZ,EAAEtiD,EAAEiC,MAAM,IAAI04C,EAAEhzC,EAAEnB,KAAKy0K,SAAiD,GAAxCxgI,GAAEuxZ,GAAGrxZ,EAAEsiZ,eAAetiZ,EAAEsiZ,cAAc36Y,EAAK,OAAO5zB,EAAE,GAAGisB,EAAEjsB,EAAEzsB,MAA0G,KAApGqgD,EAAEw7T,GAAGnjU,EAAE2H,GAAG,EAAwF,GAArF,oBAAoB3/B,EAAEq6a,sBAAsBr6a,EAAEq6a,sBAAsBriZ,EAAE2H,GAAG,cAAqB,GAAG5zB,EAAE/sB,WAAW3B,EAAE2B,WAAWq1D,GAAE0I,QAAQ,CAAC/3D,EAAEuC,GAAGkC,EAAEzE,EAAEsC,GAAG,MAAMmC,QAAQ,IAAc,QAAVuuC,EAAEhzC,EAAEhH,SAAiBg6C,EAAEg4S,OAAOhrV,GAAG,OAAOgzC,GAAG,CAAC,IAAIxgC,EAAEwgC,EAAE6xZ,aAAa,GAAG,OAAOryb,EAAE,CAACuU,EAAEisB,EAAEh6C,MAAM,IAAI,IAAIi6C,EACtfzgC,EAAEsyb,aAAa,OAAO7xZ,GAAG,CAAC,GAAGA,EAAE7mB,UAAUpR,GAAG,KAAKi4B,EAAEogW,aAAa14V,GAAG,CAAC,IAAI3H,EAAEl6C,OAAMm6C,EAAE0yZ,IAAI,EAAErjc,GAAGA,IAAKxJ,IAAI,EAAEgtc,GAAG9yZ,EAAEC,IAAID,EAAE+xZ,OAAOzic,EAAgB,QAAd2wC,EAAED,EAAEunN,aAAqBtnN,EAAE8xZ,OAAOzic,GAAGoic,GAAG1xZ,EAAEg4S,OAAO1oV,GAAGkQ,EAAEuyb,OAAOzic,EAAE,MAAM2wC,EAAEA,EAAE97B,WAAW4P,EAAE,KAAKisB,EAAEl6C,KAAIk6C,EAAEn0C,OAAOmB,EAAEnB,KAAK,KAAam0C,EAAEh6C,MAAM,GAAG,OAAO+tB,EAAEA,EAAEikU,OAAOh4S,OAAO,IAAIjsB,EAAEisB,EAAE,OAAOjsB,GAAG,CAAC,GAAGA,IAAI/mB,EAAE,CAAC+mB,EAAE,KAAK,MAAkB,GAAG,QAAfisB,EAAEjsB,EAAEqza,SAAoB,CAACpnZ,EAAEg4S,OAAOjkU,EAAEikU,OAAOjkU,EAAEisB,EAAE,MAAMjsB,EAAEA,EAAEikU,OAAOh4S,EAAEjsB,EAAE2jW,GAAGjmX,EAAEzE,EAAE3H,EAAE2B,SAASsI,GAAGtC,EAAEA,EAAEhH,MAAM,OAAOgH,EAAE,KAAK,EAAE,OAAO3H,EAAE2H,EAAEnB,KAAsBmc,GAAjB2/B,EAAE36C,EAAEqoc,cAAiBruc,SAAS4qc,GAAG5kc,EAAEsC,GACnd0Y,EAAEA,EADod3iB,EAAE4sc,GAAG5sc,EACpfsiD,EAAE63Z,wBAA8Bxyc,EAAEq9D,OAAO,EAAEqtT,GAAGjmX,EAAEzE,EAAEgb,EAAE1Y,GAAGtC,EAAEhH,MAAM,KAAK,GAAG,OAAgB2hD,EAAEypZ,GAAX/rc,EAAE2H,EAAEnB,KAAYmB,EAAEqoc,cAA6Bt/X,GAAGtkE,EAAEzE,EAAE3H,EAAtBsiD,EAAEypZ,GAAG/rc,EAAEwG,KAAK87C,GAAc3/B,EAAE1Y,GAAG,KAAK,GAAG,OAAOk9S,GAAG/6S,EAAEzE,EAAEA,EAAEnB,KAAKmB,EAAEqoc,aAAartb,EAAE1Y,GAAG,KAAK,GAAG,OAAO0Y,EAAEhb,EAAEnB,KAAKxG,EAAE2H,EAAEqoc,aAAahwc,EAAE2H,EAAEwnc,cAAcxsb,EAAE3iB,EAAE+rc,GAAGppb,EAAE3iB,GAAG,OAAOoM,IAAIA,EAAE81P,UAAU,KAAKv6P,EAAEu6P,UAAU,KAAKv6P,EAAEq9D,OAAO,GAAGr9D,EAAElH,IAAI,EAAE8oc,GAAG5mb,IAAIvW,GAAE,EAAGu9b,GAAGhic,IAAIyE,GAAE,EAAGmgc,GAAG5kc,EAAEsC,GAAGqkc,GAAG3mc,EAAEgb,EAAE3iB,GAAGwuc,GAAG7mc,EAAEgb,EAAE3iB,EAAEiK,GAAG6oc,GAAG,KAAKnrc,EAAEgb,GAAE,EAAGvW,EAAEnC,GAAG,KAAK,GAAG,OAAOkqX,GAAG/nX,EAAEzE,EAAEsC,GAAG,KAAK,GAAoB,KAAK,GAAG,OAAO6oX,GAAG1mX,EAAEzE,EAAEsC,GAAG,MAAM9E,MAAMmH,EAAE,IAAI3E,EAAElH,OAa/ek5c,GAAGj6c,UAAU+yB,OAAO,SAASrmB,GAAGqtc,GAAGrtc,EAAEtM,KAAKg6c,cAAc,KAAK,OAAOH,GAAGj6c,UAAU06c,QAAQ,WAAW,IAAIhuc,EAAEtM,KAAKg6c,cAAcnyc,EAAEyE,EAAEo2b,cAAciX,GAAG,KAAKrtc,EAAE,MAAK,WAAWzE,EAAEowH,IAAI,SAEwJ39B,GAAG,SAAShuF,GAAM,KAAKA,EAAE3L,MAAgB2tc,GAAGhic,EAAE,EAAV8hc,MAAetjW,GAAGx+F,EAAE,KAAKmuF,GAAG,SAASnuF,GAAM,KAAKA,EAAE3L,MAAgB2tc,GAAGhic,EAAE,SAAV8hc,MAAsBtjW,GAAGx+F,EAAE,YACncquF,GAAG,SAASruF,GAAG,GAAG,KAAKA,EAAE3L,IAAI,CAAC,IAAIkH,EAAEumc,KAAKjkc,EAAEkkc,GAAG/hc,GAAGgic,GAAGhic,EAAEnC,EAAEtC,GAAGijG,GAAGx+F,EAAEnC,KAAKywF,GAAG,SAAStuF,EAAEzE,GAAG,OAAOA,KAC7FiwF,GAAG,SAASxrF,EAAEzE,EAAEsC,GAAG,OAAOtC,GAAG,IAAK,QAAyB,GAAjByuF,GAAGhqF,EAAEnC,GAAGtC,EAAEsC,EAAEkR,KAAQ,UAAUlR,EAAEzD,MAAM,MAAMmB,EAAE,CAAC,IAAIsC,EAAEmC,EAAEnC,EAAE85L,YAAY95L,EAAEA,EAAE85L,WAAsF,IAA3E95L,EAAEA,EAAE+lM,iBAAiB,cAAcp4L,KAAKC,UAAU,GAAGlQ,GAAG,mBAAuBA,EAAE,EAAEA,EAAEsC,EAAEzK,OAAOmI,IAAI,CAAC,IAAIgb,EAAE1Y,EAAEtC,GAAG,GAAGgb,IAAIvW,GAAGuW,EAAE03b,OAAOjuc,EAAEiuc,KAAK,CAAC,IAAIr6c,EAAE83F,GAAGn1E,GAAG,IAAI3iB,EAAE,MAAMmF,MAAMmH,EAAE,KAAKipF,EAAG5yE,GAAGyzE,GAAGzzE,EAAE3iB,KAAK,MAAM,IAAK,WAAWy2F,GAAGrqF,EAAEnC,GAAG,MAAM,IAAK,SAAmB,OAAVtC,EAAEsC,EAAEhI,QAAes0F,GAAGnqF,IAAInC,EAAE86M,SAASp9M,GAAE,KAAMwwF,GAAGggX,GAC9Z//W,GAAG,SAAShsF,EAAEzE,EAAEsC,EAAE0Y,EAAE3iB,GAAG,IAAIsiD,EAAE/H,GAAEA,IAAG,EAAE,IAAI,OAAO2jC,GAAG,GAAG9xE,EAAEwlF,KAAK,KAAKjqF,EAAEsC,EAAE0Y,EAAE3iB,IAAnC,QAAmD,KAAJu6C,GAAE+H,KAAU8zZ,KAAKxK,QAAQvzW,GAAG,WAAW,KAAO,GAAF99C,MAhD/H,WAAc,GAAG,OAAOm8Z,GAAG,CAAC,IAAItqc,EAAEsqc,GAAGA,GAAG,KAAKtqc,EAAE+G,SAAQ,SAAS/G,GAAGA,EAAE82b,cAAc,GAAG92b,EAAE62b,aAAamU,GAAGhrc,EAAE2qF,SAAO60W,KAgDsB0O,GAAK7C,OAAOl/W,GAAG,SAASnsF,EAAEzE,GAAG,IAAIsC,EAAEswC,GAAEA,IAAG,EAAE,IAAI,OAAOnuC,EAAEzE,GAAb,QAA4B,KAAJ4yC,GAAEtwC,KAAUmsc,KAAKxK,QAA+I,IAAI2O,GAAG,CAACvlP,OAAO,CAACh9H,GAAG0jR,GAAG5jR,GAAGG,GAAGC,GAAGu/W,GAAG,CAAC/3Y,SAAQ,KAAM86Y,GAAG,CAACC,wBAAwBj/W,GAAGk/W,WAAW,EAAEpkb,QAAQ,SAASqkb,oBAAoB,aACveC,GAAG,CAACF,WAAWF,GAAGE,WAAWpkb,QAAQkkb,GAAGlkb,QAAQqkb,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBjpX,EAAGsqW,uBAAuB4e,wBAAwB,SAASnvc,GAAW,OAAO,QAAfA,EAAE0tF,GAAG1tF,IAAmB,KAAKA,EAAEw1b,WAAW6Y,wBAAwBD,GAAGC,yBAR/I,WAAc,OAAO,MAS7We,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,MAAM,GAAG,qBAAqB5oS,+BAA+B,CAAC,IAAI6oS,GAAG7oS,+BAA+B,IAAI6oS,GAAGC,YAAYD,GAAGE,cAAc,IAAIjS,GAAG+R,GAAGG,OAAOpB,IAAI7Q,GAAG8R,GAAG,MAAMzvc,MAAKtK,EAAQi7b,mDAAmDwd,GAAGz4c,EAAQm6c,aAAahC,GACnXn4c,EAAQ0yY,YAAY,SAASpoY,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEqkV,SAAS,OAAOrkV,EAAE,IAAIzE,EAAEyE,EAAE6hc,gBAAgB,QAAG,IAAStmc,EAAE,CAAC,GAAG,oBAAoByE,EAAEqmB,OAAO,MAAMttB,MAAMmH,EAAE,MAAM,MAAMnH,MAAMmH,EAAE,IAAIrN,OAAOsE,KAAK6I,KAA0C,OAA5BA,EAAE,QAAVA,EAAE0tF,GAAGnyF,IAAc,KAAKyE,EAAEw1b,WAAoB9/b,EAAQo6c,UAAU,SAAS9vc,EAAEzE,GAAG,IAAIsC,EAAEswC,GAAE,GAAG,KAAO,GAAFtwC,GAAM,OAAOmC,EAAEzE,GAAG4yC,IAAG,EAAE,IAAI,GAAGnuC,EAAE,OAAO8xE,GAAG,GAAG9xE,EAAEwlF,KAAK,KAAKjqF,IAAlC,QAA8C4yC,GAAEtwC,EAAE2hc,OAAO9pc,EAAQygc,QAAQ,SAASn2b,EAAEzE,EAAEsC,GAAG,IAAI8vc,GAAGpyc,GAAG,MAAMxC,MAAMmH,EAAE,MAAM,OAAO0tc,GAAG,KAAK5tc,EAAEzE,GAAE,EAAGsC,IACndnI,EAAQ2wB,OAAO,SAASrmB,EAAEzE,EAAEsC,GAAG,IAAI8vc,GAAGpyc,GAAG,MAAMxC,MAAMmH,EAAE,MAAM,OAAO0tc,GAAG,KAAK5tc,EAAEzE,GAAE,EAAGsC,IAAInI,EAAQq6c,uBAAuB,SAAS/vc,GAAG,IAAI2tc,GAAG3tc,GAAG,MAAMjH,MAAMmH,EAAE,KAAK,QAAOF,EAAEkpc,sBAAqB8C,IAAG,WAAW4B,GAAG,KAAK,KAAK5tc,GAAE,GAAG,WAAWA,EAAEkpc,oBAAoB,KAAKlpc,EAAE2rH,IAAI,YAAS,IAAQj2H,EAAQs6c,wBAAwBjE,GAAGr2c,EAAQu6c,sBAAsB,SAASjwc,EAAEzE,GAAG,OAAOsyc,GAAG7tc,EAAEzE,EAAE,EAAEpI,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,OAC9auC,EAAQw6c,oCAAoC,SAASlwc,EAAEzE,EAAEsC,EAAE0Y,GAAG,IAAIo3b,GAAG9vc,GAAG,MAAM9E,MAAMmH,EAAE,MAAM,GAAG,MAAMF,QAAG,IAASA,EAAE6hc,gBAAgB,MAAM9oc,MAAMmH,EAAE,KAAK,OAAO0tc,GAAG5tc,EAAEzE,EAAEsC,GAAE,EAAG0Y,IAAI7gB,EAAQw0B,QAAQ,U,6BCrS3Lz0B,EAAOC,QAAUC,EAAQ,M,6BCKd,IAAIugD,EAAE5zB,EAAEisB,EAAExgC,EAAE,GAAG,kBAAkBglF,aAAa,oBAAoBA,YAAY/mD,IAAI,CAAC,IAAIwC,EAAEukD,YAAYr9F,EAAQkhc,aAAa,WAAW,OAAOpoZ,EAAExC,WAAW,CAAC,IAAI34C,EAAE4kB,KAAK0d,EAAEtiC,EAAE24C,MAAMt2C,EAAQkhc,aAAa,WAAW,OAAOvjc,EAAE24C,MAAMrW,GAC3O,GAAG,qBAAqB7pB,QAAQ,oBAAoBqkc,eAAe,CAAC,IAAIp9c,EAAE,KAAKsW,EAAE,KAAKoqB,EAAE,WAAW,GAAG,OAAO1gC,EAAE,IAAI,IAAIiN,EAAEtK,EAAQkhc,eAAe7jc,GAAE,EAAGiN,GAAGjN,EAAE,KAAK,MAAMwI,GAAG,MAAMk/B,WAAWhH,EAAE,GAAGl4B,IAAK26C,EAAE,SAASl2C,GAAG,OAAOjN,EAAE0nC,WAAWyb,EAAE,EAAEl2C,IAAIjN,EAAEiN,EAAEy6B,WAAWhH,EAAE,KAAKnR,EAAE,SAAStiB,EAAEzE,GAAG8N,EAAEoxB,WAAWz6B,EAAEzE,IAAIgzC,EAAE,WAAW7T,aAAarxB,IAAI3T,EAAQuoc,qBAAqB,WAAW,OAAM,GAAIlwb,EAAErY,EAAQ06c,wBAAwB,iBAAiB,CAAC,IAAInwc,EAAE6L,OAAO2uB,WAAWv6B,EAAE4L,OAAO4uB,aAAa,GAAG,qBAAqBnN,QAAQ,CAAC,IAAI4I,EAC7frqB,OAAOo5H,qBAAqB,oBAAoBp5H,OAAOm5H,uBAAuB13G,QAAQhjB,MAAM,sJAAsJ,oBAAoB4rB,GAAG5I,QAAQhjB,MAAM,qJAAqJ,IAAI6oC,GAAE,EAAG2b,EAAE,KAAKloC,GAAG,EAAEonB,EAAE,EAAE2jC,EAAE,EAAEl8E,EAAQuoc,qBAAqB,WAAW,OAAOvoc,EAAQkhc,gBAChgBhlX,GAAG7jE,EAAE,aAAarY,EAAQ06c,wBAAwB,SAASpwc,GAAG,EAAEA,GAAG,IAAIA,EAAEutB,QAAQhjB,MAAM,mHAAmH0jC,EAAE,EAAEjuC,EAAE9B,KAAK2F,MAAM,IAAI7D,GAAG,GAAG,IAAIusF,EAAE,IAAI4jX,eAAethX,EAAEtC,EAAE8jX,MAAM9jX,EAAE+jX,MAAMC,UAAU,WAAW,GAAG,OAAOxhZ,EAAE,CAAC,IAAI/uD,EAAEtK,EAAQkhc,eAAehlX,EAAE5xE,EAAEiuC,EAAE,IAAI8gB,GAAE,EAAG/uD,GAAG6uF,EAAEugL,YAAY,OAAOh8N,GAAE,EAAG2b,EAAE,MAAM,MAAMxzD,GAAG,MAAMszF,EAAEugL,YAAY,MAAM7zQ,QAAS63C,GAAE,GAAI8C,EAAE,SAASl2C,GAAG+uD,EAAE/uD,EAAEozC,IAAIA,GAAE,EAAGy7C,EAAEugL,YAAY,QAAQ9sP,EAAE,SAAStiB,EAAEzE,GAAGsrB,EACtf5mB,GAAE,WAAWD,EAAEtK,EAAQkhc,kBAAiBr7b,IAAIgzC,EAAE,WAAWruC,EAAE2mB,GAAGA,GAAG,GAAG,SAAS6lE,EAAE1sF,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAE5M,OAAO4M,EAAE1C,KAAK/B,GAAGyE,EAAE,OAAO,CAAC,IAAIuW,EAAE1Y,EAAE,IAAI,EAAEjK,EAAEoM,EAAEuW,GAAG,UAAG,IAAS3iB,GAAG,EAAEy6C,EAAEz6C,EAAE2H,IAA0B,MAAMyE,EAA7BA,EAAEuW,GAAGhb,EAAEyE,EAAEnC,GAAGjK,EAAEiK,EAAE0Y,GAAgB,SAAS02E,EAAEjtF,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAChP,SAAS04C,EAAE14C,GAAG,IAAIzE,EAAEyE,EAAE,GAAG,QAAG,IAASzE,EAAE,CAAC,IAAIsC,EAAEmC,EAAEozB,MAAM,GAAGv1B,IAAItC,EAAE,CAACyE,EAAE,GAAGnC,EAAEmC,EAAE,IAAI,IAAIuW,EAAE,EAAE3iB,EAAEoM,EAAE5M,OAAOmjB,EAAE3iB,GAAG,CAAC,IAAI4H,EAAE,GAAG+a,EAAE,GAAG,EAAErjB,EAAE8M,EAAExE,GAAG69B,EAAE79B,EAAE,EAAEwpB,EAAEhlB,EAAEq5B,GAAG,QAAG,IAASnmC,GAAG,EAAEm7C,EAAEn7C,EAAE2K,QAAG,IAASmnB,GAAG,EAAEqpB,EAAErpB,EAAE9xB,IAAI8M,EAAEuW,GAAGyO,EAAEhlB,EAAEq5B,GAAGx7B,EAAE0Y,EAAE8iB,IAAIr5B,EAAEuW,GAAGrjB,EAAE8M,EAAExE,GAAGqC,EAAE0Y,EAAE/a,OAAQ,WAAG,IAASwpB,GAAG,EAAEqpB,EAAErpB,EAAEnnB,IAA0B,MAAMmC,EAA7BA,EAAEuW,GAAGyO,EAAEhlB,EAAEq5B,GAAGx7B,EAAE0Y,EAAE8iB,IAAgB,OAAO99B,EAAE,OAAO,KAAK,SAAS8yC,EAAEruC,EAAEzE,GAAG,IAAIsC,EAAEmC,EAAEwwc,UAAUj1c,EAAEi1c,UAAU,OAAO,IAAI3yc,EAAEA,EAAEmC,EAAEzJ,GAAGgF,EAAEhF,GAAG,IAAIqlD,EAAE,GAAGtI,EAAE,GAAGsX,EAAE,EAAE+/B,EAAE,KAAK/3D,EAAE,EAAEq9D,GAAE,EAAGM,GAAE,EAAGz6C,GAAE,EACja,SAASi7C,EAAE/wF,GAAG,IAAI,IAAIzE,EAAE0xF,EAAE35C,GAAG,OAAO/3C,GAAG,CAAC,GAAG,OAAOA,EAAE+O,SAASouC,EAAEpF,OAAQ,MAAG/3C,EAAE8wO,WAAWrsO,GAAgD,MAA9C04C,EAAEpF,GAAG/3C,EAAEi1c,UAAUj1c,EAAEk1c,eAAe/jX,EAAE9wC,EAAErgD,GAAcA,EAAE0xF,EAAE35C,IAAI,SAAS46C,EAAEluF,GAAa,GAAV81C,GAAE,EAAGi7C,EAAE/wF,IAAOuwF,EAAE,GAAG,OAAOtD,EAAErxC,GAAG20C,GAAE,EAAGr6C,EAAE63C,OAAO,CAAC,IAAIxyF,EAAE0xF,EAAE35C,GAAG,OAAO/3C,GAAG+mB,EAAE4rE,EAAE3yF,EAAE8wO,UAAUrsO,IACtP,SAAS+tF,EAAE/tF,EAAEzE,GAAGg1F,GAAE,EAAGz6C,IAAIA,GAAE,EAAGvH,KAAK0hD,GAAE,EAAG,IAAIpyF,EAAE+0B,EAAE,IAAS,IAALm+D,EAAEx1F,GAAOovF,EAAEsC,EAAErxC,GAAG,OAAO+uC,MAAMA,EAAE8lX,eAAel1c,IAAIyE,IAAItK,EAAQuoc,yBAAyB,CAAC,IAAI1nb,EAAEo0E,EAAErgF,SAAS,GAAG,oBAAoBiM,EAAE,CAACo0E,EAAErgF,SAAS,KAAKsoB,EAAE+3D,EAAE+lX,cAAc,IAAI98c,EAAE2iB,EAAEo0E,EAAE8lX,gBAAgBl1c,GAAGA,EAAE7F,EAAQkhc,eAAe,oBAAoBhjc,EAAE+2F,EAAErgF,SAAS1W,EAAE+2F,IAAIsC,EAAErxC,IAAIlD,EAAEkD,GAAGm1C,EAAEx1F,QAAQm9C,EAAEkD,GAAG+uC,EAAEsC,EAAErxC,GAAG,GAAG,OAAO+uC,EAAE,IAAInvF,GAAE,MAAO,CAAC,IAAItI,EAAE+5F,EAAE35C,GAAG,OAAOpgD,GAAGovB,EAAE4rE,EAAEh7F,EAAEm5O,UAAU9wO,GAAGC,GAAE,EAAG,OAAOA,EAArX,QAA+XmvF,EAAE,KAAK/3D,EAAE/0B,EAAEoyF,GAAE,GAAI,IAAIte,EAAE5jE,EAAErY,EAAQopc,sBAAsB,EACteppc,EAAQ8oc,2BAA2B,EAAE9oc,EAAQkpc,qBAAqB,EAAElpc,EAAQ4gc,wBAAwB,EAAE5gc,EAAQi7c,mBAAmB,KAAKj7c,EAAQ0hc,8BAA8B,EAAE1hc,EAAQqoc,wBAAwB,SAAS/9b,GAAGA,EAAEsK,SAAS,MAAM5U,EAAQk7c,2BAA2B,WAAWrgX,GAAGN,IAAIM,GAAE,EAAGr6C,EAAE63C,KAAKr4F,EAAQ4oc,iCAAiC,WAAW,OAAO1ra,GAAGl9B,EAAQm7c,8BAA8B,WAAW,OAAO5jX,EAAErxC,IACpalmD,EAAQo7c,cAAc,SAAS9wc,GAAG,OAAO4yB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIr3B,EAAE,EAAE,MAAM,QAAQA,EAAEq3B,EAAE,IAAI/0B,EAAE+0B,EAAEA,EAAEr3B,EAAE,IAAI,OAAOyE,IAAX,QAAuB4yB,EAAE/0B,IAAInI,EAAQq7c,wBAAwB,aAAar7c,EAAQyoc,sBAAsBxsX,EAAEj8E,EAAQwgc,yBAAyB,SAASl2b,EAAEzE,GAAG,OAAOyE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAInC,EAAE+0B,EAAEA,EAAE5yB,EAAE,IAAI,OAAOzE,IAAX,QAAuBq3B,EAAE/0B,IACpWnI,EAAQ2gc,0BAA0B,SAASr2b,EAAEzE,EAAEsC,GAAG,IAAI0Y,EAAE7gB,EAAQkhc,eAA8F,OAA/E,kBAAkB/4b,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEoqM,QAA6B,EAAEpqM,EAAE0Y,EAAE1Y,EAAE0Y,EAAG1Y,EAAE0Y,EAASvW,GAAG,KAAK,EAAE,IAAIpM,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjMoM,EAAE,CAACzJ,GAAGq0D,IAAItgD,SAAS/O,EAAEm1c,cAAc1wc,EAAEqsO,UAAUxuO,EAAE4yc,eAAvD78c,EAAEiK,EAAEjK,EAAoE48c,WAAW,GAAG3yc,EAAE0Y,GAAGvW,EAAEwwc,UAAU3yc,EAAE6uF,EAAEp5C,EAAEtzC,GAAG,OAAOitF,EAAErxC,IAAI57C,IAAIitF,EAAE35C,KAAKwC,EAAEvH,IAAIuH,GAAE,EAAGxzB,EAAE4rE,EAAErwF,EAAE0Y,MAAMvW,EAAEwwc,UAAU58c,EAAE84F,EAAE9wC,EAAE57C,GAAGuwF,GAAGN,IAAIM,GAAE,EAAGr6C,EAAE63C,KAAY/tF,GAC1dtK,EAAQs7c,sBAAsB,SAAShxc,GAAG,IAAIzE,EAAEq3B,EAAE,OAAO,WAAW,IAAI/0B,EAAE+0B,EAAEA,EAAEr3B,EAAE,IAAI,OAAOyE,EAAEvM,MAAMC,KAAKP,WAAxB,QAA2Cy/B,EAAE/0B,M,6BClB7HpI,EAAOC,QAAU0H,GAAO82D,mBAAmB92D,GAAKmI,QAAQ,YAAYtF,GAAM,IAAGA,EAAE1C,WAAW,GAAGhD,SAAS,IAAIgjE,mB,6BCA1G,IAAI7yD,EAAQ,eACRumc,EAAgB,IAAIx2Y,OAAO/vD,EAAO,MAClCwmc,EAAe,IAAIz2Y,OAAO,IAAM/vD,EAAQ,KAAM,MAElD,SAASymc,EAAiB51L,EAAYzqQ,GACrC,IAEC,OAAOshF,mBAAmBmpL,EAAW36Q,KAAK,KACzC,MAAOgS,IAIT,GAA0B,IAAtB2oQ,EAAWnoR,OACd,OAAOmoR,EAGRzqQ,EAAQA,GAAS,EAGjB,IAAI0L,EAAO++P,EAAWvkR,MAAM,EAAG8Z,GAC3B2L,EAAQ8+P,EAAWvkR,MAAM8Z,GAE7B,OAAOzP,MAAM/N,UAAUkD,OAAOhD,KAAK,GAAI29c,EAAiB30b,GAAO20b,EAAiB10b,IAGjF,SAASsP,EAAO7jB,GACf,IACC,OAAOkqF,mBAAmBlqF,GACzB,MAAO0K,GAGR,IAFA,IAAIyvD,EAASn6D,EAAMvH,MAAMswc,GAEhBh+c,EAAI,EAAGA,EAAIovE,EAAOjvE,OAAQH,IAGlCovE,GAFAn6D,EAAQipc,EAAiB9uY,EAAQpvE,GAAG2N,KAAK,KAE1BD,MAAMswc,GAGtB,OAAO/oc,GAyCTzS,EAAOC,QAAU,SAAU07c,GAC1B,GAA0B,kBAAfA,EACV,MAAM,IAAIl4c,UAAU,6DAA+Dk4c,EAAa,KAGjG,IAIC,OAHAA,EAAaA,EAAW7rc,QAAQ,MAAO,KAGhC6sF,mBAAmBg/W,GACzB,MAAOx+b,GAER,OAjDF,SAAkC1K,GAQjC,IANA,IAAImpc,EAAa,CAChB,SAAU,eACV,SAAU,gBAGP1wc,EAAQuwc,EAAartb,KAAK3b,GACvBvH,GAAO,CACb,IAEC0wc,EAAW1wc,EAAM,IAAMyxF,mBAAmBzxF,EAAM,IAC/C,MAAOiS,GACR,IAAItF,EAASye,EAAOprB,EAAM,IAEtB2M,IAAW3M,EAAM,KACpB0wc,EAAW1wc,EAAM,IAAM2M,GAIzB3M,EAAQuwc,EAAartb,KAAK3b,GAI3Bmpc,EAAW,OAAS,SAIpB,IAFA,IAAIn8W,EAAUriG,OAAOsE,KAAKk6c,GAEjBp+c,EAAI,EAAGA,EAAIiiG,EAAQ9hG,OAAQH,IAAK,CAExC,IAAIqB,EAAM4gG,EAAQjiG,GAClBiV,EAAQA,EAAM3C,QAAQ,IAAIk1D,OAAOnmE,EAAK,KAAM+8c,EAAW/8c,IAGxD,OAAO4T,EAeCopc,CAAyBF,M,6BCzFlC37c,EAAOC,QAAU,CAAC+D,EAAQi8E,KACzB,GAAwB,kBAAXj8E,GAA4C,kBAAdi8E,EAC1C,MAAM,IAAIx8E,UAAU,iDAGrB,GAAkB,KAAdw8E,EACH,MAAO,CAACj8E,GAGT,MAAM83c,EAAiB93c,EAAO5F,QAAQ6hF,GAEtC,OAAwB,IAApB67X,EACI,CAAC93c,GAGF,CACNA,EAAOzC,MAAM,EAAGu6c,GAChB93c,EAAOzC,MAAMu6c,EAAiB77X,EAAUtiF,W,6BClB1CqC,EAAOC,QAAU,SAAUwB,EAAKwxM,GAK/B,IAJA,IAAInnM,EAAM,GACNpK,EAAOtE,OAAOsE,KAAKD,GACnBs6c,EAAQnwc,MAAMjJ,QAAQswM,GAEjBz1M,EAAI,EAAGA,EAAIkE,EAAK/D,OAAQH,IAAK,CACrC,IAAIqB,EAAM6C,EAAKlE,GACXkH,EAAMjD,EAAI5C,IAEVk9c,GAAoC,IAA5B9oQ,EAAU70M,QAAQS,GAAco0M,EAAUp0M,EAAK6F,EAAKjD,MAC/DqK,EAAIjN,GAAO6F,GAIb,OAAOoH,I,2lDCfR,YAGA,SACA,SACA,SACA,SACA,SACA,SAKa,4BAA4B,SAA6F,GAClI,OAAO,oBAAe,EAAK,mBAExB,IAMH,EANS,+BAA+B,SAA6F,GACnI,OAAK,oBAAe,EAAK,sBAOlB,YAAY,SAAO,EAAoB,GAA8B,0C,wDACnD,SAAM,YAAU,YAAY,iB,OACrC,OADR,EAAiB,SACT,GAAM,YAAU,YAAY,kB,OAIpC,OAHiB,KADb,EAAI,UACF,SACA,EAAE,MAAM,KAAK,6BAEF,IAAvB,EAAY,SACZ,UAAK,gBACL,IAAO,wBAEJ,GAAM,EAAkB,EAAY,EAAgB,I,OAA3D,SAAO,kBAGX,IAAM,EAAQ,SAAO,EAAoB,EAAgC,GAAkB,0C,0DAGhF,OAFD,GAAQ,yBAAoB,EAAY,IAAI,oBAAqB,EAAe,MAChF,EAAa,EACZ,GAAM,EAAM,MAAM,CAAC,EAAe,iBAAkB,EAAY,EAAa,CAAC,GAAc,GAAI,EAAe,S,OAAtH,SAAO,kBAIL,EAAoB,SAAO,EAAoB,EAAgC,GAAoC,0C,yFAC/G,GAAqB,mBAAc,IACzC,SAAI,SAAU,CAAC,sBAAqB,EAAE,yBAAwB,EAAE,WAAU,KACtE,cACI,OAAM,E,iBAEG,O,sBAAA,GAAM,EAAM,EAAY,EAAgB,I,cAAjD,EAAS,S,aAGT,O,YADA,UAAK,cAAe,GACpB,IAAO,uB,OAGX,IADA,SAAI,cAAe,IACf,oBAAe,EAAQ,mBAGvB,GAFM,EAAiB,EAAO,eACxB,GAAqC,oCAA+B,EAAe,sBAErF,UAAO,yBAAoB,CAAC,eAAgB,CAAC,kBAAmB,WAEjE,IAAI,oBAAe,EAAQ,sBAG9B,GAFM,EAAoB,EAAO,kBAC3B,GAA+C,8BAAyB,GAE1E,UAAO,yBAAoB,CAAC,kBAAmB,CAAC,KAAM,UAEvD,KAAI,oBAAe,EAAQ,kBAC9B,UAAO,oBAAe,mBACnB,IAAI,oBAAe,EAAQ,kBAAmB,CAKjD,IAJM,EAA2B,EAAO,eAClC,EAA4B,EAAe,WAC3C,EAAkB,EAAe,aACjC,EAAgC,GAC7B,EAAI,EAAG,EAAI,EAAgB,OAAQ,KAClC,GAAqB,2BAAsB,EAAgB,OAEtD,EAA+C,EAA3B,GACE,SADyB,EAAJ,IAE9C,EAAe,KAAK,EAAqB,WASrD,OALI,EAAe,OAAS,IACxB,EAA2B,EAC3B,YAAU,YAAY,eAAe,GACrC,YAAU,YAAY,cAAc,IAExC,IAAO,qBAAgB,mBACpB,IAAI,oBAAe,EAAQ,iBAC9B,UAAO,uBAKX,OAFM,EAAqC,IAA3B,4BAChB,SAAI,YAAa,EAAS,MAC1B,IAAM,kBAAa,I,OAEnB,OAFA,SACM,GAA6B,4BAAuB,EAAY,GACtE,GAAO,EAAkB,EAAY,EAAgB,I,OAEzD,UAAO,+BAGE,sBAAsB,SAAC,GAE9B,OAAK,EADO,KAAK,MAAM,KAAK,SAAW,EAAM,UAItC,gBAAgB,SAAC,GACxB,GAAkC,GAAhC,EAAsB,OAGxB,OAAK,yBAAoB,IAGlB,yBAAyB,SAAC,EAA0B,GAC3D,OAAK,EAAsB,QAAO,YAAS,kB,eCpHjD,YACA9L,EAAOC,QAAU+7c,I,4CCCjB,MAAM,OAAEn5c,GAAW3C,EAAQ,GACrBooH,EAAUpoH,EAAQ,KAClBwuG,EAAQxuG,EAAQ,KAMtB,MAAMujI,UAAiBnb,EACrB69N,UAAWU,EAAWzmV,GACpB,MAAQ,GAAEymV,KAAazmV,KAGzB2mV,UAAWriV,GACT,OAAO+xF,MAAMswP,UAAUriV,GAAKI,WAG9BkiV,YAAavmS,EAAG5zB,GACd,OAAO4pE,MAAMuwP,YAAYvmS,EAAG5zB,GAAG/nB,WAGjCmiV,YAAanqB,EAAIC,EAAIhvJ,EAAIC,GACvB,OAAOv3E,MAAMwwP,YAAYnqB,EAAIC,EAAIhvJ,EAAIC,GAAIlpK,WAG3CuiV,eAAgB5mS,EAAG5zB,GACjB,OAAO4pE,MAAM4wP,eAAe5mS,EAAG5zB,GAAG/nB,WAGpCwiV,eAAgBxqB,EAAIC,EAAIhvJ,EAAIC,GAC1B,OAAOv3E,MAAM6wP,eAAexqB,EAAIC,EAAIhvJ,EAAIC,GAAIlpK,WAG9CyiV,aACE,MAAO,OAGTC,cACE,MAAO,QAGTN,YAAaxiV,GACX,MAAMg+V,EAAKjsQ,MAAMywP,YAAYxiV,GAC7B,OAAIgqG,EAAMkqB,eAAel0H,GAChB,OAGD,GAAEg+V,MAGZvb,kBAAmB58U,EAAGzE,EAAGsC,EAAG0Y,GAE1B,MAAQ,GADG21E,MAAM0wP,kBAAkB58U,EAAGzE,EAAGsC,EAAG0Y,OAI9CsmU,kBAAmB78U,EAAGzE,EAAGsC,EAAG0Y,EAAG3iB,EAAGsiD,EAAG5zB,EAAGisB,GAEtC,MAAQ,GADG29C,MAAM2wP,kBAAkB78U,EAAGzE,EAAGsC,EAAG0Y,EAAG3iB,EAAGsiD,EAAG5zB,EAAGisB,OAI1DstS,iBAAkBniN,EAAKniI,GACrB,MAAM4C,EAAMu/H,EAAI94H,KAAK,MAErB,OAAa,IAATrJ,EACM,MAAK4C,KAEP,KAAIA,IAGdoiV,yBAA0BzhV,EAAOC,GAK/B,MAAQ,KAJKzC,EAAOW,KAClBizF,MAAMqwP,yBAAyBzhV,EAAOC,IACrCR,SAAS,UAKd6iV,iBACE,MAAO,aAGTC,oBACE,MAAO,cAGTC,YACE,MAAO,QAGTC,eACE,MAAO,SAGTL,aACE,MAAO,OAGTC,kBACE,MAAO,YAGTM,uBAAwBtjV,GACtB,MAAQ,UAASA,KAGnB6hV,YAAalgV,EAAKvE,GAChB,MAAM4C,EAAM+xF,MAAM8vP,YAAYlgV,EAAKvE,GAEnC,OAAa,IAATA,EAEM,MAAK4C,EAAIyG,KAAK,SAGhB,IAAGzG,EAAIyG,KAAK,SAGtBm7U,UAAW7nV,EAAKqD,GACd,MAAM4C,EAAM+xF,MAAM6vP,UAAU7nV,GACtBiM,EAAOkB,MAAMpI,KAAKkB,EAAIhD,QACzB0Z,OAAO6gc,EAAcv3c,GAAM,IAE9B,OAAa,IAAT5C,EACM,MAAK4I,KAGP,IAAGA,KAGbk/I,aAAcnoJ,EAAKK,GACjB,MAAM4C,EAAM+xF,MAAMmzD,aAAanoJ,GACzBhD,EAAMrB,OAAOsE,KAAKgD,GACrB0W,OAAO6gc,EAAcv3c,GAAM,IAE9B,OAAa,IAAT5C,EACM,MAAKrD,KAGP,IAAGA,KAGb4nV,iBAAkBpiN,EAAKniI,GACrB,MAAM4C,EAAMu/H,EAAI94H,KAAK,MAErB,OAAa,IAATrJ,EACM,MAAK4C,KAGP,IAAGA,KAGbqjV,yBAA0B1iV,EAAOC,GAK/B,MAAQ,IAJKzC,EAAOW,KAClBizF,MAAMsxP,yBAAyB1iV,EAAOC,IACrCR,SAAS,WAKC,gBAAE2N,EAAOioG,GACD,kBAAVjoG,IACTA,EAAQ5P,EAAOW,KAAKiP,EAAOioG,GAAO,QAIpC,OADY,IAAI+oB,GACLhtG,YAAYhkB,IAM3B,SAASwpc,EAAev3c,GACtB,MAAO,CAAC00D,EAAKv6D,IACPu6D,EACM,GAAEA,MAAQv6D,MAAQ6F,EAAI7F,KAExB,GAAEA,MAAQ6F,EAAI7F,KAP1BmB,EAAOC,QAAUwjI,G,cCxKjBzjI,EAAOC,QAAU,SAAoBi8c,EAAQC,EAAS13c,GACpD,UAIA,IAAI23c,EAAO,IAAIF,EAAOh5c,WAAWuB,GAEjC,IAAIm/U,EAAUu4H,EAAQv4H,QACtB,IAAIC,EAAYs4H,EAAQt4H,UACxB,IAAIC,EAAeq4H,EAAQr4H,aAC3B,IAAIC,EAAYo4H,EAAQp4H,UACxB,IAAIC,EAAem4H,EAAQn4H,aAC3B,IAAIC,EAAYk4H,EAAQl4H,UACxB,IAAIC,EAAkBi4H,EAAQj4H,gBAC9B,IAAIC,EAAkBg4H,EAAQh4H,gBAC9B,IAAIC,EAAW+3H,EAAQ/3H,SACvB,IAAIC,EAAY83H,EAAQ93H,UACxB,IAAIC,EAAgB63H,EAAQ73H,cAC5B,IAAIC,EAAW43H,EAAQ53H,SACvB,IAAIC,EAAe23H,EAAQ33H,aAC3B,IAAIC,EAAkB03H,EAAQ13H,gBAC9B,IAAIC,EAAUy3H,EAAQz3H,QACtB,IAAIC,EAAaw3H,EAAQx3H,WAEzB,IAAIC,EAAiBu3H,EAAQv3H,eAC7B,IAAIC,EAAsBs3H,EAAQt3H,oBAClC,IAAIC,EAAwBq3H,EAAQr3H,sBACpC,IAAIC,EAAwBo3H,EAAQp3H,sBACpC,IAAIC,EAAkBm3H,EAAQn3H,gBAC9B,IAAIC,EAAuBk3H,EAAQl3H,qBACnC,IAAIC,EAAyBi3H,EAAQj3H,uBACrC,IAAIC,EAAyBg3H,EAAQh3H,uBAErC,IAAIC,EAAiB+2H,EAAQ/2H,eAC7B,IAAIC,EAAsB82H,EAAQ92H,oBAClC,IAAIC,EAAiB62H,EAAQ72H,eAC7B,IAAIC,EAAsB42H,EAAQ52H,oBAElC,IAAIC,EAAuB22H,EAAQ32H,qBAEnC,IAAIE,EAAey2H,EAAQz2H,aAC3B,IAAIC,EAAgBw2H,EAAQx2H,cAC5B,IAAIC,EAAgBu2H,EAAQv2H,cAC5B,IAAIH,EAAoB02H,EAAQ12H,kBAEhC,IAAII,EAAYs2H,EAAQt2H,UAExB,IAAIv4U,EAAM4uc,EAAOzzc,KAAK6E,IAOtB,IAAIrG,EAAS,EACb,IAAIo1c,EAAc,EAClB,IAAI7sc,EAAO,EAUX,SAASo9C,EAAOn6C,GACdA,EAAQA,EAAQ,EAEhBxL,EAAS,EACTo1c,EAAc5pc,EAEd,OAAQxL,EAAS,IAAMo1c,EAAc,GAAI,CACvC7sc,EAAO8sc,GAAUF,EAAKn1c,GAAU,KAAKm1c,EAAKn1c,GAAU,GAAK,EAEzD,IAAKuI,EAAO,GAAK,EAAG,CAClB,OAIJ,OAAOA,EAAO,EAKhB,SAAStD,EAAazO,GACpBA,EAAIA,EAAI,EAER,KAAOwJ,EAAS,IAAMxJ,EAAI,GAAM,IAAM4+c,EAAc,GAAI,CACtD,OAAO,EAGT,OAAO,EAGT,SAASE,EAAY9+c,GACnBA,EAAIA,EAAI,EAER,OACG2+c,EAAK3+c,EAAI,IAAM,EAAK2+c,EAAM3+c,EAAI,EAAK,GAClC,EAGN,SAAS++c,EAAY/+c,GACnBA,EAAIA,EAAI,EAER,OACG2+c,EAAK3+c,EAAI,IAAM,GAAO2+c,EAAM3+c,EAAI,EAAK,IAAM,GAAO2+c,EAAM3+c,EAAI,EAAK,IAAM,EAAK2+c,EAAM3+c,EAAI,EAAK,GAC1F,EAKN,SAASg/c,EAAOC,GACdA,EAAQA,EAAQ,EAEhB94H,EAAQ84H,EAAQ,GAEhBz1c,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS01c,EAAUD,GACjBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT03U,EAAQw4H,EAAMn1c,EAAS,EAAK,GAAK,GAEjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS21c,EAAWF,GAClBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT03U,EACE24H,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS41c,EAAWH,GAClBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT23U,EACE04H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS61c,EAAWJ,GAClBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT63U,EACEw4H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS81c,EAAOL,GACdA,EAAQA,EAAQ,EAEhB94H,GAAU,GAAM84H,EAAQ,GAAM,GAAM,GAEpCz1c,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS+1c,EAAUN,GACjBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT03U,GACI,GAAKw4H,EAAMn1c,EAAS,EAAK,GAAK,GAAM,GAGxCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASg2c,EAAWP,GAClBA,EAAQA,EAAQ,EAEhB,IAAIh4c,EAAM,EAEV,GAAIwH,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTxH,EAAM63c,EAAYt1c,EAAS,EAAK,GAAK,EACrC28U,GAAU,GAAKl/U,EAAM,GAAM,GAE3BuC,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASi2c,GAAWR,GAClBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT43U,EACEy4H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASk2c,GAAWT,GAClBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT83U,EACEu4H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASmsL,GAAaspR,GACpBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAIuW,EAAO,EAEXA,EAAQ6gc,EAAQ,GAAM,EACtB,GAAIxwc,EAAY2P,EAAO,GAAK,EAAG,CAC7B,OAAO,EAGTxW,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAM4U,EAAO,GAAM,EAE1CupU,EAAe//U,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAAS83c,GAAeV,GACtBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAI3H,EAAS,EAEb,GAAIuO,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTvO,EAASy+c,EAAMn1c,EAAS,EAAK,GAAK,EAClC5B,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAMtJ,EAAS,GAAM,EAE5C,GAAIuO,EAAavO,EAAS,EAAK,GAAK,EAAG,CACrC,OAAO,EAGTynV,EAAe//U,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAAS+3c,GAAgBX,GACvBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAI3H,EAAS,EAEb,GAAIuO,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTvO,EAAS4+c,EAAYt1c,EAAS,EAAK,GAAK,EACxC5B,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAMtJ,EAAS,GAAM,EAG5C,GAAIuO,EAAavO,EAAS,EAAK,GAAK,EAAG,CACrC,OAAO,EAGTynV,EAAe//U,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAASg4c,GAAgBZ,GACvBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAI3H,EAAS,EAEb,GAAIuO,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTvO,EAAS6+c,EAAYv1c,EAAS,EAAK,GAAK,EACxC5B,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAMtJ,EAAS,GAAM,EAG5C,GAAIuO,EAAavO,EAAS,EAAK,GAAK,EAAG,CACrC,OAAO,EAGTynV,EAAe//U,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAASi4c,GAAgBb,GAEvBA,EAAQA,EAAQ,EAEhB,OAAO,EAGT,SAASc,GAAmBd,GAC1BA,EAAQA,EAAQ,EAEhBr3H,IAEAp+U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASosL,GAAaqpR,GACpBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAIuW,EAAO,EAEXA,EAAQ6gc,EAAQ,GAAM,EAEtB,GAAIxwc,EAAY2P,EAAO,GAAK,EAAG,CAC7B,OAAO,EAGTxW,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAM4U,EAAO,GAAM,EAE1CypU,EAAejgV,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAASm4c,GAAef,GACtBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAI3H,EAAS,EAEb,GAAIuO,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTvO,EAASy+c,EAAMn1c,EAAS,EAAK,GAAK,EAClC5B,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAMtJ,EAAS,GAAM,EAE5C,GAAIuO,EAAavO,EAAS,EAAK,GAAK,EAAG,CACrC,OAAO,EAGT2nV,EAAejgV,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAASo4c,GAAgBhB,GACvBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAI3H,EAAS,EAEb,GAAIuO,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTvO,EAAS4+c,EAAYt1c,EAAS,EAAK,GAAK,EACxC5B,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAMtJ,EAAS,GAAM,EAE5C,GAAIuO,EAAavO,EAAS,EAAK,GAAK,EAAG,CACrC,OAAO,EAGT2nV,EAAejgV,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAASq4c,GAAgBjB,GACvBA,EAAQA,EAAQ,EAEhB,IAAIr3c,EAAQ,EACZ,IAAIC,EAAM,EACV,IAAI3H,EAAS,EAEb,GAAIuO,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTvO,EAAS6+c,EAAYv1c,EAAS,EAAK,GAAK,EACxC5B,EAAS4B,EAAS,EAAK,EACvB3B,GAAS2B,EAAS,EAAK,IAAMtJ,EAAS,GAAM,EAE5C,GAAIuO,EAAavO,EAAS,EAAK,GAAK,EAAG,CACrC,OAAO,EAGT2nV,EAAejgV,EAAQ,EAAGC,EAAM,GAEhC2B,EAAS3B,EAAM,EAEf,OAAO,EAGT,SAASs4c,GAAgBlB,GAEvBA,EAAQA,EAAQ,EAEhB,OAAO,EAGT,SAASmB,GAAmBnB,GAC1BA,EAAQA,EAAQ,EAEhBn3H,IAEAt+U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASqsL,GAAOopR,GACdA,EAAQA,EAAQ,EAEhB73H,EAAqB63H,EAAQ,IAAO,GAEpCz1c,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS62c,GAASpB,GAChBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT24U,EAAoBu3H,EAAMn1c,EAAS,EAAK,GAAK,GAE7CA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS82c,GAAUrB,GACjBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT24U,EACE03H,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS+2c,GAAUtB,GACjBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT44U,EACEy3H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASg3c,GAAUvB,GACjBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT64U,EACEw3H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASi3c,GAAaxB,GACpBA,EAAQA,EAAQ,EAEhB93H,IAEA39U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASssL,GAAKmpR,GACZA,EAAQA,EAAQ,EAEhB,IAAI7gc,EAAO,EAEXA,EAAQ6gc,EAAQ,IAAO,EAEvB,GAAIxwc,EAAY2P,EAAO,GAAK,EAAG,CAC7B,OAAO,EAGTopU,EAAqBppU,EAAO,GAE5B5U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASk3c,GAAOzB,GACdA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT+4U,EAAqBm3H,EAAMn1c,EAAS,EAAK,GAAK,GAE9CA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASm3c,GAAQ1B,GACfA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT+4U,EACEs3H,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASo3c,GAAQ3B,GACfA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTg5U,EACEq3H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASq3c,GAAQ5B,GACfA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTi5U,EACEo3H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASs3c,GAAW7B,GAClBA,EAAQA,EAAQ,EAEhB13H,IAEA/9U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASu3c,GAAW9B,GAClBA,EAAQA,EAAQ,EAEhBh3H,EAAcg3H,EAAQ,IAAK,EAAK,GAEhCz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAASw3c,GAAgB/B,GACfA,EAAQ,EAEhBh3H,EAAag3H,EAAQ,GAErBz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAASy3c,GAAgBhC,GACfA,EAAQ,EAEhBh3H,EAAag3H,EAAQ,GAErBz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAAS03c,GAAUjC,GACTA,EAAQ,EAEhBh3H,EAAag3H,EAAQ,GAErBz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAAS23c,GAAkBlC,GACjBA,EAAQ,EAEhBh3H,EAAag3H,EAAQ,GAErBz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAAS43c,GAAgBnC,GACvBA,EAAQA,EAAQ,EAEhBh3H,EAAcg3H,EAAQ,IAAK,EAAK,GAEhCz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAAS63c,GAAgBpC,GACfA,EAAQ,EAEhBh3H,EAAag3H,EAAQ,GAErBz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAAS83c,GAAYrC,GACXA,EAAQ,EAEhBh3H,EAAag3H,EAAQ,GAErBz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAAS+3c,GAAYtC,GACXA,EAAQ,EAEhBh3H,EAAag3H,EAAQ,GAErBz1c,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAASg4c,GAAYvC,GACnBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTw5U,EAAa02H,EAAMn1c,EAAS,EAAK,GAAK,GAEtCA,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAASi4c,GAAYxC,GACnBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTw5U,EACE62H,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAASk4c,GAAYzC,GACnBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTy5U,EACE42H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAASm4c,GAAY1C,GACnBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGT05U,EACE22H,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,EAC/Bs1c,EAAYt1c,EAAS,EAAK,GAAK,GAGjCA,EAAUA,EAAS,EAAI,EAEvB,OAAO,EAGT,SAASo4c,GAAmB3C,GAC1BA,EAAQA,EAAQ,EAEhBl3H,GAAuBk3H,EAAQ,GAAK,IAAO,GAE3Cz1c,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASq4c,GAAc5C,GACrBA,EAAQA,EAAQ,EAEhBr4H,IAEAp9U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASs4c,GAAa7C,GACpBA,EAAQA,EAAQ,EAEhBt4H,IAEAn9U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASu4c,GAAa9C,GACpBA,EAAQA,EAAQ,EAEhBn4H,IAEAt9U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASw4c,GAAkB/C,GACzBA,EAAQA,EAAQ,EAEhBp4H,IAEAr9U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASy4c,GAAahD,GACpBA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTs5U,EAAqB42H,EAAMn1c,EAAS,EAAK,GAAK,GAE9CA,EAAUA,EAAS,EAAM,EAEzB,OAAO,EAGT,SAAS04c,GAAmBjD,GAC1BA,EAAQA,EAAQ,EAEhB,IAAIj8Z,EAAI,EACR,IAAI5zB,EAAI,EACR,IAAIrC,EAAO,IACX,IAAI9U,EAAM,IACV,IAAI+mT,EAAO,IACX,IAAIltS,EAAI,IACR,GAAIrjB,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTu0C,EAAI27Z,EAAMn1c,EAAS,EAAK,GAAK,EAC7B4lB,EAAIuvb,EAAMn1c,EAAS,EAAK,GAAK,EAE7B,IAAKw5C,EAAI,GAAK,KAAM,CAClBj2B,GAAQ,IAGV9U,MAAU+qC,EAAI,GAAK,OAAS,GAC5Bg8Q,MAAYh8Q,EAAI,GAAK,OAAS,EAAK5zB,GAEnC,IAAKnX,GAAO,IAAK,CACfuuU,KACIz5T,GAAS,uBAA0BiyS,SAElC,IAAK/mT,GAAO,KAAM,CACvB,IAAK8U,GAAQ,IAAK,CAChB,IAAKiyS,EAAO,IAAK,CACfioB,QACK,CACLF,SAEG,CACL,IAAK/nB,EAAO,IAAK,CACfkoB,QACK,CACLF,UAGC,CACLR,KACGz5T,EAAOld,GAAK,KAAMoI,EAAM,SAAW,OAAS+mT,KAIjDx1T,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS24c,GAAqBlD,GAC5BA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTg4U,EACEk4H,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,GAG3BA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAAS44c,GAAqBnD,GAC5BA,EAAQA,EAAQ,EAEhB,GAAIxwc,EAAY,GAAK,EAAG,CACtB,OAAO,EAGTi4U,EACEi4H,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,EACzBm1c,EAAMn1c,EAAS,EAAK,GAAK,GAG3BA,EAAUA,EAAS,EAAK,EAExB,OAAO,EAGT,SAASm8F,GAAOs5W,GACdA,EAAQA,EAAQ,EAEhB,OAAO,EAGT,SAASpnR,GAAOonR,GACdA,EAAQA,EAAQ,EAEhB72H,IAEA5+U,EAAUA,EAAS,EAAK,EAExB,OAAO,EAKT,IAAIq1c,GAAY,CAEdG,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAE,EAEAC,EAEAC,EAEAC,EACA15W,GACAA,GACAA,GACAA,GAEA25W,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,EAEAC,EAEAC,GAEAC,GACA/5W,GACAA,GACAA,GACAA,GAEAgwF,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAgqR,GAEAC,GAEAC,GAEAC,GACAn6W,GACAA,GACAA,GAEAo6W,GAEAnqR,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAoqR,GAEAC,GAEAC,GAEAC,GAEAx6W,GACAA,GACAA,GACAy6W,GAEAvqR,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAwqR,GAEAC,GAEAC,GAEAC,GAEA76W,GACAA,GACAA,GACA86W,GAEA3qR,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACA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K,KACV33B,EAAMhF,KAAgB,IAAJ28B,EAAU,IAC5BA,KAAO,EAGT,OADA33B,EAAMhF,GAAU28B,EACTpO,EAET,SAASy1b,EAAIzgd,GAIX,OAHIA,EAAI,IAAM,GACZA,IAEK/B,KAAK2F,OAEd,SAAe5D,GACb,IAAI/M,EAAI,EACJ+M,GAAKmgd,IACPngd,EAAI/B,KAAK2F,MAAM5D,EAAImgd,GACnBltd,EAAI,IAEF+M,GAAK,QACPA,KAAO,GACP/M,GAAK,IAEH+M,GAAK,MACPA,KAAO,EACP/M,GAAK,GAEP,OAAOA,EAAIytd,EAAQ1gd,GAhBA2gd,CAAM3gd,GAAK,GAAK,GAkBrC,MAAM0gd,EAAU,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAGFjrd,EAAQgod,WAxVR,SAAoBvpd,GAClB,MAAM9B,EAkCR,SAAkB8B,GAChB,IAAIjB,EAAI,EACR,GAAIiB,EAAKopd,KAAM,CACb,MAAM/ua,EAAIr6C,EAAKopd,KAAKnqd,OACpBF,GAAK,EAAIs7C,EAAIkya,EAAIlya,GAEnB,GAAIr6C,EAAKqpd,MACP,IAAK,MAAM53Q,KAAQzxM,EAAKqpd,MAAO,CAC7B,MAAMhva,EAAIiya,EAAS76Q,GACnB1yM,GAAK,EAAIs7C,EAAIkya,EAAIlya,GAGrB,OAAOt7C,EA9CM2td,CAAS1sd,GAChBuN,EAAQ,IAAI/I,WAAWtG,GAC7B,IAAIY,EAAIZ,EAOR,GANI8B,EAAKopd,OACPtqd,GAAKkB,EAAKopd,KAAKnqd,OACfsO,EAAMsD,IAAI7Q,EAAKopd,KAAMtqd,GACrBA,EAAIstd,EAAa7+c,EAAOzO,EAAGkB,EAAKopd,KAAKnqd,QAAU,EAC/CsO,EAAMzO,GAAK,IAETkB,EAAKqpd,MACP,IAAK,IAAI1md,EAAQ3C,EAAKqpd,MAAMpqd,OAAS,EAAG0D,GAAS,EAAGA,IAAS,CAC3D,MAAMzE,EAAOgud,EAAWlsd,EAAKqpd,MAAM1md,GAAQ4K,EAAMrC,SAAS,EAAGpM,IAC7DA,GAAKZ,EACLY,EAAIstd,EAAa7+c,E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F,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,sEAINvuE,IAAK,CACHnxC,IAAK,EACL0/G,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,wE,6BCrwBR,IAAI7vH,EAAKvtD,EAAQ,IACb86e,EAAW96e,EAAQ,KACnBwuG,EAAQxuG,EAAQ,IAChB6rU,EAAS7rU,EAAQ,KACjBorK,EAAOprK,EAAQ,KACfqtD,EAASmhD,EAAMnhD,OAEf0tb,EAAU/6e,EAAQ,KAClBg7e,EAAYh7e,EAAQ,KAExB,SAASk0e,EAAG9je,GACV,KAAMrS,gBAAgBm2e,GACpB,OAAO,IAAIA,EAAG9je,GAGO,kBAAZA,IACTi9C,EAAOnwD,OAAOS,UAAUC,eAAeC,KAAKguU,EAAQz7T,GAClD,iBAAmBA,GAErBA,EAAUy7T,EAAOz7T,IAIfA,aAAmBy7T,EAAOE,cAC5B37T,EAAU,CAAEorK,MAAOprK,IAErBrS,KAAKy9K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,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,GAOOzE,KAAI,SAAU+L,GACnB,OAAW,EAAJA,MAMLo5B,EAAI,IAAI2nI,YAAY,IACpBxlK,EAAI,IAAIwlK,YAAY,IAC1B,SAASq6U,EAAiBjrb,EAAKrwC,GAC7B,IAAI9sB,EAAI,EAGR,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClBomC,EAAEpmC,GAAKm9D,EAAI7hB,EAAEt7C,GACbomC,EAAEpmC,EAAI,IAAMkof,EAAalof,GAe3B,IAXAomC,EAAE,IAAMA,EAAE,IAAM+2B,EAAIr9D,EACpBsmC,EAAE,IAAMA,EAAE,IAAO+2B,EAAIr9D,EAAI,WAIrBgtB,IACFsZ,EAAE,KAAOA,EAAE,IACXA,EAAE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,EAAI,IAAM,GAIlE,SAASuof,EAAOx7e,EAAGzE,EAAGsC,EAAG0Y,EAAGtW,EAAGC,GAC7Bm5B,EAAEr5B,GAAKq5B,EAAEr5B,GAAKq5B,EAAE99B,GAAK0E,EACrBo5B,EAAE9iB,GAAKkle,EAAOpid,EAAE9iB,GAAK8iB,EAAEr5B,GAAI,IAC3Bq5B,EAAEx7B,GAAKw7B,EAAEx7B,GAAKw7B,EAAE9iB,GAChB8iB,EAAE99B,GAAKkgf,EAAOpid,EAAE99B,GAAK89B,EAAEx7B,GAAI,IAC3Bw7B,EAAEr5B,GAAKq5B,EAAEr5B,GAAKq5B,EAAE99B,GAAK2E,EACrBm5B,EAAE9iB,GAAKkle,EAAOpid,EAAE9iB,GAAK8iB,EAAEr5B,GAAI,GAC3Bq5B,EAAEx7B,GAAKw7B,EAAEx7B,GAAKw7B,EAAE9iB,GAChB8iB,EAAE99B,GAAKkgf,EAAOpid,EAAE99B,GAAK89B,EAAEx7B,GAAI,GAM7B,SAAS49e,EAAQx7e,EAAGC,GAClB,OAAQD,IAAMC,EAAMD,GAAM,GAAKC,EAIjC,MAAMw7e,EAAa,IAAI16U,YAAY,CACjC,WACA,WACA,WACA,WACA,WACA,WACA,UACA,aAGI26U,EAAQ,IAAIhjf,WAAW,CAC3B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,GA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A,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,GAAI,IACL,EACAA,EACA,CAAC,IAAK,IACN,GACAA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJ,EACA,EACA,GACAA,EACA,CAAC,IAAK,IACNA,EACA,CAAC,GAAI,MAELzD,KAAMiP,EAAE,CACRrW,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJ,EACAA,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJ6K,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,MAENq/B,MAAO7zB,EAAE,CACT,EACA,EACA,EACA,EACA,EACA,GACAxL,EACA,CAAC,EAAG,GACJ,GACA,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,GAAI,GACL,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,KAEJ0I,KAAM8C,EAAE,CACRrW,EACA,CAAC,EAAG,KACJA,EACA,CAAC,EAAG,GACJ6K,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJ7K,EACA,CAAC,EAAG,MAEJsogB,KAAMjyf,EAAE,CACR,EACA,EACA,EACA,GACArW,EACA,CAAC,EAAG,GAAI,GACRA,EACA,CAAC,GAAI,EAAG,GACR6K,EACA,CAAC,GAAI,IACL,GACA,GACA,GACA,GACAA,EACA,CAAC,GAAI,IACL,GACAA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,GACN,GACAA,EACA,CAAC,GAAI,IACL,GACA,GACAA,EACA,CAAC,GAAI,IACL,GACA7K,EACA,CAAC,EAAG,GACJ,GACA,GACA,EACAA,EACA,CAAC,EAAG,GACJ,GACA,G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,GAAe8xgB,EAAW9xgB,IAC3C+7b,EAAQ5tG,QAAQnuV,GACTwklB,GAGLjyE,GAAmBvygB,IACrB63gB,EAAc0sE,EACPP,EAAahklB,IAGlBwygB,GAAcxygB,IAChB+7b,EAAQ5tG,QAAQnuV,GACTuklB,GAGFzulB,EAAIkK,GAIb,SAASwklB,EAAqBxklB,GAC5B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACAkygB,EAAkBlygB,IAElB+7b,EAAQ5tG,QAAQnuV,GACTwklB,GAGFC,EAA0BzklB,GAInC,SAASyklB,EAA0BzklB,GACjC,OAAa,KAATA,GACF+7b,EAAQ5tG,QAAQnuV,GACT0klB,GAGLnyE,GAAmBvygB,IACrB63gB,EAAc4sE,EACPT,EAAahklB,IAGlBwygB,GAAcxygB,IAChB+7b,EAAQ5tG,QAAQnuV,GACTyklB,GAGFF,EAAevklB,GAIxB,SAAS0klB,EAA4B1klB,GACnC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEO40gB,EAAI50gB,GAGA,KAATA,GAAwB,KAATA,GACjB+7b,EAAQ5tG,QAAQnuV,GAChBi2B,EAASj2B,EACF2klB,GAGLpyE,GAAmBvygB,IACrB63gB,EAAc6sE,EACPV,EAAahklB,IAGlBwygB,GAAcxygB,IAChB+7b,EAAQ5tG,QAAQnuV,GACT0klB,IAGT3oJ,EAAQ5tG,QAAQnuV,GAChBi2B,OAAS9oC,EACFy3lB,GAIT,SAASD,EAA4B3klB,GACnC,OAAIA,IAASi2B,GACX8la,EAAQ5tG,QAAQnuV,GACT6klB,GAGI,OAAT7klB,EACK40gB,EAAI50gB,GAGTuygB,GAAmBvygB,IACrB63gB,EAAc8sE,EACPX,EAAahklB,KAGtB+7b,EAAQ5tG,QAAQnuV,GACT2klB,GAIT,SAASE,EAAiC7klB,GACxC,OAAa,KAATA,GAAwB,KAATA,GAAesygB,GAA0BtygB,GACnDuklB,EAAevklB,GAGjB40gB,EAAI50gB,GAIb,SAAS4klB,EAA8B5klB,GACrC,OACW,OAATA,GACS,KAATA,GACS,KA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","file":"static/js/2.1f3a0f04.chunk.js","sourcesContent":["export var IconsManifest = [\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n }\n]","import React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n\n if (value > 0) {\n return 1;\n }\n\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\n\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\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\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar core = require('./core.js');\n\nconst configure = fn => {\n return options => {\n return fn(new core.Client(options), options);\n };\n};\n\nexports.configure = configure;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar modeToString = require('./mode-to-string.js');\nvar parseMtime = require('./parse-mtime.js');\n\nfunction toUrlSearchParams({arg, searchParams, hashAlg, mtime, mode, ...options} = {}) {\n if (searchParams) {\n options = {\n ...options,\n ...searchParams\n };\n }\n if (hashAlg) {\n options.hash = hashAlg;\n }\n if (mtime != null) {\n mtime = parseMtime.parseMtime(mtime);\n options.mtime = mtime.secs;\n options.mtimeNsecs = mtime.nsecs;\n }\n if (mode != null) {\n options.mode = modeToString.modeToString(mode);\n }\n if (options.timeout && !isNaN(options.timeout)) {\n options.timeout = `${ options.timeout }ms`;\n }\n if (arg === undefined || arg === null) {\n arg = [];\n } else if (!Array.isArray(arg)) {\n arg = [arg];\n }\n const urlSearchParams = new URLSearchParams(options);\n arg.forEach(arg => urlSearchParams.append('arg', arg));\n return urlSearchParams;\n}\n\nexports.toUrlSearchParams = toUrlSearchParams;\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import Pipe from 'buffer-pipe';\nimport { Buffer } from 'buffer/';\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param num number\n * @returns Buffer\n */\nexport function safeRead(pipe, num) {\n if (pipe.buffer.length < num) {\n throw new Error('unexpected end of buffer');\n }\n return pipe.read(num);\n}\n/**\n * Encode a positive number (or bigint) into a Buffer. The number will be floored to the\n * nearest integer.\n * @param value The number to encode.\n */\nexport function lebEncode(value) {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n if (value < BigInt(0)) {\n throw new Error('Cannot leb encode negative values.');\n }\n const pipe = new Pipe();\n while (true) {\n const i = Number(value & BigInt(0x7f));\n value /= BigInt(0x80);\n if (value === BigInt(0)) {\n pipe.write([i]);\n break;\n }\n else {\n pipe.write([i | 0x80]);\n }\n }\n return new Buffer(pipe.buffer);\n}\n/**\n * Decode a leb encoded buffer into a bigint. The number will always be positive (does not\n * support signed leb encoding).\n * @param pipe A Buffer containing the leb encoded bits.\n */\nexport function lebDecode(pipe) {\n let weight = BigInt(1);\n let value = BigInt(0);\n let byte;\n do {\n byte = safeRead(pipe, 1)[0];\n value += BigInt(byte & 0x7f).valueOf() * weight;\n weight *= BigInt(128);\n } while (byte >= 0x80);\n return value;\n}\n/**\n * Encode a number (or bigint) into a Buffer, with support for negative numbers. The number\n * will be floored to the nearest integer.\n * @param value The number to encode.\n */\nexport function slebEncode(value) {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n const isNeg = value < BigInt(0);\n if (isNeg) {\n value = -value - BigInt(1);\n }\n const pipe = new Pipe();\n while (true) {\n const i = getLowerBytes(value);\n value /= BigInt(0x80);\n // prettier-ignore\n if ((isNeg && value === BigInt(0) && (i & 0x40) !== 0)\n || (!isNeg && value === BigInt(0) && (i & 0x40) === 0)) {\n pipe.write([i]);\n break;\n }\n else {\n pipe.write([i | 0x80]);\n }\n }\n function getLowerBytes(num) {\n const bytes = num % BigInt(0x80);\n if (isNeg) {\n // We swap the bits here again, and remove 1 to do two's complement.\n return Number(BigInt(0x80) - bytes - BigInt(1));\n }\n else {\n return Number(bytes);\n }\n }\n return new Buffer(pipe.buffer);\n}\n/**\n * Decode a leb encoded buffer into a bigint. The number is decoded with support for negative\n * signed-leb encoding.\n * @param pipe A Buffer containing the signed leb encoded bits.\n */\nexport function slebDecode(pipe) {\n // Get the size of the buffer, then cut a buffer of that size.\n const pipeView = new Uint8Array(pipe.buffer);\n let len = 0;\n for (; len < pipeView.byteLength; len++) {\n if (pipeView[len] < 0x80) {\n // If it's a positive number, we reuse lebDecode.\n if ((pipeView[len] & 0x40) === 0) {\n return lebDecode(pipe);\n }\n break;\n }\n }\n const bytes = new Uint8Array(safeRead(pipe, len + 1));\n let value = BigInt(0);\n for (let i = bytes.byteLength - 1; i >= 0; i--) {\n value = value * BigInt(0x80) + BigInt(0x80 - (bytes[i] & 0x7f) - 1);\n }\n return -value - BigInt(1);\n}\n/**\n *\n * @param value bigint or number\n * @param byteLength number\n * @returns Buffer\n */\nexport function writeUIntLE(value, byteLength) {\n if (BigInt(value) < BigInt(0)) {\n throw new Error('Cannot write negative values.');\n }\n return writeIntLE(value, byteLength);\n}\n/**\n *\n * @param value bigint | number\n * @param byteLength number\n * @returns Buffer\n */\nexport function writeIntLE(value, byteLength) {\n value = BigInt(value);\n const pipe = new Pipe();\n let i = 0;\n let mul = BigInt(256);\n let sub = BigInt(0);\n let byte = Number(value % mul);\n pipe.write([byte]);\n while (++i < byteLength) {\n if (value < 0 && sub === BigInt(0) && byte !== 0) {\n sub = BigInt(1);\n }\n byte = Number((value / mul - sub) % BigInt(256));\n pipe.write([byte]);\n mul *= BigInt(256);\n }\n return new Buffer(pipe.buffer);\n}\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readUIntLE(pipe, byteLength) {\n let val = BigInt(safeRead(pipe, 1)[0]);\n let mul = BigInt(1);\n let i = 0;\n while (++i < byteLength) {\n mul *= BigInt(256);\n const byte = BigInt(safeRead(pipe, 1)[0]);\n val = val + mul * byte;\n }\n return val;\n}\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readIntLE(pipe, byteLength) {\n let val = readUIntLE(pipe, byteLength);\n const mul = BigInt(2) ** (BigInt(8) * BigInt(byteLength - 1) + BigInt(7));\n if (val >= mul) {\n val -= mul * BigInt(2);\n }\n return val;\n}\n//# sourceMappingURL=leb128.js.map","/* eslint-disable @typescript-eslint/no-empty-interface */\n/* eslint-disable jsdoc/require-jsdoc */\nimport { Buffer } from 'buffer/';\nimport { lebEncode } from './utils/leb128';\nexport function blobFromBuffer(b) {\n return b;\n}\nexport function blobFromUint8Array(arr) {\n return Buffer.from(arr);\n}\nexport function blobFromText(text) {\n return Buffer.from(text);\n}\nexport function blobFromUint32Array(arr) {\n return Buffer.from(arr);\n}\nexport function derBlobFromBlob(blob) {\n return blob;\n}\nexport function blobFromHex(hex) {\n return Buffer.from(hex, 'hex');\n}\nexport function blobToHex(blob) {\n return blob.toString('hex');\n}\nexport function blobToUint8Array(blob) {\n return new Uint8Array(blob.slice(0, blob.byteLength));\n}\n/**\n * Create a random Nonce, based on date and a random suffix.\n */\nexport function makeNonce() {\n return lebEncode(BigInt(+Date.now()) * BigInt(100000) + BigInt(Math.floor(Math.random() * 100000)));\n}\n//# sourceMappingURL=types.js.map","/**\n * Hashes a string to a number. Algorithm can be found here:\n * https://caml.inria.fr/pub/papers/garrigue-polymorphic_variants-ml98.pdf\n * @param s\n */\nfunction idlHash(s) {\n const utf8encoder = new TextEncoder();\n const array = utf8encoder.encode(s);\n let h = 0;\n for (const c of array) {\n h = (h * 223 + c) % 2 ** 32;\n }\n return h;\n}\n/**\n *\n * @param label string\n * @returns number representing hashed label\n */\nexport function idlLabelToId(label) {\n if (/^_\\d+_$/.test(label) || /^_0x[0-9a-fA-F]+_$/.test(label)) {\n const num = +label.slice(1, -1);\n if (Number.isSafeInteger(num) && num >= 0 && num < 2 ** 32) {\n return num;\n }\n }\n return idlHash(label);\n}\n//# sourceMappingURL=hash.js.map","// tslint:disable:max-classes-per-file\nimport Pipe from 'buffer-pipe';\nimport { Buffer } from 'buffer/';\nimport { Principal as PrincipalId } from '@dfinity/principal';\nimport { blobFromBuffer } from './types';\nimport { idlLabelToId } from './utils/hash';\nimport { lebDecode, lebEncode, safeRead, slebDecode, slebEncode } from './utils/leb128';\nimport { readIntLE, readUIntLE, writeIntLE, writeUIntLE } from './utils/leb128';\nconst magicNumber = 'DIDL';\nfunction zipWith(xs, ys, f) {\n return xs.map((x, i) => f(x, ys[i]));\n}\n/**\n * An IDL Type Table, which precedes the data in the stream.\n */\nclass TypeTable {\n constructor() {\n // List of types. Needs to be an array as the index needs to be stable.\n this._typs = [];\n this._idx = new Map();\n }\n has(obj) {\n return this._idx.has(obj.name);\n }\n add(type, buf) {\n const idx = this._typs.length;\n this._idx.set(type.name, idx);\n this._typs.push(buf);\n }\n merge(obj, knot) {\n const idx = this._idx.get(obj.name);\n const knotIdx = this._idx.get(knot);\n if (idx === undefined) {\n throw new Error('Missing type index for ' + obj);\n }\n if (knotIdx === undefined) {\n throw new Error('Missing type index for ' + knot);\n }\n this._typs[idx] = this._typs[knotIdx];\n // Delete the type.\n this._typs.splice(knotIdx, 1);\n this._idx.delete(knot);\n }\n encode() {\n const len = lebEncode(this._typs.length);\n const buf = Buffer.concat(this._typs);\n return Buffer.concat([len, buf]);\n }\n indexOf(typeName) {\n if (!this._idx.has(typeName)) {\n throw new Error('Missing type index for ' + typeName);\n }\n return slebEncode(this._idx.get(typeName) || 0);\n }\n}\nexport class Visitor {\n visitType(t, data) {\n throw new Error('Not implemented');\n }\n visitPrimitive(t, data) {\n return this.visitType(t, data);\n }\n visitEmpty(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitBool(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitNull(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitReserved(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitText(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitNumber(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitInt(t, data) {\n return this.visitNumber(t, data);\n }\n visitNat(t, data) {\n return this.visitNumber(t, data);\n }\n visitFloat(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitFixedInt(t, data) {\n return this.visitNumber(t, data);\n }\n visitFixedNat(t, data) {\n return this.visitNumber(t, data);\n }\n visitPrincipal(t, data) {\n return this.visitPrimitive(t, data);\n }\n visitConstruct(t, data) {\n return this.visitType(t, data);\n }\n visitVec(t, ty, data) {\n return this.visitConstruct(t, data);\n }\n visitOpt(t, ty, data) {\n return this.visitConstruct(t, data);\n }\n visitRecord(t, fields, data) {\n return this.visitConstruct(t, data);\n }\n visitTuple(t, components, data) {\n const fields = components.map((ty, i) => [`_${i}_`, ty]);\n return this.visitRecord(t, fields, data);\n }\n visitVariant(t, fields, data) {\n return this.visitConstruct(t, data);\n }\n visitRec(t, ty, data) {\n return this.visitConstruct(ty, data);\n }\n visitFunc(t, data) {\n return this.visitConstruct(t, data);\n }\n visitService(t, data) {\n return this.visitConstruct(t, data);\n }\n}\n/**\n * Represents an IDL type.\n */\nexport class Type {\n /* Display type name */\n display() {\n return this.name;\n }\n valueToString(x) {\n return toReadableString(x);\n }\n /* Implement `T` in the IDL spec, only needed for non-primitive types */\n buildTypeTable(typeTable) {\n if (!typeTable.has(this)) {\n this._buildTypeTableImpl(typeTable);\n }\n }\n}\nexport class PrimitiveType extends Type {\n checkType(t) {\n if (this.name !== t.name) {\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n return t;\n }\n _buildTypeTableImpl(typeTable) {\n // No type table encoding for Primitive types.\n return;\n }\n}\nexport class ConstructType extends Type {\n checkType(t) {\n if (t instanceof RecClass) {\n const ty = t.getType();\n if (typeof ty === 'undefined') {\n throw new Error('type mismatch with uninitialized type');\n }\n return ty;\n }\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n encodeType(typeTable) {\n return typeTable.indexOf(this.name);\n }\n}\n/**\n * Represents an IDL Empty, a type which has no inhabitants.\n * Since no values exist for this type, it cannot be serialised or deserialised.\n * Result types like `Result` should always succeed.\n */\nexport class EmptyClass extends PrimitiveType {\n accept(v, d) {\n return v.visitEmpty(this, d);\n }\n covariant(x) {\n return false;\n }\n encodeValue() {\n throw new Error('Empty cannot appear as a function argument');\n }\n valueToString() {\n throw new Error('Empty cannot appear as a value');\n }\n encodeType() {\n return slebEncode(-17 /* Empty */);\n }\n decodeValue() {\n throw new Error('Empty cannot appear as an output');\n }\n get name() {\n return 'empty';\n }\n}\n/**\n * Represents an IDL Bool\n */\nexport class BoolClass extends PrimitiveType {\n accept(v, d) {\n return v.visitBool(this, d);\n }\n covariant(x) {\n return typeof x === 'boolean';\n }\n encodeValue(x) {\n const buf = Buffer.alloc(1);\n buf.writeInt8(x ? 1 : 0, 0);\n return buf;\n }\n encodeType() {\n return slebEncode(-2 /* Bool */);\n }\n decodeValue(b, t) {\n this.checkType(t);\n const x = safeRead(b, 1).toString('hex');\n if (x === '00') {\n return false;\n }\n else if (x === '01') {\n return true;\n }\n else {\n throw new Error('Boolean value out of range');\n }\n }\n get name() {\n return 'bool';\n }\n}\n/**\n * Represents an IDL Null\n */\nexport class NullClass extends PrimitiveType {\n accept(v, d) {\n return v.visitNull(this, d);\n }\n covariant(x) {\n return x === null;\n }\n encodeValue() {\n return Buffer.alloc(0);\n }\n encodeType() {\n return slebEncode(-1 /* Null */);\n }\n decodeValue(b, t) {\n this.checkType(t);\n return null;\n }\n get name() {\n return 'null';\n }\n}\n/**\n * Represents an IDL Reserved\n */\nexport class ReservedClass extends PrimitiveType {\n accept(v, d) {\n return v.visitReserved(this, d);\n }\n covariant(x) {\n return true;\n }\n encodeValue() {\n return Buffer.alloc(0);\n }\n encodeType() {\n return slebEncode(-16 /* Reserved */);\n }\n decodeValue(b, t) {\n if (t.name !== this.name) {\n t.decodeValue(b, t);\n }\n return null;\n }\n get name() {\n return 'reserved';\n }\n}\nfunction isValidUTF8(buf) {\n return Buffer.compare(new Buffer(buf.toString(), 'utf8'), buf) === 0;\n}\n/**\n * Represents an IDL Text\n */\nexport class TextClass extends PrimitiveType {\n accept(v, d) {\n return v.visitText(this, d);\n }\n covariant(x) {\n return typeof x === 'string';\n }\n encodeValue(x) {\n const buf = Buffer.from(x, 'utf8');\n const len = lebEncode(buf.length);\n return Buffer.concat([len, buf]);\n }\n encodeType() {\n return slebEncode(-15 /* Text */);\n }\n decodeValue(b, t) {\n this.checkType(t);\n const len = lebDecode(b);\n const buf = safeRead(b, Number(len));\n if (!isValidUTF8(buf)) {\n throw new Error('Not valid UTF8 text');\n }\n return buf.toString('utf8');\n }\n get name() {\n return 'text';\n }\n valueToString(x) {\n return '\"' + x + '\"';\n }\n}\n/**\n * Represents an IDL Int\n */\nexport class IntClass extends PrimitiveType {\n accept(v, d) {\n return v.visitInt(this, d);\n }\n covariant(x) {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n return typeof x === 'bigint' || Number.isInteger(x);\n }\n encodeValue(x) {\n return slebEncode(x);\n }\n encodeType() {\n return slebEncode(-4 /* Int */);\n }\n decodeValue(b, t) {\n this.checkType(t);\n return slebDecode(b);\n }\n get name() {\n return 'int';\n }\n valueToString(x) {\n return x.toString();\n }\n}\n/**\n * Represents an IDL Nat\n */\nexport class NatClass extends PrimitiveType {\n accept(v, d) {\n return v.visitNat(this, d);\n }\n covariant(x) {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n return (typeof x === 'bigint' && x >= BigInt(0)) || (Number.isInteger(x) && x >= 0);\n }\n encodeValue(x) {\n return lebEncode(x);\n }\n encodeType() {\n return slebEncode(-3 /* Nat */);\n }\n decodeValue(b, t) {\n this.checkType(t);\n return lebDecode(b);\n }\n get name() {\n return 'nat';\n }\n valueToString(x) {\n return x.toString();\n }\n}\n/**\n * Represents an IDL Float\n */\nexport class FloatClass extends PrimitiveType {\n constructor(_bits) {\n super();\n this._bits = _bits;\n if (_bits !== 32 && _bits !== 64) {\n throw new Error('not a valid float type');\n }\n }\n accept(v, d) {\n return v.visitFloat(this, d);\n }\n covariant(x) {\n return typeof x === 'number' || x instanceof Number;\n }\n encodeValue(x) {\n const buf = Buffer.allocUnsafe(this._bits / 8);\n if (this._bits === 32) {\n buf.writeFloatLE(x, 0);\n }\n else {\n buf.writeDoubleLE(x, 0);\n }\n return buf;\n }\n encodeType() {\n const opcode = this._bits === 32 ? -13 /* Float32 */ : -14 /* Float64 */;\n return slebEncode(opcode);\n }\n decodeValue(b, t) {\n this.checkType(t);\n const x = safeRead(b, this._bits / 8);\n if (this._bits === 32) {\n return x.readFloatLE(0);\n }\n else {\n return x.readDoubleLE(0);\n }\n }\n get name() {\n return 'float' + this._bits;\n }\n valueToString(x) {\n return x.toString();\n }\n}\n/**\n * Represents an IDL fixed-width Int(n)\n */\nexport class FixedIntClass extends PrimitiveType {\n constructor(_bits) {\n super();\n this._bits = _bits;\n }\n accept(v, d) {\n return v.visitFixedInt(this, d);\n }\n covariant(x) {\n const min = BigInt(2) ** BigInt(this._bits - 1) * BigInt(-1);\n const max = BigInt(2) ** BigInt(this._bits - 1) - BigInt(1);\n if (typeof x === 'bigint') {\n return x >= min && x <= max;\n }\n else if (Number.isInteger(x)) {\n const v = BigInt(x);\n return v >= min && v <= max;\n }\n else {\n return false;\n }\n }\n encodeValue(x) {\n return writeIntLE(x, this._bits / 8);\n }\n encodeType() {\n const offset = Math.log2(this._bits) - 3;\n return slebEncode(-9 - offset);\n }\n decodeValue(b, t) {\n this.checkType(t);\n const num = readIntLE(b, this._bits / 8);\n if (this._bits <= 32) {\n return Number(num);\n }\n else {\n return num;\n }\n }\n get name() {\n return `int${this._bits}`;\n }\n valueToString(x) {\n return x.toString();\n }\n}\n/**\n * Represents an IDL fixed-width Nat(n)\n */\nexport class FixedNatClass extends PrimitiveType {\n constructor(bits) {\n super();\n this.bits = bits;\n }\n accept(v, d) {\n return v.visitFixedNat(this, d);\n }\n covariant(x) {\n const max = BigInt(2) ** BigInt(this.bits);\n if (typeof x === 'bigint' && x >= BigInt(0)) {\n return x < max;\n }\n else if (Number.isInteger(x) && x >= 0) {\n const v = BigInt(x);\n return v < max;\n }\n else {\n return false;\n }\n }\n encodeValue(x) {\n return writeUIntLE(x, this.bits / 8);\n }\n encodeType() {\n const offset = Math.log2(this.bits) - 3;\n return slebEncode(-5 - offset);\n }\n decodeValue(b, t) {\n this.checkType(t);\n const num = readUIntLE(b, this.bits / 8);\n if (this.bits <= 32) {\n return Number(num);\n }\n else {\n return num;\n }\n }\n get name() {\n return `nat${this.bits}`;\n }\n valueToString(x) {\n return x.toString();\n }\n}\n/**\n * Represents an IDL Array\n * @param {Type} t\n */\nexport class VecClass extends ConstructType {\n constructor(_type) {\n super();\n this._type = _type;\n // If true, this vector is really a blob and we can just use memcpy.\n this._blobOptimization = false;\n if (_type instanceof FixedNatClass && _type.bits === 8) {\n this._blobOptimization = true;\n }\n }\n accept(v, d) {\n return v.visitVec(this, this._type, d);\n }\n covariant(x) {\n return Array.isArray(x) && x.every(v => this._type.covariant(v));\n }\n encodeValue(x) {\n const len = lebEncode(x.length);\n if (this._blobOptimization) {\n return Buffer.concat([len, Buffer.from(x)]);\n }\n return Buffer.concat([len, ...x.map(d => this._type.encodeValue(d))]);\n }\n _buildTypeTableImpl(typeTable) {\n this._type.buildTypeTable(typeTable);\n const opCode = slebEncode(-19 /* Vector */);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, Buffer.concat([opCode, buffer]));\n }\n decodeValue(b, t) {\n const vec = this.checkType(t);\n if (!(vec instanceof VecClass)) {\n throw new Error('Not a vector type');\n }\n const len = Number(lebDecode(b));\n if (this._blobOptimization) {\n return [...new Uint8Array(b.read(len))];\n }\n const rets = [];\n for (let i = 0; i < len; i++) {\n rets.push(this._type.decodeValue(b, vec._type));\n }\n return rets;\n }\n get name() {\n return `vec ${this._type.name}`;\n }\n display() {\n return `vec ${this._type.display()}`;\n }\n valueToString(x) {\n const elements = x.map(e => this._type.valueToString(e));\n return 'vec {' + elements.join('; ') + '}';\n }\n}\n/**\n * Represents an IDL Option\n * @param {Type} t\n */\nexport class OptClass extends ConstructType {\n constructor(_type) {\n super();\n this._type = _type;\n }\n accept(v, d) {\n return v.visitOpt(this, this._type, d);\n }\n covariant(x) {\n return Array.isArray(x) && (x.length === 0 || (x.length === 1 && this._type.covariant(x[0])));\n }\n encodeValue(x) {\n if (x.length === 0) {\n return Buffer.from([0]);\n }\n else {\n return Buffer.concat([Buffer.from([1]), this._type.encodeValue(x[0])]);\n }\n }\n _buildTypeTableImpl(typeTable) {\n this._type.buildTypeTable(typeTable);\n const opCode = slebEncode(-18 /* Opt */);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, Buffer.concat([opCode, buffer]));\n }\n decodeValue(b, t) {\n const opt = this.checkType(t);\n if (!(opt instanceof OptClass)) {\n throw new Error('Not an option type');\n }\n const len = safeRead(b, 1).toString('hex');\n if (len === '00') {\n return [];\n }\n else if (len === '01') {\n return [this._type.decodeValue(b, opt._type)];\n }\n else {\n throw new Error('Not an option value');\n }\n }\n get name() {\n return `opt ${this._type.name}`;\n }\n display() {\n return `opt ${this._type.display()}`;\n }\n valueToString(x) {\n if (x.length === 0) {\n return 'null';\n }\n else {\n return `opt ${this._type.valueToString(x[0])}`;\n }\n }\n}\n/**\n * Represents an IDL Record\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class RecordClass extends ConstructType {\n constructor(fields = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n accept(v, d) {\n return v.visitRecord(this, this._fields, d);\n }\n tryAsTuple() {\n const res = [];\n for (let i = 0; i < this._fields.length; i++) {\n const [key, type] = this._fields[i];\n if (key !== `_${i}_`) {\n return null;\n }\n res.push(type);\n }\n return res;\n }\n covariant(x) {\n return (typeof x === 'object' &&\n this._fields.every(([k, t]) => {\n // eslint-disable-next-line\n if (!x.hasOwnProperty(k)) {\n throw new Error(`Record is missing key \"${k}\".`);\n }\n return t.covariant(x[k]);\n }));\n }\n encodeValue(x) {\n const values = this._fields.map(([key]) => x[key]);\n const bufs = zipWith(this._fields, values, ([, c], d) => c.encodeValue(d));\n return Buffer.concat(bufs);\n }\n _buildTypeTableImpl(T) {\n this._fields.forEach(([_, value]) => value.buildTypeTable(T));\n const opCode = slebEncode(-20 /* Record */);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) => Buffer.concat([lebEncode(idlLabelToId(key)), value.encodeType(T)]));\n T.add(this, Buffer.concat([opCode, len, Buffer.concat(fields)]));\n }\n decodeValue(b, t) {\n const record = this.checkType(t);\n if (!(record instanceof RecordClass)) {\n throw new Error('Not a record type');\n }\n const x = {};\n let idx = 0;\n for (const [hash, type] of record._fields) {\n if (idx >= this._fields.length || idlLabelToId(this._fields[idx][0]) !== idlLabelToId(hash)) {\n // skip field\n type.decodeValue(b, type);\n continue;\n }\n const [expectKey, expectType] = this._fields[idx];\n x[expectKey] = expectType.decodeValue(b, type);\n idx++;\n }\n if (idx < this._fields.length) {\n throw new Error('Cannot find field ' + this._fields[idx][0]);\n }\n return x;\n }\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `record {${fields.join('; ')}}`;\n }\n display() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.display());\n return `record {${fields.join('; ')}}`;\n }\n valueToString(x) {\n const values = this._fields.map(([key]) => x[key]);\n const fields = zipWith(this._fields, values, ([k, c], d) => k + '=' + c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n/**\n * Represents Tuple, a syntactic sugar for Record.\n * @param {Type} components\n */\nexport class TupleClass extends RecordClass {\n constructor(_components) {\n const x = {};\n _components.forEach((e, i) => (x['_' + i + '_'] = e));\n super(x);\n this._components = _components;\n }\n accept(v, d) {\n return v.visitTuple(this, this._components, d);\n }\n covariant(x) {\n // `>=` because tuples can be covariant when encoded.\n return (Array.isArray(x) &&\n x.length >= this._fields.length &&\n this._components.every((t, i) => t.covariant(x[i])));\n }\n encodeValue(x) {\n const bufs = zipWith(this._components, x, (c, d) => c.encodeValue(d));\n return Buffer.concat(bufs);\n }\n decodeValue(b, t) {\n const tuple = this.checkType(t);\n if (!(tuple instanceof TupleClass)) {\n throw new Error('not a tuple type');\n }\n if (tuple._components.length < this._components.length) {\n throw new Error('tuple mismatch');\n }\n const res = [];\n for (const [i, wireType] of tuple._components.entries()) {\n if (i >= this._components.length) {\n // skip value\n wireType.decodeValue(b, wireType);\n }\n else {\n res.push(this._components[i].decodeValue(b, wireType));\n }\n }\n return res;\n }\n display() {\n const fields = this._components.map(value => value.display());\n return `record {${fields.join('; ')}}`;\n }\n valueToString(values) {\n const fields = zipWith(this._components, values, (c, d) => c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n/**\n * Represents an IDL Variant\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class VariantClass extends ConstructType {\n constructor(fields = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n accept(v, d) {\n return v.visitVariant(this, this._fields, d);\n }\n covariant(x) {\n return (typeof x === 'object' &&\n Object.entries(x).length === 1 &&\n this._fields.every(([k, v]) => {\n // eslint-disable-next-line\n return !x.hasOwnProperty(k) || v.covariant(x[k]);\n }));\n }\n encodeValue(x) {\n for (let i = 0; i < this._fields.length; i++) {\n const [name, type] = this._fields[i];\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const idx = lebEncode(i);\n const buf = type.encodeValue(x[name]);\n return Buffer.concat([idx, buf]);\n }\n }\n throw Error('Variant has no data: ' + x);\n }\n _buildTypeTableImpl(typeTable) {\n this._fields.forEach(([, type]) => {\n type.buildTypeTable(typeTable);\n });\n const opCode = slebEncode(-21 /* Variant */);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) => Buffer.concat([lebEncode(idlLabelToId(key)), value.encodeType(typeTable)]));\n typeTable.add(this, Buffer.concat([opCode, len, ...fields]));\n }\n decodeValue(b, t) {\n const variant = this.checkType(t);\n if (!(variant instanceof VariantClass)) {\n throw new Error('Not a variant type');\n }\n const idx = Number(lebDecode(b));\n if (idx >= variant._fields.length) {\n throw Error('Invalid variant index: ' + idx);\n }\n const [wireHash, wireType] = variant._fields[idx];\n for (const [key, expectType] of this._fields) {\n if (idlLabelToId(wireHash) === idlLabelToId(key)) {\n const value = expectType.decodeValue(b, wireType);\n return { [key]: value };\n }\n }\n throw new Error('Cannot find field hash ' + wireHash);\n }\n get name() {\n const fields = this._fields.map(([key, type]) => key + ':' + type.name);\n return `variant {${fields.join('; ')}}`;\n }\n display() {\n const fields = this._fields.map(([key, type]) => key + (type.name === 'null' ? '' : `:${type.display()}`));\n return `variant {${fields.join('; ')}}`;\n }\n valueToString(x) {\n for (const [name, type] of this._fields) {\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const value = type.valueToString(x[name]);\n if (value === 'null') {\n return `variant {${name}}`;\n }\n else {\n return `variant {${name}=${value}}`;\n }\n }\n }\n throw new Error('Variant has no data: ' + x);\n }\n}\n/**\n * Represents a reference to an IDL type, used for defining recursive data\n * types.\n */\nexport class RecClass extends ConstructType {\n constructor() {\n super(...arguments);\n this._id = RecClass._counter++;\n this._type = undefined;\n }\n accept(v, d) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return v.visitRec(this, this._type, d);\n }\n fill(t) {\n this._type = t;\n }\n getType() {\n return this._type;\n }\n covariant(x) {\n return this._type ? this._type.covariant(x) : false;\n }\n encodeValue(x) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.encodeValue(x);\n }\n _buildTypeTableImpl(typeTable) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n typeTable.add(this, Buffer.alloc(0));\n this._type.buildTypeTable(typeTable);\n typeTable.merge(this, this._type.name);\n }\n decodeValue(b, t) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.decodeValue(b, t);\n }\n get name() {\n return `rec_${this._id}`;\n }\n display() {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return `μ${this.name}.${this._type.name}`;\n }\n valueToString(x) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.valueToString(x);\n }\n}\nRecClass._counter = 0;\nfunction decodePrincipalId(b) {\n const x = safeRead(b, 1).toString('hex');\n if (x !== '01') {\n throw new Error('Cannot decode principal');\n }\n const len = Number(lebDecode(b));\n const hex = safeRead(b, len).toString('hex').toUpperCase();\n return PrincipalId.fromHex(hex);\n}\n/**\n * Represents an IDL principal reference\n */\nexport class PrincipalClass extends PrimitiveType {\n accept(v, d) {\n return v.visitPrincipal(this, d);\n }\n covariant(x) {\n return x && x._isPrincipal;\n }\n encodeValue(x) {\n const hex = x.toHex();\n const buf = Buffer.from(hex, 'hex');\n const len = lebEncode(buf.length);\n return Buffer.concat([Buffer.from([1]), len, buf]);\n }\n encodeType() {\n return slebEncode(-24 /* Principal */);\n }\n decodeValue(b, t) {\n this.checkType(t);\n return decodePrincipalId(b);\n }\n get name() {\n return 'principal';\n }\n valueToString(x) {\n return `${this.name} \"${x.toText()}\"`;\n }\n}\n/**\n * Represents an IDL function reference.\n * @param argTypes Argument types.\n * @param retTypes Return types.\n * @param annotations Function annotations.\n */\nexport class FuncClass extends ConstructType {\n constructor(argTypes, retTypes, annotations = []) {\n super();\n this.argTypes = argTypes;\n this.retTypes = retTypes;\n this.annotations = annotations;\n }\n static argsToString(types, v) {\n if (types.length !== v.length) {\n throw new Error('arity mismatch');\n }\n return '(' + types.map((t, i) => t.valueToString(v[i])).join(', ') + ')';\n }\n accept(v, d) {\n return v.visitFunc(this, d);\n }\n covariant(x) {\n return (Array.isArray(x) && x.length === 2 && x[0] && x[0]._isPrincipal && typeof x[1] === 'string');\n }\n encodeValue(x) {\n const hex = x[0].toHex();\n const buf = Buffer.from(hex, 'hex');\n const len = lebEncode(buf.length);\n const canister = Buffer.concat([Buffer.from([1]), len, buf]);\n const method = Buffer.from(x[1], 'utf8');\n const methodLen = lebEncode(method.length);\n return Buffer.concat([Buffer.from([1]), canister, methodLen, method]);\n }\n _buildTypeTableImpl(T) {\n this.argTypes.forEach(arg => arg.buildTypeTable(T));\n this.retTypes.forEach(arg => arg.buildTypeTable(T));\n const opCode = slebEncode(-22 /* Func */);\n const argLen = lebEncode(this.argTypes.length);\n const args = Buffer.concat(this.argTypes.map(arg => arg.encodeType(T)));\n const retLen = lebEncode(this.retTypes.length);\n const rets = Buffer.concat(this.retTypes.map(arg => arg.encodeType(T)));\n const annLen = lebEncode(this.annotations.length);\n const anns = Buffer.concat(this.annotations.map(a => this.encodeAnnotation(a)));\n T.add(this, Buffer.concat([opCode, argLen, args, retLen, rets, annLen, anns]));\n }\n decodeValue(b) {\n const x = safeRead(b, 1).toString('hex');\n if (x !== '01') {\n throw new Error('Cannot decode function reference');\n }\n const canister = decodePrincipalId(b);\n const mLen = Number(lebDecode(b));\n const buf = safeRead(b, mLen);\n if (!isValidUTF8(buf)) {\n throw new Error('Not valid UTF8 method name');\n }\n const method = buf.toString('utf8');\n return [canister, method];\n }\n get name() {\n const args = this.argTypes.map(arg => arg.name).join(', ');\n const rets = this.retTypes.map(arg => arg.name).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) -> (${rets})${annon}`;\n }\n valueToString([principal, str]) {\n return `func \"${principal.toText()}\".${str}`;\n }\n display() {\n const args = this.argTypes.map(arg => arg.display()).join(', ');\n const rets = this.retTypes.map(arg => arg.display()).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) → (${rets})${annon}`;\n }\n encodeAnnotation(ann) {\n if (ann === 'query') {\n return Buffer.from([1]);\n }\n else if (ann === 'oneway') {\n return Buffer.from([2]);\n }\n else {\n throw new Error('Illeagal function annotation');\n }\n }\n}\nexport class ServiceClass extends ConstructType {\n constructor(fields) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n accept(v, d) {\n return v.visitService(this, d);\n }\n covariant(x) {\n return x && x._isPrincipal;\n }\n encodeValue(x) {\n const hex = x.toHex();\n const buf = Buffer.from(hex, 'hex');\n const len = lebEncode(buf.length);\n return Buffer.concat([Buffer.from([1]), len, buf]);\n }\n _buildTypeTableImpl(T) {\n this._fields.forEach(([_, func]) => func.buildTypeTable(T));\n const opCode = slebEncode(-23 /* Service */);\n const len = lebEncode(this._fields.length);\n const meths = this._fields.map(([label, func]) => {\n const labelBuf = Buffer.from(label, 'utf8');\n const labelLen = lebEncode(labelBuf.length);\n return Buffer.concat([labelLen, labelBuf, func.encodeType(T)]);\n });\n T.add(this, Buffer.concat([opCode, len, Buffer.concat(meths)]));\n }\n decodeValue(b) {\n return decodePrincipalId(b);\n }\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `service {${fields.join('; ')}}`;\n }\n valueToString(x) {\n return `service \"${x.toText()}\"`;\n }\n}\n/**\n *\n * @param x\n * @returns {string}\n */\nfunction toReadableString(x) {\n return JSON.stringify(x, (_key, value) => typeof value === 'bigint' ? `BigInt(${value})` : value);\n}\n/**\n * Encode a array of values\n * @returns {Buffer} serialised value\n */\nexport function encode(argTypes, args) {\n if (args.length < argTypes.length) {\n throw Error('Wrong number of message arguments');\n }\n const typeTable = new TypeTable();\n argTypes.forEach(t => t.buildTypeTable(typeTable));\n const magic = Buffer.from(magicNumber, 'utf8');\n const table = typeTable.encode();\n const len = lebEncode(args.length);\n const typs = Buffer.concat(argTypes.map(t => t.encodeType(typeTable)));\n const vals = Buffer.concat(zipWith(argTypes, args, (t, x) => {\n if (!t.covariant(x)) {\n throw new Error(`Invalid ${t.display()} argument: ${toReadableString(x)}`);\n }\n return t.encodeValue(x);\n }));\n return blobFromBuffer(Buffer.concat([magic, table, len, typs, vals]));\n}\n/**\n * Decode a binary value\n * @param retTypes - Types expected in the buffer.\n * @param bytes - hex-encoded string, or buffer.\n * @returns Value deserialised to JS type\n */\nexport function decode(retTypes, bytes) {\n const b = new Pipe(bytes);\n if (bytes.byteLength < magicNumber.length) {\n throw new Error('Message length smaller than magic number');\n }\n const magic = safeRead(b, magicNumber.length).toString();\n if (magic !== magicNumber) {\n throw new Error('Wrong magic number: ' + magic);\n }\n function readTypeTable(pipe) {\n const typeTable = [];\n const len = Number(lebDecode(pipe));\n for (let i = 0; i < len; i++) {\n const ty = Number(slebDecode(pipe));\n switch (ty) {\n case -18 /* Opt */:\n case -19 /* Vector */: {\n const t = Number(slebDecode(pipe));\n typeTable.push([ty, t]);\n break;\n }\n case -20 /* Record */:\n case -21 /* Variant */: {\n const fields = [];\n let objectLength = Number(lebDecode(pipe));\n let prevHash;\n while (objectLength--) {\n const hash = Number(lebDecode(pipe));\n if (hash >= Math.pow(2, 32)) {\n throw new Error('field id out of 32-bit range');\n }\n if (typeof prevHash === 'number' && prevHash >= hash) {\n throw new Error('field id collision or not sorted');\n }\n prevHash = hash;\n const t = Number(slebDecode(pipe));\n fields.push([hash, t]);\n }\n typeTable.push([ty, fields]);\n break;\n }\n case -22 /* Func */: {\n for (let k = 0; k < 2; k++) {\n let funcLength = Number(lebDecode(pipe));\n while (funcLength--) {\n slebDecode(pipe);\n }\n }\n const annLen = Number(lebDecode(pipe));\n safeRead(pipe, annLen);\n typeTable.push([ty, undefined]);\n break;\n }\n case -23 /* Service */: {\n let servLength = Number(lebDecode(pipe));\n while (servLength--) {\n const l = Number(lebDecode(pipe));\n safeRead(pipe, l);\n slebDecode(pipe);\n }\n typeTable.push([ty, undefined]);\n break;\n }\n default:\n throw new Error('Illegal op_code: ' + ty);\n }\n }\n const rawList = [];\n const length = Number(lebDecode(pipe));\n for (let i = 0; i < length; i++) {\n rawList.push(Number(slebDecode(pipe)));\n }\n return [typeTable, rawList];\n }\n const [rawTable, rawTypes] = readTypeTable(b);\n if (rawTypes.length < retTypes.length) {\n throw new Error('Wrong number of return values');\n }\n const table = rawTable.map(_ => Rec());\n function getType(t) {\n if (t < -24) {\n throw new Error('future value not supported');\n }\n if (t < 0) {\n switch (t) {\n case -1:\n return Null;\n case -2:\n return Bool;\n case -3:\n return Nat;\n case -4:\n return Int;\n case -5:\n return Nat8;\n case -6:\n return Nat16;\n case -7:\n return Nat32;\n case -8:\n return Nat64;\n case -9:\n return Int8;\n case -10:\n return Int16;\n case -11:\n return Int32;\n case -12:\n return Int64;\n case -13:\n return Float32;\n case -14:\n return Float64;\n case -15:\n return Text;\n case -16:\n return Reserved;\n case -17:\n return Empty;\n case -24:\n return Principal;\n default:\n throw new Error('Illegal op_code: ' + t);\n }\n }\n if (t >= rawTable.length) {\n throw new Error('type index out of range');\n }\n return table[t];\n }\n function buildType(entry) {\n switch (entry[0]) {\n case -19 /* Vector */: {\n const ty = getType(entry[1]);\n return Vec(ty);\n }\n case -18 /* Opt */: {\n const ty = getType(entry[1]);\n return Opt(ty);\n }\n case -20 /* Record */: {\n const fields = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n const record = Record(fields);\n const tuple = record.tryAsTuple();\n if (Array.isArray(tuple)) {\n return Tuple(...tuple);\n }\n else {\n return record;\n }\n }\n case -21 /* Variant */: {\n const fields = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n return Variant(fields);\n }\n case -22 /* Func */: {\n return Func([], [], []);\n }\n case -23 /* Service */: {\n return Service({});\n }\n default:\n throw new Error('Illegal op_code: ' + entry[0]);\n }\n }\n rawTable.forEach((entry, i) => {\n const t = buildType(entry);\n table[i].fill(t);\n });\n const types = rawTypes.map(t => getType(t));\n const output = retTypes.map((t, i) => {\n return t.decodeValue(b, types[i]);\n });\n // skip unused values\n for (let ind = retTypes.length; ind < types.length; ind++) {\n types[ind].decodeValue(b, types[ind]);\n }\n if (b.buffer.length > 0) {\n throw new Error('decode: Left-over bytes');\n }\n return output;\n}\n// Export Types instances.\nexport const Empty = new EmptyClass();\nexport const Reserved = new ReservedClass();\nexport const Bool = new BoolClass();\nexport const Null = new NullClass();\nexport const Text = new TextClass();\nexport const Int = new IntClass();\nexport const Nat = new NatClass();\nexport const Float32 = new FloatClass(32);\nexport const Float64 = new FloatClass(64);\nexport const Int8 = new FixedIntClass(8);\nexport const Int16 = new FixedIntClass(16);\nexport const Int32 = new FixedIntClass(32);\nexport const Int64 = new FixedIntClass(64);\nexport const Nat8 = new FixedNatClass(8);\nexport const Nat16 = new FixedNatClass(16);\nexport const Nat32 = new FixedNatClass(32);\nexport const Nat64 = new FixedNatClass(64);\nexport const Principal = new PrincipalClass();\n/**\n *\n * @param types array of any types\n * @returns TupleClass from those types\n */\nexport function Tuple(...types) {\n return new TupleClass(types);\n}\n/**\n *\n * @param t IDL Type\n * @returns VecClass from that type\n */\nexport function Vec(t) {\n return new VecClass(t);\n}\n/**\n *\n * @param t IDL Type\n * @returns OptClass of Type\n */\nexport function Opt(t) {\n return new OptClass(t);\n}\n/**\n *\n * @param t Record of string and IDL Type\n * @returns RecordClass of string and Type\n */\nexport function Record(t) {\n return new RecordClass(t);\n}\n/**\n *\n * @param fields Record of string and IDL Type\n * @returns VariantClass\n */\nexport function Variant(fields) {\n return new VariantClass(fields);\n}\n/**\n *\n * @returns new RecClass\n */\nexport function Rec() {\n return new RecClass();\n}\n/**\n *\n * @param args array of IDL Types\n * @param ret array of IDL Types\n * @param annotations array of strings, [] by default\n * @returns new FuncClass\n */\nexport function Func(args, ret, annotations = []) {\n return new FuncClass(args, ret, annotations);\n}\n/**\n *\n * @param t Record of string and FuncClass\n * @returns ServiceClass\n */\nexport function Service(t) {\n return new ServiceClass(t);\n}\n//# sourceMappingURL=idl.js.map","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Type constant for Firebase Storage.\n */\nexport const STORAGE_TYPE = 'storage';\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst stringToByteArray = function (str: string): number[] {\n // TODO(user): Use native implementations if/when available\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (\n (c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00\n ) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes: number[]): string {\n // TODO(user): Use native implementations if/when available\n const out: string[] = [];\n let pos = 0,\n c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u =\n (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(\n ((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)\n );\n }\n }\n return out.join('');\n};\n\ninterface Base64 {\n byteToCharMap_: { [key: number]: string } | null;\n charToByteMap_: { [key: string]: number } | null;\n byteToCharMapWebSafe_: { [key: number]: string } | null;\n charToByteMapWebSafe_: { [key: string]: number } | null;\n ENCODED_VALS_BASE: string;\n readonly ENCODED_VALS: string;\n readonly ENCODED_VALS_WEBSAFE: string;\n HAS_NATIVE_SUPPORT: boolean;\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string;\n encodeString(input: string, webSafe?: boolean): string;\n decodeString(input: string, webSafe: boolean): string;\n decodeStringToByteArray(input: string, webSafe: boolean): number[];\n init_(): void;\n}\n\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\nexport const base64: Base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE:\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_!\n : this.byteToCharMap_!;\n\n const output = [];\n\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(\n byteToCharMap[outByte1],\n byteToCharMap[outByte2],\n byteToCharMap[outByte3],\n byteToCharMap[outByte4]\n );\n }\n\n return output.join('');\n },\n\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input: string, webSafe?: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input: string, webSafe: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input: string, webSafe: boolean): number[] {\n this.init_();\n\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_!\n : this.charToByteMap_!;\n\n const output: number[] = [];\n\n for (let i = 0; i < input.length; ) {\n const byte1 = charToByteMap[input.charAt(i++)];\n\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw Error();\n }\n\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n\n/**\n * URL-safe base64 encoding\n */\nexport const base64Encode = function (str: string): string {\n const utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nexport const base64urlEncodeWithoutPadding = function (str: string): string {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nexport const base64Decode = function (str: string): string | null {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class Deferred {\n promise: Promise;\n reject: (value?: unknown) => void = () => {};\n resolve: (value?: unknown) => void = () => {};\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as (value?: unknown) => void;\n this.reject = reject as (value?: unknown) => void;\n });\n }\n\n /**\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(\n callback?: (error?: unknown, value?: unknown) => void\n ): (error: unknown, value?: unknown) => void {\n return (error, value?) => {\n if (error) {\n this.reject(error);\n } else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => {});\n\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { base64urlEncodeWithoutPadding } from './crypt';\n\n// Firebase Auth tokens contain snake_case claims following the JWT standard / convention.\n/* eslint-disable camelcase */\n\nexport type FirebaseSignInProvider =\n | 'custom'\n | 'email'\n | 'password'\n | 'phone'\n | 'anonymous'\n | 'google.com'\n | 'facebook.com'\n | 'github.com'\n | 'twitter.com'\n | 'microsoft.com'\n | 'apple.com';\n\ninterface FirebaseIdToken {\n // Always set to https://securetoken.google.com/PROJECT_ID\n iss: string;\n\n // Always set to PROJECT_ID\n aud: string;\n\n // The user's unique ID\n sub: string;\n\n // The token issue time, in seconds since epoch\n iat: number;\n\n // The token expiry time, normally 'iat' + 3600\n exp: number;\n\n // The user's unique ID. Must be equal to 'sub'\n user_id: string;\n\n // The time the user authenticated, normally 'iat'\n auth_time: number;\n\n // The sign in provider, only set when the provider is 'anonymous'\n provider_id?: 'anonymous';\n\n // The user's primary email\n email?: string;\n\n // The user's email verification status\n email_verified?: boolean;\n\n // The user's primary phone number\n phone_number?: string;\n\n // The user's display name\n name?: string;\n\n // The user's profile photo URL\n picture?: string;\n\n // Information on all identities linked to this user\n firebase: {\n // The primary sign-in provider\n sign_in_provider: FirebaseSignInProvider;\n\n // A map of providers to the user's list of unique identifiers from\n // each provider\n identities?: { [provider in FirebaseSignInProvider]?: string[] };\n };\n\n // Custom claims set by the developer\n [claim: string]: unknown;\n\n uid?: never; // Try to catch a common mistake of \"uid\" (should be \"sub\" instead).\n}\n\nexport type EmulatorMockTokenOptions = ({ user_id: string } | { sub: string }) &\n Partial;\n\nexport function createMockUserToken(\n token: EmulatorMockTokenOptions,\n projectId?: string\n): string {\n if (token.uid) {\n throw new Error(\n 'The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.'\n );\n }\n // Unsecured JWTs use \"none\" as the algorithm.\n const header = {\n alg: 'none',\n type: 'JWT'\n };\n\n const project = projectId || 'demo-project';\n const iat = token.iat || 0;\n const sub = token.sub || token.user_id;\n if (!sub) {\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\n }\n\n const payload: FirebaseIdToken = {\n // Set all required fields to decent defaults\n iss: `https://securetoken.google.com/${project}`,\n aud: project,\n iat,\n exp: iat + 3600,\n auth_time: iat,\n sub,\n user_id: sub,\n firebase: {\n sign_in_provider: 'custom',\n identities: {}\n },\n\n // Override with user options\n ...token\n };\n\n // Unsecured JWTs use the empty string as a signature.\n const signature = '';\n return [\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\n signature\n ].join('.');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CONSTANTS } from './constants';\n\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nexport function getUA(): string {\n if (\n typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string'\n ) {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nexport function isMobileCordova(): boolean {\n return (\n typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())\n );\n}\n\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nexport function isNode(): boolean {\n try {\n return (\n Object.prototype.toString.call(global.process) === '[object process]'\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Detect Browser Environment\n */\nexport function isBrowser(): boolean {\n return typeof self === 'object' && self.self === self;\n}\n\n/**\n * Detect browser extensions (Chrome and Firefox at least).\n */\ninterface BrowserRuntime {\n id?: unknown;\n}\ndeclare const chrome: { runtime?: BrowserRuntime };\ndeclare const browser: { runtime?: BrowserRuntime };\nexport function isBrowserExtension(): boolean {\n const runtime =\n typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nexport function isReactNative(): boolean {\n return (\n typeof navigator === 'object' && navigator['product'] === 'ReactNative'\n );\n}\n\n/** Detects Electron apps. */\nexport function isElectron(): boolean {\n return getUA().indexOf('Electron/') >= 0;\n}\n\n/** Detects Internet Explorer. */\nexport function isIE(): boolean {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n\n/** Detects Universal Windows Platform apps. */\nexport function isUWP(): boolean {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nexport function isNodeSdk(): boolean {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n\n/** Returns true if we are running in Safari. */\nexport function isSafari(): boolean {\n return (\n !isNode() &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n );\n}\n\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nexport function isIndexedDBAvailable(): boolean {\n return typeof indexedDB === 'object';\n}\n\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nexport function validateIndexedDBOpenable(): Promise {\n return new Promise((resolve, reject) => {\n try {\n let preExist: boolean = true;\n const DB_CHECK_NAME =\n 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nexport function areCookiesEnabled(): boolean {\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n */\nexport function getGlobal(): typeof globalThis {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\n\nimport { SpanStatusType } from './span';\nimport { getActiveTransaction } from './utils';\n\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation(): void {\n addInstrumentationHandler('error', errorCallback);\n addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback(): void {\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const status: SpanStatusType = 'internal_error';\n logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function contains(obj: T, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function safeGet(\n obj: T,\n key: K\n): T[K] | undefined {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nexport function isEmpty(obj: object): obj is {} {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function map(\n obj: { [key in K]: V },\n fn: (value: V, key: K, obj: { [key in K]: V }) => U,\n contextObj?: unknown\n): { [key in K]: U } {\n const res: Partial<{ [key in K]: U }> = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res as { [key in K]: U };\n}\n\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nexport function deepEqual(a: object, b: object): boolean {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n\n const aProp = (a as Record)[k];\n const bProp = (b as Record)[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n } else if (aProp !== bProp) {\n return false;\n }\n }\n\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isObject(thing: unknown): thing is object {\n return thing !== null && typeof thing === 'object';\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Compat {\n _delegate: T;\n}\n\nexport function getModularInstance(\n service: Compat | ExpService\n): ExpService {\n if (service && (service as Compat)._delegate) {\n return (service as Compat)._delegate;\n } else {\n return service as ExpService;\n }\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport { Legend } from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils'; // TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { filterProps } from './types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\n\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData; // 支持Date类型的x轴\n\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend.displayName);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\n\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\n\nexport var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n\n return newRes;\n }, []);\n }\n\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0); // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, 'ErrorBar').filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\n\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\n\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\n};\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\n\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n\n\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n } // When axis has duplicated text, serial numbers are used to generate scale\n\n\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\n\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n\n if (!domain || domain.length <= 2) {\n return;\n }\n\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n /* eslint-disable prefer-destructuring */\n\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n\n }\n }\n};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n } // reversing items to affect render order (for layering)\n\n\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\n};\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\n\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n\n if (!domain.length) {\n return null;\n }\n\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\n\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import _isObject from \"lodash/isObject\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { isValidElement } from 'react';\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nvar SVGElementPropKeys = ['className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style', 'target', 'type', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'points', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture']; // Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\nexport var filterProps = function filterProps(props, includeEvents, isSvg) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n // viewBox only exist in \n if (SVGElementPropKeys.includes(key) || isSvg && SVGContainerPropKeys.includes(key) || includeEvents && EventKeys.includes(key)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n\n var inputProps = props;\n\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n\n if (!_isObject(inputProps)) {\n return null;\n }\n\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\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","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar varint = require('./varint.js');\nvar digest = require('./hashes/digest.js');\nvar base58 = require('./bases/base58.js');\nvar base32 = require('./bases/base32.js');\nvar bytes = require('./bytes.js');\n\nclass CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest: digest$1} = this.multihash;\n const multihash = digest.create(code, digest$1);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58.base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest$1 = digest.decode(multihash);\n return CID.create(version, code, digest$1);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes$1) {\n const specs = CID.inspectBytes(bytes$1);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = bytes.coerce(bytes$1.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest$1 = new digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest$1) : CID.createV1(specs.codec, digest$1);\n return [\n cid,\n bytes$1.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58.base58btc;\n return [\n base58.base58btc.prefix,\n decoder.decode(`${ base58.base58btc.prefix }${ source }`)\n ];\n }\n case base58.base58btc.prefix: {\n const decoder = base || base58.base58btc;\n return [\n base58.base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.base32.prefix: {\n const decoder = base || base32.base32;\n return [\n base32.base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58.base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;\n\nexports.CID = CID;\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","import { Principal } from '@dfinity/principal';\nimport { DelegationChain } from '@dfinity/identity';\nconst DEFAULT_IDENTITY_PROVIDER_URL = 'https://auth.ic0.app/authorize';\nfunction _getDefaultLocation() {\n if (typeof window === 'undefined') {\n throw new Error('Could not find default location.');\n }\n return window.location.origin;\n}\n/**\n * Create a URL that can be used to redirect the browser to request authentication (e.g. using\n * the authentication provider). Will throw if some options are invalid.\n * @param options An option with all options for the authentication request.\n */\nexport function createAuthenticationRequestUrl(options) {\n var _a, _b, _c;\n const url = new URL((_b = (_a = options.identityProvider) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : DEFAULT_IDENTITY_PROVIDER_URL);\n url.searchParams.set('response_type', 'token');\n url.searchParams.set('login_hint', options.publicKey.toDer().toString('hex'));\n url.searchParams.set('redirect_uri', (_c = options.redirectUri) !== null && _c !== void 0 ? _c : _getDefaultLocation());\n url.searchParams.set('scope', options.scope\n .map(p => {\n if (typeof p === 'string') {\n return Principal.fromText(p);\n }\n else {\n return p;\n }\n })\n .map(p => p.toString())\n .join(' '));\n url.searchParams.set('state', '');\n return url;\n}\n/**\n * Returns an AccessToken from the Window object. This cannot be used in Node, instead use\n * the {@link getAccessTokenFromURL} function.\n *\n * An access token is needed to create a DelegationChain object.\n */\nexport function getAccessTokenFromWindow() {\n if (typeof window === 'undefined') {\n return null;\n }\n return getAccessTokenFromURL(new URL(window.location.href));\n}\n/**\n * Analyze a URL and try to extract an AccessToken from it.\n * @param url The URL to look into.\n */\nexport function getAccessTokenFromURL(url) {\n // Remove the `#` at the start.\n const hashParams = new URLSearchParams(new URL(url.toString()).hash.substr(1));\n return hashParams.get('access_token');\n}\n/**\n * Create a DelegationChain from an AccessToken extracted from a redirect URL.\n * @param accessToken The access token extracted from a redirect URL.\n */\nexport function createDelegationChainFromAccessToken(accessToken) {\n // Transform the HEXADECIMAL string into the JSON it represents.\n if (/[^0-9a-fA-F]/.test(accessToken) || accessToken.length % 2) {\n throw new Error('Invalid hexadecimal string for accessToken.');\n }\n const chainJson = [...accessToken]\n .reduce((acc, curr, i) => {\n // tslint:disable-next-line:no-bitwise\n acc[(i / 2) | 0] = (acc[(i / 2) | 0] || '') + curr;\n return acc;\n }, [])\n .map(x => Number.parseInt(x, 16))\n .map(x => String.fromCharCode(x))\n .join('');\n return DelegationChain.fromJSON(chainJson);\n}\n/**\n * Analyze a DelegationChain and validate that it's valid, ie. not expired and apply to the\n * scope.\n * @param chain The chain to validate.\n * @param checks Various checks to validate on the chain.\n */\nexport function isDelegationValid(chain, checks) {\n // Verify that the no delegation is expired. If any are in the chain, returns false.\n for (const { delegation } of chain.delegations) {\n // prettier-ignore\n if (+new Date(Number(delegation.expiration / BigInt(1000000))) <= +Date.now()) {\n return false;\n }\n }\n // Check the scopes.\n const scopes = [];\n const maybeScope = checks === null || checks === void 0 ? void 0 : checks.scope;\n if (maybeScope) {\n if (Array.isArray(maybeScope)) {\n scopes.push(...maybeScope.map(s => (typeof s === 'string' ? Principal.fromText(s) : s)));\n }\n else {\n scopes.push(typeof maybeScope === 'string' ? Principal.fromText(maybeScope) : maybeScope);\n }\n }\n for (const s of scopes) {\n const scope = s.toText();\n for (const { delegation } of chain.delegations) {\n if (delegation.targets === undefined) {\n continue;\n }\n let none = true;\n for (const target of delegation.targets) {\n if (target.toText() === scope) {\n none = false;\n break;\n }\n }\n if (none) {\n return false;\n }\n }\n }\n return true;\n}\n//# sourceMappingURL=index.js.map","/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Children } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n}; // `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\n\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n var count = Children.count(nextChildren);\n\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n } // eslint-disable-next-line no-use-before-define,@typescript-eslint/no-use-before-define\n\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","const HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\n\nconst { keys } = Object;\n\ntype Cache = {\n add: (value: any) => void;\n has: (value: any) => boolean;\n};\n\nexport type EqualityComparator = (a: any, b: any, meta?: any) => boolean;\n\n/**\n * are the values passed strictly equal or both NaN\n *\n * @param a the value to compare against\n * @param b the value to test\n * @returns are the values equal by the SameValueZero principle\n */\nexport function sameValueZeroEqual(a: any, b: any) {\n return a === b || (a !== a && b !== b);\n}\n\n/**\n * is the value a plain object\n *\n * @param value the value to test\n * @returns is the value a plain object\n */\nexport function isPlainObject(value: any) {\n return value.constructor === Object || value.constructor == null;\n}\n\n/**\n * is the value promise-like (meaning it is thenable)\n *\n * @param value the value to test\n * @returns is the value promise-like\n */\nexport function isPromiseLike(value: any) {\n return !!value && typeof value.then === 'function';\n}\n\n/**\n * is the value passed a react element\n *\n * @param value the value to test\n * @returns is the value a react element\n */\nexport function isReactElement(value: any) {\n return !!(value && value.$$typeof);\n}\n\n/**\n * in cases where WeakSet is not supported, creates a new custom\n * object that mimics the necessary API aspects for cache purposes\n *\n * @returns the new cache object\n */\nexport function getNewCacheFallback(): Cache {\n const values: any[] = [];\n\n return {\n add(value: any) {\n values.push(value);\n },\n\n has(value: any) {\n return values.indexOf(value) !== -1;\n },\n };\n}\n\n/**\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const getNewCache = ((canUseWeakMap: boolean) => {\n if (canUseWeakMap) {\n return function _getNewCache(): Cache {\n return new WeakSet();\n };\n }\n\n return getNewCacheFallback;\n})(HAS_WEAKSET_SUPPORT);\n\n/**\n * create a custom isEqual handler specific to circular objects\n *\n * @param [isEqual] the isEqual comparator to use instead of isDeepEqual\n * @returns the method to create the `isEqual` function\n */\nexport function createCircularEqualCreator(isEqual?: EqualityComparator) {\n return function createCircularEqual(comparator: EqualityComparator) {\n const _comparator = isEqual || comparator;\n\n return function circularEqual(\n a: any,\n b: any,\n cache: Cache = getNewCache(),\n ) {\n const isCacheableA = !!a && typeof a === 'object';\n const isCacheableB = !!b && typeof b === 'object';\n\n if (isCacheableA || isCacheableB) {\n const hasA = isCacheableA && cache.has(a);\n const hasB = isCacheableB && cache.has(b);\n\n if (hasA || hasB) {\n return hasA && hasB;\n }\n\n if (isCacheableA) {\n cache.add(a);\n }\n\n if (isCacheableB) {\n cache.add(b);\n }\n }\n\n return _comparator(a, b, cache);\n };\n };\n}\n\n/**\n * are the arrays equal in value\n *\n * @param a the array to test\n * @param b the array to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the arrays equal\n */\nexport function areArraysEqual(\n a: any[],\n b: any[],\n isEqual: EqualityComparator,\n meta: any,\n) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!isEqual(a[index], b[index], meta)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * are the maps equal in value\n *\n * @param a the map to test\n * @param b the map to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta map to pass through\n * @returns are the maps equal\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue, aKey) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue, bKey) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch =\n isEqual(aKey, bKey, meta) && isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n\ntype Dictionary = {\n [key: string]: Type;\n [index: number]: Type;\n};\n\nconst OWNER = '_owner';\n\nconst hasOwnProperty = Function.prototype.bind.call(\n Function.prototype.call,\n Object.prototype.hasOwnProperty,\n);\n\n/**\n * are the objects equal in value\n *\n * @param a the object to test\n * @param b the object to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the objects equal\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n isEqual: EqualityComparator,\n meta: any,\n) {\n const keysA = keys(a);\n\n let index = keysA.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n if (index) {\n let key: string;\n\n while (index-- > 0) {\n key = keysA[index];\n\n if (key === OWNER) {\n const reactElementA = isReactElement(a);\n const reactElementB = isReactElement(b);\n\n if (\n (reactElementA || reactElementB) &&\n reactElementA !== reactElementB\n ) {\n return false;\n }\n }\n\n if (!hasOwnProperty(b, key) || !isEqual(a[key], b[key], meta)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * are the regExps equal in value\n *\n * @param a the regExp to test\n * @param b the regExp to test agains\n * @returns are the regExps equal\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp) {\n return (\n a.source === b.source &&\n a.global === b.global &&\n a.ignoreCase === b.ignoreCase &&\n a.multiline === b.multiline &&\n a.unicode === b.unicode &&\n a.sticky === b.sticky &&\n a.lastIndex === b.lastIndex\n );\n}\n\n/**\n * are the sets equal in value\n *\n * @param a the set to test\n * @param b the set to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta set to pass through\n * @returns are the sets equal\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch = isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { WrappedFunction } from '@sentry/types';\n\nimport { getGlobalObject } from './global';\n\n// TODO: Implement different loggers for different environments\nconst global = getGlobalObject();\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\n/** JSDoc */\ninterface ExtensibleConsole extends Console {\n [key: string]: any;\n}\n\n/**\n * Temporarily unwrap `console.log` and friends in order to perform the given callback using the original methods.\n * Restores wrapping after the callback completes.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => any): any {\n const global = getGlobalObject();\n const levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n\n if (!('console' in global)) {\n return callback();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const originalConsole = (global as any).console as ExtensibleConsole;\n const wrappedLevels: { [key: string]: any } = {};\n\n // Restore all wrapped console methods\n levels.forEach(level => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in (global as any).console && (originalConsole[level] as WrappedFunction).__sentry_original__) {\n wrappedLevels[level] = originalConsole[level] as WrappedFunction;\n originalConsole[level] = (originalConsole[level] as WrappedFunction).__sentry_original__;\n }\n });\n\n // Perform callback manipulations\n const result = callback();\n\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level];\n });\n\n return result;\n}\n\n/** JSDoc */\nclass Logger {\n /** JSDoc */\n private _enabled: boolean;\n\n /** JSDoc */\n public constructor() {\n this._enabled = false;\n }\n\n /** JSDoc */\n public disable(): void {\n this._enabled = false;\n }\n\n /** JSDoc */\n public enable(): void {\n this._enabled = true;\n }\n\n /** JSDoc */\n public log(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.log(`${PREFIX}[Log]:`, ...args);\n });\n }\n\n /** JSDoc */\n public warn(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.warn(`${PREFIX}[Warn]:`, ...args);\n });\n }\n\n /** JSDoc */\n public error(...args: any[]): void {\n if (!this._enabled) {\n return;\n }\n consoleSandbox(() => {\n global.console.error(`${PREFIX}[Error]:`, ...args);\n });\n }\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nconst logger = (global.__SENTRY__.logger as Logger) || (global.__SENTRY__.logger = new Logger());\n\nexport { logger };\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\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 var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\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 by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\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 exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\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 MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\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 * 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 * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\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) x.s = 1;\r\n return 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 *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.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 (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\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 x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\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`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\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);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\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 return this.cmp(y) >= 0;\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.e > this.d.length - 2;\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, otherwise return false.\r\n *\r\n */\r\n P.isZero = 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 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, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\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 r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\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 pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\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, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(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 * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(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 || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, 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 e, sd, w,\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 e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[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) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\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(x.d);\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 pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 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 (s == wpr && 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 round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\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 // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\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 = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\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 round(x, dp + getBase10Exponent(x) + 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 = toString(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 = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return 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) return toString(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 y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\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 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.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\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 new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\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 * The maximum error is 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, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\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 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 e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || 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 = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return 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 */\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 round(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 = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\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 * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\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 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 = e;\r\n\r\n return external ? round(y, pr) : y;\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 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 var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\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) {\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, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, 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 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\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 for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 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 // 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);\r\n xd = multiplyInteger(xd, k);\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);\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);\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);\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);\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\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant 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 * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\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 (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase 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(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\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(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\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 natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, 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 pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\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 if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(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 = getBase10Exponent(x);\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 = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\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(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\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.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\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 e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\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 && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\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 * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\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 which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: 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 (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\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 } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\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 - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || 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, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 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 = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 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, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\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 if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\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 if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If 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 zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // 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 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(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\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 + (e < 0 ? 'e' : 'e+') + 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 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 * clone\r\n * config/set\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 * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\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 (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\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\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\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 * 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 *\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') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== 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 ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\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 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\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","export {\n addBreadcrumb,\n captureException,\n captureEvent,\n captureMessage,\n configureScope,\n startTransaction,\n setContext,\n setExtra,\n setExtras,\n setTag,\n setTags,\n setUser,\n withScope,\n} from '@sentry/minimal';\nexport { addGlobalEventProcessor, getCurrentHub, getHubFromCarrier, Hub, makeMain, Scope, Session } from '@sentry/hub';\nexport {\n // eslint-disable-next-line deprecation/deprecation\n API,\n APIDetails,\n getEnvelopeEndpointWithUrlEncodedAuth,\n getStoreEndpointWithUrlEncodedAuth,\n getRequestHeaders,\n initAPIDetails,\n getReportDialogEndpoint,\n} from './api';\nexport { BaseClient } from './baseclient';\nexport { BackendClass, BaseBackend } from './basebackend';\nexport { eventToSentryRequest, sessionToSentryRequest } from './request';\nexport { initAndBind, ClientClass } from './sdk';\nexport { NoopTransport } from './transports/noop';\nexport { SDK_VERSION } from './version';\n\nimport * as Integrations from './integrations';\n\nexport { Integrations };\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","/**\n * This file is generated from the candid for asset management.\n */\n/* tslint:disable */\n// @ts-ignore\nexport default ({ IDL }) => {\n const canister_id = IDL.Principal;\n const wasm_module = IDL.Vec(IDL.Nat8);\n const CanisterSettings = IDL.Record({\n compute_allocation: IDL.Opt(IDL.Nat),\n memory_allocation: IDL.Opt(IDL.Nat),\n });\n return IDL.Service({\n provisional_create_canister_with_cycles: IDL.Func([IDL.Record({ amount: IDL.Opt(IDL.Nat), settings: IDL.Opt(CanisterSettings) })], [IDL.Record({ canister_id: canister_id })], []),\n create_canister: IDL.Func([], [IDL.Record({ canister_id: canister_id })], []),\n install_code: IDL.Func([\n IDL.Record({\n mode: IDL.Variant({ install: IDL.Null, reinstall: IDL.Null, upgrade: IDL.Null }),\n canister_id: canister_id,\n wasm_module: wasm_module,\n arg: IDL.Vec(IDL.Nat8),\n }),\n ], [], []),\n set_controller: IDL.Func([IDL.Record({ canister_id: canister_id, new_controller: IDL.Principal })], [], []),\n });\n};\n//# sourceMappingURL=management_idl.js.map","import { Actor } from '../actor';\nimport { Principal } from '@dfinity/principal';\nimport managementCanisterIdl from './management_idl';\n/* tslint:enable */\n/**\n * Create a management canister actor.\n * @param config\n */\nexport function getManagementCanister(config) {\n function transform(methodName, args, callConfig) {\n const first = args[0];\n let effectiveCanisterId = Principal.fromHex('');\n if (first && typeof first === 'object' && first.canister_id) {\n effectiveCanisterId = Principal.from(first.canister_id);\n }\n return { effectiveCanisterId };\n }\n return Actor.createActor(managementCanisterIdl, Object.assign(Object.assign(Object.assign({}, config), { canisterId: Principal.fromHex('') }), {\n callTransform: transform,\n queryTransform: transform,\n }));\n}\n//# sourceMappingURL=management.js.map","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AppError {\n NO_APP = 'no-app',\n BAD_APP_NAME = 'bad-app-name',\n DUPLICATE_APP = 'duplicate-app',\n APP_DELETED = 'app-deleted',\n INVALID_APP_ARGUMENT = 'invalid-app-argument',\n INVALID_LOG_ARGUMENT = 'invalid-log-argument',\n STORAGE_OPEN = 'storage-open',\n STORAGE_GET = 'storage-get',\n STORAGE_WRITE = 'storage-set',\n STORAGE_DELETE = 'storage-delete'\n}\n\nconst ERRORS: ErrorMap = {\n [AppError.NO_APP]:\n \"No Firebase App '{$appName}' has been created - \" +\n 'call Firebase App.initializeApp()',\n [AppError.BAD_APP_NAME]: \"Illegal App name: '{$appName}\",\n [AppError.DUPLICATE_APP]:\n \"Firebase App named '{$appName}' already exists with different options or config\",\n [AppError.APP_DELETED]: \"Firebase App named '{$appName}' already deleted\",\n [AppError.INVALID_APP_ARGUMENT]:\n 'firebase.{$appName}() takes either no argument or a ' +\n 'Firebase App instance.',\n [AppError.INVALID_LOG_ARGUMENT]:\n 'First argument to `onLog` must be null or a function.',\n [AppError.STORAGE_OPEN]:\n 'Error thrown when opening storage. Original error: {$originalErrorMessage}.',\n [AppError.STORAGE_GET]:\n 'Error thrown when reading from storage. Original error: {$originalErrorMessage}.',\n [AppError.STORAGE_WRITE]:\n 'Error thrown when writing to storage. Original error: {$originalErrorMessage}.',\n [AppError.STORAGE_DELETE]:\n 'Error thrown when deleting from storage. Original error: {$originalErrorMessage}.'\n};\n\ninterface ErrorParams {\n [AppError.NO_APP]: { appName: string };\n [AppError.BAD_APP_NAME]: { appName: string };\n [AppError.DUPLICATE_APP]: { appName: string };\n [AppError.APP_DELETED]: { appName: string };\n [AppError.INVALID_APP_ARGUMENT]: { appName: string };\n [AppError.STORAGE_OPEN]: { originalErrorMessage?: string };\n [AppError.STORAGE_GET]: { originalErrorMessage?: string };\n [AppError.STORAGE_WRITE]: { originalErrorMessage?: string };\n [AppError.STORAGE_DELETE]: { originalErrorMessage?: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'app',\n 'Firebase',\n ERRORS\n);\n","import * as base64Arraybuffer from 'base64-arraybuffer';\n/* tslint:disable */\n/* eslint-disable */\nlet wasm;\n// This WASM is generated from the BLS Rust code of the Agent RS (see\n// http://github.com/dfinity/agent-rs/)\n// Once the WASM is compiled, simply base64 encode it and include it in this string.\nconst wasmBytesBase64 = `\n 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\n g8AAEF8CQAJAIAZB6AFqEFoNACAGQShqEIQBDQAgBkGIPWoQS0EAIQcgBkGIwwBqQTgQchogBkG4IWpBOBByGiAGQYjA\n AGoQSyAGQcjEAGoQSyAGQcjJAGoQSyAGQcjMAGoQSyAGQagGahBLIAZBsAxqEEsgBkHIzwBqEEsgBkHQ1QBqEEsgBkHY\n 2wBqEEsgBkG4FWoQSyAGQZgjaiAGQcjJAGpBwAEQZxogBkHYJGogBkHIzABqQcABEGcaIAZBmCZqIAZBqAZqQcABEGca\n IAZB2CdqIAZBsAxqQcABEGcaIAZBmClqIAZByM8AakHAARBnGiAGQdgqaiAGQdDVAGpBwAEQZxogBkGYLGogBkHY2wBq\n QcABEGcaIAZB2C1qIAZBuBVqQcABEGcaIAZBuBVqQecAEHIaIAZBiMAAaiAGQShqEH8gBkGIwABqEBggBkGYI2ogBkEo\n ahB/A0AgB0HACkYEQCAGQbghaiAGQegBahBrIAYpA7ghIRcgBkG4IWpBARCdASAGQbghahBEIAYpA7ghIRYgBkGIwwBq\n IAZBuCFqEGsgBkGIwwBqQQEQnQEgBkGIwwBqEEQgBkG4IWogBkGIwwBqIBdCAoGnEE8gBkGIwABqIAZBKGogFkICgacQ\n bSAGQcjEAGogBkGIwABqEH8gBkG4IWoQKUEDaiIJQQJ2IgdBAWohAkEAIQgCQAJAAkADQAJAIAZBuCFqQQUQjAEhAyAC\n IAhGBEAgCUGYA0kNASACQecAQbCEwAAQPAALIAhB5wBGDQIgBkG4FWogCGogA0FwaiIDOgAAIAZBuCFqIANBGHRBGHUQ\n ngEgBkG4IWoQRCAGQbghakEEEDsgCEEBaiEIDAELCyAGQbgVaiACaiADOgAAIANBGHRBGHVBf2oiA0EBdiECIANBD0sN\n ASAGQYg9aiAGQZgjaiACQcABbGoQfwNAIAdBf0YEQCAGQYg9aiAGQcjEAGoQcyAGQZgjaiAGQYg9akHAARBnGgwICyAH\n QeYASw0DIAZBiMAAaiAGQZgjaiAGQbgVaiAHaiwAABAfIAdBf2ohByAGQYg9ahAYIAZBiD1qEBggBkGIPWoQGCAGQYg9\n ahAYIAZBiD1qIAZBiMAAahAMDAALAAtB5wBB5wBBoITAABA8AAsgAkEIQcCEwAAQPAALIAdB5wBB0ITAABA8AAUgBkHI\n xABqIAZBmCNqIAdqIgIQfyACQcABaiICIAZByMQAahB/IAIgBkGIwABqEAwgB0HAAWohBwwBCwALAAsgBkGYI2oQSwsgB\n kEoaiAGQZgjahB/IAZBKGoQRyAMEAlBACEHIAZBqAZqQTAQchogBkGwDGpBoKfAABBfAkACQAJAAkACQANAAkAgB0EwRg\n RAIAYgBi0AqAZBH3E6AKgGIAZByM8AaiAGQagGahBdIAENAUEAQQBB8ILAABA8AAsgASAHRg0CIAZBqAZqIAdqIAAgB2o\n tAAA6AAAgB0EBaiEHDAELC0EAIQcCQCAALAAAIgJBAE4EQCAAQTBqIQAgAUEwIAFBMEsbQVBqIQIDQCAHQTBGBEAgBkHY\n 2wBqIAZBqAZqEF0gBkHoAWoQSyAGQegBaiAGQcjPAGoQtAEgBkGoAmoiACAGQdjbAGoQtAEgBkHoAmoQaSAGQegBahBEI\n AZBuBVqIAZB6AFqEE0gBkGYI2ogABCFASAGQZgjahADIAZBmCNqIAZBuBVqEFkNAyAGQegBahCUAQwDCyACIAdGDQQgBk\n GoBmogB2ogACAHai0AADoAACAHQQFqIQcMAAsACyAGQZgjahBLIAZB0NUAakE4EHIaIAZBATYCiFYgBkGYI2ogBkHIzwB\n qELQBIAZBmCNqEEQgBkGYJGoQaSAGQdjbAGogBkGYI2oQTQJAIAZB2NsAaiAGQdDVAGoQXEEBRwRAIAZBmCNqEJQBDAEL\n IAZBuBVqIAZB2NsAaiAGQdDVAGoQIyAGQbgVahBYBEAgBkG4FWoQQSAGQbgVahBECyAGQdgjaiAGQbgVahClAQsgAkEgc\n UEFdiAGQdgjahBMQQFGRwRAIAZBmCNqEKYBCyAGQegBaiAGQZgjakHAARBnGgsgBkHQPGpB8IHAABBfIAZB6AFqEIQBRQ\n 0CDAMLIAEgAUHggsAAEDwACyAHQTBqIAFBgIPAABA8AAsgBkGoA2oQSyAGQagDaiAGQegBahB/IAZBuBJqEEsgBkG4Emo\n gBkHoAWoQfyAGQbgSahBHIAZByMcAakHwgcAAEF8gBkGYI2pBqILAABBfIAZBiMMAaiAGQZgjahCLAUEAIQAgBkG4IWpB\n OBByGiAGQfAhakE4EHIhCSAGQdjbAGpB8IHAABBfIAZBuBVqQYCAwAAQXyAGQZgjakE4EHIaIAZBkCNqIQsgBkGwFWohC\n gJAAkADQCAAQQdGDQIgAEEBaiEBIAZBuBVqIABBA3RqIQxCACEXQQAhAwNAIANBf2ohByAKIANBA3RqIQIgCyAAIANqQQ\n N0aiEIA0AgB0EGRgRAIAEhAAwDCyAIQQhqIQggAkEIaiECIAAgB0EBaiIHakEGSw0ACyAAQQZNBEAgB0EGSw0DIAdBAWo\n hAyAGQQhqIAIpAwAiFiAWQj+HIAwpAwAiFiAWQj+HEDEgCCAGKQMIIhkgF3wiFiAIKQMAIhp8IhhC//////////8DgzcD\n ACAYIBZUrSAWIBlUrSAGQRBqKQMAIBdCP4d8fCAaQj+HfHxCBoYgGEI6iIQhFwwBCwsLIABBB0G0ncAAEDwACyAHQQdBx\n J3AABA8AAsgBkG4IWogBkHQPGoQayAGQbghaiAGQZgjahAkIAkgBkHQPGoQayAJIAZBmCNqEBwgCSAGQdjbAGoQYyAGQb\n gSaiAGQYjDAGoQSCAGQbghahApIQAgBkGIyABqIAZBuCFqIAZByMcAahCNASAGQYjIAGoQKSAASQRAIAZBuCFqIAZBiMg\n AahBrIAZBqANqEKYBCyAJECkhACAGQYjIAGogCSAGQcjHAGoQjQEgBkGIyABqECkgAEkEQCAJIAZBiMgAahBrIAZBuBJq\n EKYBCyAGQbghahBEIAkQREEAIQcgBkHIyABqQTgQchogBkGIyQBqQTgQchogBkGYO2pBOBByGiAGQYg9ahBLIAZBiMAAa\n hBLIAZByMQAahBLIAZByMkAahBLIAZByMwAahBLIAZBqAZqEEsgBkGwDGoQSyAGQcjPAGoQSyAGQdDVAGoQSyAGQdjbAG\n oQSyAGQbgVahBLIAZBmCNqIAZByMkAakHAARBnGiAGQdgkaiAGQcjMAGpBwAEQZyEAIAZBmCZqIAZBqAZqQcABEGchASA\n GQdgnaiAGQbAMakHAARBnIQsgBkGYKWogBkHIzwBqQcABEGchCiAGQdgqaiAGQdDVAGpBwAEQZyECIAZBmCxqIAZB2NsA\n akHAARBnIQMgBkHYLWogBkG4FWpBwAEQZyEIIAZBuBVqQcwBEHIaIAZByMgAaiAGQbghahBrIAZBiMkAaiAJEGsgACAGQ\n agDahB/IAAgBkG4EmoQcyABIAZBqANqEH8gASAGQbgSahAMIAZBiD1qIAZBuBJqEH8gBkGIPWoQGCAGQcjEAGogABB/IA\n ZBmCNqIAZByMQAahB/IAZBmCNqIAZBiD1qEHMgBkHIxABqIAEQfyALIAZByMQAahB/IAsgBkGIPWoQDCAGQYjAAGogBkG\n oA2oQfyAGQYjAAGoQGCAGQcjEAGogABB/IAIgBkHIxABqEH8gAiAGQYjAAGoQDCAGQcjEAGogARB/IAMgBkHIxABqEH8g\n AyAGQYjAAGoQDCAGQcjEAGogAhB/IAogBkHIxABqEH8gCiAGQYg9ahBzIAZByMQAaiADEH8gCCAGQcjEAGoQfyAIIAZBi\n D1qEAwgBikDyEghFyAGQcjIAGpBARCdASAGQcjIAGoQRCAGKQPISCEWIAZBmDtqIAZByMgAahBrIAZBmDtqQQEQnQEgBk\n GYO2oQRCAGQcjIAGogBkGYO2ogF0ICgacQTyAGQYjAAGogBkGoA2ogFkICgacQbSAGQcjEAGogBkGIwABqEH8gBikDiEk\n hFyAGQYjJAGpBARCdASAGQYjJAGoQRCAGKQOISSEWIAZBmDtqIAZBiMkAahBrIAZBmDtqQQEQnQEgBkGYO2oQRCAGQYjJ\n AGogBkGYO2ogF0ICgacQTyAGQYg9aiAGQbgSaiAWQgKBpxBtIAZByMQAaiAGQYg9ahAMIAZBmDtqIAZByMgAahBrIAZBm\n DtqIAZBiMkAahBhIAZBmDtqEEQgBkGYO2oQKUEBaiICQQF2IghBAWohAAJAAkACQAJAA0ACQCAGQcjIAGpBAxCMASEBIA\n AgB0YEQCAGQYjJAGpBAxCMASEDIAJBlgNJDQEgAEHMAUG0g8AAEDwACyAGQcjIAGogAUF8aiIBEJ4BIAZByMgAahBEIAZ\n ByMgAakECEDsgBkGIyQBqIAZBiMkAakEDEIwBQXxqIgMQngEgBkGIyQBqEEQgBkGIyQBqQQIQOyAHQcwBRg0CIAZBuBVq\n IAdqIAMgAUECdGo6AAAgB0EBaiEHDAELCyAGQbgVaiAAaiADIAFBAnRqIgA6AAAgAEEYdEEYdUF/aiIBQQF2IQAgAUEPS\n w0BIAZBiD1qIAZBmCNqIABBwAFsahB/A0AgCEF/Rg0EIAhBywFLDQMgBkGIwABqIAZBmCNqIAZBuBVqIAhqLAAAEB8gCE\n F/aiEIIAZBiD1qEBggBkGIPWoQGCAGQYg9aiAGQYjAAGoQDAwACwALQcwBQcwBQaSDwAAQPAALIABBCEHEg8AAEDwACyA\n IQcwBQdSDwAAQPAALIAZBiD1qIAZByMQAahBzIAZBqANqIAZBiD1qQcABEGcaQX8hByAGQagDahCEAUUNASAGQegBahCm\n AUEAIQcgBkHIzwBqQeAAEHIaIAUEQANAIAdB4ABGBEAgBiAGLQDIT0EfcToAyE8gBkHQ1QBqIAZByM8AahAhAkACQAJAI\n AQsAAAiA0F/SgRAIARB4ABqIQAgBUHgACAFQeAASxtBoH9qIQFBACEHA0AgB0HgAEYEQCAGQZgjaiAGQcjPAGoQISAGQa\n gDaiAGQdDVAGogBkGYI2oQPwwDCyABIAdGDQMgBkHIzwBqIAdqIAAgB2otAAA6AAAgB0EBaiEHDAALAAsgBkGYI2oQKiA\n GQYjAAGpBOBByGiAGQQE2AsBAIAZBmCNqIAZB0NUAahCQASAGQZgkaiIBELABIAZBmCVqELABIAZBmCNqEKgBIAZB2NsA\n aiAGQZgjahAmIAZBuBVqIAZB2NsAahBeIAZBuBVqEKYBIAZBuBVqIAZB2NsAahAPIAZBsAxqIAZBuBVqQcAAEGcaAkAgB\n kGwDGogBkGIwABqEFxBAUcEQCAGQZgjahCYAQwBCyAGQdjbAGoQhwFFBEAgBkHIxABqIAZBmNwAaiIAEIUBIAZByMkAai\n AGQdjbAGoQhQEgBkHIzABqIAZB2NsAahCFASAGQagGakE4EHIaIAZBATYC4AYgBkGwDGpBOBByGiAGQQE2AugMIAZByMQ\n AahADIAZByMkAahADIAZByMQAaiAGQcjJAGoQeCAGQcjEAGoQRCAGQbgVaiAGQcjEAGogBkGIwABqECMgBkHIyQBqIAZB\n uBVqEKUBIAZByMQAaiAGQcjJAGoQpQEgBkHIyQBqIAZB2NsAahClASAGQcjJAGogBkHIxABqEHggBkHIyQBqEEQgBkHIy\n QBqEEIgBkHIxABqIAAQpQEgBkHIxABqEEIgBkHIyQBqIAZBsAxqEFwhAiAGQcjMAGogBkGwDGoQpQEgBkHIzABqEEEgBk\n HIzABqEEQgBkGoBmogBkHIyQBqEKUBIAZBqAZqEEEgBkGoBmoQRCAGQcjJAGogBkGoBmpBASACayICEHkgBkGwDGogBkH\n IzABqIAIQeSAGQbgVaiAGQcjJAGogBkGwDGoQIyAGQdjbAGogBkG4FWoQpQEgBkHIzABqIAZByMkAahClASAGQcjMAGog\n BkGwDGoQNCAGQcjMAGogBkHY2wBqEEggACAGQcjMAGoQpQEgACAGQcjEAGoQSCAGQagGaiAGQdjbAGoQpQEgBkHY2wBqI\n AAgAhB5IAAgBkGoBmogAhB5IAZB2NsAahCJASEAIAZBuBVqIAZB2NsAahBeIAZBuBVqEDogBkG4FWoQqAEgBkHY2wBqIA\n ZBuBVqIAAQjwELIAZB2NsAahCJAQRAIAZB2NsAahA6CyAGQdjbAGoQqwEgASAGQdjbAGoQkAELQQAhAgJAIAEQhwENACA\n GQdgkahBMIgINACABEEwhAgsgA0EgcUEFdiACQQFGRwRAIAZBmCNqEJwBCyAGQagDaiAGQZgjakGAAxBnGgsgBkHIyABq\n QfCBwAAQXyAGQagDahCIAQ0FIAZBuBJqECogBkG4FWoQKiAGQdDVAGoQKiAGQdjbAGoQKiAGQZgjahAqIAZBuBhqIAZB0\n NUAakGAAxBnIQ0gBkG4G2ogBkHY2wBqQYADEGchCSAGQbgeaiAGQZgjakGAAxBnIQAgBkHY2wBqQbiAwAAQXyAGQZgjak\n HwgMAAEF8gBkGIwwBqIAZB2NsAaiAGQZgjahBJIAZBiMkAakHwgcAAEF9BACEHIAZBuCFqQTgQchogBkHwIWpBqAEQciE\n DIAZBsAxqQfCBwAAQXyAGQcjPAGpBgIDAABBfIAZB4CJqIQEgBkGoImohDyAGQdDVAGogBkHIyABqEF8DQCAHQagBRg0C\n IAZBuCFqIAdqIgIgBkHQ1QBqEGsgAiAGQcjPAGoQJCAHQThqIQcgBkHQ1QBqIAZByM8AahAcDAALAAsgB0HgAGogBUGwp\n MAAEDwACyABIAZB0NUAahBrQQAhByAGQdjbAGpBOBByGiAGQZgjaiADIAZBsAxqEI0BIAZB2NsAaiAGQZgjahBrIAMgBk\n HY2wBqEGsgBkGYI2ogASAGQbAMahCNASAGQdjbAGogBkGYI2oQayABIAZB2NsAahBrIAZBiD1qECogBkGIwwBqEEAgBkG\n IwwBqEKgBIAZBmDtqQTgQchogBkG4FWogBkGoA2oQfgNAIAdBgAlGBEACQCAGQbgVaiECQQAhBwNAIAdB4AFHBEAgBkG4\n IWogB2oiBBApIQUgBkGYI2ogBCAGQYjJAGoQjQEgBkGYO2ogBkGYI2oQayAGQZg7ahApIAVJBEAgBCAGQZg7ahBrIAIQn\n AELIAQQRCAHQThqIQcgAkGAA2ohAgwBCwsgBkHIxABqECogBkGIwABqECogBkGYI2oQKiAGQcjJAGoQKiAGQcjMAGoQKi\n AGQagGahAqIAZBsAxqECogBkHIzwBqECogBkHQ1QBqECogBkHY2wBqECogBkGYJmogBkHIyQBqQYADEGchAiAGQZgpaiA\n GQcjMAGpBgAMQZyEEIAZBmCxqIAZBqAZqQYADEGchBSAGQZgvaiAGQbAMakGAAxBnIQsgBkGYMmogBkHIzwBqQYADEGch\n CiAGQZg1aiAGQdDVAGpBgAMQZyEIIAZBmDhqIAZB2NsAakGAAxBnIQxBACEHIAZBqAZqQTgQchogBkGwDGogBkG4IWoQX\n yAGQcjPAGogAxBfIAZB0NUAaiAPEF8gBkHY2wBqIAEQXyAGQegMaiAGQcjPAGpBOBBnGiAGQaANaiAGQdDVAGpBOBBnGi\n AGQdgNaiAGQdjbAGpBOBBnGiAGQdDVAGpBlwMQchogBkHY2wBqQZcDEHIaA0AgB0HgAUYEQAJAIAZBmCNqIAZBuBVqEH4\n gBkHIxABqIAZBmCNqEH4gAiAGQcjEAGoQfiACIA0QCyAEIAZByMQAahB+IAQgCRALIAZByMQAaiACEH4gBSAGQcjEAGoQ\n fiAFIAkQCyAGQcjEAGogBkGYI2oQfiALIAZByMQAahB+IAsgABALIAZByMQAaiACEH4gCiAGQcjEAGoQfiAKIAAQCyAGQ\n cjEAGogBBB+IAggBkHIxABqEH4gCCAAEAsgBkHIxABqIAUQfiAMIAZByMQAahB+IAwgABALIAZBsAxqQQEgBikDsAxCAo\n GnayIFEJ0BIAZBsAxqEEQgBkGoBmoQdEEAIQAgBkGwDGohAgJAAkACQAJAA38gAEEERgR/IAZBqAZqECkiA0GXA08NAiA\n DQQFqIQkgBkHY2wBqIANqQQE6AAAgBkHY2wBqIQggAwVBACEHA0AgB0E4RwRAIAZBqAZqIAdqIgEgASkDACACIAdqKQMA\n hDcDACAHQQhqIQcMAQsLIAJBOGohAiAAQQFqIQAMAQsLIQcDQCAHBEAgBkGwDGpBARA7IAggBikDsAxCAoGnQQF0QX9qO\n gAAIAdBf2ohByAIQQFqIQgMAQsLQQAhBwNAIAcgCUYEQCAGQYjAAGogBkGYI2ogBkHQ1QBqIANqLQAAQRl0QRh1QQFyEC\n AgA0F/aiEHA0AgB0F/Rg0GIAZBiMAAahAUIAdBlgNLDQUgBkHIxABqIAZBmCNqIAZB2NsAaiAHai0AACAGQdDVAGogB2o\n tAABBAXRqQRh0QRh1ECAgB0F/aiEHIAZBiMAAaiAGQcjEAGoQCwwACwALIAdBlwNGDQIgB0EBaiEBQQAhACAGQdDVAGog\n B2oiC0EAOgAAIAZB2NsAaiAHai0AACEKQQEhAkE4IQcDQCAHQeABRgRAIAEhBwwCBSAGQbAMaiAHaiIEKQMAIRcgBEEBE\n DsgBCAKIBdCAoGnbCIIQRh0QRl1EJ4BIAQQRCALIAAgAiAIbGoiADoAACAHQThqIQcgAkEBdCECDAELAAsACwALIANBlw\n NBkKXAABA8AAtBlwNBlwNBoKXAABA8AAsgB0GXA0GwpcAAEDwACyAGQcjEAGogBkGIwABqEH4gBkHIzwBqECogBkHIzwB\n qIAZBuBVqEH4gBkHIzwBqEJwBIAZByMQAaiAGQcjPAGoQCyAGQYjAAGogBkHIxABqIAUQbyAGQbgSaiAGQYjAAGoQfkF/\n IQcgBkG4EmoQiAFFDQogBkG4EmoQOCAGQbgVakG4gMAAEF8gBkGYI2pB8IDAABBfIAZBmDtqIAZBuBVqIAZBmCNqEEkgB\n kGYPGpBOBByGiAGQdA8akE4EHIaIAZBiD1qECogBkHoAWoQhAFFBEAgBkEoahCEAQ0BIAZBiMAAahAqIAZBiMAAaiAGQb\n gSahB+IAZBiMAAahBKIAZBiMMAahBLIAZBiMMAaiAGQegBahB/IAZBiMMAahBHIAZByMQAahAqIAZByMQAaiAGQagDahB\n +IAZByMQAahBKIAZBuCFqEEsgBkG4IWogBkEoahB/IAZBuCFqEEcgBkGYI2ogBkGIwwBqEIUBIAZByMcAaiAGQZgjahCF\n ASAGQZgjaiAGQcjDAGoQhQEgBkGIyABqIAZBmCNqEIUBIAZBmCNqIAZBuCFqEIUBIAZByMgAaiAGQZgjahCFASAGQZgja\n iAGQfghahCFASAGQYjJAGogBkGYI2oQhQEgBkHIyQBqECogBkHIzABqECogBkHQ1QBqEGAgBkHIyQBqIAZBiMAAahB+IA\n ZByMwAaiAGQcjEAGoQfiAGQbAMahAqIAZBsAxqIAZBiMAAahB+IAZBsAxqEJwBIAZByM8AahAqIAZByM8AaiAGQcjEAGo\n QfiAGQcjPAGoQnAEgBkHQPGogBkGYPGoQVEF/aiEHA0AgB0EBTQRAIAZB0NUAahCTASAGQagGaiAGQdDVAGpBiAYQZxoM\n BgsgBkHQ1QBqEBsgBkHY2wBqIAZByMkAaiAGQcjHAGogBkGIyABqEBcgBkG4FWogBkHIzABqIAZByMgAaiAGQYjJAGoQF\n yAGQdjbAGogBkG4FWoQBiAGQdDVAGogBkHY2wBqEAQCQAJAIAZB0DxqIAdBf2oiBxBXIAZBmDxqIAcQV2tBAWoOAwECAA\n ILIAZB2NsAaiAGQcjJAGogBkGIwABqIAZByMcAaiAGQYjIAGoQFiAGQZgjaiAGQcjMAGogBkHIxABqIAZByMgAaiAGQYj\n JAGoQFiAGQdjbAGogBkGYI2oQBiAGQdDVAGogBkHY2wBqEAQMAQsgBkHY2wBqIAZByMkAaiAGQbAMaiAGQcjHAGogBkGI\n yABqEBYgBkGYI2ogBkHIzABqIAZByM8AaiAGQcjIAGogBkGIyQBqEBYgBkHY2wBqIAZBmCNqEAYgBkHQ1QBqIAZB2NsAa\n hAEDAALAAsgBkGoBmogBkGoA2ogBkEoahAQDAMLBSAGQbAMaiAHahBEIAdBOGohBwwBCwsgBkGoBmogBkG4EmogBkHoAW\n oQEAsFIAZBiD1qIAZBuBVqIAdqIgIQfiACQYADaiIEIAZBiD1qEH4gBkGYI2ogBkGIwwBqEF4gBkGYI2oQMiAEEKYBIAJ\n BgARqIgUQpgEgAkGABWoiAhCmASACEKsBIAQgBkGYI2oQDyAFIAZBmCNqEA8gBSAGQYjDAGoQDyAHQYADaiEHDAELCyAG\n QbgVakG4gMAAEF8gBkGYI2pB8IDAABBfIAZByMQAaiAGQbgVaiAGQZgjahBJIAZBiMAAakGAgMAAEF8gBkGwDGogBkGoB\n moQaiAGQcjPAGogBkGwDGoQaiAGQdDVAGogBkHIzwBqEI4BIAZB2NsAaiAGQcjRAGoiARCOASAGQbgVaiAGQcjPAGoQjg\n EgBkGYI2oQLyAGQcjPAGoQmQEgBkHQ1QBqECIgBkHY2wBqIAZByNMAaiIAEBkgBkHY2wBqEGYgBkHQ1QBqIAZB2NsAahC\n BASAGQdDVAGoQrAEgBkHY2wBqIAAQkgEgBkHY2wBqECIgBkHY2wBqEGYgBkG4FWogARAZIAZB2NsAaiAGQbgVahCBASAG\n QdjbAGoQrAEgBkG4FWogARCSASAGQbgVahAiIAZBmCNqIAZByM8AahCSASAGQZgjaiAAEBkgBkG4FWogBkGYI2oQgQEgB\n kG4FWoQrAEgBkGYI2ogARCSASAGQZgjaiAGQbgVahAZIAZBmCNqEGYgBkHIzwBqIAZB0NUAahAZIAZBmCNqIAZByM8Aah\n CWASAAIAZB2NsAahAZIAAQZiAGQZgjaiAAEJYBIAZBmCNqEKwBIAZByMkAaiAGQZgjahBeIAZByMwAaiAGQZgkaiICEF4\n gBkHIyQBqEDIgBkHIzABqEDIgBkHIzABqEFUgBkHIzABqEKgBIAZByMkAaiAGQcjMAGoQfSAGQcjJAGoQQCAGQZgjaiAG\n QcjJAGoQDyAGQcjJAGoQOiAGQcjJAGoQqAEgAiAGQcjJAGoQDyAGQcjPAGogBkHQ1QBqEJIBIAZByM8AaiAGQZgjahAZI\n AEgBkHY2wBqEJIBIAEgBkGYI2oQGSAAIAZBuBVqEJIBIAAgBkGYI2oQGSAGQQU2AshVIAZBsAxqEJMBIAZBsAxqIAZByM\n 8AahAOIAZByM8AaiAGQbAMahBsIAZBsAxqIAZByMQAahA3IAZBsAxqIAZByMQAahA3IAZBsAxqIAZByM8AahAOIAZB0NU\n AaiAGQbAMahBqIAZB0NUAahAaIAZB0NUAaiAGQbAMahAOIAZBmCNqIAZBsAxqIAZBiMAAahAdIAZB2NsAaiAGQZgjahBq\n IAZB2NsAahCTASAGQbgVaiAGQbAMahBqIAZBuBVqEJMBIAZBsAxqIAZB2NsAahBsIAZBsAxqIAZBuBVqEA4gBkGYI2ogB\n kGwDGogBkGIwABqEB0gBkHY2wBqIAZBmCNqEGwgBkHY2wBqEJMBIAZBuBVqIAZBsAxqEGwgBkG4FWoQkwEgBkGwDGogBk\n HY2wBqEGwgBkGwDGogBkG4FWoQDiAGQZgjaiAGQbAMaiAGQYjAAGoQHSAGQdjbAGogBkGYI2oQbCAGQdjbAGoQkwEgBkG\n 4FWogBkGwDGoQbCAGQbgVaiAGQcjEAGoQNyAGQbAMaiAGQdjbAGoQbCAGQbAMaiAGQbgVahAOIAZBmCNqIAZBsAxqIAZB\n iMAAahAdIAZB2NsAaiAGQZgjahBsIAZBmCNqIAZB2NsAaiAGQYjAAGoQHSAGQdjbAGogBkGYI2oQbCAGQbgVaiAGQbAMa\n hBsIAZBuBVqIAZByMQAahA3IAZBuBVqIAZByMQAahA3IAZB2NsAaiAGQbgVahAOIAZBuBVqIAZBsAxqEGwgBkG4FWoQkw\n EgBkGwDGogBkHY2wBqEGwgBkGwDGogBkG4FWoQDiAGQbAMaiAGQdDVAGoQDiAGQbAMahCaASAGQagGaiAGQbAMakGIBhB\n nGiAGQZgjahBuIAZBqAZqIAZBmCNqEHtFDQMgBkGoB2ogAhB7RQ0DIAZBqAhqEIYBRQ0DQQAhByAGQagKahCGAUUNAwwE\n CyAFIAdHBEAgBkHIzwBqIAdqIAQgB2otAAA6AAAgB0EBaiEHDAELCyAFIAVBoKTAABA8AAtBAEEAQZCkwAAQPAALQX8hB\n wsgBkHg4QBqJAAgBw8LQQAhByAGQbAMakE4EHIaA0AgB0E4RwRAIAZBsAxqIAdqIAZByM8AaiAHaikDADcDACAHQQhqIQ\n cMAQsLIAZBmCNqIAZBsAxqEIsBIAZBqANqIAlBBnRqIAZBmCNqQcAAEGcaIAMgCmohAyALIQkMAAsACyAHIAlqIQkgAiE\n DDAALAAtBK0EBQaS5wQAoAgAiAEEBIAAbEQAAAAvBKgIIfwF+AkACQAJAAkAgAEH1AU8EQCAAQc3/e08NAiAAQQtqIgBB\n eHEhBkHYtcEAKAIAIgdFDQFBHyEIQQAgBmshBQJAAkAgBkH///8HTQRAIAZBBiAAQQh2ZyIAa0EfcXZBAXEgAEEBdGtBP\n mohCAsgCEECdEHkt8EAaigCACIABEAgBkEAQRkgCEEBdmtBH3EgCEEfRht0IQMDQAJAIABBBGooAgBBeHEiBCAGSQ0AIA\n QgBmsiBCAFTw0AIAAhAiAEIgUNAEEAIQUMAwsgAEEUaigCACIEIAEgBCAAIANBHXZBBHFqQRBqKAIAIgBHGyABIAQbIQE\n gA0EBdCEDIAANAAsgAQRAIAEhAAwCCyACDQILQQAhAkECIAhBH3F0IgBBACAAa3IgB3EiAEUNAyAAQQAgAGtxaEECdEHk\n t8EAaigCACIARQ0DCwNAIAAgAiAAQQRqKAIAQXhxIgEgBk8gASAGayIDIAVJcSIEGyECIAMgBSAEGyEFIAAoAhAiAQR/I\n AEFIABBFGooAgALIgANAAsgAkUNAgtB5LjBACgCACIAIAZPQQAgBSAAIAZrTxsNASACKAIYIQcCQAJAIAIgAigCDCIBRg\n RAIAJBFEEQIAJBFGoiAygCACIBG2ooAgAiAA0BQQAhAQwCCyACKAIIIgAgATYCDCABIAA2AggMAQsgAyACQRBqIAEbIQM\n DQCADIQQgACIBQRRqIgMoAgAiAEUEQCABQRBqIQMgASgCECEACyAADQALIARBADYCAAsCQCAHRQ0AAkAgAiACKAIcQQJ0\n QeS3wQBqIgAoAgBHBEAgB0EQQRQgBygCECACRhtqIAE2AgAgAUUNAgwBCyAAIAE2AgAgAQ0AQdi1wQBB2LXBACgCAEF+I\n AIoAhx3cTYCAAwBCyABIAc2AhggAigCECIABEAgASAANgIQIAAgATYCGAsgAkEUaigCACIARQ0AIAFBFGogADYCACAAIA\n E2AhgLAkAgBUEQTwRAIAIgBkEDcjYCBCACIAZqIgcgBUEBcjYCBCAFIAdqIAU2AgAgBUGAAk8EQEEfIQAgB0IANwIQIAV\n B////B00EQCAFQQYgBUEIdmciAGtBH3F2QQFxIABBAXRrQT5qIQALIAcgADYCHCAAQQJ0QeS3wQBqIQQCQAJAAkACQEHY\n tcEAKAIAIgNBASAAQR9xdCIBcQRAIAQoAgAiA0EEaigCAEF4cSAFRw0BIAMhAAwCC0HYtcEAIAEgA3I2AgAgBCAHNgIAI\n AcgBDYCGAwDCyAFQQBBGSAAQQF2a0EfcSAAQR9GG3QhAQNAIAMgAUEddkEEcWpBEGoiBCgCACIARQ0CIAFBAXQhASAAIQ\n MgAEEEaigCAEF4cSAFRw0ACwsgACgCCCIBIAc2AgwgACAHNgIIIAdBADYCGCAHIAA2AgwgByABNgIIDAQLIAQgBzYCACA\n HIAM2AhgLIAcgBzYCDCAHIAc2AggMAgsgBUEDdiIBQQN0Qdy1wQBqIQACf0HUtcEAKAIAIgNBASABdCIBcQRAIAAoAggM\n AQtB1LXBACABIANyNgIAIAALIQUgACAHNgIIIAUgBzYCDCAHIAA2AgwgByAFNgIIDAELIAIgBSAGaiIAQQNyNgIEIAAgA\n moiACAAKAIEQQFyNgIECyACQQhqDwsCQAJAQdS1wQAoAgAiB0EQIABBC2pBeHEgAEELSRsiBkEDdiIBdiICQQNxRQRAIA\n ZB5LjBACgCAE0NAyACDQFB2LXBACgCACIARQ0DIABBACAAa3FoQQJ0QeS3wQBqKAIAIgFBBGooAgBBeHEgBmshBSABIQM\n DQCABKAIQIgBFBEAgAUEUaigCACIARQ0ECyAAQQRqKAIAQXhxIAZrIgIgBSACIAVJIgIbIQUgACADIAIbIQMgACEBDAAL\n AAsCQCACQX9zQQFxIAFqIgVBA3QiAEHktcEAaigCACIDQQhqIgIoAgAiASAAQdy1wQBqIgBHBEAgASAANgIMIAAgATYCC\n AwBC0HUtcEAIAdBfiAFd3E2AgALIAMgBUEDdCIAQQNyNgIEIAAgA2oiACAAKAIEQQFyNgIEIAIPCwJAQQIgAXQiAEEAIA\n BrciACIAF0cSIAQQAgAGtxaCIBQQN0IgBB5LXBAGooAgAiA0EIaiIEKAIAIgIgAEHctcEAaiIARwRAIAIgADYCDCAAIAI\n 2AggMAQtB1LXBACAHQX4gAXdxNgIACyADIAZBA3I2AgQgAyAGaiIFIAFBA3QiACAGayIHQQFyNgIEIAAgA2ogBzYCAEHk\n uMEAKAIAIgAEQCAAQQN2IgJBA3RB3LXBAGohAEHsuMEAKAIAIQgCf0HUtcEAKAIAIgFBASACQR9xdCICcQRAIAAoAggMA\n QtB1LXBACABIAJyNgIAIAALIQMgACAINgIIIAMgCDYCDCAIIAA2AgwgCCADNgIIC0HsuMEAIAU2AgBB5LjBACAHNgIAIA\n QPCyADKAIYIQcCQAJAIAMgAygCDCIBRgRAIANBFEEQIANBFGoiASgCACICG2ooAgAiAA0BQQAhAQwCCyADKAIIIgAgATY\n CDCABIAA2AggMAQsgASADQRBqIAIbIQIDQCACIQQgACIBQRRqIgIoAgAiAEUEQCABQRBqIQIgASgCECEACyAADQALIARB\n ADYCAAsgB0UNAyADIAMoAhxBAnRB5LfBAGoiACgCAEcEQCAHQRBBFCAHKAIQIANGG2ogATYCACABRQ0EDAMLIAAgATYCA\n CABDQJB2LXBAEHYtcEAKAIAQX4gAygCHHdxNgIADAMLAkACQAJAAkACQEHkuMEAKAIAIgEgBkkEQEHouMEAKAIAIgAgBk\n sNA0EAIQUgBkGvgARqIgJBEHZAACIAQX9GDQYgAEEQdCIDRQ0GQfS4wQAgAkGAgHxxIgVB9LjBACgCAGoiAjYCAEH4uME\n AQfi4wQAoAgAiACACIAAgAksbNgIAQfC4wQAoAgAiBEUNAUH8uMEAIQADQCAAKAIAIgEgACgCBCICaiADRg0DIAAoAggi\n AA0ACwwEC0HsuMEAKAIAIQMCfyABIAZrIgJBD00EQEHsuMEAQQA2AgBB5LjBAEEANgIAIAMgAUEDcjYCBCABIANqIgJBB\n GohACACKAIEQQFyDAELQeS4wQAgAjYCAEHsuMEAIAMgBmoiADYCACAAIAJBAXI2AgQgASADaiACNgIAIANBBGohACAGQQ\n NyCyEGIAAgBjYCACADQQhqDwtBkLnBACgCACIAQQAgACADTRtFBEBBkLnBACADNgIAC0GUucEAQf8fNgIAQYC5wQAgBTY\n CAEH8uMEAIAM2AgBB6LXBAEHctcEANgIAQfC1wQBB5LXBADYCAEHktcEAQdy1wQA2AgBB+LXBAEHstcEANgIAQey1wQBB\n 5LXBADYCAEGAtsEAQfS1wQA2AgBB9LXBAEHstcEANgIAQYi2wQBB/LXBADYCAEH8tcEAQfS1wQA2AgBBkLbBAEGEtsEAN\n gIAQYS2wQBB/LXBADYCAEGYtsEAQYy2wQA2AgBBjLbBAEGEtsEANgIAQaC2wQBBlLbBADYCAEGUtsEAQYy2wQA2AgBBiL\n nBAEEANgIAQai2wQBBnLbBADYCAEGctsEAQZS2wQA2AgBBpLbBAEGctsEANgIAQbC2wQBBpLbBADYCAEGstsEAQaS2wQA\n 2AgBBuLbBAEGstsEANgIAQbS2wQBBrLbBADYCAEHAtsEAQbS2wQA2AgBBvLbBAEG0tsEANgIAQci2wQBBvLbBADYCAEHE\n tsEAQby2wQA2AgBB0LbBAEHEtsEANgIAQcy2wQBBxLbBADYCAEHYtsEAQcy2wQA2AgBB1LbBAEHMtsEANgIAQeC2wQBB1\n LbBADYCAEHctsEAQdS2wQA2AgBB6LbBAEHctsEANgIAQfC2wQBB5LbBADYCAEHktsEAQdy2wQA2AgBB+LbBAEHstsEANg\n IAQey2wQBB5LbBADYCAEGAt8EAQfS2wQA2AgBB9LbBAEHstsEANgIAQYi3wQBB/LbBADYCAEH8tsEAQfS2wQA2AgBBkLf\n BAEGEt8EANgIAQYS3wQBB/LbBADYCAEGYt8EAQYy3wQA2AgBBjLfBAEGEt8EANgIAQaC3wQBBlLfBADYCAEGUt8EAQYy3\n wQA2AgBBqLfBAEGct8EANgIAQZy3wQBBlLfBADYCAEGwt8EAQaS3wQA2AgBBpLfBAEGct8EANgIAQbi3wQBBrLfBADYCA\n EGst8EAQaS3wQA2AgBBwLfBAEG0t8EANgIAQbS3wQBBrLfBADYCAEHIt8EAQby3wQA2AgBBvLfBAEG0t8EANgIAQdC3wQ\n BBxLfBADYCAEHEt8EAQby3wQA2AgBB2LfBAEHMt8EANgIAQcy3wQBBxLfBADYCAEHgt8EAQdS3wQA2AgBB1LfBAEHMt8E\n ANgIAQfC4wQAgAzYCAEHct8EAQdS3wQA2AgBB6LjBACAFQVhqIgA2AgAgAyAAQQFyNgIEIAAgA2pBKDYCBEGMucEAQYCA\n gAE2AgAMAwsgAEEMaigCACADIARNciABIARLcg0BIAAgAiAFajYCBEHwuMEAQfC4wQAoAgAiA0EPakF4cSIBQXhqNgIAQ\n ei4wQBB6LjBACgCACAFaiICIAMgAWtqQQhqIgA2AgAgAUF8aiAAQQFyNgIAIAIgA2pBKDYCBEGMucEAQYCAgAE2AgAMAg\n tB6LjBACAAIAZrIgI2AgBB8LjBAEHwuMEAKAIAIgEgBmoiADYCACAAIAJBAXI2AgQgASAGQQNyNgIEIAFBCGohBQwCC0G\n QucEAQZC5wQAoAgAiACADIAAgA0kbNgIAIAMgBWohAUH8uMEAIQACQANAIAEgACgCAEcEQCAAKAIIIgANAQwCCwsgAEEM\n aigCAA0AIAAgAzYCACAAIAAoAgQgBWo2AgQgAyAGQQNyNgIEIAMgBmohBCABIANrIAZrIQYCQAJAIAFB8LjBACgCAEcEQ\n EHsuMEAKAIAIAFGDQEgAUEEaigCACIAQQNxQQFGBEAgASAAQXhxIgAQFSAAIAZqIQYgACABaiEBCyABIAEoAgRBfnE2Ag\n QgBCAGQQFyNgIEIAQgBmogBjYCACAGQYACTwRAQR8hBSAEQgA3AhAgBkH///8HTQRAIAZBBiAGQQh2ZyIAa0EfcXZBAXE\n gAEEBdGtBPmohBQsgBCAFNgIcIAVBAnRB5LfBAGohAQJAAkACQAJAQdi1wQAoAgAiAkEBIAVBH3F0IgBxBEAgASgCACIC\n QQRqKAIAQXhxIAZHDQEgAiEFDAILQdi1wQAgACACcjYCACABIAQ2AgAgBCABNgIYDAMLIAZBAEEZIAVBAXZrQR9xIAVBH\n 0YbdCEBA0AgAiABQR12QQRxakEQaiIAKAIAIgVFDQIgAUEBdCEBIAUiAkEEaigCAEF4cSAGRw0ACwsgBSgCCCIAIAQ2Ag\n wgBSAENgIIIARBADYCGCAEIAU2AgwgBCAANgIIDAULIAAgBDYCACAEIAI2AhgLIAQgBDYCDCAEIAQ2AggMAwsgBkEDdiI\n CQQN0Qdy1wQBqIQACf0HUtcEAKAIAIgFBASACdCICcQRAIAAoAggMAQtB1LXBACABIAJyNgIAIAALIQUgACAENgIIIAUg\n BDYCDCAEIAA2AgwgBCAFNgIIDAILQfC4wQAgBDYCAEHouMEAQei4wQAoAgAgBmoiADYCACAEIABBAXI2AgQMAQtB7LjBA\n CAENgIAQeS4wQBB5LjBACgCACAGaiIANgIAIAQgAEEBcjYCBCAAIARqIAA2AgALIANBCGoPC0H8uMEAIQADQAJAIAAoAg\n AiAiAETQRAIAIgACgCBGoiAiAESw0BCyAAKAIIIQAMAQsLQfC4wQAgAzYCAEHouMEAIAVBWGoiADYCACADIABBAXI2AgQ\n gACADakEoNgIEQYy5wQBBgICAATYCACAEIAJBYGpBeHFBeGoiACAAIARBEGpJGyIBQRs2AgRB/LjBACkCACEJIAFBEGpB\n hLnBACkCADcCACABIAk3AghBgLnBACAFNgIAQfy4wQAgAzYCAEGEucEAIAFBCGo2AgBBiLnBAEEANgIAIAFBHGohAANAI\n ABBBzYCACACIABBBGoiAEsNAAsgASAERg0AIAEgASgCBEF+cTYCBCAEIAEgBGsiBUEBcjYCBCABIAU2AgAgBUGAAk8EQE\n EfIQAgBEIANwIQIAVB////B00EQCAFQQYgBUEIdmciAGtBH3F2QQFxIABBAXRrQT5qIQALIARBHGogADYCACAAQQJ0QeS\n 3wQBqIQMCQAJAAkACQEHYtcEAKAIAIgFBASAAQR9xdCICcQRAIAMoAgAiAkEEaigCAEF4cSAFRw0BIAIhAAwCC0HYtcEA\n IAEgAnI2AgAgAyAENgIAIARBGGogAzYCAAwDCyAFQQBBGSAAQQF2a0EfcSAAQR9GG3QhAQNAIAIgAUEddkEEcWpBEGoiA\n ygCACIARQ0CIAFBAXQhASAAIQIgAEEEaigCAEF4cSAFRw0ACwsgACgCCCICIAQ2AgwgACAENgIIIARBGGpBADYCACAEIA\n A2AgwgBCACNgIIDAMLIAMgBDYCACAEQRhqIAI2AgALIAQgBDYCDCAEIAQ2AggMAQsgBUEDdiICQQN0Qdy1wQBqIQACf0H\n UtcEAKAIAIgFBASACdCICcQRAIAAoAggMAQtB1LXBACABIAJyNgIAIAALIQEgACAENgIIIAEgBDYCDCAEIAA2AgwgBCAB\n NgIIC0EAIQVB6LjBACgCACIAIAZNDQBB6LjBACAAIAZrIgI2AgBB8LjBAEHwuMEAKAIAIgEgBmoiADYCACAAIAJBAXI2A\n gQgASAGQQNyNgIEIAFBCGoPCyAFDwsgASAHNgIYIAMoAhAiAARAIAEgADYCECAAIAE2AhgLIANBFGooAgAiAEUNACABQR\n RqIAA2AgAgACABNgIYCwJAIAVBEE8EQCADIAZBA3I2AgQgAyAGaiIEIAVBAXI2AgQgBCAFaiAFNgIAQeS4wQAoAgAiAAR\n AIABBA3YiAkEDdEHctcEAaiEAQey4wQAoAgAhBwJ/QdS1wQAoAgAiAUEBIAJBH3F0IgJxBEAgACgCCAwBC0HUtcEAIAEg\n AnI2AgAgAAshAiAAIAc2AgggAiAHNgIMIAcgADYCDCAHIAI2AggLQey4wQAgBDYCAEHkuMEAIAU2AgAMAQsgAyAFIAZqI\n gBBA3I2AgQgACADaiIAIAAoAgRBAXI2AgQLIANBCGoLtA8BA38jAEGAC2siAiQAIAJBCGoQSyACQcgBakE4EHIaIAJBAT\n YCgAIgAkGIAmpBOBByGiACQQE2AsACIAJByAJqQTgQchogAkEBNgKAAyACQYgDakE4EHIaIAJBATYCwAMgAkHIA2pBOBB\n yGiACQQE2AoAEIAJBiARqQQEQigEgAkHIBGpBOBByGiACQQE2AoAFIAJBiAVqQTgQchogAkEBNgLABSACQcgFaiABEIUB\n IAJBiAZqQTgQchogAkEBNgLABiACQcgGakE4EHIaIAJBATYCgAcgAkGIB2pBOBByGiACQQE2AsAHIAJByAdqQTgQchogA\n kEBNgKACCACQcgFahBYIQMgAkHICWpB4ITAABBfIAJBiApqIAJByAlqEIsBIAJByAFqIAJBiApqEKUBIAJByAlqQZiFwA\n AQXyACQYgKaiACQcgJahCLASACQYgCaiACQYgKahClASACQcgFahADIAJByAVqQQsQUiACQYgGaiACQcgFahClASACQYg\n GaiACQYgEahB4IAJBiAZqEEQgAkGIBmogAkHIBWoQSCACQYgFaiACQcgBahClASACQYgFaiACQYgGahBIIAJBiAZqIAJB\n iARqEHggAkGIBmoQRCACQYgGaiACQYgCahBIIAJBiAZqEEEgAkGIBmoQRCACQYgDaiACQYgGahClASACQcgDaiACQcgFa\n hClASACQcgDaiACQYgDahBIIAJByAdqIAJBiANqEKUBIAJByAdqEAMgAkHIBmogAkGIBWoQpQEgAkHIBmoQAyACQYgGai\n ACQcgBahClASACQYgGaiACQcgGahBIIAJByAdqIAJBiAZqEHggAkHIB2oQRCACQcgHaiACQYgDahBIIAJByAZqIAJBiAV\n qEEggAkGIBmogAkGIAmoQpQEgAkGIBmogAkHIBmoQSCACQcgHaiACQYgGahB4IAJByAdqEEQgAkGIBmogAkHIB2oQpQEg\n AkGIBmogAkGIBWoQSCACQYgGaiACQYgHahBcIQQgAkGIBWogAkGIBmoQpQEgAkGIBWogAkGIB2oQNCACQYgFaiACQcgHa\n hBIIAJBiANqIAJBiAVqEEggAkHIA2ogAkGIBWoQSCACQcgFaiABEEggAkHIBmogAkGIBWoQpQEgAkHIBmoQAyACQYgFai\n ACQcgGahClASACQYgFaiACQcgFahBIIAJByAVqIAJBiAZqEKUBIAJByAVqQQsQUiACQcgJakHQhcAAEF8gAkGICmogAkH\n ICWoQiwEgAkHIAmogAkGICmoQpQEgAkHIAmogAkGIB2oQSCACQYgDaiACQcgDakEBIARrIgEQeSACQcgGaiACQYgFaiAB\n EHkgAkGIBmogAkHIBWogARB5IAJBiAdqIAJByAJqIAEQeSACQYgKaiACQYgGaiACQYgHahAjIAJByARqIAJBiApqEKUBI\n AJByARqIAJByAZqEEggAkHIBGoQWCEBIAJBiAZqIAJByARqEKUBIAJBiAZqEEEgAkGIBmoQRCACQcgEaiACQYgGaiABIA\n NzEHkgAkGICmpBiIbAABBfIAJBiAhqIAJBiApqEIsBQTghAQNAIAFBoAVGRQRAIAJBiAhqIAJBiANqEEggAkHICWogAUG\n IhsAAahBfIAFBOGohASACQYgKaiACQcgJahCLASACQYgGaiACQYgKahClASACQYgIaiACQYgGahB4IAJBiAhqEEQMAQsL\n IAJByAhqIAJBiANqEIUBIAJByAlqQaiLwAAQXyACQYgKaiACQcgJahCLASACQYgGaiACQYgKahClASACQcgIaiACQYgGa\n hB4IAJByAhqEERBACEBA0AgAUH4A0ZFBEAgAkHICGogAkGIA2oQSCACQcgJaiABQeCLwABqEF8gAUE4aiEBIAJBiApqIA\n JByAlqEIsBIAJBiAZqIAJBiApqEKUBIAJByAhqIAJBiAZqEHggAkHICGoQRAwBCwsgAkGICmpB2I/AABBfIAJBiAlqIAJ\n BiApqEIsBQQAhAQNAIAFByAZGBEACQCACQcgJaiACQYgDahCFASACQcgKakHYlsAAEF8gAkGICmogAkHICmoQiwEgAkGI\n BmogAkGICmoQpQEgAkHICWogAkGIBmoQeCACQcgJahBEQQAhAQNAIAFBkAZGDQEgAkHICWogAkGIA2oQSCACQcgKaiABQ\n ZCXwABqEF8gAUE4aiEBIAJBiApqIAJByApqEIsBIAJBiAZqIAJBiApqEKUBIAJByAlqIAJBiAZqEHggAkHICWoQRAwACw\n ALBSACQYgJaiACQYgDahBIIAJByAlqIAFBkJDAAGoQXyABQThqIQEgAkGICmogAkHICWoQiwEgAkGIBmogAkGICmoQpQE\n gAkGICWogAkGIBmoQeCACQYgJahBEDAELCyACQYgJaiACQcgEahBIIAJBiAZqIAJBiAhqEKUBIAJBiAZqIAJByAlqEEgg\n AkEIaiACQYgGahClASACQYgGaiACQYgJahClASACQYgGaiACQcgIahBIIAJByABqIAJBiAZqEKUBIAJBiAZqIAJByAhqE\n KUBIAJBiAZqIAJByAlqEEggAkGIAWogAkGIBmoQpQEgACACQQhqQcABEGcaIAJBgAtqJAALzQ0CE38IfiMAQYADayIBJA\n AgADQCOCIUIBR+QoCAgBBaBEAgABASCyABQeABakHoABByGiABQcgBaiAAKQMAIhggGEI/hyIZIBggGRAxIAEgASkDyAE\n iFEL//////////wODNwPYASABQdABaikDACIXQgaGIBRCOoiEIRUgF0I6iCEaIABBCGoiCyEFIAAhBkEBIQcDQCAHQQZP\n BEAgAEEYaiEMIABBKGohCyAAQRBqIQcgACkDMCEYQQQhBkEAIQkgAUGgAWohDUEDIQpBAiEIQQchBQJAAkADQCAFQQpLD\n QIgBiAIIAYgCEsbIQ4gBiAKIAYgCksbQQN0QWhqIQ8gAUGYAWogBUEDdCIQIABqQVBqKQMAIhQgFEI/hyAYIBhCP4ciGR\n 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\n OBByGiACQQE2AvgMIAJBgA1qQTgQchogAkG4DWpBATYCACACQYAIakE4EHIaIAJBATYCuAggAkHACGpBOBByGiACQfgIa\n kEBNgIAIAJBgApqIABBgANqIgMQXiACQYAIaiACQYAKahCQASACQYAKaiABQYADaiIFEF4gAkGACGogAkGACmoQDyACQc\n AMahCpASAERQRAIAJBgApqIAMQXiACQcAMaiACQYAKahCQASACQYAKaiABQYACahBeIAJBwAxqIAJBgApqEA8LIAAoAoA\n GQQRHBEAgAkGACmogAEGAAmoQXiACQcAMaiACQYAKahCQASACQYAKaiAFEF4gAkHADGogAkGACmoQDwsgAkGABGogAkHA\n DGogAkGACGoQoQEgAkGABGoQZgsgAkGACGogABCOASACQYAKaiABEI4BIAJBgAhqIABBgAJqIgQQlgEgAkGACGoQrAEgA\n kGACmogAUGAAmoiBRCWASACQYAKahCsASACQYACaiACQYAIahCSASACQYACaiACQYAKahAZIAJBgAhqIAQQkgEgAkGACG\n ogAEGABGoiAxCWASACQYAIahCsASACQYAKaiAFEJIBIAJBgApqIAFBgARqIgUQlgEgAkGACmoQrAEgAkGABmogAkGACGo\n QkgEgAkGABmogAkGACmoQGSACQYAIaiACEJIBIAJBgAhqECsgAkGACmogAkGABGoQkgEgAkGACmoQKyACQYACaiACQYAI\n ahCWASAEIAJBgAJqEJIBIAQgAkGACmoQlgEgAkGABmogAkGACmoQlgEgAkGABGogAkGACGoQlgEgAkGACGogABCSASACQ\n YAIaiADEJYBIAJBgAhqEKwBIAJBgApqIAEQkgEgAkGACmogBRCWASACQYAKahCsASACQYAIaiACQYAKahAZIAJBgARqIA\n JBgAhqEJYBIAJBgAhqIAMQkgEgAkGACGogBRAZIAJBgApqIAJBgAhqEJIBIAJBgApqECsgAyACQYAEahCSASADIAJBgAp\n qEJYBIAJBgAZqIAJBgApqEJYBIAJBgAhqEGYgBCACQYAIahCWAQwDCyAAIAEQBgwECyACQcAMaiABQYAFahBeIAJBgAxq\n IAJBwAxqQcAAEGcaIAJBgAZqIAJBgAxqEKMBCyACQYAGahBmIAJBgAhqIAIQkgEgAkGACGoQKyACQYACaiACQYAIahCWA\n SAFIAJBgAJqEJIBIAJBgARqIAJBgAhqEJIBIAJBgAhqIAAQkgEgAkGACGogAxCWASACQYAIahCsASACQYAKaiABEJIBIA\n JBgApqIAFBgARqEJYBIAJBgApqEKwBIAJBgAhqIAJBgApqEBkgAkGABGogAkGACGoQlgEgAkGACGogAxCSAQJAIARBAkc\n EQCACQcAMaiABQYAFahBeIAJBgAhqIAJBwAxqEKIBDAELIAJBwAxqIAFBgAVqEF4gAkGADGogAkHADGpBwAAQZxogAkGA\n CGogAkGADGoQowELIAJBgAhqEGYgAkGACmogAkGACGoQkgEgAkGACmoQKyADIAJBgARqEJIBIAMgAkGACmoQlgEgAkGAB\n mogAkGACmoQlgEgAkGACGoQZiAFIAJBgAhqEJYBCyACQYAGahCsASACQYAGahBmIAAgAhCSASAAIAJBgAZqEJYBIABBBT\n YCgAYgABCZAQwBCyAAIAEQbAsgAkHADWokAAuaCQIPfwt+IwBBwAJrIgIkACACQeAAakGgp8AAEF8gAEE4EHIhDCACQZg\n BakHwABByGiACQZACakEwEHIaIAwQdCACIAEpAwAiFEL9//P/z///+QF+Qv//////////A4MiETcDiAIgAkHQAGogEUIA\n IAIpA2AiGCAYQj+HIhoQMSAUIAIpA1AiEXwiFiARVK0gAkHYAGopAwAgFEI/h3x8IhRCOocgASkDCCIRQj+HfCARIBRCB\n oYgFkI6iIQiEXwiEiARVK18IRNBASEDAkADQAJAIANBB0YEQCACQZACaiEJIAJB6ABqIQpBByEEIAJB4ABqIQ0gAkGIAm\n ohDkEGIQ8MAQsgA0EBdiIAQQFqIQUgCiAAayEGIAkgAEEDdCIHayEAIAdBCGohCCACQUBrIANBA3QiBCACQeAAamopAwA\n iFiAWQj+HIhQgAikDiAIiESARQj+HEDEgAkHIAGopAwAgEiAVfCIRIBJUrSATIBd8fHwgESACKQNAfCITIBFUrXwhEiAD\n QQFqIQcDQCADIAVNBEAgAkGIAmogBGogE0L9//P/z///+QF+Qv//////////A4MiETcDACACQTBqIBFCACAYIBoQMSACQ\n SBqIBFCACAWIBQQMSACQZgBaiADQQR0aiIAIAJBKGopAwAiGzcDCCAAIAIpAyAiGTcDACACKQMwIhEgE3wiFiARVK0gAk\n E4aikDACASfHwiFEI6hyABIAdBA3RqKQMAIhFCP4d8IBEgFEIGhiAWQjqIhCIRfCISIBFUrXwhEyAVIBl8IhUgGVStIBc\n gG3x8IRcgCUEIaiEJIApBAWohCiAHIQMMAwsgBkEGSw0DIAJBEGogAkHgAGogCGopAwAgAkHgAGogAGopAwB9IhEgEUI/\n hyACQYgCaiAAaikDACACQYgCaiAIaikDAH0iESARQj+HEDEgAikDECIRIBN8IhMgEVStIAJBGGopAwAgEnx8IRIgBUEBa\n iEFIABBeGohACAGQX9qIQYgCEEIaiEIDAALAAsLA0ACQCAEQQ1HBEAgDyAEQQF2IgBrIQUgDiAAQQN0IgtrIRAgDSALay\n EIIBMgF3wgEiAVfCITIBJUrXwhEiAEQQFqIQdBMCEAIAkhBiAKIQMDQCAAIAtGDQIgBUEGTQRAIAIgAyALaikDACAAIAh\n qKQMAfSIRIBFCP4cgACAQaikDACAGIAtqKQMAfSIRIBFCP4cQMSACKQMAIhEgE3wiEyARVK0gAkEIaikDACASfHwhEiAF\n QX9qIQUgBkEIaiEGIANBCGohAyAAQXhqIQAMAQsLIAVBB0HknsAAEDwACyAMIBJC//////////8DgzcDMCACQcACaiQAD\n wsgBEEDdCAMakFIaiATQv//////////A4M3AwAgEkI6hyABIAdBA3RqKQMAIhFCP4d8IBEgEkIGhiATQjqIhCIRfCISIB\n FUrXwhEyAXIARBBHQgAmpBOGoiAEEIaikDAH0gFSAAKQMAIhFUrX0hFyAOQQhqIQ4gDUEIaiENIA9BAWohDyAVIBF9IRU\n gByEEDAALAAsgBkEHQdSewAAQPAAL+QkBBH8jAEGACWsiAiQAIAJBgAhqIAAQXiACIAJBgAhqEF4gAkGACGogAEGAAWoi\n BBBeIAJBgAFqIAJBgAhqEF4gAkGACGogARBeIAIgAkGACGoQDyACQYAIaiABQYABaiIFEF4gAkGAAWogAkGACGoQDyAAK\n AKABiEDAkACQCABKAKABkECRwRAIANBAkYNASACQYAIaiAAQYAFahBeIAJBgAJqIAJBgAhqEF4gAkGACGogAUGABWoQXi\n ACQYACaiACQYAIahAPDAILIANBAkYEQCACQYAIaiAAQYAFahBeIAJBgAdqIAJBgAhqQcAAEGcaIAJBgAZqIAJBgAdqEIU\n BIAJBgAhqIAFBgAVqEF4gAkGAB2ogAkGACGpBwAAQZxogAkGABmogAkGAB2oQSCACQYAIakE4EHIaIAJBATYCuAggAkHA\n CGpBOBByIAJB+AhqQQE2AgAgAkGACGogAkGABmoQpQEQsgEgAkGAAmogAkGACGpBgAEQZxoMAgsgAkGACGogAEGABWoQX\n iACQYACaiACQYAIahBeIAJBgAhqIAFBgAVqEF4gAkGAB2ogAkGACGpBwAAQZxogAkGAAmogAkGAB2oQoAEMAQsgAkGACG\n ogAUGABWoQXiACQYACaiACQYAIahBeIAJBgAhqIABBgAVqEF4gAkGAB2ogAkGACGpBwAAQZxogAkGAAmogAkGAB2oQoAE\n LIAJBgAhqIAAQXiACQYADaiACQYAIahBeIAJBgAhqIAEQXiACQYAEaiACQYAIahBeIAJBgAhqIAQQXiACQYADaiACQYAI\n ahCVASACQYADahCoASACQYAIaiAFEF4gAkGABGogAkGACGoQlQEgAkGABGoQqAEgAkGABWogAkGAA2oQXiACQYAFaiACQ\n YAEahAPIAJBgAZqIAIQXiACQYAGaiACQYABahCVASACQYAGahA6IAJBgAVqIAJBgAZqEJUBIAJBgAhqIAAQXiACQYADai\n ACQYAIahCQASACQYAIaiAAQYAFaiIDEF4gAkGAA2ogAkGACGoQlQEgAkGAA2oQqAEgAkGACGogARBeIAJBgARqIAJBgAh\n qEJABIAJBgAhqIAFBgAVqIgEQXiACQYAEaiACQYAIahCVASACQYAEahCoASACQYAHaiACQYADahBeIAJBgAdqIAJBgARq\n EA8gAkGABmogAhCQASACQYAGaiACQYACahCVASACQYAGahA6IAJBgAdqIAJBgAZqEJUBIAJBgAhqIAQQXiACQYADaiACQ\n YAIahCQASACQYAIaiADEF4gAkGAA2ogAkGACGoQlQEgAkGAA2oQqAEgAkGACGogBRBeIAJBgARqIAJBgAhqEJABIAJBgA\n hqIAEQXiACQYAEaiACQYAIahCVASACQYAEahCoASACQYAIaiACQYADahBeIAJBgAhqIAJBgARqEA8gAkGABmogAkGAAWo\n QkAEgAkGABmogAkGAAmoQlQEgAkGABmoQOiACQYAIaiACQYAGahCVASACQYABahBVIAIgAkGAAWoQlQEgACACIAJBgAVq\n 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\n GogAkGABWoQfSACQYAEahCoASACQYAFaiAAEJABIAJBgAVqIAQQlQEgAkGABWoQqAEgAkGABmogARBeIAJBgAZqIAYQlQ\n EgAkGABmoQqAEgAkGABWogAkGABmoQDyACQYAGaiACEJABIAJBgAZqIAJBgAJqEJUBIAJBgAZqIAJBgAVqELUBIAJBgAZ\n qEKgBIAJBgAVqIAIQkAEgAkGABWogAhCVASACIAJBgAVqEJUBIAIQqAEgAkGAAmpBDBCfASACQYACahBVIAJBgAJqEKgB\n IAJBgAdqIAJBgAFqEF4gAkGAB2ogAkGAAmoQlQEgAkGAB2oQqAEgAkGAAWogAkGAAmoQfSACQYABahCoASACQYAGakEME\n J8BIAJBgAZqEFUgAkGABmoQqAEgAkGABWogAkGABmoQkAEgAkGABWogAkGABGoQDyACQYACaiACQYADahCQASACQYACai\n ACQYABahAPIAJBgAVqIAJBgAJqELUBIAJBgAZqIAIQDyACQYABaiACQYAHahAPIAJBgAZqIAJBgAFqEJUBIAIgAkGAA2o\n QDyACQYAHaiACQYAEahAPIAJBgAdqIAIQlQEgACACQYAFahCQASAAEKgBIAMgAkGABmoQkAEgAxCoASAEIAJBgAdqEJAB\n IAQQqAEgAkGACGokAAv2BQEFfyMAQYAEayICJAAgAiAAEIUBIAIgARBIIAJBQGsgAEFAayIDEIUBIAJBQGsgAUFAayIFE\n EggAkGAAWogAEGAAWoiBBCFASACQYABaiABQYABaiIGEEggAkHAAWogABCFASACQcABaiADEHggAkHAAWoQRCACQYACai\n ABEIUBIAJBgAJqIAUQeCACQYACahBEIAJBwAFqIAJBgAJqEEggAkGAAmogAhClASACQYACaiACQUBrEHggAkHAAWogAkG\n AAmoQgAEgAkHAAWoQRCACQYACaiADEKUBIAJBgAJqIAQQeCACQYACahBEIAJBwAJqIAUQhQEgAkHAAmogBhB4IAJBwAJq\n EEQgAkGAAmogAkHAAmoQSCACQcACaiACQUBrEKUBIAJBwAJqIAJBgAFqEHggAkGAAmogAkHAAmoQgAEgAkGAAmoQRCACQ\n cACaiAAEKUBIAJBwAJqIAQQeCACQcACahBEIAJBgANqIAEQhQEgAkGAA2ogBhB4IAJBgANqEEQgAkHAAmogAkGAA2oQSC\n ACQYADaiACEKUBIAJBgANqIAJBgAFqEHggAkGAA2ogAkHAAmoQswEgAkGAA2oQRCACQcACaiACEKUBIAJBwAJqIAIQeCA\n CIAJBwAJqEHggAhBEIAJBgAFqQQwQUiACQcADaiACQUBrEIUBIAJBwANqIAJBgAFqEHggAkHAA2oQRCACQUBrIAJBgAFq\n EIABIAJBQGsQRCACQYADakEMEFIgAkHAAmogAkGAA2oQpQEgAkHAAmogAkGAAmoQSCACQYABaiACQcABahClASACQYABa\n iACQUBrEEggAkHAAmogAkGAAWoQswEgAkGAA2ogAhBIIAJBQGsgAkHAA2oQSCACQYADaiACQUBrEHggAiACQcABahBIIA\n JBwANqIAJBgAJqEEggAkHAA2ogAhB4IAAgAkHAAmoQpQEgABBEIAMgAkGAA2oQpQEgAxBEIAQgAkHAA2oQpQEgBBBEIAJ\n BgARqJAALxQUBBH8jAEHwEmsiACQAIAAQOEF/IQEgABCIAUUEQCAAQYADakE4EHIaIABBuANqQTgQchogAEG4A2ogAEGA\n A2oQVCAAQfAKakG4gMAAEF8gAEHwDWpB8IDAABBfIABB8ANqIABB8ApqIABB8A1qEEkgAEHwBGpBOBByGiAAQQE2AqgFI\n ABBsAVqQTgQchogAEHoBWpBATYCACAAQfAFakE4EHIaIABBATYCqAYgAEGwBmpBOBByGiAAQegGakEBNgIAIABB8AZqQT\n gQchogAEEBNgKoByAAQbAHakE4EHIaIABB6AdqQQE2AgBBf2ohAyAAQfAHahAqIABB8AdqIAAQfiAAQfAKahAqIABB8Ap\n qIABB8AdqEH4gAEHwDWoQKiAAQfANaiAAQfAHahB+IABB8A1qEJwBAkACQAJAA0AgAiEBIANBAkkNAyAAQfAKaiAAQfAE\n aiAAQfAFaiAAQfAGahAlIAFBxABNBEAgAEHwEGogAEHwBGogAEHwBWogAEHwBmoQRiABQQh0QdCrwABqIABB8BBqEJIBI\n AFBAWohAgJAAkAgAEG4A2ogA0F/aiIDEFcgAEGAA2ogAxBXa0EBag4DAQMAAwsgAEHwCmogAEHwB2ogAEHwBGogAEHwBW\n ogAEHwBmoQHiABQcMASw0DIABB8BBqIABB8ARqIABB8AVqIABB8AZqEEYgAkEIdEHQq8AAaiAAQfAQahCSASABQQJqIQI\n MAgsgAEHwCmogAEHwDWogAEHwBGogAEHwBWogAEHwBmoQHiABQcMASw0DIABB8BBqIABB8ARqIABB8AVqIABB8AZqEEYg\n AkEIdEHQq8AAaiAAQfAQahCSASABQQJqIQIMAQsLIAFBxQBBvIHAABA8AAtBxQBBxQBBzIHAABA8AAtBxQBBxQBB3IHAA\n BA8AAtBACEBCyAAQfASaiQAIAEL8gQBBH8jAEGADGsiAiQAIAIgABCOASACQYACahAvIAJBgARqIABBgAJqIgMQjgEgAk\n GABmoQLyACQYAIaiAAEI4BIAJBgApqIAEQjgEgAiABEBkgAkGABGogAUGAAmoiBBAZIAJBgAhqIAMQlgEgAkGACmogBBC\n WASACQYAIahCsASACQYAKahCsASACQYACaiACQYAIahCSASACQYACaiACQYAKahAZIAJBgAhqIAMQkgEgAkGACGogAEGA\n BGoiBRCWASACQYAKaiAEEJIBIAJBgApqIAFBgARqIgQQlgEgAkGACGoQrAEgAkGACmoQrAEgAkGABmogAkGACGoQkgEgA\n kGABmogAkGACmoQGSACQYAIaiACEJIBIAJBgAhqECsgAkGACmogAkGABGoQkgEgAkGACmoQKyACQYACaiACQYAIahCWAS\n ADIAJBgAJqEJIBIAMgAkGACmoQlgEgAkGABmogAkGACmoQlgEgAkGABGogAkGACGoQlgEgAkGACGogABCSASACQYAIaiA\n FEJYBIAJBgAhqEKwBIAJBgApqIAEQkgEgAkGACmogBBCWASACQYAKahCsASACQYAIaiACQYAKahAZIAJBgARqIAJBgAhq\n EJYBIAJBgAhqIAUQkgEgAkGACGogBBAZIAJBgApqIAJBgAhqEJIBIAJBgApqECsgBSACQYAEahCSASAFIAJBgApqEJYBI\n AJBgAZqIAJBgApqEJYBIAJBgAhqEGYgAyACQYAIahCWASACQYAGahCsASACQYAGahBmIAAgAhCSASAAIAJBgAZqEJYBIA\n BBBTYCgAYgABCZASACQYAMaiQAC68EAQV/IwBBkAZrIgIkACAAQUBrIQQCQCABQfgAaigCACABKAI4aqwgAEH4AGooAgA\n iAyAAKAI4IgVqrH5CgICAEFMNACAFQQJOBH8gABASIAAoAngFIAMLQQJIDQAgBBASCyACQaCnwAAQX0EAIQMgAkE4akHw\n ABByGiABQUBrIQUDQCADQThGBEAgAkHwAGohBkEAIQMDQCADQThGRQRAIAMgBmogAiADaikDADcDACADQQhqIQMMAQsLI\n AJBqAFqIAAQXyACQeABaiABEF8gAkGYAmogACABEAggAkGIA2ogBCAFEAggAkGoAWogBBBhIAJBqAFqEEQgAkHgAWogBR\n BhIAJB4AFqEEQgAkH4A2ogAkGoAWogAkHgAWoQCEEAIQMgAkHoBGpB8AAQchoDQCADQfAARkUEQCACQegEaiADaiACQZg\n CaiADaikDADcDACADQQhqIQMMAQsLIAJB6ARqIAJBiANqEGVBACEDA0AgA0HwAEZFBEAgAkGIA2ogA2oiASACQThqIANq\n KQMAIAEpAwB9NwMAIANBCGohAwwBCwsgAkGYAmogAkGIA2oQZSACQZgCahBFIAJB+ANqIAJB6ARqEGQgAkH4A2oQRSACQ\n dgFaiACQZgCahAFIAAgAkHYBWoQayAAQQM2AjggAkHYBWogAkH4A2oQBSAEIAJB2AVqEGsgAEECNgJ4IAJBkAZqJAAFIA\n JBOGogA2pCADcDACADQQhqIQMMAQsLC5QEAQF/IwBB0CJrIgMkACADQcAWakG4gMAAEF8gA0HIHGpB8IDAABBfIANBCGo\n gA0HAFmogA0HIHGoQSSADQYgBakE4EHIaIANBwAFqQTgQchogA0H4AWoQKgJAIAIQhAFFBEAgA0H4BGoQKiADQfgEaiAB\n EH4gA0H4BGoQSiADQfgHahBLIANB+AdqIAIQfyADQfgHahBHIANByBxqIANB+AdqEIUBIANBuAlqIANByBxqEIUBIANBy\n BxqIANBuAhqEIUBIANB+AlqIANByBxqEIUBIANBuApqECogA0G4DWoQYCADQbgKaiADQfgEahB+IANBwBNqECogA0HAE2\n ogA0H4BGoQfiADQcATahCcASADQcABaiADQYgBahBUQX9qIQIDQCACQQFNBEAgA0G4DWoQkwEgACADQbgNakGIBhBnGgw\n DBSADQbgNahAbIANBwBZqIANBuApqIANBuAlqIANB+AlqEBcCQAJAAkAgA0HAAWogAkF/aiICEFcgA0GIAWogAhBXa0EB\n ag4DAQIAAgsgA0HIHGogA0G4CmogA0H4BGogA0G4CWogA0H4CWoQFiADQcAWaiADQcgcahAGDAELIANByBxqIANBuApqI\n ANBwBNqIANBuAlqIANB+AlqEBYgA0HAFmogA0HIHGoQBgsgA0G4DWogA0HAFmoQBAwBCwALAAsgABBgCyADQdAiaiQAC8\n MDARV/A0AgAUHAAUYEQAJAIABBKGohCyAAQRRqKAIAIgwhCCAAQRBqKAIAIg0hAyAAQQxqKAIAIg4hAiAAKAIIIg8hASA\n AQRhqKAIAIhAhCiAAQRxqKAIAIhEhBCAAQSBqKAIAIhIhByAAQSRqKAIAIhMhBgNAIAchCSAEIQcgCiEEIAVBgAJGDQEg\n AiADcSEUIAIgA3MhFSAFIAtqKAIAIAVB9J7AAGooAgAgBEEadyAEQRV3cyAEQQd3cyAGaiAJIARBf3NxIAQgB3FyampqI\n gYgCGohCiAFQQRqIQUgAyEIIAIhAyABIQIgAUEedyABQRN3cyABQQp3cyAUIAEgFXFzaiAGaiEBIAkhBgwACwALBSAAIA\n FqIgNB6ABqIANBzABqKAIAIANBKGooAgAgA0EsaigCACICQRl3IAJBDndzIAJBA3ZzIANB4ABqKAIAIgJBD3cgAkENd3M\n gAkEKdnNqamo2AgAgAUEEaiEBDAELCyAAIAYgE2o2AiQgACAJIBJqNgIgIAAgByARajYCHCAAIAQgEGo2AhggACAIIAxq\n NgIUIAAgAyANajYCECAAIAIgDmo2AgwgACABIA9qNgIIC9YDAgZ/An4jAEHwAGsiASQAIAFBoKfAABBfIAFBOGogARBfI\n AAQRAJAAkACQCABAn8gACgCOCICQRBMBEAgAkF/ahA5DAELIAEpAzAiCEIBfCIHIAhUDQEgACkDMCIIQoCAgICAgICAgH\n 9RQQAgB0J/URsNAiABQThqIAggB3+nECghByABIAEpA2ggB0I6hnw3A2ggACABQThqEGIgABBEQQILIgMQLSAAQQhqIQQ\n DQCADRQ0DIAEgASkDCEI5hkKAgICAgICAgAKDIAEpAwBCAYeEIgc3AwAgASAAKQMAIAd9IgdC//////////8DgzcDOEEA\n IQIDQCAHQjqHIQcgAkEoRkUEQCABIAJqIgVBCGoiBiAFQRBqKQMAQjmGQoCAgICAgICAAoMgBikDAEIBh4QiCDcDACABI\n AJqQUBrIAIgBGopAwAgCH0gB3wiB0L//////////wODNwMAIAJBCGohAgwBCwsgASABKQMwQgGHIgg3AzAgASAAKQMwIA\n h9IAd8Igc3A2ggACABQThqIAdCP4enQQFqEE8gA0F/aiEDDAALAAtBoKLAAEEZQbyiwAAQWwALQdCiwABBH0G8osAAEFs\n ACyAAQQE2AjggAUHwAGokAAuhAwEBfyMAQZADayIGJAAgBkEIakHAABByGiAGQcgAakGoAhByGiAGQcgAahBDA0AgAQRA\n IAZByABqQQAQPiABQX9qIQEMAQUCQCACBEAgBkHIAGogAiADEHoLIAQEQCAGQcgAaiAEIAUQegsgBkGIA2pCADcDACAGQ\n YADakIANwMAIAZB+AJqQgA3AwAgBkIANwPwAiAGKAJIIQEgBigCTCECIAZByABqQYABED4DQCAGKAJIQf8DcUHAA0ZFBE\n AgBkHIAGpBABA+DAELCyAGQawBaiABNgIAIAZBqAFqIAI2AgAgBkHIAGoQEUEAIQJBACEBA0AgAUEgRkUEQCAGQfACaiA\n BaiABQXxxIAZqQdAAaigCACACQX9zQRhxdjoAACACQQhqIQIgAUEBaiEBDAELCyAGQcgAahBDQQAhAQNAIAFBIEZFBEAg\n BkEIaiABaiAGQfACaiABai0AADoAACABQQFqIQEMAQsLQQAhAQNAIAFBIEYNASAAIAFqIAZBCGogAWotAAA6AAAgAUEBa\n iEBDAALAAsLCyAGQZADaiQAC6EDAQN/IwBBgAZrIgEkACABIABBgAFqIgMQXiABQYABaiADEF4gAUGAAWoQMiABQYACai\n ABEF4gAUGAAmogAEGAAmoiAhAPIAFBgANqIAIQXiABQYADahAyIAIgAUGAAWoQkAEgAiABQYABahCVASACEKgBIAIQpwE\n gAhCnASACEKgBIAFBgANqQQwQnwEgAUGAA2oQVSABQYADahCoASABQYAEaiABQYADahBeIAFBgARqIAIQDyABQYAFaiAB\n QYABahBeIAFBgAVqIAFBgANqEJUBIAFBgAVqEKgBIAIgAUGAAmoQDyABQYACaiABQYADahCQASABQYACaiABQYADahCVA\n SABQYADaiABQYACahCVASABQYADahCoASABQYABaiABQYADahB9IAFBgAFqEKgBIAFBgAVqIAFBgAFqEA8gAUGABWogAU\n GABGoQlQEgAUGAAmogABCQASABQYACaiABEA8gACABQYABahCQASAAEKgBIAAgAUGAAmoQDyAAEKcBIAAQqAEgAyABQYA\n FahCQASADEKgBIAFBgAZqJAALhQMBBH8CQAJAIAFBgAJPBEAgAEEYaigCACEEAkACQCAAIAAoAgwiAkYEQCAAQRRBECAA\n QRRqIgIoAgAiAxtqKAIAIgENAUEAIQIMAgsgACgCCCIBIAI2AgwgAiABNgIIDAELIAIgAEEQaiADGyEDA0AgAyEFIAEiA\n kEUaiIDKAIAIgFFBEAgAkEQaiEDIAIoAhAhAQsgAQ0ACyAFQQA2AgALIARFDQIgACAAQRxqKAIAQQJ0QeS3wQBqIgEoAg\n BHBEAgBEEQQRQgBCgCECAARhtqIAI2AgAgAkUNAwwCCyABIAI2AgAgAg0BQdi1wQBB2LXBACgCAEF+IAAoAhx3cTYCAA8\n LIABBDGooAgAiAiAAQQhqKAIAIgBHBEAgACACNgIMIAIgADYCCA8LQdS1wQBB1LXBACgCAEF+IAFBA3Z3cTYCAAwBCyAC\n IAQ2AhggACgCECIBBEAgAiABNgIQIAEgAjYCGAsgAEEUaigCACIARQ0AIAJBFGogADYCACAAIAI2AhgLC7MCAQF/IwBBg\n AtrIgUkACAFEC8gBUGAAmoQLyAFQYAEahAvIAVBgAZqQTgQchogBUEBNgK4BiAFQcAGakE4EHIaIAVB+AZqQQE2AgAgBU\n GAB2pBOBByGiAFQQE2ArgHIAVBwAdqQTgQchogBUH4B2pBATYCACAFQYAIakE4EHIaIAVBATYCuAggBUHACGpBOBByGiA\n FQfgIakEBNgIAIAEgAiAFQYAGaiAFQYAHaiAFQYAIahAeIAVBgAhqIAMQoAEgBUGABmogBBCgASAFQYAJaiAFQYAGaiAF\n QYAHahCRASAFIAVBgAlqEJIBIAVBgAlqIAVBgAhqEJsBIAVBgARqIAVBgAlqEJIBIAVBgARqEGYgACAFIAVBgAJqIAVBg\n ARqEHYgAEEDNgKABiAFQYALaiQAC7ECAQF/IwBBgAtrIgQkACAEEC8gBEGAAmoQLyAEQYAEahAvIARBgAZqQTgQchogBE\n EBNgK4BiAEQcAGakE4EHIaIARB+AZqQQE2AgAgBEGAB2pBOBByGiAEQQE2ArgHIARBwAdqQTgQchogBEH4B2pBATYCACA\n EQYAIakE4EHIaIARBATYCuAggBEHACGpBOBByGiAEQfgIakEBNgIAIAEgBEGABmogBEGAB2ogBEGACGoQJSAEQYAIaiAC\n EKABIARBgAZqIAMQoAEgBEGACWogBEGABmogBEGAB2oQkQEgBCAEQYAJahCSASAEQYAJaiAEQYAIahCbASAEQYAEaiAEQ\n YAJahCSASAEQYAEahBmIAAgBCAEQYACaiAEQYAEahB2IABBAzYCgAYgBEGAC2okAAvJAgEDfyMAQcACayIBJAAgASAAQU\n BrIgMQhQEgARADIAFBQGsgAxCFASABQUBrIABBgAFqIgIQSCABQYABaiACEIUBIAFBgAFqEAMgAiABEKUBIAIgARB4IAI\n QRCACEE4gAhBOIAIQRCABQYABakEMEFIgAUHAAWogAUGAAWoQhQEgAUHAAWogAhBIIAFBgAJqIAEQhQEgAUGAAmogAUGA\n AWoQeCABQYACahBEIAIgAUFAaxBIIAFBQGsgAUGAAWoQpQEgAUFAayABQYABahB4IAFBgAFqIAFBQGsQeCABIAFBgAFqE\n IABIAEQRCABQYACaiABEEggAUGAAmogAUHAAWoQeCABQUBrIAAQpQEgAUFAayADEEggACABEKUBIAAQRCAAIAFBQGsQSC\n AAEE4gABBEIAMgAUGAAmoQpQEgAxBEIAFBwAJqJAALrQIBA38jAEGABGsiAiQAIAIgABBeIAJBgAFqIABBgAFqIgMQXiA\n CQYACakE4EHIaIAJBATYCuAIgAkHAAmpBOBByGiACQfgCakEBNgIAIAJBgANqIAMQXiACIAEQDyACQYABaiABQYABaiIE\n EA8gAkGAAmogBBCQASACQYACaiABEJUBIAJBgANqIAAQlQEgAkGAAmoQqAEgAkGAA2oQqAEgAkGAA2ogAkGAAmoQDyACQ\n YACaiACEJABIAJBgAJqEDogAkGAA2ogAkGAAmoQlQEgAkGAA2oQqAEgAkGAAmogAkGAAWoQkAEgAkGAAmoQOiADIAJBgA\n NqEJABIAMgAkGAAmoQlQEgAkGAAWoQVSAAIAJBgAFqEJABIAAgAhCVASAAEKwBIAJBgARqJAALvQIBA38jAEGACGsiASQ\n AIAEgABCOASABQYACaiAAQYAEaiICEI4BIAFBgARqIABBgAJqIgMQjgEgAUGABmoQLyAAECIgAUGABmogABCSASABQYAG\n aiAAEJYBIAAgAUGABmoQlgEgABCsASABELYBIAEQrwEgACABEJYBIAFBgAJqECIgAUGAAmoQZiABQYAGaiABQYACahCSA\n SABQYAGaiABQYACahCWASABQYACaiABQYAGahCWASABQYACahCsASABQYAEahAiIAFBgAZqIAFBgARqEJIBIAFBgAZqIA\n FBgARqEJYBIAFBgARqIAFBgAZqEJYBIAFBgARqEKwBIAMQrgEgAxCvASACELYBIAIQrwEgAyABQYACahCWASACIAFBgAR\n qEJYBIABBBTYCgAYgABCaASABQYAIaiQAC7ICAQN/IwBBgAhrIgEkACAAKAKABkEBRwRAIAEgABCOASABQYACaiAAQYAC\n aiIDEI4BIAFBgARqIABBgARqIgIQjgEgAUGABmogABCOASABECIgAUGAAmogAhAZIAFBgAJqEK8BIAFBgAJqEKwBIAFBg\n ARqECIgAUGABmogAxAZIAFBgAZqEK8BIAIgABCWASACIAMQlgEgAhCsASACECIgACABEJIBIAEgAUGAAmoQlgEgARCsAS\n ABIAFBgARqEJYBIAEgAUGABmoQlgEgARCsASABECsgAUGAAmoQZiABQYAEahBmIAAgAUGAAmoQlgEgAyABQYAEahCSASA\n DIAFBgAZqEJYBIAIgARCWASAAQQRBBSAAKAKABkF+cUECRhs2AoAGIAAQmQELIAFBgAhqJAALigIBAn8jAEHgAWsiAiQA\n IAAQRCACQQhqQTAQchogAkIBNwMAIAJBOGogABBfIAJB8ABqIAEQXyACQagBakE4EHIaIAAQdANAIAJBOGogAkHwAGoQN\n UF/TARAA0ACQCADQQBMDQAgAkHwAGpBARA7IAJBARA7IAJBqAFqIAJBOGoQayACQagBaiACQfAAahBiIAJBqAFqEEQgAk\n E4aiACQagBaiACKQPYAUI/h6dBAWoiARBPIAJBqAFqIAAQayACQagBaiACEGEgAkGoAWoQRCAAIAJBqAFqIAEQTyADQX9\n qIQMMAQsLBSACQQEQLSACQfAAakEBEC0gA0EBaiEDDAELCyACQeABaiQAC54CAQF/IwBBgA1rIgMkACADIAEQaiADEJkB\n IANBiAZqIAIQXyADQYgGahBEIANBwAZqIANBiAZqEF8gA0HABmpBAxAoGiADQcAGahBEIANB+AZqIAMQagJAIANBwAZqE\n FpFBEAgA0HABmoQKUF/aiECA0AgAkEBTQRAIANB+AZqEJoBDAMLIANB+AZqEBoCQAJAIANBwAZqIAJBf2oiAhBXIANBiA\n ZqIAIQV2tBAWoOAwECAAILIANB+AZqIAMQDgwBCyADEJMBIANB+AZqIAMQDiADEJMBDAALAAsgA0H4BmoQsAEgA0H4B2o\n QqQEgA0H4CGoQrQEgA0H4CmoQrQEgA0EBNgL4DAsgACADQfgGakGIBhBnGiADQYANaiQAC5ACAQJ/IwBBgAJrIgUkACAF\n QYABaiAAEF4gAiAFQYABahCQASAFQYABaiAAQYABahBeIAQgBUGAAWoQkAEgBUGAAWogAEGAAmoiBhBeIAUgBUGAAWoQX\n iAFQYABaiAGEF4gAyAFQYABahCQASAFQYABaiABQYABaiIGEF4gBSAFQYABahAPIAVBgAFqIAEQXiADIAVBgAFqEA8gAi\n ADEH0gAhCoASAEIAUQfSAEEKgBIAUgAhCQASACEFUgAhCoASAFQYABaiAGEF4gBSAFQYABahAPIAMgBBCQASAFQYABaiA\n BEF4gAyAFQYABahAPIAMgBRB9IAMQqAEgBBA6IAQQqAEgACABEAsgBUGAAmokAAvkAQECfyMAQcABayIDJAAgAxBLIAAg\n ASACQR91IgQgAnMgBEF/c2pBAm0iAkF/akEfdhBtIAAgAUHAAWogAkEBc0F/akEfdhBtIAAgAUGAA2ogAkECc0F/akEfd\n hBtIAAgAUHABGogAkEDc0F/akEfdhBtIAAgAUGABmogAkEEc0F/akEfdhBtIAAgAUHAB2ogAkEFc0F/akEfdhBtIAAgAU\n GACWogAkEGc0F/akEfdhBtIAAgAUHACmogAkEHc0F/akEfdhBtIAMgABB/IAMQpgEgACADIARBAXEQbSADQcABaiQAC+Q\n BAQJ/IwBBgANrIgMkACADECogACABIAJBH3UiBCACcyAEQX9zakECbSICQX9qQR92EG8gACABQYADaiACQQFzQX9qQR92\n EG8gACABQYAGaiACQQJzQX9qQR92EG8gACABQYAJaiACQQNzQX9qQR92EG8gACABQYAMaiACQQRzQX9qQR92EG8gACABQ\n YAPaiACQQVzQX9qQR92EG8gACABQYASaiACQQZzQX9qQR92EG8gACABQYAVaiACQQdzQX9qQR92EG8gAyAAEH4gAxCcAS\n AAIAMgBEEBcRBvIANBgANqJAALvAEBAn8jAEGwAWsiAiQAIAJBMBByIQIDQCADQTBGBEACQCABQTBqIQEgAkEwaiACEHV\n BACEDA0AgA0EwRg0BIAIgA2ogASADai0AADoAACADQQFqIQMMAAsACwUgAiADaiABIANqLQAAOgAAIANBAWohAwwBCwsg\n AkHwAGogAhB1IABBOBByIgBBATYCOCAAQUBrQTgQciAAQfgAakEBNgIAIAAgAkHwAGoQpQEgAkEwahClASACQbABaiQAC\n 9QBAQJ/IwBBgANrIgEkACABIAAQXiABQYABaiAAQYABaiICEF4gAUGAAmogABBeIAFBgAJqIAIQDyABIAIQlQEgAUGAAW\n oQVSABQYABaiAAEJUBIAEQqAEgAUGAAWoQqAEgACABEJABIAAgAUGAAWoQDyABQYABaiABQYACahCQASABQYABahBVIAF\n BgAFqIAFBgAJqEJUBIAFBgAFqEKgBIAFBgAFqEDogACABQYABahCVASABQYACahCnASACIAFBgAJqEJABIAAQrAEgAUGA\n A2okAAvEAQEBfyMAQYADayIDJAAgA0EIaiABEIUBAkAgAkUEQCADQQhqEAcMAQsgA0EIaiACEKUBCyADQcgAakHYo8AAE\n F8gA0GAAWogA0HIAGoQiwEgA0HAAWogA0EIahCFASADQcABahADIANBwAFqIAEQSCAAIAEQhQEgACADQQhqEEggA0GAAm\n ogA0HAAWoQhQEgABBYIQEgA0HAAmogABCFASADQcACahBBIANBwAJqEEQgACADQcACaiABEHkgA0GAA2okAAufAQEBfyM\n AQfAAayICJAAgAiABEF9BACEBIAJBOGpBOBByGiAAEEQCQCAAIAIQNUEASA0AA0AgAkEBEC0gAUEBaiEBIAAgAhA1QX9K\n DQALA0AgAUEATA0BIAJBARA7IAJBOGogABBrIAJBOGogAhBiIAJBOGoQRCAAIAJBOGogAikDaEI/h6dBAWoQTyABQX9qI\n QEMAAsACyACQfAAaiQAC7IBAQF/IwBBgAJrIgQkACAEQYABaiAAEF4gAyAEQYABahCQASAEQYABaiAAQYABahBeIAQgBE\n GAAWoQXiAEQYABaiAAQYACahBeIAIgBEGAAWoQkAEgASAEEJABIAEgAhAPIAMQMiAEEDIgAhAyIAEQpwEgARA6IAEQqAE\n gARBVIAEQqAEgAkEMEJ8BIANBAxCfASACEFUgAhCoASACIAQQfSACEKgBIAAQFCAEQYACaiQAC58BAQJ/IwBBgAJrIgIk\n ACAAIAEQXiAAEDIgAkGIAWpB2KTAABBfIAJBCGpBOBByGiACQQE2AkAgAkHIAGpBOBByIAJBgAFqQQE2AgAgAkHAAWogA\n kGIAWoQiwEgAkEIaiACQcABahClARCyASACQQhqEKgBIAJBCGoQVSACQQhqEKgBIAAgARAPIAAgAkEIahCVASAAEKsBIA\n JBgAJqJAALowEBAX8jAEEwayIGJAAgBkEQaiAAIAEQsQEgBiAGKAIUIgA2AhwgBiAGKAIQIgE2AhggBkEIaiACIAMQsQE\n gBiAGKAIMIgI2AiQgBiAGKAIIIgM2AiAgBiAEIAUQsQEgBiAGKAIEIgQ2AiwgBiAGKAIAIgU2AiggASAAIAMgAiAFIAQQ\n ACAGQShqEKQBIAZBIGoQpAEgBkEYahCkASAGQTBqJAALiAECA38DfiMAQRBrIgIkAAN+IANBOEYEfiACQRBqJAAgBgUgA\n iAAIANqIgQpAwAiBSAFQj+HIAGsIgUgBUI/hxAxIAQgAikDACIHIAZ8IgVC//////////8DgzcDACAFIAdUrSACQQhqKQ\n MAIAZCP4d8fEIGhiAFQjqIhCEGIANBCGohAwwBCwsLhAECA38BfiMAQUBqIgEkACABQQhqIAAQXyABQQhqEEQgAUE4aiE\n CQQYhA0HcAiEAAn8DQEEAIANBAEgNARogAikDACIEUARAIAJBeGohAiAAQUZqIQAgA0F/aiEDDAELCwN/IARQBH8gAAUg\n AEEBaiEAIARCAn8hBAwBCwsLIAFBQGskAAuHAQEBfyMAQcABayIBJAAgAEE4EHIiAEEBNgI4IABBQGtBOBByGiAAQfgAa\n kEBNgIAIAEQUCABQYgBakE4EHIaIABBgAFqIAFBgAEQZxogAEGAAmpBOBByGiAAQbgCakEBNgIAIABBvAJqIAFBhAFqQT\n wQZxogAEH4AmpBATYCACABQcABaiQAC48BAQJ/IwBBgAJrIgEkACAAEKwBIAEgABBeIAFBgAFqQTgQchogAUEBNgK4ASA\n BQcABakE4EHIaIAFB+AFqQQE2AgAgASAAQYABaiICEJUBIAEQOiABQYABaiABEJABIAFBgAFqIAIQlQEgAiABEJABIAIg\n ABCVASAAIAFBgAFqEJABIAAQrAEgAUGAAmokAAt9AgF/An4jAEGAAWsiASQAIAFBCGogABCFASABQQhqEBIgAUHIAGogA\n UEIahCDAUEIIQADQCAAQThGRQRAIAFByABqIABqKQMAIAKEIQIgAEEIaiEADAELCyABKQNIIQMgAUGAAWokACACQn98IA\n NCAYVCf3yDQjqIp0EBcQuJAQIBfwJ+IAAgACkDMCABQT9xrSIDhiAAKQMoQTogAWtBP3GtIgSHhDcDMCAAQShqIQFBBiE\n CA0AgAkEBTQRAIAAgACkDACADhkL//////////wODNwMABSABIAEpAwAgA4ZC//////////8DgyABQXhqIgEpAwAgBIeE\n NwMAIAJBf2ohAgwBCwsLiQECAX8CfiAAIAApA2BBOiABQTpwIgFrrSIEhyAAKQNoIAGtIgOGhDcDaCAAQeAAaiEBQQ0hA\n gNAIAJBAU0EQCAAIAApAwAgA4ZC//////////8DgzcDAAUgASABKQMAIAOGQv//////////A4MgAUF4aiIBKQMAIASHhD\n cDACACQX9qIQIMAQsLC3EBAX8jAEFAaiIBJAAgAEE4EHIiAEEBNgI4IABBQGtBOBByGiAAQfgAakEBNgIAIAFBCGpBOBB\n yGiAAQYABakE4EHIaIABBuAFqQQE2AgAgAEG8AWogAUEEakE8EGcaIABB+AFqQQE2AgAgAUFAayQAC4EBAgF/AX4gAEHw\n ABByIQADQCACQThGBEACQCAAIAEpAzAiA0I6hzcDOCAAIANC//////////8DgzcDMCAAQUBrIQBBACECA0AgAkEwRg0BI\n AAgAmpCADcDACACQQhqIQIMAAsACwUgACACaiABIAJqKQMANwMAIAJBCGohAgwBCwsLdQECfiAAIANCIIgiBSABQiCIIg\n Z+IAIgA358IAEgBH58IANC/////w+DIgIgAUL/////D4MiAX4iA0IgiCACIAZ+fCICQiCIfCABIAV+IAJC/////w+DfCI\n BQiCIfDcDCCAAIANC/////w+DIAFCIIaENwMAC3YBAn8jAEHAAWsiASQAIAEgABCFASABQUBrIAAQhQEgAUGAAWogAEFA\n ayICEIUBIAEgAhB4IAFBQGsgABB4IAFBQGsQRCACIAFBQGsQSCABQYABahBBIAAgAUGAAWoQeCABEEQgABBEIAAgARBII\n AFBwAFqJAALkwEBAn9B0LXBAEHQtcEAKAIAQQFqNgIAAkACQEGYucEAKAIAQQFGBEBBnLnBAEGcucEAKAIAQQFqIgA2Ag\n AgAEECSw0CQaC5wQAoAgAiAUF/Sg0BDAILQZi5wQBCgYCAgBA3AwBBoLnBACgCACIAQQBIDQFBoLnBACAANgIAAAtBoLn\n BACABNgIAIABBAUsNAAALAAtnAQJ/IwBBQGoiAiQAIAAQRCACIAAQhQECQCABRQRAIAAQBwwBCyAAIAEQpQELQQAhAQNA\n IAFBAUsgA3JFBEAgABADIAFBAEchAyABIAFFaiEBDAELCyAAIAIQSCAAEBIgAkFAayQAC18CAX8EfkIBIQNBMCECA38gA\n kF4RgR/IARCAYYgA3ynQX9qBSABIAJqKQMAIgUgACACaikDACIGfUI6hyADgyAEhCEEIAJBeGohAiAFIAaFQn98QjqHIA\n ODIQMMAQsLC2ACAX8EfkIBIQNB6AAhAgN/IAJBeEYEfyAEQgGGIAN8p0F/agUgASACaikDACIFIAAgAmopAwAiBn1COoc\n gA4MgBIQhBCACQXhqIQIgBSAGhUJ/fEI6hyADgyEDDAELCwt3AQN/IwBBgAJrIgIkACACIAEQXiACQYABaiABEF4gAhAy\n IAJBgAFqIAIQDyAAIAJBgAFqEJcBIABBgAJqIgMgAkGAAWoQlwEgAEGABGoiBCACQYABahCXASADIAEQogEgBCACEKIBI\n ABBBTYCgAYgAkGAAmokAAt6AQF/IwBB4ANrIgEkACABQYABakHApcAAEF8gAUG4AWpB+KXAABBfIAEgAUGAAWogAUG4AW\n oQSSABQfACakGwpsAAEF8gAUGoA2pB6KbAABBfIAFB8AFqIAFB8AJqIAFBqANqEEkgACABIAFB8AFqED8gAUHgA2okAAt\n nACAAQQF2IAByIgBBAnYgAHIiAEEEdiAAciIAQQh2IAByIgBBEHYgAHIiACAAQQF2QdWq1aoFcWsiAEECdkGz5syZA3Eg\n AEGz5syZA3FqIgBBBHYgAGpBj568+ABxQYGChAhsQRh2C2cBAn8jAEGAAWsiASQAIAEgABCFASABQUBrQTgQchogAUEBN\n gJ4IAEgAEFAayICEHggARBBIAFBQGsgARClASABQUBrIAIQeCACIAEQpQEgAiAAEHggACABQUBrEKUBIAFBgAFqJAALaA\n IBfwJ+IAFBP3GtIQNBOiABa0E/ca0hBEEAIQEDQCABQTBGBEAgACAAKQMwIAOHNwMwBSAAIAFqIgIgAkEIaikDACAEhkL\n //////////wODIAIpAwAgA4eENwMAIAFBCGohAQwBCwsLbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYC\n ACADQSxqQQI2AgAgA0ICNwIMIANBlKjAADYCCCADQQI2AiQgAyADQSBqNgIYIAMgAzYCKCADIANBBGo2AiAgA0EIaiACE\n HAAC2wBAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakECNgIAIANCAjcCDCADQbCqwAA2AgggA0\n ECNgIkIAMgA0EgajYCGCADIANBBGo2AiggAyADNgIgIANBCGogAhBwAAtlAQJ/IAAgACgCACICQQhqIgM2AgAgACACQQN\n 2QTxxakEoaiICIAFB/wFxIAIoAgBBCHRyNgIAAkACQCADRQRAIABBADYCACAAIAAoAgRBAWo2AgQMAQsgA0H/A3ENAQsg\n ABARCwtnAQF/IwBBgAJrIgMkACAAECogACABEJABIABBgAFqIgEgAhCQASAAQYACahCwASAAEKgBIAMgABAmIANBgAFqI\n AEQXiADQYABahAyIANBgAFqIAMQe0UEQCAAEJgBCyADQYACaiQAC18BAn8jAEGAAWsiASQAIAAQqAEgASAAEIUBIAFBQG\n sgAEFAayICEIUBIAEQAyABQUBrEAMgASABQUBrEHggAUEAEDQgACABEEggARBBIAEQRCACIAEQSCABQYABaiQAC10BAn8\n jAEFAaiIBJAAgAUEIakGgp8AAEF8gAUEIaiAAKAI4QX9qEDkiAhAtIAAgAUEIahBjIABBASACQQFqQR9xdCICNgI4IAJB\n gICAEE4EQCAAEBILIAFBQGskAAtfAgF/AX4jAEHwAGsiASQAIAFBoKfAABBfIAApAwAhAiABQThqIAAQXyAAQQEQOyABQ\n ThqIAEQYSABQThqEEQgAUE4akEBEDsgACABQThqIAJCAoGnEE8gAUHwAGokAAt7AQJ/IABBKGohAgNAIAFBgAJGBEAgAE\n LnzKfQ1tDrs7t/NwIIIABCADcCACAAQSBqQquzj/yRo7Pw2wA3AgAgAEEYakL/pLmIxZHagpt/NwIAIABBEGpC8ua746O\n n/aelfzcCAAUgASACakEANgIAIAFBBGohAQwBCwsLaQICfwF+IAAgACkDACIDQv//////////A4M3AwBBCCEBA0AgA0I6\n hyEDIAFBMEYEQCAAIAApAzAgA3w3AzAFIAAgAWoiAiACKQMAIAN8IgNC//////////8DgzcDACABQQhqIQEMAQsLC2oCA\n n8BfiAAIAApAwAiA0L//////////wODNwMAQQghAQNAIANCOochAyABQegARgRAIAAgACkDaCADfDcDaAUgACABaiICIA\n IpAwAgA3wiA0L//////////wODNwMAIAFBCGohAQwBCwsLWQEBfyMAQYADayIEJAAgBCADEF4gBBBAIARBgAFqIAEQXiA\n EQYACaiACEF4gBEGAAWogBBAPIARBgAJqIAQQDyAAIARBgAFqIARBgAJqEJEBIARBgANqJAALWQECfyMAQUBqIgEkAAJA\n IAAQhAENACABQQEQigEgAEGAAWoiAiABEFkNACACQQAQNCAAIAIQSCAAEBIgAEFAayIAIAIQSCAAEBIgAiABEKUBCyABQ\n UBrJAALVwEBfyMAQbABayICJAAgATQCOCAANAI4fkKAgIAQWQRAIAAQEgsgAkEIaiAAIAEQCCACQfgAaiACQQhqEAUgAC\n ACQfgAahBrIABBAjYCOCACQbABaiQAC08BAn8jAEFAaiIDJAAgAEE4EHIiAEEBNgI4IABBQGtBOBByIABB+ABqQQE2AgA\n gAyABEIsBIAAgAxClASADIAIQiwEgAxClASADQUBrJAALWQECfyMAQYABayIBJAACQCAAEIgBDQAgARBQIABBgAJqIgIg\n ARB7DQAgAhBAIAAgAhAPIAAQqwEgAEGAAWoiACACEA8gABCrASACIAEQkAELIAFBgAFqJAALSwEBfyMAQUBqIgEkACAAQ\n TgQciIAQQE2AjggAUEBEIoBIABBQGsgAUHAABBnGiAAQYABakE4EHIaIABBuAFqQQE2AgAgAUFAayQAC0sBAn8jAEHwAG\n siASQAIAAQd0UEQCABQaCnwAAQXyABQThqIAAQgwEgASABQThqEGIgARBEIAFBOGogARA1IQILIAFB8ABqJAAgAgtPAQF\n /IwBBgAFrIgIkACAAIAEQhQEgABADIAJByABqQdikwAAQXyACQQhqIAJByABqEIsBIAAgARBIIAAgAkEIahB4IAAQEiAC\n QYABaiQAC0kBAn8DQCABQThGRQRAIAAgAWoiAiACKQMAQgGGNwMAIAFBCGohAQwBCwsgACAAKAI4QQF0IgE2AjggAUGAg\n IAQTgRAIAAQEgsLQgIBfwJ+QQAgAmusIQQDQCADQThHBEAgACADaiICIAIpAwAiBSABIANqKQMAhSAEgyAFhTcDACADQQ\n hqIQMMAQsLC0YBAn8jAEFAaiIBJAAgAEE4EHIiAEEBNgI4IABBQGtBOBByIABB+ABqQQE2AgAgAUEBEIoBIAAgARClARC\n yASABQUBrJAALTgEBfyMAQYAEayIBJAAgABAvIAEQLyABQYACahAvIABBgAJqIAFBgAIQZxogAEGABGogAUGAAmpBgAIQ\n ZxogAEEANgKABiABQYAEaiQAC0sBAX8jAEFAaiICJAACQCAAKAI4IAFsQYCAgBBOBEAgAiABEIoBIAAgAhBIDAELIAAgA\n RAoGiAAIAAoAjggAWw2AjgLIAJBQGskAAtKAAJ/IAFBgIDEAEcEQEEBIAAoAhggASAAQRxqKAIAKAIQEQMADQEaCyACRQ\n RAQQAPCyAAKAIYIAJBACAAQRxqKAIAKAIMEQUACwtCAQF/IwBBQGoiAiQAIAJBCGpBgIDAABBfIAEgAkEIahBrIAEQRCA\n AIAEQayAAQQMQKBogABBEIAAQKSACQUBrJAALSQECfyMAQcABayIBJAAgASAAEF4gAUGAAWogABCFASAAIABBQGsiAhCl\n ASAAEEEgAiABQYABahClASAAIAEQlQEgAUHAAWokAAtIAQF/IwBB4AFrIgEkACABQeihwAAQXyABQThqIAAgARAIIAFBq\n AFqIAFBOGoQBSAAIAFBqAFqEGsgAEECNgI4IAFB4AFqJAALPgEBfyABQTpuIQIgAUGVA00EQCAAIAJBA3RqKQMAQgEgAU\n H//wNxQTpwrYaDQgBVDwsgAkEHQdSdwAAQPAALQAIBfwF+IwBBgAFrIgEkACABQQhqIAAQhQEgAUEIahASIAFByABqIAF\n BCGoQgwEgASkDSCABQYABaiQAQgKBpws8AQF/IwBBgAFrIgIkACACIAAQhQEgAkFAayABEIUBIAIQEiACQUBrEBIgAiAC\n QUBrEDUgAkGAAWokAEULPAIBfwF+A38gAUE4RgR/IAJCf3xCgICAgICAgIAEg0I6iKcFIAAgAWopAwAgAoQhAiABQQhqI\n QEMAQsLC0cBAX8jAEEgayIDJAAgA0EUakEANgIAIANB9KrAADYCECADQgE3AgQgAyABNgIcIAMgADYCGCADIANBGGo2Ag\n AgAyACEHAACzkBAX8jAEFAaiICJAAgAiAAEIUBIAIQByABBEAgASACEKUBCyACEAMgAiAAEEggAhAsIAJBQGskAAs6AQF\n /IABBOBByIQADQCACQTBGRQRAIABBCBAtIAAgACkDACABIAJqMQAAfDcDACACQQFqIQIMAQsLCzQBAX8gAEE4EHIiAEEB\n NgI4IABBQGtBOBByIABB+ABqQQE2AgAgACABEKUBIAFBQGsQpQELMAEBfyAAQTgQciEAA0AgAkE4RwRAIAAgAmogASACa\n ikDADcDACACQQhqIQIMAQsLCz8BAX8jAEGAAmsiASQAIAAQUSABEG4gACABEJIBIABBgAJqEK0BIABBgARqEK0BIABBAT\n YCgAYgAUGAAmokAAswAQJ/A0AgAkE4RwRAIAAgAmoiAyADKQMAIAEgAmopAwB8NwMAIAJBCGohAgwBCwsLMAECfwNAIAJ\n BOEcEQCAAIAJqIgMgAykDACABIAJqKQMAfTcDACACQQhqIQIMAQsLCzABAn8DQCACQThHBEAgACACaiIDIAEgAmopAwAg\n AykDAH03AwAgAkEIaiECDAELCwsxAQJ/A0AgAkHwAEcEQCAAIAJqIgMgAykDACABIAJqKQMAfTcDACACQQhqIQIMAQsLC\n zEBAn8DQCACQfAARwRAIAAgAmoiAyADKQMAIAEgAmopAwB8NwMAIAJBCGohAgwBCwsLOQECfyMAQYABayIBJAAgASAAQY\n ABaiICEF4gAiAAEJABIAEQVSAAIAEQkAEgABCsASABQYABaiQACzMBAX8gAgRAIAAhAwNAIAMgAS0AADoAACABQQFqIQE\n gA0EBaiEDIAJBf2oiAg0ACwsgAAtIAQN/IwBBEGsiASQAIAAoAgwhAyAAKAIIIgJFBEBB9KrAAEErQaCrwAAQWwALIAEg\n AzYCCCABIAA2AgQgASACNgIAIAEQcQALMgEBfyAAQgE3AwBBCCEBA0AgAUE4RkUEQCAAIAFqQgA3AwAgAUEIaiEBDAELC\n yAAEFYLNwAgABBRIAAgARCSASAAQYACaiABQYACahCSASAAQYAEaiABQYAEahCSASAAIAEoAoAGNgKABgsoAQF/A0AgAk\n E4RwRAIAAgAmogASACaikDADcDACACQQhqIQIMAQsLCzMAIAAgARCSASAAQYACaiABQYACahCSASAAQYAEaiABQYAEahC\n SASAAIAEoAoAGNgKABgsoACAAIAEgAhB5IABBQGsgAUFAayACEHkgAEGAAWogAUGAAWogAhB5Cy4BAX8jAEGAAWsiASQA\n IAAQLyABEFAgACABEJABIABBgAFqEKkBIAFBgAFqJAALLQAgACABIAIQjwEgAEGAAWogAUGAAWogAhCPASAAQYACaiABQ\n YACaiACEI8BCzQBAX8jAEEQayICJAAgAiABNgIMIAIgADYCCCACQaSowAA2AgQgAkH0qsAANgIAIAIQaAALPgEBfyMAQR\n BrIgEkACABQQhqIABBCGooAgA2AgAgASAAKQIANwMAIAEoAgAiAEEUaigCABogACgCBBoQMwALKQEBfyABBEAgACECA0A\n gAkEAOgAAIAJBAWohAiABQX9qIgENAAsLIAALKwEBfyMAQcABayICJAAgAhBLIAIgARB/IAIQpgEgACACEAwgAkHAAWok\n AAsiAQF/A0AgAUE4RwRAIAAgAWpCADcDACABQQhqIQEMAQsLCycBAX8jAEFAaiICJAAgAkEIaiABEF0gACACQQhqEIsBI\n AJBQGskAAsrACAAEFEgACABEJIBIABBgAJqIAIQkgEgAEGABGogAxCSASAAQQU2AoAGCyMBAX8jAEFAaiIBJAAgASAAEI\n UBIAEQEiABEFogAUFAayQACykAIAAgARBhIAAgACgCOCABKAI4aiIBNgI4IAFBgICAEE4EQCAAEBILCyUAIAAgASACEE8\n gAEEAIAJrIAAoAjgiACABKAI4c3EgAHM2AjgLIwADQCACBEAgACABLQAAED4gAkF/aiECIAFBAWohAQwBCwsLIgACQCAA\n IAEQWUUNACAAQUBrIAFBQGsQWUUNAEEBDwtBAAskAAJAIABBfE0EQCAARQRAQQQhAAwCCyAAEAEiAA0BCwALIAALJwEBf\n yMAQYABayICJAAgAiABEF4gAhA6IAAgAhCVASACQYABaiQACycAIAAgARCQASAAQYABaiABQYABahCQASAAQYACaiABQY\n ACahCQAQslACAAIAEQpQEgAEFAayABQUBrEKUBIABBgAFqIAFBgAFqEKUBCyUBAX8jAEFAaiICJAAgAiABEIUBIAIQQSA\n AIAIQeCACQUBrJAALKAEBfyMAQYACayICJAAgAiABEI4BIAIQKyAAIAIQlgEgAkGAAmokAAsjAEGEAiACSQRAIAJBhAIg\n AxA9AAsgACACNgIEIAAgATYCAAsiAQF/IwBB8ABrIgIkACACIAEQMCAAIAIQBSACQfAAaiQACxwAAkAgABB3RQ0AIABBg\n AFqEHdFDQBBAQ8LQQALHwAgAEE4EHIiAEEBNgI4IAAgARBrIAAgASgCODYCOAseAAJAIAAQhwFFDQAgAEGAAWoQhwFFDQ\n BBAQ8LQQALGwACQCAAEHdFDQAgAEFAaxB3RQ0AQQEPC0EACx4AAkAgABCHAUUNACAAQYACahCHAUUNAEEBDwtBAAsaAQF\n /IAAQWCIBIABBQGsQWCABcyAAEHdxcwsaACAAQTgQciIAQQE2AjggACABEJ0BIAAQVgsZACAAQTgQciIAQQE2AjggACAB\n EGsgABBWCxcAIAAQRCAAKAIAQX8gAUEfcXRBf3NxCxoAIAAgARBfIAAgAhAkIAAgAhBjIAAgAhAkCxwAIAAQLyAAIAEQk\n AEgAEGAAWogAUGAAWoQkAELGAAgACABIAIQeSAAQUBrIAFBQGsgAhB5CxYAIAAgARClASAAQUBrIAFBQGsQpQELGAAgAB\n AvIAAgARCQASAAQYABaiACEJABCxgAIAAgARCQASAAQYABaiABQYABahCQAQsZACAAEK4BIABBgAJqELYBIABBgARqEK4\n BCxcAIAAQsgEgAEFAaxBpIABBgAFqELIBCxQAIAAgARB4IABBQGsgAUFAaxB4CxgAIAAgARCVASAAQYABaiABQYABahCV\n AQsYACAAEKYBIABBgAFqIgAQpgEgACABEA8LGQAgABCpASAAQYABahCwASAAQYACahCpAQsZACAAEKwBIABBgAJqEKwBI\n ABBgARqEKwBCxkAIAAQqgEgAEGAAmoQqgEgAEGABGoQqgELFgAgABAvIAAgARCQASAAQYABahCpAQsWACAAQYABaiIAEK\n gBIAAQOiAAEKgBCxQAIAAQRCAAIAApAwAgAax8NwMACxQAIAAQRCAAIAApAwAgAax9NwMACxEAIAAgARBSIABBQGsgARB\n SCxEAIAAgARBIIABBQGsgARBICxQAIAAgARCQASAAQYABaiACEJABCxIAIAAgARAPIABBgAFqIAEQDwsUACAAIAEQoAEg\n AEGAAWogARCgAQsRACAAKAIEBEAgACgCABAJCwsSACAAIAEQayAAIAEoAjg2AjgLDwAgAEFAayIAEEEgABBECw0AIAAQT\n iAAQUBrEE4LDQAgABBEIABBQGsQRAsPACAAELIBIABBQGsQsgELEAAgABCrASAAQYABahCrAQsNACAAEBIgAEFAaxASCx\n AAIAAQqAEgAEGAAWoQqAELEAAgABCpASAAQYABahCpAQsPACAAQYABahA6IAAQrAELEAAgABCnASAAQYABahCnAQsOACA\n AEGkgAEFAaxCyAQsQACAAIAI2AgQgACABNgIACw0AIAAQdCAAQQE2AjgLDAAgABBBIAAgARB4CwwAIAAgARBrIAAQVgsN\n ACAAEDogACABEJUBCwsAIAAQOiAAEKwBCwwAQunQotvMouq7RgsDAAELAwABCwv+PZoCAEGCgMAACwcBAAAAAQI0AEG4g\n MAAC9sBuF8jku11BwFjT+D5WE+pA2dPnKtLeD0Akew9ffXy9AMD1g8fDSwgAK1vjPCZwa4A8DtNkAEAAADzStxtEor3AI\n uwH1tTsFYDgvLFYx+X7AAysL/NHtseAkehVLifHyMCQHo6ogw4sQGz4sMPAAAAAHNyYy9ibHMxMjM4MS9wYWlyLnJzqAA\n QABQAAAAHAQAACQAAAKgAEAAUAAAADAEAAA0AAACoABAAFAAAABEBAAANAAAAAAAAAAEAAAD///8Dv/+W/78AaQM7VYAd\n moCAAefMIPV1pkwBp+1zAEGogsAACyz+//7///8BAosAgILYBPYB4Y1oiW++kwLOdqvfPagdAMZpulHOdt8Dy1nGFwBB4\n ILAAAuRAZABEAATAAAA0AEAABgAAACQARAAEwAAANQBAAARAAAAkAEQABMAAADWAQAAHAAAAHNyYy9ibHMxMjM4MS9lY3\n AucnMAkAEQABMAAAAZBQAADQAAAJABEAATAAAAGwUAAAkAAACQARAAEwAAABwFAAARAAAAkAEQABMAAAAfBQAAHAAAAAA\n AAAABAAEAAAABAjQAQaCEwAALuSCQARAAEwAAAGcEAAARAAAAkAEQABMAAABsBAAADQAAAJABEAATAAAAbgQAABUAAACQ\n ARAAEwAAAHAEAAAgAAAAHUxYLQgo9ADXXz44aOPbAInJGoj9roEBomOjmrkPTgGY6rCCSW3JAoBOWs9QOu4AimlEAQAAA\n ADgKxeO6UjMAXSpOluMVsgAolXvNe/8FADngsIBPcnDA8EWIDvuPnUAusRiAAwgWgDRCCkuAQAAALgh6L1iEMUA3/4Vlz\n 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\n GZYzb76G2KA7ycH+3PFk8AK2qmngEAAABhdHRlbXB0IHRvIGRpdmlkZSBieSB6ZXJvAAAAbxEQABIAAAB8AQAAFAAAAAA\n AAABhdHRlbXB0IHRvIGRpdmlkZSB3aXRoIG92ZXJmbG93c3JjL2JsczEyMzgxL2ZwLnJzAAAAbxEQABIAAAASAgAADQAA\n AG8REAASAAAAHgIAACYAAABvERAAEgAAAB4CAAAjAAAAbxEQABIAAAAkAgAAFwAAAG8REAASAAAAJAIAABQAAAAAAAAAq\n qr//////gHu//9UrP//AupBYg9rDyoBw5z9ShTOEwJLd2TXrEtDAu3pxpKm+V8Cox4RoAEAAABAEhAAFAAAABUBAAATAA\n AAQBIQABQAAAAeAQAAGAAAAEASEAAUAAAAJAEAABwAAABzcmMvYmxzMTIzODEvZWNwMi5ycwAAAAAEAEGQpcAAC7wGQBI\n QABQAAADmAgAACQAAAEASEAAUAAAA7gIAAA0AAABAEhAAFAAAAP4CAAAhAAAAuL0hwchWgAD1+24BqskAA7pwFz2uR7YA\n RNEK7ADpUwN65MZREMUtA0kBgkmkwiMALyuqJAAAAAB+KwRdBX2sAflVF+WERDwDNJME9ce9GwJp12rYgmRCA9BrWWVPJ\n 4gA6DRrH9hnnAAFtgI+AQAAAAEouAiGVJMBeKIo6w5zsgIjyRINFpWmAQq1nU73MqoCm/2tGjUu2gJxczJjhFufAHdSXc\n 4AAAAAvnlf8F8HqQJqaAc710nDAfOzmulytSoB0pm8jp0W+gEoPsuZi8IrAKw0qwwzzakDAkpsYAAAAACrqv/////+Ae7\n //1Ss//8C6kFiD2sPKgHDnP1KFM4TAkt3ZNesS0MC7enGkqb5XwKjHhGgAQAAAAgUEAALAAAAjwEAAA8AAAAIFBAACwAA\n AKcBAAATAAAACBQQAAsAAACqAQAADQAAAHNyYy9obWFjLnJzADQUEAAgAAAAVBQQABIAAAADAAAAAAAAAAEAAAAEAAAAa\n W5kZXggb3V0IG9mIGJvdW5kczogdGhlIGxlbiBpcyAgYnV0IHRoZSBpbmRleCBpcyAwMDAxMDIwMzA0MDUwNjA3MDgwOT\n EwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ\n 0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5\n ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OQAAQBUQABAAAABQFRAAIgAAAHJhbmdlIGVuZCBpb\n mRleCAgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIG\n EgYE5vbmVgIHZhbHVlALAVEAAcAAAA7gEAAB4AAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAEGIrMAACwEBAEH\n IrMAACwEBAEGIrcAACwEBAEHIrcAACwEBAEGIrsAACwEBAEHIrsAACwEBAEGIr8AACwEBAEHIr8AACwEBAEGIsMAACwEB\n AEHIsMAACwEBAEGIscAACwEBAEHIscAACwEBAEGIssAACwEBAEHIssAACwEBAEGIs8AACwEBAEHIs8AACwEBAEGItMAAC\n wEBAEHItMAACwEBAEGItcAACwEBAEHItcAACwEBAEGItsAACwEBAEHItsAACwEBAEGIt8AACwEBAEHIt8AACwEBAEGIuM\n AACwEBAEHIuMAACwEBAEGIucAACwEBAEHIucAACwEBAEGIusAACwEBAEHIusAACwEBAEGIu8AACwEBAEHIu8AACwEBAEG\n IvMAACwEBAEHIvMAACwEBAEGIvcAACwEBAEHIvcAACwEBAEGIvsAACwEBAEHIvsAACwEBAEGIv8AACwEBAEHIv8AACwEB\n AEGIwMAACwEBAEHIwMAACwEBAEGIwcAACwEBAEHIwcAACwEBAEGIwsAACwEBAEHIwsAACwEBAEGIw8AACwEBAEHIw8AAC\n wEBAEGIxMAACwEBAEHIxMAACwEBAEGIxcAACwEBAEHIxcAACwEBAEGIxsAACwEBAEHIxsAACwEBAEGIx8AACwEBAEHIx8\n AACwEBAEGIyMAACwEBAEHIyMAACwEBAEGIycAACwEBAEHIycAACwEBAEGIysAACwEBAEHIysAACwEBAEGIy8AACwEBAEH\n Iy8AACwEBAEGIzMAACwEBAEHIzMAACwEBAEGIzcAACwEBAEHIzcAACwEBAEGIzsAACwEBAEHIzsAACwEBAEGIz8AACwEB\n AEHIz8AACwEBAEGI0MAACwEBAEHI0MAACwEBAEGI0cAACwEBAEHI0cAACwEBAEGI0sAACwEBAEHI0sAACwEBAEGI08AAC\n wEBAEHI08AACwEBAEGI1MAACwEBAEHI1MAACwEBAEGI1cAACwEBAEHI1cAACwEBAEGI1sAACwEBAEHI1sAACwEBAEGI18\n AACwEBAEHI18AACwEBAEGI2MAACwEBAEHI2MAACwEBAEGI2cAACwEBAEHI2cAACwEBAEGI2sAACwEBAEHI2sAACwEBAEG\n I28AACwEBAEHI28AACwEBAEGI3MAACwEBAEHI3MAACwEBAEGI3cAACwEBAEHI3cAACwEBAEGI3sAACwEBAEHI3sAACwEB\n AEGI38AACwEBAEHI38AACwEBAEGI4MAACwEBAEHI4MAACwEBAEGI4cAACwEBAEHI4cAACwEBAEGI4sAACwEBAEHI4sAAC\n wEBAEGI48AACwEBAEHI48AACwEBAEGI5MAACwEBAEHI5MAACwEBAEGI5cAACwEBAEHI5cAACwEBAEGI5sAACwEBAEHI5s\n AACwEBAEGI58AACwEBAEHI58AACwEBAEGI6MAACwEBAEHI6MAACwEBAEGI6cAACwEBAEHI6cAACwEBAEGI6sAACwEBAEH\n I6sAACwEBAEGI68AACwEBAEHI68AACwEBAEGI7MAACwEBAEHI7MAACwEBAEGI7cAACwEBAEHI7cAACwEBAEGI7sAACwEB\n AEHI7sAACwEBAEGI78AACwEBAEHI78AACwEBAEGI8MAACwEBAEHI8MAACwEBAEGI8cAACwEBAEHI8cAACwEBAEGI8sAAC\n wEBAEHI8sAACwEBAEGI88AACwEBAEHI88AACwEBAEGI9MAACwEBAEHI9MAACwEBAEGI9cAACwEBAEHI9cAACwEBAEGI9s\n AACwEBAEHI9sAACwEBAEGI98AACwEBAEHI98AACwEBAEGI+MAACwEBAEHI+MAACwEBAEGI+cAACwEBAEHI+cAACwEBAEG\n I+sAACwEBAEHI+sAACwEBAEGI+8AACwEBAEHI+8AACwEBAEGI/MAACwEBAEHI/MAACwEBAEGI/cAACwEBAEHI/cAACwEB\n AEGI/sAACwEBAEHI/sAACwEBAEGI/8AACwEBAEHI/8AACwEBAEGIgMEACwEBAEHIgMEACwEBAEGIgcEACwEBAEHIgcEAC\n wEBAEGIgsEACwEBAEHIgsEACwEBAEGIg8EACwEBAEHIg8EACwEBAEGIhMEACwEBAEHIhMEACwEBAEGIhcEACwEBAEHIhc\n EACwEBAEGIhsEACwEBAEHIhsEACwEBAEGIh8EACwEBAEHIh8EACwEBAEGIiMEACwEBAEHIiMEACwEBAEGIicEACwEBAEH\n IicEACwEBAEGIisEACwEBAEHIisEACwEBAEGIi8EACwEBAEHIi8EACwEBAEGIjMEACwEBAEHIjMEACwEBAEGIjcEACwEB\n AEHIjcEACwEBAEGIjsEACwEBAEHIjsEACwEBAEGIj8EACwEBAEHIj8EACwEBAEGIkMEACwEBAEHIkMEACwEBAEGIkcEAC\n wEBAEHIkcEACwEBAEGIksEACwEBAEHIksEACwEBAEGIk8EACwEBAEHIk8EACwEBAEGIlMEACwEBAEHIlMEACwEBAEGIlc\n EACwEBAEHIlcEACwEBAEGIlsEACwEBAEHIlsEACwEBAEGIl8EACwEBAEHIl8EACwEBAEGImMEACwEBAEHImMEACwEBAEG\n ImcEACwEBAEHImcEACwEBAEGImsEACwEBAEHImsEACwEBAEGIm8EACwEBAEHIm8EACwEBAEGInMEACwEBAEHInMEACwEB\n AEGIncEACwEBAEHIncEACwEBAEGInsEACwEBAEHInsEACwEBAEGIn8EACwEBAEHIn8EACwEBAEGIoMEACwEBAEHIoMEAC\n wEBAEGIocEACwEBAEHIocEACwEBAEGIosEACwEBAEHIosEACwEBAEGIo8EACwEBAEHIo8EACwEBAEGIpMEACwEBAEHIpM\n EACwEBAEGIpcEACwEBAEHIpcEACwEBAEGIpsEACwEBAEHIpsEACwEBAEGIp8EACwEBAEHIp8EACwEBAEGIqMEACwEBAEH\n IqMEACwEBAEGIqcEACwEBAEHIqcEACwEBAEGIqsEACwEBAEHIqsEACwEBAEGIq8EACwEBAEHIq8EACwEBAEGIrMEACwEB\n AEHIrMEACwEBAEGIrcEACwEBAEHIrcEACwEBAEGIrsEACwEBAEHIrsEACwEBAEGIr8EACwEBAEHIr8EACwEBAEGIsMEAC\n wEBAEHIsMEACwEBAEGIscEACwEBAEHIscEACwEBAEGIssEACwEBAEHIssEACwEBAEGIs8EACwEBAEHIs8EACwEBAEGItM\n EACwEBAEHItMEACwEBAEGItcEACwEBAEHItcEACwEBAHsJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2V\n kLWJ5AwVydXN0Yx0xLjQ5LjAgKGUxODg0YThlMyAyMDIwLTEyLTI5KQZ3YWxydXMGMC4xOC4wDHdhc20tYmluZGdlbhIw\n LjIuNzAgKGI2MzU1YzI3MCk=\n`.replace(/[^0-9a-zA-Z/+]/g, '');\nconst wasmBytes = base64Arraybuffer.decode(wasmBytesBase64);\n/**\n * @returns {number}\n */\nexport function bls_init() {\n let ret = wasm.bls_init();\n return ret;\n}\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n return [ptr, arg.length];\n}\n/**\n * @param {Uint8Array} sig\n * @param {Uint8Array} m\n * @param {Uint8Array} w\n * @returns {number}\n */\nexport function bls_verify(sig, m, w) {\n const [ptr0, len0] = passArray8ToWasm0(sig, wasm.__wbindgen_malloc);\n const [ptr1, len1] = passArray8ToWasm0(m, wasm.__wbindgen_malloc);\n const [ptr2, len2] = passArray8ToWasm0(w, wasm.__wbindgen_malloc);\n const ret = wasm.bls_verify(ptr0, len0, ptr1, len1, ptr2, len2);\n return ret;\n}\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n }\n else {\n const instance = await WebAssembly.instantiate(module, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n }\n else {\n return instance;\n }\n }\n}\nasync function init() {\n const imports = {};\n const { instance, module } = await load(wasmBytes, imports);\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n return wasm;\n}\n/**\n * If `module_or_path` is {RequestInfo} or {URL}, makes a request and\n * for everything else, calls `WebAssembly.instantiate` directly.\n *\n * @param {InitInput | Promise} module_or_path\n *\n * @returns {Promise}\n */\nexport default init;\n//# sourceMappingURL=bls.js.map","import init, { bls_init, bls_verify } from '../vendor/bls/bls';\nexport let verify;\n/**\n *\n * @param pk primary key: Uint8Array\n * @param sig signature: Uint8Array\n * @param msg message: Uint8Array\n * @returns Promise resolving a boolean\n */\nexport async function blsVerify(pk, sig, msg) {\n if (!verify) {\n await init();\n if (bls_init() !== 0) {\n throw new Error('Cannot initialize BLS');\n }\n verify = (pk1, sig1, msg1) => {\n // Reorder things from what the WASM expects (sig, m, w).\n return bls_verify(sig1, msg1, pk1) === 0;\n };\n }\n return verify(pk, sig, msg);\n}\n//# sourceMappingURL=bls.js.map","import { Buffer } from 'buffer/';\nimport { getDefaultAgent } from './agent';\nimport * as cbor from './cbor';\nimport { AgentError } from './errors';\nimport { hash } from './request_id';\nimport { blobFromBuffer, blobFromText, blobFromUint8Array, blobToHex, blobToUint8Array, } from '@dfinity/candid';\nimport { blsVerify } from './utils/bls';\n/**\n * A certificate needs to be verified (using {@link Certificate.prototype.verify})\n * before it can be used.\n */\nexport class UnverifiedCertificateError extends AgentError {\n constructor() {\n super(`Cannot lookup unverified certificate. Call 'verify()' first.`);\n }\n}\n/**\n * Make a human readable string out of a hash tree.\n * @param tree\n */\nexport function hashTreeToString(tree) {\n const indent = (s) => s\n .split('\\n')\n .map(x => ' ' + x)\n .join('\\n');\n function labelToString(label) {\n const decoder = new TextDecoder(undefined, { fatal: true });\n try {\n return JSON.stringify(decoder.decode(label));\n }\n catch (e) {\n return `data(...${label.byteLength} bytes)`;\n }\n }\n switch (tree[0]) {\n case 0:\n return '()';\n case 1: {\n const left = hashTreeToString(tree[1]);\n const right = hashTreeToString(tree[2]);\n return `sub(\\n left:\\n${indent(left)}\\n---\\n right:\\n${indent(right)}\\n)`;\n }\n case 2: {\n const label = labelToString(tree[1]);\n const sub = hashTreeToString(tree[2]);\n return `label(\\n label:\\n${indent(label)}\\n sub:\\n${indent(sub)}\\n)`;\n }\n case 3: {\n return `leaf(...${tree[1].byteLength} bytes)`;\n }\n case 4: {\n return `pruned(${blobToHex(blobFromUint8Array(new Uint8Array(tree[1])))}`;\n }\n default: {\n return `unknown(${JSON.stringify(tree[0])})`;\n }\n }\n}\nfunction isBufferEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\nexport class Certificate {\n constructor(response, _agent = getDefaultAgent()) {\n this._agent = _agent;\n this.verified = false;\n this._rootKey = null;\n this.cert = cbor.decode(response.certificate);\n }\n lookupEx(path) {\n this.checkState();\n return lookupPathEx(path, this.cert.tree);\n }\n lookup(path) {\n this.checkState();\n return lookup_path(path, this.cert.tree);\n }\n async verify() {\n const rootHash = await reconstruct(this.cert.tree);\n const derKey = await this._checkDelegation(this.cert.delegation);\n const sig = this.cert.signature;\n const key = extractDER(derKey);\n const msg = Buffer.concat([domain_sep('ic-state-root'), rootHash]);\n const res = await blsVerify(key, sig, msg);\n this.verified = res;\n return res;\n }\n checkState() {\n if (!this.verified) {\n throw new UnverifiedCertificateError();\n }\n }\n async _checkDelegation(d) {\n if (!d) {\n if (!this._rootKey) {\n if (this._agent.rootKey) {\n this._rootKey = this._agent.rootKey;\n return this._rootKey;\n }\n throw new Error(`Agent does not have a rootKey. Do you need to call 'fetchRootKey'?`);\n }\n return this._rootKey;\n }\n const cert = new Certificate(d, this._agent);\n if (!(await cert.verify())) {\n throw new Error('fail to verify delegation certificate');\n }\n const lookup = cert.lookupEx(['subnet', d.subnet_id, 'public_key']);\n if (!lookup) {\n throw new Error(`Could not find subnet key for subnet 0x${d.subnet_id.toString('hex')}`);\n }\n return Buffer.from(lookup);\n }\n}\nconst DER_PREFIX = Buffer.from('308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100', 'hex');\nconst KEY_LENGTH = 96;\nfunction extractDER(buf) {\n const expectedLength = DER_PREFIX.length + KEY_LENGTH;\n if (buf.length !== expectedLength) {\n throw new TypeError(`BLS DER-encoded public key must be ${expectedLength} bytes long`);\n }\n const prefix = buf.slice(0, DER_PREFIX.length);\n if (!isBufferEqual(prefix, DER_PREFIX)) {\n throw new TypeError(`BLS DER-encoded public key is invalid. Expect the following prefix: ${DER_PREFIX}, but get ${prefix}`);\n }\n return buf.slice(DER_PREFIX.length);\n}\n/**\n * @param t\n */\nexport async function reconstruct(t) {\n switch (t[0]) {\n case 0 /* Empty */:\n return hash(domain_sep('ic-hashtree-empty'));\n case 4 /* Pruned */:\n return Buffer.from(t[1]);\n case 3 /* Leaf */:\n return hash(Buffer.concat([\n domain_sep('ic-hashtree-leaf'),\n Buffer.from(t[1]),\n ]));\n case 2 /* Labeled */:\n return hash(Buffer.concat([\n domain_sep('ic-hashtree-labeled'),\n Buffer.from(t[1]),\n Buffer.from(await reconstruct(t[2])),\n ]));\n case 1 /* Fork */:\n return hash(Buffer.concat([\n domain_sep('ic-hashtree-fork'),\n Buffer.from(await reconstruct(t[1])),\n Buffer.from(await reconstruct(t[2])),\n ]));\n default:\n throw new Error('unreachable');\n }\n}\nfunction domain_sep(s) {\n const buf = Buffer.alloc(1);\n buf.writeUInt8(s.length, 0);\n return Buffer.concat([buf, Buffer.from(s)]);\n}\n/**\n *\n * @param path\n * @param tree\n */\nexport function lookupPathEx(path, tree) {\n const maybeReturn = lookup_path(path.map(p => {\n if (typeof p === 'string') {\n return blobFromText(p);\n }\n else {\n return blobFromUint8Array(new Uint8Array(p));\n }\n }), tree);\n return maybeReturn && blobToUint8Array(blobFromBuffer(maybeReturn));\n}\n/**\n * @param path\n * @param tree\n */\nexport function lookup_path(path, tree) {\n if (path.length === 0) {\n switch (tree[0]) {\n case 3 /* Leaf */: {\n return Buffer.from(tree[1]);\n }\n default: {\n return undefined;\n }\n }\n }\n const t = find_label(path[0], flatten_forks(tree));\n if (t) {\n return lookup_path(path.slice(1), t);\n }\n}\nfunction flatten_forks(t) {\n switch (t[0]) {\n case 0 /* Empty */:\n return [];\n case 1 /* Fork */:\n return flatten_forks(t[1]).concat(flatten_forks(t[2]));\n default:\n return [t];\n }\n}\nfunction find_label(l, trees) {\n if (trees.length === 0) {\n return undefined;\n }\n for (const t of trees) {\n if (t[0] === 2 /* Labeled */) {\n const p = Buffer.from(t[1]);\n if (isBufferEqual(l, p)) {\n return t[2];\n }\n }\n }\n}\n//# sourceMappingURL=certificate.js.map","import { toHex } from '..';\nconst FIVE_MINUTES_IN_MSEC = 5 * 60 * 1000;\n/**\n * A best practices polling strategy: wait 2 seconds before the first poll, then 1 second\n * with an exponential backoff factor of 1.2. Timeout after 5 minutes.\n */\nexport function defaultStrategy() {\n return chain(conditionalDelay(once(), 1000), backoff(1000, 1.2), timeout(FIVE_MINUTES_IN_MSEC));\n}\n/**\n * Predicate that returns true once.\n */\nexport function once() {\n let first = true;\n return async () => {\n if (first) {\n first = false;\n return true;\n }\n return false;\n };\n}\n/**\n * Delay the polling once.\n * @param condition A predicate that indicates when to delay.\n * @param timeInMsec The amount of time to delay.\n */\nexport function conditionalDelay(condition, timeInMsec) {\n return async (canisterId, requestId, status) => {\n if (await condition(canisterId, requestId, status)) {\n return new Promise(resolve => setTimeout(resolve, timeInMsec));\n }\n };\n}\n/**\n * Error out after a maximum number of polling has been done.\n * @param count The maximum attempts to poll.\n */\nexport function maxAttempts(count) {\n let attempts = count;\n return async (canisterId, requestId, status) => {\n if (--attempts <= 0) {\n throw new Error(`Failed to retrieve a reply for request after ${count} attempts:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`);\n }\n };\n}\n/**\n * Throttle polling.\n * @param throttleInMsec Amount in millisecond to wait between each polling.\n */\nexport function throttle(throttleInMsec) {\n return () => new Promise(resolve => setTimeout(resolve, throttleInMsec));\n}\n/**\n * Reject a call after a certain amount of time.\n * @param timeInMsec Time in milliseconds before the polling should be rejected.\n */\nexport function timeout(timeInMsec) {\n const end = Date.now() + timeInMsec;\n return async (canisterId, requestId, status) => {\n if (Date.now() > end) {\n throw new Error(`Request timed out after ${timeInMsec} msec:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`);\n }\n };\n}\n/**\n * A strategy that throttle, but using an exponential backoff strategy.\n * @param startingThrottleInMsec The throttle in milliseconds to start with.\n * @param backoffFactor The factor to multiple the throttle time between every poll. For\n * example if using 2, the throttle will double between every run.\n */\nexport function backoff(startingThrottleInMsec, backoffFactor) {\n let currentThrottling = startingThrottleInMsec;\n return () => new Promise(resolve => setTimeout(() => {\n currentThrottling *= backoffFactor;\n resolve();\n }, currentThrottling));\n}\n/**\n * Chain multiple polling strategy. This _chains_ the strategies, so if you pass in,\n * say, two throttling strategy of 1 second, it will result in a throttle of 2 seconds.\n * @param strategies A strategy list to chain.\n */\nexport function chain(...strategies) {\n return async (canisterId, requestId, status) => {\n for (const a of strategies) {\n await a(canisterId, requestId, status);\n }\n };\n}\n//# sourceMappingURL=strategy.js.map","import { RequestStatusResponseStatus } from '../agent';\nimport { Certificate } from '../certificate';\nimport { toHex as requestIdToHex } from '../request_id';\nimport { blobFromText } from '@dfinity/candid';\nexport * as strategy from './strategy';\nexport { defaultStrategy } from './strategy';\n/**\n * Polls the IC to check the status of the given request then\n * returns the response bytes once the request has been processed.\n * @param agent The agent to use to poll read_state.\n * @param canisterId The effective canister ID.\n * @param requestId The Request ID to poll status for.\n * @param strategy A polling strategy.\n */\nexport async function pollForResponse(agent, canisterId, requestId, strategy) {\n const path = [blobFromText('request_status'), requestId];\n const state = await agent.readState(canisterId, { paths: [path] });\n const cert = new Certificate(state, agent);\n const verified = await cert.verify();\n if (!verified) {\n throw new Error('Fail to verify certificate');\n }\n const maybeBuf = cert.lookup([...path, blobFromText('status')]);\n let status;\n if (typeof maybeBuf === 'undefined') {\n // Missing requestId means we need to wait\n status = RequestStatusResponseStatus.Unknown;\n }\n else {\n status = maybeBuf.toString();\n }\n switch (status) {\n case RequestStatusResponseStatus.Replied: {\n return cert.lookup([...path, blobFromText('reply')]);\n }\n case RequestStatusResponseStatus.Received:\n case RequestStatusResponseStatus.Unknown:\n case RequestStatusResponseStatus.Processing:\n // Execute the polling strategy, then retry.\n await strategy(canisterId, requestId, status);\n return pollForResponse(agent, canisterId, requestId, strategy);\n case RequestStatusResponseStatus.Rejected: {\n const rejectCode = cert.lookup([...path, blobFromText('reject_code')]).toString();\n const rejectMessage = cert.lookup([...path, blobFromText('reject_message')]).toString();\n throw new Error(`Call was rejected:\\n` +\n ` Request ID: ${requestIdToHex(requestId)}\\n` +\n ` Reject code: ${rejectCode}\\n` +\n ` Reject text: ${rejectMessage}\\n`);\n }\n case RequestStatusResponseStatus.Done:\n // This is _technically_ not an error, but we still didn't see the `Replied` status so\n // we don't know the result and cannot decode it.\n throw new Error(`Call was marked as done but we never saw the reply:\\n` +\n ` Request ID: ${requestIdToHex(requestId)}\\n`);\n }\n throw new Error('unreachable');\n}\n//# sourceMappingURL=index.js.map","import { Buffer } from 'buffer/';\nimport { getDefaultAgent, ReplicaRejectCode, } from './agent';\nimport { getManagementCanister } from './canisters/management';\nimport { AgentError } from './errors';\nimport { IDL } from '@dfinity/candid';\nimport { pollForResponse, strategy } from './polling';\nimport { Principal } from '@dfinity/principal';\nimport { toHex as requestIdToHex } from './request_id';\nexport class ActorCallError extends AgentError {\n constructor(canisterId, methodName, type, props) {\n super([\n `Call failed:`,\n ` Canister: ${canisterId.toText()}`,\n ` Method: ${methodName} (${type})`,\n ...Object.getOwnPropertyNames(props).map(n => ` \"${n}\": ${JSON.stringify(props[n])}`),\n ].join('\\n'));\n this.canisterId = canisterId;\n this.methodName = methodName;\n this.type = type;\n this.props = props;\n }\n}\nexport class QueryCallRejectedError extends ActorCallError {\n constructor(canisterId, methodName, result) {\n var _a;\n super(canisterId, methodName, 'query', {\n Status: result.status,\n Code: (_a = ReplicaRejectCode[result.reject_code]) !== null && _a !== void 0 ? _a : `Unknown Code \"${result.reject_code}\"`,\n Message: result.reject_message,\n });\n this.result = result;\n }\n}\nexport class UpdateCallRejectedError extends ActorCallError {\n constructor(canisterId, methodName, requestId, response) {\n super(canisterId, methodName, 'update', {\n 'Request ID': requestIdToHex(requestId),\n 'HTTP status code': response.status.toString(),\n 'HTTP status text': response.statusText,\n });\n this.requestId = requestId;\n this.response = response;\n }\n}\n/**\n * The mode used when installing a canister.\n */\nexport var CanisterInstallMode;\n(function (CanisterInstallMode) {\n CanisterInstallMode[\"Install\"] = \"install\";\n CanisterInstallMode[\"Reinstall\"] = \"reinstall\";\n CanisterInstallMode[\"Upgrade\"] = \"upgrade\";\n})(CanisterInstallMode || (CanisterInstallMode = {}));\nconst metadataSymbol = Symbol.for('ic-agent-metadata');\n/**\n * An actor base class. An actor is an object containing only functions that will\n * return a promise. These functions are derived from the IDL definition.\n */\nexport class Actor {\n constructor(metadata) {\n this[metadataSymbol] = Object.freeze(metadata);\n }\n /**\n * Get the Agent class this Actor would call, or undefined if the Actor would use\n * the default agent (global.ic.agent).\n * @param actor The actor to get the agent of.\n */\n static agentOf(actor) {\n return actor[metadataSymbol].config.agent;\n }\n /**\n * Get the interface of an actor, in the form of an instance of a Service.\n * @param actor The actor to get the interface of.\n */\n static interfaceOf(actor) {\n return actor[metadataSymbol].service;\n }\n static canisterIdOf(actor) {\n return Principal.from(actor[metadataSymbol].config.canisterId);\n }\n static async install(fields, config) {\n const mode = fields.mode === undefined ? CanisterInstallMode.Install : fields.mode;\n // Need to transform the arg into a number array.\n const arg = fields.arg ? [...fields.arg] : [];\n // Same for module.\n const wasmModule = [...fields.module];\n const canisterId = typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n await getManagementCanister(config).install_code({\n mode: { [mode]: null },\n arg,\n wasm_module: wasmModule,\n canister_id: canisterId,\n });\n }\n static async createCanister(config) {\n const { canister_id: canisterId } = await getManagementCanister(config || {}).provisional_create_canister_with_cycles({ amount: [], settings: [] });\n return canisterId;\n }\n static async createAndInstallCanister(interfaceFactory, fields, config) {\n const canisterId = await this.createCanister(config);\n await this.install(Object.assign({}, fields), Object.assign(Object.assign({}, config), { canisterId }));\n return this.createActor(interfaceFactory, Object.assign(Object.assign({}, config), { canisterId }));\n }\n static createActorClass(interfaceFactory) {\n const service = interfaceFactory({ IDL });\n class CanisterActor extends Actor {\n constructor(config) {\n const canisterId = typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n super({\n config: Object.assign(Object.assign(Object.assign({}, DEFAULT_ACTOR_CONFIG), config), { canisterId }),\n service,\n });\n for (const [methodName, func] of service._fields) {\n this[methodName] = _createActorMethod(this, methodName, func);\n }\n }\n }\n return CanisterActor;\n }\n static createActor(interfaceFactory, configuration) {\n return new (this.createActorClass(interfaceFactory))(configuration);\n }\n}\n// IDL functions can have multiple return values, so decoding always\n// produces an array. Ensure that functions with single or zero return\n// values behave as expected.\nfunction decodeReturnValue(types, msg) {\n const returnValues = IDL.decode(types, Buffer.from(msg));\n switch (returnValues.length) {\n case 0:\n return undefined;\n case 1:\n return returnValues[0];\n default:\n return returnValues;\n }\n}\nconst DEFAULT_ACTOR_CONFIG = {\n pollingStrategyFactory: strategy.defaultStrategy,\n};\nfunction _createActorMethod(actor, methodName, func) {\n let caller;\n if (func.annotations.includes('query')) {\n caller = async (options, ...args) => {\n var _a, _b;\n // First, if there's a config transformation, call it.\n options = Object.assign(Object.assign({}, options), (_b = (_a = actor[metadataSymbol].config).queryTransform) === null || _b === void 0 ? void 0 : _b.call(_a, methodName, args, Object.assign(Object.assign({}, actor[metadataSymbol].config), options)));\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const cid = Principal.from(options.canisterId || actor[metadataSymbol].config.canisterId);\n const arg = IDL.encode(func.argTypes, args);\n const result = await agent.query(cid, { methodName, arg });\n switch (result.status) {\n case \"rejected\" /* Rejected */:\n throw new QueryCallRejectedError(cid, methodName, result);\n case \"replied\" /* Replied */:\n return decodeReturnValue(func.retTypes, result.reply.arg);\n }\n };\n }\n else {\n caller = async (options, ...args) => {\n var _a, _b;\n // First, if there's a config transformation, call it.\n options = Object.assign(Object.assign({}, options), (_b = (_a = actor[metadataSymbol].config).callTransform) === null || _b === void 0 ? void 0 : _b.call(_a, methodName, args, Object.assign(Object.assign({}, actor[metadataSymbol].config), options)));\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const { canisterId, effectiveCanisterId, pollingStrategyFactory } = Object.assign(Object.assign(Object.assign({}, DEFAULT_ACTOR_CONFIG), actor[metadataSymbol].config), options);\n const cid = Principal.from(canisterId);\n const ecid = effectiveCanisterId !== undefined ? Principal.from(effectiveCanisterId) : cid;\n const arg = IDL.encode(func.argTypes, args);\n const { requestId, response } = await agent.call(cid, {\n methodName,\n arg,\n effectiveCanisterId: ecid,\n });\n if (!response.ok) {\n throw new UpdateCallRejectedError(cid, methodName, requestId, response);\n }\n const pollStrategy = pollingStrategyFactory();\n const responseBytes = await pollForResponse(agent, ecid, requestId, pollStrategy);\n if (responseBytes !== undefined) {\n return decodeReturnValue(func.retTypes, responseBytes);\n }\n else if (func.retTypes.length === 0) {\n return undefined;\n }\n else {\n throw new Error(`Call was returned undefined, but type [${func.retTypes.join(',')}].`);\n }\n };\n }\n const handler = (...args) => caller({}, ...args);\n handler.withOptions =\n (options) => (...args) => caller(options, ...args);\n return handler;\n}\n//# sourceMappingURL=actor.js.map","/**\n * This file is generated from the candid for asset management.\n */\n/* tslint:disable */\n// @ts-ignore\nexport default ({ IDL }) => {\n return IDL.Service({\n retrieve: IDL.Func([IDL.Text], [IDL.Vec(IDL.Nat8)], ['query']),\n store: IDL.Func([IDL.Text, IDL.Vec(IDL.Nat8)], [], []),\n });\n};\n//# sourceMappingURL=asset_idl.js.map","import { Actor } from '../actor';\nimport assetCanister from './asset_idl';\n/* tslint:enable */\n/**\n * Create a management canister actor.\n * @param config\n */\nexport function createAssetCanisterActor(config) {\n return Actor.createActor(assetCanister, config);\n}\n//# sourceMappingURL=asset.js.map","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function IoAccessibilityOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"40\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M204.23 274.44c2.9-18.06 4.2-35.52-.5-47.59-4-10.38-12.7-16.19-23.2-20.15L88 176.76c-12-4-23.21-10.7-24-23.94-1-17 14-28 29-24 0 0 88 31.14 163 31.14s162-31 162-31c18-5 30 9 30 23.79 0 14.21-11 19.21-24 23.94l-88 31.91c-8 3-21 9-26 18.18-6 10.75-5 29.53-2.1 47.59l5.9 29.63 37.41 163.9c2.8 13.15-6.3 25.44-19.4 27.74S308 489 304.12 476.28l-37.56-115.93q-2.71-8.34-4.8-16.87L256 320l-5.3 21.65q-2.52 10.35-5.8 20.48L208 476.18c-4 12.85-14.5 21.75-27.6 19.46s-22.4-15.59-19.46-27.74l37.39-163.83z\"}}]})(props);\n};\nexport function IoAccessibilitySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 112c-66.82 17.92-119.55 32-192 32s-125.18-14.08-192-32l-16 51c48 20.53 96.71 35.16 147.2 53.2L144 496l56.4 16L246 336h20l45.6 176 56.4-16-51.2-279.8C367.26 199.93 416 183.53 464 164zm-192 0a56 56 0 1156-56 56.06 56.06 0 01-56 56z\"}}]})(props);\n};\nexport function IoAccessibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 112a56 56 0 1156-56 56.06 56.06 0 01-56 56z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 112.8l-.45.12-.42.13c-1 .28-2 .58-3 .89-18.61 5.46-108.93 30.92-172.56 30.92-59.13 0-141.28-22-167.56-29.47a73.79 73.79 0 00-8-2.58c-19-5-32 14.3-32 31.94 0 17.47 15.7 25.79 31.55 31.76v.28l95.22 29.74c9.73 3.73 12.33 7.54 13.6 10.84 4.13 10.59.83 31.56-.34 38.88l-5.8 45-32.19 176.19q-.15.72-.27 1.47l-.23 1.27c-2.32 16.15 9.54 31.82 32 31.82 19.6 0 28.25-13.53 32-31.94s28-157.57 42-157.57 42.84 157.57 42.84 157.57c3.75 18.41 12.4 31.94 32 31.94 22.52 0 34.38-15.74 32-31.94a57.17 57.17 0 00-.76-4.06L329 301.27l-5.79-45c-4.19-26.21-.82-34.87.32-36.9a1.09 1.09 0 00.08-.15c1.08-2 6-6.48 17.48-10.79l89.28-31.21a16.9 16.9 0 001.62-.52c16-6 32-14.3 32-31.93S451 107.81 432 112.8z\"}}]})(props);\n};\nexport function IoAddCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 176v160m80-80H176\"}}]})(props);\n};\nexport function IoAddCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm96 224h-80v80h-32v-80h-80v-32h80v-80h32v80h80z\"}}]})(props);\n};\nexport function IoAddCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 224h-64v64a16 16 0 01-32 0v-64h-64a16 16 0 010-32h64v-64a16 16 0 0132 0v64h64a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoAddOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 112v288m144-144H112\"}}]})(props);\n};\nexport function IoAddSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 112v288m144-144H112\"}}]})(props);\n};\nexport function IoAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 112v288m144-144H112\"}}]})(props);\n};\nexport function IoAirplaneOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M407.72 224c-3.4 0-14.79.1-18 .3l-64.9 1.7a1.83 1.83 0 01-1.69-.9L193.55 67.56a9 9 0 00-6.66-3.56H160l73 161a2.35 2.35 0 01-2.26 3.35l-121.69 1.8a8.06 8.06 0 01-6.6-3.1l-37-45c-3-3.9-8.62-6-13.51-6H33.08c-1.29 0-1.1 1.21-.75 2.43l19.84 71.42a16.3 16.3 0 010 11.9L32.31 333c-.59 1.95-.52 3 1.77 3H52c8.14 0 9.25-1.06 13.41-6.3l37.7-45.7a8.19 8.19 0 016.6-3.1l120.68 2.7a2.7 2.7 0 012.43 3.74L160 448h26.64a9 9 0 006.65-3.55L323.14 287c.39-.6 2-.9 2.69-.9l63.9 1.7c3.3.2 14.59.3 18 .3C452 288.1 480 275.93 480 256s-27.88-32-72.28-32z\"}}]})(props);\n};\nexport function IoAirplaneSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.72 208c-2.72 0-14.44.08-18.67.31l-57.77 1.52L198.06 48h-62.81l74.59 164.61-97.31 1.44L68.25 160H16.14l20.61 94.18c.15.54.33 1.07.53 1.59a.26.26 0 010 .15 15.42 15.42 0 00-.53 1.58L15.86 352h51.78l45.45-55 96.77 2.17L135.24 464h63l133-161.75 57.77 1.54c4.29.23 16 .31 18.66.31 24.35 0 44.27-3.34 59.21-9.94C492.22 283 496 265.46 496 256c0-30.06-33-48-88.28-48zm-71.29 87.9z\"}}]})(props);\n};\nexport function IoAirplane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.62 464H160a16 16 0 01-14.57-22.6l64.46-142.25L113.1 297l-35.3 42.77C71.07 348.23 65.7 352 52 352H34.08a17.66 17.66 0 01-14.7-7.06c-2.38-3.21-4.72-8.65-2.44-16.41l19.82-71c.15-.53.33-1.06.53-1.58a.38.38 0 000-.15 14.82 14.82 0 01-.53-1.59l-19.84-71.45c-2.15-7.61.2-12.93 2.56-16.06a16.83 16.83 0 0113.6-6.7H52c10.23 0 20.16 4.59 26 12l34.57 42.05 97.32-1.44-64.44-142A16 16 0 01160 48h26.91a25 25 0 0119.35 9.8l125.05 152 57.77-1.52c4.23-.23 15.95-.31 18.66-.31C463 208 496 225.94 496 256c0 9.46-3.78 27-29.07 38.16-14.93 6.6-34.85 9.94-59.21 9.94-2.68 0-14.37-.08-18.66-.31l-57.76-1.54-125.36 152a25 25 0 01-19.32 9.75z\"}}]})(props);\n};\nexport function IoAlarmOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M416.07 272a160 160 0 10-160 160 160 160 0 00160-160zM142.12 91.21A46.67 46.67 0 00112 80l-2.79.08C83.66 81.62 64 104 64.07 131c0 13.21 4.66 19.37 10.88 27.23a4.55 4.55 0 003.24 1.77h.88a3.23 3.23 0 002.54-1.31L142.38 99a5.38 5.38 0 001.55-4 5.26 5.26 0 00-1.81-3.79zm227.76 0A46.67 46.67 0 01400 80l2.79.08C428.34 81.62 448 104 447.93 131c0 13.21-4.66 19.37-10.88 27.23a4.55 4.55 0 01-3.24 1.76h-.88a3.23 3.23 0 01-2.54-1.31L369.62 99a5.38 5.38 0 01-1.55-4 5.26 5.26 0 011.81-3.79z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256.07 160v112h-80m240 160l-40-40m-280 40l40-40\"}}]})(props);\n};\nexport function IoAlarmSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.79 64.11l-3.27-.1H400c-14.73 0-28.55 5.91-40.52 15S344 96 344 96l88 86s11.25-5.71 17.61-13.85 14.28-18.08 14.32-37.11c.07-35.49-26.33-64.89-60.14-66.93zm-295.58 0l3.27-.1h.52c14.73 0 28.55 5.91 40.52 15S168 96 168 96l-88 86s-11.25-5.71-17.61-13.85S48.11 150.07 48.07 131C48 95.55 74.4 66.15 108.21 64.11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M391.3 384.6a.06.06 0 010-.08C425 344 441 288.24 427 229.23c-13.64-57.52-72.67-115.69-130.34-128.66C182 74.79 80.07 161.71 80.07 272a175.15 175.15 0 0040.78 112.52.06.06 0 010 .08L73 432a.06.06 0 000 .08l23 22.51a.06.06 0 00.08 0l47.43-47.37a.06.06 0 01.08 0 175.64 175.64 0 00225.05 0h.07L416 454.59a.06.06 0 00.08 0L440 432zM272.07 288H160v-31.9l.05-.05h80V144h32z\"}}]})(props);\n};\nexport function IoAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.59 110.46A21.41 21.41 0 00152.48 79 62.67 62.67 0 00112 64l-3.27.09h-.48C74.4 66.15 48 95.55 48.07 131c0 19 8 29.06 14.32 37.11a20.61 20.61 0 0014.7 7.8c.26 0 .7.05 2 .05a19.06 19.06 0 0013.75-5.89zm250.2-46.35l-3.27-.1H400a62.67 62.67 0 00-40.52 15 21.41 21.41 0 00-1.11 31.44l60.77 59.65a19.06 19.06 0 0013.79 5.9c1.28 0 1.72 0 2-.05a20.61 20.61 0 0014.69-7.8c6.36-8.05 14.28-18.08 14.32-37.11.06-35.49-26.34-64.89-60.15-66.93z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.07 96c-97 0-176 78.95-176 176a175.23 175.23 0 0040.81 112.56l-36.12 36.13a16 16 0 1022.63 22.62l36.12-36.12a175.63 175.63 0 00225.12 0l36.13 36.12a16 16 0 1022.63-22.62l-36.13-36.13A175.17 175.17 0 00432.07 272c0-97-78.95-176-176-176zm16 176a16 16 0 01-16 16h-80a16 16 0 010-32h64v-96a16 16 0 0132 0z\"}}]})(props);\n};\nexport function IoAlbumsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"384\",\"height\":\"256\",\"x\":\"64\",\"y\":\"176\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28.87\",\"ry\":\"28.87\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M144 80h224m-256 48h288\"}}]})(props);\n};\nexport function IoAlbumsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64h256v32H128zm-32 48h320v32H96zm368 336H48V160h416z\"}}]})(props);\n};\nexport function IoAlbums (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 96H144a16 16 0 010-32h224a16 16 0 010 32zm32 48H112a16 16 0 010-32h288a16 16 0 010 32zm19.13 304H92.87A44.92 44.92 0 0148 403.13V204.87A44.92 44.92 0 0192.87 160h326.26A44.92 44.92 0 01464 204.87v198.26A44.92 44.92 0 01419.13 448z\"}}]})(props);\n};\nexport function IoAlertCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M250.26 166.05L256 288l5.73-121.95a5.74 5.74 0 00-5.79-6h0a5.74 5.74 0 00-5.68 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 367.91a20 20 0 1120-20 20 20 0 01-20 20z\"}}]})(props);\n};\nexport function IoAlertCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M240 304h32l6-160h-44l6 160z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm20 319.91h-40v-40h40zM272 304h-32l-6-160h44z\"}}]})(props);\n};\nexport function IoAlertCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 319.91a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.94v-.05a21.74 21.74 0 1143.44 0z\"}}]})(props);\n};\nexport function IoAlertOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"416\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoAlertSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M240 80l8 240h16l8-240h-32zm0 320h32v32h-32z\"}}]})(props);\n};\nexport function IoAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"416\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoAmericanFootballOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"267.57\",\"ry\":\"173.44\",\"transform\":\"rotate(-45 256 256.002)\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M334.04 177.96L177.96 334.04M278.3 278.3l-44.6-44.6m89.19 0l-44.59-44.59m178.38 22.29L300.6 55.32m-89.2 401.36L55.32 300.6m178.38 22.29l-44.59-44.59\"}}]})(props);\n};\nexport function IoAmericanFootballSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.9 120.51c-44.75 44.56-67.29 101.05-78.64 145.9l202.31 201.44c45.05-11.3 101.78-33.74 146.53-78.3s67.29-101.05 78.64-145.91L267.43 42.21C222.38 53.51 165.65 76 120.9 120.51zm259 257.83zm-45-224.2l22.52 22.42-33.78 33.63 22.52 22.42L323.55 255 301 232.61 278.52 255 301 277.45l-22.51 22.42L256 277.45l-22.52 22.42L256 322.29l-22.52 22.42L211 322.29l-33.78 33.63-22.55-22.42 33.78-33.63-22.52-22.42L188.45 255 211 277.45 233.48 255 211 232.61l22.51-22.42L256 232.61l22.52-22.42L256 187.77l22.52-22.42L301 187.77zm143.58 44.27C485.85 143.65 464 48.05 464 48.05s-96.14-21.88-151.14-14.54c-2.54.33-5.21.72-8 1.14l172.47 171.71c.43-2.76.81-5.42 1.15-7.95zM33.52 311.65C26.15 366.41 48.05 464 48.05 464s60 16 99.86 16a391.92 391.92 0 0051.23-3.45c2.54-.33 5.21-.72 8-1.15L34.67 303.7c-.43 2.76-.81 5.42-1.15 7.95z\"}}]})(props);\n};\nexport function IoAmericanFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M122.06 122.06c-44.37 44.37-66.71 100.61-78 145.28l200.6 200.56c44.67-11.25 100.91-33.59 145.28-78s66.71-100.61 78-145.28L267.34 44.1c-44.67 11.25-100.91 33.59-145.28 77.96zm256.73 256.72zM300.65 189L323 166.71A15.78 15.78 0 01345.29 189L323 211.35l11.16 11.17a15.78 15.78 0 01-22.32 22.32l-11.16-11.16L278.32 256l11.16 11.16a15.78 15.78 0 11-22.32 22.32L256 278.32l-22.32 22.33 11.16 11.16a15.78 15.78 0 11-22.32 22.32L211.35 323 189 345.29A15.78 15.78 0 01166.71 323L189 300.65l-11.16-11.17a15.78 15.78 0 0122.32-22.32l11.16 11.16L233.68 256l-11.16-11.16a15.78 15.78 0 1122.32-22.32L256 233.68l22.32-22.33-11.16-11.16a15.78 15.78 0 0122.32-22.32zm175.92 10.63c7.31-54.53 4-120.26-20-144.21s-89.68-27.3-144.21-20c-2.51.34-5.16.72-7.91 1.15l171 171c.4-2.78.78-5.43 1.12-7.94zM35.43 312.37c-7.31 54.53-4 120.26 20 144.21C72.17 473.33 109.34 480 148.84 480a387 387 0 0050.79-3.43c2.51-.34 5.16-.72 7.91-1.15l-171-171c-.39 2.79-.77 5.44-1.11 7.95z\"}}]})(props);\n};\nexport function IoAnalyticsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M344 280l88-88m-200 24l64 64M80 320l104-104\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"456\",\"cy\":\"168\",\"r\":\"24\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"320\",\"cy\":\"304\",\"r\":\"24\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"208\",\"cy\":\"192\",\"r\":\"24\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"56\",\"cy\":\"344\",\"r\":\"24\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoAnalyticsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450 128a46 46 0 00-44.11 59l-71.37 71.36a45.88 45.88 0 00-29 0l-52.91-52.91a46 46 0 10-89.12 0L75 293.88A46.08 46.08 0 10106.11 325l87.37-87.36a45.85 45.85 0 0029 0l52.92 52.92a46 46 0 1089.12 0L437 218.12A46 46 0 10450 128z\"}}]})(props);\n};\nexport function IoAnalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 128a40 40 0 00-37.23 54.6l-84.17 84.17a39.86 39.86 0 00-29.2 0l-60.17-60.17a40 40 0 10-74.46 0L70.6 306.77a40 40 0 1022.63 22.63L193.4 229.23a39.86 39.86 0 0029.2 0l60.17 60.17a40 40 0 1074.46 0l84.17-84.17A40 40 0 10456 128z\"}}]})(props);\n};\nexport function IoApertureOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M360 94.59V296m83.13-83.13L296 360m121.41 0H216m83.13 83.13l-144-144M152 416V216m-83.13 83.13l144-144M94.59 152H288m-75.13-83.13L360 216\"}}]})(props);\n};\nexport function IoApertureSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 48l129.49 128.18V48H216zm-34.53 10.38L80 134h176l-74.53-75.62zM336 344h128V216L336 344zm118-162L378 80v176l76-74zM48 166v128l128-128H48zm282 288l102-76H256l74 76zM58 330l76 102V256l-76 74zm287.49-107.88l-55.55-55.46h-67.88l-55.55 55.46v67.76l55.62 55.52c.44 0 .88-.06 1.33-.06h66.48l55.55-55.46zM165.98 336.09L166 464h128L165.98 336.09z\"}}]})(props);\n};\nexport function IoAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.54 129.17l-67.8-67.8A209.65 209.65 0 0086.32 136h161.4a4 4 0 002.82-6.83zM167.72 168H67.63a207.34 207.34 0 00-16.15 125.9l119.06-119.07a4 4 0 00-2.82-6.83zm176.28-.28V67.56a207.82 207.82 0 00-125.89-16.08l119.06 119.06a4 4 0 006.83-2.82zm116.52 50.38L341.46 337.17a4 4 0 002.82 6.83h100.09a207.34 207.34 0 0016.15-125.9zm-77.69 32.44l67.83-67.82A209.08 209.08 0 00376 86.2v161.52a4 4 0 006.83 2.82zm-161.15 91.23a8 8 0 005.54 2.23h59.66a8 8 0 005.7-2.39l49.18-50a8 8 0 002.3-5.62l-.06-60.81a8 8 0 00-2.38-5.69l-50-49.25a8 8 0 00-5.63-2.3l-60.84.06a8 8 0 00-5.69 2.38l-49.25 50a8 8 0 00-2.3 5.63l.06 60.78a8 8 0 002.45 5.76zm39.78 41.06l67.8 67.8A209.65 209.65 0 00425.68 376h-161.4a4 4 0 00-2.82 6.83zM168 344.28v100.16a207.82 207.82 0 00125.89 16.08L174.83 341.46a4 4 0 00-6.83 2.82zm-38.83-82.82l-67.83 67.83A209.1 209.1 0 00136 425.8V264.28a4 4 0 00-6.83-2.82z\"}}]})(props);\n};\nexport function IoAppsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"64\",\"y\":\"64\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"216\",\"y\":\"64\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"368\",\"y\":\"64\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"64\",\"y\":\"216\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"216\",\"y\":\"216\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"368\",\"y\":\"216\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"64\",\"y\":\"368\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"216\",\"y\":\"368\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"368\",\"y\":\"368\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}}]})(props);\n};\nexport function IoAppsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"48\",\"y\":\"48\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"200\",\"y\":\"48\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"352\",\"y\":\"48\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"48\",\"y\":\"200\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"200\",\"y\":\"200\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"352\",\"y\":\"200\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"48\",\"y\":\"352\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"200\",\"y\":\"352\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"112\",\"height\":\"112\",\"x\":\"352\",\"y\":\"352\",\"rx\":\"8\",\"ry\":\"8\"}}]})(props);\n};\nexport function IoApps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zm152 0a56 56 0 1156-56 56.06 56.06 0 01-56 56zm152 0a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zm152 0a56 56 0 1156-56 56.06 56.06 0 01-56 56zm152 0a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 464a56 56 0 1156-56 56.06 56.06 0 01-56 56zm152 0a56 56 0 1156-56 56.06 56.06 0 01-56 56zm152 0a56 56 0 1156-56 56.06 56.06 0 01-56 56z\"}}]})(props);\n};\nexport function IoArchiveOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 152v256a40.12 40.12 0 0040 40h272a40.12 40.12 0 0040-40V152\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"80\",\"x\":\"48\",\"y\":\"64\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 304l-64 64-64-64m64 41.89V224\"}}]})(props);\n};\nexport function IoArchiveSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"80\",\"x\":\"32\",\"y\":\"48\",\"rx\":\"12\",\"ry\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M64 160v280a24 24 0 0024 24h336a24 24 0 0024-24V160zm192 230.63L169.32 304 192 281.32l48 48.05V208h32v121.37l48.07-48.07 22.61 22.64z\"}}]})(props);\n};\nexport function IoArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 164v244a56 56 0 0056 56h272a56 56 0 0056-56V164a4 4 0 00-4-4H68a4 4 0 00-4 4zm267 151.63l-63.69 63.68a16 16 0 01-22.62 0L181 315.63c-6.09-6.09-6.65-16-.85-22.38a16 16 0 0123.16-.56L240 329.37V224.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 224v105.37l36.69-36.68a16 16 0 0123.16.56c5.8 6.37 5.24 16.29-.85 22.38z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"80\",\"x\":\"32\",\"y\":\"48\",\"rx\":\"32\",\"ry\":\"32\"}}]})(props);\n};\nexport function IoArrowBackCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M249.38 336L170 256l79.38-80m-68.35 80H342\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoArrowBackCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm224-80.09L208.42 240H358v32H208.42L272 336.09l-22.7 22.54L147.46 256 249.3 153.37z\"}}]})(props);\n};\nexport function IoArrowBackCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm212.65-91.36a16 16 0 01.09 22.63L208.42 240H342a16 16 0 010 32H208.42l52.32 52.73A16 16 0 11238 347.27l-79.39-80a16 16 0 010-22.54l79.39-80a16 16 0 0122.65-.09z\"}}]})(props);\n};\nexport function IoArrowBackOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M244 400L100 256l144-144M120 256h292\"}}]})(props);\n};\nexport function IoArrowBackSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M244 400L100 256l144-144M120 256h292\"}}]})(props);\n};\nexport function IoArrowBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M244 400L100 256l144-144M120 256h292\"}}]})(props);\n};\nexport function IoArrowDownCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 262.62L256 342l80-79.38m-80 68.35V170\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\"}}]})(props);\n};\nexport function IoArrowDownCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-80.09-224L240 303.58V154h32v149.58L336.09 240l22.54 22.71L256 364.54 153.37 262.7z\"}}]})(props);\n};\nexport function IoArrowDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-91.36-212.65a16 16 0 0122.63-.09L240 303.58V170a16 16 0 0132 0v133.58l52.73-52.32A16 16 0 11347.27 274l-80 79.39a16 16 0 01-22.54 0l-80-79.39a16 16 0 01-.09-22.65z\"}}]})(props);\n};\nexport function IoArrowDownOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 268l144 144 144-144M256 392V100\"}}]})(props);\n};\nexport function IoArrowDownSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M112 268l144 144 144-144M256 392V100\"}}]})(props);\n};\nexport function IoArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 268l144 144 144-144M256 392V100\"}}]})(props);\n};\nexport function IoArrowForwardCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M262.62 336L342 256l-79.38-80m68.35 80H170\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z\"}}]})(props);\n};\nexport function IoArrowForwardCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-224 80.09L303.58 272H154v-32h149.58L240 175.91l22.71-22.54L364.54 256 262.7 358.63z\"}}]})(props);\n};\nexport function IoArrowForwardCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-212.65 91.36a16 16 0 01-.09-22.63L303.58 272H170a16 16 0 010-32h133.58l-52.32-52.73A16 16 0 11274 164.73l79.39 80a16 16 0 010 22.54l-79.39 80a16 16 0 01-22.65.09z\"}}]})(props);\n};\nexport function IoArrowForwardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M268 112l144 144-144 144m124-144H100\"}}]})(props);\n};\nexport function IoArrowForwardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M268 112l144 144-144 144m124-144H100\"}}]})(props);\n};\nexport function IoArrowForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M268 112l144 144-144 144m124-144H100\"}}]})(props);\n};\nexport function IoArrowRedoCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M266.91 327.74v-37.32c-57.07 0-84.51 13.47-108.58 38.68-5.4 5.65-15 1.32-14.29-6.43 5.45-61.45 34.14-117.09 122.87-117.09v-37.32a8.32 8.32 0 0114-6L365.42 242a8.2 8.2 0 010 11.94L281 333.71a8.32 8.32 0 01-14.09-5.97z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 256c0 106 86 192 192 192s192-86 192-192S362 64 256 64 64 150 64 256z\"}}]})(props);\n};\nexport function IoArrowRedoCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm98 88c0-68.13 22.67-137.14 119.17-137.14V152L366 248l-100.83 96v-54.86c-66.69 0-91.32 19.29-119.17 54.86z\"}}]})(props);\n};\nexport function IoArrowRedoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm96 66.67c5.45-61.45 34.14-117.09 122.87-117.09v-37.32a8.32 8.32 0 0114-6L365.42 242a8.2 8.2 0 010 11.94L281 333.71a8.32 8.32 0 01-14-6v-37.29c-57.07 0-84.51 13.47-108.58 38.68-5.49 5.65-15.07 1.32-14.42-6.43z\"}}]})(props);\n};\nexport function IoArrowRedoOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 256L272 88v96C103.57 184 64 304.77 64 424c48.61-62.24 91.6-96 208-96v96z\"}}]})(props);\n};\nexport function IoArrowRedoSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 399.26C48 335.19 62.44 284 90.91 247c34.38-44.67 88.68-68.77 161.56-71.75V72L464 252 252.47 432V329.35c-44.25 1.19-77.66 7.58-104.27 19.84-28.75 13.25-49.6 33.05-72.08 58.7L48 440z\"}}]})(props);\n};\nexport function IoArrowRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58.79 439.13A16 16 0 0148 424c0-73.1 14.68-131.56 43.65-173.77 35-51 90.21-78.46 164.35-81.87V88a16 16 0 0127.05-11.57l176 168a16 16 0 010 23.14l-176 168A16 16 0 01256 424v-79.77c-45 1.36-79 8.65-106.07 22.64-29.25 15.12-50.46 37.71-73.32 67a16 16 0 01-17.82 5.28z\"}}]})(props);\n};\nexport function IoArrowUndoCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.09 327.74v-37.32c57.07 0 84.51 13.47 108.58 38.68 5.4 5.65 15 1.32 14.29-6.43-5.45-61.45-34.14-117.09-122.87-117.09v-37.32a8.32 8.32 0 00-14.05-6L146.58 242a8.2 8.2 0 000 11.94L231 333.71a8.32 8.32 0 0014.09-5.97z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\"}}]})(props);\n};\nexport function IoArrowUndoCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-9.17 241.14V344L146 248l100.83-96v54.86c96.5 0 119.17 69 119.17 137.14-27.85-35.57-52.48-54.86-119.17-54.86z\"}}]})(props);\n};\nexport function IoArrowUndoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm97.67 281.1c-24.07-25.21-51.51-38.68-108.58-38.68v37.32a8.32 8.32 0 01-14.05 6L146.58 254a8.2 8.2 0 010-11.94L231 162.29a8.32 8.32 0 0114.05 6v37.32c88.73 0 117.42 55.64 122.87 117.09.73 7.72-8.85 12.05-14.25 6.4z\"}}]})(props);\n};\nexport function IoArrowUndoOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M240 424v-96c116.4 0 159.39 33.76 208 96 0-119.23-39.57-240-208-240V88L64 256z\"}}]})(props);\n};\nexport function IoArrowUndoSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 440l-28.12-32.11c-22.48-25.65-43.33-45.45-72.08-58.7-26.61-12.26-60-18.65-104.27-19.84V432L48 252 259.53 72v103.21c72.88 3 127.18 27.08 161.56 71.75C449.56 284 464 335.19 464 399.26z\"}}]})(props);\n};\nexport function IoArrowUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 440a16 16 0 01-12.61-6.15c-22.86-29.27-44.07-51.86-73.32-67C335 352.88 301 345.59 256 344.23V424a16 16 0 01-27 11.57l-176-168a16 16 0 010-23.14l176-168A16 16 0 01256 88v80.36c74.14 3.41 129.38 30.91 164.35 81.87C449.32 292.44 464 350.9 464 424a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoArrowUpCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 249.38L256 170l80 79.38m-80-68.35V342\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoArrowUpCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm80.09 224L272 208.42V358h-32V208.42L175.91 272l-22.54-22.7L256 147.46 358.63 249.3z\"}}]})(props);\n};\nexport function IoArrowUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm91.36 212.65a16 16 0 01-22.63.09L272 208.42V342a16 16 0 01-32 0V208.42l-52.73 52.32A16 16 0 11164.73 238l80-79.39a16 16 0 0122.54 0l80 79.39a16 16 0 01.09 22.65z\"}}]})(props);\n};\nexport function IoArrowUpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 244l144-144 144 144M256 120v292\"}}]})(props);\n};\nexport function IoArrowUpSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M112 244l144-144 144 144M256 120v292\"}}]})(props);\n};\nexport function IoArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 244l144-144 144 144M256 120v292\"}}]})(props);\n};\nexport function IoAtCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448.08 256.08c0-106-86-192-192-192s-192 86-192 192 86 192 192 192 192-85.97 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"28\",\"d\":\"M300.81 358.29c-20.83 7.42-34.05 9.59-54.19 9.59-61.17 0-106.39-50.07-101-111.84S205 144.21 266.14 144.21c68.92 0 106.79 45.55 101.47 106.55-4 45.54-32.8 58.66-47.89 56-14.2-2.55-25.92-15.52-23.75-40.35l5.62-44.66c-7.58-9.17-28.11-18-49.93-14.54C231.77 210.3 209 228 206.56 256s14.49 50.84 39.93 50.84 47.86-18.39 50.69-50.84\"}}]})(props);\n};\nexport function IoAtCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.41 48.74c-114.85 0-208 93.11-208 208s93.12 208 208 208 208-93.12 208-208-93.16-208-208-208zM381.22 252c-2.85 32.63-16.78 49.7-28 58.26s-24.69 12.34-36.33 10.26a41.63 41.63 0 01-27-17.52 60.84 60.84 0 01-43.72 17.9 51.65 51.65 0 01-38.55-16.83c-11.39-12.42-17-30.36-15.33-49.23 3.05-35 30.92-57.39 56.87-61.48 27.21-4.29 52.24 6.54 62.91 19.46l3.84 4.66-6.34 50.38c-1.19 14.34 3.29 23.48 12.29 25.1 2.39.42 8.11-.13 14.38-4.93 6.72-5.15 15.14-16 17.1-38.47 2.32-26.55-4.35-49.19-19.28-65.49-15.5-16.9-39.1-25.84-68.24-25.84-54 0-101.81 44.43-106.57 99-2.29 26.2 5.66 50.68 22.39 68.93C198 344 221 353.88 246.29 353.88c19 0 30.61-2.05 49.49-8.78l13.22-4.69 9.39 26.37-13.19 4.7c-21.82 7.77-36.68 10.4-58.88 10.4-33.28 0-63.57-13.06-85.3-36.77-22.09-24.11-32.62-56.17-29.65-90.29 2.91-33.33 18.46-64.63 43.77-88.12s57.57-36.49 90.7-36.49c37.2 0 67.94 12.08 88.88 34.93 20.05 21.91 29.48 52.75 26.5 86.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M253.51 221c-14.83 2.33-31.55 15.84-33.34 36.26-1 11.06 2 21.22 8.08 27.87a23.63 23.63 0 0017.91 7.75c19.7 0 33.8-14.79 36.8-38.59l1.75-13.89h.09l1.65-13.11a49.63 49.63 0 00-32.94-6.3z\"}}]})(props);\n};\nexport function IoAtCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.46 48.74c-114.84 0-208 93.11-208 208s93.12 208 208 208 208-93.12 208-208-93.15-208-208-208zM380.28 252c-2.85 32.63-16.79 49.7-28 58.26S327.61 322.58 316 320.5a41.61 41.61 0 01-26.82-17.19 62.06 62.06 0 01-44 17.57 51.66 51.66 0 01-38.55-16.83c-11.38-12.42-17-30.36-15.32-49.23 3-35 30.91-57.39 56.87-61.48 27.2-4.29 52.23 6.54 62.9 19.46l3.85 4.66-6.34 50.38c-1.19 14.34 3.28 23.48 12.29 25.1 2.39.42 8.1-.13 14.37-4.93 6.72-5.15 15.14-16 17.1-38.47 2.35-26.54-4.35-49.19-19.25-65.49-15.49-16.9-39.09-25.84-68.23-25.84-54 0-101.81 44.43-106.58 99-2.28 26.2 5.67 50.68 22.4 68.93 16.36 17.86 39.31 27.74 64.66 27.74 19 0 30.61-2.05 49.48-8.78a14 14 0 019.4 26.38c-21.82 7.77-36.68 10.4-58.88 10.4-33.28 0-63.57-13.06-85.3-36.77C138 321 127.42 288.94 130.4 254.82c2.91-33.33 18.45-64.63 43.77-88.12s57.57-36.49 90.7-36.49c37.2 0 67.93 12.08 88.87 34.93 20.09 21.91 29.51 52.75 26.54 86.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M252.57 221c-14.83 2.33-31.56 15.84-33.34 36.26-1 11.06 2 21.22 8.07 27.87a23.65 23.65 0 0017.91 7.75c20.31 0 34.73-14.94 36.75-38.06a14 14 0 01.34-2.07l3.2-25.45a49.61 49.61 0 00-32.93-6.3z\"}}]})(props);\n};\nexport function IoAtOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 254.27c-4.5 51-40.12 80-80.55 80s-67.34-35.82-63.45-80 37.12-80 77.55-80 70.33 36 66.45 80z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M319.77 415.77c-28.56 12-47.28 14.5-79.28 14.5-97.2 0-169-78.8-160.49-176s94.31-176 191.51-176C381 78.27 441.19 150 432.73 246c-6.31 71.67-52.11 92.32-76.09 88.07-22.56-4-41.18-24.42-37.74-63.5l8.48-96.25\"}}]})(props);\n};\nexport function IoAtSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.6 115.78c-32.07-35-79.47-53.51-137.09-53.51-51 0-100.69 19.8-139.82 55.76s-63.13 83.84-67.63 134.83c-4.55 51.67 11.41 100.29 44.94 136.9 33.37 36.44 80.07 56.51 131.49 56.51 32.52 0 53.61-2.36 85.48-15.75l14.75-6.2-12.4-29.5-14.75 6.18c-27.15 11.4-43.78 13.25-73.08 13.25-42.34 0-80.65-16.38-107.89-46.12-27.4-29.92-40.42-69.86-36.66-112.48 7.84-89 86.6-161.4 175.57-161.4 48.4 0 87.65 14.91 113.49 43.13 24.61 26.87 35.6 63.92 31.79 107.15-3.29 37.35-17.76 55.74-29.32 64.6-11 8.44-22 10.18-28 9.11-17.68-3.13-26.87-20.46-24.59-46.29l9.93-109.12L311.9 160l-2 22.29a79.69 79.69 0 00-57.32-24c-23.8 0-46.54 10.07-64 28.37-16.77 17.53-27.23 41.05-29.45 66.22-2.45 27.87 5.75 54.34 22.51 72.64a76.14 76.14 0 0056.88 24.77A93 93 0 00310 318a60 60 0 0042.88 31.81c16.89 3 36.73-2.69 53.08-15.21 30.19-23.13 39.36-60.19 41.74-87.2 4.52-51.7-9.7-98.4-40.1-131.62zm-126.34 186a62.19 62.19 0 01-42.81 16.53 43.94 43.94 0 01-33.28-14.38c-10.71-11.7-15.9-29.27-14.23-48.22 3.23-36.68 30.29-65.4 61.61-65.4a48.16 48.16 0 0135.88 15.82c10.87 11.87 16.2 28.87 14.63 46.73-1.78 20.28-9.33 37.14-21.8 48.88z\"}}]})(props);\n};\nexport function IoAt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 254.27c-4.5 51-40.12 80-80.55 80s-67.34-35.82-63.45-80 37.12-80 77.55-80 70.33 36 66.45 80z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M319.77 415.77c-28.56 12-47.28 14.5-79.28 14.5-97.2 0-169-78.8-160.49-176s94.31-176 191.51-176C381 78.27 441.19 150 432.73 246c-6.31 71.67-52.11 92.32-76.09 88.07-22.56-4-41.18-24.42-37.74-63.5l8.48-96.25\"}}]})(props);\n};\nexport function IoAttachOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M216.08 192v143.85a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 10191 0V159.74\"}}]})(props);\n};\nexport function IoAttachSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M216.08 192v143.55a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 00191 0V159.44\"}}]})(props);\n};\nexport function IoAttach (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M216.08 192v143.85a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 10191 0V159.74\"}}]})(props);\n};\nexport function IoBackspaceOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M135.19 390.14a28.79 28.79 0 0021.68 9.86h246.26A29 29 0 00432 371.13V140.87A29 29 0 00403.13 112H156.87a28.84 28.84 0 00-21.67 9.84v0L46.33 256l88.86 134.11z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336.67 192.33L206.66 322.34m130.01 0L206.66 192.33m130.01 0L206.66 322.34m130.01 0L206.66 192.33\"}}]})(props);\n};\nexport function IoBackspaceSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 96L32 256l112 160h304V96zm215.3 226.34L336.67 345l-65-65-65 65L184 322.34l65-65-65-65 22.63-22.63 65 65 65-65 22.63 22.63-65 65z\"}}]})(props);\n};\nexport function IoBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.13 96H156.87a44.9 44.9 0 00-33.68 15.27 15.88 15.88 0 00-1.91 2.7L32 247.75a16 16 0 000 16.5l89.15 133.57a16.24 16.24 0 002 2.88 44.89 44.89 0 0033.7 15.3h246.28A44.92 44.92 0 00448 371.13V140.87A44.92 44.92 0 00403.13 96zM348 311a16 16 0 11-22.63 22.62L271.67 280 218 333.65A16 16 0 01195.35 311L249 257.33l-53.69-53.69A16 16 0 01218 181l53.69 53.7 53.67-53.7A16 16 0 01348 203.64l-53.7 53.69z\"}}]})(props);\n};\nexport function IoBagAddOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 256v128m64-64H192M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zm80 0v-32a96 96 0 0196-96h0a96 96 0 0196 96v32\"}}]})(props);\n};\nexport function IoBagAddSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm156 187h-64v64h-32v-64h-64v-32h64v-64h32v64h64z\"}}]})(props);\n};\nexport function IoBagAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.66 169.4A31.86 31.86 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.78 31.78 0 00-9.34-22.6zM320 336h-48v48a16 16 0 01-32 0v-48h-48a16 16 0 010-32h48v-48a16 16 0 0132 0v48h48a16 16 0 010 32zm16-176H176v-16a80 80 0 01160 0z\"}}]})(props);\n};\nexport function IoBagCheckOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 264l-89.6 112-38.4-44.88\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zm80 0v-32a96 96 0 0196-96h0a96 96 0 0196 96v32\"}}]})(props);\n};\nexport function IoBagCheckSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm50.81 252.12l-61.37-71.72 24.31-20.81L230 350.91l87.51-109.4 25 20z\"}}]})(props);\n};\nexport function IoBagCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM332.49 274l-89.6 112a16 16 0 01-12.23 6h-.26a16 16 0 01-12.16-5.6l-38.4-44.88a16 16 0 1124.32-20.8L230 350.91 307.51 254a16 16 0 0125 20zM336 160H176v-16a80 80 0 01160 0z\"}}]})(props);\n};\nexport function IoBagHandleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zm80 0v-32a96 96 0 0196-96h0a96 96 0 0196 96v32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 224v16a96 96 0 0096 96h0a96 96 0 0096-96v-16\"}}]})(props);\n};\nexport function IoBagHandleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm188 91a112 112 0 01-224 0v-32h32v32a80 80 0 00160 0v-32h32z\"}}]})(props);\n};\nexport function IoBagHandle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM176 144a80 80 0 01160 0v16H176zm192 96a112 112 0 01-224 0v-16a16 16 0 0132 0v16a80 80 0 00160 0v-16a16 16 0 0132 0z\"}}]})(props);\n};\nexport function IoBagOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zm80 0v-32a96 96 0 0196-96h0a96 96 0 0196 96v32\"}}]})(props);\n};\nexport function IoBagRemoveOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 320H192M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zm80 0v-32a96 96 0 0196-96h0a96 96 0 0196 96v32\"}}]})(props);\n};\nexport function IoBagRemoveSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm156 187H176v-32h160z\"}}]})(props);\n};\nexport function IoBagRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.66 169.4A31.86 31.86 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.78 31.78 0 00-9.34-22.6zM320 336H192a16 16 0 010-32h128a16 16 0 010 32zm16-176H176v-16a80 80 0 01160 0z\"}}]})(props);\n};\nexport function IoBagSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 160v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-40 0H180v-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148z\"}}]})(props);\n};\nexport function IoBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM176 144a80 80 0 01160 0v16H176z\"}}]})(props);\n};\nexport function IoBalloonOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M414.11 153.82C429.66 264.4 345.85 357.09 282.54 366s-169.48-57.5-185-167.68a159.82 159.82 0 11316.53-44.49z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M236.06 308.05c-32.83-13-67.08-43.1-82.27-85.46M367.7 495.78c-32.83-13-63.31-40.06-78.5-82.41\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M266.71 368.21l-9.17 49.61 63.31-8.9-22.49-45.16-31.65 4.45z\"}}]})(props);\n};\nexport function IoBalloonSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391 307.27c32.75-46.35 46.59-101.63 39-155.68C416.47 55.59 327.38-11.54 231.38 2S68.24 104.53 81.73 200.53c7.57 53.89 36.12 103.16 80.37 138.74 26.91 21.64 57.59 36.1 86.05 41.33l-8.36 45.23a8 8 0 009 9.38L279 431c15.9 35.87 41.65 60.48 78.41 75l14.88 5.88 11.77-29.75-14.88-5.89c-26.35-10.42-44.48-26.16-57-49.92l21.84-3.07a8 8 0 006.05-11.49l-20.49-41.16c25.98-12.87 51.49-35.18 71.42-63.33zm-160.82 15.66c-41.26-16.32-76.3-52.7-91.45-94.94l-5.4-15.06 30.12-10.8 5.4 15.06c14.5 40.44 47.27 65.77 73.1 76l14.88 5.88-11.77 29.76z\"}}]})(props);\n};\nexport function IoBalloon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391 307.27c32.75-46.35 46.59-101.63 39-155.68A175.82 175.82 0 00231.38 2c-96 13.49-163.14 102.58-149.65 198.58 7.57 53.89 36.12 103.16 80.37 138.74 24.58 19.68 52.31 33.5 78.62 39.68a8 8 0 016 9.22l-4.87 26.38a16.29 16.29 0 001.48 10.57 16 16 0 0014.2 8.61 15.21 15.21 0 002.23-.16l17.81-2.5a2 2 0 012.09 1.14c16.72 36.31 45.46 63.85 82.15 78.36a16 16 0 0021-9.65c2.83-8.18-1.64-17.07-9.68-20.28a118.57 118.57 0 01-59.3-51.88 2 2 0 011.45-3l7.4-1a16.54 16.54 0 0010.08-5.23 16 16 0 002.39-17.8l-12.06-24.23a8 8 0 013.26-10.55c23.59-13.17 46.45-34 64.65-59.73zm-154.9 16.78a16 16 0 01-5.88-1.12c-41.26-16.32-76.3-52.7-91.45-94.94a16 16 0 1130.12-10.8c14.5 40.44 47.27 65.77 73.1 76a16 16 0 01-5.89 30.88z\"}}]})(props);\n};\nexport function IoBanOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M108.92 108.92l294.16 294.16\"}}]})(props);\n};\nexport function IoBanSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM432 256a175.09 175.09 0 01-35.8 106.26L149.74 115.8A175.09 175.09 0 01256 80c97.05 0 176 79 176 176zm-352 0a175.09 175.09 0 0135.8-106.26L362.26 396.2A175.09 175.09 0 01256 432c-97 0-176-78.95-176-176z\"}}]})(props);\n};\nexport function IoBan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"200\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M114.58 114.58l282.84 282.84\"}}]})(props);\n};\nexport function IoBandageOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"560.87\",\"height\":\"176.25\",\"x\":\"-24.43\",\"y\":\"167.88\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"88.12\",\"ry\":\"88.12\",\"transform\":\"rotate(-45 256 256.002)\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"196\",\"x\":\"169.41\",\"y\":\"156.59\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\",\"transform\":\"rotate(45 257.409 254.582)\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"208\",\"r\":\"16\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"304\",\"cy\":\"256\",\"r\":\"16\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"208\",\"cy\":\"256\",\"r\":\"16\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"304\",\"r\":\"16\"}}]})(props);\n};\nexport function IoBandageSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M27.71 337.1a40 40 0 000 56.54l90.65 90.65a40 40 0 0056.54 0l75.1-75.1L102.81 262zM496 147.1a39.87 39.87 0 00-11.75-28.38l-91-91a40.14 40.14 0 00-56.75 0L264 100.28 411.72 248l72.53-72.53A39.85 39.85 0 00496 147.1zM273.06 386.19l116-116L241.77 123l-116 116zm19.63-141.5a16 16 0 110 22.62 16 16 0 010-22.62zm-48-48a16 16 0 110 22.62 16 16 0 010-22.62zm0 96a16 16 0 110 22.62 16 16 0 010-22.62zm-25.38-48a16 16 0 11-22.62 0 16 16 0 0122.62 0z\"}}]})(props);\n};\nexport function IoBandage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M275.8 157a16 16 0 00-22.63 0l-93.34 93.34a16 16 0 000 22.63l79.2 79.2a16 16 0 0022.63 0L355 258.83a16 16 0 000-22.63zM137.21 295.6a47.81 47.81 0 01-9.43-13.38L69 341a72.2 72.2 0 000 102 72.37 72.37 0 00102 0l58.77-58.76a47.81 47.81 0 01-13.38-9.43zM392 48a71.55 71.55 0 00-51 21l-55.92 55.91a48.05 48.05 0 0113.36 9.45l79.19 79.19a48.05 48.05 0 019.45 13.36L443 171a72 72 0 00-51-123z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M275.8 157a16 16 0 00-22.63 0l-93.34 93.34a16 16 0 000 22.63l79.2 79.2a16 16 0 0022.63 0L355 258.83a16 16 0 000-22.63zm-56.49 110.31a16 16 0 110-22.62 16 16 0 010 22.62zm48 48a16 16 0 110-22.62 16 16 0 010 22.62zm0-96a16 16 0 110-22.62 16 16 0 010 22.62zm48 48a16 16 0 110-22.62 16 16 0 010 22.62zm150.3-220.92a104.38 104.38 0 00-147.25 0l-69.76 69.89a4 4 0 004.2 6.58 35.74 35.74 0 0111.69-2.54 47.7 47.7 0 0133.94 14.06l79.19 79.19a47.7 47.7 0 0114.06 33.94 35.68 35.68 0 01-2.54 11.69 4 4 0 006.58 4.2l69.89-69.76a104.38 104.38 0 000-147.25z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M254.34 386.83a47.91 47.91 0 01-33.94-14l-79.19-79.23a47.81 47.81 0 01-9.43-13.38c-4.59-9.7-1.39-25 2.48-36.9a4 4 0 00-6.64-4l-77.23 77.04a104.12 104.12 0 00147.25 147.25l72.75-72.88a4 4 0 00-4.21-6.58c-4.18 1.58-8.4 2.68-11.84 2.68z\"}}]})(props);\n};\nexport function IoBarChartOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M32 32v432a16 16 0 0016 16h432\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"192\",\"x\":\"96\",\"y\":\"224\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"20\",\"ry\":\"20\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"240\",\"x\":\"240\",\"y\":\"176\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"20\",\"ry\":\"20\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"304\",\"x\":\"383.64\",\"y\":\"112\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"20\",\"ry\":\"20\"}}]})(props);\n};\nexport function IoBarChartSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 496H16V16h32v448h448v32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M192 432H80V208h112zm144 0H224V160h112zm143.64 0h-112V96h112z\"}}]})(props);\n};\nexport function IoBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 496H48a32 32 0 01-32-32V32a16 16 0 0132 0v432h432a16 16 0 010 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M156 432h-40a36 36 0 01-36-36V244a36 36 0 0136-36h40a36 36 0 0136 36v152a36 36 0 01-36 36zm144 0h-40a36 36 0 01-36-36V196a36 36 0 0136-36h40a36 36 0 0136 36v200a36 36 0 01-36 36zm143.64 0h-40a36 36 0 01-36-36V132a36 36 0 0136-36h40a36 36 0 0136 36v264a36 36 0 01-36 36z\"}}]})(props);\n};\nexport function IoBarbellOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 256h416\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"32\",\"height\":\"256\",\"x\":\"384\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"32\",\"height\":\"256\",\"x\":\"96\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"128\",\"x\":\"32\",\"y\":\"192\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"16\",\"height\":\"128\",\"x\":\"464\",\"y\":\"192\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}}]})(props);\n};\nexport function IoBarbellSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 176h-58v-64h-76v122H150V112H74v64H16v160h58v64h76V278h212v122h76v-64h58V176z\"}}]})(props);\n};\nexport function IoBarbell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M467 176a29.94 29.94 0 00-25.32 12.5 2 2 0 01-3.64-1.14v-36.65c0-20.75-16.34-38.21-37.08-38.7A38 38 0 00362 150v82a2 2 0 01-2 2H152a2 2 0 01-2-2v-81.29c0-20.75-16.34-38.21-37.08-38.7A38 38 0 0074 150v37.38a2 2 0 01-3.64 1.14A29.94 29.94 0 0045 176c-16.3.51-29 14.31-29 30.62v98.72c0 16.31 12.74 30.11 29 30.62a29.94 29.94 0 0025.32-12.5 2 2 0 013.68 1.16v36.67C74 382 90.34 399.5 111.08 400A38 38 0 00150 362v-82a2 2 0 012-2h208a2 2 0 012 2v81.29c0 20.75 16.34 38.21 37.08 38.7A38 38 0 00438 362v-37.38a2 2 0 013.64-1.14A29.94 29.94 0 00467 336c16.3-.51 29-14.31 29-30.62v-98.74c0-16.31-12.74-30.11-29-30.64z\"}}]})(props);\n};\nexport function IoBarcodeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 400.33l35.13-.33A29 29 0 00448 371.13V140.87A29 29 0 00419.13 112l-35.13.33M128 112l-36.8.33c-15.88 0-27.2 13-27.2 28.87v230.27c0 15.87 11.32 28.86 27.2 28.86L128 400m256-208v128m-64-160v192m-64-176v160m-64-176v192m-64-160v128\"}}]})(props);\n};\nexport function IoBarcodeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 400.33l48-.33V112l-48 .33M112 112l-48 .33v288l48-.33m272-208v128m-64-160v192m-64-176v160m-64-176v192m-64-160v128\"}}]})(props);\n};\nexport function IoBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M419.13 96H419l-35.05.33L128 96h-.16l-36.74.33C66.93 96.38 48 116.07 48 141.2v230.27c0 25.15 19 44.86 43.2 44.86h.15l36.71-.33 255.92.33h.17l35.07-.33A44.91 44.91 0 00464 371.13V140.87A44.92 44.92 0 00419.13 96zM144 320a16 16 0 01-32 0V192a16 16 0 0132 0zm64 32a16 16 0 01-32 0V160a16 16 0 0132 0zm64-16a16 16 0 01-32 0V176a16 16 0 0132 0zm64 16a16 16 0 01-32 0V160a16 16 0 0132 0zm64-32a16 16 0 01-32 0V192a16 16 0 0132 0z\"}}]})(props);\n};\nexport function IoBaseballOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M294.25 108.6l-60.57 17.59m83.45 29.92l-51.5 36.4m90.26 2.36l-36.4 51.5m83.91-28.62l-17.59 60.57\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"192\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432.94 255.05a192 192 0 01-176.31-180.7M108.54 294.31l17.59-60.57m29.92 83.45l36.4-51.5m2.36 90.26l51.5-36.4m-28.62 83.91l60.57-17.59M255 433.61A192 192 0 0074.29 256.69\"}}]})(props);\n};\nexport function IoBaseballSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.16 56.2a13.88 13.88 0 01-3.42 8.91l-.11 5.13-27.71-.57c0 1.3.09 2.61.16 3.91a177.33 177.33 0 003.45 26.31l24.72-7.18 7.81 26.88-24.71 7.18a177.21 177.21 0 0013.34 27.69l21.27-15 16.16 22.86-21.29 15.05q5.25 6.33 11.11 12.19c3.91 3.91 8 7.6 12.2 11.1l15.71-22.22 22.86 16.16L358 216.75a178.78 178.78 0 0027.68 13.32l7.49-25.8 26.89 7.81-7.5 25.83a177.8 177.8 0 0031 3.67l-.41-24.67 17.41-.29A208 208 0 00301.82 52.93a13.65 13.65 0 01.34 3.27zM214 441.64l27.91.49a177.46 177.46 0 00-3.62-29.95l-24.14 7-7.81-26.88 24.11-7a177.92 177.92 0 00-13.33-27.68L196.79 372l-16.16-22.86L201 334.73c-3.49-4.22-7.19-8.3-11.09-12.2s-8-7.62-12.19-11.12l-13.91 19.68L141 314.93l13.9-19.66a177.26 177.26 0 00-27.7-13.33l-6.37 21.94-26.89-7.81 6.38-22a177.32 177.32 0 00-26.32-3.4c-1.59-.09-3.18-.16-4.78-.2l.4 22.34-17.71.32a207.88 207.88 0 00161.81 166.48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M444.65 302.67l-.55-33.06a206 206 0 01-39.33-4.74L397 291.8l-26.94-7.8 7.83-27a206.91 206.91 0 01-36.06-17.35l-16.36 23.15-22.86-16.16 16.33-23.11a204.21 204.21 0 01-30-30l-22.19 15.67-16.16-22.87 22.17-15.67a206 206 0 01-17.38-36.06l-25.75 7.48-7.81-26.89 25.73-7.47q-2-9.21-3.18-18.64h-.47l-.78-14-.33-6-17.94-.32a13.38 13.38 0 01-1.79-.16l-6.35-.13.06-2.47a14 14 0 01-5.66-11.49 13.27 13.27 0 01.13-1.67A208 208 0 0052.16 217.43l16.1-.28.45 25.18 6.83.38 14 .77v.48q9.42 1.17 18.64 3.18l6.68-23L141.7 232l-6.7 23a205.3 205.3 0 0136.06 17.38l14.53-20.56L208.47 268 194 288.5a203.5 203.5 0 0130 30l21.3-15 16.16 22.86-21.36 15.05a206.86 206.86 0 0117.34 36.06l25.27-7.33 7.81 26.86-25.24 7.33a205.9 205.9 0 014.72 38.3l29.42.53-.29 16.48a207.94 207.94 0 00160-157.21z\"}}]})(props);\n};\nexport function IoBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444 295.67l-.47-26.07a205.42 205.42 0 01-39.27-4.73l-5 17.35a14 14 0 11-26.88-7.81l5-17.38a206.47 206.47 0 01-36.05-17.35l-10.44 14.77a14 14 0 01-22.87-16.16l10.41-14.73a204.8 204.8 0 01-30-30L273.71 204a14 14 0 01-16.16-22.87l14.74-10.42a205.3 205.3 0 01-17.38-36.06l-17.32 5a14 14 0 11-7.81-26.89l17.3-5a205.88 205.88 0 01-4.43-32.59q-.17-3-.24-6l-18.22-.33a14 14 0 01-13.74-14A208 208 0 0055 202.42a16 16 0 0115 15.66l.44 24.43c1.58.05 3.16.11 4.73.2a205.88 205.88 0 0132.59 4.43l5-17.3a14 14 0 0126.89 7.81l-5 17.32a205.21 205.21 0 0136 17.38L181 257.61a14 14 0 0122.87 16.16l-10.39 14.73a205.65 205.65 0 0115.79 14.23 203.79 203.79 0 0114.23 15.79l14.73-10.41A14 14 0 01254.39 331l-14.76 10.43A206.86 206.86 0 01257 377.47l17.38-5.05a14 14 0 017.81 26.89l-17.35 5a205.89 205.89 0 014.7 38.28l18.27.33a16 16 0 0115.71 16.28 11.69 11.69 0 01-.08 1.19 208 208 0 00153.39-151.03A14 14 0 01444 295.67z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M301.49 56.2A14 14 0 01287.5 70h-.25l-16.81-.3c.05 1.31.1 2.62.17 3.93a178.83 178.83 0 003.44 26.31l16.29-4.74a14 14 0 017.81 26.8l-16.27 4.73a178.06 178.06 0 0013.33 27.69l13.84-9.78a14 14 0 1116.16 22.87l-13.86 9.79q5.25 6.33 11.12 12.19c3.9 3.91 8 7.6 12.2 11.1l9.78-13.84A14 14 0 11367.32 203l-9.76 13.8a178.83 178.83 0 0027.68 13.33l4.76-16.28a14 14 0 0126.89 7.81l-4.73 16.26a177.72 177.72 0 0030.95 3.65l-.16-9a14 14 0 0113.75-14.24h.25a14.67 14.67 0 012.59.25 208 208 0 00-158-163.51c-.06.4-.04.76-.05 1.13zm-93.05 401.35a16 16 0 0116.28-15.71l16.76.29a178.49 178.49 0 00-3.62-29.95l-16.26 4.72a14 14 0 11-7.81-26.9l16.21-4.7a177.92 177.92 0 00-13.33-27.68l-13.8 9.76a14 14 0 11-16.16-22.87l13.84-9.78c-3.5-4.22-7.19-8.3-11.1-12.2s-8-7.62-12.19-11.12l-9.79 13.86a14 14 0 11-22.87-16.16l9.78-13.84a177.16 177.16 0 00-27.69-13.33L122 298.21a14 14 0 11-26.9-7.81l4.73-16.29a177.32 177.32 0 00-26.31-3.44c-.89-.05-1.79-.08-2.68-.12l.16 10.59a16 16 0 01-15.71 16.28H55a16 16 0 01-3.94-.51 208 208 0 00157.65 163.87 15.72 15.72 0 01-.27-3.23z\"}}]})(props);\n};\nexport function IoBasketOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M68.4 192A20.38 20.38 0 0048 212.2a17.87 17.87 0 00.8 5.5L100.5 400a40.46 40.46 0 0039.1 29.5h232.8a40.88 40.88 0 0039.3-29.5l51.7-182.3.6-5.5a20.38 20.38 0 00-20.4-20.2H68.4zm193.32 160.07A42.07 42.07 0 11304 310a42.27 42.27 0 01-42.28 42.07z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 192l96-128 96 128\"}}]})(props);\n};\nexport function IoBasketSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339.2 217.6L256 106.67 172.8 217.6l-25.6-19.2 96-128a16 16 0 0125.6 0l96 128z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M441.59 192H70.41a12 12 0 00-11.68 14.77L112.59 434h286.82l53.86-227.23A12 12 0 00441.59 192zM256 351.66A37.71 37.71 0 11293.89 314 37.88 37.88 0 01256 351.66z\"}}]})(props);\n};\nexport function IoBasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.11 192H360L268.8 70.4a16 16 0 00-25.6 0L152 192H87.89a32.57 32.57 0 00-32.62 32.44 30.3 30.3 0 001.31 9l46.27 163.14a50.72 50.72 0 0048.84 36.91h208.62a51.21 51.21 0 0049-36.86l46.33-163.36a15.62 15.62 0 00.46-2.36l.53-4.93a13.3 13.3 0 00.09-1.55A32.57 32.57 0 00424.11 192zM256 106.67L320 192H192zm0 245a37.7 37.7 0 1137.88-37.7A37.87 37.87 0 01256 351.63z\"}}]})(props);\n};\nexport function IoBasketballOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"192\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432.94 255.05a192 192 0 01-176.31-180.7M255 433.61A192 192 0 0074.29 256.69m45.95-136.45l271.52 271.52m-271.52 0l271.52-271.52\"}}]})(props);\n};\nexport function IoBasketballSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 233.37l34.45-34.45a207.08 207.08 0 01-50.12-135.25c0-5 .19-10.05.54-15A207.09 207.09 0 00120.67 98zm57.14-57.14L391.33 98A207.07 207.07 0 00273 48.8c-.41 4.9-.64 9.86-.64 14.87a175.25 175.25 0 0040.78 112.56zm22.63 22.63a175.25 175.25 0 00112.56 40.81c5 0 10-.23 14.87-.64A207.07 207.07 0 00414 120.67zM176.23 313.14a175.23 175.23 0 00-112.56-40.81q-7.52 0-14.87.64A207.07 207.07 0 0098 391.33zM256 278.63l-34.45 34.45a207.08 207.08 0 0150.12 135.25c0 5-.19 10.05-.54 15A207.06 207.06 0 00391.33 414zm192.33-6.96a207.08 207.08 0 01-135.25-50.12L278.63 256 414 391.33a207.09 207.09 0 0049.39-120.2c-5.01.35-10.02.54-15.06.54zM233.37 256L98 120.67a207.06 207.06 0 00-49.39 120.2c5-.35 10-.54 15-.54a207.08 207.08 0 01135.25 50.12zm-112.7 158A207.07 207.07 0 00239 463.2q.63-7.35.64-14.87a175.23 175.23 0 00-40.81-112.56z\"}}]})(props);\n};\nexport function IoBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 233.37l34.45-34.45a207.08 207.08 0 01-50.12-135.25c0-5 .19-10.05.54-15A207.09 207.09 0 00120.67 98zm57.14-57.14L391.33 98A207.07 207.07 0 00273 48.8c-.41 4.9-.64 9.86-.64 14.87a175.25 175.25 0 0040.78 112.56zm22.63 22.63a175.25 175.25 0 00112.56 40.81c5 0 10-.23 14.87-.64A207.07 207.07 0 00414 120.67zM176.23 313.14a175.23 175.23 0 00-112.56-40.81q-7.52 0-14.87.64A207.07 207.07 0 0098 391.33zM256 278.63l-34.45 34.45a207.08 207.08 0 0150.12 135.25c0 5-.19 10.05-.54 15A207.06 207.06 0 00391.33 414zm192.33-6.96a207.08 207.08 0 01-135.25-50.12L278.63 256 414 391.33a207.09 207.09 0 0049.39-120.2c-5.01.35-10.02.54-15.06.54zM233.37 256L98 120.67a207.06 207.06 0 00-49.39 120.2c5-.35 10-.54 15-.54a207.08 207.08 0 01135.25 50.12zm-112.7 158A207.07 207.07 0 00239 463.2q.63-7.35.64-14.87a175.23 175.23 0 00-40.81-112.56z\"}}]})(props);\n};\nexport function IoBatteryChargingOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 322.3V189.7A29.74 29.74 0 0177.7 160h137.44l24.4-32H77.7A61.77 61.77 0 0016 189.7v132.6A61.77 61.77 0 0077.7 384h96.85a22.57 22.57 0 01.26-7.32l.15-.75.21-.73 6.5-23.2H77.7A29.74 29.74 0 0148 322.3zM386.3 128h-98.64a22.69 22.69 0 01-.27 7.2l-.15.74-.21.73-6.54 23.33H386.3a29.74 29.74 0 0129.7 29.7v132.6a29.74 29.74 0 01-29.7 29.7H247l-24.42 32H386.3a61.77 61.77 0 0061.7-61.7V189.7a61.77 61.77 0 00-61.7-61.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M162.65 294.16a24.37 24.37 0 01-21.56-13 25 25 0 011.42-25.83l.31-.46.33-.44L197.62 183H89.69a20 20 0 00-20 20v106a20 20 0 0020 20h98.42l9.78-34.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M276.07 280.89l27.07-35.49a5.2 5.2 0 00.77-1.91 5 5 0 00.08-.66 5 5 0 00-.08-1.29 5.11 5.11 0 00-.68-1.75 4.76 4.76 0 00-.78-.95 3.48 3.48 0 00-.48-.38 4 4 0 00-1.11-.55 4.28 4.28 0 00-1.31-.2h-61.62l12.12-43.21 3.23-11.5 6.21-22.16.51-1.84 7.79-27.76a3.51 3.51 0 00.05-.55v-.16c0-.05 0-.26-.05-.38s0-.09 0-.14a2.2 2.2 0 00-.17-.45 3.77 3.77 0 00-.26-.39l-.09-.1a2.73 2.73 0 00-.25-.23l-.1-.08a3.14 3.14 0 00-.39-.24 2 2 0 00-.41-.14h-.59a2.3 2.3 0 00-.45 0 1.9 1.9 0 00-.42.15l-.13.07-.3.21-.11.1a2.4 2.4 0 00-.36.41l-18 23.63-13.14 17.22-9.85 12.83-63.71 83.55a5.72 5.72 0 00-.44.8 4.78 4.78 0 00-.35 1.09 4.7 4.7 0 00-.08 1.29 4.86 4.86 0 002 3.71 4.74 4.74 0 00.54.31 4.31 4.31 0 001.89.43h61.62L194.42 380.6a3.64 3.64 0 000 .56v.15a2.32 2.32 0 00.06.38.58.58 0 000 .14 2.2 2.2 0 00.17.45 3.62 3.62 0 00.26.38l.09.1.25.24a.39.39 0 01.1.08 2.22 2.22 0 00.39.23 2.83 2.83 0 00.41.14h.13a1.86 1.86 0 00.33 0h.13a2.32 2.32 0 00.45-.06 2.05 2.05 0 00.41-.16l.13-.07.3-.21.11-.09a2.4 2.4 0 00.36-.41L221.82 352l17.53-23z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M319.5 256.93l-.46.6L264.51 329h109.8a20 20 0 0020-20V203a20 20 0 00-20-20H274.05l-9.74 34.73h35.24A24.35 24.35 0 01321 230.5a25.21 25.21 0 01-1 25.79zM480 202.67a16 16 0 00-16 16v74.66a16 16 0 0032 0v-74.66a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoBatteryChargingSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M306.68 237.62h-66.5l15.33-54.7 6.43-22.92 3.94-14 4.29-15.33a3.56 3.56 0 00.06-.44v-.19a1.85 1.85 0 000-.23 2 2 0 000-.24v-.14c0-.1-.07-.19-.11-.29v-.05a2.33 2.33 0 00-2-1.35h-.1a2.25 2.25 0 00-1.8 1l-12.5 17.15-18.82 25.55-8.36 11.48-35.41 48.6L160 274.26h66.44l-30 107a3.93 3.93 0 00-.06.48v.1a1.94 1.94 0 000 .34.29.29 0 000 .09 3 3 0 00.07.32v.06a1.83 1.83 0 00.14.32 2.38 2.38 0 001.52 1.16h.57a2.1 2.1 0 001.31-.5l.06-.05a2.6 2.6 0 00.42-.45L223.3 352l13-17.82z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M289.78 134.55l-.14.74-.21.73-6.72 24H417V352H248.05l-23.33 32H449V128H290.13a22.62 22.62 0 01-.35 6.55zM49 160h169.49l23.31-32H17v256h159.49a22.73 22.73 0 01.34-6.67l.15-.75.2-.73 6.69-23.85H49z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M264.76 329.08h130.55V182.92H276.28l-9.73 34.7H346l-23.16 31.78-58.08 79.68zM160 294.26h-39.31l23.15-31.78 57.95-79.56H70.69v146.16h119.6l9.77-34.82H160zm305-91.59h32v106.67h-32z\"}}]})(props);\n};\nexport function IoBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 322.3V189.7A29.74 29.74 0 0177.7 160h137.44l24.4-32H77.7A61.77 61.77 0 0016 189.7v132.6A61.77 61.77 0 0077.7 384h96.85a22.57 22.57 0 01.26-7.32l.15-.75.21-.73 6.5-23.2H77.7A29.74 29.74 0 0148 322.3zM386.3 128h-98.64a22.69 22.69 0 01-.27 7.2l-.15.74-.21.73-6.54 23.33H386.3a29.74 29.74 0 0129.7 29.7v132.6a29.74 29.74 0 01-29.7 29.7H247l-24.42 32H386.3a61.77 61.77 0 0061.7-61.7V189.7a61.77 61.77 0 00-61.7-61.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M162.65 294.16a24.37 24.37 0 01-21.56-13 25 25 0 011.42-25.83l.31-.46.33-.44L197.62 183H89.69a20 20 0 00-20 20v106a20 20 0 0020 20h98.42l9.78-34.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M276.07 280.89l27.07-35.49a5.2 5.2 0 00.77-1.91 5 5 0 00.08-.66 5 5 0 00-.08-1.29 5.11 5.11 0 00-.68-1.75 4.76 4.76 0 00-.78-.95 3.48 3.48 0 00-.48-.38 4 4 0 00-1.11-.55 4.28 4.28 0 00-1.31-.2h-61.62l12.12-43.21 3.23-11.5 6.21-22.16.51-1.84 7.79-27.76a3.51 3.51 0 00.05-.55v-.16c0-.05 0-.26-.05-.38s0-.09 0-.14a2.2 2.2 0 00-.17-.45 3.77 3.77 0 00-.26-.39l-.09-.1a2.73 2.73 0 00-.25-.23l-.1-.08a3.14 3.14 0 00-.39-.24 2 2 0 00-.41-.14h-.59a2.3 2.3 0 00-.45 0 1.9 1.9 0 00-.42.15l-.13.07-.3.21-.11.1a2.4 2.4 0 00-.36.41l-18 23.63-13.14 17.22-9.85 12.83-63.71 83.55a5.72 5.72 0 00-.44.8 4.78 4.78 0 00-.35 1.09 4.7 4.7 0 00-.08 1.29 4.86 4.86 0 002 3.71 4.74 4.74 0 00.54.31 4.31 4.31 0 001.89.43h61.62L194.42 380.6a3.64 3.64 0 000 .56v.15a2.32 2.32 0 00.06.38.58.58 0 000 .14 2.2 2.2 0 00.17.45 3.62 3.62 0 00.26.38l.09.1.25.24a.39.39 0 01.1.08 2.22 2.22 0 00.39.23 2.83 2.83 0 00.41.14h.13a1.86 1.86 0 00.33 0h.13a2.32 2.32 0 00.45-.06 2.05 2.05 0 00.41-.16l.13-.07.3-.21.11-.09a2.4 2.4 0 00.36-.41L221.82 352l17.53-23z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M319.5 256.93l-.46.6L264.51 329h109.8a20 20 0 0020-20V203a20 20 0 00-20-20H274.05l-9.74 34.73h35.24A24.35 24.35 0 01321 230.5a25.21 25.21 0 01-1 25.79zM480 202.67a16 16 0 00-16 16v74.66a16 16 0 0032 0v-74.66a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoBatteryDeadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"400\",\"height\":\"224\",\"x\":\"31\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"45.7\",\"ry\":\"45.7\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M479 218.67v74.66\"}}]})(props);\n};\nexport function IoBatteryDeadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M32 144h400v224H32zm448 74.67v74.66\"}}]})(props);\n};\nexport function IoBatteryDead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"400\",\"height\":\"224\",\"x\":\"31\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"45.7\",\"ry\":\"45.7\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M479 218.67v74.66\"}}]})(props);\n};\nexport function IoBatteryFullOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"400\",\"height\":\"224\",\"x\":\"32\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"45.7\",\"ry\":\"45.7\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"292.63\",\"height\":\"114.14\",\"x\":\"85.69\",\"y\":\"198.93\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"4\",\"ry\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M480 218.67v74.66\"}}]})(props);\n};\nexport function IoBatteryFullSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 384h432V128H17zm32-224h368v192H49z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M70.69 182.94h324.63v146.13H70.69zM465 202.67h32v106.67h-32z\"}}]})(props);\n};\nexport function IoBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"400\",\"height\":\"224\",\"x\":\"32\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"45.7\",\"ry\":\"45.7\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"292.63\",\"height\":\"114.14\",\"x\":\"85.69\",\"y\":\"198.93\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"4\",\"ry\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M480 218.67v74.66\"}}]})(props);\n};\nexport function IoBatteryHalfOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"400\",\"height\":\"224\",\"x\":\"32\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"45.7\",\"ry\":\"45.7\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"154.31\",\"height\":\"114.13\",\"x\":\"85.69\",\"y\":\"198.93\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"4\",\"ry\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M480 218.67v74.66\"}}]})(props);\n};\nexport function IoBatteryHalfSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 384h432V128H17zm32-224h368v192H49z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M70.69 182.92H256v146.16H70.69zM465 202.67h32v106.67h-32z\"}}]})(props);\n};\nexport function IoBatteryHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"400\",\"height\":\"224\",\"x\":\"32\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"45.7\",\"ry\":\"45.7\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"154.31\",\"height\":\"114.13\",\"x\":\"85.69\",\"y\":\"198.93\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"4\",\"ry\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M480 218.67v74.66\"}}]})(props);\n};\nexport function IoBeakerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M445.2 48.05L398 48H128c-54.3 0-64 35.7-64 48 30.3 4.2 48 8 48 40v264a64 64 0 0064 64h192a64 64 0 0064-64V96c0-19 11.5-38.35 12.6-40 1.2-1.9 3.4-4.4 3.4-5.5s-.3-2.45-2.8-2.45zM112 176h320\"}}]})(props);\n};\nexport function IoBeakerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.55 54.7L464 32H128.4c-27.74 0-49 6.57-63.31 19.51C54.39 61.27 48 74.89 48 88v24h16c31 0 32 16.79 32 35v313a20 20 0 0020 20h312a20 20 0 0020-20V96c0-17.16 2.28-34.14 5.55-41.3zM416 96v64H128v-22c0-36.15-21-51-41.77-53.46C89 70 105.7 64.05 128.4 64.05h289.92A221.83 221.83 0 00416 96z\"}}]})(props);\n};\nexport function IoBeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444 32H128c-19.38 0-45.9 4.34-64.11 24.77C52.17 69.92 48 85.66 48 96a16 16 0 0013.8 15.85C91.7 116 96 117.79 96 136v264a80.07 80.07 0 0080 80h192a80.11 80.11 0 0080-80V96c0-12.55 7.46-27.25 10-31.36l.1-.14c.22-.35.5-.72.78-1.1 2-2.79 5.09-7 5.09-12.95C464 39.79 454.89 32 444 32zM84.11 83.08c5.24-8.87 17.17-19 44.29-19h294.43C419.3 72.87 416 84.27 416 96v64H128v-24c0-37.32-21.35-48.14-43.89-52.92z\"}}]})(props);\n};\nexport function IoBedOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 240H96V136a40.12 40.12 0 0140-40h240a40.12 40.12 0 0140 40v104zM48 416V304a64.19 64.19 0 0164-64h288a64.19 64.19 0 0164 64v112\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 416v-8a24.07 24.07 0 0124-24h368a24.07 24.07 0 0124 24v8M112 240v-16a32.09 32.09 0 0132-32h80a32.09 32.09 0 0132 32v16m0 0v-16a32.09 32.09 0 0132-32h80a32.09 32.09 0 0132 32v16\"}}]})(props);\n};\nexport function IoBedSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 224V96a16 16 0 00-16-16H96a16 16 0 00-16 16v128a48 48 0 00-48 48v160h36v-32h376v32h36V272a48 48 0 00-48-48zm-192 0H120v-32a16 16 0 0116-16h88a16 16 0 0116 16zm32-32a16 16 0 0116-16h88a16 16 0 0116 16v32H272z\"}}]})(props);\n};\nexport function IoBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 230.7a79.44 79.44 0 00-32-6.7H112a79.51 79.51 0 00-32 6.69A80.09 80.09 0 0032 304v112a16 16 0 0032 0v-8a8.1 8.1 0 018-8h368a8.1 8.1 0 018 8v8a16 16 0 0032 0V304a80.09 80.09 0 00-48-73.3zM376 80H136a56 56 0 00-56 56v72a4 4 0 005.11 3.84A95.5 95.5 0 01112 208h4.23a4 4 0 004-3.55A32 32 0 01152 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h24.46a4 4 0 004-3.55A32 32 0 01304 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h4.2a95.51 95.51 0 0126.89 3.85A4 4 0 00432 208v-72a56 56 0 00-56-56z\"}}]})(props);\n};\nexport function IoBeerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 200v240a40.12 40.12 0 01-40 40H136a40.12 40.12 0 01-40-40V224\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M352 224h40a56.16 56.16 0 0156 56v80a56.16 56.16 0 01-56 56h-40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M224 256v160m64-160v160M160 256v160m160-304a48 48 0 010 96c-13.25 0-29.31-7.31-38-16H160c-8 22-27 32-48 32a48 48 0 010-96 47.91 47.91 0 0126 9\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M91.86 132.43a40 40 0 1160.46-52S160 91 160 96m-14.17-31.29C163.22 44.89 187.57 32 216 32c52.38 0 94 42.84 94 95.21a95 95 0 01-1.67 17.79\"}}]})(props);\n};\nexport function IoBeerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 208h-80v-5.74A63.93 63.93 0 00321.65 96a111 111 0 00-27.59-47.29A108.62 108.62 0 00216 16c-29.91 0-57.78 12.28-79 34.67a56 56 0 00-67.51 77.51c-1 .86-1.91 1.74-2.83 2.66A63.56 63.56 0 0048 176.26a62.65 62.65 0 0020.77 46.54A65 65 0 0080 231v249a16 16 0 0016 16h256a16 16 0 0016-16v-48h80a16 16 0 0016-16V224a16 16 0 00-16-16zM176 432h-32V240h32zm64 0h-32V240h32zm64 0h-32V240h32zm16-240c-8.33 0-20.55-5.18-26.69-11.31l-4.68-4.69H148.79L145 186.53c-5.81 16-18.83 20.41-28.73 21.29a34.08 34.08 0 01-25.91-8.67 31 31 0 01-10.32-23 31.8 31.8 0 019.33-22.71c.16-.17.33-.32.5-.49A31.78 31.78 0 01112 144c.09 0 9.12.34 16.4 5.8l12.8 9.6 19.2-25.6-12.8-9.6A63.69 63.69 0 00112 112a64.79 64.79 0 00-14 1.55 24 24 0 0141.4-23.68l.23.35.4.46a35.78 35.78 0 015 8.94l5.62 15 30-11.24-5.62-15a68.2 68.2 0 00-10-17.74c-.38-.52-.79-1-1.19-1.51C178.38 55.45 196.64 48 216 48a76.86 76.86 0 0155.23 23.18A80.2 80.2 0 01292.61 142l-3 15.72 31.43 6 3-15.72a111.78 111.78 0 001.96-19.43 32 32 0 01-6 63.43zm112 208h-64V240h64z\"}}]})(props);\n};\nexport function IoBeer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 208h-24v-5.74A63.93 63.93 0 00321.65 96a111 111 0 00-27.59-47.29A108.62 108.62 0 00216 16c-29.91 0-57.78 12.28-79 34.68a56 56 0 00-67.51 77.54A63.91 63.91 0 0080 231.39V440a56.06 56.06 0 0056 56h176a56.06 56.06 0 0056-56v-8h24a72.08 72.08 0 0072-72v-80a72.08 72.08 0 00-72-72zM176 416a16 16 0 01-32 0V256a16 16 0 0132 0zm64 0a16 16 0 01-32 0V256a16 16 0 0132 0zm64 0a16 16 0 01-32 0V256a16 16 0 0132 0zm16-224c-8.33 0-20.55-5.18-26.69-11.31A16 16 0 00282 176H160a16 16 0 00-15 10.53c-6.83 18.68-23.6 21.47-33 21.47a32 32 0 010-64c.09 0 9.12.34 16.4 5.8a16 16 0 1019.2-25.6A63.69 63.69 0 00112 112a63.55 63.55 0 00-14 1.57A24 24 0 01120 80a23.78 23.78 0 0119.38 9.84 51.35 51.35 0 014.71 7.9A16 16 0 00176 96c0-6.77-3.61-15.17-10.76-25-.46-.63-1-1.25-1.45-1.86C178.39 55.44 196.64 48 216 48a76.86 76.86 0 0155.23 23.18A80.2 80.2 0 01292.61 142a16 16 0 0012.73 18.71 16.29 16.29 0 003 .28 16 16 0 0015.7-13 111.78 111.78 0 001.96-19.42 32 32 0 01-6 63.43zm112 168a40 40 0 01-40 40h-24V240h24a40 40 0 0140 40z\"}}]})(props);\n};\nexport function IoBicycleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M388 288a76 76 0 1076 76 76.24 76.24 0 00-76-76zm-264 0a76 76 0 1076 76 76.24 76.24 0 00-76-76z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 360v-86l-64-42 80-88 40 72h56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 136a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 72a32 32 0 10-.2 64z\"}}]})(props);\n};\nexport function IoBicycleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 192l-29.5-60.1C284.32 118 284.32 118 264 118c-13.26 0-14.76 0-23 7.3l-71.7 69.1c-8.3 8.45-9.3 9.45-9.3 26.6 0 12.67 3.78 14.61 18.51 22.9L240 278v90h32V254s-29-17-48.3-30l48.9-51.5c18.7 28.5 27.3 51.5 38 51.5H384v-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M388 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM124 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zm196-168a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 64a32 32 0 10-.2 64z\"}}]})(props);\n};\nexport function IoBicycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM124 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zm196-168a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 64a32 32 0 10-.2 64z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M367.55 192h-43.76a4 4 0 01-3.51-2.08l-31.74-58.17a31 31 0 00-49.38-7.75l-69.86 70.4a32.56 32.56 0 00-9.3 22.4c0 17.4 12.6 23.6 18.5 27.1 28.5 16.42 48.57 28.43 59.58 35.1a4 4 0 011.92 3.41v69.12c0 8.61 6.62 16 15.23 16.43A16 16 0 00272 352v-86a16 16 0 00-6.66-13l-37-26.61a4 4 0 01-.58-6l42-44.79a4 4 0 016.42.79L298 215.77a16 16 0 0014 8.23h56a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z\"}}]})(props);\n};\nexport function IoBluetoothOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 352l224-192L256 48v416l112-112-224-192\"}}]})(props);\n};\nexport function IoBluetoothSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M397.41 161.13L236-.28v212.8l-94.17-80.72-26 30.37L225.27 256 115.8 349.83l26 30.37 94.2-80.72v212.8l161.41-161.41L286.73 256zM276 96.28l62.59 62.59L276 212.52zm62.58 256.85L276 415.72V299.48z\"}}]})(props);\n};\nexport function IoBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388 160.77a20 20 0 00-5.85-14.91l-112-112A20 20 0 00236 48v164.52l-79-67.71a20 20 0 00-26 30.38L225.27 256 131 336.81a20 20 0 1026 30.38l79-67.71V464a20 20 0 0034.14 14.14l112-112a20 20 0 00-1.14-29.33L286.73 256 381 175.19a20 20 0 007-14.42zm-49.42 192.36L276 415.72V299.49zM276 212.52V96.28l62.59 62.59z\"}}]})(props);\n};\nexport function IoBoatOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M461.93 261.05c-2-4.76-6.71-7.83-11.67-9.49l-187.18-74.48a23.78 23.78 0 00-14.17 0l-187 74.52c-5 1.56-9.83 4.77-11.81 9.53s-2.94 9.37-1 15.08l46.53 119.15a7.46 7.46 0 007.47 4.64c26.69-1.68 50.31-15.23 68.38-32.5a7.66 7.66 0 0110.49 0C201.29 386 227 400 256 400s54.56-14 73.88-32.54a7.67 7.67 0 0110.5 0c18.07 17.28 41.69 30.86 68.38 32.54a7.45 7.45 0 007.46-4.61l46.7-119.16c1.98-4.78.99-10.41-.99-15.18z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M416 473.14a6.84 6.84 0 00-3.56-6c-27.08-14.55-51.77-36.82-62.63-48a10.05 10.05 0 00-12.72-1.51c-50.33 32.42-111.61 32.44-161.95.05a10.09 10.09 0 00-12.82 1.56c-10.77 11.28-35.19 33.3-62.43 47.75a7.15 7.15 0 00-3.89 5.73 6.73 6.73 0 007.92 7.15c20.85-4.18 41-13.68 60.2-23.83a8.71 8.71 0 018-.06A185.14 185.14 0 00340 456a8.82 8.82 0 018.09.06c19.1 10 39.22 19.59 60 23.8a6.72 6.72 0 007.95-6.71z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 96V72a24.07 24.07 0 00-24-24h-80a24.07 24.07 0 00-24 24v24m224 137v-89a48.14 48.14 0 00-48-48H144a48.14 48.14 0 00-48 48v92m160-52.4v212.85\"}}]})(props);\n};\nexport function IoBoatSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.77 246.42c-2.13-6-7.23-9.55-12.56-11.95L432 221.38V92a20 20 0 00-20-20h-76V40a16 16 0 00-16-16H192a16 16 0 00-16 16v32h-76a20 20 0 00-20 20v129.46l-33.08 13.06c-5.33 2.4-10.58 6-12.72 12s-3.16 11.81-1 19L84.25 415.7h1.06c34.12 0 64-17.41 85.31-43.82 21.32 26.41 51.18 42.12 85.3 42.12s64-15.76 85.31-42.17c21.32 26.41 51.18 43.87 85.3 43.87h1.06l51.25-150.17c2.16-6 1.07-13.1-1.07-19.11zM256 152l-144 56.83V108a4 4 0 014-4h280a4 4 0 014 4v100.76z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M345.22 407c-52.25 36.26-126.35 36.25-178.6 0 0 0-45.64 63-94.64 63l13.33 1c29.86 0 58.65-11.73 85.31-25.59a185.33 185.33 0 00170.6 0c26.66 13.87 55.45 25.6 85.31 25.6l13.33-1C392.21 470 345.22 407 345.22 407z\"}}]})(props);\n};\nexport function IoBoat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 473.14a6.83 6.83 0 00-3.57-6c-27.07-14.55-51.76-36.82-62.62-48a10.05 10.05 0 00-12.72-1.51c-50.33 32.42-111.61 32.44-161.95.05a10.09 10.09 0 00-12.82 1.56c-10.77 11.28-35.19 33.3-62.43 47.75a7.11 7.11 0 00-3.89 5.73 6.73 6.73 0 007.92 7.15c20.85-4.18 41-13.68 60.2-23.83a8.71 8.71 0 018-.06 185.14 185.14 0 00167.81 0 8.82 8.82 0 018.09.06c19.1 10 39.22 19.59 60 23.8a6.73 6.73 0 008-6.71zm60.71-226.23c-3.49-8.39-10.9-14.89-20.9-18.35L432 219.08V136a64 64 0 00-64-64h-32v-8a40 40 0 00-40-40h-80a40 40 0 00-40 40v8h-32a64 64 0 00-64 64v83.15l-23.58 9.39c-9.94 3.3-17.63 10-21.15 18.44-2.45 5.89-5.25 15-1.3 26.46l.1.3 46.66 119.44A23.33 23.33 0 00102.58 408c.5 0 1 0 1.53-.05 31.32-2 56-17.27 72.6-31.61C200.42 396.81 228.31 408 256 408s55.43-11.2 79.14-31.7c16.59 14.36 41.3 29.67 72.61 31.65a23.36 23.36 0 0023.37-14.74l46.65-119c3.28-8.09 2.9-17.76-1.06-27.3zM269 154.21l-1.14-.4a39.53 39.53 0 00-23.73 0l-.58.18-126.07 50.23a4 4 0 01-5.48-3.72V136a32 32 0 0132-32h224a32 32 0 0132 32v64.44a4 4 0 01-5.48 3.72z\"}}]})(props);\n};\nexport function IoBodyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"40\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M199.3 295.62h0l-30.4 172.2a24 24 0 0019.5 27.8 23.76 23.76 0 0027.6-19.5l21-119.9v.2s5.2-32.5 17.5-32.5h3.1c12.5 0 17.5 32.5 17.5 32.5v-.1l21 119.9a23.92 23.92 0 1047.1-8.4l-30.4-172.2-4.9-29.7c-2.9-18.1-4.2-47.6.5-59.7 4-10.4 14.13-14.2 23.2-14.2H424a24 24 0 000-48H88a24 24 0 000 48h92.5c9.23 0 19.2 3.8 23.2 14.2 4.7 12.1 3.4 41.6.5 59.7z\"}}]})(props);\n};\nexport function IoBodySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128H48v52h144l-32 325.13 51 6.87 21.65-192h47.02L301 512l51-6.98L320 180h144v-52z\"}}]})(props);\n};\nexport function IoBody (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M437 128H75a27 27 0 000 54h101.88c6.91 0 15 3.09 19.58 15 5.35 13.83 2.73 40.54-.57 61.23l-4.32 24.45a.42.42 0 01-.12.35l-34.6 196.81A27.43 27.43 0 00179 511.58a27.06 27.06 0 0031.42-22.29l23.91-136.8S242 320 256 320c14.23 0 21.74 32.49 21.74 32.49l23.91 136.92a27.24 27.24 0 1053.62-9.6L320.66 283a.45.45 0 00-.11-.35l-4.33-24.45c-3.3-20.69-5.92-47.4-.57-61.23 4.56-11.88 12.91-15 19.28-15H437a27 27 0 000-54z\"}}]})(props);\n};\nexport function IoBonfireOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M273.38 368.33c-.81-9.23-8.86-16.44-18.55-16.44a18.63 18.63 0 00-18.2 14.11l-18.2 88.38a35.75 35.75 0 00-.93 7.88c0 19.93 16.68 33.78 37.33 33.78s37.34-13.85 37.34-33.78a36.16 36.16 0 00-1.29-9.45zm137.67 39.53a41.78 41.78 0 00-5.95-4.35l-69.53-48.59c-6.77-4.25-14-4.13-19.25 1a13.53 13.53 0 00-2 17.2l52.5 69a36.57 36.57 0 004 4.69c9.1 10.17 29.28 10.73 40.37 0 10.94-10.91 10.81-30.35-.14-38.95zm52.25-71.98h-70.42c-4.55 0-8.88 3.35-8.88 8.16s2.95 7.85 6.92 9.16l66.43 20.55C467 376 480 367.4 480 356.66c0-13.66-7.6-20.78-16.7-20.78zM128.22 344c0-5-4.55-8.16-9.45-8.16H48.35c-8.87 0-16.35 9.58-16.35 20.32S44.62 376 54.3 373.75l67.43-20.55c4.39-1.31 6.49-4.2 6.49-9.2zm48.33 11L107 403.38a32.34 32.34 0 00-6 4.35 26.33 26.33 0 000 38.56 29.39 29.39 0 0040.36 0 30.75 30.75 0 004-4.68L197.9 373c3.5-5.58 2.92-12.49-2-17.06a15 15 0 00-19.35-.94z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M368 125.09c0-55.7-49.22-89.16-94.2-93.06a8 8 0 00-8.69 7.71c-3.12 76-109.38 110.69-119.87 178.68-7 45.4 16.65 72.37 34.31 85.78a15.94 15.94 0 0023.93-5.62c22.5-45.86 74.33-63.49 109.72-85.94 42.88-27.2 54.8-56.44 54.8-87.55z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M240 95.7c-12.82-23-30.51-31-59.16-31.63a3.86 3.86 0 00-4.06 3.51c-.95 34.22-32.78 44.85-32.78 73.15 0 19.37 5.39 29 17.16 39.28m191.29-1.25c8.6 14.31 15.55 30.08 15.55 48 0 52.52-42.47 93.1-94.86 93.1a94.42 94.42 0 01-65.14-26\"}}]})(props);\n};\nexport function IoBonfireSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M199.89 336l-15.25-5.62a100.35 100.35 0 01-32-23.08c-13.93-14.9-29.29-40.71-23.38-79.11 5.2-33.73 44.2-74.21 69.34-97.87 27.24-25.62 66-65.85 64.15-99.15L262 16h15.18C328.53 16 384 53.62 384 114.41c0 45.57-22 77.61-68.91 106.9-8 5-16.44 9.66-25.42 14.53-30.63 16.62-75.29 49.83-85.73 85.32zm-18.7-222.41C201 95 218.91 78.15 227.62 59.79q-2.76-1.68-5.7-3.09c-11.87-5.69-26.1-8.34-44.76-8.34h-16.94l.56 16.49c.47 14.06-6.06 22.51-14.33 33.21C137.8 109.26 128 121.94 128 141c0 10.23 1.29 18.76 4.2 26.36q3.5-5.31 7.61-10.63c12.19-15.73 27.05-29.68 41.38-43.14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M330.34 239.85c-9.31 5.9-19 11.14-29.25 16.71-32.65 17.69-63.48 34.44-73.23 67.44l-.6 2a110.5 110.5 0 0045.87 10c29.66 0 57.45-11.13 78.24-31.36A107.38 107.38 0 00384 227a92.39 92.39 0 00-5.59-31c-11.35 16.18-27.14 30.58-48.07 43.85zM268.72 360h-25.44a4 4 0 00-3.92 3.22l-25.36 128a4 4 0 003.92 4.78h76.26a4 4 0 003.92-4.78l-25.41-128a4 4 0 00-3.97-3.22zm56.96-5.68l-11.36 11.36a4 4 0 00-.5 5.05l59.47 89.21a4 4 0 006.16.61l41.1-41.1a4 4 0 00-.61-6.16l-89.21-59.47a4 4 0 00-5.05.5zM388 336a4 4 0 00-4 4v8.61a4 4 0 003.34 3.95l88 14.66a4 4 0 004.66-3.94V340a4 4 0 00-4-4zm-201.68 18.32l11.36 11.36a4 4 0 01.5 5.05l-59.47 89.21a4 4 0 01-6.16.61l-41.1-41.1a4 4 0 01.61-6.16l89.21-59.47a4 4 0 015.05.5zM124 336H36a4 4 0 00-4 4v23.28a4 4 0 004.66 3.94l88-14.66a4 4 0 003.34-3.95V340a4 4 0 00-4-4z\"}}]})(props);\n};\nexport function IoBonfire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M273.38 368.37c-.81-9.23-8.86-16.44-18.55-16.44a18.63 18.63 0 00-18.2 14.07l-18.2 88.36a35.59 35.59 0 00-.93 7.87c0 19.93 16.68 33.77 37.33 33.77s37.34-13.84 37.34-33.77a36.16 36.16 0 00-1.29-9.45zm137.67 39.52a42.66 42.66 0 00-5.95-4.36L335.57 355c-6.77-4.24-14-4.13-19.25 1a13.52 13.52 0 00-2 17.19l52.5 69a38 38 0 004 4.69c9.1 10.16 29.28 10.72 40.37 0 10.94-10.96 10.81-30.39-.14-38.99zm52.25-71.96h-70.42c-4.55 0-8.88 3.35-8.88 8.15s2.95 7.85 6.92 9.16l66.43 20.55C467 376 480 367.44 480 356.71c0-13.63-7.6-20.78-16.7-20.78zm-335.08 8.15c0-4.95-4.55-8.15-9.45-8.15H48.35c-8.87 0-16.35 9.58-16.35 20.31S44.62 376 54.3 373.79l67.43-20.55c4.39-1.31 6.49-4.24 6.49-9.16zm48.33 10.97L107 403.41a32.29 32.29 0 00-6 4.34 26.33 26.33 0 000 38.56 29.41 29.41 0 0040.36 0 30.75 30.75 0 004-4.68L197.9 373c3.5-5.57 2.92-12.48-2-17a15 15 0 00-19.35-.95zm116.91-112.66c10-5.42 19.45-10.54 28.31-16.16 42.46-26.92 62.23-59 62.23-101 0-64.66-56.07-104.4-108.82-109-6.49-.57-15-.42-19.91 3.88s-5.88 12.56-6.15 19.1c-1.38 33.61-28.38 59-57 85.86-28 26.3-56.93 53.49-62.71 91-8.41 54.68 21.74 86.71 40.46 100.93a31.88 31.88 0 0019.3 6.51 32.32 32.32 0 007.41-.87 31.75 31.75 0 0021.27-16.95c14.91-30.39 45.77-47.12 75.61-63.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M139.82 156.57c12.22-15.76 27-29.68 41.37-43.15 19.92-18.72 37.81-35.58 46.5-53.86-12.24-7.37-27.36-11.36-46.51-11.36-17.79 0-20.39 5.18-20.39 19.06 0 12.56-6.53 20.54-14.34 30.65C137.8 109.1 128 121.77 128 140.84c0 10.23 1.29 18.77 4.2 26.37q3.5-5.32 7.62-10.64zm190.52 83.17c-9.33 5.92-19 11.16-29.25 16.71-28.91 15.68-56.21 30.48-68.88 56.28a62.6 62.6 0 01-1.88 3.61 8 8 0 003.89 11.3c12.31 5.1 25.13 8.27 38.91 8.27a111.42 111.42 0 0078.24-31.37A107.45 107.45 0 00384 226.85a86.56 86.56 0 00-1.33-15 8 8 0 00-13.8-4c-10.18 11.47-22.93 22-38.53 31.89z\"}}]})(props);\n};\nexport function IoBookOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 160c16-63.16 76.43-95.41 208-96a15.94 15.94 0 0116 16v288a16 16 0 01-16 16c-128 0-177.45 25.81-208 64-30.37-38-80-64-208-64-9.88 0-16-8.05-16-17.93V80a15.94 15.94 0 0116-16c131.57.59 192 32.84 208 96zm0 0v288\"}}]})(props);\n};\nexport function IoBookSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 48c-67.61.29-117.87 9.6-154.24 25.69-27.14 12-37.76 21.08-37.76 51.84V448c41.57-37.5 78.46-48 224-48V48zM48 48c67.61.29 117.87 9.6 154.24 25.69 27.14 12 37.76 21.08 37.76 51.84V448c-41.57-37.5-78.46-48-224-48V48z\"}}]})(props);\n};\nexport function IoBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.24 74C166.11 56.75 115.61 48.3 48 48a31.36 31.36 0 00-17.92 5.33A32 32 0 0016 79.9V366c0 19.34 13.76 33.93 32 33.93 71.07 0 142.36 6.64 185.06 47a4.11 4.11 0 006.94-3V106.82a15.89 15.89 0 00-5.46-12A143 143 0 00202.24 74zm279.68-20.7A31.33 31.33 0 00464 48c-67.61.3-118.11 8.71-154.24 26a143.31 143.31 0 00-32.31 20.78 15.93 15.93 0 00-5.45 12v337.13a3.93 3.93 0 006.68 2.81c25.67-25.5 70.72-46.82 185.36-46.81a32 32 0 0032-32v-288a32 32 0 00-14.12-26.61z\"}}]})(props);\n};\nexport function IoBookmarkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 48H160a48 48 0 00-48 48v368l144-128 144 128V96a48 48 0 00-48-48z\"}}]})(props);\n};\nexport function IoBookmarkSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 480L256 357.41 96 480V32h320z\"}}]})(props);\n};\nexport function IoBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480a16 16 0 01-10.63-4L256 357.41 122.63 476A16 16 0 0196 464V96a64.07 64.07 0 0164-64h192a64.07 64.07 0 0164 64v368a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoBookmarksOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 80V64a48.14 48.14 0 0148-48h224a48.14 48.14 0 0148 48v368l-80-64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 96H112a48.14 48.14 0 00-48 48v352l152-128 152 128V144a48.14 48.14 0 00-48-48z\"}}]})(props);\n};\nexport function IoBookmarksSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0v48h304v368l48 32V0H112z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M48 80v432l168-124 168 124V80H48z\"}}]})(props);\n};\nexport function IoBookmarks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0H176a64.11 64.11 0 00-62 48h228a74 74 0 0174 74v304.89l22 17.6a16 16 0 0019.34.5 16.41 16.41 0 006.66-13.42V64a64 64 0 00-64-64z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 80H112a64 64 0 00-64 64v351.62A16.36 16.36 0 0054.6 509a16 16 0 0019.71-.71L216 388.92l141.69 119.32a16 16 0 0019.6.79 16.4 16.4 0 006.71-13.44V144a64 64 0 00-64-64z\"}}]})(props);\n};\nexport function IoBowlingBallOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"288\",\"cy\":\"200\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"296\",\"cy\":\"128\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"360\",\"cy\":\"168\",\"r\":\"24\"}}]})(props);\n};\nexport function IoBowlingBallSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM286 230a28 28 0 1128-28 28 28 0 01-28 28zm8-76a28 28 0 1128-28 28 28 0 01-28 28zm68 44a28 28 0 1128-28 28 28 0 01-28 28z\"}}]})(props);\n};\nexport function IoBowlingBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM288 224a24 24 0 1124-24 24 24 0 01-24 24zm8-72a24 24 0 1124-24 24 24 0 01-24 24zm64 40a24 24 0 1124-24 24 24 0 01-24 24z\"}}]})(props);\n};\nexport function IoBriefcaseOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"320\",\"x\":\"32\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 128V96a32 32 0 0132-32h160a32 32 0 0132 32v32m112 112H32m288 0v24a8 8 0 01-8 8H200a8 8 0 01-8-8v-24\"}}]})(props);\n};\nexport function IoBriefcaseSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 288H176v-32H16v196a12 12 0 0012 12h456a12 12 0 0012-12V256H336zm160-164a12 12 0 00-12-12H384V56a8 8 0 00-8-8H136a8 8 0 00-8 8v56H28a12 12 0 00-12 12v100h480zm-152-12H168V88h176z\"}}]})(props);\n};\nexport function IoBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M336 80H176a16 16 0 00-16 16v16h192V96a16 16 0 00-16-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M496 176a64.07 64.07 0 00-64-64h-48V96a48.05 48.05 0 00-48-48H176a48.05 48.05 0 00-48 48v16H80a64.07 64.07 0 00-64 64v48h480zm-144-64H160V96a16 16 0 0116-16h160a16 16 0 0116 16zm-16 152a24 24 0 01-24 24H200a24 24 0 01-24-24v-4a4 4 0 00-4-4H16v144a64 64 0 0064 64h352a64 64 0 0064-64V256H340a4 4 0 00-4 4z\"}}]})(props);\n};\nexport function IoBrowsersOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"384\",\"x\":\"48\",\"y\":\"64\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M397.82 64H114.18C77.69 64 48 94.15 48 131.2V176h16c0-16 16-32 32-32h320c16 0 32 16 32 32h16v-44.8c0-37.05-29.69-67.2-66.18-67.2z\"}}]})(props);\n};\nexport function IoBrowsersSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64v384a16 16 0 0016 16h416a16 16 0 0016-16V64a16 16 0 00-16-16H48a16 16 0 00-16 16zm408 364H72a4 4 0 01-4-4V152a4 4 0 014-4h368a4 4 0 014 4v272a4 4 0 01-4 4z\"}}]})(props);\n};\nexport function IoBrowsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 48H96a64 64 0 00-64 64v288a64 64 0 0064 64h320a64 64 0 0064-64V112a64 64 0 00-64-64zm24 96H72a8 8 0 01-8-8v-24a32.09 32.09 0 0132-32h320a32.09 32.09 0 0132 32v24a8 8 0 01-8 8z\"}}]})(props);\n};\nexport function IoBrushOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M452.37 59.63h0a40.49 40.49 0 00-57.26 0L184 294.74c23.08 4.7 46.12 27.29 49.26 49.26l219.11-227.11a40.49 40.49 0 000-57.26zM138 336c-29.88 0-54 24.5-54 54.86 0 23.95-20.88 36.57-36 36.57C64.56 449.74 92.82 464 120 464c39.78 0 72-32.73 72-73.14 0-30.36-24.12-54.86-54-54.86z\"}}]})(props);\n};\nexport function IoBrushSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 96l-64-64-244 260 64 64zM142 320c-36.52 0-66 30.63-66 68.57 0 25.43-31 45.72-44 45.72C52.24 462.17 86.78 480 120 480c48.62 0 88-40.91 88-91.43 0-37.94-29.48-68.57-66-68.57z\"}}]})(props);\n};\nexport function IoBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.15 360.11a15.7 15.7 0 01-4.92-.77 16 16 0 01-10.92-13c-2.15-15-19.95-32.46-36.62-35.85a16 16 0 01-8.69-26.33l211.09-235.1c.19-.22.39-.43.59-.63a56.57 56.57 0 0179.89 0 56.51 56.51 0 01.11 79.78l-219 227a16 16 0 01-11.53 4.9zm-113.26 120c-32.14 0-65.45-16.89-84.85-43a16 16 0 0112.85-25.54c5.34 0 20-4.87 20-20.57 0-39.07 31.4-70.86 70-70.86s70 31.79 70 70.86c0 49.12-39.48 89.11-88 89.11z\"}}]})(props);\n};\nexport function IoBugOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M370 378c28.89 23.52 46 46.07 46 86m-274-86c-28.89 23.52-46 46.06-46 86m288-256c28.89-23.52 32-56.07 32-96m-288 94c-28.89-23.52-32-54.06-32-94m368 176.13h-80m-256 0H48M256 192v256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 448h0c-70.4 0-128-57.6-128-128v-96.07c0-65.07 57.6-96 128-96h0c70.4 0 128 25.6 128 96V320c0 70.4-57.6 128-128 128z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M179.43 143.52a49.08 49.08 0 01-3.43-15.73A80 80 0 01255.79 48h.42A80 80 0 01336 127.79a41.91 41.91 0 01-3.12 14.3\"}}]})(props);\n};\nexport function IoBugSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 304.13v-32h-80V215.2c29.42-27.95 32-64.76 32-103.2V96h-32v16c0 28-1.86 48.15-9.9 63.84C368 128 324.32 112 256 112c-39.8 0-75.19 7.06-100.43 24.32-14.9 10.19-25.2 24.91-32.7 39.72C114 160.57 112 140.82 112 112V96H80v16c0 37.44 2.59 73.36 32 101.2v58.93H32v32l80-.13c0 19 3.7 53.09 10.39 69.69C96.6 396.76 80 422.31 80 464v16h32v-16c0-27.66 9.1-44.71 26.17-61.32C160 448 177 464 240 464V176h32v288c65 0 80-16 101.83-61.32C390.9 419.29 400 436.35 400 464v16h32v-16c0-41.68-16.6-67.23-42.39-90.31C396.3 357.09 400 323 400 304z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c-48.06 0-96 0-96 84 26.12-14 59.35-20 96-20 24.09 0 46.09 2.65 65.39 8 10.75 3 24.66 8.71 30.61 12 0-84-47.94-84-96-84z\"}}]})(props);\n};\nexport function IoBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463.55 272.13H400v-48.2q0-4.32-.27-8.47c29.57-27.88 32.25-64.63 32.27-103 0-8.61-6.64-16-15.25-16.41A16 16 0 00400 112c0 28-1.86 48.15-9.9 63.84-19.22-41.15-65.78-63.91-134.1-63.91-39.8 0-74.19 9.13-99.43 26.39-14.9 10.19-26.2 22.91-33.7 37.72C114 160.65 112 141 112 112.46c0-8.61-6.6-16-15.2-16.44A16 16 0 0080 112c0 37.63 2.61 73.73 32.44 101.63q-.43 5.06-.44 10.3v48.2H48.45c-8.61 0-16 6.62-16.43 15.23a16 16 0 0016 16.77h64V320a143.32 143.32 0 0010.39 53.69C96.74 396.64 80.18 422 80 463.34c0 8.74 6.62 16.3 15.36 16.65A16 16 0 00112 464c0-27.66 9.1-44.71 26.17-61.32A144.37 144.37 0 00220 459.42a16 16 0 0020-15.49V192.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 192v251.93a16 16 0 0020 15.49 144.4 144.4 0 0081.82-56.74c17 16.54 26.09 33.52 26.17 60.95a16.27 16.27 0 0015.1 16.37A16 16 0 00432 464c0-41.68-16.6-67.23-42.39-90.31A143.32 143.32 0 00400 320v-15.87h64a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M321.39 104l.32.09c13.57 3.8 25.07-10.55 18.2-22.85A95.86 95.86 0 00256.21 32h-.42a95.87 95.87 0 00-84.19 50.13c-6.84 12.58 5.14 27 18.84 22.86 19.71-6 41.79-9.06 65.56-9.06 24.09 0 46.09 2.72 65.39 8.07z\"}}]})(props);\n};\nexport function IoBuildOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M393.87 190a32.1 32.1 0 01-45.25 0l-26.57-26.57a32.09 32.09 0 010-45.26L382.19 58a1 1 0 00-.3-1.64c-38.82-16.64-89.15-8.16-121.11 23.57-30.58 30.35-32.32 76-21.12 115.84a31.93 31.93 0 01-9.06 32.08L64 380a48.17 48.17 0 1068 68l153.86-167a31.93 31.93 0 0131.6-9.13c39.54 10.59 84.54 8.6 114.72-21.19 32.49-32 39.5-88.56 23.75-120.93a1 1 0 00-1.6-.26z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"96\",\"cy\":\"416\",\"r\":\"16\"}}]})(props);\n};\nexport function IoBuildSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M230 209.2L32 405.58 106.65 480l197.59-198.17c46.47 17.46 105.52 12.54 143-24.78 40.44-40.32 40.35-108 16.81-156.79l-87.33 87.06-52.32-52.13 87.33-87.06C363 24.46 294.67 24.34 254.23 64.66c-38.03 37.91-42.78 97.6-24.23 144.54z\"}}]})(props);\n};\nexport function IoBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M469.54 120.52a16 16 0 00-25.54-4L382.56 178a16.12 16.12 0 01-22.63 0l-26.56-26.6a16 16 0 010-22.63l61.18-61.19a16 16 0 00-4.78-25.92C343.56 21 285.88 31.78 249.51 67.88c-30.9 30.68-40.11 78.62-25.25 131.53a15.89 15.89 0 01-4.49 16L53.29 367.46a64.17 64.17 0 1090.6 90.64l153.68-166.85a15.9 15.9 0 0115.77-4.57 179.3 179.3 0 0046.22 6.37c33.4 0 62.71-10.81 83.85-31.64 39.15-38.57 45.12-103.99 26.13-140.89zM99.48 447.15a32 32 0 1128.34-28.35 32 32 0 01-28.34 28.35z\"}}]})(props);\n};\nexport function IoBulbOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 384v-24c0-29 31.54-56.43 52-76 28.84-27.57 44-64.61 44-108 0-80-63.73-144-144-144a143.6 143.6 0 00-144 144c0 41.84 15.81 81.39 44 108 20.35 19.21 52 46.7 52 76v24m16 96h64m-80-48h96m-48-48V256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M294 240s-21.51 16-38 16-38-16-38-16\"}}]})(props);\n};\nexport function IoBulbSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 464h96v32h-96zm-16-48h128v32H192zM369.42 62.69C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0096 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v40h48V269.11L195.72 244 214 217.72 256 240l41.29-22.39 19.1 25.68-44.39 26V400h48v-40c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 00-46.58-113.31z\"}}]})(props);\n};\nexport function IoBulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 464h-64a16 16 0 000 32h64a16 16 0 000-32zm16-48h-96a16 16 0 000 32h96a16 16 0 000-32zm65.42-353.31C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0096 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v24a16 16 0 0016 16h24a8 8 0 008-8V274.82a8 8 0 00-5.13-7.47A130.73 130.73 0 01208.71 253a16 16 0 1118.58-26c7.4 5.24 21.65 13 28.71 13s21.31-7.78 28.73-13a16 16 0 0118.56 26 130.73 130.73 0 01-26.16 14.32 8 8 0 00-5.13 7.47V392a8 8 0 008 8h24a16 16 0 0016-16v-24c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 00-46.58-113.31z\"}}]})(props);\n};\nexport function IoBusOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"352\",\"height\":\"192\",\"x\":\"80\",\"y\":\"112\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"352\",\"height\":\"128\",\"x\":\"80\",\"y\":\"304\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 112H112a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32h288a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32zM144 432v22a10 10 0 01-10 10h-28a10 10 0 01-10-10v-22zm272 0v22a10 10 0 01-10 10h-28a10 10 0 01-10-10v-22z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"368\",\"cy\":\"368\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"144\",\"cy\":\"368\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 112v192M80 80v288M432 80v288\"}}]})(props);\n};\nexport function IoBusSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M400 64H112a16 16 0 000 32h288a16 16 0 000-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M424 32H88a24 24 0 00-24 24v360a32 32 0 0016 27.71V480h72v-32h208v32h72v-36.29A32 32 0 00448 416V56a24 24 0 00-24-24zM175.82 371.47a32 32 0 11-35.3-35.29 32.09 32.09 0 0135.3 35.29zM240 288H96V128h144zm16-192H96.46L96 64h320l-.46 32H256zm16 32h144v160H272zm64.18 236.53a32 32 0 1135.3 35.29 32.09 32.09 0 01-35.3-35.29z\"}}]})(props);\n};\nexport function IoBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H112a48 48 0 00-48 48v320a47.91 47.91 0 0016 35.74V454a26 26 0 0026 26h28a26 26 0 0026-26v-6h192v6a26 26 0 0026 26h28a26 26 0 0026-26v-18.26A47.91 47.91 0 00448 400V80a48 48 0 00-48-48zM147.47 399.82a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zM236 288H112a16 16 0 01-16-16V144a16 16 0 0116-16h124a4 4 0 014 4v152a4 4 0 01-4 4zm20-192H112.46c-8.6 0-16-6.6-16.44-15.19A16 16 0 01112 64h287.54c8.6 0 16 6.6 16.44 15.19A16 16 0 01400 96H256zm20 32h124a16 16 0 0116 16v128a16 16 0 01-16 16H276a4 4 0 01-4-4V132a4 4 0 014-4zm60.18 243.47a32 32 0 1128.35 28.35 32 32 0 01-28.35-28.35z\"}}]})(props);\n};\nexport function IoBusinessOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 416v64M80 32h192a32 32 0 0132 32v412a4 4 0 01-4 4H48h0V64a32 32 0 0132-32zm240 160h112a32 32 0 0132 32v256h0-160 0V208a16 16 0 0116-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M98.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 240a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 320a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256\",\"cy\":\"176\",\"rx\":\"15.95\",\"ry\":\"16.03\",\"transform\":\"rotate(-45 255.99 175.996)\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M258.08 111.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM400 400a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16zm-64 160a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoBusinessSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 176V16H32v480h128v-96h32v96h288V176zM112 432H80v-32h32zm0-80H80v-32h32zm0-80H80v-32h32zm0-80H80v-32h32zm0-80H80V80h32zm128-32h32v32h-32zm-48 272h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32zm0-80h-32V80h32zm80 320h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32v32zm176 272H320v-32h32v-32h-32v-48h32v-32h-32v-48h32v-32h-32v-32h128z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 400h32v32h-32zm0-80h32v32h-32zm0-80h32v32h-32z\"}}]})(props);\n};\nexport function IoBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 176H320V64a48 48 0 00-48-48H80a48 48 0 00-48 48v416a16 16 0 0016 16h104a8 8 0 008-8v-71.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01192 416v72a8 8 0 008 8h264a16 16 0 0016-16V224a48 48 0 00-48-48zM98.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 240a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 320a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM444 464H320V208h112a16 16 0 0116 16v236a4 4 0 01-4 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 400a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16zm-64 160a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16zm0-80a16 16 0 1016 16 16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoCafeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 80h64a16 16 0 0116 16v34a46 46 0 01-46 46h-34M96 80h272v192a80 80 0 01-80 80H176a80 80 0 01-80-80V80h0zM64 416h336\"}}]})(props);\n};\nexport function IoCafeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64H80v254.34a19.83 19.83 0 005.86 14.14l29.65 29.66a19.87 19.87 0 0014.15 5.86h204.68a19.87 19.87 0 0014.15-5.86l29.65-29.66a19.83 19.83 0 005.86-14.14V192h32a16 16 0 0011.31-4.69l32-32A16 16 0 00464 144V80a16 16 0 00-16-16zm-16 73.37L409.37 160H384V96h48zM48 400h368v32H48z\"}}]})(props);\n};\nexport function IoCafe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 64H96a16 16 0 00-16 16v192a96.11 96.11 0 0096 96h112a96.11 96.11 0 0096-96v-80h18a62.07 62.07 0 0062-62V96a32 32 0 00-32-32zm0 66a30 30 0 01-30 30h-18V96h48zm-32 270H64a16 16 0 000 32h336a16 16 0 000-32z\"}}]})(props);\n};\nexport function IoCalculatorOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"288\",\"height\":\"416\",\"x\":\"112\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160.01 112H352v64H160.01z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"248\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"248\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"344\",\"cy\":\"248\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"328\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"328\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"408\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"408\",\"r\":\"24\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"128\",\"x\":\"320\",\"y\":\"304\",\"rx\":\"24\",\"ry\":\"24\"}}]})(props);\n};\nexport function IoCalculatorSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 48a16 16 0 00-16-16H112a16 16 0 00-16 16v416a16 16 0 0016 16h288a16 16 0 0016-16zM192 432h-48v-48h48zm0-80h-48v-48h48zm0-80h-48v-48h48zm88 160h-48v-48h48zm0-80h-48v-48h48zm0-80h-48v-48h48zm88 160h-48V304h48zm0-160h-48v-48h48zm0-96H144V80h224z\"}}]})(props);\n};\nexport function IoCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 80a48.05 48.05 0 00-48-48H144a48.05 48.05 0 00-48 48v352a48.05 48.05 0 0048 48h224a48.05 48.05 0 0048-48zM168 432a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm88 160a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm112 136a24 24 0 01-48 0v-80a24 24 0 0148 0zm-24-136a24 24 0 1124-24 24 24 0 01-24 24zm19.31-100.69A16 16 0 01352 176H160a16 16 0 01-16-16V96a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-4.69 11.31z\"}}]})(props);\n};\nexport function IoCalendarClearOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"384\",\"x\":\"48\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 48v32m256-32v32m80 80H48\"}}]})(props);\n};\nexport function IoCalendarClearSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 456a24 24 0 0024 24h400a24 24 0 0024-24V192H32zM480 87.77A23.8 23.8 0 00456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448z\"}}]})(props);\n};\nexport function IoCalendarClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128a64 64 0 00-64-64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4zM32 416a64 64 0 0064 64h320a64 64 0 0064-64V180a4 4 0 00-4-4H36a4 4 0 00-4 4z\"}}]})(props);\n};\nexport function IoCalendarNumberOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"384\",\"x\":\"48\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 48v32m256-32v32m80 80H48m256 100l43.42-32H352v168m-160.13-89.37c9.11 0 25.79-4.28 36.72-15.47a37.9 37.9 0 0011.13-27.26c0-26.12-22.59-39.9-47.89-39.9-21.4 0-33.52 11.61-37.85 18.93M149 374.16c4.88 8.27 19.71 25.84 43.88 25.84 28.59 0 52.12-15.94 52.12-43.82 0-12.62-3.66-24-11.58-32.07-12.36-12.64-31.25-17.48-41.55-17.48\"}}]})(props);\n};\nexport function IoCalendarNumberSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm310.17-244H368v200h-32V256.29l-35.39 26.08-19-25.76zM222 335.3c-8.54-8.74-22.75-12.67-30.11-12.67h-16v-32h16c4.85 0 17.41-2.6 25.28-10.65a22 22 0 006.57-16.08c0-23.23-28.63-23.9-31.89-23.9-17.34 0-23.8 10.61-24.07 11.06l-8.13 13.78-27.56-16.27 8.14-13.77c7.64-13 25.22-26.8 51.62-26.8 16.44 0 31.76 4.77 43.13 13.42 13.39 10.2 20.76 25.28 20.76 42.48A54 54 0 01240 302.35c-1.15 1.18-2.36 2.28-3.59 3.35a66.18 66.18 0 018.42 7.23c10.56 10.8 16.14 25.75 16.14 43.25 0 18.06-7.61 34-21.42 44.92-12.17 9.61-28.75 14.9-46.7 14.9-27.87 0-48.48-18.16-57.66-33.7l-8.13-13.78 27.56-16.27 8.16 13.75c1.08 1.84 11.15 18 30.1 18 16.66 0 36.12-7.29 36.12-27.82 0-6.25-1.22-14.95-7-20.88zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z\"}}]})(props);\n};\nexport function IoCalendarNumber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4v-12a64 64 0 00-64-64zm60 112H36a4 4 0 00-4 4v236a64 64 0 0064 64h320a64 64 0 0064-64V180a4 4 0 00-4-4zM239.58 401.1c-12.17 9.61-28.75 14.9-46.7 14.9-27.87 0-48.48-18.16-57.66-33.7a16 16 0 0127.56-16.3c1.08 1.84 11.15 18 30.1 18 16.66 0 36.12-7.29 36.12-27.82 0-6.25-1.22-14.95-7-20.88-8.54-8.74-22.75-12.67-30.11-12.67a16 16 0 010-32c4.85 0 17.41-2.6 25.28-10.65a22 22 0 006.57-16.08c0-23.23-28.63-23.9-31.89-23.9-17.34 0-23.8 10.61-24.07 11.06a16 16 0 11-27.55-16.26c7.64-13 25.22-26.8 51.62-26.8 16.44 0 31.76 4.77 43.13 13.42 13.39 10.2 20.76 25.28 20.76 42.48A54 54 0 01240 302.35c-1.15 1.18-2.36 2.28-3.59 3.35a66.18 66.18 0 018.42 7.23c10.56 10.8 16.14 25.75 16.14 43.25.03 18.06-7.58 34.01-21.39 44.92zM368 396a16 16 0 01-32 0V256.29l-22.51 16.59a16 16 0 11-19-25.76l43.42-32a16 16 0 019.49-3.12h4.6a16 16 0 0116 16z\"}}]})(props);\n};\nexport function IoCalendarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"384\",\"x\":\"48\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"296\",\"cy\":\"232\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"376\",\"cy\":\"232\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"296\",\"cy\":\"312\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"376\",\"cy\":\"312\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"136\",\"cy\":\"312\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"216\",\"cy\":\"312\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"136\",\"cy\":\"392\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"216\",\"cy\":\"392\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"296\",\"cy\":\"392\",\"r\":\"24\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 48v32m256-32v32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M464 160H48\"}}]})(props);\n};\nexport function IoCalendarSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm320-244a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z\"}}]})(props);\n};\nexport function IoCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128a64 64 0 00-64-64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4zM32 416a64 64 0 0064 64h320a64 64 0 0064-64V179a3 3 0 00-3-3H35a3 3 0 00-3 3zm344-208a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24z\"}}]})(props);\n};\nexport function IoCallOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M451 374c-15.88-16-54.34-39.35-73-48.76-24.3-12.24-26.3-13.24-45.4.95-12.74 9.47-21.21 17.93-36.12 14.75s-47.31-21.11-75.68-49.39-47.34-61.62-50.53-76.48 5.41-23.23 14.79-36c13.22-18 12.22-21 .92-45.3-8.81-18.9-32.84-57-48.9-72.8C119.9 44 119.9 47 108.83 51.6A160.15 160.15 0 0083 65.37C67 76 58.12 84.83 51.91 98.1s-9 44.38 23.07 102.64 54.57 88.05 101.14 134.49S258.5 406.64 310.85 436c64.76 36.27 89.6 29.2 102.91 23s22.18-15 32.83-31a159.09 159.09 0 0013.8-25.8C465 391.17 468 391.17 451 374z\"}}]})(props);\n};\nexport function IoCallSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.94 370.14c-5.22-5.56-23.65-22-57.53-43.75-34.13-21.94-59.3-35.62-66.52-38.81a3.83 3.83 0 00-3.92.49c-11.63 9.07-31.21 25.73-32.26 26.63-6.78 5.81-6.78 5.81-12.33 4-9.76-3.2-40.08-19.3-66.5-45.78s-43.35-57.55-46.55-67.3c-1.83-5.56-1.83-5.56 4-12.34.9-1.05 17.57-20.63 26.64-32.25a3.83 3.83 0 00.49-3.92c-3.19-7.23-16.87-32.39-38.81-66.52-21.78-33.87-38.2-52.3-43.76-57.52a3.9 3.9 0 00-3.89-.87 322.35 322.35 0 00-56 25.45A338 338 0 0033.35 92a3.83 3.83 0 00-1.26 3.74c2.09 9.74 12.08 50.4 43.08 106.72 31.63 57.48 53.55 86.93 100 133.22S252 405.21 309.54 436.84c56.32 31 97 41 106.72 43.07a3.86 3.86 0 003.75-1.26A337.73 337.73 0 00454.35 430a322.7 322.7 0 0025.45-56 3.9 3.9 0 00-.86-3.86z\"}}]})(props);\n};\nexport function IoCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391 480c-19.52 0-46.94-7.06-88-30-49.93-28-88.55-53.85-138.21-103.38C116.91 298.77 93.61 267.79 61 208.45c-36.84-67-30.56-102.12-23.54-117.13C45.82 73.38 58.16 62.65 74.11 52a176.3 176.3 0 0128.64-15.2c1-.43 1.93-.84 2.76-1.21 4.95-2.23 12.45-5.6 21.95-2 6.34 2.38 12 7.25 20.86 16 18.17 17.92 43 57.83 52.16 77.43 6.15 13.21 10.22 21.93 10.23 31.71 0 11.45-5.76 20.28-12.75 29.81-1.31 1.79-2.61 3.5-3.87 5.16-7.61 10-9.28 12.89-8.18 18.05 2.23 10.37 18.86 41.24 46.19 68.51s57.31 42.85 67.72 45.07c5.38 1.15 8.33-.59 18.65-8.47 1.48-1.13 3-2.3 4.59-3.47 10.66-7.93 19.08-13.54 30.26-13.54h.06c9.73 0 18.06 4.22 31.86 11.18 18 9.08 59.11 33.59 77.14 51.78 8.77 8.84 13.66 14.48 16.05 20.81 3.6 9.53.21 17-2 22-.37.83-.78 1.74-1.21 2.75a176.49 176.49 0 01-15.29 28.58c-10.63 15.9-21.4 28.21-39.38 36.58A67.42 67.42 0 01391 480z\"}}]})(props);\n};\nexport function IoCameraOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M350.54 148.68l-26.62-42.06C318.31 100.08 310.62 96 302 96h-92c-8.62 0-16.31 4.08-21.92 10.62l-26.62 42.06C155.85 155.23 148.62 160 140 160H80a32 32 0 00-32 32v192a32 32 0 0032 32h352a32 32 0 0032-32V192a32 32 0 00-32-32h-59c-8.65 0-16.85-4.77-22.46-11.32z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"272\",\"r\":\"80\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M124 158v-22h-24v22\"}}]})(props);\n};\nexport function IoCameraReverseOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M350.54 148.68l-26.62-42.06C318.31 100.08 310.62 96 302 96h-92c-8.62 0-16.31 4.08-21.92 10.62l-26.62 42.06C155.85 155.23 148.62 160 140 160H80a32 32 0 00-32 32v192a32 32 0 0032 32h352a32 32 0 0032-32V192a32 32 0 00-32-32h-59c-8.65 0-16.85-4.77-22.46-11.32z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M124 158v-22h-24v22m235.76 127.22v-13.31a80 80 0 00-131-61.6M176 258.78v13.31a80 80 0 00130.73 61.8\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M196 272l-20-20-20 20m200 0l-20 20-20-20\"}}]})(props);\n};\nexport function IoCameraReverseSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 144h-83c-3 0-6.72-1.94-9.62-5l-27.31-42.79C326 80 320 80 302 80h-92c-18 0-23 0-34.07 16.21L148.62 139c-2.22 2.42-5.34 5-8.62 5v-16a8 8 0 00-8-8H92a8 8 0 00-8 8v16H56a24 24 0 00-24 24v240a24 24 0 0024 24h400a24 24 0 0024-24V168a24 24 0 00-24-24zM256 368c-47.82 0-87.76-34.23-95-80h-43.63L176 229.37 234.63 288H194a64.07 64.07 0 00102.63 33.49L320 343l-3.68 3.72A96.64 96.64 0 01256 368zm80-53.84L277.11 256H318a64.26 64.26 0 00-103-33.36L192 200l3.14-2.45A96.19 96.19 0 01255.76 176c47.85 0 87 34.19 94.24 80h44.92z\"}}]})(props);\n};\nexport function IoCameraReverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 144h-59c-3 0-6.72-1.94-9.62-5l-25.94-40.94a15.52 15.52 0 00-1.37-1.85C327.11 85.76 315 80 302 80h-92c-13 0-25.11 5.76-34.07 16.21a15.52 15.52 0 00-1.37 1.85l-25.94 41c-2.22 2.42-5.34 5-8.62 5v-8a16 16 0 00-16-16h-24a16 16 0 00-16 16v8h-4a48.05 48.05 0 00-48 48V384a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V192a48.05 48.05 0 00-48-48zM316.84 346.3a96.06 96.06 0 01-155.66-59.18 16 16 0 01-16.49-26.43l20-20a16 16 0 0122.62 0l20 20A16 16 0 01196 288a17.31 17.31 0 01-2-.14 64.07 64.07 0 00102.66 33.63 16 16 0 1120.21 24.81zm50.47-63l-20 20a16 16 0 01-22.62 0l-20-20a16 16 0 0113.09-27.2A64 64 0 00215 222.64 16 16 0 11194.61 198a96 96 0 01156 59 16 16 0 0116.72 26.35z\"}}]})(props);\n};\nexport function IoCameraSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"272\",\"r\":\"64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M456 144h-83c-3 0-6.72-1.94-9.62-5L336.1 96.2C325 80 320 80 302 80h-92c-18 0-24 0-34.07 16.21L148.62 139c-2.22 2.42-5.34 5-8.62 5v-16a8 8 0 00-8-8H92a8 8 0 00-8 8v16H56a24 24 0 00-24 24v240a24 24 0 0024 24h400a24 24 0 0024-24V168a24 24 0 00-24-24zM260.51 367.9a96 96 0 1191.39-91.39 96.11 96.11 0 01-91.39 91.39z\"}}]})(props);\n};\nexport function IoCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"272\",\"r\":\"64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 144h-59c-3 0-6.72-1.94-9.62-5l-25.94-40.94a15.52 15.52 0 00-1.37-1.85C327.11 85.76 315 80 302 80h-92c-13 0-25.11 5.76-34.07 16.21a15.52 15.52 0 00-1.37 1.85l-25.94 41c-2.22 2.42-5.34 5-8.62 5v-8a16 16 0 00-16-16h-24a16 16 0 00-16 16v8h-4a48.05 48.05 0 00-48 48V384a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V192a48.05 48.05 0 00-48-48zM256 368a96 96 0 1196-96 96.11 96.11 0 01-96 96z\"}}]})(props);\n};\nexport function IoCarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 224l37.78-88.15C123.93 121.5 139.6 112 157.11 112h197.78c17.51 0 33.18 9.5 39.33 23.85L432 224m-352 0h352v144H80zm32 144v32H80v-32m352 0v32h-32v-32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"144\",\"cy\":\"288\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"368\",\"cy\":\"288\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoCarSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.68 220.78a16.44 16.44 0 00-1-3.1l-48-112A16 16 0 00384 96H128a16 16 0 00-14.71 9.7l-48 112a16.44 16.44 0 00-1 3.1A16.15 16.15 0 0064 224v184a8 8 0 008 8h32a8 8 0 008-8v-24h288v24a8 8 0 008 8h32a8 8 0 008-8V224a16.15 16.15 0 00-.32-3.22zM144 320a32 32 0 1132-32 32 32 0 01-32 32zm224 0a32 32 0 1132-32 32 32 0 01-32 32zM104.26 208l34.29-80h234.9l34.29 80z\"}}]})(props);\n};\nexport function IoCarSportOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M469.71 234.6c-7.33-9.73-34.56-16.43-46.08-33.94s-20.95-55.43-50.27-70S288 112 256 112s-88 4-117.36 18.63-38.75 52.52-50.27 70-38.75 24.24-46.08 33.97S29.8 305.84 32.94 336s9 48 9 48h86c14.08 0 18.66-5.29 47.46-8 31.6-3 62.6-4 80.6-4s50 1 81.58 4c28.8 2.73 33.53 8 47.46 8h85s5.86-17.84 9-48-2.04-91.67-9.33-101.4zM400 384h56v16h-56zm-344 0h56v16H56z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M364.47 309.16c-5.91-6.83-25.17-12.53-50.67-16.35S279 288 256.2 288s-33.17 1.64-57.61 4.81-42.79 8.81-50.66 16.35C136.12 320.6 153.42 333.44 167 335c13.16 1.5 39.47.95 89.31.95s76.15.55 89.31-.95c13.56-1.65 29.62-13.6 18.85-25.84zm67.1-66.11a3.23 3.23 0 00-3.1-3c-11.81-.42-23.8.42-45.07 6.69a93.88 93.88 0 00-30.08 15.06c-2.28 1.78-1.47 6.59 1.39 7.1a455.32 455.32 0 0052.82 3.1c10.59 0 21.52-3 23.55-12.44a52.41 52.41 0 00.49-16.51zm-351.14 0a3.23 3.23 0 013.1-3c11.81-.42 23.8.42 45.07 6.69a93.88 93.88 0 0130.08 15.06c2.28 1.78 1.47 6.59-1.39 7.1a455.32 455.32 0 01-52.82 3.1c-10.59 0-21.52-3-23.55-12.44a52.41 52.41 0 01-.49-16.51z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432 192h16m-384 0h16m-2 19s46.35-12 178-12 178 12 178 12\"}}]})(props);\n};\nexport function IoCarSportSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 224c-3-5-32.61-17.79-32.61-17.79 5.15-2.66 8.67-3.21 8.67-14.21 0-12-.06-16-8.06-16h-27.14c-.11-.24-.23-.49-.34-.74-17.52-38.26-19.87-47.93-46-60.95C347.47 96.88 281.76 96 256 96s-91.47.88-126.49 18.31c-26.16 13-25.51 19.69-46 60.95 0 .11-.21.4-.4.74H55.94c-7.94 0-8 4-8 16 0 11 3.52 11.55 8.67 14.21C56.61 206.21 28 220 24 224s-8 32-8 80 4 96 4 96h11.94c0 14 2.06 16 8.06 16h80c6 0 8-2 8-16h256c0 14 2 16 8 16h82c4 0 6-3 6-16h12s4-49 4-96-5-75-8-80zm-362.74 44.94A516.94 516.94 0 0170.42 272c-20.42 0-21.12 1.31-22.56-11.44a72.16 72.16 0 01.51-17.51L49 240h3c12 0 23.27.51 44.55 6.78a98 98 0 0130.09 15.06C131 265 132 268 132 268zm247.16 72L368 352H144s.39-.61-5-11.18c-4-7.82 1-12.82 8.91-15.66C163.23 319.64 208 304 256 304s93.66 13.48 108.5 21.16C370 328 376.83 330 372.42 341zm-257-136.53a96.23 96.23 0 01-9.7.07c2.61-4.64 4.06-9.81 6.61-15.21 8-17 17.15-36.24 33.44-44.35 23.54-11.72 72.33-17 110.23-17s86.69 5.24 110.23 17c16.29 8.11 25.4 27.36 33.44 44.35 2.57 5.45 4 10.66 6.68 15.33-2 .11-4.3 0-9.79-.19zm347.72 56.11C461 273 463 272 441.58 272a516.94 516.94 0 01-54.84-3.06c-2.85-.51-3.66-5.32-1.38-7.1a93.84 93.84 0 0130.09-15.06c21.28-6.27 33.26-7.11 45.09-6.69a3.22 3.22 0 013.09 3 70.18 70.18 0 01-.49 17.47z\"}}]})(props);\n};\nexport function IoCarSport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.26 276.22c-3.6-40.41-9.53-48.28-11.77-51.24-5.15-6.84-13.39-11.31-22.11-16a3.6 3.6 0 01-.91-5.68 15.93 15.93 0 004.53-12.53A16.27 16.27 0 00447.65 176h-15.6a17 17 0 00-2 .13 8.5 8.5 0 00-1.41-.47c-9.24-19.53-21.89-46.27-48.11-59.32C341.64 97 270 96 256 96s-85.64 1-124.48 20.31c-26.22 13.05-38.87 39.79-48.11 59.32l-.08.16a6.52 6.52 0 00-1.35.34 17 17 0 00-2-.13H64.35A16.27 16.27 0 0048 190.77a15.93 15.93 0 004.59 12.47 3.6 3.6 0 01-.91 5.68c-8.72 4.72-17 9.19-22.11 16-2.24 3-8.16 10.83-11.77 51.24-2 22.74-2.3 46.28-.73 61.44 3.29 31.5 9.46 50.54 9.72 51.33a16 16 0 0013.2 10.87v.2a16 16 0 0016 16h56a16 16 0 0016-16c8.61 0 14.6-1.54 20.95-3.18a158.83 158.83 0 0128-4.91C207.45 389 237.79 388 256 388c17.84 0 49.52 1 80.08 3.91a159.16 159.16 0 0128.11 4.93c6.08 1.56 11.85 3 19.84 3.15a16 16 0 0016 16h56a16 16 0 0016-16v-.12A16 16 0 00485.27 389c.26-.79 6.43-19.83 9.72-51.33 1.57-15.17 1.29-38.67-.73-61.45zm-381.93-86.91c8-17 17.15-36.24 33.44-44.35 23.54-11.72 72.33-17 110.23-17s86.69 5.24 110.23 17c16.29 8.11 25.4 27.36 33.44 44.35l1 2.17a8 8 0 01-7.44 11.42C360 202 290 199.12 256 199.12s-104 2.95-137.28 3.85a8 8 0 01-7.44-11.42c.35-.74.72-1.49 1.05-2.24zm11.93 79.63A427.17 427.17 0 0172.42 272c-10.6 0-21.53-3-23.56-12.44-1.39-6.35-1.24-9.92-.49-13.51C49 243 50 240.78 55 240c13-2 20.27.51 41.55 6.78 14.11 4.15 24.29 9.68 30.09 14.06 2.91 2.16 1.36 7.8-2.38 8.1zm221.38 82c-13.16 1.5-39.48.95-89.34.95s-76.17.55-89.33-.95c-13.58-1.51-30.89-14.35-19.07-25.79 7.87-7.54 26.23-13.18 50.68-16.35s34.8-4.8 57.62-4.8 32.12 1 57.62 4.81 44.77 9.52 50.68 16.35c10.78 12.24-5.29 24.19-18.86 25.84zm117.5-91.39c-2 9.48-13 12.44-23.56 12.44a455.91 455.91 0 01-52.84-3.06c-3.06-.29-4.48-5.66-1.38-8.1 5.71-4.49 16-9.91 30.09-14.06 21.28-6.27 33.55-8.78 44.09-6.69 2.57.51 3.93 3.27 4.09 5a40.64 40.64 0 01-.49 14.48z\"}}]})(props);\n};\nexport function IoCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.68 220.78a16 16 0 00-1-3.08l-37.78-88.16C400.19 109.17 379 96 354.89 96H157.11c-24.09 0-45.3 13.17-54 33.54L65.29 217.7A15.72 15.72 0 0064 224v176a16 16 0 0016 16h32a16 16 0 0016-16v-16h256v16a16 16 0 0016 16h32a16 16 0 0016-16V224a16.15 16.15 0 00-.32-3.22zM144 320a32 32 0 1132-32 32 32 0 01-32 32zm224 0a32 32 0 1132-32 32 32 0 01-32 32zM104.26 208l28.23-65.85C136.11 133.69 146 128 157.11 128h197.78c11.1 0 21 5.69 24.62 14.15L407.74 208z\"}}]})(props);\n};\nexport function IoCardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"320\",\"x\":\"48\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"56\",\"ry\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"60\",\"d\":\"M48 192h416M128 300h48v20h-48z\"}}]})(props);\n};\nexport function IoCardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 416a16 16 0 0016 16h416a16 16 0 0016-16V222H32zm66-138a8 8 0 018-8h92a8 8 0 018 8v64a8 8 0 01-8 8h-92a8 8 0 01-8-8zM464 80H48a16 16 0 00-16 16v66h448V96a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 376a56 56 0 0056 56h336a56 56 0 0056-56V222H32zm66-76a30 30 0 0130-30h48a30 30 0 0130 30v20a30 30 0 01-30 30h-48a30 30 0 01-30-30zM424 80H88a56 56 0 00-56 56v26h448v-26a56 56 0 00-56-56z\"}}]})(props);\n};\nexport function IoCaretBackCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M273.77 169.57l-89.09 74.13a16 16 0 000 24.6l89.09 74.13A16 16 0 00300 330.14V181.86a16 16 0 00-26.23-12.29z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoCaretBackCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm252 108.27L169.91 256 300 147.73z\"}}]})(props);\n};\nexport function IoCaretBackCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm252-74.14v148.28a16 16 0 01-26.23 12.29l-89.09-74.13a16 16 0 010-24.6l89.09-74.13A16 16 0 01300 181.86z\"}}]})(props);\n};\nexport function IoCaretBackOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z\"}}]})(props);\n};\nexport function IoCaretBackSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 64L144 256l224 192V64z\"}}]})(props);\n};\nexport function IoCaretBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z\"}}]})(props);\n};\nexport function IoCaretDownCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.43 238.23l-74.13 89.09a16 16 0 01-24.6 0l-74.13-89.09A16 16 0 01181.86 212h148.28a16 16 0 0112.29 26.23z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoCaretDownCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-99.73-44L256 342.09 147.73 212z\"}}]})(props);\n};\nexport function IoCaretDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-121.57-17.77l-74.13 89.09a16 16 0 01-24.6 0l-74.13-89.09A16 16 0 01181.86 212h148.28a16 16 0 0112.29 26.23z\"}}]})(props);\n};\nexport function IoCaretDownOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M98 190.06l139.78 163.12a24 24 0 0036.44 0L414 190.06c13.34-15.57 2.28-39.62-18.22-39.62h-279.6c-20.5 0-31.56 24.05-18.18 39.62z\"}}]})(props);\n};\nexport function IoCaretDownSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 144l192 224 192-224H64z\"}}]})(props);\n};\nexport function IoCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M98 190.06l139.78 163.12a24 24 0 0036.44 0L414 190.06c13.34-15.57 2.28-39.62-18.22-39.62h-279.6c-20.5 0-31.56 24.05-18.18 39.62z\"}}]})(props);\n};\nexport function IoCaretForwardCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M238.23 342.43l89.09-74.13a16 16 0 000-24.6l-89.09-74.13A16 16 0 00212 181.86v148.28a16 16 0 0026.23 12.29z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoCaretForwardCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zM212 147.73L342.09 256 212 364.27z\"}}]})(props);\n};\nexport function IoCaretForwardCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-252 74.14V181.86a16 16 0 0126.23-12.29l89.09 74.13a16 16 0 010 24.6l-89.09 74.13A16 16 0 01212 330.14z\"}}]})(props);\n};\nexport function IoCaretForwardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z\"}}]})(props);\n};\nexport function IoCaretForwardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 448l224-192L144 64v384z\"}}]})(props);\n};\nexport function IoCaretForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z\"}}]})(props);\n};\nexport function IoCaretUpCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.43 273.77l-74.13-89.09a16 16 0 00-24.6 0l-74.13 89.09A16 16 0 00181.86 300h148.28a16 16 0 0012.29-26.23z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoCaretUpCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zM147.73 300L256 169.91 364.27 300z\"}}]})(props);\n};\nexport function IoCaretUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm74.14 252H181.86a16 16 0 01-12.29-26.23l74.13-89.09a16 16 0 0124.6 0l74.13 89.09A16 16 0 01330.14 300z\"}}]})(props);\n};\nexport function IoCaretUpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414 321.94L274.22 158.82a24 24 0 00-36.44 0L98 321.94c-13.34 15.57-2.28 39.62 18.22 39.62h279.6c20.5 0 31.56-24.05 18.18-39.62z\"}}]})(props);\n};\nexport function IoCaretUpSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 368L256 144 64 368h384z\"}}]})(props);\n};\nexport function IoCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414 321.94L274.22 158.82a24 24 0 00-36.44 0L98 321.94c-13.34 15.57-2.28 39.62 18.22 39.62h279.6c20.5 0 31.56-24.05 18.18-39.62z\"}}]})(props);\n};\nexport function IoCartOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"176\",\"cy\":\"416\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"400\",\"cy\":\"416\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 80h64l48 272h256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 288h249.44a8 8 0 007.85-6.43l28.8-144a8 8 0 00-7.85-9.57H128\"}}]})(props);\n};\nexport function IoCartSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"176\",\"cy\":\"416\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"400\",\"cy\":\"416\",\"r\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M167.78 304h261.34l38.4-192H133.89l-8.47-48H32v32h66.58l48 272H432v-32H173.42l-5.64-32z\"}}]})(props);\n};\nexport function IoCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"176\",\"cy\":\"416\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"400\",\"cy\":\"416\",\"r\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M456.8 120.78a23.92 23.92 0 00-18.56-8.78H133.89l-6.13-34.78A16 16 0 00112 64H48a16 16 0 000 32h50.58l45.66 258.78A16 16 0 00160 368h256a16 16 0 000-32H173.42l-5.64-32h241.66A24.07 24.07 0 00433 284.71l28.8-144a24 24 0 00-5-19.93z\"}}]})(props);\n};\nexport function IoCashOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"256\",\"x\":\"32\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\",\"transform\":\"rotate(180 256 208)\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 384h384M96 432h320\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"208\",\"r\":\"80\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M480 160a80 80 0 01-80-80M32 160a80 80 0 0080-80m368 176a80 80 0 00-80 80M32 256a80 80 0 0180 80\"}}]})(props);\n};\nexport function IoCashSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 368h416v32H48zm32 48h352v32H80zm400-240a96.11 96.11 0 01-96-96V64H128v16a96.11 96.11 0 01-96 96H16v64h16a96.11 96.11 0 0196 96v16h256v-16a96.11 96.11 0 0196-96h16v-64zM256 304a96 96 0 1196-96 96.11 96.11 0 01-96 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M96 80V64H16v80h16a64.07 64.07 0 0064-64zM32 272H16v80h80v-16a64.07 64.07 0 00-64-64zm448-128h16V64h-80v16a64.07 64.07 0 0064 64zm-64 192v16h80v-80h-16a64.07 64.07 0 00-64 64z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"208\",\"r\":\"64\"}}]})(props);\n};\nexport function IoCash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 400H64a16 16 0 010-32h384a16 16 0 010 32zm-32 48H96a16 16 0 010-32h320a16 16 0 010 32zM32 272H16v48a32 32 0 0032 32h48v-16a64.07 64.07 0 00-64-64z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 240h16v-64h-16a96.11 96.11 0 01-96-96V64H128v16a96.11 96.11 0 01-96 96H16v64h16a96.11 96.11 0 0196 96v16h256v-16a96.11 96.11 0 0196-96zm-224 64a96 96 0 1196-96 96.11 96.11 0 01-96 96z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"208\",\"r\":\"64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M416 336v16h48a32 32 0 0032-32v-48h-16a64.07 64.07 0 00-64 64zm64-192h16V96a32 32 0 00-32-32h-48v16a64.07 64.07 0 0064 64zM96 80V64H48a32 32 0 00-32 32v48h16a64.07 64.07 0 0064-64z\"}}]})(props);\n};\nexport function IoCellularOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"320\",\"x\":\"416\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"240\",\"x\":\"288\",\"y\":\"176\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"176\",\"x\":\"160\",\"y\":\"240\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"112\",\"x\":\"32\",\"y\":\"304\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}}]})(props);\n};\nexport function IoCellularSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 432h-96V80h96zm-128 0h-96V160h96zm-128 0h-96V224h96zm-128 0H16V288h96z\"}}]})(props);\n};\nexport function IoCellular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472 432h-48a24 24 0 01-24-24V104a24 24 0 0124-24h48a24 24 0 0124 24v304a24 24 0 01-24 24zm-128 0h-48a24 24 0 01-24-24V184a24 24 0 0124-24h48a24 24 0 0124 24v224a24 24 0 01-24 24zm-128 0h-48a24 24 0 01-24-24V248a24 24 0 0124-24h48a24 24 0 0124 24v160a24 24 0 01-24 24zm-128 0H40a24 24 0 01-24-24v-96a24 24 0 0124-24h48a24 24 0 0124 24v96a24 24 0 01-24 24z\"}}]})(props);\n};\nexport function IoChatboxEllipsesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M408 64H104a56.16 56.16 0 00-56 56v192a56.16 56.16 0 0056 56h40v80l93.72-78.14a8 8 0 015.13-1.86H408a56.16 56.16 0 0056-56V120a56.16 56.16 0 00-56-56z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"160\",\"cy\":\"216\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"216\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"352\",\"cy\":\"216\",\"r\":\"32\"}}]})(props);\n};\nexport function IoChatboxEllipsesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 48H56a24 24 0 00-24 24v288a24 24 0 0024 24h72v80l117.74-80H456a24 24 0 0024-24V72a24 24 0 00-24-24zM160 248a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zM456 80z\"}}]})(props);\n};\nexport function IoChatboxEllipses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 48H104a72.08 72.08 0 00-72 72v192a72.08 72.08 0 0072 72h24v64a16 16 0 0026.25 12.29L245.74 384H408a72.08 72.08 0 0072-72V120a72.08 72.08 0 00-72-72zM160 248a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoChatboxOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M408 64H104a56.16 56.16 0 00-56 56v192a56.16 56.16 0 0056 56h40v80l93.72-78.14a8 8 0 015.13-1.86H408a56.16 56.16 0 0056-56V120a56.16 56.16 0 00-56-56z\"}}]})(props);\n};\nexport function IoChatboxSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 464v-80H56a24 24 0 01-24-24V72a24 24 0 0124-24h400a24 24 0 0124 24v288a24 24 0 01-24 24H245.74zM456 80z\"}}]})(props);\n};\nexport function IoChatbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 464a16 16 0 01-16-16v-64h-24a72.08 72.08 0 01-72-72V120a72.08 72.08 0 0172-72h304a72.08 72.08 0 0172 72v192a72.08 72.08 0 01-72 72H245.74l-91.49 76.29A16.05 16.05 0 01144 464z\"}}]})(props);\n};\nexport function IoChatbubbleEllipsesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M87.48 380c1.2-4.38-1.43-10.47-3.94-14.86a42.63 42.63 0 00-2.54-3.8 199.81 199.81 0 01-33-110C47.64 139.09 140.72 48 255.82 48 356.2 48 440 117.54 459.57 209.85a199 199 0 014.43 41.64c0 112.41-89.49 204.93-204.59 204.93-18.31 0-43-4.6-56.47-8.37s-26.92-8.77-30.39-10.11a31.14 31.14 0 00-11.13-2.07 30.7 30.7 0 00-12.08 2.43L81.5 462.78a15.92 15.92 0 01-4.66 1.22 9.61 9.61 0 01-9.58-9.74 15.85 15.85 0 01.6-3.29z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"160\",\"cy\":\"256\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"352\",\"cy\":\"256\",\"r\":\"32\"}}]})(props);\n};\nexport function IoChatbubbleEllipsesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M475.22 206.52c-10.34-48.65-37.76-92.93-77.22-124.68A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l4.35 6.05L48 480l114.8-28.56s2.3.77 4 1.42 16.33 6.26 31.85 10.6c12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-44.97zM160 288a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoChatbubbleEllipses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398 81.84A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l.19.27c.28.41.57.82.86 1.22s.65.92.73 1.05l.22.4c1.13 2 2 4.44 1.23 6.9l-18.42 66.66a29.13 29.13 0 00-1.2 7.63A25.69 25.69 0 0076.83 480a29.44 29.44 0 0010.45-2.29l67.49-24.36.85-.33a14.75 14.75 0 015.8-1.15 15.12 15.12 0 015.37 1c1.62.63 16.33 6.26 31.85 10.6 12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-45c-10.34-48.62-37.76-92.9-77.22-124.65zM87.48 380zM160 288a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoChatbubbleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M87.49 380c1.19-4.38-1.44-10.47-3.95-14.86a44.86 44.86 0 00-2.54-3.8 199.81 199.81 0 01-33-110C47.65 139.09 140.73 48 255.83 48 356.21 48 440 117.54 459.58 209.85a199 199 0 014.42 41.64c0 112.41-89.49 204.93-204.59 204.93-18.3 0-43-4.6-56.47-8.37s-26.92-8.77-30.39-10.11a31.09 31.09 0 00-11.12-2.07 30.71 30.71 0 00-12.09 2.43l-67.83 24.48a16 16 0 01-4.67 1.22 9.6 9.6 0 01-9.57-9.74 15.85 15.85 0 01.6-3.29z\"}}]})(props);\n};\nexport function IoChatbubbleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M475.22 206.52c-10.34-48.65-37.76-92.93-77.22-124.68A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l4.35 6.05L48 480l114.8-28.56s2.3.77 4 1.42 16.33 6.26 31.85 10.6c12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-44.97z\"}}]})(props);\n};\nexport function IoChatbubble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M76.83 480a25.69 25.69 0 01-25.57-25.74 29.13 29.13 0 011.2-7.63L70.88 380c.77-2.46-.1-4.94-1.23-6.9l-.22-.4c-.08-.13-.46-.66-.73-1.05s-.58-.81-.86-1.22l-.19-.27A215.66 215.66 0 0132 251.37c-.18-57.59 22.35-112 63.46-153.28C138 55.47 194.9 32 255.82 32A227.4 227.4 0 01398 81.84c39.45 31.75 66.87 76 77.21 124.68a213.5 213.5 0 014.78 45c0 58.93-22.64 114.28-63.76 155.87-41.48 42-97.18 65.06-156.83 65.06-21 0-47.87-5.36-60.77-9-15.52-4.34-30.23-10-31.85-10.6a15.12 15.12 0 00-5.37-1 14.75 14.75 0 00-5.8 1.15l-.85.33-67.48 24.38A29.44 29.44 0 0176.83 480zm-2-31.8zM87.48 380z\"}}]})(props);\n};\nexport function IoChatbubblesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M431 320.6c-1-3.6 1.2-8.6 3.3-12.2a33.68 33.68 0 012.1-3.1A162 162 0 00464 215c.3-92.2-77.5-167-173.7-167-83.9 0-153.9 57.1-170.3 132.9a160.7 160.7 0 00-3.7 34.2c0 92.3 74.8 169.1 171 169.1 15.3 0 35.9-4.6 47.2-7.7s22.5-7.2 25.4-8.3a26.44 26.44 0 019.3-1.7 26 26 0 0110.1 2l56.7 20.1a13.52 13.52 0 003.9 1 8 8 0 008-8 12.85 12.85 0 00-.5-2.7z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M66.46 232a146.23 146.23 0 006.39 152.67c2.31 3.49 3.61 6.19 3.21 8s-11.93 61.87-11.93 61.87a8 8 0 002.71 7.68A8.17 8.17 0 0072 464a7.26 7.26 0 002.91-.6l56.21-22a15.7 15.7 0 0112 .2c18.94 7.38 39.88 12 60.83 12A159.21 159.21 0 00284 432.11\"}}]})(props);\n};\nexport function IoChatbubblesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 312.43c.77-1.11 1.51-2.26 2.27-3.34A174.55 174.55 0 00480 211.85C480.32 112.55 396.54 32 292.94 32c-90.36 0-165.74 61.49-183.4 143.12a172.81 172.81 0 00-4 36.83c0 99.4 80.56 182.11 184.16 182.11 16.47 0 38.66-4.95 50.83-8.29s24.23-7.75 27.35-8.94 8-2.41 11.89-1.29l77.42 22.38a4 4 0 005-4.86l-17.72-67.49c-1.23-5-1.39-5.94 3.53-13.14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M312.54 415.38a165.32 165.32 0 01-23.26 2.05c-42.43 0-82.5-11.2-115-32.2a184.09 184.09 0 01-53.09-49.32c-26.08-34.57-40.3-78.51-40.3-124.49 0-3.13.11-6.14.22-9.16a4.34 4.34 0 00-7.54-3.12 158.76 158.76 0 00-14.86 195.24c2.47 3.77 3.87 6.68 3.44 8.62l-14.09 72.26a4 4 0 005.22 4.53l68-24.24a16.85 16.85 0 0112.92.22c20.35 8 42.86 12.92 65.37 12.92a169.45 169.45 0 00116.63-46 4.29 4.29 0 00-3.66-7.31z\"}}]})(props);\n};\nexport function IoChatbubbles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M60.44 389.17c0 .07 0 .2-.08.38.03-.12.05-.25.08-.38zM439.9 405.6a26.77 26.77 0 01-9.59-2l-56.78-20.13-.42-.17a9.88 9.88 0 00-3.91-.76 10.32 10.32 0 00-3.62.66c-1.38.52-13.81 5.19-26.85 8.77-7.07 1.94-31.68 8.27-51.43 8.27-50.48 0-97.68-19.4-132.89-54.63A183.38 183.38 0 01100.3 215.1a175.9 175.9 0 014.06-37.58c8.79-40.62 32.07-77.57 65.55-104A194.76 194.76 0 01290.3 32c52.21 0 100.86 20 137 56.18 34.16 34.27 52.88 79.33 52.73 126.87a177.86 177.86 0 01-30.3 99.15l-.19.28-.74 1c-.17.23-.34.45-.5.68l-.15.27a21.63 21.63 0 00-1.08 2.09l15.74 55.94a26.42 26.42 0 011.12 7.11 24 24 0 01-24.03 24.03z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M299.87 425.39a15.74 15.74 0 00-10.29-8.1c-5.78-1.53-12.52-1.27-17.67-1.65a201.78 201.78 0 01-128.82-58.75A199.21 199.21 0 0186.4 244.16C85 234.42 85 232 85 232a16 16 0 00-28-10.58s-7.88 8.58-11.6 17.19a162.09 162.09 0 0011 150.06C59 393 59 395 58.42 399.5c-2.73 14.11-7.51 39-10 51.91a24 24 0 008 22.92l.46.39A24.34 24.34 0 0072 480a23.42 23.42 0 009-1.79l53.51-20.65a8.05 8.05 0 015.72 0c21.07 7.84 43 12 63.78 12a176 176 0 0074.91-16.66c5.46-2.56 14-5.34 19-11.12a15 15 0 001.95-16.39z\"}}]})(props);\n};\nexport function IoCheckboxOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 176L217.6 336 160 272\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"384\",\"height\":\"384\",\"x\":\"64\",\"y\":\"64\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}}]})(props);\n};\nexport function IoCheckboxSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 48v416h416V48zm170 312.38l-80.6-89.57 23.79-21.41 56 62.22L350 153.46 374.54 174z\"}}]})(props);\n};\nexport function IoCheckbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 48H112a64.07 64.07 0 00-64 64v288a64.07 64.07 0 0064 64h288a64.07 64.07 0 0064-64V112a64.07 64.07 0 00-64-64zm-35.75 138.29l-134.4 160a16 16 0 01-12 5.71h-.27a16 16 0 01-11.89-5.3l-57.6-64a16 16 0 1123.78-21.4l45.29 50.32 122.59-145.91a16 16 0 0124.5 20.58z\"}}]})(props);\n};\nexport function IoCheckmarkCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 176L217.6 336 160 272\"}}]})(props);\n};\nexport function IoCheckmarkCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-38 312.38l-80.6-89.57 23.79-21.41 56 62.22L350 153.46 374.54 174z\"}}]})(props);\n};\nexport function IoCheckmarkCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm108.25 138.29l-134.4 160a16 16 0 01-12 5.71h-.27a16 16 0 01-11.89-5.3l-57.6-64a16 16 0 1123.78-21.4l45.29 50.32 122.59-145.91a16 16 0 0124.5 20.58z\"}}]})(props);\n};\nexport function IoCheckmarkDoneCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 192L256.13 320l-47.95-48m-16.23 48L144 272m161.71-80l-51.55 59\"}}]})(props);\n};\nexport function IoCheckmarkDoneCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48.19 121.42l24.1 21.06-73.61 84.1-24.1-23.06zM191.93 342.63L121.37 272 144 249.37 214.57 320zm65 .79L185.55 272l22.64-22.62 47.16 47.21 111.13-127.17 24.1 21.06z\"}}]})(props);\n};\nexport function IoCheckmarkDoneCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm-16.79 192.47l51.55-59a16 16 0 0124.1 21.06l-51.55 59a16 16 0 11-24.1-21.06zm-38.86 90.85a16 16 0 01-22.62 0l-47.95-48a16 16 0 1122.64-22.62l48 48a16 16 0 01-.07 22.62zm176.8-128.79l-111.88 128a16 16 0 01-11.51 5.47h-.54a16 16 0 01-11.32-4.69l-47.94-48a16 16 0 1122.64-22.62l29.8 29.83a8 8 0 0011.68-.39l95-108.66a16 16 0 0124.1 21.06z\"}}]})(props);\n};\nexport function IoCheckmarkDoneOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M464 128L240 384l-96-96m0 96l-96-96m320-160L232 284\"}}]})(props);\n};\nexport function IoCheckmarkDoneSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"44\",\"d\":\"M465 127L241 384l-92-92m-9 93l-93-93m316-165L236 273\"}}]})(props);\n};\nexport function IoCheckmarkDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M464 128L240 384l-96-96m0 96l-96-96m320-160L232 284\"}}]})(props);\n};\nexport function IoCheckmarkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 128L192 384l-96-96\"}}]})(props);\n};\nexport function IoCheckmarkSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"44\",\"d\":\"M416 128L192 384l-96-96\"}}]})(props);\n};\nexport function IoCheckmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 128L192 384l-96-96\"}}]})(props);\n};\nexport function IoChevronBackCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M296 352l-96-96 96-96\"}}]})(props);\n};\nexport function IoChevronBackCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm62.63 304L296 374.63 177.37 256 296 137.37 318.63 160l-96 96z\"}}]})(props);\n};\nexport function IoChevronBackCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm35.31 292.69a16 16 0 11-22.62 22.62l-96-96a16 16 0 010-22.62l96-96a16 16 0 0122.62 22.62L206.63 256z\"}}]})(props);\n};\nexport function IoChevronBackOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M328 112L184 256l144 144\"}}]})(props);\n};\nexport function IoChevronBackSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M328 112L184 256l144 144\"}}]})(props);\n};\nexport function IoChevronBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M328 112L184 256l144 144\"}}]})(props);\n};\nexport function IoChevronDownCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 216l-96 96-96-96\"}}]})(props);\n};\nexport function IoChevronDownCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-96-270.63l96 96 96-96L374.63 216 256 334.63 137.37 216z\"}}]})(props);\n};\nexport function IoChevronDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-100.69-28.69l-96 96a16 16 0 01-22.62 0l-96-96a16 16 0 0122.62-22.62L256 289.37l84.69-84.68a16 16 0 0122.62 22.62z\"}}]})(props);\n};\nexport function IoChevronDownOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 184l144 144 144-144\"}}]})(props);\n};\nexport function IoChevronDownSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M112 184l144 144 144-144\"}}]})(props);\n};\nexport function IoChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 184l144 144 144-144\"}}]})(props);\n};\nexport function IoChevronForwardCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 256c0 106 86 192 192 192s192-86 192-192S362 64 256 64 64 150 64 256z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M216 352l96-96-96-96\"}}]})(props);\n};\nexport function IoChevronForwardCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-40 326.63L193.37 352l96-96-96-96L216 137.37 334.63 256z\"}}]})(props);\n};\nexport function IoChevronForwardCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm257.37 0l-84.68-84.69a16 16 0 0122.62-22.62l96 96a16 16 0 010 22.62l-96 96a16 16 0 01-22.62-22.62z\"}}]})(props);\n};\nexport function IoChevronForwardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M184 112l144 144-144 144\"}}]})(props);\n};\nexport function IoChevronForwardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M184 112l144 144-144 144\"}}]})(props);\n};\nexport function IoChevronForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M184 112l144 144-144 144\"}}]})(props);\n};\nexport function IoChevronUpCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 296l-96-96-96 96\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\"}}]})(props);\n};\nexport function IoChevronUpCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm96 270.63l-96-96-96 96L137.37 296 256 177.37 374.63 296z\"}}]})(props);\n};\nexport function IoChevronUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm107.31 259.31a16 16 0 01-22.62 0L256 222.63l-84.69 84.68a16 16 0 01-22.62-22.62l96-96a16 16 0 0122.62 0l96 96a16 16 0 010 22.62z\"}}]})(props);\n};\nexport function IoChevronUpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 328l144-144 144 144\"}}]})(props);\n};\nexport function IoChevronUpSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M112 328l144-144 144 144\"}}]})(props);\n};\nexport function IoChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M112 328l144-144 144 144\"}}]})(props);\n};\nexport function IoClipboardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 64h32a48 48 0 0148 48v320a48 48 0 01-48 48H144a48 48 0 01-48-48V112a48 48 0 0148-48h32\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"160\",\"height\":\"64\",\"x\":\"176\",\"y\":\"32\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"26.13\",\"ry\":\"26.13\"}}]})(props);\n};\nexport function IoClipboardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420 48h-68V28a12 12 0 00-12-12H172a12 12 0 00-12 12v20H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V60a12 12 0 00-12-12zm-84.13 64H176.13V80h159.74z\"}}]})(props);\n};\nexport function IoClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 48h-11.41a8 8 0 01-7.44-5.08A42.18 42.18 0 00309.87 16H202.13a42.18 42.18 0 00-39.28 26.92 8 8 0 01-7.44 5.08H144a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V112a64 64 0 00-64-64zm-48.13 64H192.13a16 16 0 010-32h127.74a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoCloseCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 320L192 192m0 128l128-128\"}}]})(props);\n};\nexport function IoCloseCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm86.63 272L320 342.63l-64-64-64 64L169.37 320l64-64-64-64L192 169.37l64 64 64-64L342.63 192l-64 64z\"}}]})(props);\n};\nexport function IoCloseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm75.31 260.69a16 16 0 11-22.62 22.62L256 278.63l-52.69 52.68a16 16 0 01-22.62-22.62L233.37 256l-52.68-52.69a16 16 0 0122.62-22.62L256 233.37l52.69-52.68a16 16 0 0122.62 22.62L278.63 256z\"}}]})(props);\n};\nexport function IoCloseOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 368L144 144m224 0L144 368\"}}]})(props);\n};\nexport function IoCloseSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 145.49L366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49z\"}}]})(props);\n};\nexport function IoClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z\"}}]})(props);\n};\nexport function IoCloudCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.88 240.59a8 8 0 01-6.66-6.66C320.68 192.78 290.82 168 256 168c-32.37 0-53.93 21.22-62.48 43.58a7.92 7.92 0 01-6.16 5c-27.67 4.35-50.82 22.56-51.35 54.3-.52 31.53 25.51 57.11 57 57.11H326c27.5 0 50-13.72 50-44 0-27.22-22-40.41-42.12-43.4z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoCloudCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm70 280H196c-33 0-60-23-60-56 0-34.21 26-53 56-56 7.28-23.9 29.5-48 64-48 36.5 0 67.55 27.23 72 72 21.49 1.12 48 14.09 48 44 0 30.28-22.5 44-50 44z\"}}]})(props);\n};\nexport function IoCloudCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm70 280H193.05c-31.53 0-57.56-25.58-57-57.11.53-31.74 23.68-49.95 51.35-54.3a7.92 7.92 0 006.16-5C202.07 189.22 223.63 168 256 168c33.17 0 61.85 22.49 70.14 60.21a17.75 17.75 0 0013.18 13.43C357.79 246.05 376 259.21 376 284c0 30.28-22.5 44-50 44z\"}}]})(props);\n};\nexport function IoCloudDoneOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 240c-8.89-89.54-71-144-144-144-69 0-113.44 48.2-128 96-60 6-112 43.59-112 112 0 66 54 112 120 112h260c55 0 100-27.44 100-88 0-59.82-53-85.76-96-88z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M317 208L209.2 336 163 284.8\"}}]})(props);\n};\nexport function IoCloudDoneSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.25 225.36c-6.52-41.18-24.05-76.4-51.11-102.46A153.57 153.57 0 00256 80c-35.5 0-68.24 11.69-94.68 33.8a156.42 156.42 0 00-45.22 63.61c-30.26 4.81-57.45 17.18-77.38 35.37C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h260c32.37 0 60.23-8.57 80.59-24.77C499.76 388.78 512 361.39 512 328c0-61.85-48.44-95.34-97.75-102.64zm-204.63 135l-69.22-76.7 23.76-21.44 44.62 49.46 106.29-126.2 24.47 20.61z\"}}]})(props);\n};\nexport function IoCloudDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.44 227.25a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 80c-35.5 0-68.24 11.69-94.68 33.8a156.24 156.24 0 00-42 56 16 16 0 01-11.37 9.15c-27 5.62-51.07 17.34-69.18 33.87C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h260c32.37 0 60.23-8.57 80.59-24.77C499.76 388.78 512 361.39 512 328c0-57.57-42-90.58-87.56-100.75zm-95.2-8.94l-107.8 128a16 16 0 01-12 5.69h-.27a16 16 0 01-11.88-5.28l-45.9-50.87c-5.77-6.39-5.82-16.33.3-22.4a16 16 0 0123.16.63l33.9 37.58 96-114a16 16 0 1124.48 20.62z\"}}]})(props);\n};\nexport function IoCloudDownloadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 336h76c55 0 100-21.21 100-75.6s-53-73.47-96-75.6C391.11 99.74 329 48 256 48c-69 0-113.44 45.79-128 91.2-60 5.7-112 35.88-112 98.4S70 336 136 336h56m0 64.1l64 63.9 64-63.9M256 224v224.03\"}}]})(props);\n};\nexport function IoCloudDownloadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472.7 189.5c-15.76-10-36.21-16.79-58.59-19.54-6.65-39.1-24.22-72.52-51.27-97.26C334.15 46.45 296.21 32 256 32c-35.35 0-68 11.08-94.37 32a149.7 149.7 0 00-45.29 60.42c-30.67 4.32-57 14.61-76.71 30C13.7 174.83 0 203.56 0 237.6 0 305 55.92 352 136 352h104V208h32v144h124c72.64 0 116-34.24 116-91.6 0-30.05-13.59-54.57-39.3-70.9zM240 419.42L191.98 371l-22.61 23L256 480l86.63-86-22.61-23L272 419.42V352h-32v67.42z\"}}]})(props);\n};\nexport function IoCloudDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472.7 189.5c-13.26-8.43-29.83-14.56-48.08-17.93A16 16 0 01412 159.28c-7.86-34.51-24.6-64.13-49.15-86.58C334.15 46.45 296.21 32 256 32c-35.35 0-68 11.08-94.37 32a150.13 150.13 0 00-41.95 52.83A16.05 16.05 0 01108 125.8c-27.13 4.9-50.53 14.68-68.41 28.7C13.7 174.83 0 203.56 0 237.6 0 305 55.93 352 136 352h104V224.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 224v128h124c72.64 0 116-34.24 116-91.6 0-30.05-13.59-54.57-39.3-70.9zM240 425.42l-36.7-36.64a16 16 0 00-22.6 22.65l64 63.89a16 16 0 0022.6 0l64-63.89a16 16 0 00-22.6-22.65L272 425.42V352h-32z\"}}]})(props);\n};\nexport function IoCloudOfflineOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M93.72 183.25C49.49 198.05 16 233.1 16 288c0 66 54 112 120 112h184.37m147.45-22.26C485.24 363.3 496 341.61 496 312c0-59.82-53-85.76-96-88-8.89-89.54-71-144-144-144-26.16 0-48.79 6.93-67.6 18.14\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 448L64 64\"}}]})(props);\n};\nexport function IoCloudOfflineSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.37 64l22.628-22.628L470.627 448l-22.628 22.627zm-2.65 148.78C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h228.12L110.51 178.39c-28.01 5.39-53.09 17.33-71.79 34.39zm437.87 194.45C499.76 388.78 512 361.39 512 328c0-61.85-48.44-95.34-97.75-102.64-6.52-41.18-24.05-76.4-51.11-102.46A153.57 153.57 0 00256 80c-30.47 0-58.9 8.62-83.07 25l302.82 302.86c.25-.21.57-.41.84-.63z\"}}]})(props);\n};\nexport function IoCloudOffline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zM38.72 196.78C13.39 219.88 0 251.42 0 288c0 36 14.38 68.88 40.49 92.59C65.64 403.43 99.56 416 136 416h192.8a8 8 0 005.66-13.66L100.88 168.76a8 8 0 00-8-2C72 173.15 53.4 183.38 38.72 196.78zm437.87 194.45C499.76 372.78 512 345.39 512 312c0-57.57-42-90.58-87.56-100.75a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 64c-31.12 0-60.12 9-84.62 26.1a8 8 0 00-1.14 12.26L461.68 393.8a8 8 0 0010.2.93q2.43-1.68 4.71-3.5z\"}}]})(props);\n};\nexport function IoCloudOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 240c-8.89-89.54-71-144-144-144-69 0-113.44 48.2-128 96-60 6-112 43.59-112 112 0 66 54 112 120 112h260c55 0 100-27.44 100-88 0-59.82-53-85.76-96-88z\"}}]})(props);\n};\nexport function IoCloudSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 432H136c-36.44 0-70.36-12.57-95.51-35.41C14.38 372.88 0 340 0 304c0-36.58 13.39-68.12 38.72-91.22 19.93-18.19 47.12-30.56 77.38-35.37a156.42 156.42 0 0145.22-63.61C187.76 91.69 220.5 80 256 80a153.57 153.57 0 01107.14 42.9c27.06 26.06 44.59 61.28 51.11 102.46C463.56 232.66 512 266.15 512 328c0 33.39-12.24 60.78-35.41 79.23C456.23 423.43 428.37 432 396 432z\"}}]})(props);\n};\nexport function IoCloudUploadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 367.79h76c55 0 100-29.21 100-83.6s-53-81.47-96-83.6c-8.89-85.06-71-136.8-144-136.8-69 0-113.44 45.79-128 91.2-60 5.7-112 43.88-112 106.4s54 106.4 120 106.4h56\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 255.79l-64-64-64 64m64 192.42V207.79\"}}]})(props);\n};\nexport function IoCloudUploadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M473.66 210c-16.56-12.3-37.7-20.75-59.52-24-6.62-39.18-24.21-72.67-51.3-97.45-28.69-26.3-66.63-40.76-106.84-40.76-35.35 0-68 11.08-94.37 32.05a149.61 149.61 0 00-45.32 60.49c-29.94 4.6-57.12 16.68-77.39 34.55C13.46 197.33 0 227.24 0 261.39c0 34.52 14.49 66 40.79 88.76 25.12 21.69 58.94 33.64 95.21 33.64h104V230.42l-48 48-22.63-22.63L256 169.17l86.63 86.62L320 278.42l-48-48v153.37h124c31.34 0 59.91-8.8 80.45-24.77 23.26-18.1 35.55-44 35.55-74.83 0-29.94-13.26-55.61-38.34-74.19zM240 383.79h32v80.41h-32z\"}}]})(props);\n};\nexport function IoCloudUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M473.66 210c-14-10.38-31.2-18-49.36-22.11a16.11 16.11 0 01-12.19-12.22c-7.8-34.75-24.59-64.55-49.27-87.13C334.15 62.25 296.21 47.79 256 47.79c-35.35 0-68 11.08-94.37 32.05a150.07 150.07 0 00-42.06 53 16 16 0 01-11.31 8.87c-26.75 5.4-50.9 16.87-69.34 33.12C13.46 197.33 0 227.24 0 261.39c0 34.52 14.49 66 40.79 88.76 25.12 21.69 58.94 33.64 95.21 33.64h104V230.42l-36.69 36.69a16 16 0 01-23.16-.56c-5.8-6.37-5.24-16.3.85-22.39l63.69-63.68a16 16 0 0122.62 0L331 244.14c6.28 6.29 6.64 16.6.39 22.91a16 16 0 01-22.68.06L272 230.42v153.37h124c31.34 0 59.91-8.8 80.45-24.77 23.26-18.1 35.55-44 35.55-74.83 0-29.94-13.26-55.61-38.34-74.19zM240 448.21a16 16 0 1032 0v-64.42h-32z\"}}]})(props);\n};\nexport function IoCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 432H136c-36.44 0-70.36-12.57-95.51-35.41C14.38 372.88 0 340 0 304c0-36.58 13.39-68.12 38.72-91.22 18.11-16.53 42.22-28.25 69.18-33.87a16 16 0 0011.37-9.15 156.24 156.24 0 0142.05-56C187.76 91.69 220.5 80 256 80a153.57 153.57 0 01107.14 42.9c24.73 23.81 41.5 55.28 49.18 92a16 16 0 0012.12 12.39C470 237.42 512 270.43 512 328c0 33.39-12.24 60.78-35.41 79.23C456.23 423.43 428.37 432 396 432z\"}}]})(props);\n};\nexport function IoCloudyNightOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M388.31 272c47.75 0 89.77-27.77 107.69-68.92-14.21 6.18-30.9 8.61-47.38 8.61A116.31 116.31 0 01332.31 95.38c0-16.48 2.43-33.17 8.61-47.38C299.77 65.92 272 107.94 272 155.69a116.31 116.31 0 003.44 28.18\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M90.61 306.85A16.07 16.07 0 00104 293.6C116.09 220.17 169.63 176 232 176c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H106c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z\"}}]})(props);\n};\nexport function IoCloudyNightSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-29.44 12.09-54.25 35-71.74 14.55-11.13 33.41-18.87 53.2-22 6.06-36.92 21.92-68.53 46.29-92A139.82 139.82 0 01232 160c32.33 0 62.15 10.65 86.24 30.79a142.41 142.41 0 0140.83 57.05c27.18 4.48 51.59 15.68 69.56 32.08C451.77 301 464 329.82 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm41.55-260.07c26.5 6.93 50 19.32 68.65 36.34q3.89 3.56 7.47 7.34c25.41-18.4 45.47-44.92 54.33-71.38-16.24 7.07-35.31 9.85-54.15 9.85-73.42 0-115.93-42.51-115.93-115.93 0-18.84 2.78-37.91 9.85-54.15-40.41 13.53-81 53.19-92.52 98.13a162.61 162.61 0 0179.52 36.12 173 173 0 0142.78 53.68z\"}}]})(props);\n};\nexport function IoCloudyNight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-29.44 12.09-54.25 35-71.74 12.1-9.26 27.2-16.17 43.33-20.05a16 16 0 0011.81-12.21c7.15-32.54 22.25-60.49 44.33-81.75A139.82 139.82 0 01232 160c32.33 0 62.15 10.65 86.24 30.79a142.22 142.22 0 0137.65 49.54 16.06 16.06 0 0011.12 9c24 5.22 45.42 15.78 61.62 30.56C451.77 301 464 329.82 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm170.53-270.21a16.34 16.34 0 00-1.35-15.8 16 16 0 00-19.57-5.58c-10.7 4.65-24.48 7.17-39.92 7.28-55.3.4-101.38-45-101.38-100.31 0-15.75 2.48-29.84 7.18-40.76a16.3 16.3 0 00-1.85-16.33 16 16 0 00-19.1-5c-38.63 16.82-66.18 51.51-75.27 92.54a4 4 0 003.19 4.79 162.54 162.54 0 0176.31 35.59 172.58 172.58 0 0139.64 47.84 16.35 16.35 0 009.54 7.64c23.89 7.17 45.1 18.9 62.25 34.54q4.44 4.07 8.48 8.42a4 4 0 005.16.57 129.12 129.12 0 0046.69-55.43z\"}}]})(props);\n};\nexport function IoCloudyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M100.18 241.19a15.93 15.93 0 0013.37-13.25C126.6 145.59 186.34 96 256 96c64.69 0 107.79 42.36 124.92 87a16.11 16.11 0 0012.53 10.18C449.36 202.06 496 239.21 496 304c0 66-54 112-120 112H116c-55 0-100-27.44-100-88 0-54.43 43.89-80.81 84.18-86.81z\"}}]})(props);\n};\nexport function IoCloudySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 432H116c-32.37 0-60.23-8.57-80.59-24.77C12.24 388.78 0 361.39 0 328c0-61.85 48.44-95.34 97.75-102.64 6.52-41.18 24-76.4 51.11-102.46A153.57 153.57 0 01256 80c35.5 0 68.24 11.69 94.68 33.8a156.42 156.42 0 0145.22 63.61c30.26 4.81 57.45 17.18 77.38 35.36C498.61 235.88 512 267.42 512 304c0 36-14.38 68.88-40.49 92.59C446.36 419.43 412.44 432 376 432z\"}}]})(props);\n};\nexport function IoCloudy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 432H116c-32.37 0-60.23-8.57-80.59-24.77C12.24 388.78 0 361.39 0 328c0-57.57 42-90.58 87.56-100.75a16 16 0 0012.12-12.39c7.68-36.68 24.45-68.15 49.18-92A153.57 153.57 0 01256 80c35.5 0 68.24 11.69 94.68 33.8a156.24 156.24 0 0142.05 56 16 16 0 0011.37 9.16c27 5.61 51.07 17.33 69.18 33.85C498.61 235.88 512 267.42 512 304c0 36-14.38 68.88-40.49 92.59C446.36 419.43 412.44 432 376 432z\"}}]})(props);\n};\nexport function IoCodeDownloadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03\"}}]})(props);\n};\nexport function IoCodeDownloadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"42\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03\"}}]})(props);\n};\nexport function IoCodeDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"42\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03\"}}]})(props);\n};\nexport function IoCodeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112\"}}]})(props);\n};\nexport function IoCodeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M161.98 397.63L0 256l161.98-141.63 27.65 31.61L64 256l125.63 110.02-27.65 31.61zm188.04 0l-27.65-31.61L448 256 322.37 145.98l27.65-31.61L512 256 350.02 397.63z\"}}]})(props);\n};\nexport function IoCodeSlashOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112m-48-48l-96 320\"}}]})(props);\n};\nexport function IoCodeSlashSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M161.98 397.63L0 256l161.98-141.63 27.65 31.61L64 256l125.63 110.02-27.65 31.61zm188.04 0l-27.65-31.61L448 256 322.37 145.98l27.65-31.61L512 256 350.02 397.63zM222.15 442L182 430.08 289.85 70 330 81.92 222.15 442z\"}}]})(props);\n};\nexport function IoCodeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 389a20.91 20.91 0 01-13.82-5.2l-128-112a21 21 0 010-31.6l128-112a21 21 0 0127.66 31.61L63.89 256l109.94 96.19A21 21 0 01160 389zm192 0a21 21 0 01-13.84-36.81L448.11 256l-109.94-96.19a21 21 0 0127.66-31.61l128 112a21 21 0 010 31.6l-128 112A20.89 20.89 0 01352 389zm-144 48a21 21 0 01-20.12-27l96-320a21 21 0 1140.23 12l-96 320A21 21 0 01208 437z\"}}]})(props);\n};\nexport function IoCodeWorkingOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"346\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"166\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112\"}}]})(props);\n};\nexport function IoCodeWorkingSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"26\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"346\",\"cy\":\"256\",\"r\":\"26\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"166\",\"cy\":\"256\",\"r\":\"26\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"42\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112\"}}]})(props);\n};\nexport function IoCodeWorking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"26\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"346\",\"cy\":\"256\",\"r\":\"26\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"166\",\"cy\":\"256\",\"r\":\"26\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"42\",\"d\":\"M160 368L32 256l128-112m192 224l128-112-128-112\"}}]})(props);\n};\nexport function IoCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 389a20.91 20.91 0 01-13.82-5.2l-128-112a21 21 0 010-31.6l128-112a21 21 0 0127.66 31.61L63.89 256l109.94 96.19A21 21 0 01160 389zm192 0a21 21 0 01-13.84-36.81L448.11 256l-109.94-96.19a21 21 0 0127.66-31.61l128 112a21 21 0 010 31.6l-128 112A20.89 20.89 0 01352 389z\"}}]})(props);\n};\nexport function IoCogOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456.7 242.27l-26.08-4.2a8 8 0 01-6.6-6.82c-.5-3.2-1-6.41-1.7-9.51a8.08 8.08 0 013.9-8.62l23.09-12.82a8.05 8.05 0 003.9-9.92l-4-11a7.94 7.94 0 00-9.4-5l-25.89 5a8 8 0 01-8.59-4.11q-2.25-4.2-4.8-8.41a8.16 8.16 0 01.7-9.52l17.29-19.94a8 8 0 00.3-10.62l-7.49-9a7.88 7.88 0 00-10.5-1.51l-22.69 13.63a8 8 0 01-9.39-.9c-2.4-2.11-4.9-4.21-7.4-6.22a8 8 0 01-2.5-9.11l9.4-24.75A8 8 0 00365 78.77l-10.2-5.91a8 8 0 00-10.39 2.21l-16.64 20.84a7.15 7.15 0 01-8.5 2.5s-5.6-2.3-9.8-3.71A8 8 0 01304 87l.4-26.45a8.07 8.07 0 00-6.6-8.42l-11.59-2a8.07 8.07 0 00-9.1 5.61l-8.6 25.05a8 8 0 01-7.79 5.41h-9.8a8.07 8.07 0 01-7.79-5.41l-8.6-25.05a8.07 8.07 0 00-9.1-5.61l-11.59 2a8.07 8.07 0 00-6.6 8.42l.4 26.45a8 8 0 01-5.49 7.71c-2.3.9-7.3 2.81-9.7 3.71-2.8 1-6.1.2-8.8-2.91l-16.51-20.34A8 8 0 00156.75 73l-10.2 5.91a7.94 7.94 0 00-3.3 10.09l9.4 24.75a8.06 8.06 0 01-2.5 9.11c-2.5 2-5 4.11-7.4 6.22a8 8 0 01-9.39.9L111 116.14a8 8 0 00-10.5 1.51l-7.49 9a8 8 0 00.3 10.62l17.29 19.94a8 8 0 01.7 9.52q-2.55 4-4.8 8.41a8.11 8.11 0 01-8.59 4.11l-25.89-5a8 8 0 00-9.4 5l-4 11a8.05 8.05 0 003.9 9.92L85.58 213a7.94 7.94 0 013.9 8.62c-.6 3.2-1.2 6.31-1.7 9.51a8.08 8.08 0 01-6.6 6.82l-26.08 4.2a8.09 8.09 0 00-7.1 7.92v11.72a7.86 7.86 0 007.1 7.92l26.08 4.2a8 8 0 016.6 6.82c.5 3.2 1 6.41 1.7 9.51a8.08 8.08 0 01-3.9 8.62L62.49 311.7a8.05 8.05 0 00-3.9 9.92l4 11a7.94 7.94 0 009.4 5l25.89-5a8 8 0 018.59 4.11q2.25 4.2 4.8 8.41a8.16 8.16 0 01-.7 9.52l-17.29 19.96a8 8 0 00-.3 10.62l7.49 9a7.88 7.88 0 0010.5 1.51l22.69-13.63a8 8 0 019.39.9c2.4 2.11 4.9 4.21 7.4 6.22a8 8 0 012.5 9.11l-9.4 24.75a8 8 0 003.3 10.12l10.2 5.91a8 8 0 0010.39-2.21l16.79-20.64c2.1-2.6 5.5-3.7 8.2-2.6 3.4 1.4 5.7 2.2 9.9 3.61a8 8 0 015.49 7.71l-.4 26.45a8.07 8.07 0 006.6 8.42l11.59 2a8.07 8.07 0 009.1-5.61l8.6-25a8 8 0 017.79-5.41h9.8a8.07 8.07 0 017.79 5.41l8.6 25a8.07 8.07 0 009.1 5.61l11.59-2a8.07 8.07 0 006.6-8.42l-.4-26.45a8 8 0 015.49-7.71c4.2-1.41 7-2.51 9.6-3.51s5.8-1 8.3 2.1l17 20.94A8 8 0 00355 439l10.2-5.91a7.93 7.93 0 003.3-10.12l-9.4-24.75a8.08 8.08 0 012.5-9.12c2.5-2 5-4.1 7.4-6.21a8 8 0 019.39-.9L401 395.66a8 8 0 0010.5-1.51l7.49-9a8 8 0 00-.3-10.62l-17.29-19.94a8 8 0 01-.7-9.52q2.55-4.05 4.8-8.41a8.11 8.11 0 018.59-4.11l25.89 5a8 8 0 009.4-5l4-11a8.05 8.05 0 00-3.9-9.92l-23.09-12.82a7.94 7.94 0 01-3.9-8.62c.6-3.2 1.2-6.31 1.7-9.51a8.08 8.08 0 016.6-6.82l26.08-4.2a8.09 8.09 0 007.1-7.92V250a8.25 8.25 0 00-7.27-7.73zM256 112a143.82 143.82 0 01139.38 108.12A16 16 0 01379.85 240H274.61a16 16 0 01-13.91-8.09l-52.1-91.71a16 16 0 019.85-23.39A146.94 146.94 0 01256 112zM112 256a144 144 0 0143.65-103.41 16 16 0 0125.17 3.47L233.06 248a16 16 0 010 15.87l-52.67 91.7a16 16 0 01-25.18 3.36A143.94 143.94 0 01112 256zm144 144a146.9 146.9 0 01-38.19-4.95 16 16 0 01-9.76-23.44l52.58-91.55a16 16 0 0113.88-8H379.9a16 16 0 0115.52 19.88A143.84 143.84 0 01256 400z\"}}]})(props);\n};\nexport function IoCogSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 249.93a10.58 10.58 0 00-9.36-9.94L429 235.84a5.42 5.42 0 01-4.5-4.67c-.49-3.15-1-6.42-1.7-9.52a5.52 5.52 0 012.63-5.85l22.78-12.65a10.35 10.35 0 005-12.83l-3.95-10.9a10.32 10.32 0 00-12.13-6.51l-25.55 5a5.5 5.5 0 01-5.82-2.81c-1.49-2.79-3.11-5.63-4.8-8.42a5.6 5.6 0 01.44-6.5l17-19.63a10.44 10.44 0 00.39-13.77l-7.42-8.91a10.24 10.24 0 00-13.58-2l-22.37 13.43a5.39 5.39 0 01-6.39-.63c-2.47-2.17-4.95-4.26-7.37-6.19a5.45 5.45 0 01-1.72-6.21l9.26-24.4a10.35 10.35 0 00-4.31-13.07l-10.08-5.85a10.31 10.31 0 00-13.46 2.83L325 96.28a4.58 4.58 0 01-5.6 1.72c-.62-.25-5.77-2.36-9.78-3.7a5.42 5.42 0 01-3.74-5.23l.39-26.07a10.48 10.48 0 00-8.57-10.88l-11.45-2a10.45 10.45 0 00-11.75 7.17L266 82.1a5.42 5.42 0 01-5.36 3.65h-9.75a5.53 5.53 0 01-5.3-3.67l-8.46-24.67a10.46 10.46 0 00-11.77-7.25l-11.46 2a10.46 10.46 0 00-8.57 10.79l.4 26.16a5.45 5.45 0 01-3.86 5.25c-2.28.89-7.26 2.78-9.51 3.63-2 .72-4.19-.07-6-2.1l-16.26-20A10.3 10.3 0 00156.69 73l-10.06 5.83A10.36 10.36 0 00142.31 92l9.25 24.34a5.54 5.54 0 01-1.7 6.23c-2.43 2-4.92 4-7.4 6.22a5.38 5.38 0 01-6.35.64L114 115.74a10.39 10.39 0 00-13.61 2l-7.4 8.9a10.32 10.32 0 00.37 13.76l17.09 19.6a5.42 5.42 0 01.45 6.45c-1.71 2.72-3.34 5.58-4.82 8.44a5.53 5.53 0 01-5.86 2.82l-25.51-4.93a10.34 10.34 0 00-12.14 6.51l-4 10.88a10.37 10.37 0 005 12.85l22.78 12.65a5.39 5.39 0 012.65 5.92l-.23 1.24c-.53 2.8-1 5.45-1.47 8.27a5.48 5.48 0 01-4.46 4.64l-25.7 4.15A10.42 10.42 0 0048 250.16v11.58A10.26 10.26 0 0057.16 272l25.68 4.14a5.41 5.41 0 014.5 4.67c.49 3.16 1 6.42 1.7 9.52a5.52 5.52 0 01-2.63 5.85l-22.77 12.67a10.35 10.35 0 00-5 12.83l4 10.9a10.33 10.33 0 0012.13 6.51l25.55-4.95a5.5 5.5 0 015.82 2.81c1.5 2.8 3.12 5.64 4.8 8.42a5.58 5.58 0 01-.44 6.5l-17 19.64a10.41 10.41 0 00-.5 13.76l7.41 8.91a10.24 10.24 0 0013.58 2l22.37-13.43a5.39 5.39 0 016.39.63c2.48 2.17 5 4.26 7.37 6.19a5.45 5.45 0 011.72 6.21l-9.26 24.4a10.35 10.35 0 004.31 13.07l10.11 5.84a10.3 10.3 0 0013.45-2.82L187 415.92c1.39-1.73 3.6-2.5 5.24-1.84 3.47 1.44 5.8 2.25 9.93 3.63a5.44 5.44 0 013.75 5.23l-.4 26.05a10.5 10.5 0 008.57 10.88l11.45 2a10.44 10.44 0 0011.75-7.17l8.5-24.77a5.48 5.48 0 015.36-3.65h9.75a5.52 5.52 0 015.3 3.67l8.47 24.67a10.48 10.48 0 0010 7.41 9.74 9.74 0 001.78-.16l11.47-2a10.46 10.46 0 008.56-10.79l-.4-26.16a5.43 5.43 0 013.75-5.2c3.84-1.29 6.53-2.33 8.91-3.24l.6-.24c3.06-1.06 4.53.14 5.47 1.31l16.75 20.63A10.3 10.3 0 00355 439l10.07-5.83a10.35 10.35 0 004.31-13.1l-9.24-24.34a5.52 5.52 0 011.69-6.23c2.43-2 4.92-4 7.4-6.22a5.39 5.39 0 016.38-.62l22.39 13.4a10.39 10.39 0 0013.61-2l7.4-8.9a10.31 10.31 0 00-.37-13.75l-17.06-19.67a5.42 5.42 0 01-.45-6.45c1.71-2.71 3.34-5.57 4.82-8.44a5.56 5.56 0 015.86-2.82l25.48 4.97a10.34 10.34 0 0012.14-6.51l3.95-10.88a10.36 10.36 0 00-5-12.84l-22.8-12.67a5.4 5.4 0 01-2.61-5.89l.23-1.25c.53-2.8 1-5.44 1.47-8.26a5.48 5.48 0 014.46-4.64l25.7-4.14a10.43 10.43 0 009.17-10.28v-11.71zM171.59 361.27a135.12 135.12 0 01.5-210.94l60 105.61zM256 391.11a133.75 133.75 0 01-48.49-9.05L268 276.79h121.22C379.21 341.45 323.29 391.11 256 391.11zm12.06-155.9l-59.95-105.5a133.87 133.87 0 0147.89-8.82c67.29 0 123.21 49.66 133.22 114.32z\"}}]})(props);\n};\nexport function IoCog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 249.93a10.58 10.58 0 00-9.36-9.94L429 235.84a5.42 5.42 0 01-4.5-4.67c-.49-3.15-1-6.42-1.7-9.52a5.52 5.52 0 012.63-5.85l22.78-12.65a10.35 10.35 0 005-12.83l-3.95-10.9a10.32 10.32 0 00-12.13-6.51l-25.55 5a5.51 5.51 0 01-5.82-2.81c-1.49-2.79-3.11-5.63-4.8-8.42a5.6 5.6 0 01.44-6.5l17-19.64a10.42 10.42 0 00.39-13.76l-7.42-8.91a10.24 10.24 0 00-13.58-2l-22.37 13.43a5.39 5.39 0 01-6.39-.63c-2.47-2.17-5-4.26-7.37-6.19a5.45 5.45 0 01-1.72-6.21l9.26-24.4a10.35 10.35 0 00-4.31-13.07l-10.09-5.89a10.3 10.3 0 00-13.45 2.83L325 96.28a4.6 4.6 0 01-5.6 1.72c-.61-.25-5.77-2.36-9.78-3.7a5.42 5.42 0 01-3.74-5.23l.39-26.07a10.48 10.48 0 00-8.57-10.88l-11.45-2a10.45 10.45 0 00-11.75 7.17L266 82.1a5.46 5.46 0 01-5.36 3.65h-9.75a5.5 5.5 0 01-5.3-3.67l-8.46-24.67a10.46 10.46 0 00-11.77-7.25l-11.47 2a10.46 10.46 0 00-8.56 10.79l.4 26.16a5.45 5.45 0 01-3.86 5.25c-2.29.89-7.26 2.79-9.52 3.63-2 .72-4.18-.07-5.94-2.1l-16.26-20A10.3 10.3 0 00156.69 73l-10.06 5.83A10.36 10.36 0 00142.31 92l9.25 24.34a5.54 5.54 0 01-1.7 6.23c-2.43 2-4.92 4-7.4 6.22a5.38 5.38 0 01-6.35.64L114 115.74a10.4 10.4 0 00-13.61 2L93 126.63a10.31 10.31 0 00.37 13.75L110.45 160a5.42 5.42 0 01.45 6.45c-1.71 2.72-3.34 5.58-4.82 8.44a5.53 5.53 0 01-5.86 2.82l-25.51-4.93a10.34 10.34 0 00-12.14 6.51l-4 10.88a10.38 10.38 0 005 12.85l22.78 12.65a5.39 5.39 0 012.65 5.92l-.24 1.27c-.52 2.79-1 5.43-1.46 8.24a5.48 5.48 0 01-4.46 4.64l-25.69 4.15A10.42 10.42 0 0048 250.16v11.58A10.26 10.26 0 0057.16 272l25.68 4.14a5.41 5.41 0 014.5 4.67c.49 3.16 1 6.42 1.7 9.52a5.52 5.52 0 01-2.63 5.85l-22.77 12.67a10.35 10.35 0 00-5 12.83l4 10.9a10.33 10.33 0 0012.13 6.51l25.55-4.95a5.49 5.49 0 015.82 2.81c1.5 2.8 3.11 5.63 4.8 8.42a5.58 5.58 0 01-.44 6.5l-17 19.63a10.41 10.41 0 00-.5 13.77l7.41 8.91a10.23 10.23 0 0013.58 2l22.37-13.43a5.39 5.39 0 016.39.63c2.48 2.17 5 4.26 7.37 6.19a5.47 5.47 0 011.73 6.21l-9.27 24.4a10.35 10.35 0 004.31 13.07l10.11 5.84a10.3 10.3 0 0013.45-2.82L187 415.92c1.4-1.73 3.6-2.5 5.23-1.84 3.48 1.44 5.81 2.25 9.94 3.63a5.44 5.44 0 013.75 5.23l-.4 26.05a10.5 10.5 0 008.57 10.88l11.45 2a10.43 10.43 0 0011.75-7.17l8.5-24.77a5.45 5.45 0 015.36-3.65h9.75a5.49 5.49 0 015.3 3.67l8.47 24.67a10.48 10.48 0 0010 7.41 9.74 9.74 0 001.78-.16l11.47-2a10.46 10.46 0 008.56-10.79l-.4-26.16a5.43 5.43 0 013.75-5.2c3.84-1.29 6.54-2.33 8.91-3.25l.6-.23c3.1-1.07 4.6.23 5.47 1.31l16.75 20.63A10.3 10.3 0 00355 439l10.07-5.83a10.35 10.35 0 004.31-13.1l-9.24-24.34a5.52 5.52 0 011.69-6.23c2.43-2 4.92-4 7.4-6.22a5.39 5.39 0 016.38-.62l22.39 13.4a10.39 10.39 0 0013.61-2l7.4-8.9a10.31 10.31 0 00-.37-13.75l-17.06-19.67a5.42 5.42 0 01-.45-6.45c1.71-2.71 3.34-5.57 4.82-8.44a5.55 5.55 0 015.86-2.82l25.48 4.97a10.34 10.34 0 0012.14-6.51l3.95-10.88a10.37 10.37 0 00-5-12.84l-22.8-12.67a5.4 5.4 0 01-2.61-5.89l.24-1.27c.52-2.79 1-5.43 1.46-8.24a5.48 5.48 0 014.46-4.64l25.69-4.14a10.43 10.43 0 009.18-10.28v-11.71zm-282.45 94a15.8 15.8 0 01-25.47 2.66 135.06 135.06 0 01.42-181.65 15.81 15.81 0 0125.5 2.77l45.65 80.35a15.85 15.85 0 010 15.74zM256 391.11a134.75 134.75 0 01-28.31-3 15.81 15.81 0 01-10.23-23.36l46-80a15.79 15.79 0 0113.7-7.93h92.14a15.8 15.8 0 0115.1 20.53c-17.49 54.32-68.4 93.76-128.4 93.76zm7.51-163.9L218 147.07a15.81 15.81 0 0110.31-23.3 134 134 0 0127.69-2.88c60 0 110.91 39.44 128.37 93.79a15.8 15.8 0 01-15.1 20.53h-92a15.78 15.78 0 01-13.76-8z\"}}]})(props);\n};\nexport function IoColorFillOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M419.1 337.45a3.94 3.94 0 00-6.1 0c-10.5 12.4-45 46.55-45 77.66 0 27 21.5 48.89 48 48.89h0c26.5 0 48-22 48-48.89 0-31.11-34.3-65.26-44.9-77.66zM387 287.9L155.61 58.36a36 36 0 00-51 0l-5.15 5.15a36 36 0 000 51l52.89 52.89 57-57L56.33 263.2a28 28 0 00.3 40l131.2 126a28.05 28.05 0 0038.9-.1c37.8-36.6 118.3-114.5 126.7-122.9 5.8-5.8 18.2-7.1 28.7-7.1h.3a6.53 6.53 0 004.57-11.2z\"}}]})(props);\n};\nexport function IoColorFillSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 320s-64 48-64 99.84c0 33.28 28.67 60.16 64 60.16s64-27 64-60.16C480 368 416 320 416 320zM144 32l-76 76 70 70L32 280l176 184 152.8-148.3L416 304zm24 116l-39.6-41 15.88-15.89L184 132z\"}}]})(props);\n};\nexport function IoColorFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 480c-35.29 0-64-29.11-64-64.88 0-33.29 28.67-65.4 44.08-82.64 1.87-2.1 3.49-3.91 4.68-5.31a19.94 19.94 0 0130.55 0c1.13 1.31 2.63 3 4.36 4.93 15.5 17.3 44.33 49.51 44.33 83.05 0 35.74-28.71 64.85-64 64.85zm-17.77-203.36L166.89 47.22a52.1 52.1 0 00-73.6 0l-4.51 4.51a53.2 53.2 0 00-15.89 37.33A51.66 51.66 0 0088.14 126l41.51 41.5L45 252a44.52 44.52 0 00-13 32 42.81 42.81 0 0013.5 30.84l131.24 126a44 44 0 0061.08-.18l124.11-120.28a15.6 15.6 0 018.23-4.29 69.21 69.21 0 0111.93-.86h.3a22.53 22.53 0 0015.84-38.59zM152.29 144.85l-41.53-41.52a20 20 0 010-28.34l5.16-5.15a20.07 20.07 0 0128.39 0L186 111.21z\"}}]})(props);\n};\nexport function IoColorFilterOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"184\",\"r\":\"120\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"344\",\"cy\":\"328\",\"r\":\"120\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"328\",\"r\":\"120\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoColorFilterSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 185a167.85 167.85 0 01134.9-18.28C382.36 99.83 325.12 48 256 48S129.64 99.83 121.1 166.67A167.85 167.85 0 01256 185zm80 146.73a167.51 167.51 0 01-52.37 118.08A135 135 0 00344 464c75 0 136-61 136-136a136 136 0 00-59.06-112.08A168.53 168.53 0 01336 331.73zm-52.42-125.54a167.87 167.87 0 0149.36 89.89 136.14 136.14 0 0058.06-95.7 135.87 135.87 0 00-107.43 5.81zM176.05 331.73a168.53 168.53 0 01-85-115.81A136 136 0 0032 328c0 75 61 136 136 136a135 135 0 0060.42-14.19 167.51 167.51 0 01-52.37-118.08zm3.01-35.65a167.87 167.87 0 0149.36-89.89A135.87 135.87 0 00121 200.38a136.14 136.14 0 0058.06 95.7zm123.84 49.25a168.22 168.22 0 01-93.8 0A135.9 135.9 0 00256 431.6a135.9 135.9 0 0046.9-86.27zM209 311.62a136 136 0 0094 0 135.93 135.93 0 00-47-87.22 135.93 135.93 0 00-47 87.22z\"}}]})(props);\n};\nexport function IoColorFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M253.72 202.53a4 4 0 004.56 0 151.88 151.88 0 01128.44-20.41 4 4 0 005.15-4C388.8 105.86 329 48 256 48s-132.8 57.86-135.87 130.15a4 4 0 005.15 4 151.88 151.88 0 01128.44 20.41zm151.59 10.03a152.53 152.53 0 01-83.08 108.23 4 4 0 00-2.28 3.69c0 1.17.05 2.34.05 3.52a151.58 151.58 0 01-47.15 109.94 4 4 0 00.64 6.31A135.24 135.24 0 00344 464c72.07 0 134.1-60.28 136-132.34a136.07 136.07 0 00-68.76-121.87 4 4 0 00-5.93 2.77z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M390.57 203.67a4 4 0 00-2.69-4.4 135.84 135.84 0 00-114.4 12.49 4 4 0 00-.64 6.29 151.92 151.92 0 0144.47 81.4 4 4 0 005.94 2.72 136.29 136.29 0 0067.32-98.5zM192 328c0-1.18 0-2.35.05-3.52a4 4 0 00-2.28-3.69 152.53 152.53 0 01-83.08-108.23 4 4 0 00-5.88-2.77 136.07 136.07 0 00-68.76 121.87C34 403.72 96 464 168.05 464a135.24 135.24 0 0070.46-19.75 4 4 0 00.64-6.31A151.58 151.58 0 01192 328z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M168 192a135.34 135.34 0 00-43.88 7.27 4 4 0 00-2.69 4.4 136.29 136.29 0 0067.32 98.5 4 4 0 005.94-2.72 151.92 151.92 0 0144.47-81.4 4 4 0 00-.64-6.29A135.18 135.18 0 00168 192zm88 144a151.44 151.44 0 01-42.72-6.12 4 4 0 00-5.15 4 135.69 135.69 0 0045.18 95.4 4 4 0 005.38 0 135.69 135.69 0 0045.18-95.4 4 4 0 00-5.15-4A151.44 151.44 0 01256 336zm46.57-27.67a135.94 135.94 0 00-43.87-81.58 4.06 4.06 0 00-5.4 0 135.94 135.94 0 00-43.87 81.58 4 4 0 002.69 4.4 136.06 136.06 0 0087.76 0 4 4 0 002.69-4.4z\"}}]})(props);\n};\nexport function IoColorPaletteOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M430.11 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 11.99-36.6.1-47.7z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"144\",\"cy\":\"208\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"152\",\"cy\":\"311\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"224\",\"cy\":\"144\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"367\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"328\",\"cy\":\"144\",\"r\":\"32\"}}]})(props);\n};\nexport function IoColorPaletteSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 352c-12.6-.84-21-4-28-12-14-16-14-36 5.49-52.48l32.82-29.14c50.27-44.41 50.27-117.21 0-161.63C389.26 64.14 339.54 48 287.86 48c-60.34 0-123.39 22-172 65.11-90.46 80-90.46 210.92 0 290.87 45 39.76 105.63 59.59 165.64 60h1.84c60 0 119.07-19.5 161.2-56.77C464 390 464 385 444.62 355.56 440 348 431 353 416 352zM112 208a32 32 0 1132 32 32 32 0 01-32-32zm40 135a32 32 0 1132-32 32 32 0 01-32 32zm40-199a32 32 0 1132 32 32 32 0 01-32-32zm64 271a48 48 0 1148-48 48 48 0 01-48 48zm72-239a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoColorPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441 336.2l-.06-.05c-9.93-9.18-22.78-11.34-32.16-12.92l-.69-.12c-9.05-1.49-10.48-2.5-14.58-6.17-2.44-2.17-5.35-5.65-5.35-9.94s2.91-7.77 5.34-9.94l30.28-26.87c25.92-22.91 40.2-53.66 40.2-86.59s-14.25-63.68-40.2-86.6c-35.89-31.59-85-49-138.37-49C223.72 48 162 71.37 116 112.11c-43.87 38.77-68 90.71-68 146.24s24.16 107.47 68 146.23c21.75 19.24 47.49 34.18 76.52 44.42a266.17 266.17 0 0086.87 15h1.81c61 0 119.09-20.57 159.39-56.4 9.7-8.56 15.15-20.83 15.34-34.56.21-14.17-5.37-27.95-14.93-36.84zM112 208a32 32 0 1132 32 32 32 0 01-32-32zm40 135a32 32 0 1132-32 32 32 0 01-32 32zm40-199a32 32 0 1132 32 32 32 0 01-32-32zm64 271a48 48 0 1148-48 48 48 0 01-48 48zm72-239a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoColorWandOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"63.03\",\"height\":\"378.2\",\"x\":\"280.48\",\"y\":\"122.9\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"31.52\",\"transform\":\"rotate(-45 312.002 311.994)\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M178.38 178.38a31.64 31.64 0 000 44.75L223.25 268 268 223.25l-44.87-44.87a31.64 31.64 0 00-44.75 0z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M48 192h48M90.18 90.18l33.94 33.94M192 48v48m101.82-5.82l-33.94 33.94M124.12 259.88l-33.94 33.94\"}}]})(props);\n};\nexport function IoColorWandSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M133.441 200.647l67.197-67.196 78.142 78.142-67.196 67.196zM301.41 234.21l-67.19 67.2L412 480l68-68-178.59-177.79zM32 176h80v32H32zm35.624-85.75l22.627-22.628 56.569 56.569-22.627 22.627zM176 32h32v80h-32zm61.32 92.195l56.569-56.569 22.627 22.627-56.569 56.569zM67.62 293.887l56.569-56.569 22.627 22.627-56.569 56.569z\"}}]})(props);\n};\nexport function IoColorWand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 208H48c-8.8 0-16-7.2-16-16s7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16zm28.1-67.9c-4.2 0-8.3-1.7-11.3-4.7l-33.9-33.9c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l33.9 33.9c6.3 6.2 6.3 16.4 0 22.6-3 3-7 4.7-11.3 4.7zM192 112c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16s16 7.2 16 16v48c0 8.8-7.2 16-16 16zm67.9 28.1c-8.8 0-16-7.2-16-16 0-4.2 1.7-8.3 4.7-11.3l33.9-33.9c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6l-33.9 33.9c-3 3-7.1 4.7-11.3 4.7zM90.2 309.8c-8.8 0-16-7.2-16-16 0-4.2 1.7-8.3 4.7-11.3l33.9-33.9c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-33.9 33.9c-3 3-7.1 4.7-11.3 4.7zm144-142.8c-18.4-18.7-48.5-19-67.2-.7s-19 48.5-.7 67.2l.7.7 39.5 39.5c3.1 3.1 8.2 3.1 11.3 0l55.9-55.9c3.1-3.1 3.1-8.2 0-11.3L234.2 167zM457 389.8L307.6 240.4c-3.1-3.1-8.2-3.1-11.3 0l-55.9 55.9c-3.1 3.1-3.1 8.2 0 11.3L389.8 457c18.4 18.7 48.5 19 67.2.7 18.7-18.4 19-48.5.7-67.2-.2-.2-.4-.5-.7-.7z\"}}]})(props);\n};\nexport function IoCompassOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M350.67 150.93l-117.2 46.88a64 64 0 00-35.66 35.66l-46.88 117.2a8 8 0 0010.4 10.4l117.2-46.88a64 64 0 0035.66-35.66l46.88-117.2a8 8 0 00-10.4-10.4zM256 280a24 24 0 1124-24 24 24 0 01-24 24z\"}}]})(props);\n};\nexport function IoCompassSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48 256l-160 64 64-160 160-64z\"}}]})(props);\n};\nexport function IoCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm105.07 113.33l-46.88 117.2a64 64 0 01-35.66 35.66l-117.2 46.88a8 8 0 01-10.4-10.4l46.88-117.2a64 64 0 0135.66-35.66l117.2-46.88a8 8 0 0110.4 10.4z\"}}]})(props);\n};\nexport function IoConstructOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M436.67 184.11a27.17 27.17 0 01-38.3 0l-22.48-22.49a27.15 27.15 0 010-38.29l50.89-50.89a.85.85 0 00-.26-1.38C393.68 57 351.09 64.15 324.05 91c-25.88 25.69-27.35 64.27-17.87 98a27 27 0 01-7.67 27.14l-173 160.76a40.76 40.76 0 1057.57 57.54l162.15-173.3a27 27 0 0126.77-7.7c33.46 8.94 71.49 7.26 97.07-17.94 27.49-27.08 33.42-74.94 20.1-102.33a.85.85 0 00-1.36-.22z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M224 284c-17.48-17-25.49-24.91-31-30.29a18.24 18.24 0 01-3.33-21.35 20.76 20.76 0 013.5-4.62l15.68-15.29a18.66 18.66 0 015.63-3.87 18.11 18.11 0 0120 3.62c5.45 5.29 15.43 15 33.41 32.52m49.18 46.58c40.95 38.1 90.62 83.27 110 99.41a13.46 13.46 0 01.94 19.92L394.63 444a14 14 0 01-20.29-.76c-16.53-19.18-61.09-67.11-99.27-107\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M17.34 193.5l29.41-28.74a4.71 4.71 0 013.41-1.35 4.85 4.85 0 013.41 1.35h0a9.86 9.86 0 008.19 2.77c3.83-.42 7.92-1.6 10.57-4.12 6-5.8-.94-17.23 4.34-24.54a207 207 0 0119.78-22.6c6-5.88 29.84-28.32 69.9-44.45A107.31 107.31 0 01206.67 64c22.59 0 40 10 46.26 15.67a89.54 89.54 0 0110.28 11.64 78.92 78.92 0 00-9.21-2.77 68.82 68.82 0 00-20-1.26c-13.33 1.09-29.41 7.26-38 14-13.9 11-19.87 25.72-20.81 44.71-.68 14.12 2.72 22.1 36.1 55.49a6.6 6.6 0 01-.34 9.16l-18.22 18a6.88 6.88 0 01-9.54.09c-21.94-21.94-36.65-33.09-45-38.16s-15.07-6.5-18.3-6.85a30.85 30.85 0 00-18.27 3.87 11.39 11.39 0 00-2.64 2 14.14 14.14 0 00.42 20.08l1.71 1.6a4.63 4.63 0 010 6.64L71.73 246.6a4.71 4.71 0 01-3.41 1.4 4.86 4.86 0 01-3.41-1.35l-47.57-46.43a4.88 4.88 0 010-6.72z\"}}]})(props);\n};\nexport function IoConstructSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.14 111.38l-81.09 80.84-48.58-48.41L448.56 63c-45.22-22-108.65-22.09-146.2 15.35-35.32 35.2-39.73 90.61-22.54 134.2L99.57 391.37a12 12 0 000 17l52.27 52.11a12 12 0 0017 0l180-180.5c43.16 16.21 98 11.64 132.74-23 37.5-37.45 37.42-100.34 15.56-145.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M365.45 308.62l-71.83 72 75.53 79.92a10.88 10.88 0 0015.65.21l60-60.46a11 11 0 00-.24-15.69zM119 212c0-4.87-4-9.33-7.45-12.78l-.25-.24-1.54-1.47a1.06 1.06 0 01-.26-.8 16.16 16.16 0 019.52-2c1.27.13 5.91.9 12.4 4.91 3.38 2.09 32.63 30.23 43.93 40.7a11 11 0 00.14 15.35l7.43 7.86 65.66-65.17-8.25-7.84a10.87 10.87 0 00-15.31-.06c-23-24.68-29-35.45-31-42.45-4.42-15.47 4.14-28 14-36 5.84-4.62 17.88-8.08 29-9a52.72 52.72 0 0111.61.6c3.47.5 6.3 1.14 7.39 1.4a68.51 68.51 0 0111 4l12-19a88.38 88.38 0 00-13.4-17.7 115.05 115.05 0 00-5.19-5.1c-7.78-7.15-28-19.2-54.59-19.2a117.38 117.38 0 00-44.77 8.82c-37.44 15.34-61.88 36.25-73.11 47.35l-.07.07A219.55 219.55 0 0067 128.56c-5.35 7.53-4.77 15.84-4.38 21.34 0 .32 0 .67.07 1a18.41 18.41 0 00-10.78-3.5A18 18 0 0039 152.73L2 189.62a6.79 6.79 0 000 9.6L65 262a6.72 6.72 0 009.5 0l37.06-37c3.44-3.44 7.44-8.14 7.44-13z\"}}]})(props);\n};\nexport function IoConstruct (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.58 126.2a16.85 16.85 0 00-27.07-4.55l-51.15 51.15a11.15 11.15 0 01-15.66 0l-22.48-22.48a11.17 11.17 0 010-15.67l50.88-50.89a16.85 16.85 0 00-5.27-27.4c-39.71-17-89.08-7.45-120 23.29-26.81 26.61-34.83 68-22 113.7a11 11 0 01-3.16 11.1L114.77 365.1a56.76 56.76 0 1080.14 80.18L357 272.08a11 11 0 0110.9-3.17c45 12 86 4 112.43-22 15.2-15 25.81-36.17 29.89-59.71 3.83-22.2 1.41-44.44-6.64-61z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M437.33 378.41c-13.94-11.59-43.72-38.4-74.07-66.22l-66.07 70.61c28.24 30 53.8 57.85 65 70.88l.07.08A30 30 0 00383.72 464h1.1a30.11 30.11 0 0021-8.62l.07-.07 33.43-33.37a29.46 29.46 0 00-2-43.53zM118.54 214.55a20.48 20.48 0 00-3-10.76 2.76 2.76 0 012.62-4.22h.06c.84.09 5.33.74 11.7 4.61 4.73 2.87 18.23 12.08 41.73 35.54a34.23 34.23 0 007.22 22.12l66.23-61.55a33.73 33.73 0 00-21.6-9.2 2.65 2.65 0 01-.21-.26l-.65-.69-24.54-33.84a28.45 28.45 0 01-4-26.11 35.23 35.23 0 0111.78-16.35c5.69-4.41 18.53-9.72 29.44-10.62a52.92 52.92 0 0115.19.94 65.57 65.57 0 017.06 2.13 15.46 15.46 0 002.15.63 16 16 0 0016.38-25.06c-.26-.35-1.32-1.79-2.89-3.73a91.85 91.85 0 00-9.6-10.36c-8.15-7.36-29.27-19.77-57-19.77a123.13 123.13 0 00-46.3 9c-38.37 15.45-63.47 36.58-75.01 47.79l-.09.09A222.14 222.14 0 0063.7 129.5a27 27 0 00-4.7 11.77 7.33 7.33 0 01-7.71 6.17H50.2a20.65 20.65 0 00-14.59 5.9L6.16 182.05l-.32.32a20.89 20.89 0 00-.24 28.72c.19.2.37.39.57.58L53.67 258a21 21 0 0014.65 6 20.65 20.65 0 0014.59-5.9l29.46-28.79a20.51 20.51 0 006.17-14.76z\"}}]})(props);\n};\nexport function IoContractOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 416V304h112m-101.8 10.23L432 432M208 96v112H96m101.8-10.23L80 80m336 128H304V96m10.23 101.8L432 80M96 304h112v112m-10.23-101.8L80 432\"}}]})(props);\n};\nexport function IoContractSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M304 416V304h112m-101.8 10.23L432 432M208 96v112H96m101.8-10.23L80 80m336 128H304V96m10.23 101.8L432 80M96 304h112v112m-10.23-101.8L80 432\"}}]})(props);\n};\nexport function IoContract (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 416V304h112m-101.8 10.23L432 432M208 96v112H96m101.8-10.23L80 80m336 128H304V96m10.23 101.8L432 80M96 304h112v112m-10.23-101.8L80 432\"}}]})(props);\n};\nexport function IoContrastOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c-114.88 0-208-93.12-208-208S141.12 48 256 48z\"}}]})(props);\n};\nexport function IoContrastSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zM128.72 383.28A180 180 0 01256 76v360a178.82 178.82 0 01-127.28-52.72z\"}}]})(props);\n};\nexport function IoContrast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32A224 224 0 0097.61 414.39 224 224 0 10414.39 97.61 222.53 222.53 0 00256 32zM64 256c0-105.87 86.13-192 192-192v384c-105.87 0-192-86.13-192-192z\"}}]})(props);\n};\nexport function IoCopyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"336\",\"height\":\"336\",\"x\":\"128\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"57\",\"ry\":\"57\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24\"}}]})(props);\n};\nexport function IoCopySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 480H136a24 24 0 01-24-24V128a16 16 0 0116-16h328a24 24 0 0124 24v320a24 24 0 01-24 24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M112 80h288V56a24 24 0 00-24-24H60a28 28 0 00-28 28v316a24 24 0 0024 24h24V112a32 32 0 0132-32z\"}}]})(props);\n};\nexport function IoCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 480H184a72 72 0 01-72-72V184a72 72 0 0172-72h224a72 72 0 0172 72v224a72 72 0 01-72 72z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M160 80h235.88A72.12 72.12 0 00328 32H104a72 72 0 00-72 72v224a72.12 72.12 0 0048 67.88V160a80 80 0 0180-80z\"}}]})(props);\n};\nexport function IoCreateOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z\"}}]})(props);\n};\nexport function IoCreateSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.37 49.2a22.07 22.07 0 00-31.88-.76l-18.31 18.25 31.18 31.1 18-17.91a22.16 22.16 0 001.01-30.68zM252.76 336H176v-76.76l9.4-9.38L323.54 112H48v352h352V188.46L262.14 326.6l-9.38 9.4zM400 143.16l32.79-32.86-31.09-31.09L368.85 112H400v31.16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M208 304h31.49L400 143.16V112h-31.15L208 272.51V304z\"}}]})(props);\n};\nexport function IoCreate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M386.34 193.66L264.45 315.79A41.08 41.08 0 01247.58 326l-25.9 8.67a35.92 35.92 0 01-44.33-44.33l8.67-25.9a41.08 41.08 0 0110.19-16.87l122.13-121.91a8 8 0 00-5.65-13.66H104a56 56 0 00-56 56v240a56 56 0 0056 56h240a56 56 0 0056-56V199.31a8 8 0 00-13.66-5.65z\"}}]})(props);\n};\nexport function IoCropOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 48v272a48 48 0 0048 48h272\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 304V192a48 48 0 00-48-48H208m160 224v96M144 144H48\"}}]})(props);\n};\nexport function IoCropSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M166 346V32h-44v90H32v44h90v224h224v90h44v-90h90v-44H166z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M346 320h44V122H192v44h154v154z\"}}]})(props);\n};\nexport function IoCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458 346H192a26 26 0 01-26-26V54a22 22 0 00-44 0v68H54a22 22 0 000 44h68v154a70.08 70.08 0 0070 70h154v68a22 22 0 0044 0v-68h68a22 22 0 000-44z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M214 166h106a26 26 0 0126 26v106a22 22 0 0044 0V192a70.08 70.08 0 00-70-70H214a22 22 0 000 44z\"}}]})(props);\n};\nexport function IoCubeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 341.37V170.61A32 32 0 00432.11 143l-152-88.46a47.94 47.94 0 00-48.24 0L79.89 143A32 32 0 0064 170.61v170.76A32 32 0 0079.89 369l152 88.46a48 48 0 0048.24 0l152-88.46A32 32 0 00448 341.37z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M69 153.99l187 110 187-110m-187 310v-200\"}}]})(props);\n};\nexport function IoCubeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 170v196.92L240 480V284L48 170zm224 310l192-113.08V170L272 284zm176-122.36zM448 144L256 32 64 144l192 112 192-112z\"}}]})(props);\n};\nexport function IoCube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.9 136.3a4 4 0 000-6.91L288.16 40.65a64.14 64.14 0 00-64.33 0L71.12 129.39a4 4 0 000 6.91L254 243.88a4 4 0 004.06 0zM54 163.51a4 4 0 00-6 3.49v173.89a48 48 0 0023.84 41.39L234 479.51a4 4 0 006-3.46V274.3a4 4 0 00-2-3.46zM272 275v201a4 4 0 006 3.46l162.15-97.23A48 48 0 00464 340.89V167a4 4 0 00-6-3.45l-184 108a4 4 0 00-2 3.45z\"}}]})(props);\n};\nexport function IoCutOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"104\",\"cy\":\"152\",\"r\":\"56\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"104\",\"cy\":\"360\",\"r\":\"56\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M157 175l-11 15 37 15s3.46-6.42 7-10z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M154.17 334.43L460 162c-2.5-6.7-28-12-64-4-29.12 6.47-121.16 29.05-159.16 56.05C205.85 236.06 227 272 192 298c-25.61 19-44.43 22.82-44.43 22.82zm190.3-56.19L295 306.67c14.23 6.74 65.54 33.27 117 36.33 14.92.89 30 .39 39-6z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"240\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoCutSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128h-48l-198.94 70.46-59.13-31.59a72.16 72.16 0 10-25.69 41.47l52.2 31.72L192 277l-43.64 26.76a71.74 71.74 0 1024.79 38L480 160zm-376.52 64a40 40 0 1140-40 40 40 0 01-40 40zm0 208a40 40 0 1140-40 40 40 0 01-40 40zm152-144a16 16 0 1116-16 16 16 0 01-16 16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M343.79 259.87l-83.74 48.18L432 368h47.99l.01-32-136.21-76.13z\"}}]})(props);\n};\nexport function IoCut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.48 224a71.64 71.64 0 0044.76-15.66l41.5 16.89 6.82-12.63a39.15 39.15 0 014.32-6.37l14.22-14.42-41.17-24.94A72 72 0 10103.48 224zm0-112a40 40 0 11-40 40 40 40 0 0140-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 169l-5.52-12.58c-4.48-10.42-14.74-16-32.78-17.85-10.12-1-26.95-1.24-49.69 3.81-20 4.45-122.14 28.2-164.95 58.62-20.25 14.39-24.06 33.67-27.06 49.16-2.78 14.14-5 25.31-18 35-15 11.14-27.27 16.38-33.58 18.6a71.74 71.74 0 1024.79 38zm-224.52 87a16 16 0 1116-16 16 16 0 01-16 16zm-152 144a40 40 0 1140-40 40 40 0 01-40 40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M343.79 259.87l-83.74 48.18 27.63 13.08 3.62 1.74C310 331.92 359.74 356 410.53 359c3.89.23 7.47.34 10.78.34C442 359.31 453 354 459.75 350L480 336z\"}}]})(props);\n};\nexport function IoDesktopOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"320\",\"x\":\"32\",\"y\":\"64\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 448l-8-64h-80l-8 64h96z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 448H144\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M32 304v48a32.09 32.09 0 0032 32h384a32.09 32.09 0 0032-32v-48zm224 64a16 16 0 1116-16 16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoDesktopSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 48H32a16 16 0 00-16 16v320a16 16 0 0016 16h168v32h-72v32h256v-32h-72v-32h168a16 16 0 0016-16V64a16 16 0 00-16-16zm-20 36v216H52V84zM240.13 354.08a16 16 0 1113.79 13.79 16 16 0 01-13.79-13.79z\"}}]})(props);\n};\nexport function IoDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 352a48.05 48.05 0 0048 48h133.88l-4 32H144a16 16 0 000 32h224a16 16 0 000-32h-49.88l-4-32H448a48.05 48.05 0 0048-48v-48H16zm240-16a16 16 0 11-16 16 16 16 0 0116-16zM496 96a48.05 48.05 0 00-48-48H64a48.05 48.05 0 00-48 48v192h480z\"}}]})(props);\n};\nexport function IoDiamondOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M35.42 188.21l207.75 269.46a16.17 16.17 0 0025.66 0l207.75-269.46a16.52 16.52 0 00.95-18.75L407.06 55.71A16.22 16.22 0 00393.27 48H118.73a16.22 16.22 0 00-13.79 7.71L34.47 169.46a16.52 16.52 0 00.95 18.75zM48 176h416\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 64l-48 112-96-128M112 64l48 112 96-128m0 400l-96-272m96 272l96-272\"}}]})(props);\n};\nexport function IoDiamondSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396.31 32H264l84.19 112.26L396.31 32zm-280.62 0l48.12 112.26L248 32H115.69zM256 74.67L192 160h128l-64-85.33zm166.95-23.61L376.26 160H488L422.95 51.06zm-333.9 0L23 160h112.74L89.05 51.06zM146.68 192H24l222.8 288h.53L146.68 192zm218.64 0L264.67 480h.53L488 192H365.32zm-35.93 0H182.61L256 400l73.39-208z\"}}]})(props);\n};\nexport function IoDiamond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121.72 32a4 4 0 00-3.72 5.56l2.3 5.43 40.7 94.9a4 4 0 006.88.82L243 38.4a4 4 0 00-3.2-6.4zm298.21 26.06l-41.28 96.37a4 4 0 003.68 5.57h101a4 4 0 003.4-6.11L427 57.53a4 4 0 00-7.07.53zM85 57.57l-59.71 96.32a4 4 0 003.4 6.11h101a4 4 0 003.67-5.58L92 58.1a4 4 0 00-7-.53zM393.27 32H267.82a1.94 1.94 0 00-1.56 3.11l79.92 106.46a1.94 1.94 0 003.34-.4L391.6 43l3.4-8.34a1.92 1.92 0 00-1.7-2.66zM239 448l-89.43-253.49A3.78 3.78 0 00146 192H25.7a3.72 3.72 0 00-2.95 6l216 279.81a5.06 5.06 0 006.39 1.37 5 5 0 002.39-6.08zm247.3-256H366a3.75 3.75 0 00-3.54 2.51l-98.2 278.16a5.21 5.21 0 002.42 6.31 5.22 5.22 0 006.61-1.39L489.25 198a3.72 3.72 0 00-2.95-6zM259.2 78.93l56 74.67a4 4 0 01-3.2 6.4H200a4 4 0 01-3.2-6.4l56-74.67a4 4 0 016.4 0zm-7 310.31l-67.7-191.91a4 4 0 013.77-5.33h135.46a4 4 0 013.77 5.33l-67.73 191.91a4 4 0 01-7.54 0z\"}}]})(props);\n};\nexport function IoDiceOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 341.37V170.61A32 32 0 00432.11 143l-152-88.46a47.94 47.94 0 00-48.24 0L79.89 143A32 32 0 0064 170.61v170.76A32 32 0 0079.89 369l152 88.46a48 48 0 0048.24 0l152-88.46A32 32 0 00448 341.37z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M69 153.99l187 110 187-110m-187 310v-200\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256\",\"cy\":\"152\",\"rx\":\"24\",\"ry\":\"16\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"208\",\"cy\":\"296\",\"rx\":\"16\",\"ry\":\"24\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"112\",\"cy\":\"328\",\"rx\":\"16\",\"ry\":\"24\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"304\",\"cy\":\"296\",\"rx\":\"16\",\"ry\":\"24\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"400\",\"cy\":\"240\",\"rx\":\"16\",\"ry\":\"24\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"304\",\"cy\":\"384\",\"rx\":\"16\",\"ry\":\"24\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"400\",\"cy\":\"328\",\"rx\":\"16\",\"ry\":\"24\"}}]})(props);\n};\nexport function IoDiceSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 366.92L240 480V284L48 170zM192 288c8.84 0 16 10.75 16 24s-7.16 24-16 24-16-10.75-16-24 7.16-24 16-24zm-96 32c8.84 0 16 10.75 16 24s-7.16 24-16 24-16-10.75-16-24 7.16-24 16-24zm176-36v196l192-113.08V170zm48 140c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96 32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm32 77.64zM256 32L64 144l192 112 192-112zm0 120c-13.25 0-24-7.16-24-16s10.75-16 24-16 24 7.16 24 16-10.75 16-24 16z\"}}]})(props);\n};\nexport function IoDice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.88 129.37L288.16 40.62a64.14 64.14 0 00-64.33 0L71.12 129.37a4 4 0 000 6.9L254 243.85a4 4 0 004.06 0L440.9 136.27a4 4 0 00-.02-6.9zM256 152c-13.25 0-24-7.16-24-16s10.75-16 24-16 24 7.16 24 16-10.75 16-24 16zm-18 118.81L54 163.48a4 4 0 00-6 3.46v173.92a48 48 0 0023.84 41.39L234 479.48a4 4 0 006-3.46V274.27a4 4 0 00-2-3.46zM96 368c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96-32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm266-172.49L274 271.56a4 4 0 00-2 3.45V476a4 4 0 006 3.46l162.15-97.23A48 48 0 00464 340.86V167a4 4 0 00-6-3.49zM320 424c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96 32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24z\"}}]})(props);\n};\nexport function IoDiscOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"96\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"32\"}}]})(props);\n};\nexport function IoDiscSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 336a80 80 0 1180-80 80.09 80.09 0 01-80 80z\"}}]})(props);\n};\nexport function IoDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 176a80 80 0 1080 80 80.09 80.09 0 00-80-80zm0 112a32 32 0 1132-32 32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 368a112 112 0 11112-112 112.12 112.12 0 01-112 112z\"}}]})(props);\n};\nexport function IoDocumentAttachOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M208 64h66.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62V432a48 48 0 01-48 48H192a48 48 0 01-48-48V304\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M288 72v120a32 32 0 0032 32h120\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M160 80v152a23.69 23.69 0 01-24 24c-12 0-24-9.1-24-24V88c0-30.59 16.57-56 48-56s48 24.8 48 55.38v138.75c0 43-27.82 77.87-72 77.87s-72-34.86-72-77.87V144\"}}]})(props);\n};\nexport function IoDocumentAttachSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 240a8 8 0 01-8-8V48h-57.25a65.42 65.42 0 00-6.5-9.81C196.72 23.88 179.59 16 160 16c-37.68 0-64 29.61-64 72v144c0 25 20.34 40 40 40a39.57 39.57 0 0040-40V80h-32v152a7.75 7.75 0 01-8 8c-2.23 0-8-1.44-8-8V88c0-19.34 8.41-40 32-40 29.69 0 32 30.15 32 39.38v138.75c0 17.45-5.47 33.23-15.41 44.46C166.5 282 152.47 288 136 288s-30.5-6-40.59-17.41C85.47 259.36 80 243.58 80 226.13V144H48v82.13c0 51.51 33.19 89.63 80 93.53V468a12 12 0 0012 12h312a12 12 0 0012-12V240z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M308 208h146.31a2 2 0 001.42-3.41L307.41 56.27a2 2 0 00-3.41 1.42V204a4 4 0 004 4z\"}}]})(props);\n};\nexport function IoDocumentAttach (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460 240H320a48 48 0 01-48-48V52a4 4 0 00-4-4h-53.25a65.42 65.42 0 00-6.5-9.81C196.72 23.88 179.59 16 160 16c-37.68 0-64 29.61-64 72v144c0 25 20.34 40 40 40a39.57 39.57 0 0040-40V80a16 16 0 00-32 0v152a7.75 7.75 0 01-8 8c-2.23 0-8-1.44-8-8V88c0-19.34 8.41-40 32-40 29.69 0 32 30.15 32 39.38v138.75c0 17.45-5.47 33.23-15.41 44.46C166.5 282 152.47 288 136 288s-30.5-6-40.59-17.41C85.47 259.36 80 243.58 80 226.13V144a16 16 0 00-32 0v82.13c0 51.51 33.19 89.63 80 93.53V432a64 64 0 0064 64h208a64 64 0 0064-64V244a4 4 0 00-4-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 208h129.81a2 2 0 001.41-3.41L307.41 60.78a2 2 0 00-3.41 1.41V192a16 16 0 0016 16z\"}}]})(props);\n};\nexport function IoDocumentLockOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M288 304v-18c0-16.63-14.26-30-32-30s-32 13.37-32 30v18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304 416h-96a32 32 0 01-32-32v-48a32 32 0 0132-32h96a32 32 0 0132 32v48a32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 50.88V176a32 32 0 0032 32h125.12\"}}]})(props);\n};\nexport function IoDocumentLockSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M276 192h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42V188a4 4 0 004 4zm-20 80c-8.82 0-16 6.28-16 14v18h32v-18c0-7.72-7.18-14-16-14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M248 224a8 8 0 01-8-8V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224zm88 175.91A16.1 16.1 0 01319.91 416H192.09A16.1 16.1 0 01176 399.91V320c0-10 7-16 16-16h16v-18c0-25.36 21.53-46 48-46s48 20.64 48 46v18h16a15.8 15.8 0 0116 16z\"}}]})(props);\n};\nexport function IoDocumentLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 192h129.81a2 2 0 001.41-3.41L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16zm-32 80c-8.82 0-16 6.28-16 14v18h32v-18c0-7.72-7.18-14-16-14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4zm-92 160a32 32 0 01-32 32h-96a32 32 0 01-32-32v-48a32 32 0 0132-32v-18c0-25.36 21.53-46 48-46s48 20.64 48 46v18a32 32 0 0132 32z\"}}]})(props);\n};\nexport function IoDocumentOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 56v120a32 32 0 0032 32h120\"}}]})(props);\n};\nexport function IoDocumentSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 216V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224H248a8 8 0 01-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M272 41.69V188a4 4 0 004 4h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42z\"}}]})(props);\n};\nexport function IoDocumentTextOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 56v120a32 32 0 0032 32h120m-232 80h160m-160 80h160\"}}]})(props);\n};\nexport function IoDocumentTextSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 41.69V188a4 4 0 004 4h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M248 224a8 8 0 01-8-8V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224zm104 160H160v-32h192zm0-80H160v-32h192z\"}}]})(props);\n};\nexport function IoDocumentText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4zm-92 160H176a16 16 0 010-32h160a16 16 0 010 32zm0-80H176a16 16 0 010-32h160a16 16 0 010 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M419.22 188.59L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16h129.81a2 2 0 001.41-3.41z\"}}]})(props);\n};\nexport function IoDocument (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M419.22 188.59L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16h129.81a2 2 0 001.41-3.41z\"}}]})(props);\n};\nexport function IoDocumentsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 264.13V436c0 24.3-19.05 44-42.95 44H107c-23.95 0-43-19.7-43-44V172a44.26 44.26 0 0144-44h94.12a24.55 24.55 0 0117.49 7.36l109.15 111a25.4 25.4 0 017.24 17.77z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M200 128v108a28.34 28.34 0 0028 28h108\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 128V76a44.26 44.26 0 0144-44h94a24.83 24.83 0 0117.61 7.36l109.15 111A25.09 25.09 0 01448 168v172c0 24.3-19.05 44-42.95 44H344\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M312 32v108a28.34 28.34 0 0028 28h108\"}}]})(props);\n};\nexport function IoDocumentsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M307.94 248L216 154.52V242a6 6 0 006 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M184 268V144H60a12 12 0 00-12 12v328a12 12 0 0012 12h248a12 12 0 0012-12V280H196a12 12 0 01-12-12zm182-148h85.94L360 26.52V114a6 6 0 006 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M340 152a12 12 0 01-12-12V16H172a12 12 0 00-12 12v84h42.12A40.81 40.81 0 01231 124.14l109.16 111a41.11 41.11 0 0111.83 29V400H452a12 12 0 0012-12V152z\"}}]})(props);\n};\nexport function IoDocuments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.39 248a4 4 0 002.86-6.8l-78.4-79.72a4 4 0 00-6.85 2.81V236a12 12 0 0012 12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M197 267a43.67 43.67 0 01-13-31v-92h-72a64.19 64.19 0 00-64 64v224a64 64 0 0064 64h144a64 64 0 0064-64V280h-92a43.61 43.61 0 01-31-13zm175-147h70.39a4 4 0 002.86-6.8l-78.4-79.72a4 4 0 00-6.85 2.81V108a12 12 0 0012 12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M372 152a44.34 44.34 0 01-44-44V16H220a60.07 60.07 0 00-60 60v36h42.12A40.81 40.81 0 01231 124.14l109.16 111a41.11 41.11 0 0111.83 29V400h53.05c32.51 0 58.95-26.92 58.95-60V152z\"}}]})(props);\n};\nexport function IoDownloadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 176h40a40 40 0 0140 40v208a40 40 0 01-40 40H136a40 40 0 01-40-40V216a40 40 0 0140-40h40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 272l80 80 80-80M256 48v288\"}}]})(props);\n};\nexport function IoDownloadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 160v147.37l64-64L358.63 266 256 368.63 153.37 266 176 243.37l64 64V160H92a12 12 0 00-12 12v296a12 12 0 0012 12h328a12 12 0 0012-12V172a12 12 0 00-12-12zM240 32h32v128h-32z\"}}]})(props);\n};\nexport function IoDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 160H272v153.37l52.69-52.68a16 16 0 0122.62 22.62l-80 80a16 16 0 01-22.62 0l-80-80a16 16 0 0122.62-22.62L240 313.37V160H136a56.06 56.06 0 00-56 56v208a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V216a56.06 56.06 0 00-56-56zM272 48a16 16 0 00-32 0v112h32z\"}}]})(props);\n};\nexport function IoDuplicateOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"336\",\"height\":\"336\",\"x\":\"128\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"57\",\"ry\":\"57\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24m168-168v160m80-80H216\"}}]})(props);\n};\nexport function IoDuplicateSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 80h288V56a24 24 0 00-24-24H66a34 34 0 00-34 34v310a24 24 0 0024 24h24V112a32 32 0 0132-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M456 112H136a24 24 0 00-24 24v320a24 24 0 0024 24h320a24 24 0 0024-24V136a24 24 0 00-24-24zm-64 200h-80v80h-32v-80h-80v-32h80v-80h32v80h80z\"}}]})(props);\n};\nexport function IoDuplicate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 112H184a72 72 0 00-72 72v224a72 72 0 0072 72h224a72 72 0 0072-72V184a72 72 0 00-72-72zm-32.45 200H312v63.55c0 8.61-6.62 16-15.23 16.43A16 16 0 01280 376v-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01216 280h64v-63.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01312 216v64h64a16 16 0 0116 16.77c-.42 8.61-7.84 15.23-16.45 15.23z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M395.88 80A72.12 72.12 0 00328 32H104a72 72 0 00-72 72v224a72.12 72.12 0 0048 67.88V160a80 80 0 0180-80z\"}}]})(props);\n};\nexport function IoEarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M335.72 330.76C381.73 299.5 416 251.34 416 192a160 160 0 00-320 0v206.57c0 44.26 35.74 81.43 80 81.43h0c44.26 0 66.83-25.94 77.29-40 14.77-19.81 41.71-81.56 82.43-109.24z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 304V184c0-48.4 43.2-88 96-88h0c52.8 0 96 39.6 96 88\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 239c25-18 79.82-15 79.82-15 26 0 41.17 29.42 26 50.6 0 0-36.86 42.4-41.86 61.4\"}}]})(props);\n};\nexport function IoEarSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.48 68.09C347.09 34.5 302.88 16 256 16 159 16 80 95 80 192v206.57a97.59 97.59 0 0028 68.49A94.49 94.49 0 00176 496c19.93 0 41.06-7.69 62.8-22.87a181.46 181.46 0 0025.88-21.86C327.37 390.16 432 288.06 432 192c0-46.49-18.29-90.49-51.52-123.91zM368 200h-32v-16c0-39.7-35.89-72-80-72s-80 32.3-80 72v30.41c27.5-7.84 59.89-6.62 64.26-6.41a48 48 0 0138.62 75.9c-.3.41-.61.81-.95 1.2-16.55 19-36 45.49-38.46 55l-4.07 15.47-30.94-8.14 4.07-15.47c5.51-20.94 36.93-58.2 44.66-67.15A16 16 0 00239.82 240h-.88c-10.67-.58-42.66-.25-62.12 8l-.82.35V320h-32V184c0-57.35 50.24-104 112-104s112 46.65 112 104z\"}}]})(props);\n};\nexport function IoEar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 16C159 16 80 95 80 192v206.57a97.59 97.59 0 0028 68.49A94.51 94.51 0 00176 496c36.86 0 67.18-15.62 90.12-46.42 4.48-6 9.55-14.74 15.42-24.85 15.32-26.37 36.29-62.47 63.17-80.74 25.77-17.51 47.23-39.54 62-63.72C423.51 252.94 432 223.24 432 192c0-97-78.95-176-176-176zm96 184a16 16 0 01-16-16c0-39.7-35.89-72-80-72s-80 32.3-80 72v30.42c27.19-7.84 58.4-6.72 64.28-6.42a48 48 0 0138.6 75.9c-.3.41-.61.81-.95 1.2-16.55 19-36 45.48-38.46 55a16 16 0 01-30.94-8.14c5.51-20.94 36.93-58.2 44.66-67.15A16 16 0 00239.82 240h-.88c-16.6-.89-45.89.8-62.94 8.31V304a16 16 0 01-32 0V184c0-57.35 50.24-104 112-104s112 46.65 112 104a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoEarthOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M445.57 172.14c-16.06.1-14.48 29.73-34.49 15.75-7.43-5.18-12-12.71-21.33-15-8.15-2-16.5.08-24.55 1.47-9.15 1.58-20 2.29-26.94 9.22-6.71 6.67-10.26 15.62-17.4 22.33-13.81 13-19.64 27.19-10.7 45.57 8.6 17.67 26.59 27.26 46 26 19.07-1.27 38.88-12.33 38.33 15.38-.2 9.8 1.85 16.6 4.86 25.71 2.79 8.4 2.6 16.54 3.24 25.21 1.18 16.2 4.16 34.36 12.2 48.67l15-21.16c1.85-2.62 5.72-6.29 6.64-9.38 1.63-5.47-1.58-14.87-1.95-21s-.19-12.34-1.13-18.47c-1.32-8.59-6.4-16.64-7.1-25.13-1.29-15.81 1.6-28.43-10.58-41.65-11.76-12.75-29-15.81-45.47-13.22-8.3 1.3-41.71 6.64-28.3-12.33 2.65-3.73 7.28-6.79 10.26-10.34 2.59-3.09 4.84-8.77 7.88-11.18s17-5.18 21-3.95 8.17 7 11.64 9.56a49.89 49.89 0 0021.81 9.36c13.66 2 42.22-5.94 42-23.46-.04-8.4-7.84-20.1-10.92-27.96zM287.45 316.3c-5.33-22.44-35.82-29.94-52.26-42.11-9.45-7-17.86-17.81-30.27-18.69-5.72-.41-10.51.83-16.18-.64-5.2-1.34-9.28-4.14-14.82-3.41-10.35 1.36-16.88 12.42-28 10.92-10.55-1.42-21.42-13.76-23.82-23.81-3.08-12.92 7.14-17.11 18.09-18.26 4.57-.48 9.7-1 14.09.67 5.78 2.15 8.51 7.81 13.7 10.67 9.73 5.33 11.7-3.19 10.21-11.83-2.23-12.94-4.83-18.22 6.71-27.12 8-6.14 14.84-10.58 13.56-21.61-.76-6.48-4.31-9.41-1-15.86 2.51-4.91 9.4-9.34 13.89-12.27 11.59-7.56 49.65-7 34.1-28.16-4.57-6.21-13-17.31-21-18.83-10-1.89-14.44 9.27-21.41 14.19-7.2 5.09-21.22 10.87-28.43 3-9.7-10.59 6.43-14.07 10-21.46s-8.27-21.36-14.61-24.9l-29.81 33.43a41.52 41.52 0 008.34 31.86c5.93 7.63 15.37 10.08 15.8 20.5.42 10-1.14 15.12-7.68 22.15-2.83 3-4.83 7.26-7.71 10.07-3.53 3.43-2.22 2.38-7.73 3.32-10.36 1.75-19.18 4.45-29.19 7.21C95.34 199.94 93.8 172.69 86.2 162l-25 20.19c-.27 3.31 4.1 9.4 5.29 13 6.83 20.57 20.61 36.48 29.51 56.16 9.37 20.84 34.53 15.06 45.64 33.32 9.86 16.2-.67 36.71 6.71 53.67 5.36 12.31 18 15 26.72 24 8.91 9.09 8.72 21.53 10.08 33.36a305.22 305.22 0 007.45 41.28c1.21 4.69 2.32 10.89 5.53 14.76 2.2 2.66 9.75 4.95 6.7 5.83 4.26.7 11.85 4.68 15.4 1.76 4.68-3.84 3.43-15.66 4.24-21 2.43-15.9 10.39-31.45 21.13-43.35 10.61-11.74 25.15-19.69 34.11-33 8.73-12.98 11.36-30.49 7.74-45.68zm-33.39 26.32c-6 10.71-19.36 17.88-27.95 26.39-2.33 2.31-7.29 10.31-10.21 8.58-2.09-1.24-2.8-11.62-3.57-14a61.17 61.17 0 00-21.71-29.95c-3.13-2.37-10.89-5.45-12.68-8.7-2-3.53-.2-11.86-.13-15.7.11-5.6-2.44-14.91-1.06-20 1.6-5.87-1.48-2.33 3.77-3.49 2.77-.62 14.21 1.39 17.66 2.11 5.48 1.14 8.5 4.55 12.82 8 11.36 9.11 23.87 16.16 36.6 23.14 9.86 5.46 12.76 12.37 6.46 23.62zm-69.6-275.53c4.74 4.63 9.2 10.11 16.27 10.57 6.69.45 13-3.17 18.84 1.38 6.48 5 11.15 11.33 19.75 12.89 8.32 1.51 17.13-3.35 19.19-11.86 2-8.11-2.31-16.93-2.57-25.07 0-1.13.61-6.15-.17-7-.58-.64-5.42.08-6.16.1q-8.13.24-16.22 1.12a207.1 207.1 0 00-57.18 14.65c2.43 1.68 5.48 2.35 8.25 3.22zm171.94 56.18c8.49 0 17.11-3.8 14.37-13.62-2.3-8.23-6.22-17.16-15.76-12.72-6.07 2.82-14.67 10-15.38 17.12-.81 8.08 11.11 9.22 16.77 9.22zm-6.78 42.97c8.67 5.19 21.53 2.75 28.07-4.66 5.11-5.8 8.12-15.87 17.31-15.86a15.4 15.4 0 0110.82 4.41c3.8 3.93 3.05 7.62 3.86 12.54 1.81 11.05 13.66.63 16.75-3.65 2-2.79 4.71-6.93 3.8-10.56-.84-3.39-4.8-7-6.56-10.11-5.14-9-9.37-19.47-17.07-26.74-7.41-7-16.52-6.19-23.55 1.08-5.76 6-12.45 10.75-16.39 18.05-2.78 5.13-5.91 7.58-11.54 8.91-3.1.73-6.64 1-9.24 3.08-7.24 5.7-3.12 19.39 3.74 23.51z\"}}]})(props);\n};\nexport function IoEarthSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267 474l-.8-.13a.85.85 0 00.8.13zm181.9-286.22a5.51 5.51 0 00-10.67-.63A5.52 5.52 0 01433 191h-15.47a5.48 5.48 0 01-2.84-.79l-22.38-13.42a5.48 5.48 0 00-2.84-.79h-35.8a5.48 5.48 0 00-3.06.93l-44.15 29.43A5.52 5.52 0 00304 211v41.74a5.51 5.51 0 002.92 4.87l57.89 30.9a5.55 5.55 0 012.92 4.8l.27 23.49a5.53 5.53 0 002.85 4.75l23.26 12.87a5.54 5.54 0 012.85 4.83v48.6a5.52 5.52 0 009.17 4.14c9.38-8.26 22.83-20.32 24.62-23.08q4.44-6.87 8.33-14.07a207.39 207.39 0 0013.6-31c12.68-36.71 2.66-102.7-3.78-136.06zM286.4 302.8l-61.33-46a4 4 0 00-2.4-.8h-29.1a3.78 3.78 0 01-2.68-1.11l-13.72-13.72a4 4 0 00-2.83-1.17h-53.19a3.79 3.79 0 01-2.68-6.47l8.42-8.42a3.78 3.78 0 012.68-1.11h32.37a8 8 0 007.7-5.83l6.89-24.5a4 4 0 012-2.47L206 177.06a3.79 3.79 0 002.05-3.37v-12.5a3.82 3.82 0 01.68-2.17l14.6-21.02a3.75 3.75 0 011.78-1.38l20.43-7.67a3.79 3.79 0 002.46-3.55V114a3.8 3.8 0 00-1.69-3.16l-20.48-13.62A3.83 3.83 0 00222 97l-27.88 13.94a3.78 3.78 0 01-4-.41l-13.22-10.45a3.8 3.8 0 01.1-6l10.74-7.91a3.78 3.78 0 00-.09-6.16l-16.73-11.67a3.78 3.78 0 00-4-.22c-6.05 3.31-23.8 13.11-30.1 17.52a209.48 209.48 0 00-68.16 80c-1.82 3.76-4.07 7.59-4.29 11.72s-3.46 13.35-4.81 17.08a3.78 3.78 0 00.24 3.1l35.69 65.58a3.74 3.74 0 001.38 1.44l37.55 22.54a3.78 3.78 0 011.81 2.73l7.52 54.54a3.82 3.82 0 001.61 2.61l29.3 20.14a4 4 0 011.65 2.48l15.54 73.8a3.6 3.6 0 00.49 1.22c1.46 2.36 7.28 11 14.3 12.28-.65.18-1.23.59-1.88.78a47.63 47.63 0 015 1.16c2 .54 4 1 6 1.43 3.13.62 3.44 1.1 4.94-1.68 2-3.72 4.29-5 6-5.46a3.85 3.85 0 002.89-2.9l10.07-46.68a4 4 0 011.6-2.42l45-31.9a4 4 0 001.69-3.27V306a4 4 0 00-1.55-3.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M262 48s-3.65.21-4.39.23q-8.13.24-16.22 1.12A207.45 207.45 0 00184.21 64c2.43 1.68-1.75 3.22-1.75 3.22L189 80h35l24 12 21-12zm92.23 72.06l16.11-14a4 4 0 00-.94-6.65l-18.81-8.73a4 4 0 00-5.3 1.9l-7.75 16.21a4 4 0 001.49 5.11l10.46 6.54a4 4 0 004.74-.38zm75.41 20.61l-5.83-9c-.09-.14-.17-.28-.25-.43-1.05-2.15-9.74-19.7-17-26.51-5.45-5.15-7-3.67-7.43-2.53a3.77 3.77 0 01-1.19 1.6l-28.84 23.31a4 4 0 01-2.51.89h-14.93a4 4 0 00-2.83 1.17l-12 12a4 4 0 000 5.66l12 12a4 4 0 002.83 1.17h75.17a4 4 0 004-4.17l-.55-13.15a4 4 0 00-.64-2.01z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 72a184 184 0 11-130.1 53.9A182.77 182.77 0 01256 72m0-40C132.3 32 32 132.3 32 256s100.3 224 224 224 224-100.3 224-224S379.7 32 256 32z\"}}]})(props);\n};\nexport function IoEarth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.74A224 224 0 1097.61 414.52 224 224 0 10414.39 97.74zM64 256.13a191.63 191.63 0 016.7-50.31c7.34 15.8 18 29.45 25.25 45.66 9.37 20.84 34.53 15.06 45.64 33.32 9.86 16.21-.67 36.71 6.71 53.67 5.36 12.31 18 15 26.72 24 8.91 9.08 8.72 21.52 10.08 33.36a305.36 305.36 0 007.45 41.27c0 .1 0 .21.08.31C117.8 411.13 64 339.8 64 256.13zm192 192a193.12 193.12 0 01-32-2.68c.11-2.71.16-5.24.43-7 2.43-15.9 10.39-31.45 21.13-43.35 10.61-11.74 25.15-19.68 34.11-33 8.78-13 11.41-30.5 7.79-45.69-5.33-22.44-35.82-29.93-52.26-42.1-9.45-7-17.86-17.82-30.27-18.7-5.72-.4-10.51.83-16.18-.63-5.2-1.35-9.28-4.15-14.82-3.42-10.35 1.36-16.88 12.42-28 10.92-10.55-1.41-21.42-13.76-23.82-23.81-3.08-12.92 7.14-17.11 18.09-18.26 4.57-.48 9.7-1 14.09.68 5.78 2.14 8.51 7.8 13.7 10.66 9.73 5.34 11.7-3.19 10.21-11.83-2.23-12.94-4.83-18.21 6.71-27.12 8-6.14 14.84-10.58 13.56-21.61-.76-6.48-4.31-9.41-1-15.86 2.51-4.91 9.4-9.34 13.89-12.27 11.59-7.56 49.65-7 34.1-28.16-4.57-6.21-13-17.31-21-18.83-10-1.89-14.44 9.27-21.41 14.19-7.2 5.09-21.22 10.87-28.43 3-9.7-10.59 6.43-14.06 10-21.46 1.65-3.45 0-8.24-2.78-12.75q5.41-2.28 11-4.23a15.6 15.6 0 008 3c6.69.44 13-3.18 18.84 1.38 6.48 5 11.15 11.32 19.75 12.88 8.32 1.51 17.13-3.34 19.19-11.86 1.25-5.18 0-10.65-1.2-16a190.83 190.83 0 01105 32.21c-2-.76-4.39-.67-7.34.7-6.07 2.82-14.67 10-15.38 17.12-.81 8.08 11.11 9.22 16.77 9.22 8.5 0 17.11-3.8 14.37-13.62-1.19-4.26-2.81-8.69-5.42-11.37a193.27 193.27 0 0118 14.14c-.09.09-.18.17-.27.27-5.76 6-12.45 10.75-16.39 18.05-2.78 5.14-5.91 7.58-11.54 8.91-3.1.73-6.64 1-9.24 3.08-7.24 5.7-3.12 19.4 3.74 23.51 8.67 5.19 21.53 2.75 28.07-4.66 5.11-5.8 8.12-15.87 17.31-15.86a15.4 15.4 0 0110.82 4.41c3.8 3.94 3.05 7.62 3.86 12.54 1.43 8.74 9.14 4 13.83-.41a192.12 192.12 0 019.24 18.77c-5.16 7.43-9.26 15.53-21.67 6.87-7.43-5.19-12-12.72-21.33-15.06-8.15-2-16.5.08-24.55 1.47-9.15 1.59-20 2.29-26.94 9.22-6.71 6.68-10.26 15.62-17.4 22.33-13.81 13-19.64 27.19-10.7 45.57 8.6 17.67 26.59 27.26 46 26 19.07-1.27 38.88-12.33 38.33 15.38-.2 9.81 1.85 16.6 4.86 25.71 2.79 8.4 2.6 16.54 3.24 25.21a158 158 0 004.74 30.07A191.75 191.75 0 01256 448.13z\"}}]})(props);\n};\nexport function IoEaselOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"272\",\"x\":\"48\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 416v-64m0-272V48m144 416l-32-112M112 464l32-112\"}}]})(props);\n};\nexport function IoEaselSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M468 64H278V32h-44v32H44a12 12 0 00-12 12v280a12 12 0 0012 12h78.19L89.93 470.46l36.53 9.61L161.74 368H234v64h44v-64h71.84l31 111.7 36.83-8.57L389.05 368H468a12 12 0 0012-12V76a12 12 0 00-12-12zm-26 266H70V102h372z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M88 120h336v192H88z\"}}]})(props);\n};\nexport function IoEasel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"352\",\"height\":\"208\",\"x\":\"80\",\"y\":\"112\",\"rx\":\"12\",\"ry\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 64H272V48a16 16 0 00-32 0v16H80a48.05 48.05 0 00-48 48v208a48.05 48.05 0 0048 48h42.79l-26.17 91.6a16 16 0 1030.76 8.8L156.07 368H240v48a16 16 0 0032 0v-48h83.93l28.69 100.4a16 16 0 1030.76-8.8L389.21 368H432a48.05 48.05 0 0048-48V112a48.05 48.05 0 00-48-48zm16 256a16 16 0 01-16 16H80a16 16 0 01-16-16V112a16 16 0 0116-16h352a16 16 0 0116 16z\"}}]})(props);\n};\nexport function IoEggOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 48C192 48 96 171.69 96 286.55S160 464 256 464s160-62.59 160-177.45S320 48 256 48z\"}}]})(props);\n};\nexport function IoEggSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.39 381.05c-8.08 21.68-19.76 40.1-34.72 54.75-14.38 14.07-32.1 24.95-52.67 32.34C309.08 476 283.85 480 256 480s-53.08-4-75-11.86c-20.57-7.39-38.29-18.27-52.67-32.34-15-14.65-26.64-33.07-34.72-54.75C84.58 356.82 80 328.53 80 296.94c0-30.28 6.68-62.57 19.86-96A371 371 0 01151 111.42C195.78 53.56 241 32 256 32s62.67 22.4 105 79.42c18.33 24.71 38.87 58.34 51.17 89.54 13.18 33.41 19.86 65.7 19.86 96-.03 31.57-4.61 59.86-13.64 84.09z\"}}]})(props);\n};\nexport function IoEgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 480c-52.57 0-96.72-17.54-127.7-50.73C96.7 395.4 80 346.05 80 286.55 80 230.5 101.48 168 138.93 115 175.65 63 219.41 32 256 32s80.35 31 117.07 83C410.52 168 432 230.5 432 286.55c0 59.5-16.7 108.85-48.3 142.72C352.72 462.46 308.57 480 256 480z\"}}]})(props);\n};\nexport function IoEllipseOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"192\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoEllipseSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z\"}}]})(props);\n};\nexport function IoEllipse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z\"}}]})(props);\n};\nexport function IoEllipsisHorizontalCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"346\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"166\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoEllipsisHorizontalCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-90 234a26 26 0 1126-26 26 26 0 01-26 26zm90 0a26 26 0 1126-26 26 26 0 01-26 26zm90 0a26 26 0 1126-26 26 26 0 01-26 26z\"}}]})(props);\n};\nexport function IoEllipsisHorizontalCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"346\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"166\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoEllipsisHorizontalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"416\",\"cy\":\"256\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"96\",\"cy\":\"256\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoEllipsisHorizontalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"416\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"96\",\"cy\":\"256\",\"r\":\"48\"}}]})(props);\n};\nexport function IoEllipsisHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"416\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"96\",\"cy\":\"256\",\"r\":\"48\"}}]})(props);\n};\nexport function IoEllipsisVerticalCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"346\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"166\",\"r\":\"26\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoEllipsisVerticalCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-234-90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26z\"}}]})(props);\n};\nexport function IoEllipsisVerticalCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"346\",\"r\":\"26\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"166\",\"r\":\"26\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoEllipsisVerticalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"416\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"96\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoEllipsisVerticalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"416\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"96\",\"r\":\"48\"}}]})(props);\n};\nexport function IoEllipsisVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"416\",\"r\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"96\",\"r\":\"48\"}}]})(props);\n};\nexport function IoEnterOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 176v-40a40 40 0 0140-40h208a40 40 0 0140 40v240a40 40 0 01-40 40H216a40 40 0 01-40-40v-40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M272 336l80-80-80-80M48 256h288\"}}]})(props);\n};\nexport function IoEnterSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 240h147.37l-64-64L266 153.37 368.63 256 266 358.63 243.37 336l64-64H160v148a12 12 0 0012 12h296a12 12 0 0012-12V92a12 12 0 00-12-12H172a12 12 0 00-12 12zm-128 0h128v32H32z\"}}]})(props);\n};\nexport function IoEnter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 136v104h153.37l-52.68-52.69a16 16 0 0122.62-22.62l80 80a16 16 0 010 22.62l-80 80a16 16 0 01-22.62-22.62L313.37 272H160v104a56.06 56.06 0 0056 56h208a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56H216a56.06 56.06 0 00-56 56zM48 240a16 16 0 000 32h112v-32z\"}}]})(props);\n};\nexport function IoExitOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 176v-40a40 40 0 00-40-40H88a40 40 0 00-40 40v240a40 40 0 0040 40h192a40 40 0 0040-40v-40m64-160l80 80-80 80m-193-80h273\"}}]})(props);\n};\nexport function IoExitSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M335.69 272h-161v-32h161V92a12 12 0 00-12-12h-280a12 12 0 00-12 12v328a12 12 0 0012 12h280a12 12 0 0012-12zm83.37 0l-64 64 22.63 22.63L480.31 256 377.69 153.37 355.06 176l64 64h-83.37v32h83.37z\"}}]})(props);\n};\nexport function IoExit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 376V272H191a16 16 0 010-32h145V136a56.06 56.06 0 00-56-56H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h192a56.06 56.06 0 0056-56zm89.37-104l-52.68 52.69a16 16 0 0022.62 22.62l80-80a16 16 0 000-22.62l-80-80a16 16 0 00-22.62 22.62L425.37 240H336v32z\"}}]})(props);\n};\nexport function IoExpandOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432 320v112H320m101.8-10.23L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320m10.23 101.8L208 304\"}}]})(props);\n};\nexport function IoExpandSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M432 320v112H320m101.8-10.23L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320m10.23 101.8L208 304\"}}]})(props);\n};\nexport function IoExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432 320v112H320m101.8-10.23L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320m10.23 101.8L208 304\"}}]})(props);\n};\nexport function IoExtensionPuzzleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M413.66 246.1H386a2 2 0 01-2-2v-77.24A38.86 38.86 0 00345.14 128H267.9a2 2 0 01-2-2V98.34c0-27.14-21.5-49.86-48.64-50.33a49.53 49.53 0 00-50.4 49.51V126a2 2 0 01-2 2H87.62A39.74 39.74 0 0048 167.62V238a2 2 0 002 2h26.91c29.37 0 53.68 25.48 54.09 54.85.42 29.87-23.51 57.15-53.29 57.15H50a2 2 0 00-2 2v70.38A39.74 39.74 0 0087.62 464H158a2 2 0 002-2v-20.93c0-30.28 24.75-56.35 55-57.06 30.1-.7 57 20.31 57 50.28V462a2 2 0 002 2h71.14A38.86 38.86 0 00384 425.14v-78a2 2 0 012-2h28.48c27.63 0 49.52-22.67 49.52-50.4s-23.2-48.64-50.34-48.64z\"}}]})(props);\n};\nexport function IoExtensionPuzzleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345.14 480H256v-45.71a31.3 31.3 0 00-9.59-22.65c-7.67-7.56-18.83-11.81-30.57-11.64a44.38 44.38 0 00-28.45 10.67c-5.2 4.6-11.39 12.56-11.39 24.42V480H87.62A55.68 55.68 0 0132 424.38V336h45.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0012.2-29.92C114.7 273.89 97.26 256 76.91 256H32v-89.34a53.77 53.77 0 0116.53-39A55.88 55.88 0 0187.62 112h63.24V97.52A65.53 65.53 0 01217.54 32c35.49.62 64.36 30.38 64.36 66.33V112h63.24A54.28 54.28 0 01400 166.86v63.24h13.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H400v63.24c0 30.67-24.61 55.62-54.86 55.62z\"}}]})(props);\n};\nexport function IoExtensionPuzzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345.14 480H274a18 18 0 01-18-18v-27.71a31.32 31.32 0 00-9.71-22.77c-7.78-7.59-19.08-11.8-30.89-11.51-21.36.5-39.4 19.3-39.4 41.06V462a18 18 0 01-18 18H87.62A55.62 55.62 0 0132 424.38V354a18 18 0 0118-18h27.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0012.2-29.92C114.7 273.89 97.26 256 76.91 256H50a18 18 0 01-18-18v-70.38A55.62 55.62 0 0187.62 112h55.24a8 8 0 008-8v-6.48A65.53 65.53 0 01217.54 32c35.49.62 64.36 30.38 64.36 66.33V104a8 8 0 008 8h55.24A54.86 54.86 0 01400 166.86v55.24a8 8 0 008 8h5.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H408a8 8 0 00-8 8v56A54.86 54.86 0 01345.14 480z\"}}]})(props);\n};\nexport function IoEyeOffOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zm-176.34-64c-41.49 0-81.5-12.28-118.92-36.5-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 00.14-2.94L93.5 161.38a2 2 0 00-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0075.8-12.58 2 2 0 00.77-3.31l-21.58-21.58a4 4 0 00-3.83-1 204.8 204.8 0 01-51.16 6.47zm235.18-145.4c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 00-74.89 12.83 2 2 0 00-.75 3.31l21.55 21.55a4 4 0 003.88 1 192.82 192.82 0 0150.21-6.69c40.69 0 80.58 12.43 118.55 37 34.71 22.4 65.74 53.88 89.76 91a.13.13 0 010 .16 310.72 310.72 0 01-64.12 72.73 2 2 0 00-.15 2.95l19.9 19.89a2 2 0 002.7.13 343.49 343.49 0 0068.64-78.48 32.2 32.2 0 00-.1-34.78z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 160a95.88 95.88 0 00-21.37 2.4 2 2 0 00-1 3.38l112.59 112.56a2 2 0 003.38-1A96 96 0 00256 160zm-90.22 73.66a2 2 0 00-3.38 1 96 96 0 00115 115 2 2 0 001-3.38z\"}}]})(props);\n};\nexport function IoEyeOffSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M63.998 86.004l21.998-21.998L448 426.01l-21.998 21.998zM259.34 192.09l60.57 60.57a64.07 64.07 0 00-60.57-60.57zm-6.68 127.82l-60.57-60.57a64.07 64.07 0 0060.57 60.57z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 352a96 96 0 01-92.6-121.34l-69.07-69.08C66.12 187.42 39.24 221.14 16 256c26.42 44 62.56 89.24 100.2 115.18C159.38 400.92 206.33 416 255.76 416A233.47 233.47 0 00335 402.2l-53.61-53.6A95.84 95.84 0 01256 352zm0-192a96 96 0 0192.6 121.34L419.26 352c29.15-26.25 56.07-61.56 76.74-96-26.38-43.43-62.9-88.56-101.18-114.82C351.1 111.2 304.31 96 255.76 96a222.92 222.92 0 00-78.21 14.29l53.11 53.11A95.84 95.84 0 01256 160z\"}}]})(props);\n};\nexport function IoEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM248 315.85l-51.79-51.79a2 2 0 00-3.39 1.69 64.11 64.11 0 0053.49 53.49 2 2 0 001.69-3.39zm16-119.7L315.87 248a2 2 0 003.4-1.69 64.13 64.13 0 00-53.55-53.55 2 2 0 00-1.72 3.39z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M491 273.36a32.2 32.2 0 00-.1-34.76c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.68 96a226.54 226.54 0 00-71.82 11.79 4 4 0 00-1.56 6.63l47.24 47.24a4 4 0 003.82 1.05 96 96 0 01116 116 4 4 0 001.05 3.81l67.95 68a4 4 0 005.4.24 343.81 343.81 0 0067.24-77.4zM256 352a96 96 0 01-93.3-118.63 4 4 0 00-1.05-3.81l-66.84-66.87a4 4 0 00-5.41-.23c-24.39 20.81-47 46.13-67.67 75.72a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.39 76.14 98.28 100.65C162.06 402 207.92 416 255.68 416a238.22 238.22 0 0072.64-11.55 4 4 0 001.61-6.64l-47.47-47.46a4 4 0 00-3.81-1.05A96 96 0 01256 352z\"}}]})(props);\n};\nexport function IoEyeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 00-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 000-17.47C428.89 172.28 347.8 112 255.66 112z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"80\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoEyeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M394.82 141.18C351.1 111.2 304.31 96 255.76 96c-43.69 0-86.28 13-126.59 38.48C88.52 160.23 48.67 207 16 256c26.42 44 62.56 89.24 100.2 115.18C159.38 400.92 206.33 416 255.76 416c49 0 95.85-15.07 139.3-44.79C433.31 345 469.71 299.82 496 256c-26.38-43.43-62.9-88.56-101.18-114.82zM256 352a96 96 0 1196-96 96.11 96.11 0 01-96 96z\"}}]})(props);\n};\nexport function IoEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96c-42.52 0-84.33 12.15-124.27 36.11-40.73 24.43-77.63 60.12-109.68 106.07a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416c46.71 0 93.81-14.43 136.2-41.72 38.46-24.77 72.72-59.66 99.08-100.92a32.2 32.2 0 00-.1-34.76zM256 352a96 96 0 1196-96 96.11 96.11 0 01-96 96z\"}}]})(props);\n};\nexport function IoEyedropOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M262.51 204.22L70 396.69C57.56 409.15 48 464 48 464s54.38-9.09 67.31-22L307.8 249.51\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"192.15\",\"height\":\"64.05\",\"x\":\"211.72\",\"y\":\"172.19\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32.03\",\"ry\":\"32.03\",\"transform\":\"rotate(45 307.788 204.2)\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M289.91 141s20.57 8.57 37.22-8.08l54.67-70.63c18.5-19.41 49.26-18.69 67.94 0h0c18.68 18.68 19.34 48.81 0 67.93l-70.68 54.67c-15.65 15.65-8.08 37.22-8.08 37.22M115.31 442s-26.48 17.34-44.56-.73-.75-44.58-.75-44.58\"}}]})(props);\n};\nexport function IoEyedropSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 96.22a63.84 63.84 0 00-18.95-45.61 65 65 0 00-45.71-19h-.76a61.78 61.78 0 00-44.22 19.09l-74.88 74.88-33.88-33.86-34.07 33.91-33.85 34 44 44L32 409.37V480h70.63l205.7-205.71L352 317.94l11.31-11.19c.11-.1 10.42-10.31 22.79-22.68l33.85-34-33.89-33.89L461 141.23a63.18 63.18 0 0019-45.01zM245 292.35L219.65 267l40.68-40.69 25.38 25.38z\"}}]})(props);\n};\nexport function IoEyedrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.05 51a65 65 0 00-45.71-19h-.76a61.81 61.81 0 00-44.36 19.25 12.81 12.81 0 00-1.07 1.25l-54 69.76c-5.62 7.1-12.74 8.68-16.78 4.64l-1.9-1.9a48 48 0 00-67.92 67.92l9.91 9.91a2 2 0 010 2.83L58.7 385.38C54 390.05 46.9 399.85 38.85 431c-4.06 15.71-6.51 29.66-6.61 30.24A16 16 0 0048 480a15.68 15.68 0 002.64-.22c.58-.1 14.44-2.43 30.13-6.44 31.07-7.94 41.05-15.24 45.85-20l179.77-179.79a2 2 0 012.82 0l9.92 9.92a48 48 0 0067.92-67.93l-1.59-1.54c-5-5-2.52-12.11 4.32-17.14l69.75-53.94a17.82 17.82 0 001.47-1.32 63.2 63.2 0 0019-45A63.88 63.88 0 00461.05 51zM250.78 283.9c-2.92 2.92-16.18 7.92-23.39.71s-2.24-20.42.69-23.35l33-33a2 2 0 012.83 0l19.84 19.83a2 2 0 010 2.83z\"}}]})(props);\n};\nexport function IoFastFoodOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M322 416c0 35.35-20.65 64-56 64H134c-35.35 0-56-28.65-56-64m258-80c17.67 0 32 17.91 32 40h0c0 22.09-14.33 40-32 40H64c-17.67 0-32-17.91-32-40h0c0-22.09 14.33-40 32-40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M344 336H179.31a8 8 0 00-5.65 2.34l-26.83 26.83a4 4 0 01-5.66 0l-26.83-26.83a8 8 0 00-5.65-2.34H56a24 24 0 01-24-24h0a24 24 0 0124-24h288a24 24 0 0124 24h0a24 24 0 01-24 24zM64 276v-.22c0-55 45-83.78 100-83.78h72c55 0 100 29 100 84v-.22M241 112l7.44 63.97\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 480h139.31a32 32 0 0031.91-29.61L463 112\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 112l16-64 47-16\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M224 112h256\"}}]})(props);\n};\nexport function IoFastFoodSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 352H184.36l-41 35-41-35H16v24c0 30.59 21.13 55.51 47.26 56 2.43 15.12 8.31 28.78 17.16 39.47C93.51 487.28 112.54 496 134 496h132c21.46 0 40.49-8.72 53.58-24.55 8.85-10.69 14.73-24.35 17.16-39.47 13.88-.25 26.35-7.4 35-18.63A61.26 61.26 0 00384 376zm-279-32l38.33 28.19L182 320h202v-8a40.07 40.07 0 00-32-39.2c-.82-29.69-13-54.54-35.51-72C295.67 184.56 267.85 176 236 176h-72c-68.22 0-114.43 38.77-116 96.8A40.07 40.07 0 0016 312v8h89z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M463.08 96h-74.59l8.92-35.66L442 45l-10-29-62 20-14.49 60H208v32h18.75l1.86 16H236c39 0 73.66 10.9 100.12 31.52A121.9 121.9 0 01371 218.07a124.16 124.16 0 0110.73 32.65 72 72 0 0127.89 90.9A96 96 0 01416 376c0 22.34-7.6 43.63-21.4 59.95a80 80 0 01-31.83 22.95 109.21 109.21 0 01-18.53 33c-1.18 1.42-2.39 2.81-3.63 4.15H416c16 0 23-8 25-23l36.4-345H496V96z\"}}]})(props);\n};\nexport function IoFastFood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 128h.09m111.46-32h-91.06l8.92-35.66 38.32-13.05c8.15-2.77 13-11.43 10.65-19.71a16 16 0 00-20.54-10.73l-47 16a16 16 0 00-10.36 11.27L355.51 96H224.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00224 128h2.75l1 8.66A8.3 8.3 0 00236 144c39 0 73.66 10.9 100.12 31.52A121.9 121.9 0 01371 218.07a123.4 123.4 0 0110.12 29.51 7.83 7.83 0 003.29 4.88 72 72 0 0126.38 86.43 7.92 7.92 0 00-.15 5.53A96 96 0 01416 376c0 22.34-7.6 43.63-21.4 59.95a80.12 80.12 0 01-28.78 21.67 8 8 0 00-4.21 4.37 108.19 108.19 0 01-17.37 29.86 2.5 2.5 0 001.9 4.11h49.21a48.22 48.22 0 0047.85-44.14L477.4 128h2.6a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M108.69 320a23.87 23.87 0 0117 7l15.51 15.51a4 4 0 005.66 0L162.34 327a23.87 23.87 0 0117-7h196.58a8 8 0 008.08-7.92V312a40.07 40.07 0 00-32-39.2c-.82-29.69-13-54.54-35.51-72C295.67 184.56 267.85 176 236 176h-72c-68.22 0-114.43 38.77-116 96.8A40.07 40.07 0 0016 312a8 8 0 008 8zm77.25 32a8 8 0 00-5.66 2.34l-22.14 22.15a20 20 0 01-28.28 0l-22.14-22.15a8 8 0 00-5.66-2.34h-69.4a15.93 15.93 0 00-15.76 13.17A65.22 65.22 0 0016 376c0 30.59 21.13 55.51 47.26 56 2.43 15.12 8.31 28.78 17.16 39.47C93.51 487.28 112.54 496 134 496h132c21.46 0 40.49-8.72 53.58-24.55 8.85-10.69 14.73-24.35 17.16-39.47 26.13-.47 47.26-25.39 47.26-56a65.22 65.22 0 00-.9-10.83A15.93 15.93 0 00367.34 352z\"}}]})(props);\n};\nexport function IoFemaleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"184\",\"r\":\"152\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 336v144m58-64H198\"}}]})(props);\n};\nexport function IoFemaleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M430 190c0-95.94-78.06-174-174-174S82 94.06 82 190c0 88.49 66.4 161.77 152 172.61V394h-58v44h58v58h44v-58h58v-44h-58v-31.39c85.6-10.84 152-84.12 152-172.61zm-304 0c0-71.68 58.32-130 130-130s130 58.32 130 130-58.32 130-130 130-130-58.32-130-130z\"}}]})(props);\n};\nexport function IoFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M430 190c0-95.94-78.06-174-174-174S82 94.06 82 190c0 88.49 66.4 161.77 152 172.61V394h-36a22 22 0 000 44h36v36a22 22 0 0044 0v-36h36a22 22 0 000-44h-36v-31.39c85.6-10.84 152-84.12 152-172.61zm-304 0c0-71.68 58.32-130 130-130s130 58.32 130 130-58.32 130-130 130-130-58.32-130-130z\"}}]})(props);\n};\nexport function IoFileTrayFullOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 272h144m128 0h144m-272 0a64 64 0 00128 0M144 144h224m-240 64h256\"}}]})(props);\n};\nexport function IoFileTrayFullSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 128h256v38H128zm-16 64h288v38H112z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64H64L32 256v192h448V256zm-12 192H320a64 64 0 01-128 0H76l22-150h316z\"}}]})(props);\n};\nexport function IoFileTrayFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.66 268.7l-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0032 272v112a64 64 0 0064 64h320a64 64 0 0064-64V272a16.65 16.65 0 00-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 01-3.92 4.82H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 256H72.65a4 4 0 01-3.92-4.82z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M368 160H144a16 16 0 010-32h224a16 16 0 010 32zm16 64H128a16 16 0 010-32h256a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoFileTrayOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 272h144m128 0h144m-272 0a64 64 0 00128 0\"}}]})(props);\n};\nexport function IoFileTraySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64H64L32 256v192h448V256zm-12 192H320a64 64 0 01-128 0H76l22-150h316z\"}}]})(props);\n};\nexport function IoFileTrayStackedOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 336v96a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48v-96\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 336h144m128 0h144m-272 0a64 64 0 00128 0\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 32H128c-26 0-43 14-48 40L48 192v96a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48v-96L432 72c-5-27-23-40-48-40z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 192h144m128 0h144m-272 0a64 64 0 00128 0\"}}]})(props);\n};\nexport function IoFileTrayStackedSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 16H64L32 176v144h448V176zm-12 160H320a64 64 0 01-128 0H76L98 58h316zM320 352a64 64 0 01-128 0H32v144h448V352z\"}}]})(props);\n};\nexport function IoFileTrayStacked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 352H320a16 16 0 00-16 16 48 48 0 01-96 0 16 16 0 00-16-16H48a16 16 0 00-16 16v64a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64v-64a16 16 0 00-16-16zm15.46-164.12L447.61 68.45C441.27 35.59 417.54 16 384 16H128c-16.8 0-31 4.69-42.1 13.94S67.66 52 64.4 68.4L32.54 187.88A15.9 15.9 0 0032 192v48c0 35.29 28.71 80 64 80h320c35.29 0 64-44.71 64-80v-48a15.9 15.9 0 00-.54-4.12zM440.57 176H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 176H71.43a2 2 0 01-1.93-2.52L95.71 75c3.55-18.41 13.81-27 32.29-27h256c18.59 0 28.84 8.53 32.25 26.85l26.25 98.63a2 2 0 01-1.93 2.52z\"}}]})(props);\n};\nexport function IoFileTray (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.66 268.7l-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0032 272v112a64 64 0 0064 64h320a64 64 0 0064-64V272a16.65 16.65 0 00-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 01-3.92 4.82H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 256H72.65a4 4 0 01-3.92-4.82z\"}}]})(props);\n};\nexport function IoFilmOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"320\",\"x\":\"48\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"384\",\"y\":\"336\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"384\",\"y\":\"256\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"384\",\"y\":\"176\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"384\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"48\",\"y\":\"336\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"48\",\"y\":\"256\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"48\",\"y\":\"176\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"48\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"256\",\"height\":\"160\",\"x\":\"128\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"256\",\"height\":\"160\",\"x\":\"128\",\"y\":\"256\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"28\",\"ry\":\"28\"}}]})(props);\n};\nexport function IoFilmSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 80H32v352h448zM112 352v48H64v-48zm0-80v48H64v-48zm0-80v48H64v-48zm0-80v48H64v-48zm256 160H144v-32h224zm80 80v48h-48v-48zm0-80v48h-48v-48zm0-80v48h-48v-48zm0-80v48h-48v-48z\"}}]})(props);\n};\nexport function IoFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 80H76a44.05 44.05 0 00-44 44v264a44.05 44.05 0 0044 44h360a44.05 44.05 0 0044-44V124a44.05 44.05 0 00-44-44zM112 388a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm241.68 124H158.32a16 16 0 010-32h195.36a16 16 0 110 32zM448 388a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12z\"}}]})(props);\n};\nexport function IoFilterCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 208h224m-192 64h160m-112 64h64\"}}]})(props);\n};\nexport function IoFilterCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48 304h-96v-32h96zm48-64H160v-32h192zm32-64H128v-32h256z\"}}]})(props);\n};\nexport function IoFilterCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm32 304h-64a16 16 0 010-32h64a16 16 0 010 32zm48-64H176a16 16 0 010-32h160a16 16 0 010 32zm32-64H144a16 16 0 010-32h224a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoFilterOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M32 144h448M112 256h288M208 368h96\"}}]})(props);\n};\nexport function IoFilterSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 120h480v48H16zm80 112h320v48H96zm96 112h128v48H192z\"}}]})(props);\n};\nexport function IoFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472 168H40a24 24 0 010-48h432a24 24 0 010 48zm-80 112H120a24 24 0 010-48h272a24 24 0 010 48zm-96 112h-80a24 24 0 010-48h80a24 24 0 010 48z\"}}]})(props);\n};\nexport function IoFingerPrintOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M390.42 75.28a10.45 10.45 0 01-5.32-1.44C340.72 50.08 302.35 40 256.35 40c-45.77 0-89.23 11.28-128.76 33.84C122 77 115.11 74.8 111.87 69a12.4 12.4 0 014.63-16.32A281.81 281.81 0 01256.35 16c49.23 0 92.23 11.28 139.39 36.48a12 12 0 014.85 16.08 11.3 11.3 0 01-10.17 6.72zm-330.79 126a11.73 11.73 0 01-6.7-2.16 12.26 12.26 0 01-2.78-16.8c22.89-33.6 52-60 86.69-78.48 72.58-38.84 165.51-39.12 238.32-.24 34.68 18.48 63.8 44.64 86.69 78a12.29 12.29 0 01-2.78 16.8 11.26 11.26 0 01-16.18-2.88c-20.8-30.24-47.15-54-78.36-70.56-66.34-35.28-151.18-35.28-217.29.24-31.44 16.8-57.79 40.8-78.59 71a10 10 0 01-9.02 5.08zM204.1 491a10.66 10.66 0 01-8.09-3.6C175.9 466.48 165 453 149.55 424c-16-29.52-24.27-65.52-24.27-104.16 0-71.28 58.71-129.36 130.84-129.36S387 248.56 387 319.84a11.56 11.56 0 11-23.11 0c0-58.08-48.32-105.36-107.72-105.36S148.4 261.76 148.4 319.84c0 34.56 7.39 66.48 21.49 92.4 14.8 27.6 25 39.36 42.77 58.08a12.67 12.67 0 010 17 12.44 12.44 0 01-8.56 3.68zm165.75-44.4c-27.51 0-51.78-7.2-71.66-21.36a129.1 129.1 0 01-55-105.36 11.57 11.57 0 1123.12 0 104.28 104.28 0 0044.84 85.44c16.41 11.52 35.6 17 58.72 17a147.41 147.41 0 0024-2.4c6.24-1.2 12.25 3.12 13.4 9.84a11.92 11.92 0 01-9.47 13.92 152.28 152.28 0 01-27.95 2.88zM323.38 496a13 13 0 01-3-.48c-36.76-10.56-60.8-24.72-86-50.4-32.37-33.36-50.16-77.76-50.16-125.28 0-38.88 31.9-70.56 71.19-70.56s71.2 31.68 71.2 70.56c0 25.68 21.5 46.56 48.08 46.56s48.08-20.88 48.08-46.56c0-90.48-75.13-163.92-167.59-163.92-65.65 0-125.75 37.92-152.79 96.72-9 19.44-13.64 42.24-13.64 67.2 0 18.72 1.61 48.24 15.48 86.64 2.32 6.24-.69 13.2-6.7 15.36a11.34 11.34 0 01-14.79-7 276.39 276.39 0 01-16.88-95c0-28.8 5.32-55 15.72-77.76 30.75-67 98.94-110.4 173.6-110.4 105.18 0 190.71 84.24 190.71 187.92 0 38.88-31.9 70.56-71.2 70.56s-71.2-31.68-71.2-70.56c.01-25.68-21.49-46.6-48.07-46.6s-48.08 20.88-48.08 46.56c0 41 15.26 79.44 43.23 108.24 22 22.56 43 35 75.59 44.4 6.24 1.68 9.71 8.4 8.09 14.64a11.39 11.39 0 01-10.87 9.16z\"}}]})(props);\n};\nexport function IoFingerPrintSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M56.79 200.58l12.36 7.5 7.35-13.58C93.07 166.75 143.78 102 256 102c115 0 164 70.32 180.1 93.46l8.16 12.7L469.88 192l-8.54-13.36c-8.88-12.85-27.52-39.53-60.78-63.1C360.15 86.82 311.5 72.25 256 72.25c-128.07 0-186.69 75.11-206 107.25L42.63 192 54 198.86a14.09 14.09 0 001.63 1.1 12.57 12.57 0 001.16.62z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M379.22 172.32c-35.54-28.93-78.12-44.25-123.22-44.25-97.52 0-162.31 66-183.33 131.47C53.42 320 76.82 407.61 77.8 411.36l4.38 13.81 29.93-6.43-4.74-15c-.21-.75-22.1-82.93-5.41-135.21 9-28.08 27.73-55.4 51.35-74.79C181.81 170.39 217.35 158 256 158c90.58 0 141.93 70.61 156.45 108.11 11.27 28.93 8.67 61.82-6.28 82-5.53 7.39-15.28 16.07-30.12 15.32-33.81-1.72-39.66-18.43-47.79-50.25-3.9-15.32-7.9-31.18-17.87-44-12.14-15.75-29.8-23.36-54.28-23.36-26.33 0-46.27 8.68-59.38 25.72-28.6 37.28-10 100.93-9.21 103.61l.22.85c1.41 3.86 36.08 96.65 128.93 119.68l14.77 3.21 8.09-28.71-15.27-3.43c-74.22-18.43-105.21-94.39-107.59-100.39a152.44 152.44 0 01-5.1-29.79c-1.08-14.46-.32-34.39 9.43-47.14 7.15-9.32 18.64-13.82 35-13.82 29.79 0 34.78 14.57 42.58 44.79 7.58 29.46 18 69.85 75.84 72.75 22.21 1.07 42.26-8.79 56.34-27.65 21.13-28.28 25.14-71.57 10.19-110.14-11.68-30.36-34.21-60.54-61.73-83.04z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M154.18 343.21c-3.47-28.28 1.41-71 26.55-98.78 17.44-19.29 42.79-29 75.19-29 37.49 0 65.87 16.72 84.51 49.61a154 154 0 0117.88 53.25l1.43 14.69 30-2.2a112.63 112.63 0 00-1-15.6c-.11-1.28-3.57-32.46-21-63.75-24.06-43.11-62.63-65.93-111.74-65.93-41.5 0-74.55 13.18-98.06 39.11-31.85 35.14-38.35 86.25-33.91 122.35v.33c7.97 54.53 28.97 98.14 66.12 137.14l11.6 11.22 20.95-21.79-10.34-9.79c-32.72-34.28-51.25-72.64-58.18-120.86zM132.47 72.66c11.08-6.72 50.27-26.77 123.53-26.77 87.54 0 126.44 28.72 126.87 28.93l13.9 8.86L413 58.47l-13.22-8.56c-.52-.38-1.06-.76-1.6-1.12C385.5 40.54 340.54 16 256 16c-87.71 0-132.75 26.48-143.41 33.71L99 58.52l16.2 25.21z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M390.59 415.21c-33.37 3.75-60.45-2.67-80.71-18.85-34.24-27.43-38.68-75.11-38.79-76l-1.23-14.88-30.53 2.23 1.31 15c.22 2.46 5.2 60.75 49.62 96.54 22.11 17.89 49.74 26.89 82.24 26.89a187 187 0 0021.56-1.29l16.59-2.09-6.1-29.71z\"}}]})(props);\n};\nexport function IoFingerPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M63.28 202a15.29 15.29 0 01-7.7-2 14.84 14.84 0 01-5.52-20.46C69.34 147.36 128 72.25 256 72.25c55.47 0 104.12 14.57 144.53 43.29 33.26 23.57 51.9 50.25 60.78 63.1a14.79 14.79 0 01-4 20.79 15.52 15.52 0 01-21.24-4C420 172.32 371 102 256 102c-112.25 0-163 64.71-179.53 92.46A15 15 0 0163.28 202z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320.49 496a15.31 15.31 0 01-3.79-.43c-92.85-23-127.52-115.82-128.93-119.68l-.22-.85c-.76-2.68-19.39-66.33 9.21-103.61 13.11-17 33.05-25.72 59.38-25.72 24.48 0 42.14 7.61 54.28 23.36 10 12.86 14 28.72 17.87 44 8.13 31.82 14 48.53 47.79 50.25 14.84.75 24.59-7.93 30.12-15.32 14.95-20.15 17.55-53 6.28-82C398 228.57 346.61 158 256 158c-38.68 0-74.22 12.43-102.72 35.79-23.59 19.35-42.28 46.67-51.28 74.75-16.69 52.28 5.2 134.46 5.41 135.21A14.83 14.83 0 0196.54 422a15.39 15.39 0 01-18.74-10.6c-1-3.75-24.38-91.4-5.1-151.82 21-65.47 85.81-131.47 183.33-131.47 45.07 0 87.65 15.32 123.19 44.25 27.52 22.5 50 52.72 61.76 82.93 14.95 38.57 10.94 81.86-10.19 110.14-14.08 18.86-34.13 28.72-56.34 27.65-57.86-2.9-68.26-43.29-75.84-72.75-7.8-30.22-12.79-44.79-42.58-44.79-16.36 0-27.85 4.5-35 13.82-9.75 12.75-10.51 32.68-9.43 47.14a152.44 152.44 0 005.1 29.79c2.38 6 33.37 82 107.59 100.39a14.88 14.88 0 0111 18.11 15.36 15.36 0 01-14.8 11.21z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M201.31 489.14a15.5 15.5 0 01-11.16-4.71c-37.16-39-58.18-82.61-66.09-137.14V347c-4.44-36.1 2.06-87.21 33.91-122.35 23.51-25.93 56.56-39.11 98.06-39.11 49.08 0 87.65 22.82 111.7 65.89 17.45 31.29 20.91 62.47 21 63.75a15.07 15.07 0 01-13.65 16.4 15.26 15.26 0 01-16.79-13.29A154 154 0 00340.43 265c-18.64-32.89-47-49.61-84.51-49.61-32.4 0-57.75 9.75-75.19 29-25.14 27.75-30 70.5-26.55 98.78 6.93 48.22 25.46 86.58 58.18 120.86a14.7 14.7 0 01-.76 21.11 15.44 15.44 0 01-10.29 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M372.5 446.18c-32.5 0-60.13-9-82.24-26.89-44.42-35.79-49.4-94.08-49.62-96.54a15.27 15.27 0 0130.45-2.36c.11.86 4.55 48.54 38.79 76 20.26 16.18 47.34 22.6 80.71 18.85a15.2 15.2 0 0116.91 13.18 14.92 14.92 0 01-13.44 16.5 187 187 0 01-21.56 1.26zm25.68-397.39C385.5 40.54 340.54 16 256 16c-88.74 0-133.81 27.11-143.78 34a11.59 11.59 0 00-1.84 1.4.36.36 0 01-.22.1 14.87 14.87 0 00-5.09 11.15 15.06 15.06 0 0015.31 14.85 15.56 15.56 0 008.88-2.79c.43-.32 39.22-28.82 126.77-28.82S382.58 74.29 383 74.5a15.25 15.25 0 009.21 3 15.06 15.06 0 0015.29-14.89 14.9 14.9 0 00-9.32-13.82z\"}}]})(props);\n};\nexport function IoFishOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M240 152c-50.71 12.21-94.15 52.31-120.3 73.43a261.14 261.14 0 00-23.81-19.58C59.53 179.29 16 176 16 176s11.37 51.53 41.36 79.83C27.37 284.14 16 335.67 16 335.67s43.53-3.29 79.89-29.85a259.18 259.18 0 0023.61-19.41c26.1 21.14 69.74 61.34 120.5 73.59l-16 56c39.43-6.67 78.86-35.51 94.72-48.25C448 362 496 279 496 256c0-22-48-106-176.89-111.73C303.52 131.78 263.76 102.72 224 96z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"416\",\"cy\":\"239.99\",\"r\":\"16\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"20\",\"strokeWidth\":\"32\",\"d\":\"M378.37 356a199.22 199.22 0 010-200\"}}]})(props);\n};\nexport function IoFishSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M335.45 256a214.83 214.83 0 0129.08-108l7.62-13.26a280.69 280.69 0 00-48.64-7.15c-21.94-16.9-54.64-36.95-92.34-43.33L208 80l13.37 61.86c-41.67 14.14-78.43 42.86-102.76 62.62q-7.06-5.91-14.78-11.55c-39.71-29-82.6-31.8-84.4-31.9L0 160l2.67 19.31c.29 2 6.79 44.73 31.65 76.52C9.46 287.63 3 330.33 2.67 332.36L0 352l19.43-1.36c1.8-.1 44.69-2.89 84.4-31.9q7.58-5.53 14.56-11.37c24.37 19.83 61.14 48.6 102.86 62.74L208 432l23.17-4.22c37.49-6.34 70.08-26.4 92-43.32a284.27 284.27 0 0049.32-7.23l-7.91-13.18A214.92 214.92 0 01335.45 256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M499.59 221.75c-5.85-9.88-16.54-24.9-34.19-40.28a209.82 209.82 0 00-62-37L392.23 164a183.22 183.22 0 00-.09 183.87l11.75 19.57a209.26 209.26 0 0061.42-36.49C497.05 303.47 512 269 512 256c0-12.31-8-26.74-12.41-34.25zM416 256a16 16 0 1116-16 16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoFish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256c0-16.54-14.27-46.76-45.61-74a207.06 207.06 0 00-60.28-36.12 3.15 3.15 0 00-3.93 1.56c-.15.29-.3.57-.47.86l-9.59 15.9a183.24 183.24 0 00.07 183.78l.23.39 8.74 16a4 4 0 004.94 1.82C479.63 337.42 512 281.49 512 256zm-93.92-.14a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M335.45 256a214.8 214.8 0 0129.08-108l.12-.21 4.62-7.67a4 4 0 00-2.59-6 284.29 284.29 0 00-39.26-5.39 7.94 7.94 0 01-4.29-1.6c-19.28-14.66-57.5-40.3-96.46-46.89a16 16 0 00-18 20.18l10.62 37.17a4 4 0 01-2.42 4.84c-36.85 13.69-68.59 38.75-91.74 57.85a8 8 0 01-10.06.06q-4.72-3.75-9.69-7.39c-39.64-28.95-86.21-32.76-88.17-32.9a16 16 0 00-16.83 19.4c.42 1.93 9.19 40.69 31.7 71.61a8.09 8.09 0 010 9.55C9.57 291.52.8 330.29.38 332.22a16 16 0 0016.83 19.4c2-.14 48.53-4 88.12-32.88q4.85-3.56 9.47-7.22a8 8 0 0110.06.07c23.25 19.19 55.05 44.28 92 58a4 4 0 012.42 4.83l-10.66 37.18a16 16 0 0018 20.18c17.16-2.9 51.88-12.86 96.05-46.83a8.15 8.15 0 014.36-1.65 287.36 287.36 0 0039.22-5.3 4 4 0 002.69-5.83l-4.51-8.29A214.81 214.81 0 01335.45 256z\"}}]})(props);\n};\nexport function IoFitnessOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 256h112l48-96 48 160 48-96 32 64h128\"}}]})(props);\n};\nexport function IoFitnessSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 272h-37.34a261.41 261.41 0 01-18.25 32H480zM32 240v32h37.34a225.1 225.1 0 01-12.4-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304 259.78l-51.73 103.46-48-160L169.89 272H69.34c10 20.92 23.5 41.41 40.63 61.68 40.12 47.46 94.25 79.75 137 108.32l9 6 9-6c42.78-28.57 96.91-60.86 137-108.32A322.78 322.78 0 00424.41 304h-98.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M211.73 116.76l48 160L304 188.22 345.89 272h96.77A213.13 213.13 0 00464 176.65C463.37 114.54 413.54 64 352.92 64c-48.11 0-80.1 28-96.92 48.21C239.18 92 207.19 64 159.08 64 98.46 64 48.63 114.54 48 176.65A211.23 211.23 0 0056.94 240h93.17z\"}}]})(props);\n};\nexport function IoFitness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M193.69 152.84a16 16 0 0129.64 2.56l36.4 121.36 30-59.92a16 16 0 0128.62 0L345.89 272h96.76A213.08 213.08 0 00464 176.65C463.37 114.54 413.54 64 352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65A211.13 211.13 0 0056.93 240h93.18z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M321.69 295.16L304 259.78l-33.69 67.38A16 16 0 01256 336q-.67 0-1.38-.06a16 16 0 01-14-11.34l-36.4-121.36-30 59.92A16 16 0 01160 272H69.35q14 29.29 37.27 57.66c18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81a316.79 316.79 0 0019-25.66H336a16 16 0 01-14.31-8.84zM464 272h-21.35a260.11 260.11 0 01-18.25 32H464a16 16 0 000-32zM48 240a16 16 0 000 32h21.35a225.22 225.22 0 01-12.42-32z\"}}]})(props);\n};\nexport function IoFlagOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M80 464V68.14a8 8 0 014-6.9C91.81 56.66 112.92 48 160 48c64 0 145 48 192 48a199.53 199.53 0 0077.23-15.77 2 2 0 012.77 1.85v219.36a4 4 0 01-2.39 3.65C421.37 308.7 392.33 320 352 320c-48 0-128-32-192-32s-80 16-80 16\"}}]})(props);\n};\nexport function IoFlagSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M102 480H64V57.37l4.69-4.68C72.14 49.23 92.78 32 160 32c37.21 0 78.83 14.71 115.55 27.68C305.12 70.13 333.05 80 352 80c42.83 0 72.72-14.25 73-14.4l23-11.14v259.43l-8.84 4.42C437.71 319 403.19 336 352 336c-24.14 0-54.38-7.14-86.39-14.71C229.63 312.79 192.43 304 160 304c-36.87 0-49.74 5.58-58 9.11z\"}}]})(props);\n};\nexport function IoFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 480a16 16 0 01-16-16V68.13a24 24 0 0111.9-20.72C88 40.38 112.38 32 160 32c37.21 0 78.83 14.71 115.55 27.68C305.12 70.13 333.05 80 352 80a183.84 183.84 0 0071-14.5 18 18 0 0125 16.58v219.36a20 20 0 01-12 18.31c-8.71 3.81-40.51 16.25-84 16.25-24.14 0-54.38-7.14-86.39-14.71C229.63 312.79 192.43 304 160 304c-36.87 0-55.74 5.58-64 9.11V464a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoFlameOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 320c0-93 124-165 96-272 66 0 192 96 192 272a144 144 0 01-288 0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 368c0 57.71-32 80-64 80s-64-22.29-64-80 40-86 32-128c42 0 96 70.29 96 128z\"}}]})(props);\n};\nexport function IoFlameSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M394.24 197.56a300.67 300.67 0 00-53.38-90C301.2 61.65 240 32 192 32c19 70-14.36 117.12-44.79 163.77C122 234.36 96 274.27 96 320c0 88.22 71.78 160 160 160s160-71.78 160-160c0-43.3-7.32-84.49-21.76-122.44zM288.33 418.69C278 429.69 265.05 432 256 432s-22-2.31-32.33-13.31S208 390.24 208 368c0-25.14 8.82-44.28 17.34-62.78 6.48-14.07 14.66-27.22 15.11-44.49 11.3 5.88 23.67 16.91 34.54 31.28 18.17 24 29 52.42 29 76 .01 22.23-5.41 39.76-15.66 50.68z\"}}]})(props);\n};\nexport function IoFlame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M394.23 197.56a300.43 300.43 0 00-53.37-90C301.2 61.65 249.05 32 208 32a16 16 0 00-15.48 20c13.87 53-14.88 97.07-45.31 143.72C122 234.36 96 274.27 96 320c0 88.22 71.78 160 160 160s160-71.78 160-160c0-43.3-7.32-84.49-21.77-122.44zm-105.9 221.13C278 429.69 265.05 432 256 432s-22-2.31-32.33-13.31S208 390.24 208 368c0-25.14 8.82-44.28 17.34-62.78 4.95-10.74 10-21.67 13-33.37a8 8 0 0112.49-4.51A126.48 126.48 0 01275 292c18.17 24 29 52.42 29 76 0 22.24-5.42 39.77-15.67 50.69z\"}}]})(props);\n};\nexport function IoFlashOffOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM294.34 84.28l-22.08 120.84a16 16 0 006.17 15.71 16.49 16.49 0 009.93 3.17h94.12l-38.37 47.42a4 4 0 00.28 5.34l17.07 17.07a4 4 0 005.94-.31l60.8-75.16a16.37 16.37 0 003.3-14.36 16 16 0 00-15.5-12H307.19L335.4 37.63c.05-.3.1-.59.13-.89A18.45 18.45 0 00302.73 23l-92.58 114.46a4 4 0 00.28 5.35l17.07 17.06a4 4 0 005.94-.31zm-76.56 343.29l22-120.71a16 16 0 00-6.19-15.7 16.54 16.54 0 00-9.92-3.16h-94.1l38.36-47.42a4 4 0 00-.28-5.34l-17.07-17.07a4 4 0 00-5.93.31L83.8 293.64A16.37 16.37 0 0080.5 308 16 16 0 0096 320h108.83l-28.09 154.36v.11a18.37 18.37 0 0032.5 14.53l92.61-114.46a4 4 0 00-.28-5.35l-17.07-17.06a4 4 0 00-5.94.31z\"}}]})(props);\n};\nexport function IoFlashOffSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M63.998 86.004l21.998-21.998L448 426.01l-21.998 21.998zM80 304h144l-32 192 108.18-129.82-148.36-148.36L80 304zm352-96H288l32-192-108.18 129.82 148.36 148.36L432 208z\"}}]})(props);\n};\nexport function IoFlashOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zm-.5-244a16 16 0 00-15.5-12H307.19L335.4 37.63c.05-.3.1-.59.13-.89A18.45 18.45 0 00302.73 23l-92.58 114.46a4 4 0 00.29 5.35l151 151a4 4 0 005.94-.31l60.8-75.16A16.37 16.37 0 00431.5 204zM301.57 369.19l-151-151a4 4 0 00-5.93.31L83.8 293.64A16.37 16.37 0 0080.5 308 16 16 0 0096 320h108.83l-28.09 154.36v.11a18.37 18.37 0 0032.5 14.53l92.61-114.46a4 4 0 00-.28-5.35z\"}}]})(props);\n};\nexport function IoFlashOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M315.27 33L96 304h128l-31.51 173.23a2.36 2.36 0 002.33 2.77h0a2.36 2.36 0 001.89-.95L416 208H288l31.66-173.25a2.45 2.45 0 00-2.44-2.75h0a2.42 2.42 0 00-1.95 1z\"}}]})(props);\n};\nexport function IoFlashSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 208H288l32-192L80 304h144l-32 192z\"}}]})(props);\n};\nexport function IoFlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M194.82 496a18.36 18.36 0 01-18.1-21.53v-.11L204.83 320H96a16 16 0 01-12.44-26.06L302.73 23a18.45 18.45 0 0132.8 13.71c0 .3-.08.59-.13.89L307.19 192H416a16 16 0 0112.44 26.06L209.24 489a18.45 18.45 0 01-14.42 7z\"}}]})(props);\n};\nexport function IoFlashlightOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M456.64 162.86L349.12 55.36c-13.15-13.14-28.68-7.17-41.82 6l-11.95 12c-26.13 26.13-27.62 58.38-29.42 83.31-.89 12.24-9.78 27.55-18.51 36.28L58.58 381.67c-16.35 16.33-12.69 39.42 3.73 55.84l12.17 12.17c16.36 16.35 39.43 20.16 55.86 3.74l188.83-188.8c8.74-8.74 24-17.55 36.29-18.52 24.87-1.86 58.62-4.85 83.26-29.49l11.94-11.94c13.15-13.14 19.12-28.67 5.98-41.81z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"224.68\",\"cy\":\"287.28\",\"r\":\"20\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M289 81l142 142\"}}]})(props);\n};\nexport function IoFlashlightSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330 16l-42.68 42.7L453.3 224.68 496 182 330 16z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"224.68\",\"cy\":\"287.3\",\"fill\":\"none\",\"rx\":\"20.03\",\"ry\":\"19.96\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M429.21 243.85L268 82.59 249.65 168 16 402l94 94 234.23-233.8zm-189 56.07a20 20 0 110-25.25 20 20 0 01-.02 25.25z\"}}]})(props);\n};\nexport function IoFlashlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462 216c9.35-9.35 15.14-19.09 17.19-28.95 2.7-12.95-1.29-25.55-11.22-35.48L360.43 44.05C346.29 29.92 322 24.07 296 50l-2 2a8 8 0 000 11.32L448.64 218a8 8 0 0011.36 0zm-211.86-62.92l-.16 2.34c-.53 7.18-6.88 19.15-13.88 26.14L47.27 370.36c-11.12 11.11-16.46 25.57-15.05 40.7C33.49 424.58 40.16 438 51 448.83L63.17 461c12.61 12.6 27.78 19 42.49 19a50.4 50.4 0 0036-15.24l188.84-188.8c7.07-7.07 18.84-13.3 26.17-13.87 17.48-1.32 43.57-3.28 67.79-15.65a4 4 0 001-6.37L271.69 86.31a4 4 0 00-6.39 1c-12.12 22.99-13.82 46.91-15.16 65.77zm-9.95 146.83a20 20 0 110-25.25 20 20 0 010 25.25z\"}}]})(props);\n};\nexport function IoFlaskOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M176 48h160M118 304h276M208 48v93.48a64.09 64.09 0 01-9.88 34.18L73.21 373.49C48.4 412.78 76.63 464 123.08 464h265.84c46.45 0 74.68-51.22 49.87-90.51L313.87 175.66a64.09 64.09 0 01-9.87-34.18V48\"}}]})(props);\n};\nexport function IoFlaskSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M469.11 382.76L325 153.92V74h32V32H155v42h32v79.92L42.89 382.76c-13 20.64-14.78 43.73-3 65.1S71.59 480 96 480h320c24.41 0 44.32-10.76 56.1-32.14s10.04-44.46-2.99-65.1zM224.39 173.39a29.76 29.76 0 004.62-16V74h54v84.59a25.85 25.85 0 004 13.82L356.82 283H155.18z\"}}]})(props);\n};\nexport function IoFlask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M452.32 365L327.4 167.12a48.07 48.07 0 01-7.4-25.64V64h15.56c8.61 0 16-6.62 16.43-15.23A16 16 0 00336 32H176.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00176 64h16v77.48a47.92 47.92 0 01-7.41 25.63L59.68 365a74 74 0 00-2.5 75.84C70.44 465.19 96.36 480 124.13 480h263.74c27.77 0 53.69-14.81 66.95-39.21a74 74 0 00-2.5-75.79zM211.66 184.2A79.94 79.94 0 00224 141.48V68a4 4 0 014-4h56a4 4 0 014 4v73.48a79.94 79.94 0 0012.35 42.72l57.8 91.53a8 8 0 01-6.78 12.27H160.63a8 8 0 01-6.77-12.27z\"}}]})(props);\n};\nexport function IoFlowerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M215.08 156.92c-4.89-24-10.77-56.27-10.77-73.23A51.36 51.36 0 01256 32h0c28.55 0 51.69 23.69 51.69 51.69 0 16.5-5.85 48.95-10.77 73.23m-81.84 198.16c-4.91 24.06-10.77 56.16-10.77 73.23A51.36 51.36 0 00256 480h0c28.55 0 51.69-23.69 51.69-51.69 0-16.54-5.85-48.93-10.77-73.23m58.16-140c24.06-4.91 56.16-10.77 73.23-10.77A51.36 51.36 0 01480 256h0c0 28.55-23.69 51.69-51.69 51.69-16.5 0-48.95-5.85-73.23-10.77m-198.16-81.85c-24-4.89-56.25-10.76-73.23-10.76A51.36 51.36 0 0032 256h0c0 28.55 23.69 51.69 51.69 51.69 16.5 0 48.95-5.85 73.23-10.77\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M296.92 156.92c13.55-20.48 32.3-47.25 44.37-59.31a51.35 51.35 0 0173.1 0h0c20.19 20.19 19.8 53.3 0 73.1-11.66 11.67-38.67 30.67-59.31 44.37m-198.16 81.84c-20.48 13.55-47.25 32.3-59.31 44.37a51.35 51.35 0 000 73.1h0c20.19 20.19 53.3 19.8 73.1 0 11.67-11.66 30.67-38.67 44.37-59.31m140-58.16c20.48 13.55 47.25 32.3 59.31 44.37a51.35 51.35 0 010 73.1h0c-20.19 20.19-53.3 19.8-73.1 0-11.69-11.69-30.66-38.65-44.37-59.31m-81.84-198.16c-13.53-20.43-32.38-47.32-44.37-59.31a51.35 51.35 0 00-73.1 0h0c-20.19 20.19-19.8 53.3 0 73.1 11.61 11.61 38.7 30.68 59.31 44.37\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"64\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoFlowerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"43\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M475.93 303.91a67.49 67.49 0 00-47.62-115.6c-2.88 0-6.2.14-9.93.43 2.75-2.36 5.23-4.62 7.33-6.71A67.83 67.83 0 00378 66.33h-.25a67.27 67.27 0 00-47.82 20c-2.11 2.11-4.37 4.59-6.72 7.33.29-3.75.44-7.07.44-9.93a67.69 67.69 0 10-135.38 0c0 2.87.15 6.19.44 9.93-2.36-2.74-4.62-5.22-6.72-7.33a67.27 67.27 0 00-47.82-20H134A67.9 67.9 0 0086.29 182c2.1 2.09 4.58 4.35 7.34 6.72-3.74-.29-7.06-.44-9.94-.44a67.69 67.69 0 000 135.38c2.86 0 6.18-.15 9.93-.44-2.74 2.35-5.22 4.61-7.33 6.72a67.55 67.55 0 0047.82 115.42h.25A67.32 67.32 0 00182 425.71c2.09-2.1 4.35-4.58 6.71-7.33-.28 3.73-.43 7.05-.43 9.93a67.69 67.69 0 00135.38 0c0-2.87-.15-6.19-.44-9.94 2.36 2.75 4.62 5.24 6.72 7.34a67.32 67.32 0 0047.67 19.68h.25A67.5 67.5 0 00425.71 330c-2.11-2.11-4.59-4.37-7.33-6.72 3.75.29 7.07.44 9.93.44a67.27 67.27 0 0047.62-19.81zM256 341a85 85 0 1185-85 85.1 85.1 0 01-85 85z\"}}]})(props);\n};\nexport function IoFlower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M475.93 303.91a67.49 67.49 0 00-44.34-115.53 5.2 5.2 0 01-4.58-3.21 5.21 5.21 0 011-5.51A67.83 67.83 0 00378 66.33h-.25A67.13 67.13 0 00332.35 84a5.21 5.21 0 01-5.52 1 5.23 5.23 0 01-3.22-4.58 67.68 67.68 0 00-135.23 0 5.2 5.2 0 01-3.21 4.58 5.21 5.21 0 01-5.52-1 67.11 67.11 0 00-45.44-17.69H134a67.91 67.91 0 00-50 113.34 5.21 5.21 0 011 5.51 5.2 5.2 0 01-4.58 3.21 67.71 67.71 0 000 135.23 5.23 5.23 0 014.58 3.23 5.22 5.22 0 01-1 5.52 67.54 67.54 0 0050.08 113h.25A67.38 67.38 0 00179.65 428a5.21 5.21 0 015.51-1 5.2 5.2 0 013.21 4.58 67.71 67.71 0 00135.23 0 5.23 5.23 0 013.22-4.58 5.21 5.21 0 015.51 1 67.38 67.38 0 0045.29 17.42h.25a67.48 67.48 0 0050.08-113 5.22 5.22 0 01-1-5.52 5.23 5.23 0 014.58-3.22 67.31 67.31 0 0044.4-19.77zM256 336a80 80 0 1180-80 80.09 80.09 0 01-80 80z\"}}]})(props);\n};\nexport function IoFolderOpenOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 192v-72a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H408a40 40 0 0140 40v40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M479.9 226.55L463.68 392a40 40 0 01-39.93 40H88.25a40 40 0 01-39.93-40L32.1 226.55A32 32 0 0164 192h384.1a32 32 0 0131.8 34.55z\"}}]})(props);\n};\nexport function IoFolderOpenSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.08 189.4l28.58 233.87A28 28 0 0072.52 448h367a28 28 0 0027.86-24.73l28.54-233.87A12 12 0 00484 176H28a12 12 0 00-11.92 13.4zM464 124a28 28 0 00-28-28H244.84l-48-32H76a28 28 0 00-28 28v52h416z\"}}]})(props);\n};\nexport function IoFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 96H252.11a23.89 23.89 0 01-13.31-4L211 73.41A55.77 55.77 0 00179.89 64H104a56.06 56.06 0 00-56 56v24h416c0-30.88-25.12-48-56-48zm15.75 352H88.25a56 56 0 01-55.93-55.15L16.18 228.11v-.28A48 48 0 0164 176h384.1a48 48 0 0147.8 51.83v.28l-16.22 164.74A56 56 0 01423.75 448zm56.15-221.45z\"}}]})(props);\n};\nexport function IoFolderOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M440 432H72a40 40 0 01-40-40V120a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H440a40 40 0 0140 40v240a40 40 0 01-40 40zM32 192h448\"}}]})(props);\n};\nexport function IoFolderSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 420a28 28 0 0028 28h424a28 28 0 0028-28V208H16zm480-296a28 28 0 00-28-28H212.84l-48-32H44a28 28 0 00-28 28v84h480z\"}}]})(props);\n};\nexport function IoFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 152a56 56 0 00-56-56H220.11a23.89 23.89 0 01-13.31-4L179 73.41A55.77 55.77 0 00147.89 64H72a56 56 0 00-56 56v48a8 8 0 008 8h464a8 8 0 008-8zM16 392a56 56 0 0056 56h368a56 56 0 0056-56V216a8 8 0 00-8-8H24a8 8 0 00-8 8z\"}}]})(props);\n};\nexport function IoFootballOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"192\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 175.15l-76.09 63.83L200 320h112l20.09-81.02L256 175.15zm76.09 63.83l52.87-22.4 25.78-73.26M447 269.97l-62.04-53.39m-205.05 22.4l-52.87-22.4-25.78-73.26M65 269.97l62.04-53.39M256 175.15v-57.57l64-42.64m-128-.01l64 42.65M312 320l28 48-28 71m98.74-71H342m-142-48l-28 48 28.37 71.5M101.63 368H172\"}}]})(props);\n};\nexport function IoFootballSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm140.64 296.08h-46.77l-16.89-29 15-60.44L377.79 242l42.65 36.71a164.87 164.87 0 01-23.8 65.37zM134.21 242L164 254.67l15 60.44-16.89 29h-46.75a164.87 164.87 0 01-23.8-65.34zm249.07-92.47l-18.41 52.33-31.12 13.18L277 167.46v-35l43.86-29.22a166.87 166.87 0 0162.42 46.32zM191.14 103.2L235 132.42v35l-56.75 47.61-31.12-13.18-18.41-52.33a166.87 166.87 0 0162.42-46.32zm26.44 314.3l-20.1-50.66 16-27.51h85l16.06 27.53-20 50.6a166.23 166.23 0 01-77 0z\"}}]})(props);\n};\nexport function IoFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm143 304h-45.22a8 8 0 01-6.91-4l-16.14-27.68a8 8 0 01-.86-6l14.86-59.92a8 8 0 014.65-5.45l28.1-11.9a8 8 0 018.34 1.3l41.63 35.82a8 8 0 012.69 7.26 174.75 174.75 0 01-24.28 66.68A8 8 0 01399 352zM134.52 237.13l28.1 11.9a8 8 0 014.65 5.45l14.86 59.92a8 8 0 01-.86 6L165.13 348a8 8 0 01-6.91 4H113a8 8 0 01-6.82-3.81 174.75 174.75 0 01-24.28-66.68 8 8 0 012.69-7.26l41.63-35.82a8 8 0 018.3-1.3zm256.94-87.24l-18.07 51.38A8 8 0 01369 206l-29.58 12.53a8 8 0 01-8.26-1.24L274.9 170.1a8 8 0 01-2.9-6.1v-33.58a8 8 0 013.56-6.65l42.83-28.54a8 8 0 017.66-.67A176.92 176.92 0 01390 142a8 8 0 011.46 7.89zM193.6 95.23l42.84 28.54a8 8 0 013.56 6.65V164a8 8 0 01-2.86 6.13l-56.26 47.19a8 8 0 01-8.26 1.24L143 206a8 8 0 01-4.43-4.72L120.5 149.9a8 8 0 011.5-7.9 176.92 176.92 0 0164-47.48 8 8 0 017.6.71zm17.31 327.46L191.18 373a8 8 0 01.52-7l15.17-26a8 8 0 016.91-4h84.44a8 8 0 016.91 4l15.18 26a8 8 0 01.53 7l-19.59 49.67a8 8 0 01-5.69 4.87 176.58 176.58 0 01-79 0 8 8 0 01-5.65-4.85z\"}}]})(props);\n};\nexport function IoFootstepsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M200 246.84c8.81 58.62-7.33 90.67-52.91 97.41-50.65 7.49-71.52-26.44-80.33-85.06-11.85-78.88 16-127.94 55.71-131.1 36.14-2.87 68.71 60.14 77.53 118.75zm23.65 162.69c3.13 33.28-14.86 64.34-42 69.66-27.4 5.36-58.71-16.37-65.09-49.19s17.75-34.56 47.32-40.21 55.99-20.4 59.77 19.74zM312 150.83c-8.81 58.62 7.33 90.67 52.9 97.41 50.66 7.49 71.52-26.44 80.33-85.06 11.86-78.89-16-128.22-55.7-131.1-36.4-2.64-68.71 60.13-77.53 118.75zm-23.65 162.7c-3.13 33.27 14.86 64.34 42 69.66 27.4 5.36 58.71-16.37 65.09-49.19s-17.75-34.56-47.32-40.22-55.99-20.4-59.77 19.75z\"}}]})(props);\n};\nexport function IoFootstepsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M130.54 358.31c-12.83 1.88-33.95 5.38-48-10.56S56.34 293.32 51 258.92c-7.88-50.7-.06-93.43 22-120.31 13-15.83 30.06-25 49.34-26.46 16.51-1.27 41.18 5.19 65 43.19 14.92 23.81 26.27 55.44 31.14 86.77 5.88 37.82 11.61 78.18-8.44 92.65-11.31 8.17-19.43 11-38.62 15.57-15.78 3.75-28.04 6.09-40.88 7.98zm-22.82 32.53l108.89-22.46c9.2-1.9 16.58 3.16 20 18.32 11.22 49.76-4.86 109.3-55.22 109.3-47.69 0-79.47-54.36-84.66-83.58-2.37-13.25 1.01-19.53 10.99-21.58zm232.87-136.5c-19.19-4.55-27.31-7.4-38.62-15.57-20.05-14.47-14.32-54.83-8.44-92.65 4.87-31.33 16.22-63 31.14-86.77 23.8-38 48.47-44.46 65-43.19C408.93 17.63 426 26.78 439 42.61c22.08 26.88 29.9 69.61 22 120.31-5.35 34.4-17.46 72.76-31.59 88.83s-35.13 12.44-48 10.56-25.05-4.23-40.82-7.97zm63.69 40.5l-108.89-22.46c-9.2-1.9-16.58 3.16-20 18.32-11.21 49.76 4.87 109.3 55.23 109.3 47.69 0 79.47-54.36 84.66-83.58 2.36-13.25-1.02-19.53-11-21.58z\"}}]})(props);\n};\nexport function IoFootsteps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M133.83 361.27c-22.61 0-41-8.17-54.79-24.39s-22.84-40.29-28.11-75.31c-7.76-51.61-.06-95.11 21.68-122.48 12.8-16.12 29.6-25.44 48.58-26.94 16.25-1.3 40.54 5.29 64 44 14.69 24.24 25.86 56.44 30.65 88.34 5.79 38.51 1.48 66.86-13.18 86.65-11.64 15.72-29.54 25.46-53.21 29a106.46 106.46 0 01-15.62 1.13zM173 496c-13.21 0-26.6-4.23-38.66-12.36a79.79 79.79 0 01-33.52-50.6c-2.85-14.66-1.14-26.31 5.22-35.64 10.33-15.15 28.87-18.56 48.49-22.18 2.07-.38 4.17-.76 6.3-1.17 4.52-.86 9.14-2 13.62-3.11 16.78-4.14 34.14-8.43 48.47 1.75 9.59 6.8 15 18.36 16.62 35.32 1.84 19.57-2.36 39.1-11.83 55-10.19 17.11-25.47 28.42-43 31.86A61 61 0 01173 496zm205.17-230.73a106.69 106.69 0 01-15.6-1.2c-23.66-3.5-41.56-13.25-53.2-29-14.66-19.79-19-48.13-13.18-86.65 4.79-31.93 15.93-64.1 30.55-88.25 23.34-38.57 47.66-45.26 64-44.08 18.92 1.38 35.69 10.57 48.51 26.6 21.89 27.37 29.65 71 21.86 122.84-5.27 35-14.2 58.95-28.11 75.31s-32.22 24.43-54.83 24.43zM339 400a61 61 0 01-11.68-1.13c-17.56-3.44-32.84-14.75-43-31.86-9.47-15.9-13.67-35.43-11.83-55 1.6-17 7-28.52 16.62-35.33 14.33-10.17 31.69-5.89 48.47-1.74 4.48 1.1 9.1 2.24 13.62 3.11l6.29 1.17c19.63 3.61 38.17 7 48.5 22.17 6.36 9.33 8.07 21 5.22 35.64a79.78 79.78 0 01-33.52 50.61C365.56 395.78 352.17 400 339 400z\"}}]})(props);\n};\nexport function IoFunnelOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M35.4 87.12l168.65 196.44A16.07 16.07 0 01208 294v119.32a7.93 7.93 0 005.39 7.59l80.15 26.67A7.94 7.94 0 00304 440V294a16.07 16.07 0 014-10.44L476.6 87.12A14 14 0 00466 64H46.05A14 14 0 0035.4 87.12z\"}}]})(props);\n};\nexport function IoFunnelSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48l192 240v128l128 48V288L512 48H0z\"}}]})(props);\n};\nexport function IoFunnel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 464a23.88 23.88 0 01-7.55-1.23L208.3 436.1a23.92 23.92 0 01-16.3-22.78V294.11a.44.44 0 00-.09-.13L23.26 97.54A30 30 0 0146.05 48H466a30 30 0 0122.79 49.54L320.09 294a.77.77 0 00-.09.13V440a23.93 23.93 0 01-24 24z\"}}]})(props);\n};\nexport function IoGameControllerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M467.51 248.83c-18.4-83.18-45.69-136.24-89.43-149.17A91.5 91.5 0 00352 96c-26.89 0-48.11 16-96 16s-69.15-16-96-16a99.09 99.09 0 00-27.2 3.66C89 112.59 61.94 165.7 43.33 248.83c-19 84.91-15.56 152 21.58 164.88 26 9 49.25-9.61 71.27-37 25-31.2 55.79-40.8 119.82-40.8s93.62 9.6 118.66 40.8c22 27.41 46.11 45.79 71.42 37.16 41.02-14.01 40.44-79.13 21.43-165.04z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"292\",\"cy\":\"224\",\"r\":\"20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 288a20 20 0 1120-19.95A20 20 0 01336 288z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"336\",\"cy\":\"180\",\"r\":\"20\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"380\",\"cy\":\"224\",\"r\":\"20\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 176v96m48-48h-96\"}}]})(props);\n};\nexport function IoGameControllerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.07 356.88L439 151c-8.86-40.35-23-71-88-71H145c-66 0-79.14 30.65-88 71L18 356.88c-7 34.12 4.43 61.25 33.37 71.81S103 423 119.18 391.3l15.42-30.52a16 16 0 0114.28-8.78h198.28a16 16 0 0114.28 8.78l15.42 30.52c16.14 31.7 38.88 48 67.81 37.39S485 391 478.07 356.88zM224 240h-48v48h-32v-48H96v-32h48v-48h32v48h48zm68 4a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20zm0-88a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20z\"}}]})(props);\n};\nexport function IoGameController (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.13 245.38C461.92 149.49 430 98.31 382.65 84.33A107.13 107.13 0 00352 80c-13.71 0-25.65 3.34-38.28 6.88C298.5 91.15 281.21 96 256 96s-42.51-4.84-57.76-9.11C185.6 83.34 173.67 80 160 80a115.74 115.74 0 00-31.73 4.32c-47.1 13.92-79 65.08-100.52 161C4.61 348.54 16 413.71 59.69 428.83a56.62 56.62 0 0018.64 3.22c29.93 0 53.93-24.93 70.33-45.34 18.53-23.1 40.22-34.82 107.34-34.82 59.95 0 84.76 8.13 106.19 34.82 13.47 16.78 26.2 28.52 38.9 35.91 16.89 9.82 33.77 12 50.16 6.37 25.82-8.81 40.62-32.1 44-69.24 2.57-28.48-1.39-65.89-12.12-114.37zM208 240h-32v32a16 16 0 01-32 0v-32h-32a16 16 0 010-32h32v-32a16 16 0 0132 0v32h32a16 16 0 010 32zm84 4a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-19.95A20 20 0 01336 288zm0-88a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20z\"}}]})(props);\n};\nexport function IoGiftOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 104v56h56a56 56 0 10-56-56zm0 0v56h-56a56 56 0 1156-56z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"384\",\"height\":\"112\",\"x\":\"64\",\"y\":\"160\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 272v144a48 48 0 01-48 48H144a48 48 0 01-48-48V272m160-112v304\"}}]})(props);\n};\nexport function IoGiftSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M346 110a34 34 0 00-68 0v34h34a34 34 0 0034-34zm-112 0a34 34 0 10-34 34h34z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M234 144h44v112h164a22 22 0 0022-22v-68a22 22 0 00-22-22h-59.82A77.95 77.95 0 00256 55.79 78 78 0 00129.81 144H70a22 22 0 00-22 22v68a22 22 0 0022 22h164zm44-34a34 34 0 1134 34h-34zm-112 0a34 34 0 1168 0v34h-34a34 34 0 01-34-34zm112 370h132a22 22 0 0022-22V288H278zM80 458a22 22 0 0022 22h132V288H80z\"}}]})(props);\n};\nexport function IoGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M200 144h40v-40a40 40 0 10-40 40zm152-40a40 40 0 00-80 0v40h40a40 40 0 0040-40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M80 416a64 64 0 0064 64h92a4 4 0 004-4V292a4 4 0 00-4-4H88a8 8 0 00-8 8zm160-164V144h32v108a4 4 0 004 4h140a47.93 47.93 0 0016-2.75A48.09 48.09 0 00464 208v-16a48 48 0 00-48-48h-40.54a2 2 0 01-1.7-3A72 72 0 00256 58.82 72 72 0 00138.24 141a2 2 0 01-1.7 3H96a48 48 0 00-48 48v16a48.09 48.09 0 0032 45.25A47.93 47.93 0 0096 256h140a4 4 0 004-4zm32-148a40 40 0 1140 40h-40zm-74.86-39.9A40 40 0 01240 104v40h-40a40 40 0 01-2.86-79.89zM276 480h92a64 64 0 0064-64V296a8 8 0 00-8-8H276a4 4 0 00-4 4v184a4 4 0 004 4z\"}}]})(props);\n};\nexport function IoGitBranchOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"160\",\"cy\":\"96\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"160\",\"cy\":\"416\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 368V144\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"352\",\"cy\":\"160\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 208c0 128-192 48-192 160\"}}]})(props);\n};\nexport function IoGitBranchSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96a64 64 0 00-58.86 89.11l-101.14 88V151.39a64 64 0 10-64 0v209.22a64 64 0 1064 0V358l154.25-134.27c1.9.17 3.81.27 5.75.27a64 64 0 000-128zM160 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm192-256a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 160a64 64 0 10-96.27 55.24c-2.29 29.08-20.08 37-75 48.42-17.76 3.68-35.93 7.45-52.71 13.93v-126.2a64 64 0 10-64 0v209.22a64 64 0 1064.42.24c2.39-18 16-24.33 65.26-34.52 27.43-5.67 55.78-11.54 79.78-26.95 29-18.58 44.53-46.78 46.36-83.89A64 64 0 00416 160zM160 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm192-256a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitCommitOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"96\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 256H48m416 0H352\"}}]})(props);\n};\nexport function IoGitCommitSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 224H380a128 128 0 00-247.9 0H32v64h100.05A128 128 0 00380 288h100zm-224 96a64 64 0 1164-64 64.07 64.07 0 01-64 64z\"}}]})(props);\n};\nexport function IoGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 224h-68a128 128 0 00-247.9 0H64a32 32 0 000 64h68.05A128 128 0 00380 288h68a32 32 0 000-64zm-192 96a64 64 0 1164-64 64.07 64.07 0 01-64 64z\"}}]})(props);\n};\nexport function IoGitCompareOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 160l-64-64 64-64m-97 320l64 64-64 64\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"112\",\"cy\":\"96\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"400\",\"cy\":\"416\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 96h84a60 60 0 0160 60v212m-145 48h-84a60 60 0 01-60-60V144\"}}]})(props);\n};\nexport function IoGitCompareSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209 384h-37a28 28 0 01-28-28V152a64 64 0 10-64-1.16V356a92.1 92.1 0 0092 92h37v55.21L294.39 416 209 328.79zM113 64a32 32 0 11-32 32 32 32 0 0132-32zm319 296.61V156a92.1 92.1 0 00-92-92h-35V9.93L217.14 96 305 182.07V128h35a28 28 0 0128 28v204.61a64 64 0 1064 0zM400 448a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.31 340.69A16 16 0 00191 352v32h-20a28 28 0 01-28-28V152a64 64 0 10-64-1.16V356a92.1 92.1 0 0092 92h20v32a16 16 0 0027.31 11.31l64-64a16 16 0 000-22.62zM112 64a32 32 0 11-32 32 32 32 0 0132-32zm320 296.61V156a92.1 92.1 0 00-92-92h-20V32a16 16 0 00-27.31-11.31l-64 64a16 16 0 000 22.62l64 64A16 16 0 00320 160v-32h20a28 28 0 0128 28v204.61a64 64 0 1064 0zM400 448a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitMergeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"129\",\"cy\":\"96\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"129\",\"cy\":\"416\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M129 144v224\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"385\",\"cy\":\"288\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M129 144c0 96 112 144 208 144\"}}]})(props);\n};\nexport function IoGitMergeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 224a63.66 63.66 0 00-37.95 12.5L160 153.36v-2a64 64 0 10-64 0v209.25a64 64 0 1064 0V223.46l160.41 71.69A64 64 0 10384 224zM128 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm256-128a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385 224a64 64 0 00-55.33 31.89c-42.23-1.21-85.19-12.72-116.21-31.33-32.2-19.32-49.71-44-52.15-73.35a64 64 0 10-64.31.18v209.22a64 64 0 1064 0v-94.46c44.76 34 107.28 52.38 168.56 53.76A64 64 0 10385 224zM129 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm256-128a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitNetworkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"96\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"416\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 256v112\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"96\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 144c0 74.67 68.92 112 128 112m128-112c0 74.67-68.92 112-128 112\"}}]})(props);\n};\nexport function IoGitNetworkSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32a64 64 0 00-57.67 91.73l-70.83 80.82-70.19-80.1A64 64 0 10128 160c1.1 0 2.2 0 3.29-.08L224 265.7v94.91a64 64 0 1064 0v-96.05l91.78-104.71c1.39.09 2.8.15 4.22.15a64 64 0 000-128zM96 96a32 32 0 1132 32 32 32 0 01-32-32zm160 352a32 32 0 1132-32 32 32 0 01-32 32zm128-320a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitNetwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96a64 64 0 10-96.31 55.21c-1.79 20.87-11.47 38.1-28.87 51.29C305.07 216 280.09 224 256 224s-49.07-8-66.82-21.5c-17.4-13.19-27.08-30.42-28.87-51.29a64 64 0 10-64.11.29c2.08 40.87 21.17 76.87 54.31 102C171.3 269.26 197 280.19 224 285.09v75.52a64 64 0 1064 0v-75.52c27-4.9 52.7-15.83 73.49-31.59 33.14-25.13 52.23-61.13 54.31-102A64 64 0 00448 96zM128 64a32 32 0 11-32 32 32 32 0 0132-32zm128 384a32 32 0 1132-32 32 32 0 01-32 32zm128-320a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitPullRequestOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"416\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 144v224m160-208l-64-64 64-64\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"96\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"416\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M240 96h84a60 60 0 0160 60v212\"}}]})(props);\n};\nexport function IoGitPullRequestSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a64 64 0 10-97 54.81v209.8a64 64 0 1064 0V152a64.06 64.06 0 0033-56zm-64-32a32 32 0 11-32 32 32 32 0 0132-32zm-1 384a32 32 0 1132-32 32 32 0 01-32 32zm289-87.39V156a92.1 92.1 0 00-92-92h-35V9.93L201.14 96 289 182.07V128h35a28 28 0 0128 28v204.61a64 64 0 1064 0zM384 448a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a64 64 0 10-96 55.39v209.22a64 64 0 1064 0V151.39A64 64 0 00192 96zm-64-32a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm288-87.39V156a92.1 92.1 0 00-92-92h-20V32a16 16 0 00-27.31-11.31l-64 64a16 16 0 000 22.62l64 64A16 16 0 00304 160v-32h20a28 28 0 0128 28v204.61a64 64 0 1064 0zM384 448a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoGlassesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M224 232a32 32 0 0164 0m160-32h16m-400 0H48m16 0c0 96 16 128 80 128s80-32 80-128c0 0-16-16-80-16s-80 16-80 16zm384 0c0 96-16 128-80 128s-80-32-80-128c0 0 16-16 80-16s80 16 80 16z\"}}]})(props);\n};\nexport function IoGlassesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 176H16v64h21.24l12.44 112h171.87L240 241.32V240a16 16 0 0132 0v1.32L290.45 352h171.87l12.44-112H496z\"}}]})(props);\n};\nexport function IoGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 184h-10.9a78.72 78.72 0 00-16-7.18C419.5 171 396.26 168 368 168s-51.5 3-69.06 8.82c-14.06 4.69-20.25 9.86-22.25 11.87a47.94 47.94 0 00-41.36 0c-2-2-8.19-7.18-22.25-11.87C195.5 171 172.26 168 144 168s-51.5 3-69.06 8.82a78.72 78.72 0 00-16 7.18H48a16 16 0 000 32h.17c1 45.46 6.44 72.78 18.11 92.23a66.78 66.78 0 0031.92 28c12.23 5.24 27.22 7.79 45.8 7.79 24.15 0 58.48-3.71 77.72-35.77 9.68-16.14 15.09-37.69 17.21-70.52A16 16 0 00240 232a16 16 0 0132 0 16 16 0 001.07 5.71c2.12 32.83 7.53 54.38 17.21 70.52a66.78 66.78 0 0031.92 28c12.23 5.24 27.22 7.79 45.8 7.79 24.15 0 58.48-3.71 77.72-35.77 11.67-19.45 17.13-46.77 18.11-92.23h.17a16 16 0 000-32z\"}}]})(props);\n};\nexport function IoGlobeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M117.33 117.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34m0 277.34c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 48v416m208-208H48\"}}]})(props);\n};\nexport function IoGlobeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"44\",\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"44\",\"d\":\"M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M117.33 121.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34m0 269.34c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"44\",\"d\":\"M256 48v416m208-208H48\"}}]})(props);\n};\nexport function IoGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340.75 344.49c5.91-20.7 9.82-44.75 11.31-67.84a4.41 4.41 0 00-4.46-4.65h-71.06a4.43 4.43 0 00-4.47 4.39v55.3a4.44 4.44 0 004.14 4.38 273.51 273.51 0 0159 11.39 4.45 4.45 0 005.54-2.97zm-17.17 32.82a260.05 260.05 0 00-46.6-9.09 4.42 4.42 0 00-4.91 4.29v65.24a4.47 4.47 0 006.76 3.7c15.9-9.27 29-24.84 40.84-45.43 1.94-3.36 4.89-9.15 6.67-12.69a4.29 4.29 0 00-2.76-6.02zm-88.29-8.91a256.85 256.85 0 00-46.56 8.82c-2.64.76-3.75 4.4-2.55 6.79 1.79 3.56 4 8.11 5.89 11.51 13 23 26.84 37.5 41.24 45.93a4.47 4.47 0 006.76-3.7v-65.27a4.16 4.16 0 00-4.78-4.08zm.31-96.4h-71.06a4.41 4.41 0 00-4.46 4.64c1.48 23.06 5.37 47.16 11.26 67.84a4.46 4.46 0 005.59 3 272.2 272.2 0 0159-11.36 4.44 4.44 0 004.15-4.38V276.4a4.43 4.43 0 00-4.48-4.4zM277 143.78a235.8 235.8 0 0046.5-9.14 4.3 4.3 0 002.76-6c-1.79-3.57-4.27-8.68-6.17-12.09-12.29-22-26.14-37.35-41.24-46a4.48 4.48 0 00-6.76 3.7v65.23a4.43 4.43 0 004.91 4.3zm-.46 96.22h71.06a4.39 4.39 0 004.46-4.58c-1.48-22.77-5.27-47.8-11.16-68.22a4.46 4.46 0 00-5.59-2.95c-19 5.74-38.79 10.43-59.09 12a4.4 4.4 0 00-4.15 4.32v55.11a4.4 4.4 0 004.47 4.32zM233.31 70.56c-15.42 8.57-29.17 24.43-41.47 46.37-1.91 3.41-4.19 8.11-6 11.67a4.31 4.31 0 002.76 6 225.42 225.42 0 0046.54 9.17 4.43 4.43 0 004.91-4.29V74.26a4.49 4.49 0 00-6.74-3.7zm2.61 105.7c-20.3-1.55-40.11-6.24-59.09-12a4.46 4.46 0 00-5.59 2.95c-5.89 20.42-9.68 45.45-11.16 68.22a4.39 4.39 0 004.46 4.58h71.06a4.4 4.4 0 004.47-4.34v-55.09a4.4 4.4 0 00-4.15-4.32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM176.6 430.85a219.08 219.08 0 01-12.48-19.66c-2-3.69-4.84-9.26-6.73-13.13a7.29 7.29 0 00-10.31-3.16c-4.3 2.41-10 5.72-14.13 8.43a147.29 147.29 0 01-23.57-22.43 248.83 248.83 0 0130.41-18.36c1.86-1 2.77-2.14 2.18-4.18a374.8 374.8 0 01-14.09-82.17 4.36 4.36 0 00-4.3-4.17H66.84a2 2 0 01-2-1.7A98.28 98.28 0 0164 256a96.27 96.27 0 01.86-14.29 2 2 0 012-1.7h56.74c2.29 0 4.17-1.32 4.29-3.63a372.71 372.71 0 0114-81.83 4.36 4.36 0 00-2.19-5.11 260.63 260.63 0 01-29.84-17.9 169.82 169.82 0 0123.14-22.8c4.08 2.68 9.4 5.71 13.66 8.11a7.89 7.89 0 0011-3.42c1.88-3.87 4-8.18 6.06-11.88a221.93 221.93 0 0112.54-19.91A185 185 0 01256 64c28.94 0 55.9 7 80.53 18.46a202.23 202.23 0 0112 19c2.59 4.66 5.34 10.37 7.66 15.32a4.29 4.29 0 005.92 1.94c5.38-2.91 11.21-6.26 16.34-9.63a171.36 171.36 0 0123.2 23 244.89 244.89 0 01-29.06 17.31 4.35 4.35 0 00-2.18 5.12 348.68 348.68 0 0113.85 81.4 4.33 4.33 0 004.3 4.12l56.62-.07a2 2 0 012 1.7 117.46 117.46 0 010 28.62 2 2 0 01-2 1.72h-56.67a4.35 4.35 0 00-4.3 4.17 367.4 367.4 0 01-13.87 81.3 4.45 4.45 0 002.19 5.19c5 2.59 10.57 5.48 15.37 8.42s9.55 6.08 14.13 9.34a172.73 172.73 0 01-23 22.93c-2.44-1.61-5.34-3.44-7.84-4.94-1.72-1-4.89-2.77-6.65-3.76-3.82-2.14-7.88-.54-9.79 3.4s-4.83 9.59-6.87 13.25a212.42 212.42 0 01-12.35 19.53C310.91 442.37 284.94 448 256 448s-54.77-5.63-79.4-17.15z\"}}]})(props);\n};\nexport function IoGolfOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 400V32l176 80-176 80\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 336c-87 0-175.3 43.2-191.64 124.74C62.39 470.57 68.57 480 80 480h352c11.44 0 17.62-9.43 15.65-19.26C431.3 379.2 343 336 256 336z\"}}]})(props);\n};\nexport function IoGolfSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 16v304.47q8-.47 16-.47t16 .47V202.3L448 112z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M462.91 457.5c-8.54-42.85-35-78.74-76.62-103.8-32.43-19.55-72.53-31.3-114.29-33.7v95.79h-32V320c-41.79 2.4-81.89 14.15-114.32 33.7-41.59 25.06-68.08 60.95-76.62 103.8-2 9.81-.68 38.5-.68 38.5h415.21s1.28-28.69-.68-38.5z\"}}]})(props);\n};\nexport function IoGolf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 320.46V202.3l166.62-75.73a16 16 0 000-29.14l-176-80A16 16 0 00240 32v288.46q8-.45 16-.46t16 .46z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M463.33 457.5c-8.56-42.85-35.11-78.74-76.78-103.8-32.5-19.55-72.67-31.3-114.55-33.7v79.75a16 16 0 11-32 0V320c-41.88 2.4-82.05 14.15-114.55 33.7-41.67 25.06-68.22 60.95-76.78 103.8a32.49 32.49 0 006.44 27.08C61.13 492 70 496 80 496h352c10 0 18.88-4.05 24.9-11.42a32.49 32.49 0 006.43-27.08z\"}}]})(props);\n};\nexport function IoGridOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"176\",\"x\":\"48\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"20\",\"ry\":\"20\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"176\",\"x\":\"288\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"20\",\"ry\":\"20\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"176\",\"x\":\"48\",\"y\":\"288\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"20\",\"ry\":\"20\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"176\",\"x\":\"288\",\"y\":\"288\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"20\",\"ry\":\"20\"}}]})(props);\n};\nexport function IoGridSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 240H32V32h208zm240 0H272V32h208zM240 480H32V272h208zm240 0H272V272h208z\"}}]})(props);\n};\nexport function IoGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204 240H68a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zm240 0H308a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM204 480H68a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zm240 0H308a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36z\"}}]})(props);\n};\nexport function IoHammerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M277.42 247a24.68 24.68 0 00-4.08-5.47L255 223.44a21.63 21.63 0 00-6.56-4.57 20.93 20.93 0 00-23.28 4.27c-6.36 6.26-18 17.68-39 38.43C146 301.3 71.43 367.89 37.71 396.29a16 16 0 00-1.09 23.54l39 39.43a16.13 16.13 0 0023.67-.89c29.24-34.37 96.3-109 136-148.23 20.39-20.06 31.82-31.58 38.29-37.94a21.76 21.76 0 003.84-25.2zm201.01-46l-34.31-34a5.44 5.44 0 00-4-1.59 5.59 5.59 0 00-4 1.59h0a11.41 11.41 0 01-9.55 3.27c-4.48-.49-9.25-1.88-12.33-4.86-7-6.86 1.09-20.36-5.07-29a242.88 242.88 0 00-23.08-26.72c-7.06-7-34.81-33.47-81.55-52.53a123.79 123.79 0 00-47-9.24c-26.35 0-46.61 11.76-54 18.51-5.88 5.32-12 13.77-12 13.77a91.29 91.29 0 0110.81-3.2 79.53 79.53 0 0123.28-1.49C241.19 76.8 259.94 84.1 270 92c16.21 13 23.18 30.39 24.27 52.83.8 16.69-15.23 37.76-30.44 54.94a7.85 7.85 0 00.4 10.83l21.24 21.23a8 8 0 0011.14.1c13.93-13.51 31.09-28.47 40.82-34.46s17.58-7.68 21.35-8.09a35.71 35.71 0 0121.3 4.62 13.65 13.65 0 013.08 2.38c6.46 6.56 6.07 17.28-.5 23.74l-2 1.89a5.5 5.5 0 000 7.84l34.31 34a5.5 5.5 0 004 1.58 5.65 5.65 0 004-1.58L478.43 209a5.82 5.82 0 000-8z\"}}]})(props);\n};\nexport function IoHammerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.28 256.9l-54.42-54.41a12 12 0 00-17 0L12.45 401a12 12 0 00-.27 17.2l66.05 66.28a12 12 0 0017.22-.23l198.81-210.36a12 12 0 00.02-16.99zm205.05-57.57l-43.89-43.58a21.46 21.46 0 00-15.28-6.26 21.89 21.89 0 00-12.79 4.14c0-.43.06-.85.09-1.22.45-6.5 1.15-16.32-5.2-25.22a258 258 0 00-24.8-28.74.6.6 0 00-.08-.08c-13.32-13.12-42.31-37.83-86.72-55.94A139.55 139.55 0 00257.56 32C226 32 202 46.24 192.81 54.68A53.4 53.4 0 00176 86.17L192 96s8.06-2 13.86-3.39a62.73 62.73 0 0118.45-1.15c13.19 1.09 28.79 7.64 35.69 13.09 11.7 9.41 17.33 22.09 18.26 41.09.2 4.23-9.52 21.35-24.16 39.84a8 8 0 00.61 10.62l45.37 45.37a8 8 0 0011 .25c12.07-11 30.49-28 34.67-30.59 7.69-4.73 13.19-5.64 14.7-5.8a19.18 19.18 0 0111.29 2.38 1.24 1.24 0 01-.31.95l-1.82 1.73-.3.28a21.52 21.52 0 00.05 30.54l43.95 43.68a8 8 0 0011.28 0l74.68-74.2a8 8 0 00.06-11.36z\"}}]})(props);\n};\nexport function IoHammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280.16 242.79l-26.11-26.12a32 32 0 00-45.14-.12L27.38 384.08c-6.61 6.23-10.95 14.17-11.35 23.06a32.11 32.11 0 009.21 23.94l39 39.43a.46.46 0 00.07.07A32.29 32.29 0 0087 480h1.18c8.89-.33 16.85-4.5 23.17-11.17l168.7-180.7a32 32 0 00.11-45.34zM490 190l-.31-.31-34.27-33.92a21.46 21.46 0 00-15.28-6.26 21.89 21.89 0 00-12.79 4.14c0-.43.06-.85.09-1.22.45-6.5 1.15-16.32-5.2-25.22a258 258 0 00-24.8-28.74.6.6 0 00-.08-.08c-13.32-13.12-42.31-37.83-86.72-55.94A139.55 139.55 0 00257.56 32C226 32 202 46.24 192.81 54.68a119.92 119.92 0 00-14.18 16.22 16 16 0 0018.65 24.34 74.45 74.45 0 018.58-2.63 63.46 63.46 0 0118.45-1.15c13.19 1.09 28.79 7.64 35.69 13.09 11.7 9.41 17.33 22.09 18.26 41.09.18 3.82-7.72 18.14-20 34.48a16 16 0 001.45 21l34.41 34.41a16 16 0 0022 .62c9.73-8.69 24.55-21.79 29.73-25 7.69-4.73 13.19-5.64 14.7-5.8a19.18 19.18 0 0111.29 2.38 1.24 1.24 0 01-.31.95l-1.82 1.73-.3.28a21.52 21.52 0 00.05 30.54l34.26 33.91a21.45 21.45 0 0015.28 6.25 21.7 21.7 0 0015.22-6.2l55.5-54.82c.19-.19.38-.39.56-.59A21.87 21.87 0 00490 190z\"}}]})(props);\n};\nexport function IoHandLeftOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 320V144a32 32 0 0132-32h0a32 32 0 0132 32v112m0 0V80a32 32 0 0132-32h0a32 32 0 0132 32v160m64 1V96a32 32 0 0132-32h0a32 32 0 0132 32v224m-128-80V48a32 32 0 0132-32h0a32 32 0 0132 32v192\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 320c0 117.4 64 176 152 176s123.71-39.6 144-88l52.71-144c6.66-18.05 3.64-34.79-11.87-43.6h0c-15.52-8.82-35.91-4.28-44.31 11.68L336 320\"}}]})(props);\n};\nexport function IoHandLeftSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.58 209.08c-15.06-6.62-32.38 1.31-38.5 17.62L356 312h-11.27V80c0-17.6-13.3-32-29.55-32-16.26 0-29.55 14.4-29.55 32v151.75l-14.78.25V32c0-17.6-13.3-32-29.55-32s-29.55 14.4-29.55 32v199.75L197 232V64c0-17.6-13.3-32-29.55-32-16.26 0-29.55 14.4-29.55 32v183.75l-14.8.25V128c0-17.6-13.3-32-29.55-32S64 110.4 64 128v216c0 75.8 37.13 168 169 168 40.8 0 79.42-7 100.66-21a121.41 121.41 0 0033.72-33.31 138 138 0 0016-31.78l62.45-175.14c6.17-16.31-1.19-35.06-16.25-41.69z\"}}]})(props);\n};\nexport function IoHandLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432.8 211.44c-15.52-8.82-34.91-2.28-43.31 13.68l-41.38 84.41a7 7 0 01-8.93 3.43 7 7 0 01-4.41-6.52V72c0-13.91-12.85-24-26.77-24s-26 10.09-26 24v156.64A11.24 11.24 0 01271.21 240 11 11 0 01260 229V24c0-13.91-10.94-24-24.86-24S210 10.09 210 24v204.64A11.24 11.24 0 01199.21 240 11 11 0 01188 229V56c0-13.91-12.08-24-26-24s-26 11.09-26 25v187.64A11.24 11.24 0 01125.21 256 11 11 0 01114 245V120c0-13.91-11.08-24-25-24s-25.12 10.22-25 24v216c0 117.41 72 176 160 176h16c88 0 115.71-39.6 136-88l68.71-169c6.62-18 3.6-34.75-11.91-43.56z\"}}]})(props);\n};\nexport function IoHandRightOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432 320V144a32 32 0 00-32-32h0a32 32 0 00-32 32v112m0 0V80a32 32 0 00-32-32h0a32 32 0 00-32 32v160m-64 1V96a32 32 0 00-32-32h0a32 32 0 00-32 32v224m128-80V48a32 32 0 00-32-32h0a32 32 0 00-32 32v192\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432 320c0 117.4-64 176-152 176s-123.71-39.6-144-88L83.33 264c-6.66-18.05-3.64-34.79 11.87-43.6h0c15.52-8.82 35.91-4.28 44.31 11.68L176 320\"}}]})(props);\n};\nexport function IoHandRightSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M82.42 209.08c15.06-6.62 32.38 1.31 38.5 17.62L156 312h11.27V80c0-17.6 13.3-32 29.55-32 16.26 0 29.55 14.4 29.55 32v151.75l14.78.25V32c0-17.6 13.3-32 29.55-32 16.3 0 29.55 14.4 29.55 32v199.75L315 232V64c0-17.6 13.3-32 29.55-32 16.26 0 29.55 14.4 29.55 32v183.75l14.78.25V128c0-17.6 13.3-32 29.55-32C434.7 96 448 110.4 448 128v216c0 75.8-37.13 168-169 168-40.8 0-79.42-7-100.66-21a121.41 121.41 0 01-33.72-33.31 138 138 0 01-16-31.78L66.16 250.77c-6.11-16.31 1.2-35.06 16.26-41.69z\"}}]})(props);\n};\nexport function IoHandRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M79.2 211.44c15.52-8.82 34.91-2.28 43.31 13.68l41.38 84.41a7 7 0 008.93 3.43 7 7 0 004.41-6.52V72c0-13.91 12.85-24 26.77-24s26 10.09 26 24v156.64A11.24 11.24 0 00240.79 240 11 11 0 00252 229V24c0-13.91 10.94-24 24.86-24S302 10.09 302 24v204.64A11.24 11.24 0 00312.79 240 11 11 0 00324 229V56c0-13.91 12.08-24 26-24s26 11.09 26 25v187.64A11.24 11.24 0 00386.79 256 11 11 0 00398 245V120c0-13.91 11.08-24 25-24s25.12 10.22 25 24v216c0 117.41-72 176-160 176h-16c-88 0-115.71-39.6-136-88L67.33 255c-6.66-18-3.64-34.75 11.87-43.56z\"}}]})(props);\n};\nexport function IoHappyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"184\",\"cy\":\"232\",\"r\":\"24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.05 384c-45.42 0-83.62-29.53-95.71-69.83a8 8 0 017.82-10.17h175.69a8 8 0 017.82 10.17c-11.99 40.3-50.2 69.83-95.62 69.83z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"328\",\"cy\":\"232\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoHappySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM328 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-144 0a24 24 0 11-24 24 23.94 23.94 0 0124-24zm72.05 176c-45.42 0-83.75-29.49-95.72-69.83C159.29 310.65 158 304 158 304h196s-1.31 6.69-2.33 10.17c-11.78 40.36-50.2 69.83-95.62 69.83z\"}}]})(props);\n};\nexport function IoHappy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM184 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm167.67 106.17c-12 40.3-50.2 69.83-95.62 69.83s-83.62-29.53-95.72-69.83a8 8 0 017.83-10.17h175.69a8 8 0 017.82 10.17zM328 256a24 24 0 1124-24 23.94 23.94 0 01-24 24z\"}}]})(props);\n};\nexport function IoHardwareChipOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"352\",\"height\":\"352\",\"x\":\"80\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"224\",\"height\":\"224\",\"x\":\"144\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 80V48m80 32V48M176 80V48m80 416v-32m80 32v-32m-160 32v-32m256-176h32m-32 80h32m-32-160h32M48 256h32m-32 80h32M48 176h32\"}}]})(props);\n};\nexport function IoHardwareChipSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 160h192v192H160z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 198v-44h-32V88a24 24 0 00-24-24h-66V32h-44v32h-36V32h-44v32h-36V32h-44v32H88a24 24 0 00-24 24v66H32v44h32v36H32v44h32v36H32v44h32v66a24 24 0 0024 24h66v32h44v-32h36v32h44v-32h36v32h44v-32h66a24 24 0 0024-24v-66h32v-44h-32v-36h32v-44h-32v-36zm-352-70h256v256H128z\"}}]})(props);\n};\nexport function IoHardwareChip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M352 128H160a32 32 0 00-32 32v192a32 32 0 0032 32h192a32 32 0 0032-32V160a32 32 0 00-32-32zm0 216a8 8 0 01-8 8H168a8 8 0 01-8-8V168a8 8 0 018-8h176a8 8 0 018 8z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"192\",\"height\":\"192\",\"x\":\"160\",\"y\":\"160\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 192a16 16 0 000-32h-16v-32a64.07 64.07 0 00-64-64h-32V48a16 16 0 00-32 0v16h-48V48a16 16 0 00-32 0v16h-48V48a16 16 0 00-32 0v16h-32a64.07 64.07 0 00-64 64v32H48a16 16 0 000 32h16v48H48a16 16 0 000 32h16v48H48a16 16 0 000 32h16v32a64.07 64.07 0 0064 64h32v16a16 16 0 0032 0v-16h48v16a16 16 0 0032 0v-16h48v16a16 16 0 0032 0v-16h32a64.07 64.07 0 0064-64v-32h16a16 16 0 000-32h-16v-48h16a16 16 0 000-32h-16v-48zm-80 160a32 32 0 01-32 32H160a32 32 0 01-32-32V160a32 32 0 0132-32h192a32 32 0 0132 32z\"}}]})(props);\n};\nexport function IoHeadsetOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M83 384c-13-33-35-93.37-35-128C48 141.12 149.33 48 256 48s208 93.12 208 208c0 34.63-23 97-35 128\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M108.39 270.13l-13.69 8h0c-30.23 17.7-31.7 72.41-3.38 122.2s75.87 75.81 106.1 58.12h0l13.69-8a16.16 16.16 0 005.78-21.87L130 276a15.74 15.74 0 00-21.61-5.87zm295.22 0l13.69 8h0c30.23 17.69 31.74 72.4 3.38 122.19s-75.87 75.81-106.1 58.12h0l-13.69-8a16.16 16.16 0 01-5.78-21.87L382 276a15.74 15.74 0 0121.61-5.87z\"}}]})(props);\n};\nexport function IoHeadsetSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M411.16 97.45C368.43 55.85 311.88 32 256 32S143.57 55.85 100.84 97.45C56.45 140.67 32 196 32 256s26.84 118.49 45.42 152.25S121 480 144 480c32 0 96-32 96-32L128 240l-54.42 31.73a176.07 176.07 0 01-1-18.84c0-48.57 19.32-94.1 56.15-130C164.24 88.34 210 70 256 70s91.73 18.34 127.27 52.93c36.83 35.86 56.14 81.39 56.14 130a175.56 175.56 0 01-1 18.82L384 240 272 448s64 32 96 32c23 0 48-38 66.58-71.75S480 316 480 256s-24.45-115.33-68.84-158.55z\"}}]})(props);\n};\nexport function IoHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M411.16 97.46C368.43 55.86 311.88 32 256 32S143.57 55.86 100.84 97.46C56.45 140.67 32 197 32 256c0 26.67 8.75 61.09 32.88 125.55S137 473 157.27 477.41c5.81 1.27 12.62 2.59 18.73 2.59a60.06 60.06 0 0030-8l14-8c15.07-8.82 19.47-28.13 10.8-43.35l-86.92-152.57a31.73 31.73 0 00-43.57-11.76l-13.69 8a56.49 56.49 0 00-14 11.59 4 4 0 01-7-2A114.68 114.68 0 0164 256c0-50.31 21-98.48 59.16-135.61C160 84.55 208.39 64 256 64s96 20.55 132.84 56.39C427 157.52 448 205.69 448 256a114.68 114.68 0 01-1.68 17.91 4 4 0 01-7 2 56.49 56.49 0 00-14-11.59l-13.69-8a31.73 31.73 0 00-43.57 11.76L281.2 420.65c-8.67 15.22-4.27 34.53 10.8 43.35l14 8a60.06 60.06 0 0030 8c6.11 0 12.92-1.32 18.73-2.59C375 473 423 446 447.12 381.55S480 282.67 480 256c0-59-24.45-115.33-68.84-158.54z\"}}]})(props);\n};\nexport function IoHeartCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 360a16 16 0 01-9-2.78c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 20.4 0 35 10.63 44.1 20.41a6 6 0 008.72 0c9.11-9.78 23.7-20.41 44.1-20.41 30.31 0 55.22 25.27 55.53 56.33.28 27.1-9.31 52.13-29.3 76.5-9.38 11.44-26.4 29.73-65.7 56.41A16 16 0 01256 360z\"}}]})(props);\n};\nexport function IoHeartCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.69 252.82c-8.5 10.36-39.69 38.48-74.69 63.51-35-25-66.19-53.15-74.69-63.51-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 22 0 37.3 12.41 46.19 22.76l2.27 2.75 2.27-2.75C267 180.29 282.42 168 304.46 168c30.31 0 55.22 25.27 55.53 56.33.28 27.09-9.31 52.12-29.3 76.49z\"}}]})(props);\n};\nexport function IoHeartCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.69 252.82c-9.38 11.44-26.4 29.73-65.7 56.41a15.93 15.93 0 01-18 0c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 20.4 0 35 10.63 44.1 20.41a6 6 0 008.72 0c9.11-9.78 23.7-20.41 44.1-20.41 30.31 0 55.22 25.27 55.53 56.33.3 27.1-9.29 52.13-29.28 76.5z\"}}]})(props);\n};\nexport function IoHeartDislikeCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M333.2 297.69c18.28-23.39 27.06-47.43 26.79-73.37-.31-31.06-25.22-56.33-55.53-56.33-20.4 0-35 10.64-44.11 20.42a5.93 5.93 0 01-8.7 0c-9.11-9.78-23.71-20.42-44.11-20.42L206 168a4 4 0 00-2.75 6.84l124 123.21a3.92 3.92 0 005.95-.36zM158.84 221a4 4 0 00-6.82 2.72v.64c-.28 27.1 9.31 52.13 29.3 76.5 9.38 11.44 26.4 29.73 65.7 56.41a15.93 15.93 0 0018 0c5.15-3.49 9.9-6.84 14.31-10a4 4 0 00.46-6.07zM336 368a15.92 15.92 0 01-11.31-4.69l-176-176a16 16 0 0122.62-22.62l176 176A16 16 0 01336 368z\"}}]})(props);\n};\nexport function IoHeartDislikeCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm63.73 310.36l-183.14-182.3 22.74-22.51 183.19 182.36zm-63.51 4.86c-35.36-25-66.31-51.92-74.91-62.4-20-24.37-29.58-49.4-29.3-76.5a58.27 58.27 0 01.85-9.31l130.21 129.4c-3.43 2.59-16.21 11.45-26.85 18.81zm74.47-62.4l-.31.38L197.33 169a53.8 53.8 0 0110.21-1 59.34 59.34 0 0144.1 19.41L256 192l4.36-4.6a59.34 59.34 0 0144.1-19.4c30.31 0 55.22 25.27 55.53 56.33.28 27.09-9.31 52.12-29.3 76.49z\"}}]})(props);\n};\nexport function IoHeartDislikeCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm23.3 299.19c-4.41 3.2-9.16 6.55-14.31 10a15.93 15.93 0 01-18 0c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5v-.64a4 4 0 016.82-2.72l120.95 120.2a4 4 0 01-.46 6.07zm68 16.12a16 16 0 01-22.62 0l-176-176a16 16 0 0122.62-22.62l176 176a16 16 0 01.01 22.62zm-14.1-65.62a3.92 3.92 0 01-6 .37l-124-123.21A4 4 0 01206 168h1.55c20.4 0 35 10.64 44.11 20.42a5.93 5.93 0 008.7 0c9.11-9.78 23.71-20.42 44.11-20.42 30.31 0 55.22 25.27 55.53 56.33.26 25.93-8.52 49.97-26.8 73.36z\"}}]})(props);\n};\nexport function IoHeartDislikeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M417.84 448a15.94 15.94 0 01-11.35-4.72L40.65 75.26a16 16 0 0122.7-22.56l365.83 368a16 16 0 01-11.34 27.3zM364.92 80c-48.09 0-80 29.55-96.92 51-16.88-21.48-48.83-51-96.92-51a107.37 107.37 0 00-31 4.55L168 112c22.26 0 45.81 9 63.94 26.67a123 123 0 0121.75 28.47 16 16 0 0028.6 0 123 123 0 0121.77-28.51C322.19 121 342.66 112 364.92 112c43.15 0 78.62 36.33 79.07 81 .54 53.69-22.75 99.55-57.38 139.52l22.63 22.77c3-3.44 5.7-6.64 8.14-9.6 40-48.75 59.15-98.8 58.61-153C475.37 130.52 425.54 80 364.92 80zM268 432C180.38 372.51 91 297.6 92 193a83.69 83.69 0 012.24-18.39L69 149.14a115.1 115.1 0 00-9 43.49c-.54 54.22 18.63 104.27 58.61 153 18.77 22.87 52.8 59.45 131.39 112.8a31.84 31.84 0 0036 0c20.35-13.81 37.7-26.5 52.58-38.11l-22.66-22.81C300.25 409.6 284.09 421.05 268 432z\"}}]})(props);\n};\nexport function IoHeartDislikeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64.45l389.47 389.94 22.84-22.47L54.85 42 32 64.45zm30.67 128.46c-.56 55.63 19.77 106.94 62.16 156.88 40.25 47.42 94.56 79.67 137.47 108.21l9 6 9-6c18.49-12.3 39.1-25.3 59.79-39.89L71.74 149.28a114.62 114.62 0 00-9.07 43.63zm355.16 156.88c42.39-49.94 62.72-101.25 62.16-156.88-.63-62-50.61-112.54-111.43-112.54-48.26 0-80.35 28-97.23 48.17-16.88-20.2-49-48.17-97.23-48.17A108.24 108.24 0 00142.84 85l270 270.48c1.71-1.89 3.37-3.78 4.99-5.69z\"}}]})(props);\n};\nexport function IoHeartDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M417.84 448a16 16 0 01-11.35-4.72l-365.84-368a16 16 0 1122.7-22.56l365.83 368A16 16 0 01417.84 448zM364.92 80c-44.09 0-74.61 24.82-92.39 45.5a6 6 0 01-9.06 0C245.69 104.82 215.16 80 171.08 80a107.71 107.71 0 00-31 4.54l269.13 270.7c3-3.44 5.7-6.64 8.14-9.6 40-48.75 59.15-98.79 58.61-153C475.37 130.53 425.54 80 364.92 80zM69 149.15a115.06 115.06 0 00-9 43.49c-.54 54.21 18.63 104.25 58.61 153 18.77 22.87 52.8 59.45 131.39 112.8a31.88 31.88 0 0036 0c20.35-13.82 37.7-26.5 52.58-38.12z\"}}]})(props);\n};\nexport function IoHeartHalfOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65c-.54 54.21 18.63 104.27 58.61 153 18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81 40-48.74 59.15-98.8 58.61-153C463.37 114.54 413.54 64 352.92 64zM256 416V207.58c0-19.63 5.23-38.76 14.21-56.22a1.19 1.19 0 01.08-.16 123 123 0 0121.77-28.51C310.19 105 330.66 96 352.92 96c43.15 0 78.62 36.32 79.07 81C433 281.61 343.63 356.51 256 416z\"}}]})(props);\n};\nexport function IoHeartHalfSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352.92 64c-48.11 0-80.1 28-96.92 48.21C239.18 92 207.19 64 159.08 64 98.46 64 48.63 114.54 48 176.65c-.56 55.68 19.71 107 62 157 40.12 47.46 94.25 79.75 137 108.32l9 6 9-6c42.78-28.57 96.91-60.86 137-108.32 42.25-50 62.52-101.35 62-157C463.37 114.54 413.54 64 352.92 64zm24.67 249c-31.78 37.6-74.68 65.75-112.52 90.59l-9.07 6V162.23l24.59-29.54C294.53 116 318.38 96 352.92 96c43.15 0 78.62 36.32 79.07 81a178.63 178.63 0 01-12.69 68.59c-9.03 22.84-22.67 44.91-41.71 67.41z\"}}]})(props);\n};\nexport function IoHeartHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65c-.54 54.21 18.63 104.27 58.61 153 18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81 40-48.74 59.15-98.8 58.61-153C463.37 114.54 413.54 64 352.92 64zM256 416V207.58c0-19.63 5.23-38.76 14.21-56.22a1.19 1.19 0 01.08-.16 123 123 0 0121.77-28.51C310.19 105 330.66 96 352.92 96c43.15 0 78.62 36.32 79.07 81C433 281.61 343.63 356.51 256 416z\"}}]})(props);\n};\nexport function IoHeartOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z\"}}]})(props);\n};\nexport function IoHeartSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448l-9-6c-42.78-28.57-96.91-60.86-137-108.32-42.25-50-62.52-101.35-62-157C48.63 114.54 98.46 64 159.08 64c48.11 0 80.1 28 96.92 48.21C272.82 92 304.81 64 352.92 64c60.62 0 110.45 50.54 111.08 112.65.56 55.68-19.71 107-62 157-40.09 47.49-94.22 79.78-137 108.35z\"}}]})(props);\n};\nexport function IoHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448a32 32 0 01-18-5.57c-78.59-53.35-112.62-89.93-131.39-112.8-40-48.75-59.15-98.8-58.61-153C48.63 114.52 98.46 64 159.08 64c44.08 0 74.61 24.83 92.39 45.51a6 6 0 009.06 0C278.31 88.81 308.84 64 352.92 64c60.62 0 110.45 50.52 111.08 112.64.54 54.21-18.63 104.26-58.61 153-18.77 22.87-52.8 59.45-131.39 112.8a32 32 0 01-18 5.56z\"}}]})(props);\n};\nexport function IoHelpBuoyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"80\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M208 54l8 132m80 0l8-132m-96 404l8-132m80 0l8 132m154-250l-132 8m0 80l132 8M54 208l132 8m0 80l-132 8\"}}]})(props);\n};\nexport function IoHelpBuoySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zm-64 224a64 64 0 1164 64 64 64 0 01-64-64zm237.24-62.29L342.91 199a104.86 104.86 0 00-29.86-29.86l5.24-86.33a185 185 0 01111 111zm-303.35-67.82a183.44 183.44 0 0167.82-43.13l5.29 86.33A104.86 104.86 0 00169.09 199l-86.33-5.24a183.44 183.44 0 0143.13-67.87zm-43.13 192.4l86.33-5.24A104.86 104.86 0 00199 342.91l-5.24 86.33a185 185 0 01-111-110.95zm303.35 67.82a183.44 183.44 0 01-67.82 43.13l-5.24-86.33a104.86 104.86 0 0029.86-29.86l86.33 5.24a183.44 183.44 0 01-43.13 67.82z\"}}]})(props);\n};\nexport function IoHelpBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM192.13 260.18a64 64 0 1159.69 59.69 64.07 64.07 0 01-59.69-59.69zm240-66.64l-96.37 5.84a4.06 4.06 0 01-3.44-1.59 96 96 0 00-18.07-18.07 4.06 4.06 0 01-1.59-3.44l5.84-96.37a4 4 0 015.42-3.51A193 193 0 01435.6 188.12a4 4 0 01-3.51 5.42zM193.54 79.91l5.84 96.37a4.06 4.06 0 01-1.59 3.44 96 96 0 00-18.07 18.07 4.06 4.06 0 01-3.44 1.59l-96.37-5.84a4 4 0 01-3.51-5.42A193 193 0 01188.12 76.4a4 4 0 015.42 3.51zM79.91 318.46l96.37-5.84a4.06 4.06 0 013.44 1.59 96 96 0 0018.07 18.07 4.06 4.06 0 011.59 3.44l-5.84 96.37a4 4 0 01-5.42 3.51A193 193 0 0176.4 323.88a4 4 0 013.51-5.42zm238.55 113.63l-5.84-96.37a4.06 4.06 0 011.59-3.44 96 96 0 0018.07-18.07 4.06 4.06 0 013.44-1.59l96.37 5.84a4 4 0 013.51 5.42A193 193 0 01323.88 435.6a4 4 0 01-5.42-3.51z\"}}]})(props);\n};\nexport function IoHelpCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 80a176 176 0 10176 176A176 176 0 00256 80z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"28\",\"d\":\"M200 202.29s.84-17.5 19.57-32.57C230.68 160.77 244 158.18 256 158c10.93-.14 20.69 1.67 26.53 4.45 10 4.76 29.47 16.38 29.47 41.09 0 26-17 37.81-36.37 50.8S251 281.43 251 296\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"250\",\"cy\":\"348\",\"r\":\"20\"}}]})(props);\n};\nexport function IoHelpCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M288.55 150.84c-8.09-3.86-20-6-32.72-5.82-18 .22-33.13 5.2-45 14.78-23 18.48-24.55 40.37-24.77 42.8a61.69 61.69 0 00-.09 12 3 3 0 003 2.69h21.23a3 3 0 003-3A65.7 65.7 0 01214 204c0-.11 1.14-11.7 14.36-22.34 7-5.64 16.11-8.44 27.83-8.59 9.32-.11 16.93 1.47 20.34 3.09C291 183 298 192.31 298 204.57c0 18-10.9 26.23-30.18 39.18C247.08 257.68 237 275.1 237 297v11a3 3 0 003 3h22a3 3 0 003-3v-11c0-9.16 2.23-19.13 18.44-30 19.95-13.41 42.56-28.6 42.56-62.43 0-23.14-13.3-42.23-37.45-53.73z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm10.44 302h-30.21a2.57 2.57 0 01-2.56-2.57v-30.2a2.57 2.57 0 012.56-2.57h30.21a2.57 2.57 0 012.56 2.57v30.2a2.57 2.57 0 01-2.56 2.57zm17-99C267.23 277.88 265 287.85 265 297v11a3 3 0 01-3 3h-22a3 3 0 01-3-3v-11c0-21.91 10.08-39.33 30.82-53.26C287.1 230.8 298 222.6 298 204.57c0-12.26-7-21.57-21.49-28.46-3.41-1.62-11-3.2-20.34-3.09-11.72.15-20.82 2.95-27.83 8.59C215.12 192.25 214 203.84 214 204a65.7 65.7 0 00-.84 10.28 3 3 0 01-3 3h-21.25a3 3 0 01-3-2.69 61.69 61.69 0 01.09-12c.22-2.43 1.8-24.32 24.77-42.8 11.91-9.58 27.06-14.56 45-14.78 12.7-.15 24.63 2 32.72 5.82 24.21 11.51 37.51 30.6 37.51 53.74 0 33.83-22.61 49.02-42.56 62.43z\"}}]})(props);\n};\nexport function IoHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm-6 304a20 20 0 1120-20 20 20 0 01-20 20zm33.44-102C267.23 276.88 265 286.85 265 296a14 14 0 01-28 0c0-21.91 10.08-39.33 30.82-53.26C287.1 229.8 298 221.6 298 203.57c0-12.26-7-21.57-21.49-28.46-3.41-1.62-11-3.2-20.34-3.09-11.72.15-20.82 2.95-27.83 8.59C215.12 191.25 214 202.83 214 203a14 14 0 11-28-1.35c.11-2.43 1.8-24.32 24.77-42.8 11.91-9.58 27.06-14.56 45-14.78 12.7-.15 24.63 2 32.72 5.82C312.7 161.34 326 180.43 326 203.57c0 33.83-22.61 49.02-42.56 62.43z\"}}]})(props);\n};\nexport function IoHelpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"40\",\"d\":\"M160 164s1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 298.36 248 324\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"248\",\"cy\":\"399.99\",\"r\":\"32\"}}]})(props);\n};\nexport function IoHelpSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"40\",\"d\":\"M160 164c0-10 1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 290.36 248 316\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"56\",\"height\":\"56\",\"x\":\"220\",\"y\":\"368\",\"rx\":\"3.5\",\"ry\":\"3.5\"}}]})(props);\n};\nexport function IoHelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"40\",\"d\":\"M160 164s1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 298.36 248 324\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"248\",\"cy\":\"399.99\",\"r\":\"32\"}}]})(props);\n};\nexport function IoHomeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M80 212v236a16 16 0 0016 16h96V328a24 24 0 0124-24h80a24 24 0 0124 24v136h96a16 16 0 0016-16V212\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M480 256L266.89 52c-5-5.28-16.69-5.34-21.78 0L32 256m368-77V64h-48v69\"}}]})(props);\n};\nexport function IoHomeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 174.74V48h-80v58.45L256 32 0 272h64v208h144V320h96v160h144V272h64l-96-97.26z\"}}]})(props);\n};\nexport function IoHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M261.56 101.28a8 8 0 00-11.06 0L66.4 277.15a8 8 0 00-2.47 5.79L63.9 448a32 32 0 0032 32H192a16 16 0 0016-16V328a8 8 0 018-8h80a8 8 0 018 8v136a16 16 0 0016 16h96.06a32 32 0 0032-32V282.94a8 8 0 00-2.47-5.79z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M490.91 244.15l-74.8-71.56V64a16 16 0 00-16-16h-48a16 16 0 00-16 16v32l-57.92-55.38C272.77 35.14 264.71 32 256 32c-8.68 0-16.72 3.14-22.14 8.63l-212.7 203.5c-6.22 6-7 15.87-1.34 22.37A16 16 0 0043 267.56L250.5 69.28a8 8 0 0111.06 0l207.52 198.28a16 16 0 0022.59-.44c6.14-6.36 5.63-16.86-.76-22.97z\"}}]})(props);\n};\nexport function IoHourglassOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M145.61 464h220.78c19.8 0 35.55-16.29 33.42-35.06C386.06 308 304 310 304 256s83.11-51 95.8-172.94c2-18.78-13.61-35.06-33.41-35.06H145.61c-19.8 0-35.37 16.28-33.41 35.06C124.89 205 208 201 208 256s-82.06 52-95.8 172.94c-2.14 18.77 13.61 35.06 33.41 35.06z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M343.3 432H169.13c-15.6 0-20-18-9.06-29.16C186.55 376 240 356.78 240 326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8 6.37-12.8h142.73c8.41 0 10.23 7.43 6.4 12.75C310.82 189 272 204.05 272 224v102c0 30.53 55.71 47 80.4 76.87 9.95 12.04 6.47 29.13-9.1 29.13z\"}}]})(props);\n};\nexport function IoHourglassSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H96v112l108 112L96 368v112h320V368L308 256l108-112zM272 224v112l91 96H148l92-96V224l-80-80h192z\"}}]})(props);\n};\nexport function IoHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.7 427.13c-8.74-76.89-43.83-108.76-69.46-132C328.52 279 320 270.61 320 256c0-14.41 8.49-22.64 26.16-38.44 25.93-23.17 61.44-54.91 69.56-132.84a47 47 0 00-12-36.26A50.3 50.3 0 00366.39 32H145.61a50.34 50.34 0 00-37.39 16.46 47.05 47.05 0 00-11.94 36.26c8.09 77.68 43.47 109.19 69.3 132.19C183.42 232.8 192 241.09 192 256c0 15.1-8.6 23.56-26.5 39.75-25.5 23.1-60.5 54.73-69.2 131.38a46.59 46.59 0 0011.7 36.2A50.44 50.44 0 00145.61 480h220.78A50.44 50.44 0 00404 463.33a46.59 46.59 0 0011.7-36.2zM343.3 432H169.13c-15.6 0-20-18-9.06-29.16C186.55 376 240 356.78 240 326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8 6.37-12.8h142.73c8.41 0 10.22 7.43 6.4 12.75C310.82 189 272 204.05 272 224v102c0 30.53 55.71 47 80.4 76.87 9.95 12.04 6.47 29.13-9.1 29.13z\"}}]})(props);\n};\nexport function IoIceCreamOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 256l-96 224-62-145\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M299.42 223.48C291.74 239.75 275.18 252 256 252c-13.1 0-27-5-33.63-9.76C216.27 237.87 208 240 208 250v62a24.07 24.07 0 01-24 24h0a24.07 24.07 0 01-24-24v-56h-2c-35.35 0-62-28.65-62-64a64 64 0 0164-64h8v-8a88 88 0 01176 0v8h8a64 64 0 010 128c-21.78 0-42-13-52.59-32.51z\"}}]})(props);\n};\nexport function IoIceCreamSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M359.72 112.37a104 104 0 00-207.44 0A80.12 80.12 0 0080 192c0 39.36 26.37 71.23 62.38 78.46a2 2 0 011.62 2v38.83c0 21.84 17.2 40.22 39 40.74a40 40 0 0041-40v-47.84a2 2 0 012.72-1.86A83.47 83.47 0 00256 268a63.18 63.18 0 0042.24-16.59 2 2 0 012.74 0A74.63 74.63 0 00352 272a80 80 0 007.72-159.63z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 300v12a72.1 72.1 0 01-58.21 70.64L256 496l92.06-192.08a105.29 105.29 0 01-49.18-14.36A93.75 93.75 0 01256 300z\"}}]})(props);\n};\nexport function IoIceCream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183 352c-21.84-.52-39-18.9-39-40.74v-34.07a8 8 0 00-6-7.74c-33.75-8.85-58-39.71-58-77.45a80.14 80.14 0 0166.27-78.82 8 8 0 006.62-6.83 104 104 0 01206.22 0 8 8 0 006.62 6.83A80 80 0 01352 272a74.33 74.33 0 01-47.45-17.41 7.93 7.93 0 00-9.92-.14A62.89 62.89 0 01256 268a80.47 80.47 0 01-21.8-3.18 8 8 0 00-10.2 7.69V312a40 40 0 01-41 40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M263.39 299.7a8 8 0 00-7.39 7.91V312a72.11 72.11 0 01-50.69 68.76 8 8 0 00-4.91 10.78l40.91 94.8A16 16 0 00256 496a16 16 0 0014.69-9.7l73.78-172.15a8 8 0 00-6.2-11.07 106.31 106.31 0 01-35.9-11.59 8 8 0 00-7.13-.2 95 95 0 01-31.85 8.41z\"}}]})(props);\n};\nexport function IoIdCardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"320\",\"height\":\"448\",\"x\":\"96\",\"y\":\"32\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M208 80h96\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M333.48 284.51A39.65 39.65 0 00304 272c-11.6 0-22.09 4.41-29.54 12.43s-11.2 19.12-10.34 31C265.83 338.91 283.72 358 304 358s38.14-19.09 39.87-42.55c.88-11.78-2.82-22.77-10.39-30.94zM371.69 448H236.31a12.05 12.05 0 01-9.31-4.17 13 13 0 01-2.76-10.92c3.25-17.56 13.38-32.31 29.3-42.66C267.68 381.06 285.6 376 304 376s36.32 5.06 50.46 14.25c15.92 10.35 26.05 25.1 29.3 42.66a13 13 0 01-2.76 10.92 12.05 12.05 0 01-9.31 4.17z\"}}]})(props);\n};\nexport function IoIdCardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 16H104a24 24 0 00-24 24v432a24 24 0 0024 24h304a24 24 0 0024-24V40a24 24 0 00-24-24zm-61.1 296.77a43 43 0 11-40.71-40.71 43 43 0 0140.71 40.71zM192 64h128v32H192zm192 384H224v-24.6c0-32.72 53.27-49.21 80-49.21s80 16.49 80 49.21z\"}}]})(props);\n};\nexport function IoIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 16H144a64.07 64.07 0 00-64 64v352a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V80a64.07 64.07 0 00-64-64zm-34.52 268.51c7.57 8.17 11.27 19.16 10.39 30.94C342.14 338.91 324.25 358 304 358s-38.17-19.09-39.88-42.55c-.86-11.9 2.81-22.91 10.34-31S292.4 272 304 272a39.65 39.65 0 0129.48 12.51zM192 80a16 16 0 0116-16h96a16 16 0 010 32h-96a16 16 0 01-16-16zm189 363.83a12.05 12.05 0 01-9.31 4.17H236.31a12.05 12.05 0 01-9.31-4.17 13 13 0 01-2.76-10.92c3.25-17.56 13.38-32.31 29.3-42.66C267.68 381.06 285.6 376 304 376s36.32 5.06 50.46 14.25c15.92 10.35 26.05 25.1 29.3 42.66a13 13 0 01-2.76 10.92z\"}}]})(props);\n};\nexport function IoImageOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"352\",\"x\":\"48\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"336\",\"cy\":\"176\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352m176 80l123.34-123.34a32 32 0 0143.11-2L464 368\"}}]})(props);\n};\nexport function IoImageSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 64H56a24 24 0 00-24 24v336a24 24 0 0024 24h400a24 24 0 0024-24V88a24 24 0 00-24-24zm-124.38 64.2a48 48 0 11-43.42 43.42 48 48 0 0143.42-43.42zM76 416a12 12 0 01-12-12v-87.63L192.64 202l96.95 96.75L172.37 416zm372-12a12 12 0 01-12 12H217.63l149.53-149.53L448 333.84z\"}}]})(props);\n};\nexport function IoImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64H96a64.07 64.07 0 00-64 64v256a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64V128a64.07 64.07 0 00-64-64zm-80 64a48 48 0 11-48 48 48.05 48.05 0 0148-48zM96 416a32 32 0 01-32-32v-67.63l94.84-84.3a48.06 48.06 0 0165.8 1.9l64.95 64.81L172.37 416zm352-32a32 32 0 01-32 32H217.63l121.42-121.42a47.72 47.72 0 0161.64-.16L448 333.84z\"}}]})(props);\n};\nexport function IoImagesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432 112V96a48.14 48.14 0 00-48-48H64a48.14 48.14 0 00-48 48v256a48.14 48.14 0 0048 48h16\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"400\",\"height\":\"336\",\"x\":\"96\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"45.99\",\"ry\":\"45.99\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"372.92\",\"cy\":\"219.64\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"30.77\",\"ry\":\"30.55\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M342.15 372.17L255 285.78a30.93 30.93 0 00-42.18-1.21L96 387.64M265.23 464l118.59-117.73a31 31 0 0141.46-1.87L496 402.91\"}}]})(props);\n};\nexport function IoImagesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"373.14\",\"cy\":\"219.33\",\"fill\":\"none\",\"rx\":\"46.29\",\"ry\":\"46\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M80 132v328a20 20 0 0020 20h392a20 20 0 0020-20V132a20 20 0 00-20-20H100a20 20 0 00-20 20zm293.14 41.33a46 46 0 11-46.28 46 46.19 46.19 0 0146.28-46zm-261.41 276v-95.48l122.76-110.2L328.27 337l-113 112.33zm368.27 0H259l144.58-144L480 370.59z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 32A20 20 0 000 52v344a20 20 0 0020 20h28V100a20 20 0 0120-20h380V52a20 20 0 00-20-20z\"}}]})(props);\n};\nexport function IoImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.29 112H142c-34 0-62 27.51-62 61.33v245.34c0 33.82 28 61.33 62 61.33h308c34 0 62-26.18 62-60V173.33c0-33.82-27.68-61.33-61.71-61.33zm-77.15 61.34a46 46 0 11-46.28 46 46.19 46.19 0 0146.28-46.01zm-231.55 276c-17 0-29.86-13.75-29.86-30.66v-64.83l90.46-80.79a46.54 46.54 0 0163.44 1.83L328.27 337l-113 112.33zM480 418.67a30.67 30.67 0 01-30.71 30.66H259L376.08 333a46.24 46.24 0 0159.44-.16L480 370.59z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64A64 64 0 000 96v256a64.11 64.11 0 0048 62V152a72 72 0 0172-72h326a64.11 64.11 0 00-62-48z\"}}]})(props);\n};\nexport function IoInfiniteOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 256s-48-96-126-96c-54.12 0-98 43-98 96s43.88 96 98 96c37.51 0 71-22.41 94-48m32-48s48 96 126 96c54.12 0 98-43 98-96s-43.88-96-98-96c-37.51 0-71 22.41-94 48\"}}]})(props);\n};\nexport function IoInfiniteSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382 136c-40.87 0-73.46 20.53-93.6 37.76l-.71.61-11.47 12.47 25.32 41.61 18.74-18.79C339.89 193.1 361.78 184 382 184c40.8 0 74 32.3 74 72s-33.2 72-74 72c-62 0-104.14-81.95-104.56-82.78C275 240.29 221.56 136 130 136 62.73 136 8 189.83 8 256s54.73 120 122 120c32.95 0 65.38-13.11 93.79-37.92l.61-.54 11.38-12.38-25.33-41.61-18.83 18.88C172 319.4 151.26 328 130 328c-40.8 0-74-32.3-74-72s33.2-72 74-72c62 0 104.14 81.95 104.56 82.78C237 271.71 290.44 376 382 376c67.27 0 122-53.83 122-120s-54.73-120-122-120z\"}}]})(props);\n};\nexport function IoInfinite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M256 256s-48-96-126-96c-54.12 0-98 43-98 96s43.88 96 98 96c30 0 56.45-13.18 78-32m48-64s48 96 126 96c54.12 0 98-43 98-96s-43.88-96-98-96c-29.37 0-56.66 13.75-78 32\"}}]})(props);\n};\nexport function IoInformationCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M248 64C146.39 64 64 146.39 64 248s82.39 184 184 184 184-82.39 184-184S349.61 64 248 64z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M220 220h32v116\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M208 340h88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M248 130a26 26 0 1026 26 26 26 0 00-26-26z\"}}]})(props);\n};\nexport function IoInformationCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 56C145.72 56 56 145.72 56 256s89.72 200 200 200 200-89.72 200-200S366.28 56 256 56zm0 82a26 26 0 11-26 26 26 26 0 0126-26zm64 226H200v-32h44v-88h-32v-32h64v120h44z\"}}]})(props);\n};\nexport function IoInformationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 56C145.72 56 56 145.72 56 256s89.72 200 200 200 200-89.72 200-200S366.28 56 256 56zm0 82a26 26 0 11-26 26 26 26 0 0126-26zm48 226h-88a16 16 0 010-32h28v-88h-16a16 16 0 010-32h32a16 16 0 0116 16v104h28a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoInformationOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"40\",\"d\":\"M196 220h64v172\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"40\",\"d\":\"M187 396h138\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 160a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoInformationSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"40\",\"d\":\"M196 220h64v172m-73 4h138\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 160a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoInformation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"40\",\"d\":\"M196 220h64v172\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"40\",\"d\":\"M187 396h138\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 160a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoInvertModeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 176v160a80 80 0 010-160zm0-128v128a80 80 0 010 160v128c114.88 0 208-93.12 208-208S370.88 48 256 48z\"}}]})(props);\n};\nexport function IoInvertModeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 432v-96a80 80 0 010-160V80c97.05 0 176 79 176 176s-78.95 176-176 176z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 256a80 80 0 00-80-80v160a80 80 0 0080-80z\"}}]})(props);\n};\nexport function IoInvertMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 176v160a80 80 0 000-160zm0-128v128a80 80 0 000 160v128c-114.88 0-208-93.12-208-208S141.12 48 256 48z\"}}]})(props);\n};\nexport function IoJournalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"320\",\"height\":\"416\",\"x\":\"96\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"60\",\"d\":\"M320 48v416\"}}]})(props);\n};\nexport function IoJournalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290 32H104a24 24 0 00-24 24v400a24 24 0 0024 24h186zm118 0h-58v448h58a24 24 0 0024-24V56a24 24 0 00-24-24z\"}}]})(props);\n};\nexport function IoJournal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290 32H144a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h146zm78 0h-18v448h18a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64z\"}}]})(props);\n};\nexport function IoKeyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 00-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 11-32-32 32 32 0 0132 32z\"}}]})(props);\n};\nexport function IoKeySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.1 167.2c0 13 0 25.6 4.1 37.4-43.1 50.6-167.5 194.5-167.5 194.5l2.9 36.3s34.8 33 40 28c15.4-15 24.8-25.2 24.8-25.2l7.24-43.35 47.11-3.47 3.78-46.8 49.63-.95.49-50.09 52.69 2.1 9-18.84c15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.4-121.9 119.2zM406.85 144A38.85 38.85 0 11368 105.15 38.81 38.81 0 01406.85 144z\"}}]})(props);\n};\nexport function IoKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 00-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 11-32-32 32 32 0 0132 32z\"}}]})(props);\n};\nexport function IoKeypadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"448\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"320\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M288 192a32 32 0 11-32-32 32 32 0 0132 32z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"64\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"320\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"192\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"64\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"320\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"192\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"64\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoKeypadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"80\",\"y\":\"16\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"208\",\"y\":\"16\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"336\",\"y\":\"16\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"80\",\"y\":\"144\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"208\",\"y\":\"144\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"336\",\"y\":\"144\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"80\",\"y\":\"272\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"208\",\"y\":\"272\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"208\",\"y\":\"400\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"336\",\"y\":\"272\",\"rx\":\"8\",\"ry\":\"8\"}}]})(props);\n};\nexport function IoKeypad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 400a48 48 0 1048 48 48 48 0 00-48-48zm0-128a48 48 0 1048 48 48 48 0 00-48-48zm0-128a48 48 0 1048 48 48 48 0 00-48-48zm0-128a48 48 0 1048 48 48 48 0 00-48-48zm128 256a48 48 0 1048 48 48 48 0 00-48-48zm0-128a48 48 0 1048 48 48 48 0 00-48-48zm0-128a48 48 0 1048 48 48 48 0 00-48-48zM128 272a48 48 0 1048 48 48 48 0 00-48-48zm0-128a48 48 0 1048 48 48 48 0 00-48-48zm0-128a48 48 0 1048 48 48 48 0 00-48-48z\"}}]})(props);\n};\nexport function IoLanguageOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 112h288M192 64v48m80 336l96-224 96 224m-162.5-64h133M281.3 112S257 206 199 277 80 384 80 384\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 336s-35-27-72-75-56-85-56-85\"}}]})(props);\n};\nexport function IoLanguageSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M363 176L246 464h47.24l24.49-58h90.54l24.49 58H480zm-26.69 186L363 279.85 389.69 362zM272 320c-.25-.19-20.59-15.77-45.42-42.67 39.58-53.64 62-114.61 71.15-143.33H352V90H214V48h-44v42H32v44h219.25c-9.52 26.95-27.05 69.5-53.79 108.36-32.68-43.44-47.14-75.88-47.33-76.22L143 152l-38 22 6.87 13.86c.89 1.56 17.19 37.9 54.71 86.57.92 1.21 1.85 2.39 2.78 3.57-49.72 56.86-89.15 79.09-89.66 79.47L64 368l23 36 19.3-11.47c2.2-1.67 41.33-24 92-80.78 24.52 26.28 43.22 40.83 44.3 41.67L255 362z\"}}]})(props);\n};\nexport function IoLanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.33 433.6l-90-218a22 22 0 00-40.67 0l-90 218a22 22 0 1040.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 00458 464a22 22 0 0020.32-30.4zM334.83 362L368 281.65 401.17 362zm-66.99-19.08a22 22 0 00-4.89-30.7c-.2-.15-15-11.13-36.49-34.73 39.65-53.68 62.11-114.75 71.27-143.49H330a22 22 0 000-44H214V70a22 22 0 00-44 0v20H54a22 22 0 000 44h197.25c-9.52 26.95-27.05 69.5-53.79 108.36-31.41-41.68-43.08-68.65-43.17-68.87a22 22 0 00-40.58 17c.58 1.38 14.55 34.23 52.86 83.93.92 1.19 1.83 2.35 2.74 3.51-39.24 44.35-77.74 71.86-93.85 80.74a22 22 0 1021.07 38.63c2.16-1.18 48.6-26.89 101.63-85.59 22.52 24.08 38 35.44 38.93 36.1a22 22 0 0030.75-4.9z\"}}]})(props);\n};\nexport function IoLaptopOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"304\",\"x\":\"48\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32.14\",\"ry\":\"32.14\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M16 416h480\"}}]})(props);\n};\nexport function IoLaptopSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.29 400a27.75 27.75 0 002.71-12V108a28 28 0 00-28-28H60a28 28 0 00-28 28v280a27.75 27.75 0 002.71 12H0v32h512v-32z\"}}]})(props);\n};\nexport function IoLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 400h-28.34A47.92 47.92 0 00480 367.86V128.14A48.2 48.2 0 00431.86 80H80.14A48.2 48.2 0 0032 128.14v239.72A47.92 47.92 0 0044.34 400H16a16 16 0 000 32h480a16 16 0 000-32z\"}}]})(props);\n};\nexport function IoLayersOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48\"}}]})(props);\n};\nexport function IoLayersSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 150L256 48 32 150l224 104 224-104zM255.71 392.95l-144.81-66.2L32 362l224 102 224-102-78.69-35.3-145.6 66.25z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 256l-75.53-33.53L256.1 290.6l-148.77-68.17L32 256l224 102 224-102z\"}}]})(props);\n};\nexport function IoLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 256c-13.47 0-26.94-2.39-37.44-7.17l-148-67.49C63.79 178.26 48 169.25 48 152.24s15.79-26 22.58-29.12l149.28-68.07c20.57-9.4 51.61-9.4 72.19 0l149.37 68.07c6.79 3.09 22.58 12.1 22.58 29.12s-15.79 26-22.58 29.11l-148 67.48C282.94 253.61 269.47 256 256 256zm176.76-100.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M441.36 226.81L426.27 220l-38.77 17.74-94 43c-10.5 4.8-24 7.19-37.44 7.19s-26.93-2.39-37.42-7.19l-94.07-43L85.79 220l-15.22 6.84C63.79 229.93 48 239 48 256s15.79 26.08 22.56 29.17l148 67.63C229 357.6 242.49 360 256 360s26.94-2.4 37.44-7.19l147.87-67.61c6.81-3.09 22.69-12.11 22.69-29.2s-15.77-26.07-22.64-29.19z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M441.36 330.8l-15.09-6.8-38.77 17.73-94 42.95c-10.5 4.78-24 7.18-37.44 7.18s-26.93-2.39-37.42-7.18l-94.07-43L85.79 324l-15.22 6.84C63.79 333.93 48 343 48 360s15.79 26.07 22.56 29.15l148 67.59C229 461.52 242.54 464 256 464s26.88-2.48 37.38-7.27l147.92-67.57c6.82-3.08 22.7-12.1 22.7-29.16s-15.77-26.07-22.64-29.2z\"}}]})(props);\n};\nexport function IoLeafOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M321.89 171.42C233 114 141 155.22 56 65.22c-19.8-21-8.3 235.5 98.1 332.7 77.79 71 197.9 63.08 238.4-5.92s18.28-163.17-70.61-220.58zM173 253c86 81 175 129 292 147\"}}]})(props);\n};\nexport function IoLeafSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M150.38 253.68l21.94-23.3 11.65 11c73.63 69.36 147.51 111.56 234.45 133.07 11.73-32 12.77-67.22 2.64-101.58-13.44-45.59-44.74-85.31-90.49-114.86-40.25-26-76.6-32.09-115.09-38.54-21.12-3.54-43-7.2-66.85-14.43-43.78-13.28-89.69-52.74-90.15-53.13L33.4 30.15 32 63.33c-.1 2.56-2.42 63.57 14.22 147.77 17.58 89 50.24 155.85 97.07 198.63 38 34.69 87.62 53.9 136.93 53.9a185.88 185.88 0 0027.78-2.07c41.72-6.32 76.43-27.27 96-57.75-89.5-23.28-165.95-67.55-242-139.16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M467.43 384.19c-16.83-2.59-33.13-5.84-49-9.77a158.49 158.49 0 01-12.13 25.68c-.74 1.25-1.51 2.49-2.29 3.71a583.43 583.43 0 0058.55 12l15.82 2.44 4.86-31.63z\"}}]})(props);\n};\nexport function IoLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M161.35 242a16 16 0 0122.62-.68c73.63 69.36 147.51 111.56 234.45 133.07 11.73-32 12.77-67.22 2.64-101.58-13.44-45.59-44.74-85.31-90.49-114.86-40.84-26.38-81.66-33.25-121.15-39.89-49.82-8.38-96.88-16.3-141.79-63.85-5-5.26-11.81-7.37-18.32-5.66-7.44 2-12.43 7.88-14.82 17.6-5.6 22.75-2 86.51 13.75 153.82 25.29 108.14 65.65 162.86 95.06 189.73 38 34.69 87.62 53.9 136.93 53.9a186 186 0 0027.77-2.04c41.71-6.32 76.43-27.27 96-57.75-89.49-23.28-165.94-67.55-242-139.16a16 16 0 01-.65-22.65zm306.08 142.19c-16.83-2.59-33.13-5.84-49-9.77a157.71 157.71 0 01-12.13 25.68c-.73 1.25-1.5 2.49-2.29 3.71a584.21 584.21 0 0058.56 12 16 16 0 104.87-31.62z\"}}]})(props);\n};\nexport function IoLibraryOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"368\",\"x\":\"32\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 224h128M112 400h128\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"128\",\"height\":\"304\",\"x\":\"112\",\"y\":\"160\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"416\",\"x\":\"256\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M422.46 96.11l-40.4 4.25c-11.12 1.17-19.18 11.57-17.93 23.1l34.92 321.59c1.26 11.53 11.37 20 22.49 18.84l40.4-4.25c11.12-1.17 19.18-11.57 17.93-23.1L445 115c-1.31-11.58-11.42-20.06-22.54-18.89z\"}}]})(props);\n};\nexport function IoLibrarySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M84 480H28a12 12 0 01-12-12V92a12 12 0 0112-12h56a12 12 0 0112 12v376a12 12 0 01-12 12zm156-272v-52a12 12 0 00-12-12H124a12 12 0 00-12 12v52zM112 416v52a12 12 0 0012 12h104a12 12 0 0012-12v-52zm0-176h128v144H112zm228 240h-72a12 12 0 01-12-12V44a12 12 0 0112-12h72a12 12 0 0112 12v424a12 12 0 01-12 12zm29-379.3l30 367.83a12 12 0 0013.45 10.92l72.16-9a12 12 0 0010.47-12.9L465 91.21a12 12 0 00-13.2-10.94l-72.13 7.51A12 12 0 00369 100.7z\"}}]})(props);\n};\nexport function IoLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 480H48a32 32 0 01-32-32V112a32 32 0 0132-32h16a32 32 0 0132 32v336a32 32 0 01-32 32zm176-304a32 32 0 00-32-32h-64a32 32 0 00-32 32v28a4 4 0 004 4h120a4 4 0 004-4zM112 448a32 32 0 0032 32h64a32 32 0 0032-32v-30a2 2 0 00-2-2H114a2 2 0 00-2 2z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"128\",\"height\":\"144\",\"x\":\"112\",\"y\":\"240\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 480h-32a32 32 0 01-32-32V64a32 32 0 0132-32h32a32 32 0 0132 32v384a32 32 0 01-32 32zm175.89-34.55l-32.23-340c-1.48-15.65-16.94-27-34.53-25.31l-31.85 3c-17.59 1.67-30.65 15.71-29.17 31.36l32.23 340c1.48 15.65 16.94 27 34.53 25.31l31.85-3c17.59-1.67 30.65-15.71 29.17-31.36z\"}}]})(props);\n};\nexport function IoLinkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"36\",\"d\":\"M208 352h-64a96 96 0 010-192h64m96 0h64a96 96 0 010 192h-64m-140.71-96h187.42\"}}]})(props);\n};\nexport function IoLinkSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M200.66 352H144a96 96 0 010-192h55.41m113.18 0H368a96 96 0 010 192h-56.66m-142.27-96h175.86\"}}]})(props);\n};\nexport function IoLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M200.66 352H144a96 96 0 010-192h55.41m113.18 0H368a96 96 0 010 192h-56.66m-142.27-96h175.86\"}}]})(props);\n};\nexport function IoListCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M224 184h128m-128 72h128m-128 71h128\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 258c0-106-86-192-192-192S64 152 64 258s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"184\",\"r\":\"8\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"257\",\"r\":\"8\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"328\",\"r\":\"8\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoListCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-64 287.5a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm0-71a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm0-72a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm176 151H212.67v-32H368zm0-71H212.67v-32H368zm0-72H212.67v-32H368z\"}}]})(props);\n};\nexport function IoListCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-88 302a24 24 0 1124-24 24 24 0 01-24 24zm0-71a24 24 0 1124-24 24 24 0 01-24 24zm0-73a24 24 0 1124-24 24 24 0 01-24 24zm184 135H224a16 16 0 010-32h128a16 16 0 010 32zm0-71H224a16 16 0 010-32h128a16 16 0 010 32zm0-72H224a16 16 0 010-32h128a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoListOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 144h288M160 256h288M160 368h288\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"80\",\"cy\":\"144\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"80\",\"cy\":\"256\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"80\",\"cy\":\"368\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoListSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M144 144h320M144 256h320M144 368h320\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 128h32v32H64zm0 112h32v32H64zm0 112h32v32H64z\"}}]})(props);\n};\nexport function IoList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M160 144h288M160 256h288M160 368h288\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"80\",\"cy\":\"144\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"80\",\"cy\":\"256\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"80\",\"cy\":\"368\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoLocateOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M256 96V56m0 400v-40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 112a144 144 0 10144 144 144 144 0 00-144-144z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M416 256h40m-400 0h40\"}}]})(props);\n};\nexport function IoLocateSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M256 96V56m0 400v-40m0-304a144 144 0 10144 144 144 144 0 00-144-144zm160 144h40m-400 0h40\"}}]})(props);\n};\nexport function IoLocate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M256 96V56m0 400v-40m0-304a144 144 0 10144 144 144 144 0 00-144-144zm160 144h40m-400 0h40\"}}]})(props);\n};\nexport function IoLocationOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"192\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoLocationSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C167.67 32 96 96.51 96 176c0 128 160 304 160 304s160-176 160-304c0-79.49-71.67-144-160-144zm0 224a64 64 0 1164-64 64.07 64.07 0 01-64 64z\"}}]})(props);\n};\nexport function IoLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"192\",\"r\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c-88.22 0-160 68.65-160 153 0 40.17 18.31 93.59 54.42 158.78 29 52.34 62.55 99.67 80 123.22a31.75 31.75 0 0051.22 0c17.42-23.55 51-70.88 80-123.22C397.69 278.61 416 225.19 416 185c0-84.35-71.78-153-160-153zm0 224a64 64 0 1164-64 64.07 64.07 0 01-64 64z\"}}]})(props);\n};\nexport function IoLockClosedOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 208v-95a80 80 0 00-160 0v95\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"320\",\"height\":\"272\",\"x\":\"96\",\"y\":\"208\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}}]})(props);\n};\nexport function IoLockClosedSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420 192h-68v-80a96 96 0 10-192 0v80H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V204a12 12 0 00-12-12zm-106 0H198v-80.75a58 58 0 11116 0z\"}}]})(props);\n};\nexport function IoLockClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 192h-16v-80a96 96 0 10-192 0v80h-16a64.07 64.07 0 00-64 64v176a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V256a64.07 64.07 0 00-64-64zm-48 0H192v-80a64 64 0 11128 0z\"}}]})(props);\n};\nexport function IoLockOpenOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 112a80 80 0 00-160 0v96\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"320\",\"height\":\"272\",\"x\":\"96\",\"y\":\"208\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}}]})(props);\n};\nexport function IoLockOpenSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420 192H198v-80.75a58.08 58.08 0 0199.07-41.07A59.4 59.4 0 01314 112h38a96 96 0 10-192 0v80H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V204a12 12 0 00-12-12z\"}}]})(props);\n};\nexport function IoLockOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 192H192v-80a64 64 0 11128 0 16 16 0 0032 0 96 96 0 10-192 0v80h-16a64.07 64.07 0 00-64 64v176a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V256a64.07 64.07 0 00-64-64z\"}}]})(props);\n};\nexport function IoLogInOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M192 176v-40a40 40 0 0140-40h160a40 40 0 0140 40v240a40 40 0 01-40 40H240c-22.09 0-48-17.91-48-40v-40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M288 336l80-80-80-80M80 256h272\"}}]})(props);\n};\nexport function IoLogInSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 80H192a16 16 0 00-16 16v144h153.37l-64-64L288 153.37l91.31 91.32a16 16 0 010 22.62L288 358.63 265.37 336l64-64H176v144a16 16 0 0016 16h240a16 16 0 0016-16V96a16 16 0 00-16-16zM64 240h112v32H64z\"}}]})(props);\n};\nexport function IoLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 80H232a56.06 56.06 0 00-56 56v104h153.37l-52.68-52.69a16 16 0 0122.62-22.62l80 80a16 16 0 010 22.62l-80 80a16 16 0 01-22.62-22.62L329.37 272H176v104c0 32.05 33.79 56 64 56h152a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56zM80 240a16 16 0 000 32h96v-32z\"}}]})(props);\n};\nexport function IoLogOutOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 336v40a40 40 0 01-40 40H104a40 40 0 01-40-40V136a40 40 0 0140-40h152c22.09 0 48 17.91 48 40v40m64 160l80-80-80-80m-192 80h256\"}}]})(props);\n};\nexport function IoLogOutSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 240h160V96a16 16 0 00-16-16H64a16 16 0 00-16 16v320a16 16 0 0016 16h240a16 16 0 0016-16V272H160zm299.31 4.69L368 153.37 345.37 176l64 64H320v32h89.37l-64 64L368 358.63l91.31-91.32a16 16 0 000-22.62z\"}}]})(props);\n};\nexport function IoLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 256a16 16 0 0116-16h144V136c0-32-33.79-56-64-56H104a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h160a56.06 56.06 0 0056-56V272H176a16 16 0 01-16-16zm299.31-11.31l-80-80a16 16 0 00-22.62 22.62L409.37 240H320v32h89.37l-52.68 52.69a16 16 0 1022.62 22.62l80-80a16 16 0 000-22.62z\"}}]})(props);\n};\nexport function IoLogoAlipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M102.41 32C62.38 32 32 64.12 32 103.78v304.45C32 447.86 64.38 480 104.41 480h303.2c40 0 72.39-32.14 72.39-71.77v-3.11c-1.35-.56-115.47-48.57-174.5-76.7-39.82 48.57-91.18 78-144.5 78-90.18 0-120.8-78.22-78.1-129.72 9.31-11.22 25.15-21.94 49.73-28 38.45-9.36 99.64 5.85 157 24.61a309.41 309.41 0 0025.46-61.67H138.34V194h91.13v-31.83H119.09v-17.75h110.38V99s0-7.65 7.82-7.65h44.55v53H391v17.75H281.84V194h89.08a359.41 359.41 0 01-37.72 94.43c27 9.69 49.31 18.88 67.39 24.89 60.32 20 77.23 22.45 79.41 22.7V103.78C480 64.12 447.6 32 407.61 32h-305.2zM152 274.73q-5.81.06-11.67.63c-11.3 1.13-32.5 6.07-44.09 16.23-34.74 30-13.94 84.93 56.37 84.93 40.87 0 81.71-25.9 113.79-67.37-41.36-20-77-34.85-114.4-34.42z\"}}]})(props);\n};\nexport function IoLogoAmazon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.48 378.73a300.52 300.52 0 00152.89 95.92 262.57 262.57 0 00159.3-17.25 225.52 225.52 0 0066.79-47 6.36 6.36 0 00-2-8.53 11.76 11.76 0 00-8-.05 401.92 401.92 0 01-116.55 39.34 358.13 358.13 0 01-127.29-8.83 446.73 446.73 0 01-119.1-60.49 5 5 0 00-6.06 6.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M387.15 388.44a168.11 168.11 0 0148.94-2.23l.67.13a10 10 0 017.37 12.05A204.71 204.71 0 01429 444.47a2.55 2.55 0 001.66 3.18 2.51 2.51 0 002.23-.37A83.31 83.31 0 00464 382.86a12.44 12.44 0 00-10.22-13.22A95.75 95.75 0 00384.91 384a2.55 2.55 0 00-.57 3.55 2.52 2.52 0 002.81.89zm-82.91-63.52a164 164 0 01-28.92 25.3A135.16 135.16 0 01208.63 369a99.49 99.49 0 01-57.49-19.85 97.25 97.25 0 01-27.36-100.28 112.35 112.35 0 0165.3-69.06 367.67 367.67 0 01104.7-15.55V127A37.82 37.82 0 00261 94.72a59.9 59.9 0 00-31.17 4.08 48.89 48.89 0 00-27.13 34.67 12 12 0 01-12.58 6.72l-50.9-4.5a11.38 11.38 0 01-8.38-10.16 103.66 103.66 0 0136.61-63.45A143.86 143.86 0 01257.85 32a146.24 146.24 0 0184.27 27.67 86.82 86.82 0 0130.7 70.22V258.8a84.46 84.46 0 008 31.28l15.87 23.23a13 13 0 010 11.23l-46.99 39.71a12.5 12.5 0 01-12.68-.44 244.84 244.84 0 01-32.78-38.89zm-10.6-116.83a257.68 257.68 0 00-44 2.89A63 63 0 00208 242.54a63 63 0 003.07 54 40.6 40.6 0 0047.11 12.19 78.61 78.61 0 0035.46-55.58v-45.06\"}}]})(props);\n};\nexport function IoLogoAmplify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M112.31 268l40.36-68.69 34.65 59-67.54 115h135L289.31 432H16zm58.57-99.76l33.27-56.67L392.44 432h-66.68zM222.67 80h66.59L496 432h-66.68z\"}}]})(props);\n};\nexport function IoLogoAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.91 199l42.47-73.57a8.63 8.63 0 00-3.12-11.76 8.52 8.52 0 00-11.71 3.12l-43 74.52c-32.83-15-69.78-23.35-109.52-23.35s-76.69 8.36-109.52 23.35l-43-74.52a8.6 8.6 0 10-14.88 8.64L131 199C57.8 238.64 8.19 312.77 0 399.55h512c-8.19-86.78-57.8-160.91-131.09-200.55zM138.45 327.65a21.46 21.46 0 1121.46-21.46 21.47 21.47 0 01-21.46 21.46zm235 0A21.46 21.46 0 11395 306.19a21.47 21.47 0 01-21.51 21.46z\"}}]})(props);\n};\nexport function IoLogoAngular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.57 256h84.85l-42.43-89.36L213.57 256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32L32 112l46.12 272L256 480l177.75-96L480 112zm88 320l-26.59-56H194.58L168 352h-40L256 72l128 280z\"}}]})(props);\n};\nexport function IoLogoAppleAppstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.26 32 32 132.26 32 256s100.26 224 224 224 224-100.26 224-224S379.74 32 256 32zm-85 321.89a15.48 15.48 0 01-13.46 7.65 14.91 14.91 0 01-7.86-2.16 15.48 15.48 0 01-5.6-21.21l15.29-25.42a8.73 8.73 0 017.54-4.3h2.26c11.09 0 18.85 6.67 21.11 13.13zm129.45-50l-100.13.11h-66.55a15.46 15.46 0 01-15.51-16.15c.32-8.4 7.65-14.76 16-14.76h48.24l57.19-97.35-18.52-31.55C217 137 218.85 127.52 226 123a15.57 15.57 0 0121.87 5.17l9.9 16.91h.11l9.91-16.91A15.58 15.58 0 01289.6 123c7.11 4.52 8.94 14 4.74 21.22l-18.52 31.55-18 30.69-39.09 66.66v.11h57.61c7.22 0 16.27 3.88 19.93 10.12l.32.65c3.23 5.49 5.06 9.26 5.06 14.75a13.82 13.82 0 01-1.17 5.17zm77.75.11h-27.11v.11l19.82 33.71a15.8 15.8 0 01-5.17 21.53 15.53 15.53 0 01-8.08 2.27A15.71 15.71 0 01344.2 354l-29.29-49.86-18.2-31L273.23 233a38.35 38.35 0 01-.65-38c4.64-8.19 8.19-10.34 8.19-10.34L333 273h44.91c8.4 0 15.61 6.46 16 14.75A15.65 15.65 0 01378.23 304z\"}}]})(props);\n};\nexport function IoLogoAppleAr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M201.14 64L256 32l54.86 32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 32v80\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M310.86 448L256 480l-54.86-32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 480v-80\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 207.51V144l53.15-31.51\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 144l67.29 40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 304.49V368l-53.15 31.51\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 368l-67.29-40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M117.15 400L64 368v-63.51\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 368l66.64-40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M394.85 112.49L448 144v63.51\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 144l-67.29 40M256 320v-64l54.86-32M256 256l-54.86-32\"}}]})(props);\n};\nexport function IoLogoApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.13 136.86c-40.32 0-57.36 19.24-85.44 19.24-28.79 0-50.75-19.1-85.69-19.1-34.2 0-70.67 20.88-93.83 56.45-32.52 50.16-27 144.63 25.67 225.11 18.84 28.81 44 61.12 77 61.47h.6c28.68 0 37.2-18.78 76.67-19h.6c38.88 0 46.68 18.89 75.24 18.89h.6c33-.35 59.51-36.15 78.35-64.85 13.56-20.64 18.6-31 29-54.35-76.19-28.92-88.43-136.93-13.08-178.34-23-28.8-55.32-45.48-85.79-45.48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M340.25 32c-24 1.63-52 16.91-68.4 36.86-14.88 18.08-27.12 44.9-22.32 70.91h1.92c25.56 0 51.72-15.39 67-35.11 14.72-18.77 25.88-45.37 21.8-72.66z\"}}]})(props);\n};\nexport function IoLogoBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344.1 233.6c-28.9 0-32.9 28.8-32.9 28.8h61.4s.4-28.8-28.5-28.8zm-139.3 28.8h-54.4v50h51.7c7.8-.2 22.4-2.4 22.4-24.3 0-26-19.7-25.7-19.7-25.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.3 32 32 132.3 32 256s100.3 224 224 224 224-100.3 224-224S379.7 32 256 32zm47.2 137.6h77.1v23h-77.1v-23zm-39 120.8c0 57-59.4 55.2-59.4 55.2h-97.2v-187h97.2c29.6 0 52.9 16.3 52.9 49.8S229.2 244 229.2 244c37.6 0 35 46.4 35 46.4zm144.2-3.1h-96.9c0 34.7 32.9 32.5 32.9 32.5 31.1 0 30-20.1 30-20.1h32.9c0 53.4-64 49.7-64 49.7-76.7 0-71.8-71.5-71.8-71.5s-.1-71.8 71.8-71.8c75.7.1 65.1 81.2 65.1 81.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M218 211.3c0-19.4-13.2-19.4-13.2-19.4h-54.4v41.7h51c8.8 0 16.6-2.9 16.6-22.3z\"}}]})(props);\n};\nexport function IoLogoBitbucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.13 32.23a19.65 19.65 0 00-2.54-.23h-449C23 31.88 16.12 38.88 16 47.75a11.44 11.44 0 00.23 2.8l65.3 411.25a22.52 22.52 0 007 12.95A20 20 0 00102 480h313.18a15.45 15.45 0 0015.34-13.42l38.88-247.91H325.19l-18.46 112H205.21l-25.73-148h295.58l20.76-132c1.27-8.75-4.38-17.04-12.69-18.44z\"}}]})(props);\n};\nexport function IoLogoBitcoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M410.47 279.2c-5-11.5-12.7-21.6-28.1-30.1a98.15 98.15 0 00-25.4-10 62.22 62.22 0 0016.3-11 56.37 56.37 0 0015.6-23.3 77.11 77.11 0 003.5-28.2c-1.1-16.8-4.4-33.1-13.2-44.8s-21.2-20.7-37.6-27c-12.6-4.8-25.5-7.8-45.5-8.9V32h-40v64h-32V32h-41v64H96v48h27.87c8.7 0 14.6.8 17.6 2.3a13.22 13.22 0 016.5 6c1.3 2.5 1.9 8.4 1.9 17.5V343c0 9-.6 14.8-1.9 17.4s-2 4.9-5.1 6.3-3.2 1.3-11.8 1.3h-26.4L96 416h87v64h41v-64h32v64h40v-64.4c26-1.3 44.5-4.7 59.4-10.3 19.3-7.2 34.1-17.7 44.7-31.5s14-34.9 14.93-51.2c.67-14.5-.03-33.2-4.56-43.4zM224 150h32v74h-32zm0 212v-90h32v90zm72-208.1c6 2.5 9.9 7.5 13.8 12.7 4.3 5.7 6.5 13.3 6.5 21.4 0 7.8-2.9 14.5-7.5 20.5-3.8 4.9-6.8 8.3-12.8 11.1zm28.8 186.7c-7.8 6.9-12.3 10.1-22.1 13.8a56.06 56.06 0 01-6.7 1.9v-82.8a40.74 40.74 0 0111.3 3.4c7.8 3.3 15.2 6.9 19.8 13.2a43.82 43.82 0 018 24.7c-.03 10.9-2.83 19.2-10.33 25.8z\"}}]})(props);\n};\nexport function IoLogoBuffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M39.93 149.25l197.4 95.32c5.14 2.45 12 3.73 18.79 3.73s13.65-1.28 18.78-3.73l197.4-95.32c10.38-5 10.38-13.18 0-18.2L274.9 35.73c-5.13-2.45-12-3.73-18.78-3.73s-13.65 1.28-18.79 3.73l-197.4 95.32c-10.38 5.02-10.38 13.18 0 18.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M472.3 246.9s-36.05-17.38-40.83-19.72-6.07-2.21-11.09.12-145.6 70.23-145.6 70.23a45.71 45.71 0 01-18.78 3.74c-6.77 0-13.65-1.29-18.78-3.74 0 0-136.85-66-143.27-69.18C87 225 85 225 78.67 228l-39 18.78c-10.38 5-10.38 13.19 0 18.2L237.1 360.3c5.13 2.45 12 3.73 18.78 3.73s13.65-1.28 18.79-3.73l197.4-95.3c10.61-4.92 10.61-13.08.23-18.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M472.3 362.75s-36.05-17.38-40.83-19.75-6.07-2.21-11.09.12S274.9 413.5 274.9 413.5a45.74 45.74 0 01-18.78 3.73c-6.77 0-13.65-1.28-18.79-3.73 0 0-136.85-66-143.26-69.18-7-3.39-9-3.39-15.29-.35l-39 18.78c-10.39 5-10.39 13.18 0 18.2l197.4 95.32c5.13 2.56 12 3.73 18.78 3.73s13.65-1.28 18.78-3.73L472.18 381c10.5-5.07 10.5-13.23.12-18.25z\"}}]})(props);\n};\nexport function IoLogoCapacitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 101.09L372.37 208.72l106.86 107.06-69.3 69.3-283.22-283.23L196 32.54l107.07 106.88L410.67 32zM32.55 196l69.3-69.31 283.22 283.24-69.3 69.3-107-106.87L101.08 480 32 410.67l107.42-107.61z\"}}]})(props);\n};\nexport function IoLogoChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M188.8 255.93a67.2 67.2 0 1067.2-67.18 67.38 67.38 0 00-67.2 67.18z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M476.75 217.79v.05a206.63 206.63 0 00-7-28.84h-.11a202.16 202.16 0 017.07 29 203.5 203.5 0 00-7.07-29h-155.4c19.05 17 31.36 40.17 31.36 67.05a86.55 86.55 0 01-12.31 44.73L231 478.45a2.44 2.44 0 010 .27v.28-.26a224 224 0 0025 1.26c6.84 0 13.61-.39 20.3-1a222.91 222.91 0 0029.78-4.74C405.68 451.52 480 362.4 480 255.94a225.25 225.25 0 00-3.25-38.15z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 345.5c-33.6 0-61.6-17.91-77.29-44.79L76 123.05l-.14-.24A224 224 0 00207.4 474.55v-.05l77.69-134.6a84.13 84.13 0 01-29.09 5.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M91.29 104.57l77.35 133.25A89.19 89.19 0 01256 166h205.17a246.51 246.51 0 00-25.78-43.94l.12.08A245.26 245.26 0 01461.17 166h.17a245.91 245.91 0 00-25.66-44 2.63 2.63 0 01-.35-.26 223.93 223.93 0 00-344.19-17.4l.14.24z\"}}]})(props);\n};\nexport function IoLogoClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80v352h512V80zm464 175.78c0 25.74-1.6 45.32-3.77 77.22s-19.2 54.34-59.09 57.86-95.77 3.85-145.14 3.74c-49 .11-105.14-.11-145.14-3.74s-56.8-26-59.09-57.86S48 281.52 48 255.78s.11-42.46 3.77-77.22 23-54.12 59.09-57.64 98.28-3.52 145.14-3.52 109 0 145.14 3.52 55.43 23 59.09 57.64 3.77 51.59 3.77 77.22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M367.57 282.84v.77c0 17.93-11.11 28.49-25.95 28.49s-24.84-11.88-26.27-28.49c0 0-1.31-8.69-1.31-26.29a229.5 229.5 0 011.53-28.6c2.64-18.7 11.77-28.49 26.6-28.49s26.49 12.76 26.49 32.12v.55h49.58c0-24.09-6.05-45.76-18.25-59.4S369.76 153 345.8 153a108.06 108.06 0 00-33 4.73 58.82 58.82 0 00-25.94 16.61c-7.23 7.96-12.86 18.52-16.86 31.83s-6 30-6 50.27c0 19.8 1.65 36.3 4.84 49.61s8 23.87 14.4 31.79a49.76 49.76 0 0024 16.5q14.5 4.62 34 4.62c27.47 0 47.26-7 59.13-20.57S418 305.06 418 279.1h-50.65c.22 0 .22 2.75.22 3.74zm-170.27 0v.77c0 17.93-11.1 28.49-25.94 28.49s-24.84-11.88-26.27-28.49c0 0-1.31-8.69-1.31-26.29a229.5 229.5 0 011.53-28.6c2.64-18.7 11.77-28.49 26.6-28.49S198.4 213 198.4 232.35v.55H248c0-24.09-6-45.76-18.25-59.4S199.5 153 175.54 153a108.06 108.06 0 00-33 4.73 58.82 58.82 0 00-25.94 16.61c-7.26 7.92-12.86 18.48-16.93 31.79s-6 30-6 50.27c0 19.8 1.65 36.3 4.84 49.61s8 23.87 14.4 31.79a49.76 49.76 0 0024 16.5q14.51 4.62 34 4.62c27.48 0 47.27-7 59.14-20.57s17.81-33.33 17.81-59.29h-50.78c.22.04.22 2.79.22 3.78z\"}}]})(props);\n};\nexport function IoLogoCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M241.24 303.94c-15.32-10.36-30.74-20.57-46.06-30.93-2-1.38-3.43-1.48-5.5 0l-38.88 26.12C182 319.9 244 361.32 244 361.32v-53.79c0-1.22-1.55-2.78-2.76-3.59zm-46.15-63.27q23.19-15.24 46.11-30.86a7.54 7.54 0 002.8-5.34v-51.7s-62 41.12-93.26 61.94c13.7 9.16 26.67 17.91 39.78 26.44 1.02.66 3.4.28 4.57-.48zm74.75-31.32q23.71 16.07 47.63 31.82a4.3 4.3 0 003.83 0l39.76-26.47L268 152.48v53.35a4.79 4.79 0 001.84 3.52zm-11.73 21.02a5.27 5.27 0 00-4.74.17c-4.82 3-9.47 6.2-14.17 9.35-8.25 5.53-25.35 17-25.35 17l38.84 25.86a6.18 6.18 0 006.26.11l39-26s-34.07-22.66-39.84-26.49zM141 237.12v39.61l29.62-19.84L141 237.12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zm139 265c0 5.78-2.65 9.86-7.51 13.09q-61.71 41-123.29 82.19c-5.85 3.92-11.17 3.75-17-.14q-61.17-41-122.63-81.67c-5.11-3.39-7.59-7.56-7.59-13.73V217c0-6.14 2.52-10.34 7.62-13.72 40.91-27.13 81.94-54.36 122.73-81.68 5.82-3.89 11.09-4 16.94-.09q61.54 41.21 123.26 82.19c4.68 3.11 7.45 6.95 7.45 12.66z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M316.25 273.23q-22.59 15.34-45.39 30.34c-2.41 1.58-2.89 3.31-2.86 6.19v51.34l93-62-38.53-25.88c-2.3-1.61-3.89-1.57-6.22.01zm53.75 3.45v-39.62l-29.59 19.87L370 276.68z\"}}]})(props);\n};\nexport function IoLogoCss3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32l35 403.22L255.77 480 413 435.15 448 32zm290.68 334.9L256.07 395l-98.46-28.24-6.75-77.76h48.26l3.43 39.56 53.59 15.16.13.28 53.47-14.85 5.64-64.15H203l-4-50h120.65l4.35-51H140l-4-49h240.58z\"}}]})(props);\n};\nexport function IoLogoDesignernews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M295.31 122.8L222.86 64l72.68 122.64-.23-63.84z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M339.43 64v195.6h-41.6L225.6 141.28l1.94 118.32h-45.83V131.2L139.09 96c1.14 1.44 2.28 2.88 3.31 4.44 11.43 16.68 17.14 36.6 17.14 60.6 0 59-35 98.52-87.88 98.52H0v.48L228.11 448H512V205.72z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M111.89 162.52c0-34.8-16.23-54.12-45.38-54.12H44.57v106.8h21.72c29.71 0 45.6-18.48 45.6-52.68z\"}}]})(props);\n};\nexport function IoLogoDeviantart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 103.28V16h-89.31l-8.9 8.78-42.15 78.48-13.25 8.74H104v119.85h82.68l7.36 8.71L104 408.72V496h89.3l8.91-8.79 42.14-78.48 13.26-8.73H408V280.13h-82.68l-7.36-8.75L408 103.28z\"}}]})(props);\n};\nexport function IoLogoDiscord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 66.52A50 50 0 00414.12 17L97.64 16A49.65 49.65 0 0048 65.52V392c0 27.3 22.28 48 49.64 48H368l-13-44 109 100zM324.65 329.81s-8.72-10.39-16-19.32C340.39 301.55 352.5 282 352.5 282a139 139 0 01-27.85 14.25 173.31 173.31 0 01-35.11 10.39 170.05 170.05 0 01-62.72-.24 184.45 184.45 0 01-35.59-10.4 141.46 141.46 0 01-17.68-8.21c-.73-.48-1.45-.72-2.18-1.21-.49-.24-.73-.48-1-.48-4.36-2.42-6.78-4.11-6.78-4.11s11.62 19.09 42.38 28.26c-7.27 9.18-16.23 19.81-16.23 19.81-53.51-1.69-73.85-36.47-73.85-36.47 0-77.06 34.87-139.62 34.87-139.62 34.87-25.85 67.8-25.12 67.8-25.12l2.42 2.9c-43.59 12.32-63.44 31.4-63.44 31.4s5.32-2.9 14.28-6.77c25.91-11.35 46.5-14.25 55-15.21a24 24 0 014.12-.49 205.62 205.62 0 0148.91-.48 201.62 201.62 0 0172.89 22.95s-19.13-18.15-60.3-30.45l3.39-3.86s33.17-.73 67.81 25.16c0 0 34.87 62.56 34.87 139.62 0-.28-20.35 34.5-73.86 36.19z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M212.05 218c-13.8 0-24.7 11.84-24.7 26.57s11.14 26.57 24.7 26.57c13.8 0 24.7-11.83 24.7-26.57.25-14.76-10.9-26.57-24.7-26.57zm88.38 0c-13.8 0-24.7 11.84-24.7 26.57s11.14 26.57 24.7 26.57c13.81 0 24.7-11.83 24.7-26.57S314 218 300.43 218z\"}}]})(props);\n};\nexport function IoLogoDocker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507 211.16c-1.42-1.19-14.25-10.94-41.79-10.94a132.55 132.55 0 00-21.61 1.9c-5.22-36.4-35.38-54-36.57-55l-7.36-4.28-4.75 6.9a101.65 101.65 0 00-13.06 30.45c-5 20.7-1.9 40.2 8.55 56.85-12.59 7.14-33 8.8-37.28 9H15.94A15.93 15.93 0 000 262.07a241.25 241.25 0 0014.75 86.83C26.39 379.35 43.72 402 66 415.74 91.22 431.2 132.3 440 178.6 440a344.23 344.23 0 0062.45-5.71 257.44 257.44 0 0081.69-29.73 223.55 223.55 0 0055.57-45.67c26.83-30.21 42.74-64 54.38-94h4.75c29.21 0 47.26-11.66 57.23-21.65a63.31 63.31 0 0015.2-22.36l2.14-6.18z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M47.29 236.37H92.4a4 4 0 004-4v-40.48a4 4 0 00-4-4H47.29a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4m62.21.04h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4H109.5a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4m63.4.04H218a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.1a4 4 0 00-4 4v40.44a3.87 3.87 0 004 4m62.46.04h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4 4 0 004 4M109.5 178.57h45.12a4.16 4.16 0 004-4v-40.48a4 4 0 00-4-4H109.5a4 4 0 00-4 4v40.44a4.34 4.34 0 004 4m63.4.04H218a4.16 4.16 0 004-4v-40.48a4 4 0 00-4-4h-45.1a4 4 0 00-4 4v40.44a4 4 0 004 4m62.46.04h45.12a4.16 4.16 0 004-4v-40.48a4.16 4.16 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4m0-58h45.12a4 4 0 004-4V76a4.16 4.16 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.17 4.17 0 004 4m62.92 115.93h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4\"}}]})(props);\n};\nexport function IoLogoDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.33 32 32 132.33 32 256s100.33 224 224 224 224-100.22 224-224S379.67 32 256 32zm142.22 103.25a186.36 186.36 0 0144 108.38c-40.37-2.1-88.67-2.1-127.4 1.52-4.9-12.37-9.92-24.5-15.4-36.17 44.66-19.36 79.08-44.8 98.8-73.73zM256 69.33a185.81 185.81 0 01119.12 42.94c-20.3 25.66-52.15 48-91.82 64.86C261.6 137 236.63 102.47 210 75.28a187.51 187.51 0 0146-5.95zm-84.47 20.42c26.95 26.83 52.27 61 74.44 101C203.85 203.62 155.55 211 104 211c-9.8 0-19.36-.35-28.81-.94a186.78 186.78 0 0196.34-120.31zM69.68 247.13c10.62.47 21.35.7 32.2.59 58.8-.7 113.52-9.92 160.54-25q6.65 13.83 12.6 28.35a115.43 115.43 0 00-16.69 5c-64.28 27-114.91 70.51-142.33 123.13A186 186 0 0169.33 256c0-3 .12-5.95.35-8.87zM256 442.67a185.57 185.57 0 01-114.45-39.32c24.85-49.23 69.18-90 125.07-115.27 5.25-2.45 12.25-4.43 20.3-6.18q10 27.64 17.85 57.4A678 678 0 01322 430.42a185.06 185.06 0 01-66 12.25zm100.92-29.75a672.61 672.61 0 00-17.39-92.05c-4-15.17-8.51-29.87-13.41-44.22 36.63-3 80.5-2.57 115.38 0a186.5 186.5 0 01-84.58 136.27z\"}}]})(props);\n};\nexport function IoLogoDropbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.32 126.24l-120.16 78.25 120.16 78.24L136.16 361 16 282.08l120.16-78.24L16 126.24 136.16 48zm-120.8 259.52l120.16-78.25 120.16 78.25L255.68 464zm120.8-103.68l120.16-78.24-120.16-77.6L375.84 48 496 126.24l-120.16 78.25L496 282.73 375.84 361z\"}}]})(props);\n};\nexport function IoLogoEdge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.5 15c-132 0-240 108-240 240s108 240 240 240c85.4 0 160.8-45.2 203.3-112.9a6.87 6.87 0 00-9.1-9.7 108.64 108.64 0 01-18.4 8.6c-36.8 12.6-57.1 13.1-82.1 12-27.9-1.2-61.9-10.8-85.8-25s-43.5-34.6-54.1-52.3-17-39.9-14.1-68.3c2.9-29 29.4-52.6 60.4-52.6 33.5 0 60.8 26.6 60.8 60.1 0 17-8.1 31.7-18.5 43.5-2.3 2.1-7.6 9.7 5.8 20 15.9 12.2 51.6 18 79.9 16.6s59.1-12.6 80.2-34.8c16.8-17.7 31.8-46.1 31.8-77.4C495.5 97.7 379.5 15 255.5 15z\"}}]})(props);\n};\nexport function IoLogoElectron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.76 255a9.89 9.89 0 004.87-1.29 9.82 9.82 0 003.65-13.43c-16.46-28.56-17.81-52.12-7.45-70 14.26-24.57 53.61-33.65 105.27-24.29a9.86 9.86 0 0011.45-7.9 9.84 9.84 0 00-7.93-11.44c-29.19-5.28-56-5.18-77.39.3-22.3 5.71-39 17.28-48.45 33.48-14 24.19-12.7 54.73 7.42 89.62a9.85 9.85 0 008.56 4.95zm274.85-111.27c32.24.42 52.61 9.31 62.79 26.86 14.21 24.48 2.52 62.81-31.27 102.52a9.82 9.82 0 007.51 16.18 9.88 9.88 0 007.52-3.46c19.12-22.47 32.35-45.54 38.25-66.71 6.14-22 4.43-42.21-5-58.38-13.8-23.78-40.13-36.15-79.59-36.67h-.14a9.83 9.83 0 00-.12 19.66zm-35.14 271.16a9.88 9.88 0 00-13.5 3.35c-16.41 27.15-36.57 42.1-56.77 42.1-28.49 0-56-29.31-73.73-78.42a9.87 9.87 0 00-12.59-5.92 9.83 9.83 0 00-6 12.58c10 27.77 23.47 50.75 39 66.46 16.11 16.34 34.55 25 53.32 25 27.38 0 53.54-18.33 73.65-51.61a9.81 9.81 0 00-3.38-13.5zm105.23-76.35a32.14 32.14 0 00-29.9 44.33c-41.8 19.5-119.8 4.79-191.87-36.62-32.91-18.9-62.16-41.86-84.6-66.39a9.9 9.9 0 00-13.91-.65 9.8 9.8 0 00-.65 13.9c23.79 26 54.68 50.28 89.33 70.18 40.28 23.13 82.27 38.63 121.43 44.81a225.54 225.54 0 0035 2.91c23.12 0 43-4.3 58.51-12.79a32.2 32.2 0 1016.7-59.68zm0 44.66a12.6 12.6 0 01-7.82-2.72 10 10 0 00-2.2-2.21 12.61 12.61 0 1110 4.93z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M82.09 338.59c.57-21.26 12.41-47 33.68-73.16 23.19-28.45 56.69-56 94.34-77.65 33.25-19.1 65.2-31.9 98.07-38.91a9.83 9.83 0 10-4.12-19.22c-34.85 7.43-68.78 21-103.79 41.09C116.09 219.09 59.9 289.88 62.46 343.9a32.32 32.32 0 1019.63-5.31zM80.3 383.2a12.5 12.5 0 1112.59-12.5 12.56 12.56 0 01-12.59 12.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.2 96.32a32.23 32.23 0 0026.53-13.81c17.89 11.69 34 35 45.81 66.12 13 34.39 19.84 75.38 19.84 118.54 0 37.18-5.19 72.35-15 103.6a9.72 9.72 0 00.66 7.49 9.82 9.82 0 005.8 4.84 9.89 9.89 0 0012.34-6.44c10.42-33.14 15.93-70.34 15.93-109.49 0-47.17-7.77-91.77-22.47-129-14.41-36.48-34.13-62.4-57.14-75.16a32.3 32.3 0 10-32.3 33.31zm0-44.66a12.5 12.5 0 11-12.59 12.5 12.56 12.56 0 0112.59-12.5zm-5.2 191.7a24.35 24.35 0 005.16 48.16 24.68 24.68 0 005.16-.55A24.36 24.36 0 10251 243.36z\"}}]})(props);\n};\nexport function IoLogoEuro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M231.8 272v-48H376l8-48H231.8v-8.12c0-38.69 16.47-62.56 87.18-62.56 28.89 0 61.45 2.69 102.5 9.42l10.52-70A508.54 508.54 0 00315.46 32C189.26 32 135 76.4 135 158.46V176H80v48h55v48H80v48h55v33.54C135 435.6 189.23 480 315.43 480a507.76 507.76 0 00116.44-12.78l-10.58-70c-41.05 6.73-73.46 9.42-102.35 9.42-70.7 0-87.14-20.18-87.14-67.94V320h128.47l7.87-48z\"}}]})(props);\n};\nexport function IoLogoFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M480 257.35c0-123.7-100.3-224-224-224s-224 100.3-224 224c0 111.8 81.9 204.47 189 221.29V322.12h-56.89v-64.77H221V208c0-56.13 33.45-87.16 84.61-87.16 24.51 0 50.15 4.38 50.15 4.38v55.13H327.5c-27.81 0-36.51 17.26-36.51 35v42h62.12l-9.92 64.77H291v156.54c107.1-16.81 189-109.48 189-221.31z\"}}]})(props);\n};\nexport function IoLogoFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 176a80 80 0 000-160H176a80 80 0 000 160 80 80 0 000 160 80 80 0 1080 80V176z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"336\",\"cy\":\"256\",\"r\":\"80\"}}]})(props);\n};\nexport function IoLogoFirebase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M93.19 329.38l47.45-304.07c1.64-10.37 15.55-12.82 20.46-3.55l51 95.45zM432 400l-46.74-276.79a11 11 0 00-18.54-6L80 400l159.36 91.91a33.18 33.18 0 0031.91 0zM302.36 158.93l-36.54-69.54a10.86 10.86 0 00-19.36 0L85.83 375.74z\"}}]})(props);\n};\nexport function IoLogoFirefox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.46 194.62v-.07c-.22-.76-.45-1.52-.68-2.28-.05-.19-.11-.38-.17-.56-.43-1.44-.87-2.88-1.33-4.31l-.06-.2a223.24 223.24 0 00-10-25.56 191.77 191.77 0 00-12.9-23.8 225.15 225.15 0 00-74.74-73.74A222.9 222.9 0 00256 32c-7 0-14 .34-20.82 1-24.12 2.54-64.78 11.21-97.77 40.18C257.5 11.86 417.94 85.7 404.29 223c-4.86 49-46.46 82.67-85.19 88.35a73.73 73.73 0 01-20.8.21c-94.59-13.15-88.8-90.68-60.06-123.83-38-.24-67.47 46.79-53.15 93-32.95-61.18.35-157 70.93-186-82.95-12-160.71 28.2-185.7 98.07A330.23 330.23 0 0188.07 118s-45.22 35.74-54.44 110.9c-.14 1.16-.27 2.32-.39 3.49-.05.4-.09.8-.13 1.21q-.53 5.25-.8 10.57v.81c-.07 1.48-.13 3-.17 4.46v1.25c0 1.76-.07 3.52-.07 5.29 0 123.71 100.29 224 224 224S480 379.71 480 256a224 224 0 00-8.54-61.38z\"}}]})(props);\n};\nexport function IoLogoFlickr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.8 32 32 132.8 32 256s100.8 224 224 224 224-100.8 224-224S379.2 32 256 32zm-82.16 280A56 56 0 11228 257.84 56 56 0 01173.84 312zm168 0A56 56 0 11396 257.84 56 56 0 01341.84 312z\"}}]})(props);\n};\nexport function IoLogoFoursquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376.76 32H138.54C105.67 32 96 56.8 96 72.41v379.64c0 17.59 9.42 24.12 14.72 26.27s19.91 4 28.67-6.17c0 0 112.47-130.89 114.4-132.83 2.92-2.93 2.92-2.93 5.84-2.93h72.77c30.58 0 35.49-21.87 38.69-34.75 2.65-10.79 32.48-164 42.45-212.56C421.14 52 411.74 32 376.76 32zm-5.67 269.64c2.65-10.79 32.48-164 42.45-212.56m-50.85 7.59l-10 51.73c-1.19 5.65-8.28 11.6-14.86 11.6h-95.92c-10.44 0-17.91 6.14-17.91 16.6v13.45c0 10.47 7.52 17.89 18 17.89h81.85c7.38 0 14.61 8.11 13 16s-9.09 46.57-10 50.89-5.84 11.72-14.61 11.72H248c-11.7 0-15.24 1.54-23.07 11.3s-78.26 94.59-78.26 94.59c-.71.82-1.41.58-1.41-.31V95.9c0-6.69 5.8-14.53 14.48-14.53h191.14a12.42 12.42 0 0111.81 15.3z\"}}]})(props);\n};\nexport function IoLogoGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9a17.56 17.56 0 003.8.4c8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1a102.4 102.4 0 01-22.6 2.7c-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1a63 63 0 0025.6-6c2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8a18.64 18.64 0 015-.5c8.1 0 26.4 3.1 56.6 24.1a208.21 208.21 0 01112.2 0c30.2-21 48.5-24.1 56.6-24.1a18.64 18.64 0 015 .5c12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5a19.35 19.35 0 004-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32z\"}}]})(props);\n};\nexport function IoLogoGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.07 281.6l-25.18-78.08a11 11 0 00-.61-2.1l-50.5-156.94a20.08 20.08 0 00-19.17-13.82 19.77 19.77 0 00-18.95 13.94l-48.14 149.55h-152L131.34 44.59a19.76 19.76 0 00-18.86-13.94h-.11a20.15 20.15 0 00-19.12 14L42.7 201.73c0 .14-.11.26-.16.4l-25.63 79.48a29.15 29.15 0 0010.44 32.46l221.44 162.41a11.25 11.25 0 0013.38-.07l221.48-162.34a29.13 29.13 0 0010.42-32.47m-331-64.51l61.73 191.76L76.63 217.09m209.64 191.8l59.19-183.84 2.55-8h86.52L300.47 390.44M398.8 59.31l43.37 134.83h-86.82M324.16 217l-43 133.58-25.66 79.56L186.94 217M112.27 59.31l43.46 134.83H69M40.68 295.58a6.19 6.19 0 01-2.21-6.9l19-59 139.61 180.59m273.26-114.69L313.92 410.22l.52-.69L453.5 229.64l19 59a6.2 6.2 0 01-2.19 6.92\"}}]})(props);\n};\nexport function IoLogoGooglePlaystore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 59.49v393a4.33 4.33 0 007.37 3.07L260 256 55.37 56.42A4.33 4.33 0 0048 59.49zM345.8 174L89.22 32.64l-.16-.09c-4.42-2.4-8.62 3.58-5 7.06l201.13 192.32zM84.08 472.39c-3.64 3.48.56 9.46 5 7.06l.16-.09L345.8 338l-60.61-57.95zM449.38 231l-71.65-39.46L310.36 256l67.37 64.43L449.38 281c19.49-10.77 19.49-39.23 0-50z\"}}]})(props);\n};\nexport function IoLogoGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M473.16 221.48l-2.26-9.59H262.46v88.22H387c-12.93 61.4-72.93 93.72-121.94 93.72-35.66 0-73.25-15-98.13-39.11a140.08 140.08 0 01-41.8-98.88c0-37.16 16.7-74.33 41-98.78s61-38.13 97.49-38.13c41.79 0 71.74 22.19 82.94 32.31l62.69-62.36C390.86 72.72 340.34 32 261.6 32c-60.75 0-119 23.27-161.58 65.71C58 139.5 36.25 199.93 36.25 256s20.58 113.48 61.3 155.6c43.51 44.92 105.13 68.4 168.58 68.4 57.73 0 112.45-22.62 151.45-63.66 38.34-40.4 58.17-96.3 58.17-154.9 0-24.67-2.48-39.32-2.59-39.96z\"}}]})(props);\n};\nexport function IoLogoHackernews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32v448h448V32zm249.67 250.83v84H235v-84l-77-140h55l46.32 97.54 44.33-97.54h52.73z\"}}]})(props);\n};\nexport function IoLogoHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32l34.94 403.21L255.77 480 413 435.15 448 32zm308 132H188l4 51h176l-13.51 151.39L256 394.48l-98.68-28-6.78-77.48h48.26l3.42 39.29L256 343.07l53.42-14.92L315 264H148l-12.59-149.59H376.2z\"}}]})(props);\n};\nexport function IoLogoInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.33 69.33a93.62 93.62 0 0193.34 93.34v186.66a93.62 93.62 0 01-93.34 93.34H162.67a93.62 93.62 0 01-93.34-93.34V162.67a93.62 93.62 0 0193.34-93.34h186.66m0-37.33H162.67C90.8 32 32 90.8 32 162.67v186.66C32 421.2 90.8 480 162.67 480h186.66C421.2 480 480 421.2 480 349.33V162.67C480 90.8 421.2 32 349.33 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M377.33 162.67a28 28 0 1128-28 27.94 27.94 0 01-28 28zM256 181.33A74.67 74.67 0 11181.33 256 74.75 74.75 0 01256 181.33m0-37.33a112 112 0 10112 112 112 112 0 00-112-112z\"}}]})(props);\n};\nexport function IoLogoIonic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 153.9A102.1 102.1 0 10358.1 256 102.23 102.23 0 00256 153.9z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"402.59\",\"cy\":\"116.45\",\"r\":\"46.52\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M459.86 163.2l-1.95-4.28-3.11 3.52a70 70 0 01-28.06 19.32l-3 1.1 1.22 2.93A181.43 181.43 0 01439 256c0 100.92-82.1 183-183 183S73 356.92 73 256 155.08 73 256 73a180.94 180.94 0 0178.43 17.7l2.87 1.3 1.25-2.92A70.19 70.19 0 01359.21 62l3.67-2.93-4.17-2.07A221.61 221.61 0 00256 32C132.49 32 32 132.49 32 256s100.49 224 224 224 224-100.49 224-224a222.19 222.19 0 00-20.14-92.8z\"}}]})(props);\n};\nexport function IoLogoIonitron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M468.41 269.19c-2.64-33.39-11.76-58-31.44-57.39a1 1 0 00-.92 1.37c5.11 12.59 9.68 36.9 9.17 58.07a1 1 0 01-2 .08c-2.19-21.21-7.1-41.19-16.22-59.43a186.69 186.69 0 00-348.91 41 4 4 0 01-3.33 3.11l-8.65 1.22c-17.2 2.4-26.9 34.9-21.7 72.5s23.5 66.2 40.7 63.8l13.24-1.85a4 4 0 013.93 1.84 186.71 186.71 0 00339-56.07 4 4 0 013.68-3.08l4.4-.24c15.15-2.53 21.75-31.23 19.05-64.93zM94.5 270.42a1 1 0 011.59-1.19c9.63 10 20.25 27.65 23.32 49.86 3.24 23.05-2.24 45.2-9.13 57.87a1 1 0 01-1.84-.73c4.07-14.44 5.16-33.83 2.27-54.74-2.8-20.32-8.71-38.27-16.21-51.07zm178.77 109.79a15.53 15.53 0 01-15.41-13.83 15.48 15.48 0 1115.41 13.83zm81.84-4.72a15.37 15.37 0 1114.6-16.2 15.43 15.43 0 01-14.6 16.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M165.51 70a.31.31 0 01.1.2c.1.2.2.3.3.5v.1a5.78 5.78 0 002.3 2.7c2 1.5 5 2.4 8.6 3a63.69 63.69 0 0011.9.5 28.25 28.25 0 002.9-.2c-.4-.4-.8-.9-1.2-1.3h-1.3a52 52 0 01-11.6-.9 19.71 19.71 0 01-8.4-3.4 9.24 9.24 0 01-1.4-1.4 4.48 4.48 0 010-2.3c.5-2.3 2.4-4.8 5.5-7.4a57.25 57.25 0 0110.9-7c.9-.4 1.7-.9 2.6-1.3.1-.1.3-.1.5-.2a24.69 24.69 0 00-.2 10.5c2.3 11.9 11.6 20.3 23.2 20.6l4 24.3 12.7-3-4-23.3c10.8-4.6 16.3-16.1 14-28a25.8 25.8 0 00-3.9-9.5c-5.3-.8-15.6-.8-29.2 2.1 1.1-.3 2.1-.7 3.2-1a135.27 135.27 0 0121.5-4.2c.6-.1 1.2-.1 1.8-.2l3.5-.3h.6a61.83 61.83 0 0110.8.3 29 29 0 016.1 1.4 5.71 5.71 0 00-.9 3.2 6.12 6.12 0 004.3 5.8 25.53 25.53 0 01-2.1 2.8 26 26 0 01-2.9 2.8c-1.1.9-2.3 1.8-3.5 2.7l-6.5 3.8-.3 1.5a.35.35 0 00.2-.1l8.4-4.7c1.2-.8 2.4-1.6 3.4-2.4a29.15 29.15 0 003.2-2.8 29.86 29.86 0 002.4-2.8l.3-.6a6.14 6.14 0 005.4-6 6.06 6.06 0 00-6.1-6.1 6.81 6.81 0 00-2.8.7 24.6 24.6 0 00-8.2-2.7 63.48 63.48 0 00-15.5-.6 14.92 14.92 0 00-2.1.2 13.55 13.55 0 01-2 .2 25.15 25.15 0 00-18.7-3.7 25.86 25.86 0 00-17.8 13c-1.3.5-2.6 1.1-3.8 1.7-.7.3-1.3.6-2 .9a60.75 60.75 0 00-13.9 9.1c-3.1 2.9-4.9 5.7-5.3 8.3a6.14 6.14 0 00.7 4 2.19 2.19 0 01.3.5z\"}}]})(props);\n};\nexport function IoLogoJavascript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32v448h448V32zm240 348c0 43.61-25.76 64.87-63.05 64.87-33.68 0-53.23-17.44-63.15-38.49l34.28-20.75c6.61 11.73 11.63 21.65 26.06 21.65 12 0 21.86-5.41 21.86-26.46V240h44zm99.35 63.87c-39.09 0-64.35-17.64-76.68-42L329 382c9 14.74 20.75 24.56 41.5 24.56 17.44 0 27.57-7.72 27.57-19.75 0-14.43-10.43-19.54-29.68-28l-10.52-4.52c-30.38-12.92-50.52-29.16-50.52-63.45 0-31.57 24.05-54.63 61.64-54.63 26.77 0 46 8.32 59.85 32.68L396 290c-7.22-12.93-15-18-27.06-18-12.33 0-20.15 7.82-20.15 18 0 12.63 7.82 17.74 25.86 25.56l10.52 4.51c35.79 15.34 55.94 31 55.94 66.16.01 37.9-29.76 57.64-69.76 57.64z\"}}]})(props);\n};\nexport function IoLogoLaravel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.57 234.62c-3.28-3.53-26.82-32.29-39.51-47.79-6.75-8.24-12.08-14.75-14.32-17.45l-.18-.22-.2-.21c-5.22-5.83-12.64-12.51-23.78-12.51a39.78 39.78 0 00-5.41.44c-.37.05-.75.11-1.15.15-2.45.27-10.06 1.5-28.14 4.48-14 2.29-35.11 5.77-38.31 6.07l-.71.06-.69.13c-10 1.78-16.62 6.22-19.56 13.19-1.55 3.68-3.22 11.15 2.94 19.86 1.53 2.22 6.83 9.56 15.94 22.17 6.06 8.4 12.87 17.82 18.75 26L259.9 275 150.66 96.05l-.2-.34-.23-.33-.44-.65C145.32 88.17 139.76 80 123.7 80c-1.13 0-2.31 0-3.63.11-4.6.25-21.42 1.57-40.89 3.11-21.49 1.69-50.9 4-54.72 4.1h-.73l-.79.08c-9.14.89-15.77 4.6-19.7 11-6.55 10.69-1.42 22.69.26 26.63C6.87 133 37.56 197.7 64.63 254.81c18 37.94 36.58 77.17 38.1 80.65a34.85 34.85 0 0032.94 21.59 46.62 46.62 0 009.86-1.1h.21l.2-.05c13.86-3.38 57.83-14.54 89.2-22.59 1.9 3.32 3.9 6.83 6 10.44 21.93 38.5 37.9 66.35 43.16 73.46C287 421 295 432 310.06 432c5.46 0 10.46-1.4 15.74-2.89l1.53-.43h.12c10.53-3 150.69-52.16 157.87-55.35l.22-.1c5.44-2.41 13.66-6.05 16.18-15.4 1.65-6.12.18-12.33-4.38-18.46l-.07-.09-.07-.09c-.85-1.1-4-5.21-8.27-10.9-9.13-12.07-23.88-31.57-36.84-48.54 17.37-4.5 38.8-10.11 43.38-11.55 11.47-3.43 14.94-10.69 16-14.73.79-3.15 1.82-11.2-5.9-18.85zm-320 58.19c-17.81 4.17-30.22 7.08-37.89 8.9-6.67-13.34-19.74-39.65-32.5-65.33-29.74-59.92-45.1-90.77-53.18-106.9l8.15-.7c13.34-1.15 31.61-2.72 41.78-3.57 16.76 28.26 74.32 125.3 96.3 162.3zM427.58 172zM310.06 416.4zm53.67-56.95c-24.21 8-37.33 12.37-44.42 14.74-6.3-10.34-20.16-33.52-32.47-54.19l115.7-29.48c5 6.81 14.57 19.72 33.46 44.93-18.07 6.04-48.2 16.02-72.27 24zm55.87-121.63l-23.76-31.53c13.67-2.39 21.54-3.77 26.15-4.6l12 14.88 11.94 14.82c-8.2 1.99-17.74 4.32-26.33 6.43z\"}}]})(props);\n};\nexport function IoLogoLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.17 32H70.28C49.85 32 32 46.7 32 66.89v374.72C32 461.91 49.85 480 70.28 480h373.78c20.54 0 35.94-18.21 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32zm-273.3 373.43h-64.18V205.88h64.18zM141 175.54h-.46c-20.54 0-33.84-15.29-33.84-34.43 0-19.49 13.65-34.42 34.65-34.42s33.85 14.82 34.31 34.42c-.01 19.14-13.31 34.43-34.66 34.43zm264.43 229.89h-64.18V296.32c0-26.14-9.34-44-32.56-44-17.74 0-28.24 12-32.91 23.69-1.75 4.2-2.22 9.92-2.22 15.76v113.66h-64.18V205.88h64.18v27.77c9.34-13.3 23.93-32.44 57.88-32.44 42.13 0 74 27.77 74 87.64z\"}}]})(props);\n};\nexport function IoLogoMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M475 64H37C16.58 64 0 81.38 0 102.77v306.42C0 430.59 16.58 448 37 448h438c20.38 0 37-17.41 37-38.81V102.77C512 81.38 495.42 64 475 64zM288 368h-64V256l-48 64-48-64v112H64V144h64l48 80 48-80h64zm96 0l-80-112h48.05L352 144h64v112h48z\"}}]})(props);\n};\nexport function IoLogoMastodon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 173.59c0-104.13-68.26-134.65-68.26-134.65C377.3 23.15 318.2 16.5 256.8 16h-1.51c-61.4.5-120.46 7.15-154.88 22.94 0 0-68.27 30.52-68.27 134.65 0 23.85-.46 52.35.29 82.59C34.91 358 51.11 458.37 145.32 483.29c43.43 11.49 80.73 13.89 110.76 12.24 54.47-3 85-19.42 85-19.42l-1.79-39.5s-38.93 12.27-82.64 10.77c-43.31-1.48-89-4.67-96-57.81a108.44 108.44 0 01-1-14.9 558.91 558.91 0 0096.39 12.85c32.95 1.51 63.84-1.93 95.22-5.67 60.18-7.18 112.58-44.24 119.16-78.09 10.42-53.34 9.58-130.17 9.58-130.17zm-80.54 134.16h-50V185.38c0-25.8-10.86-38.89-32.58-38.89-24 0-36.06 15.53-36.06 46.24v67h-49.66v-67c0-30.71-12-46.24-36.06-46.24-21.72 0-32.58 13.09-32.58 38.89v122.37h-50V181.67q0-38.65 19.75-61.39c13.6-15.15 31.4-22.92 53.51-22.92 25.58 0 44.95 9.82 57.75 29.48L256 147.69l12.45-20.85c12.81-19.66 32.17-29.48 57.75-29.48 22.11 0 39.91 7.77 53.51 22.92q19.79 22.72 19.75 61.39z\"}}]})(props);\n};\nexport function IoLogoMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M28 28v456h456V28H28zm378.83 108.04l-24.46 23.45a7.162 7.162 0 00-2.72 6.86v172.28c-.44 2.61.61 5.26 2.72 6.86l23.88 23.45v5.15H286.13v-5.15l24.74-24.02c2.43-2.43 2.43-3.15 2.43-6.86V198.81l-68.79 174.71h-9.3l-80.09-174.71v117.1c-.67 4.92.97 9.88 4.43 13.44l32.18 39.03v5.15h-91.24v-5.15l32.18-39.03c3.44-3.57 4.98-8.56 4.15-13.44V180.5c.38-3.76-1.05-7.48-3.86-10.01l-28.6-34.46v-5.15h88.81l68.65 150.55 60.35-150.55h84.66v5.16z\"}}]})(props);\n};\nexport function IoLogoMicrosoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.87 30.58H244.7v212.81H31.87zm235.02 0H479.7v212.81H266.89zM31.87 265.61H244.7v212.8H31.87zm235.02 0H479.7v212.8H266.89z\"}}]})(props);\n};\nexport function IoLogoNoSmoking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 256h16v48h-16zm-248 48h129.6l-48-48H112v48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M364.5 60.1a8.79 8.79 0 01-1-.6 218.79 218.79 0 00-34.4-14.8l-5.4-1.8A223.2 223.2 0 00256 32C132.3 32 32 132.3 32 256a223.71 223.71 0 00115.4 195.8c.4.2.7.5 1.1.7a218.79 218.79 0 0034.4 14.8l5.4 1.8A222.7 222.7 0 00256 480c123.7 0 224-100.3 224-224A223.76 223.76 0 00364.5 60.1zM256 426.4a161.85 161.85 0 01-27.2-2.4 170.14 170.14 0 01-28.5-7.3c-1.9-.6-3.8-1.2-5.6-1.9a162.39 162.39 0 01-19-8.6 170.33 170.33 0 01-90.1-150.3c0-37.2 12.4-71.4 32.7-99.4l237.2 237.2c-28.1 20.3-62.3 32.7-99.5 32.7zm137.8-71L156.6 118.2c28-20.2 62.1-32.6 99.4-32.6a162.79 162.79 0 0127.2 2.4 170.14 170.14 0 0128.5 7.3c1.8.6 3.7 1.2 5.6 1.9a162 162 0 0118 8.1 170.25 170.25 0 0191.2 150.8c-.1 37.2-12.5 71.3-32.7 99.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 256h-34l34 34v-34zm32 0h16v48h-16zm-23.9-43.3c-8.8-4.1-22-5.7-45.6-5.7h-3.6c-12.7.1-15.9-.1-20-6.1-2.8-4.2-1-14.8 3.7-21.9a8 8 0 00.4-8.2 8.26 8.26 0 00-7-4.3 53.67 53.67 0 01-18.3-3.9c-10.6-4.5-15.6-12.1-15.6-23.1 0-25.8 21.8-27.7 22.8-27.7v-16c-12 0-38.8 11-38.8 43.7 0 17.5 9 31 25.7 38a66.58 66.58 0 0012 3.6c-3.3 9.8-3.6 20.9 1.7 28.7 9 13.3 20.3 13.2 33.3 13.1h3.5c26.3 0 34.6 2.3 38.9 4.3 5.7 2.6 6.8 7.5 6.6 15.7v1h16v-1c0-7.1.3-22.8-15.7-30.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 244c0-25.7-3-39.2-9.1-49.6C382.3 180 368.5 172 352 172h-17.4c2.9-8.3 5.4-19.8 3.5-30.9-3.2-18.8-19.1-30-43.1-30v16c21 0 26.1 9.1 27.4 16.7 2.5 14.5-6.8 32.1-6.9 32.3a8 8 0 00.1 7.9 8.06 8.06 0 006.9 3.9H352c10.9 0 19.4 4.9 25.1 14.6 3.1 5.3 6.9 13.5 6.9 41.4h16z\"}}]})(props);\n};\nexport function IoLogoNodejs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.76 130.07L274.33 36.85a37 37 0 00-36.65 0L82.24 130.06A38.2 38.2 0 0064 162.83V349a38.26 38.26 0 0018.24 32.8L123 406.14l.23.13c20.58 10.53 28.46 10.53 37.59 10.53 32.14 0 52.11-20.8 52.11-54.29V182a8.51 8.51 0 00-8.42-8.58h-22.38a8.51 8.51 0 00-8.42 8.58v180.51a15 15 0 01-6.85 13.07c-5.9 3.6-14.47 2.84-24.14-2.15l-39.06-23.51a1.1 1.1 0 01-.48-.92V165.46a1.32 1.32 0 01.59-1.06l151.84-93a.82.82 0 01.73 0l151.93 93a1.34 1.34 0 01.55 1.1V349a1.28 1.28 0 01-.45 1l-152.06 90.65a1.22 1.22 0 01-.8 0l-38.83-23.06a7.8 7.8 0 00-7.83-.41l-.34.2c-10.72 6.35-13.6 8-23.54 11.62-1.62.59-5.43 2-5.76 5.77s3.29 6.45 6.51 8.32l51.9 31.87a35.67 35.67 0 0018.3 5.07h.58a35.87 35.87 0 0017.83-5.07l155.43-93.13A38.37 38.37 0 00448 349V162.83a38.21 38.21 0 00-18.24-32.76z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M307.88 318.05c-37.29 0-45.24-10.42-47.6-27.24a8.43 8.43 0 00-8.22-7.32h-19.8a8.44 8.44 0 00-8.26 8.58c0 14.58 5.12 62.17 83.92 62.17 24.38 0 44.66-5.7 58.63-16.49S388 311.26 388 292.55c0-37.55-24.5-47.83-72.75-54.55-49.05-6.82-49.05-10.29-49.05-17.89 0-5.47 0-18.28 35.46-18.28 25.23 0 38.74 3.19 43.06 20a8.35 8.35 0 008.06 6.67h19.87a8.24 8.24 0 006.16-2.86 8.91 8.91 0 002.12-6.44c-2.57-35.55-28.56-53.58-79.24-53.58-46.06 0-73.55 20.75-73.55 55.5 0 38.1 28.49 48.87 71.29 53.33 50 5.17 50 12.71 50 19.37.03 10.38-4.28 24.23-41.55 24.23z\"}}]})(props);\n};\nexport function IoLogoNpm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M227.6 213.1H256v57.1h-28.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 156v171.4h142.2V356H256v-28.6h256V156zm142.2 142.9h-28.4v-85.7H85.3v85.7H28.4V184.6h113.8zm142.2 0h-56.9v28.6h-56.9V184.6h113.8zm199.2 0h-28.4v-85.7h-28.4v85.7h-28.4v-85.7H370v85.7h-56.9V184.6h170.7v114.3z\"}}]})(props);\n};\nexport function IoLogoOctocat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M172.86 290.12c-9.75 0-18.11 4.56-24.86 13.87s-10.07 20.58-10.07 34 3.43 24.91 10.07 34.12S163 386 172.86 386c9.1 0 17-4.66 23.68-13.87s10.07-20.58 10.07-34.12-3.43-24.81-10.07-34-14.54-13.89-23.68-13.89zm167.46 0c-9.64 0-18.11 4.56-24.86 13.87s-10.07 20.58-10.07 34 3.43 24.91 10.07 34.12S330.57 386 340.32 386c9.11 0 17-4.66 23.79-13.87s10.07-20.58 10.07-34.12-3.43-24.81-10.07-34-14.57-13.89-23.79-13.89z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M459.36 165c-.11 0 2.89-15.49.32-42.47-2.36-27-8-51.78-17.25-74.53 0 0-4.72.87-13.72 3.14S405 58 384.89 67.18c-19.82 9.2-40.71 21.44-62.46 36.29-14.79-4.23-36.86-6.39-66.43-6.39-28.18 0-50.25 2.16-66.43 6.39Q117.9 53.25 69.46 48q-13.81 34.13-17.14 74.75c-2.57 27 .43 42.58.43 42.58C26.71 193.82 16 234.88 16 268.78c0 26.22.75 49.94 6.54 71 6 20.91 13.6 38 22.6 51.14A147.49 147.49 0 0079 425.43c13.39 10.08 25.71 17.34 36.86 21.89 11.25 4.76 24 8.23 38.57 10.72a279.19 279.19 0 0032.68 4.34s30 1.62 69 1.62 68.89-1.62 68.89-1.62a285.25 285.25 0 0032.68-4.38 178.91 178.91 0 0038.46-10.72c11.15-4.66 23.47-11.81 37-21.89a145 145 0 0033.75-34.55c9-13.11 16.6-30.23 22.6-51.14s6.51-44.81 6.51-71.03c0-32.82-10.71-74.42-36.64-103.67zm-70.07 253.07C359.39 432.26 315.46 438 257.18 438h-2.25c-58.29 0-102.22-5.63-131.57-19.93s-44.25-43.45-44.25-87.43c0-26.32 9.21-47.66 27.32-64 7.93-7 17.57-11.92 29.57-14.84s22.93-3 33.21-2.71c10.08.43 24.22 2.38 42.11 3.79s31.39 3.25 44.79 3.25c12.53 0 29.14-2.17 55.82-4.33s46.61-3.25 59.46-1.09c13.18 2.17 24.65 6.72 34.4 15.93q28.44 25.67 28.5 64c-.11 43.98-15.22 73.24-45 87.43z\"}}]})(props);\n};\nexport function IoLogoPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.81 148.79c-.43 2.76-.93 5.58-1.49 8.48-19.17 98-84.76 131.8-168.54 131.8h-42.65a20.67 20.67 0 00-20.47 17.46l-21.84 137.84-6.18 39.07a10.86 10.86 0 009.07 12.42 10.72 10.72 0 001.7.13h75.65a18.18 18.18 0 0018-15.27l.74-3.83 14.24-90 .91-4.94a18.16 18.16 0 0118-15.3h11.31c73.3 0 130.67-29.62 147.44-115.32 7-35.8 3.38-65.69-15.16-86.72a72.27 72.27 0 00-20.73-15.82z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M385.52 51.09C363.84 26.52 324.71 16 274.63 16H129.25a20.75 20.75 0 00-20.54 17.48l-60.55 382a12.43 12.43 0 0010.39 14.22 12.58 12.58 0 001.94.15h89.76l22.54-142.29-.7 4.46a20.67 20.67 0 0120.47-17.46h42.65c83.77 0 149.36-33.86 168.54-131.8.57-2.9 1.05-5.72 1.49-8.48 5.7-36.22-.05-60.87-19.72-83.19z\"}}]})(props);\n};\nexport function IoLogoPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.05 32c-123.7 0-224 100.3-224 224 0 91.7 55.2 170.5 134.1 205.2-.6-15.6-.1-34.4 3.9-51.4 4.3-18.2 28.8-122.1 28.8-122.1s-7.2-14.3-7.2-35.4c0-33.2 19.2-58 43.2-58 20.4 0 30.2 15.3 30.2 33.6 0 20.5-13.1 51.1-19.8 79.5-5.6 23.8 11.9 43.1 35.4 43.1 42.4 0 71-54.5 71-119.1 0-49.1-33.1-85.8-93.2-85.8-67.9 0-110.3 50.7-110.3 107.3 0 19.5 5.8 33.3 14.8 43.9 4.1 4.9 4.7 6.9 3.2 12.5-1.1 4.1-3.5 14-4.6 18-1.5 5.7-6.1 7.7-11.2 5.6-31.3-12.8-45.9-47-45.9-85.6 0-63.6 53.7-139.9 160.1-139.9 85.5 0 141.8 61.9 141.8 128.3 0 87.9-48.9 153.5-120.9 153.5-24.2 0-46.9-13.1-54.7-27.9 0 0-13 51.6-15.8 61.6-4.7 17.3-14 34.5-22.5 48a225.13 225.13 0 0063.5 9.2c123.7 0 224-100.3 224-224S379.75 32 256.05 32z\"}}]})(props);\n};\nexport function IoLogoPlaystation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.77 203c-.8-17.1-3.3-34.5-10.8-50.1a82.45 82.45 0 00-16.5-23.2 105.59 105.59 0 00-21.3-16.3c-17.1-10.2-37.5-17-84.4-31S192 64 192 64v358.3l79.9 25.7s.1-198.8.1-299.5v-3.8c0-9.3 7.5-16.8 16.1-16.8h.5c8.5 0 15.5 7.5 15.5 16.8V278c11 5.3 29.2 9.3 41.8 9.1a47.79 47.79 0 0024-5.7 49.11 49.11 0 0018.4-17.8 78.64 78.64 0 009.9-27.3c1.87-10.8 1.97-22.1 1.57-33.3zM86.67 357.8c27.4-9.8 89.3-29.5 89.3-29.5v-47.2s-76.5 24.8-111.3 37.1c-8.6 3.1-17.3 5.9-25.7 9.5-9.8 4.1-19.4 8.7-28.1 14.8a26.29 26.29 0 00-9.2 10.1 17.36 17.36 0 00-.5 13.6c2 5.1 5.8 9.3 10.1 12.6 7.8 5.9 17.1 9.5 26.4 12.2a262.42 262.42 0 0088.4 13.3c14.5-.2 36-1.9 50-4.4v-42s-11 2.5-41.3 12.5c-4.6 1.5-9.2 3.3-14 4.3a104.87 104.87 0 01-21.6 2.2c-6.5-.3-13.2-.7-19.3-3.1-2.2-1-4.6-2.2-5.5-4.6-.8-2 .3-4 1.7-5.4 2.8-2.9 6.8-4.5 10.6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 345.9c-.1-6-3.7-11.2-7.9-15-7.1-6.3-15.9-10.3-24.7-13.5-5.5-1.9-9.3-3.3-14.7-5-25.2-8.2-51.9-11.2-78.3-11.3-8 .3-23.1.5-31 1.4-21.9 2.5-67.3 15.4-67.3 15.4v48.8s67.5-21.6 96.5-31.8a94.43 94.43 0 0130.3-4.6c6.5.2 13.2.7 19.4 3.1 2.2.9 4.5 2.2 5.5 4.5.9 2.6-.9 5-2.9 6.5-4.7 3.8-10.7 5.3-16.2 7.4-41 14.5-132.7 44.7-132.7 44.7v47s117.2-39.6 170.8-58.8c8.9-3.3 17.9-6.1 26.4-10.4 7.9-4 15.8-8.6 21.8-15.3a19.74 19.74 0 005-13.1z\"}}]})(props);\n};\nexport function IoLogoPwa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.7 352l77.72-192H356.9l-53.16 124.07L265.93 160h-39.61l-40.58 124.07-28.63-56.53-25.9 79.46 26.3 45h50.7l36.68-111.27 35 111.27zM48.79 286.09h31.65a93.39 93.39 0 0025.62-3.21l8.18-25.19 22.88-70.39a55.75 55.75 0 00-6-7.82Q113.54 160 79.59 160H0v192h48.79zm41.9-81.92q6.89 6.92 6.88 18.52t-6 18.53q-6.64 7.62-24.44 7.61H48.79v-51.58h18.42q16.59 0 23.48 6.92zm286.16 113.44l14.79-37.25h42.69l-20.26-56.51L439.41 160 512 352h-53.53l-12.4-34.39z\"}}]})(props);\n};\nexport function IoLogoPython (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314 36.38c-18.59-3.06-45.8-4.47-64.27-4.38a311.09 311.09 0 00-51.66 4.38c-45.74 8-54.07 24.7-54.07 55.54V128h112v16H107.62C66.06 144 32.33 193.67 32 255.12v.88a162.91 162.91 0 003.13 32c9.29 46.28 38.23 80 72.49 80H128v-54c0-31.3 20.84-59.95 55-66.1l9.87-1.23H314a56.05 56.05 0 0015.06-2A52.48 52.48 0 00368 193.68V91.92c0-28.92-24.68-50.73-54-55.54zM194.93 105.5a20.37 20.37 0 1120.3-20.3 20.29 20.29 0 01-20.3 20.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M475.28 217c-10.7-42.61-38.41-73-70.9-73h-17.71v47.45c0 39.57-26 68.22-57.74 73.13a63.54 63.54 0 01-9.69.75H198.08a60 60 0 00-15.23 1.95C160.54 273.14 144 291.7 144 315.77v101.77c0 29 29.14 46 57.73 54.31 34.21 9.95 71.48 11.75 112.42 0 27.19-7.77 53.85-23.48 53.85-54.31V384H256v-16h148.38c29.44 0 54.95-24.93 67.45-61.31A156.83 156.83 0 00480 256a160.64 160.64 0 00-4.72-39zM316.51 404a20.37 20.37 0 11-20.3 20.3 20.29 20.29 0 0120.3-20.3z\"}}]})(props);\n};\nexport function IoLogoReact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M410.66 180.72q-7.67-2.62-15.45-4.88 1.29-5.25 2.38-10.56c11.7-56.9 4.05-102.74-22.06-117.83-25-14.48-66 .61-107.36 36.69q-6.1 5.34-11.95 11-3.9-3.76-8-7.36c-43.35-38.58-86.8-54.83-112.88-39.69-25 14.51-32.43 57.6-21.9 111.53q1.58 8 3.55 15.93a320.85 320.85 0 00-17.77 5.6C48.46 198.9 16 226.73 16 255.59c0 29.82 34.84 59.72 87.77 77.85q6.44 2.19 13 4.07-2.13 8.49-3.77 17.17c-10 53-2.2 95.07 22.75 109.49 25.77 14.89 69-.41 111.14-37.31q5-4.38 10-9.25 6.32 6.11 13 11.86c40.8 35.18 81.09 49.39 106 34.93 25.75-14.94 34.12-60.14 23.25-115.13q-1.25-6.3-2.88-12.86 4.56-1.35 8.93-2.79c55-18.27 90.83-47.81 90.83-78-.02-29-33.52-57.01-85.36-74.9zm-129-81.08c35.43-30.91 68.55-43.11 83.65-34.39 16.07 9.29 22.32 46.75 12.22 95.88q-1 4.8-2.16 9.57a487.83 487.83 0 00-64.18-10.16 481.27 481.27 0 00-40.57-50.75q5.38-5.22 11.02-10.15zM157.73 280.25q6.51 12.6 13.61 24.89 7.23 12.54 15.07 24.71a435.28 435.28 0 01-44.24-7.13c4.24-13.72 9.46-27.97 15.56-42.47zm0-48.33c-6-14.19-11.08-28.15-15.25-41.63 13.7-3.07 28.3-5.58 43.52-7.48q-7.65 11.94-14.72 24.23t-13.58 24.88zm10.9 24.17q9.48-19.77 20.42-38.78 10.93-19 23.27-37.13c14.28-1.08 28.92-1.65 43.71-1.65s29.52.57 43.79 1.66q12.21 18.09 23.13 37t20.69 38.6Q334 275.63 323 294.73q-10.91 19-23 37.24c-14.25 1-29 1.55-44 1.55s-29.47-.47-43.46-1.38q-12.43-18.19-23.46-37.29t-20.48-38.76zM340.75 305q7.25-12.58 13.92-25.49a440.41 440.41 0 0116.12 42.32 434.44 434.44 0 01-44.79 7.65q7.62-12.09 14.75-24.48zm13.72-73.07q-6.64-12.65-13.81-25-7-12.18-14.59-24.06c15.31 1.94 30 4.52 43.77 7.67a439.89 439.89 0 01-15.37 41.39zm-98.24-107.45a439.75 439.75 0 0128.25 34.18q-28.35-1.35-56.74 0c9.33-12.34 18.88-23.79 28.49-34.18zM145.66 65.86c16.06-9.32 51.57 4 89 37.27 2.39 2.13 4.8 4.36 7.2 6.67A491.37 491.37 0 00201 160.51a499.12 499.12 0 00-64.06 10q-1.83-7.36-3.3-14.82c-9.05-46.23-3.06-81.08 12.02-89.83zm-23.41 251.85q-6-1.71-11.85-3.71c-23.4-8-42.73-18.44-56-29.81-11.88-10.19-17.9-20.36-17.9-28.6 0-17.51 26.06-39.85 69.52-55q8.19-2.85 16.52-5.21a493.54 493.54 0 0023.4 60.75 502.46 502.46 0 00-23.69 61.58zm111.13 93.67c-18.63 16.32-37.29 27.89-53.74 33.72-14.78 5.23-26.55 5.38-33.66 1.27-15.14-8.75-21.44-42.54-12.85-87.86q1.53-8 3.5-16a480.85 480.85 0 0064.69 9.39 501.2 501.2 0 0041.2 51c-2.98 2.93-6.03 5.75-9.14 8.48zm23.42-23.22c-9.72-10.51-19.42-22.14-28.88-34.64q13.79.54 28.08.54c9.78 0 19.46-.21 29-.64a439.33 439.33 0 01-28.2 34.74zm124.52 28.59c-2.86 15.44-8.61 25.74-15.72 29.86-15.13 8.78-47.48-2.63-82.36-32.72-4-3.44-8-7.13-12.07-11a484.54 484.54 0 0040.23-51.2 477.84 477.84 0 0065-10.05q1.47 5.94 2.6 11.64c4.81 24.3 5.5 46.28 2.32 63.47zm17.4-102.64c-2.62.87-5.32 1.71-8.06 2.53a483.26 483.26 0 00-24.31-60.94 481.52 481.52 0 0023.36-60.06c4.91 1.43 9.68 2.93 14.27 4.52 44.42 15.32 71.52 38 71.52 55.43 0 18.6-29.27 42.74-76.78 58.52z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 298.55a43 43 0 10-42.86-43 42.91 42.91 0 0042.86 43z\"}}]})(props);\n};\nexport function IoLogoReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M324 256a36 36 0 1036 36 36 36 0 00-36-36z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"188\",\"cy\":\"292\",\"r\":\"36\",\"transform\":\"rotate(-22.5 187.997 291.992)\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M496 253.77c0-31.19-25.14-56.56-56-56.56a55.72 55.72 0 00-35.61 12.86c-35-23.77-80.78-38.32-129.65-41.27l22-79 66.41 13.2c1.9 26.48 24 47.49 50.65 47.49 28 0 50.78-23 50.78-51.21S441 48 413 48c-19.53 0-36.31 11.19-44.85 28.77l-90-17.89-31.1 109.52-4.63.13c-50.63 2.21-98.34 16.93-134.77 41.53A55.38 55.38 0 0072 197.21c-30.89 0-56 25.37-56 56.56a56.43 56.43 0 0028.11 49.06 98.65 98.65 0 00-.89 13.34c.11 39.74 22.49 77 63 105C146.36 448.77 199.51 464 256 464s109.76-15.23 149.83-42.89c40.53-28 62.85-65.27 62.85-105.06a109.32 109.32 0 00-.84-13.3A56.32 56.32 0 00496 253.77zM414 75a24 24 0 11-24 24 24 24 0 0124-24zM42.72 253.77a29.6 29.6 0 0129.42-29.71 29 29 0 0113.62 3.43c-15.5 14.41-26.93 30.41-34.07 47.68a30.23 30.23 0 01-8.97-21.4zM390.82 399c-35.74 24.59-83.6 38.14-134.77 38.14S157 423.61 121.29 399c-33-22.79-51.24-52.26-51.24-83A78.5 78.5 0 0175 288.72c5.68-15.74 16.16-30.48 31.15-43.79a155.17 155.17 0 0114.76-11.53l.3-.21.24-.17c35.72-24.52 83.52-38 134.61-38s98.9 13.51 134.62 38l.23.17.34.25A156.57 156.57 0 01406 244.92c15 13.32 25.48 28.05 31.16 43.81a85.44 85.44 0 014.31 17.67 77.29 77.29 0 01.6 9.65c-.01 30.72-18.21 60.19-51.25 82.95zm69.6-123.92c-7.13-17.28-18.56-33.29-34.07-47.72A29.09 29.09 0 01440 224a29.59 29.59 0 0129.41 29.71 30.07 30.07 0 01-8.99 21.39z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M323.23 362.22c-.25.25-25.56 26.07-67.15 26.27-42-.2-66.28-25.23-67.31-26.27a4.14 4.14 0 00-5.83 0l-13.7 13.47a4.15 4.15 0 000 5.89c3.4 3.4 34.7 34.23 86.78 34.45 51.94-.22 83.38-31.05 86.78-34.45a4.16 4.16 0 000-5.9l-13.71-13.47a4.13 4.13 0 00-5.81 0z\"}}]})(props);\n};\nexport function IoLogoRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M108.56 342.78a60.34 60.34 0 1060.56 60.44 60.63 60.63 0 00-60.56-60.44z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M48 186.67v86.55c52 0 101.94 15.39 138.67 52.11s52 86.56 52 138.67h86.66c0-151.56-125.66-277.33-277.33-277.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M48 48v86.56c185.25 0 329.22 144.08 329.22 329.44H464C464 234.66 277.67 48 48 48z\"}}]})(props);\n};\nexport function IoLogoSass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.78 328.07c-1.47-11.92-7.51-22.26-18-30.77a3.58 3.58 0 00-.43-.44l-.53-.38-.17-.12-5.57-4-.19-.14-.71-.5a3.5 3.5 0 00-.83-.35c-17.62-10.49-46.79-17.84-91.42-2.09-10.65-17.92-11.86-32.28-4.73-54.28 1.27-3.83.09-6.36-3.71-8-7.64-3.25-18.1-1.59-25.52.37-3.46.9-5.54 2.86-6.2 5.83-4.7 22-18.36 42.1-31.57 61.5l-.78 1.14c-8.14-17.26-6.45-30.63-.78-47.38 1.13-3.34.24-5.56-2.89-7.22-8.74-4.51-21.85-1.41-27.07.13-6.62 1.93-13.72 19.82-21.65 41.24-2 5.39-3.72 10-4.75 12.15-2.45 5-4.79 10.7-7.27 16.75-5.6 13.69-11.91 29.1-20.93 38.78-3.28-7.25 1.88-18.68 6.89-29.77 5.93-13.11 11.53-25.5 5.08-33.41a11.82 11.82 0 00-8.33-4.32 13.26 13.26 0 00-6.15 1c.67-5.65.7-10.11-.95-15.5-2.36-7.69-8.49-12-16.93-11.77-19.22.56-35.48 14.88-45.75 26.8-6.84 8-22 14.1-35.31 19.45-5.26 2.23-10.26 4.23-14.43 6.23-6.65-5.62-15.1-11.29-24-17.28-25-16.78-53.33-35.81-54.31-61.61-1.4-38.11 42-65.14 79.88-84.43 28.71-14.6 53.67-24.28 76.31-29.57 31.8-7.43 58.66-5.93 79.82 4.44 11.58 5.67 17 18 13.56 30.68-9 32.95-46.29 55.53-78.18 65.69-19.21 6.12-35.56 8.68-50 7.84-18.1-1.05-32.88-10.13-39.2-14a21.18 21.18 0 00-3.2-1.8l-.29-.07a3.21 3.21 0 00-3.19 1c-1.3 1.55-.84 4-.37 5.24 6.15 16.07 18.85 26.22 37.74 30.17a92.09 92.09 0 0018.78 1.79c44.21 0 100.62-25.49 121.34-46.48 14.13-14.3 24.42-29 28.68-54.35 4.45-26.55-13.55-45-31.89-53.5-44.57-20.57-95.19-12.44-129.81-2-40.5 12.21-82.4 34.41-114.94 60.93-40.12 32.67-54.62 63-43.12 90.25 11.81 27.93 40.61 45.4 68.46 62.3 9 5.45 17.56 10.64 25.27 16-2.32 1.13-4.69 2.28-7.1 3.43-23.38 11.33-49.9 24.08-64.61 45.15-10.68 15.35-12.68 30.63-5.94 45.42 3.6 7.87 10 13.21 18.89 15.87A50 50 0 0053 432c17.31 0 36.36-7 46.73-13.47 18.32-11.5 30.19-26.94 35.29-45.89 4.54-16.86 3.45-33.61-3.15-48.56l22.45-11.32c-10.83 36-2.53 57.5 6.59 69.36 3.36 4.37 9.42 7 16.19 7.12s13-2.43 16.52-6.77c6.66-8.25 11.58-17.9 16.11-27.55-.24 6.3.06 12.68 2.21 18.09 1.93 4.87 5.11 8.1 9.21 9.34 4.36 1.33 9.47.21 14.39-3.15 22.17-15.17 37.33-51.58 49.51-80.85 1.73-4.16 3.39-8.16 5-11.9a152.5 152.5 0 0012.5 31.07c1.18 2.14 1.08 3.08-.52 4.84-2.41 2.64-5.77 5.83-9.33 9.21-10.78 10.23-24.2 23-26 34.23-.7 4.5 2.4 8.6 7.21 9.53 14.47 2.88 31.9-1.33 46.64-11.25 13.4-9 18.44-21.55 15-37.19-3.33-15.06 4.27-33.76 22.59-55.62 3 12.53 7 22.66 12.52 31.53l-.15.12c-13.34 11.65-31.62 27.6-28.78 46.95a13.35 13.35 0 005.58 9.22 14.22 14.22 0 0011.2 2.06c17.47-3.67 30.62-11.06 40.18-22.57s6.07-24.27 2.85-34.17c25-6.78 47.26-6.61 68.1.5 11.7 4 20.09 10.57 24.93 19.64 6.09 11.41 2.8 21.94-9.29 29.65-3.71 2.37-5.5 3.82-5.61 5.65a2.65 2.65 0 001 2.23c1.4 1.15 5.72 3.15 15.49-3 9-5.65 14.28-13.34 15.63-23a39 39 0 00-.01-8.01zm-399.73 25.06l-.1 1.28c-1.56 14.64-9 27.4-22.15 38-8.26 6.66-17.23 10.75-25.25 11.53-5.6.54-9.67-.22-12.09-2.27-1.81-1.53-2.78-3.82-3-7-1.64-25.48 38.32-50.8 60.81-59.13a51.39 51.39 0 011.78 17.59zm102.35-71.86c-3.7 21.09-14.49 60.9-31.45 76.35-.81.74-1.49 1-1.8.93s-.55-.44-.8-1c-5.66-13.12-3.57-35.28 5-52.69 6.59-13.42 16-22.31 26.52-25a5.29 5.29 0 011.34-.19 1.58 1.58 0 011 .27 1.64 1.64 0 01.19 1.33zm83.49 76.88c-3.19 3.33-7.56 2.88-6.53 1.66l16.24-17.24c-1.31 5.93-5.18 10.84-9.71 15.58zm67.37-14.91a14.07 14.07 0 01-4.93 1.39c-.46-9.07 8.33-19.28 17-26.09 2.33 9.46-2.44 19.46-12.07 24.7z\"}}]})(props);\n};\nexport function IoLogoSkype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M467.16 303.6a205.69 205.69 0 004.9-45.15c0-116.32-95.69-210.7-213.79-210.7a221.83 221.83 0 00-36.52 3A123.58 123.58 0 00155.93 32C87.55 32 32 86.72 32 154.15A119.56 119.56 0 0049 216a211.16 211.16 0 00-4.32 42.35c0 116.44 95.69 210.7 213.67 210.7a214 214 0 0039.09-3.5A125.45 125.45 0 00356.07 480C424.57 480 480 425.28 480 357.85a118 118 0 00-12.84-54.25zM368 359c-9.92 13.76-24.51 24.73-43.41 32.43S283.36 403 257.69 403c-30.69 0-56.36-5.37-76.55-15.87a101 101 0 01-35.24-30.8c-9.11-12.83-13.66-25.66-13.66-38 0-7.7 3-14.35 8.87-19.95 5.84-5.37 13.42-8.17 22.29-8.17 7.35 0 13.65 2.1 18.79 6.42 4.9 4.08 9.1 10.15 12.48 18.08A108.09 108.09 0 00207 336.15q6.32 8.22 17.86 13.65c7.82 3.62 18.2 5.48 31 5.48 17.62 0 32.09-3.73 42.94-11.08 10.74-7.12 15.88-15.75 15.88-26.25 0-8.28-2.69-14.82-8.29-19.95-5.83-5.37-13.42-9.57-22.87-12.37-9.69-3-22.87-6.18-39.21-9.56-22.17-4.67-41-10.27-56-16.57-15.28-6.42-27.65-15.4-36.76-26.48-9.22-11.32-13.77-25.55-13.77-42.24a67.86 67.86 0 0114.47-42.58c9.57-12.25 23.46-21.82 41.55-28.35 17.74-6.53 38.86-9.8 62.66-9.8 19.14 0 35.83 2.22 49.83 6.42s25.91 10.15 35.36 17.38 16.34 14.93 20.77 23 6.66 16.22 6.66 24c0 7.46-2.92 14.35-8.76 20.3a29.65 29.65 0 01-21.94 9.1c-7.93 0-14.12-1.87-18.43-5.6-4-3.5-8.17-8.87-12.72-16.69-5.37-9.91-11.79-17.85-19.14-23.45-7.24-5.36-19.14-8.16-35.71-8.16-15.29 0-27.77 3-37 9-8.87 5.72-13.19 12.37-13.19 20.18a18.26 18.26 0 004.32 12.25 38.13 38.13 0 0012.72 9.57 90.14 90.14 0 0017.15 6.53c6 1.64 15.87 4.09 29.53 7.12 17.38 3.62 33.25 7.82 47.26 12.13 14.24 4.55 26.49 10 36.52 16.45a72.93 72.93 0 0124.16 25.09c5.72 10 8.64 22.63 8.64 37.1A75.09 75.09 0 01368 359z\"}}]})(props);\n};\nexport function IoLogoSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M126.12 315.1A47.06 47.06 0 1179.06 268h47.06zm23.72 0a47.06 47.06 0 0194.12 0v117.84a47.06 47.06 0 11-94.12 0zm47.06-188.98A47.06 47.06 0 11244 79.06v47.06zm0 23.72a47.06 47.06 0 010 94.12H79.06a47.06 47.06 0 010-94.12zm188.98 47.06a47.06 47.06 0 1147.06 47.1h-47.06zm-23.72 0a47.06 47.06 0 01-94.12 0V79.06a47.06 47.06 0 1194.12 0zM315.1 385.88a47.06 47.06 0 11-47.1 47.06v-47.06zm0-23.72a47.06 47.06 0 010-94.12h117.84a47.06 47.06 0 110 94.12z\"}}]})(props);\n};\nexport function IoLogoSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 347.21a190.31 190.31 0 01-32.79-5.31c-27.28-6.63-54.84-24.26-68.12-52.43-6.9-14.63-2.64-18.59 11.86-24 14.18-5.27 29.8-7.72 36.86-23 5.89-12.76 1.13-27.76-10.41-35.49-15.71-10.53-30.35-.21-46.62 2.07 3.73-46.66 8.66-88.57-22.67-127.73C338.14 48.86 297.34 32 256.29 32s-81.86 16.86-107.81 49.33c-31.38 39.26-26.4 81.18-22.67 127.92-16.32-2.25-30.81-12.79-46.63-2.18-14.72 9.85-17 29.76-5.44 43s31.64 9.5 43.45 20.6c6.49 6.09 3.49 12.61-.35 20.14-14.48 28.4-39.26 45.74-69.84 51.56-4 .76-22.31 2.87-31 3.65 0 9.28.52 16.78 1.63 21.73 2.94 13.06 12.32 23.58 23.69 30.1 11.18 6.4 35.48 6.43 41.68 15.51 3 4.48 1.76 12.28 5.33 17.38a23.8 23.8 0 0015.37 9.75c18.61 3.61 37.32-7.2 56.42-2.1 14.85 3.95 26.52 15.87 39.26 24 15.51 9.85 32.34 16.42 50.83 17.49 38.1 2.21 59.93-18.91 90.58-36.42 19.5-11.14 38.15-3.86 58.88-2.68 20.1 1.15 23.53-9.25 29.62-24.88a27.37 27.37 0 001.54-4.85 10.52 10.52 0 002.28-1.47c2-1.57 10.55-2.34 12.76-2.86 10.28-2.44 20.34-5.15 29.17-11.2 11.31-7.76 17.65-18.5 19.58-32.64a93.73 93.73 0 001.38-15.67zM208 128c8.84 0 16 10.74 16 24s-7.16 24-16 24-16-10.74-16-24 7.16-24 16-24zm103.62 77.7c-15.25 15-35 23.3-55.62 23.3a78.37 78.37 0 01-55.66-23.34 8 8 0 0111.32-11.32A62.46 62.46 0 00256 213c16.39 0 32.15-6.64 44.39-18.7a8 8 0 0111.23 11.4zM304 176c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24z\"}}]})(props);\n};\nexport function IoLogoSoundcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.8 278a2.11 2.11 0 00-2 2L0 308.64l3.74 28.16a2.12 2.12 0 002.05 2 2.14 2.14 0 002-2l4.44-28.17L7.83 280a2.14 2.14 0 00-2-2zm21.05-15.68a2.13 2.13 0 00-4.26 0l-5 46.32 5 45.3a2.13 2.13 0 004.26 0l5.73-45.31-5.73-46.32zm79.32-42.73a4 4 0 00-3.87 3.87l-4 85.22 4 55.08a3.88 3.88 0 007.75 0l4.53-55.08-4.53-85.22a4 4 0 00-3.88-3.87zm-41.05 29.62a3.09 3.09 0 00-3 3l-4.52 56.45 4.51 54.63a3 3 0 006 0l5.13-54.63-5.13-56.48a3.1 3.1 0 00-2.99-2.97zm82.76 118.39a4.83 4.83 0 004.75-4.74l3.93-54.15-3.93-113.46a4.75 4.75 0 00-9.5 0l-3.49 113.45 3.49 54.17a4.81 4.81 0 004.75 4.73zm85.4.25a6.6 6.6 0 006.5-6.52l2.74-52.6-2.74-131a6.5 6.5 0 10-13 0l-2.45 131c0 .08 2.45 52.67 2.45 52.67a6.59 6.59 0 006.5 6.45zm-43.02-.2a5.67 5.67 0 005.62-5.64l3.34-53.33-3.34-114.28a5.63 5.63 0 10-11.25 0l-3 114.29 3 53.32a5.66 5.66 0 005.63 5.6zm-104.7-.5a3.53 3.53 0 003.44-3.41l4.83-55.09-4.83-52.4a3.44 3.44 0 00-6.88 0l-4.26 52.38 4.26 55.08a3.5 3.5 0 003.44 3.44zm-40.72-3.02a2.67 2.67 0 002.57-2.52l5.43-53-5.42-55a2.57 2.57 0 00-5.14 0l-4.78 55 4.78 53a2.62 2.62 0 002.56 2.53zm166.85-171.6a6.1 6.1 0 00-6.07 6.09l-2.71 110.11 2.71 53a6.07 6.07 0 0012.13 0l3-53-3-110.13a6.1 6.1 0 00-6.06-6.07zM127 367.71a4.41 4.41 0 004.31-4.3l4.23-54.71-4.28-104.7a4.32 4.32 0 00-8.63 0l-3.74 104.7 3.75 54.73a4.38 4.38 0 004.36 4.28zm47.17-5.17l3.63-53.8-3.63-117.28a5.19 5.19 0 10-10.37 0l-3.23 117.28 3.23 53.83a5.18 5.18 0 0010.36 0zM449 241.1a62.42 62.42 0 00-24.33 4.9c-5-57.18-52.61-102-110.66-102a111.92 111.92 0 00-40.28 7.58c-4.75 1.85-6 3.76-6.06 7.46V360.4a7.66 7.66 0 006.8 7.5l174.56.11c34.78 0 63-28.41 63-63.45s-28.2-63.46-63-63.46zm-194.21-82.23a7 7 0 00-6.94 7L245 308.75l2.85 51.87a6.94 6.94 0 1013.87-.06v.06l3.09-51.87-3.09-142.93a7 7 0 00-6.93-6.95z\"}}]})(props);\n};\nexport function IoLogoStackoverflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 440V320h40v160H64V320h40v120z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M149.1 308.77l198.57 40.87 8.4-39.32-198.57-40.87zm26.27-93.12L359.22 300 376 263.76l-183.82-84.84zm50.95-89l156 127.78 25.74-30.52-156-127.78zM328 32l-33.39 23.8 120.82 160.37L448 192zM144 400h204v-40H144z\"}}]})(props);\n};\nexport function IoLogoSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.8 208.2a36 36 0 11-36-36 36 36 0 0136 36zM442.6 139a69.42 69.42 0 00-69.4 68.7l-43.2 62a48.86 48.86 0 00-5.4-.3 51.27 51.27 0 00-26.4 7.3L102.4 198a51.8 51.8 0 10-50.6 62.9 51.27 51.27 0 0026.4-7.3L274 332.2a51.76 51.76 0 00102.1-5.9l66.5-48.6a69.35 69.35 0 100-138.7zm0 22.9a46.45 46.45 0 11-46.5 46.5 46.54 46.54 0 0146.5-46.5zm-390.8 9a38.18 38.18 0 0133.7 20.2l-18.9-7.6v.1a30.21 30.21 0 00-22.6 56v.1l16.1 6.4a36.8 36.8 0 01-8.2.9 38.05 38.05 0 01-.1-76.1zm272.8 112.2a38.1 38.1 0 11-33.7 55.9c6.3 2.5 12.5 5 18.8 7.6a30.27 30.27 0 1022.5-56.2l-15.9-6.4a46.83 46.83 0 018.3-.9z\"}}]})(props);\n};\nexport function IoLogoStencil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M188.8 334.07h197.33L279.47 448H83.2zM512 199H106.61L0 313h405.39zM232.2 64h196.6L322.62 177.93H125.87z\"}}]})(props);\n};\nexport function IoLogoTableau (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M242.69 340.3h26.62v-72.6h67v-25.82h-67v-72.6h-26.62v72.6h-66.15v25.82h66.15zM119.26 445.18h22.59v-64.54h59.7v-20.17h-59.7v-65.34h-22.59v65.34h-59.7v20.17h59.7zM370.15 212h22.59v-64.5h60.5v-19.37h-60.5V62.79h-22.59v65.34h-59.7v19.37h59.7zM246.72 496h19.36v-46h41.15v-16.92h-41.15v-46h-19.36v46h-40.33V450h40.33zM120.07 212h21v-65.31h60.51v-18.56H141V62.79h-21v65.34H59.56v18.56h60.51zm315.65 96.84h19.36v-45.18H496v-17.74h-40.92v-45.18h-19.36v45.18h-40.33v17.74h40.33z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M370.15 445.18h22.59v-64.54h60.5v-20.17h-60.5v-65.34h-22.59v65.34h-59.7v20.17h59.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M307 74.08V60.37h-40.34V16h-14.52v44.37h-40.33v13.71h40.33v44.37h14.52V74.08zM56.11 305.61h14.52v-44.37H111v-13.71H70.63V204H56.11v43.56H16v14.52l40.11-.08z\"}}]})(props);\n};\nexport function IoLogoTiktok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M412.19 118.66a109.27 109.27 0 01-9.45-5.5 132.87 132.87 0 01-24.27-20.62c-18.1-20.71-24.86-41.72-27.35-56.43h.1C349.14 23.9 350 16 350.13 16h-82.44v318.78c0 4.28 0 8.51-.18 12.69 0 .52-.05 1-.08 1.56 0 .23 0 .47-.05.71v.18a70 70 0 01-35.22 55.56 68.8 68.8 0 01-34.11 9c-38.41 0-69.54-31.32-69.54-70s31.13-70 69.54-70a68.9 68.9 0 0121.41 3.39l.1-83.94a153.14 153.14 0 00-118 34.52 161.79 161.79 0 00-35.3 43.53c-3.48 6-16.61 30.11-18.2 69.24-1 22.21 5.67 45.22 8.85 54.73v.2c2 5.6 9.75 24.71 22.38 40.82A167.53 167.53 0 00115 470.66v-.2l.2.2c39.91 27.12 84.16 25.34 84.16 25.34 7.66-.31 33.32 0 62.46-13.81 32.32-15.31 50.72-38.12 50.72-38.12a158.46 158.46 0 0027.64-45.93c7.46-19.61 9.95-43.13 9.95-52.53V176.49c1 .6 14.32 9.41 14.32 9.41s19.19 12.3 49.13 20.31c21.48 5.7 50.42 6.9 50.42 6.9v-81.84c-10.14 1.1-30.73-2.1-51.81-12.61z\"}}]})(props);\n};\nexport function IoLogoTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M390 32H120c-49.19 0-88 38.81-88 88v270c0 49.19 38.81 90 88 90h270c49.19 0 90-40.81 90-90V120c0-49.19-40.81-88-90-88zm-54 364h-52c-42.51 0-72-23.68-72-76v-80h-36v-48c42.51-11 57.95-48.32 60-80h44v72h52v56h-52l-.39 70.51c0 21.87 11 29.43 28.62 29.43L336 340z\"}}]})(props);\n};\nexport function IoLogoTux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.66 405.05c-1.46-.79-2.85-1.54-4-2.2-6.47-3.83-13-10.52-11.85-17.83 2.42-15.94 2.89-23.47-.49-28.79a15.61 15.61 0 00-7.67-6.2v-.06c1.41-2.56 2.26-5.66 2.83-10.12 1.44-11-5-44-13.7-70.7-8.08-24.68-29.24-50-44.7-68.56l-3.61-4.34c-23.88-28.93-24.34-38.19-26.55-82.67-.32-6.47-.69-13.8-1.17-22C329.87 41.43 304 16 256 16c-25.2 0-44.62 7.15-57.72 21.26C187.79 48.55 182 64 182 80.78c0 29.52 2 53 2.15 54.29 1.4 35.7 1 41.22-8.31 57.55-2.23 3.93-8.38 10.87-14.89 18.21-8.48 9.57-18.09 20.41-23.36 29.22-3.77 6.31-5.88 12.63-8.11 19.33-3.4 10.21-7.26 21.78-18.15 36.57-12.57 17.07-15.52 29.61-11 47.45-4.94 6.45-4.83 14.37-4.75 20.23a25.84 25.84 0 01-.3 6.09c-2.29 7.59-12.42 9.4-22 10.18-1.58.12-3.1.21-4.55.29-7.26.39-13.53.74-17.13 6.3-3.47 5.36-1.12 13.8 2.14 25.48.72 2.58 1.46 5.25 2.19 8.06 1.83 7-.16 10.48-2.68 14.84-2.44 4.21-5.21 9-5.21 17.55 0 14.67 20 18 43.05 21.94 7.36 1.24 15 2.53 22.63 4.24a225.58 225.58 0 0134.08 10.68c9.72 3.73 17.4 6.68 26.43 6.68 16.18 0 28.25-9.77 39.92-19.21l2.15-1.75c5.53-4.49 21.5-4 34.34-3.64 3.46.1 6.73.2 9.65.2h6.22c13.48-.08 31.94-.18 42.23 2.5 3.75 1 6.2 3.72 9.29 7.19 5.87 6.56 13.17 14.75 33.39 14.75 19.39 0 29.55-8.71 41.32-18.8 7.16-6.13 14.56-12.48 25.07-17.86 3.92-2 7.62-3.87 11.08-5.61 22.64-11.38 35.11-17.65 35.11-27.82 0-9.91-12.24-16.5-20.34-20.86zM211.11 88.38a13.91 13.91 0 0112.47 9c1.95 5.55 1.81 10.42.21 12.94 0 0-.22-1-.36-1.44a14.85 14.85 0 00-6.44-8.59 11.35 11.35 0 00-8.94-1.47c-4.26 1.13-8.41 5-8.91 18.79-5.16-10.47-2.31-18 .92-23 2.31-3.73 7.47-6.33 11.05-6.23zm-17.5 375C192 479.24 175.2 479 170.09 478.59c-9.81-.82-21.66-4.69-33.13-8.43-4.52-1.47-9.19-3-13.73-4.34-13.2-3.89-30.12-6.74-43.72-9-3.22-.55-6.27-1.06-9.05-1.55s-4.61-1.27-5.2-2.3c-1-1.65.38-5.25 1.93-9.41C69.27 438 72.11 430.34 72 421c0-3.91-1.47-8.3-2.84-12.56-1.62-5-3.28-10.17-1.93-12.62 1.23-2.23 6.75-2.49 11.6-2.49h2.26c3.55 0 6.62.06 8.75-.53 6.51-1.81 14.86-6.92 17.81-13.88.9-2.17 1.37-6.94 2-14 .37-4.12.74-8.37 1.22-10.58a3.55 3.55 0 012.11-2.55c1.65-.77 6.78-1.91 18.63 4.08 11.18 5.65 22.88 25.84 34.2 45.37 3.56 6.14 6.92 11.94 10.3 17.36 14.04 22.54 18.83 31.6 17.5 44.8zm128.84-31.56a68.74 68.74 0 01-4.55 10.9.58.58 0 01-1.08-.42 56.61 56.61 0 002.11-18.43c-.25-4.73-.4-7.59-2.66-8.51s-4.26.83-9.45 5.54c-1.1 1-2.36 2.14-3.78 3.4-10.8 9.47-26.88 20.68-55.61 23.37-16.84 1.59-27.59-4.63-30.92-8.14a2.16 2.16 0 00-3.07-.08 2.23 2.23 0 00-.51 2.29c2.12 6.84 1.2 12.26-.49 16.19-.95 2.2-1.85 2.05-2-.34-.25-4.64-1-9.88-3-14.19-3.11-6.94-7-14.34-8.89-17.88v-.05c3.24-1.49 8.86-4.83 11.37-10.88s4.48-18-9.82-31.74c-6.28-6.05-22.1-17.16-36.06-27-10.9-7.65-22.17-15.56-23.65-17.51-4.49-5.89-6.37-9.3-6.94-19.65.07-2.3.13-4.59.19-6.89l.27-2.49a.58.58 0 011.15 0 63.07 63.07 0 002 9.72c1.08 3.73 2.4 7.58 3.62 9.18 3.19 4.22 7.56 7.39 11.67 8.49a5.48 5.48 0 005-.72c2.93-2.33 2.65-7.6 2.19-16.34-.47-9-1.11-21.34 1.85-34.55 5.62-25 10.91-32.51 17.61-42 .86-1.22 1.75-2.47 2.65-3.79 1.44-2.08 3-4.1 4.67-6.23 7.47-9.61 15.93-20.49 13.92-40.95-.51-5.19-.76-8.83-.86-11.39a1 1 0 011.88-.59l.49.77 1.21 2c4.86 8 13.64 22.57 25.1 22.57a13.62 13.62 0 002.36-.21c23.39-3.93 51.9-30.25 52.17-30.51 3.12-3 2.84-6.14 1.64-7.91a5.18 5.18 0 00-6.45-1.72c-3.29 1.4-7.14 3.15-11.22 5-13.82 6.27-37 16.75-42.25 14.34a23.11 23.11 0 01-6.32-5.13 1 1 0 011.14-1.65c5.59 2.29 9.55 1.45 14.2-.08l1-.34c9.37-3.09 14.2-4.77 30.76-12.08a97.55 97.55 0 0116.26-5.93c4-1 6.42-1.63 7.71-4.34a6.65 6.65 0 00-.5-7.13c-1.53-1.87-4.07-2.57-7-1.9-3.22.75-4.7 3-6.41 4.49-2.4 2.05-5 4.16-17.19 8.65-27 10-34.58 10.61-45.21 3.43-9.84-6.69-15.15-13.23-15.15-16 0-2.13 5.45-5.7 8.71-7.84 1.33-.87 2.59-1.69 3.62-2.46 4.34-3.22 13-11.39 13.38-11.73 5.4-5.41 17.91-2.18 25 2.58a2.23 2.23 0 001.72.41 2.14 2.14 0 001.68-2.58c-4.2-17.46-.13-27.34 4-32.55a22.58 22.58 0 0117.48-8.48c12.81 0 21.76 10 21.76 24.42 0 11-2.82 16.79-5.48 20.3a1.73 1.73 0 01-2.58.18 1.78 1.78 0 01-.24-2.2A24.61 24.61 0 00290 114a16.58 16.58 0 00-16.84-16.67c-3.94 0-13.48 1.5-16.77 15.44a29.81 29.81 0 00-.34 11.07l.08.71c.9 7.38 15.3 12.51 27.23 15.51 11.36 2.85 13 6.22 8.84 19.63s3.11 26.23 5.7 29.57a78.3 78.3 0 018.31 12.47 93.8 93.8 0 016.62 16.48c2.17 6.79 4.05 12.65 10.63 21.22 11.07 14.4 17.66 48.64 15 78-.21 2.41-.53 4.29-.77 5.67-.43 2.53-.72 4.2.66 5.38s3.16.7 7.26-.63l3.43-1.09a109.33 109.33 0 0112.58-2.8 2.15 2.15 0 001.59-1.16c3.43-6.91 3.85-15.22 4-22.47q0-1.31.06-2.79c.19-7.77.45-18.93-2.95-32a1 1 0 011.93-.64 93 93 0 016.66 25.55c2.55 22.58-1.9 32.09-1.94 32.17a1.61 1.61 0 00.95 2.25 17.12 17.12 0 016.95 4.67c1.46 1.66.93 2.4-1.14 1.62a36.26 36.26 0 00-12.77-2.29c-10.4 0-18.09 4.95-21.51 9.19-3.19 3.94-3.7 7.67-3.83 11.27l-.06.05c-7.48-.75-12.94 1.21-17.47 6.21l-.08.09c-6.26 7.75-4 24.63-1.29 38.48 1.28 6.45 5.59 25.52 1.73 37.68zm96.1 10.07c-15.71 6.71-25.43 14.51-34 21.39-5.65 4.53-11 8.81-17.28 12.14-10.12 5.34-24.91 6.53-33.27-7.7-2.37-4-.71-9.86 1.58-17.95 3.05-10.75 7.23-25.46 3.71-44.65-.94-5.12-1.77-9.51-2.49-13.31C334 377 332.9 371.43 334 367c.63-2.45 3.43-3 5.87-3a20.83 20.83 0 012.63.19 29.51 29.51 0 007 12.1c5.7 5.86 13.63 8.83 23.56 8.85 2.1.17 25.94 1.55 36.54-22.4 1.46.18 3.65.7 4.3 2.3 1.28 3.19-.27 8.91-1.52 13.5-.9 3.31-1.68 6.16-1.63 8.37.31 16 11 22.78 25.83 32.16 1.79 1.13 3.66 2.31 5.55 3.54S445 425 445 426c-.52 4.79-20 13.16-26.45 15.91z\"}}]})(props);\n};\nexport function IoLogoTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 32l-32 80v304h96v64h64l64-64h80l112-112V32zm336 256l-64 64h-96l-64 64v-64h-80V80h304z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 143h48v129h-48zm-112 0h48v129h-48z\"}}]})(props);\n};\nexport function IoLogoTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 109.5a201.8 201.8 0 01-56.55 15.3 97.51 97.51 0 0043.33-53.6 197.74 197.74 0 01-62.56 23.5A99.14 99.14 0 00348.31 64c-54.42 0-98.46 43.4-98.46 96.9a93.21 93.21 0 002.54 22.1 280.7 280.7 0 01-203-101.3A95.69 95.69 0 0036 130.4c0 33.6 17.53 63.3 44 80.7A97.5 97.5 0 0135.22 199v1.2c0 47 34 86.1 79 95a100.76 100.76 0 01-25.94 3.4 94.38 94.38 0 01-18.51-1.8c12.51 38.5 48.92 66.5 92.05 67.3A199.59 199.59 0 0139.5 405.6a203 203 0 01-23.5-1.4A278.68 278.68 0 00166.74 448c181.36 0 280.44-147.7 280.44-275.8 0-4.2-.11-8.4-.31-12.5A198.48 198.48 0 00496 109.5z\"}}]})(props);\n};\nexport function IoLogoUsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 480v-36.42C160.53 439 112.25 398.06 112 336h72c1.77 26.34 23.86 46.45 56 50v-98l-26.77-7c-61-14.18-93.64-49.39-93.64-102.08C119.59 116.81 164.08 76.08 240 70V32h32v38c77.39 6.3 119 47.74 120 106h-72c-.76-24.06-15.83-43.39-48-46v92l30.82 7.28C367.61 243.46 400 277 400 332c0 64.34-43.74 105.88-128 111.32V480zm0-264v-86c-27.59 1.52-47.27 18.47-47.27 42.53 0 22.3 16.39 36.88 47.27 43.47zm32 78v92c38.15-1.54 56.38-18.92 56.38-45.77 0-24.58-18.23-41.13-56.38-46.23z\"}}]})(props);\n};\nexport function IoLogoVenmo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.17 32H70.28C49.85 32 32 46.7 32 66.89V441.6c0 20.31 17.85 38.4 38.28 38.4h373.78c20.54 0 35.94-18.2 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32zM278 387H174.32l-41.57-248.56 90.75-8.62 22 176.87c20.53-33.45 45.88-86 45.88-121.87 0-19.62-3.36-33-8.61-44l82.63-16.72c9.56 15.78 13.86 32 13.86 52.57-.01 65.5-55.92 150.59-101.26 210.33z\"}}]})(props);\n};\nexport function IoLogoVercel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M256 48l240 416H16z\"}}]})(props);\n};\nexport function IoLogoVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.9 114c-5-23.39-17.51-38.78-40.61-46.27s-64.92-4.5-94.12 16.79c-26.79 19.51-46.26 54.42-54 78.28a4 4 0 005.13 5c10.77-3.8 21.72-7.1 34-6.45 15 .8 24.51 12 24.91 25.29.3 9.79-.2 18.69-3.6 27.68-10.74 28.68-27.61 56.46-47.55 80.75a72.49 72.49 0 01-10 9.89c-10.21 8.29-18.81 6.1-25.41-5.2-5.4-9.29-9-18.88-12.2-29.08-12.4-39.67-16.81-80.84-23.81-121.52-3.3-19.48-7-39.77-18-56.86-11.6-17.79-28.61-24.58-50-22-14.7 1.8-36.91 17.49-47.81 26.39 0 0-56 46.87-81.82 71.35l21.2 27s17.91-12.49 27.51-18.29c5.7-3.39 12.4-4.09 17.2.2 4.51 3.9 9.61 9 12.31 14.1 5.7 10.69 11.2 21.88 14.7 33.37 13.2 44.27 25.51 88.64 37.81 133.22 6.3 22.78 13.9 44.17 28 63.55 19.31 26.59 39.61 32.68 70.92 21.49 25.41-9.09 46.61-26.18 66-43.87 33.11-30.18 59.12-65.36 85.52-101.14 20.41-27.67 37.31-55.67 51.41-86.95C478.5 179.74 484 147.26 476.9 114z\"}}]})(props);\n};\nexport function IoLogoVk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M484.7 132c3.56-11.28 0-19.48-15.75-19.48h-52.37c-13.21 0-19.31 7.18-22.87 14.86 0 0-26.94 65.6-64.56 108.13-12.2 12.3-17.79 16.4-24.4 16.4-3.56 0-8.14-4.1-8.14-15.37V131.47c0-13.32-4.06-19.47-15.25-19.47H199c-8.14 0-13.22 6.15-13.22 12.3 0 12.81 18.81 15.89 20.84 51.76V254c0 16.91-3 20-9.66 20-17.79 0-61-66.11-86.92-141.44C105 117.64 99.88 112 86.66 112H33.79C18.54 112 16 119.17 16 126.86c0 13.84 17.79 83.53 82.86 175.77 43.21 63 104.72 96.86 160.13 96.86 33.56 0 37.62-7.69 37.62-20.5v-47.66c0-15.37 3.05-17.93 13.73-17.93 7.62 0 21.35 4.09 52.36 34.33C398.28 383.6 404.38 400 424.21 400h52.36c15.25 0 22.37-7.69 18.3-22.55-4.57-14.86-21.86-36.38-44.23-62-12.2-14.34-30.5-30.23-36.09-37.92-7.62-10.25-5.59-14.35 0-23.57-.51 0 63.55-91.22 70.15-122\"}}]})(props);\n};\nexport function IoLogoVue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 144.03l-55.49-96.11h-79.43L256 281.61 390.92 47.92h-79.43L256 144.03z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M409.4 47.92L256 313.61 102.6 47.92H15.74L256 464.08 496.26 47.92H409.4z\"}}]})(props);\n};\nexport function IoLogoWebComponent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M179.9 388l-76.16-132 76.16 132zm0 0h152.21l76.15-132-76.15-132H179.9l-76.16 132 76.16 132zm-76.16-132l76.16-132-76.16 132z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256L376 48H239.74l-43.84 76h136.21l76.15 132-76.15 132H195.9l43.84 76H376l120-208z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M179.9 388l-76.16-132 76.16-132 43.84-76H136L16 256l120 208h87.74l-43.84-76z\"}}]})(props);\n};\nexport function IoLogoWechat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408.67 298.53a21 21 0 1120.9-21 20.85 20.85 0 01-20.9 21m-102.17 0a21 21 0 1120.9-21 20.84 20.84 0 01-20.9 21m152.09 118.86C491.1 394.08 512 359.13 512 319.51c0-71.08-68.5-129.35-154.41-129.35s-154.42 58.27-154.42 129.35 68.5 129.34 154.42 129.34c17.41 0 34.83-2.33 49.92-7 2.49-.86 3.48-1.17 4.64-1.17a16.67 16.67 0 018.13 2.34L454 462.83a11.62 11.62 0 003.48 1.17 5 5 0 004.65-4.66 14.27 14.27 0 00-.77-3.86c-.41-1.46-5-16-7.36-25.27a18.94 18.94 0 01-.33-3.47 11.4 11.4 0 015-9.35\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M246.13 178.51a24.47 24.47 0 010-48.94c12.77 0 24.38 11.65 24.38 24.47 1.16 12.82-10.45 24.47-24.38 24.47m-123.06 0A24.47 24.47 0 11147.45 154a24.57 24.57 0 01-24.38 24.47M184.6 48C82.43 48 0 116.75 0 203c0 46.61 24.38 88.56 63.85 116.53C67.34 321.84 68 327 68 329a11.38 11.38 0 01-.66 4.49C63.85 345.14 59.4 364 59.21 365s-1.16 3.5-1.16 4.66a5.49 5.49 0 005.8 5.83 7.15 7.15 0 003.49-1.17L108 351c3.49-2.33 5.81-2.33 9.29-2.33a16.33 16.33 0 015.81 1.16c18.57 5.83 39.47 8.16 60.37 8.16h10.45a133.24 133.24 0 01-5.81-38.45c0-78.08 75.47-141 168.35-141h10.45C354.1 105.1 277.48 48 184.6 48\"}}]})(props);\n};\nexport function IoLogoWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M414.73 97.1A222.14 222.14 0 00256.94 32C134 32 33.92 131.58 33.87 254a220.61 220.61 0 0029.78 111L32 480l118.25-30.87a223.63 223.63 0 00106.6 27h.09c122.93 0 223-99.59 223.06-222A220.18 220.18 0 00414.73 97.1zM256.94 438.66h-.08a185.75 185.75 0 01-94.36-25.72l-6.77-4-70.17 18.32 18.73-68.09-4.41-7A183.46 183.46 0 0171.53 254c0-101.73 83.21-184.5 185.48-184.5a185 185 0 01185.33 184.64c-.04 101.74-83.21 184.52-185.4 184.52zm101.69-138.19c-5.57-2.78-33-16.2-38.08-18.05s-8.83-2.78-12.54 2.78-14.4 18-17.65 21.75-6.5 4.16-12.07 1.38-23.54-8.63-44.83-27.53c-16.57-14.71-27.75-32.87-31-38.42s-.35-8.56 2.44-11.32c2.51-2.49 5.57-6.48 8.36-9.72s3.72-5.56 5.57-9.26.93-6.94-.46-9.71-12.54-30.08-17.18-41.19c-4.53-10.82-9.12-9.35-12.54-9.52-3.25-.16-7-.2-10.69-.2a20.53 20.53 0 00-14.86 6.94c-5.11 5.56-19.51 19-19.51 46.28s20 53.68 22.76 57.38 39.3 59.73 95.21 83.76a323.11 323.11 0 0031.78 11.68c13.35 4.22 25.5 3.63 35.1 2.2 10.71-1.59 33-13.42 37.63-26.38s4.64-24.06 3.25-26.37-5.11-3.71-10.69-6.48z\"}}]})(props);\n};\nexport function IoLogoWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 265H232v179l248 36V265zm-264 0H32v150l184 26.7V265zM480 32L232 67.4V249h248V32zM216 69.7L32 96v153h184V69.7z\"}}]})(props);\n};\nexport function IoLogoWordpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M259 271.3L226.2 367h-.1l-25.4 73.1c1.8.5 3.5.9 5.3 1.4h.3a192.51 192.51 0 0049.5 6.5 157 157 0 0024.9-1.8 184.3 184.3 0 0032.5-7.1c2.6-.8 5.2-1.7 7.8-2.6-2.8-6-8.8-19.3-9.1-19.9zM80.8 180.5C70.8 203.1 64 230.9 64 256c0 6.3.3 12.6.9 18.8 6.9 71.2 52.9 131 116.1 157.9 2.6 1.1 5.3 2.2 8 3.2L96 180.6c-8-.3-9.5.2-15.2-.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M430.2 175.4a188 188 0 00-15.1-26.6c-1.6-2.4-3.4-4.8-5.1-7.2A193 193 0 00325.1 77a189.2 189.2 0 00-69.2-13 191.51 191.51 0 00-149.4 71.7A196 196 0 0089 161.3c14.2.1 31.8.1 33.8.1 18.1 0 46-2.2 46-2.2 9.4-.6 10.4 13.1 1.1 14.2 0 0-9.4 1.1-19.8 1.6L213 362l37.8-113.3-26.8-73.6c-9.4-.5-18.1-1.6-18.1-1.6-9.4-.5-8.2-14.8 1-14.2 0 0 28.5 2.2 45.5 2.2 18.1 0 46-2.2 46-2.2 9.3-.6 10.5 13.1 1.1 14.2 0 0-9.3 1.1-19.7 1.6l62.3 185.6 17.3-57.6c8.7-22.4 13.1-40.9 13.1-55.7 0-21.3-7.7-36.1-14.3-47.6-8.7-14.3-16.9-26.3-16.9-40.4 0-15.9 12-30.7 29-30.7h2.2c26.2-.7 34.8 25.3 35.9 43v.6c.4 7.2.1 12.5.1 18.8 0 17.4-3.3 37.1-13.1 61.8l-39 112.8-22.3 65.7c1.8-.8 3.5-1.6 5.3-2.5 56.7-27.4 98-82 106.7-146.7a172.07 172.07 0 001.9-26 191.11 191.11 0 00-17.8-80.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208.06 208.06 0 0181 399.66A208.06 208.06 0 01175 64.34 206.7 206.7 0 01256 48m0-16C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32z\"}}]})(props);\n};\nexport function IoLogoXbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M126.8 248.3c39.7-58.6 77.9-92.8 77.9-92.8s-42.1-48.9-92.8-67.4l-3.3-.8A224.13 224.13 0 0077.2 391c0-4.4.6-70.3 49.6-142.7zM480 256a223.71 223.71 0 00-76.6-168.7l-3.2.9c-50.7 18.5-92.9 67.4-92.9 67.4s38.2 34.2 77.9 92.8c49 72.4 49.6 138.3 49.5 142.7A222.8 222.8 0 00480 256zM201.2 80.9c29.3 13.1 54.6 34.6 54.6 34.6s25.5-21.4 54.8-34.6c36.8-16.5 64.9-11.3 72.3-9.5a224.06 224.06 0 00-253.8 0c7.2-1.8 35.2-7.1 72.1 9.5zm157.5 212C312.4 236 255.8 199 255.8 199s-56.3 37-102.7 93.9c-39.8 48.9-54.6 84.8-62.6 107.8l-1.3 4.8a224 224 0 00333.6 0l-1.4-4.8c-8-23-22.9-58.9-62.7-107.8z\"}}]})(props);\n};\nexport function IoLogoXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.8 303.9L469 32H365L209.4 303.8a1.35 1.35 0 000 1.7l98.9 173.8c.4.7.8.7 1.6.7H413l-99.3-174.7a1.74 1.74 0 01.1-1.4zm-91.9-87.7L163 113a2 2 0 00-2-1H65l58.9 104.4a1.13 1.13 0 01.1.8L43 352h96.8a1.54 1.54 0 001.6-.9l80.5-133.7a2.44 2.44 0 000-1.2z\"}}]})(props);\n};\nexport function IoLogoYahoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M410.32 37.13c-13.56 0-27-.93-39.12-5.13L256 218.67 140.8 32c-12.12 4.2-24.84 5.13-38.4 5.13-13.32 0-26.52-1.05-38.4-5.13l153.6 248.15V480c12-4.08 25-5.13 38.4-5.13s26.4 1.05 38.4 5.13V280.5L448 32c-11.88 4-24.36 5.13-37.68 5.13z\"}}]})(props);\n};\nexport function IoLogoYen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32h-80L256 253.13 144 32H64l112.37 208H128v48h73.56L216 319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.89-31H384v-48h-48.29z\"}}]})(props);\n};\nexport function IoLogoYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.64 148.79c0-45-33.1-81.2-74-81.2C379.24 65 322.74 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.59-.06 220.19 0 255.79q-.15 53.4 3.4 106.9c0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8q91.2.3 178.6-3.8c40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107q.34-53.4-3.26-106.9zM207 353.89v-196.5l145 98.2z\"}}]})(props);\n};\nexport function IoMagnetOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M421.83 293.82A144 144 0 00218.18 90.17m135.76 135.77a48 48 0 00-67.88-67.88\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M192 464v-48m-101.82 5.82l33.94-33.94M48 320h48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M286.06 158.06L172.92 271.19a32 32 0 01-45.25 0L105 248.57a32 32 0 010-45.26L218.18 90.17m203.65 203.65L308.69 407a32 32 0 01-45.26 0l-22.62-22.63a32 32 0 010-45.26l113.13-113.17M139.6 169.98l67.88 67.89m67.88 67.88l67.89 67.88\"}}]})(props);\n};\nexport function IoMagnetSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M191.98 463.58v-48M90.16 421.4l33.94-33.94m-76.12-67.88h48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M422.2 89.82a144 144 0 00-203.71-.07l-67.88 67.88 67.88 67.89 67.88-67.89a48 48 0 0168.46.59c18.3 18.92 17.48 49.24-1.14 67.86l-67.32 67.32 67.88 67.88 66.91-66.91c56.37-56.37 57.37-148.15 1.04-204.55zM82.718 225.517l45.255-45.254 67.883 67.882L150.6 293.4zM218.49 361.27l45.254-45.254 67.882 67.882-45.255 45.255z\"}}]})(props);\n};\nexport function IoMagnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M191.98 463.79v-48m-101.82 5.82l33.94-33.94m-76.12-67.88h48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M267.56 312.32l-31.11 31.11a16 16 0 000 22.63l45.26 45.25a16 16 0 0022.62 0l31.12-31.11a4 4 0 000-5.66l-62.23-62.22a4 4 0 00-5.66 0zM131.8 176.55l-31.11 31.12a16 16 0 000 22.62l45.25 45.26a16 16 0 0022.63 0l31.11-31.11a4 4 0 000-5.66l-62.22-62.23a4 4 0 00-5.66 0zm297.05-93.27a144 144 0 00-203.71-.06l-65.06 65.05a4 4 0 000 5.66l62.23 62.22a4 4 0 005.66 0l65-65.05a48 48 0 0168.46.59c18.3 18.92 17.47 49.24-1.14 67.85L295.85 284a4 4 0 000 5.66l62.22 62.23a4 4 0 005.66 0l64.08-64.08c56.37-56.34 57.37-148.13 1.04-204.53z\"}}]})(props);\n};\nexport function IoMailOpenOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M441.6 171.61L266.87 85.37a24.57 24.57 0 00-21.74 0L70.4 171.61A40 40 0 0048 207.39V392c0 22.09 18.14 40 40.52 40h335c22.38 0 40.52-17.91 40.52-40V207.39a40 40 0 00-22.44-35.78z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M397.33 368L268.07 267.46a24 24 0 00-29.47 0L109.33 368m200-73l136-103m-384 0l139 105\"}}]})(props);\n};\nexport function IoMailOpenSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.05 168.36L263.24 65.69a16.37 16.37 0 00-14.48 0L41 168.36a16 16 0 00-9 14.31V432a16.09 16.09 0 0016.19 16h415.62A16.09 16.09 0 00480 432V182.67a16 16 0 00-8.95-14.31zM256 97.89l173 85.44-175.7 86.78-173-85.44z\"}}]})(props);\n};\nexport function IoMailOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448.67 154.45L274.1 68.2a41.1 41.1 0 00-36.2 0L63.33 154.45A55.6 55.6 0 0032 204.53v184.61c0 30.88 25.42 56 56.67 56h334.66c31.25 0 56.67-25.12 56.67-56V204.53a55.6 55.6 0 00-31.33-50.08zM252.38 96.82a8.22 8.22 0 017.24 0L429 180.48l-172 85a8.22 8.22 0 01-7.24 0L80.35 181.81z\"}}]})(props);\n};\nexport function IoMailOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"320\",\"x\":\"48\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"40\",\"ry\":\"40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 160l144 112 144-112\"}}]})(props);\n};\nexport function IoMailSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 80H48a16 16 0 00-16 16v320a16 16 0 0016 16h416a16 16 0 0016-16V96a16 16 0 00-16-16zM265.82 284.63a16 16 0 01-19.64 0L89.55 162.81l19.64-25.26L256 251.73l146.81-114.18 19.64 25.26z\"}}]})(props);\n};\nexport function IoMailUnreadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 96H88a40 40 0 00-40 40v240a40 40 0 0040 40h334.73a40 40 0 0040-40V239\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 160l144 112 87-65.67\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"431.95\",\"cy\":\"128.05\",\"r\":\"47.95\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 192a63.95 63.95 0 1163.95-63.95A64 64 0 01432 192zm0-95.9a32 32 0 1031.95 32 32 32 0 00-31.95-32z\"}}]})(props);\n};\nexport function IoMailUnreadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M374.09 101c-.11.23-.21.46-.31.7-.34.75-.67 1.5-1 2.26l-.36.9c-.27.71-.54 1.42-.79 2.14-.12.35-.24.7-.35 1-.23.68-.44 1.37-.64 2.07l-.33 1.15q-.27 1-.51 2c-.1.41-.2.82-.28 1.23-.15.67-.28 1.36-.4 2-.08.42-.16.84-.23 1.27-.11.69-.2 1.4-.29 2.1-.05.42-.11.83-.16 1.25-.08.77-.13 1.54-.19 2.31 0 .36-.06.72-.08 1.09-.06 1.13-.09 2.27-.09 3.41 0 1 0 2 .07 2.94v.62c.05.95.12 1.89.21 2.83l.06.46c.09.87.2 1.72.32 2.57 0 .15 0 .31.07.46.14.92.31 1.84.49 2.75l.12.59c.2.92.4 1.84.64 2.75.23.92.5 1.82.77 2.71.06.19.12.38.17.57.28.88.57 1.74.88 2.59.05.15.11.29.16.43.29.78.6 1.55.92 2.32.05.14.11.28.17.42.35.83.73 1.65 1.11 2.47l.27.53c.4.82.81 1.64 1.24 2.44a64.21 64.21 0 0029.56 27.63l.37.17c1.78.8 3.59 1.53 5.45 2.17l.95.32 1.5.47c.45.14.9.26 1.36.39l1.92.5c.57.14 1.14.27 1.72.39l1.15.24 1.83.32.93.16c.9.13 1.81.24 2.72.34l.77.07c.73.07 1.47.13 2.22.17l.85.05c1 0 1.94.07 2.93.07 1.15 0 2.29 0 3.43-.09l1.09-.09c.77 0 1.54-.11 2.3-.19.42 0 .83-.1 1.25-.16.7-.08 1.41-.17 2.1-.28l1.27-.23c.68-.12 1.36-.25 2-.39l1.24-.29c.67-.16 1.35-.32 2-.51.39-.1.78-.21 1.16-.33.69-.2 1.37-.41 2.05-.63l1.07-.36c.7-.24 1.4-.5 2.1-.77l.94-.37c.74-.3 1.47-.62 2.19-.95l.77-.34c.8-.37 1.58-.77 2.36-1.17.17-.09.35-.17.52-.27.91-.48 1.8-1 2.68-1.5l.12-.07a63.95 63.95 0 10-89.21-84.88l-.21.39c-.3 1.03-.72 1.86-1.11 2.69z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M371.51 202.43l-105.69 82.2a16 16 0 01-19.64 0L89.55 162.81l19.64-25.26L256 251.73l94.36-73.39A95.81 95.81 0 01349 80H48a16 16 0 00-16 16v320a16 16 0 0016 16h416a16 16 0 0016-16V211.13a95.75 95.75 0 01-108.49-8.7z\"}}]})(props);\n};\nexport function IoMailUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 128.05A64 64 0 00389.62 80a64.52 64.52 0 00-12.71 15.3v.06c-.54.9-1.05 1.82-1.55 2.74l-.24.49c-.42.79-.81 1.59-1.19 2.4-.12.25-.23.5-.34.75-.33.73-.65 1.47-.95 2.22-.13.31-.25.62-.37.93-.27.7-.53 1.4-.78 2.11l-.36 1.06c-.22.68-.43 1.37-.63 2.06-.12.39-.23.77-.33 1.16-.19.67-.35 1.35-.51 2-.1.41-.2.82-.29 1.23-.14.68-.27 1.37-.39 2-.08.42-.16.84-.23 1.26-.11.7-.2 1.41-.29 2.12-.05.41-.11.82-.16 1.24-.08.77-.13 1.54-.19 2.32 0 .36-.06.72-.08 1.08-.06 1.14-.1 2.28-.1 3.44 0 1 0 2 .08 2.94v.64q.08 1.41.21 2.82l.06.48c.09.85.19 1.69.32 2.52 0 .17 0 .35.07.52.14.91.31 1.81.49 2.71 0 .22.09.43.13.65.18.86.38 1.72.6 2.57v.19c.23.89.48 1.76.75 2.63l.21.68c.27.85.55 1.68.85 2.51.06.18.13.36.2.54.27.71.55 1.42.84 2.12.08.21.16.41.25.61.34.79.69 1.58 1.06 2.36l.33.67c.35.7.7 1.4 1.07 2.09a64.34 64.34 0 0022.14 23.81 62.22 62.22 0 007.62 4.15l.39.18q2.66 1.2 5.43 2.16l.95.32 1.5.47c.45.14.9.26 1.36.39l1.92.5 1.73.4 1.15.23 1.83.33.94.15c.9.13 1.81.25 2.72.35l.77.07c.73.06 1.47.12 2.21.16l.86.05c1 0 1.94.08 2.92.08 1.16 0 2.3 0 3.44-.1l1.08-.08c.78-.06 1.55-.11 2.32-.19l1.25-.16c.7-.09 1.41-.18 2.11-.29l1.26-.23c.68-.12 1.37-.25 2-.39l1.23-.29c.68-.16 1.36-.32 2-.51.39-.1.77-.21 1.16-.33.69-.2 1.38-.41 2.06-.63l1.06-.36c.71-.25 1.41-.51 2.11-.78l.93-.37c.75-.3 1.49-.62 2.22-.95l.75-.34c.81-.38 1.61-.77 2.4-1.19l.49-.24c.92-.5 1.84-1 2.74-1.55h.06A64.52 64.52 0 00480 170.38a63.81 63.81 0 0016-42.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M371.38 202.53l-105.56 82.1a16 16 0 01-19.64 0l-144-112a16 16 0 1119.64-25.26L256 251.73l94.22-73.28A95.86 95.86 0 01348.81 80H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h336a56.06 56.06 0 0056-56V211.19a95.85 95.85 0 01-108.62-8.66z\"}}]})(props);\n};\nexport function IoMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 80H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h336a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56zm-14.18 92.63l-144 112a16 16 0 01-19.64 0l-144-112a16 16 0 1119.64-25.26L256 251.73l134.18-104.36a16 16 0 0119.64 25.26z\"}}]})(props);\n};\nexport function IoMaleFemaleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"216\",\"cy\":\"200\",\"r\":\"136\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M216 352v128m56-64H160m272-304V32h-80m-16.72 96.72L432 32\"}}]})(props);\n};\nexport function IoMaleFemaleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330 16v44h42.89l-37.1 37.09A157.67 157.67 0 00216 42c-87.12 0-158 70.88-158 158 0 79.66 59.26 145.72 136 156.46V394h-50v44h50v58h44v-58h50v-44h-50v-37.54c76.74-10.74 136-76.8 136-156.46a157.23 157.23 0 00-14-64.93l44-44V134h44V16zM216 314a114 114 0 11114-114 114.13 114.13 0 01-114 114z\"}}]})(props);\n};\nexport function IoMaleFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426 16h-74a22 22 0 000 44h20.89l-37.1 37.09A157.68 157.68 0 00216 42c-87.12 0-158 70.88-158 158 0 79.66 59.26 145.72 136 156.46V394h-28a22 22 0 000 44h28v36a22 22 0 0044 0v-36h28a22 22 0 000-44h-28v-37.54c76.74-10.74 136-76.8 136-156.46a157.15 157.15 0 00-14-64.92l44-44V112a22 22 0 0044 0V38a22 22 0 00-22-22zM216 314a114 114 0 11114-114 114.13 114.13 0 01-114 114z\"}}]})(props);\n};\nexport function IoMaleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"216\",\"cy\":\"296\",\"r\":\"152\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 160V64h-96m-28 124L448 64\"}}]})(props);\n};\nexport function IoMaleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330 48v44h58.89l-60.39 60.39c-68.2-52.86-167-48-229.54 14.57C31.12 234.81 31.12 345.19 99 413a174.21 174.21 0 00246 0c62.57-62.58 67.43-161.34 14.57-229.54L420 123.11V182h44V48zm-16.08 333.92a130.13 130.13 0 01-183.84 0c-50.69-50.68-50.69-133.16 0-183.84s133.16-50.69 183.84 0 50.69 133.16 0 183.84z\"}}]})(props);\n};\nexport function IoMale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M442 48h-90a22 22 0 000 44h36.89l-60.39 60.39c-68.19-52.86-167-48-229.54 14.57C31.12 234.81 31.12 345.19 99 413a174.21 174.21 0 00246 0c62.57-62.58 67.43-161.35 14.57-229.54L420 123.11V160a22 22 0 0044 0V70a22 22 0 00-22-22zM313.92 381.92a130.13 130.13 0 01-183.84 0c-50.69-50.68-50.69-133.16 0-183.84s133.16-50.69 183.84 0 50.69 133.16 0 183.84z\"}}]})(props);\n};\nexport function IoManOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M208 208v264a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 336v136a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24V208\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M208 192v88a23.72 23.72 0 01-24 24h0a23.72 23.72 0 01-24-24v-88a48 48 0 0148-48h96a48 48 0 0148 48v88a23.72 23.72 0 01-24 24h0a23.72 23.72 0 01-24-24v-88\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"40\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoManSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 128H176a32 32 0 00-32 32v160h48V192h8v320h52V328h8v184h52V192h8v128h48V160a32 32 0 00-32-32z\"}}]})(props);\n};\nexport function IoMan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304 128h-96a64.19 64.19 0 00-64 64v107.52c0 10.85 8.43 20.08 19.27 20.47A20 20 0 00184 300v-99.73a8.18 8.18 0 017.47-8.25 8 8 0 018.53 8V489a23 23 0 0023 23 23 23 0 0023-23V346.34a10.24 10.24 0 019.33-10.34A10 10 0 01266 346v143a23 23 0 0023 23 23 23 0 0023-23V200.27a8.18 8.18 0 017.47-8.25 8 8 0 018.53 8v99.52c0 10.85 8.43 20.08 19.27 20.47A20 20 0 00368 300V192a64.19 64.19 0 00-64-64z\"}}]})(props);\n};\nexport function IoMapOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M313.27 124.64L198.73 51.36a32 32 0 00-29.28.35L56.51 127.49A16 16 0 0048 141.63v295.8a16 16 0 0023.49 14.14l97.82-63.79a32 32 0 0129.5-.24l111.86 73a32 32 0 0029.27-.11l115.43-75.94a16 16 0 008.63-14.2V74.57a16 16 0 00-23.49-14.14l-98 63.86a32 32 0 01-29.24.35zM328 128v336M184 48v336\"}}]})(props);\n};\nexport function IoMapSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M327.71 130.93L184 39 32 144v336l152.29-98.93L328 473l152-105V32zM312 421l-112-72V91l112 72z\"}}]})(props);\n};\nexport function IoMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.17 113.34A32 32 0 0032 141.24V438a32 32 0 0047 28.37c.43-.23.85-.47 1.26-.74l84.14-55.05a8 8 0 003.63-6.72V46.45a8 8 0 00-12.51-6.63zm164.19-74.03A8 8 0 00200 46v357.56a8 8 0 003.63 6.72l96 62.42A8 8 0 00312 466V108.67a8 8 0 00-3.64-6.73zm252.17 7.16a31.64 31.64 0 00-31.5-.88 12.07 12.07 0 00-1.25.74l-84.15 55a8 8 0 00-3.63 6.72v357.46a8 8 0 0012.52 6.63l107.07-73.46a32 32 0 0016.41-28v-296a32.76 32.76 0 00-15.47-28.21z\"}}]})(props);\n};\nexport function IoMedalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"352\",\"r\":\"112\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"352\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M147 323L41.84 159.32a32 32 0 01-1.7-31.61l31-62A32 32 0 0199.78 48h312.44a32 32 0 0128.62 17.69l31 62a32 32 0 01-1.7 31.61L365 323m6-179H37m391.74-91.4L305 250M140.55 144L207 250\"}}]})(props);\n};\nexport function IoMedalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 32L16 160h289.11l80.22-128H80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M496 144L424 32 298 231.08a128 128 0 00-84 0L189.53 192H43.82l86.66 134.89a128 128 0 10251 0zM256 422a70 70 0 1170-70 70.08 70.08 0 01-70 70z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"352\",\"r\":\"32\"}}]})(props);\n};\nexport function IoMedal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"352\",\"r\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M99.78 32a48 48 0 00-42.94 26.53l-31 62A48.26 48.26 0 0024.28 160h278.2a4 4 0 003.39-1.87l75.5-120A4 4 0 00378 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M486.17 120.56l-31-62a47.7 47.7 0 00-32.79-25.46L342.5 160 298 231.08a128 128 0 00-84 0l-23.32-37.2a4 4 0 00-3.39-1.88H51.14a4 4 0 00-3.36 6.16l82.7 128.73a128 128 0 10251 0L483.62 168a48.22 48.22 0 002.55-47.44zm-226 295.31a64 64 0 1159.69-59.69 64.08 64.08 0 01-59.68 59.69z\"}}]})(props);\n};\nexport function IoMedicalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M429.93 174.27l-16.47-28.59a15.49 15.49 0 00-21.15-5.7l-98.39 57a4 4 0 01-6-3.5L288 80a16 16 0 00-16-16h-32a16 16 0 00-16 16l.07 113.57a4 4 0 01-6 3.5l-98.39-57a15.49 15.49 0 00-21.15 5.7l-16.46 28.6a15.42 15.42 0 005.69 21.1l98.49 57.08a4 4 0 010 6.9l-98.49 57.08a15.54 15.54 0 00-5.69 21.1l16.47 28.59a15.49 15.49 0 0021.15 5.7l98.39-57a4 4 0 016 3.5L224 432a16 16 0 0016 16h32a16 16 0 0016-16l-.07-113.67a4 4 0 016-3.5l98.39 57a15.49 15.49 0 0021.15-5.7l16.47-28.59a15.42 15.42 0 00-5.69-21.1l-98.49-57.08a4 4 0 010-6.9l98.49-57.08a15.51 15.51 0 005.68-21.11z\"}}]})(props);\n};\nexport function IoMedicalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M351.9 256L460 193.6l-48-83.2-108 62.4V48h-96v124.8l-108-62.4-48 83.2L160.1 256 52 318.4l48 83.2 108-62.4V464h96V339.2l108 62.4 48-83.2L351.9 256z\"}}]})(props);\n};\nexport function IoMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 464h-32a32 32 0 01-32-32l.05-85.82a4 4 0 00-6-3.47l-74.34 43.06a31.48 31.48 0 01-43-11.52l-16.5-28.64-.06-.1a31.65 31.65 0 0111.56-42.8l74.61-43.25a4 4 0 000-6.92l-74.54-43.21a31.41 31.41 0 01-11.55-43l16.44-28.55a31.48 31.48 0 0119.27-14.74 31.14 31.14 0 0123.8 3.2l74.31 43a4 4 0 006-3.47L208 80a32 32 0 0132-32h32a32 32 0 0132 32v85.72a4 4 0 006 3.47l74.34-43.06a31.51 31.51 0 0143 11.52l16.49 28.64.06.09a31.52 31.52 0 01-11.64 42.86l-74.53 43.2a4 4 0 000 6.92l74.53 43.2a31.42 31.42 0 0111.56 43l-16.44 28.55a31.48 31.48 0 01-19.27 14.74 31.14 31.14 0 01-23.8-3.2l-74.31-43a4 4 0 00-6 3.46L304 432a32 32 0 01-32 32zm-93.56-197.48zm0-21zm155.1-.08zm0 0z\"}}]})(props);\n};\nexport function IoMedkitOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"352\",\"x\":\"32\",\"y\":\"112\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 112V80a32 32 0 0132-32h160a32 32 0 0132 32v32m-112 96v160m80-80H176\"}}]})(props);\n};\nexport function IoMedkitSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M168 72h176v24H168z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M484 96H384V40a8 8 0 00-8-8H136a8 8 0 00-8 8v56H28a12 12 0 00-12 12v360a12 12 0 0012 12h456a12 12 0 0012-12V108a12 12 0 00-12-12zM168 72h176v24H168zm184 238h-74v74h-44v-74h-74v-44h74v-74h44v74h74z\"}}]})(props);\n};\nexport function IoMedkit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M336 64H176a16 16 0 00-16 16v16h192V80a16 16 0 00-16-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96h-48V80a48.05 48.05 0 00-48-48H176a48.05 48.05 0 00-48 48v16H80a64.07 64.07 0 00-64 64v256a64 64 0 0064 64h352a64 64 0 0064-64V160a64.07 64.07 0 00-64-64zm-96 208h-64v64a16 16 0 01-32 0v-64h-64a16 16 0 010-32h64v-64a16 16 0 0132 0v64h64a16 16 0 010 32zm16-208H160V80a16 16 0 0116-16h160a16 16 0 0116 16z\"}}]})(props);\n};\nexport function IoMegaphoneOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M407.94 52.22S321.3 160 240 160H80a16 16 0 00-16 16v96a16 16 0 0016 16h160c81.3 0 167.94 108.23 167.94 108.23 6.06 8 24.06 2.52 24.06-9.83V62c0-12.31-17-18.82-24.06-9.78zM64 256s-16-6-16-32 16-32 16-32m384 54s16-4.33 16-22-16-22-16-22m-192-42v128M112 160v128\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 288v168a8 8 0 008 8h53a16 16 0 0015.29-20.73C211.91 416.39 192 386.08 192 336h16a16 16 0 0016-16v-16a16 16 0 00-16-16h-16\"}}]})(props);\n};\nexport function IoMegaphoneSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 144v332a4 4 0 004 4h100.07a8 8 0 007.82-9.7L208.71 352H232a8 8 0 008-8V144zm324.18 42.55L448 185.5V36a4 4 0 00-4-4h-42.5a4 4 0 00-2.63 1L272 144v160l126.87 111a4 4 0 002.63 1H444a4 4 0 004-4V262.5l4.18-1.05C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM96 144H52a4 4 0 00-4 4v35.59a43 43 0 00-4.24 4.35C38.4 194.32 32 205.74 32 224c0 20.19 7.89 33.13 16 40.42V300a4 4 0 004 4h44z\"}}]})(props);\n};\nexport function IoMegaphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 176v.66a17.38 17.38 0 01-4.2 11.23v.05C38.4 194.32 32 205.74 32 224c0 16.55 5.3 28.23 11.68 35.91A19 19 0 0148 272a32 32 0 0032 32h8a8 8 0 008-8V152a8 8 0 00-8-8h-8a32 32 0 00-32 32zm404.18 10.55l-.93-.17a4 4 0 01-3.25-3.93V62c0-12.64-8.39-24-20.89-28.32-11.92-4.11-24.34-.76-31.68 8.53a431.18 431.18 0 01-51.31 51.69c-23.63 20-46.24 34.25-67 42.31a8 8 0 00-5.15 7.47V299a16 16 0 009.69 14.69c19.34 8.29 40.24 21.83 62 40.28a433.74 433.74 0 0151.68 52.16 26.22 26.22 0 0021.1 9.87 33.07 33.07 0 0010.44-1.74C439.71 410 448 399.05 448 386.4V265.53a4 4 0 013.33-3.94l.85-.14C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM240 320V152a8 8 0 00-8-8h-96a8 8 0 00-8 8v304a24 24 0 0024 24h52.45a32.66 32.66 0 0025.93-12.45 31.65 31.65 0 005.21-29.05c-1.62-5.18-3.63-11-5.77-17.19-7.91-22.9-18.34-37.07-21.12-69.32A32 32 0 00240 320z\"}}]})(props);\n};\nexport function IoMenuOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M80 160h352M80 256h352M80 352h352\"}}]})(props);\n};\nexport function IoMenuSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 384h384v-42.67H64zm0-106.67h384v-42.66H64zM64 128v42.67h384V128z\"}}]})(props);\n};\nexport function IoMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"48\",\"d\":\"M88 152h336M88 256h336M88 360h336\"}}]})(props);\n};\nexport function IoMicCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M224 368h64m48-143.7v23.92c0 39.42-40.58 71.48-80 71.48h0c-39.42 0-80-32.06-80-71.48V224.3m80 95.7v48\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"160\",\"x\":\"208\",\"y\":\"128\",\"rx\":\"48\",\"ry\":\"48\"}}]})(props);\n};\nexport function IoMicCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-48 128a48.14 48.14 0 0148-48 48.14 48.14 0 0148 48v64a48.14 48.14 0 01-48 48 48.14 48.14 0 01-48-48zm144 72.22c0 23.36-10.94 45.61-30.79 62.66A103.71 103.71 0 01272 334.26V352h32v32h-96v-32h32v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V208.3h32v39.92c0 25.66 28 55.48 64 55.48 29.6 0 64-24.23 64-55.48V208.3h32z\"}}]})(props);\n};\nexport function IoMicCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-48 128a48.14 48.14 0 0148-48 48.14 48.14 0 0148 48v64a48.14 48.14 0 01-48 48 48.14 48.14 0 01-48-48zm144 72.22c0 23.36-10.94 45.61-30.79 62.66A103.71 103.71 0 01272 334.26V352h16a16 16 0 010 32h-64a16 16 0 010-32h16v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V224.3a16 16 0 0132 0v23.92c0 25.66 28 55.48 64 55.48 29.6 0 64-24.23 64-55.48V224.3a16 16 0 1132 0z\"}}]})(props);\n};\nexport function IoMicOffCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208zm0-384c-97 0-176 79-176 176s79 176 176 176 176-78.95 176-176S353.05 80 256 80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 369a15.93 15.93 0 01-11.84-5.24l-192-210a16 16 0 0123.68-21.52l192 210A16 16 0 01352 369zm0-120.78v-23.8a16.3 16.3 0 00-13.64-16.24c-9.88-1.48-18.36 6.51-18.36 16.12v23.92a43.35 43.35 0 01-3.07 15.91 4 4 0 00.76 4.16l19.19 21.1a2 2 0 003.19-.3A77.12 77.12 0 00352 248.22zM304 240v-64a48.14 48.14 0 00-48-48 48.08 48.08 0 00-41 23.1 4 4 0 00.47 4.77l84.42 92.86a2 2 0 003.46-1A47.84 47.84 0 00304 240zm-57.43 45.2l-36.46-40.11a1 1 0 00-1.74.8 48.26 48.26 0 0037.25 41 1 1 0 00.95-1.69z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M287.55 352H272v-17.74a100.33 100.33 0 0012.53-3.06 2 2 0 00.89-3.26l-21.07-23.19a3.94 3.94 0 00-3.29-1.29c-1.69.15-3.39.24-5.06.24-36 0-64-29.82-64-55.48V224.4a16.26 16.26 0 00-15.61-16.4A15.91 15.91 0 00160 224v24.22c0 23.36 10.94 45.61 30.79 62.66A103.71 103.71 0 00240 334.26V352h-15.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00224 384h64a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z\"}}]})(props);\n};\nexport function IoMicOffCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm64 200.22V208h32v40.22a77.53 77.53 0 01-13.37 43.11L316 266.4a44.11 44.11 0 004-18.18zM256 128a48.14 48.14 0 0148 48v64a48.07 48.07 0 01-1.44 11.64l-89-97.92A48.13 48.13 0 01256 128zm48 256h-96v-32h32v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V208h32v40.22c0 25.66 28 55.48 64 55.48a56.91 56.91 0 007-.45l24.52 27a99.57 99.57 0 01-15.5 4V352h32zm-95.91-141.13l40.5 44.55a48.2 48.2 0 01-40.5-44.55zm136.07 124.89l-200.5-218.5 23.68-21.52 200.5 218.5z\"}}]})(props);\n};\nexport function IoMicOffCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 80a48.14 48.14 0 0148 48v64a47.84 47.84 0 01-.63 7.71 2 2 0 01-3.46 1l-84.42-92.86a4 4 0 01-.47-4.77A48.08 48.08 0 01256 128zm32 256h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01224 352h16v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V224a15.91 15.91 0 0116.39-16A16.26 16.26 0 01192 224.4v23.82c0 25.66 28 55.48 64 55.48 1.67 0 3.37-.09 5.06-.24a3.94 3.94 0 013.29 1.29l21.07 23.19a2 2 0 01-.89 3.26 100.33 100.33 0 01-12.53 3.06V352h15.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01288 384zm-77.89-138.91l36.46 40.11a1 1 0 01-.95 1.66 48.26 48.26 0 01-37.25-41 1 1 0 011.74-.77zm152.65 119.75a16 16 0 01-22.6-1.08l-192-210a16 16 0 0123.68-21.52l192 210a16 16 0 01-1.08 22.6zM352 248.22a77.12 77.12 0 01-11.93 40.87 2 2 0 01-3.19.3l-19.19-21.1a4 4 0 01-.76-4.16 43.35 43.35 0 003.07-15.91v-23.8a16.3 16.3 0 0113.64-16.24c9.88-1.48 18.36 6.51 18.36 16.12z\"}}]})(props);\n};\nexport function IoMicOffOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M432 400L96 64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 240v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 208v32a111.58 111.58 0 01-2.45 23.31 4.05 4.05 0 001.07 3.69l21.82 21.81a2 2 0 003.29-.72A143.27 143.27 0 00400 240zM256 352a112.36 112.36 0 01-112-112v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 208v32c0 74 56.1 135.12 128 143.11V432h-47.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00192 464h127.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00320 432h-48v-48.89a143.08 143.08 0 0052-16.22 4 4 0 00.91-6.35L307 342.63a4 4 0 00-4.51-.78A110.78 110.78 0 01256 352zm0-272a47.18 47.18 0 0148 48v74.72a4 4 0 001.17 2.82L332.59 233a2 2 0 003.41-1.42V128.91C336 85 301 48.6 257.14 48a79.66 79.66 0 00-68.47 36.57 4 4 0 00.54 5l19.54 19.54a2 2 0 003.25-.63A47.44 47.44 0 01256 80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M207.27 242.9L179.41 215a2 2 0 00-3.41 1.42V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0077.8 21.19 2 2 0 00.86-3.35l-24.91-24.91a4.08 4.08 0 00-2.42-1.15c-21.65-2.52-39.48-20.44-42.37-42.43a4 4 0 00-1.14-2.35z\"}}]})(props);\n};\nexport function IoMicOffSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M432 400L96 64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M368 192v48a111.74 111.74 0 01-2.93 25.45L390.65 291a143.07 143.07 0 009.35-51v-48zm-96 240v-48.89a143.11 143.11 0 0056.65-18.83L305 340.65A112.13 112.13 0 01144 240v-48h-32v48c0 74 56.1 135.12 128 143.11V432h-64v32h160v-32zm64-195.63V128c0-44.86-35.14-80-80-80a79.68 79.68 0 00-69 39.34\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M176 211.63V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0081 20.21z\"}}]})(props);\n};\nexport function IoMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M432 400L96 64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 240v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 208v32a111.68 111.68 0 01-2.68 24.38 2 2 0 00.53 1.84l22.59 22.59a2 2 0 003.29-.72A143.27 143.27 0 00400 240zM256 352a112.36 112.36 0 01-112-112v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 208v32c0 74 56.1 135.12 128 143.11V432h-47.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00192 464h127.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00320 432h-48v-48.89a143.08 143.08 0 0052-16.22 4 4 0 00.91-6.35l-18.4-18.39a3 3 0 00-3.41-.58A111 111 0 01256 352zm1.14-304a79.66 79.66 0 00-68.47 36.57 4 4 0 00.54 5L332.59 233a2 2 0 003.41-1.42V128.91C336 85 301 48.6 257.14 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M179.41 215a2 2 0 00-3.41 1.42V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0077.8 21.19 2 2 0 00.86-3.35z\"}}]})(props);\n};\nexport function IoMicOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M192 448h128m64-240v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32m128 160v80\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 64a63.68 63.68 0 00-64 64v111c0 35.2 29 65 64 65s64-29 64-65V128c0-36-28-64-64-64z\"}}]})(props);\n};\nexport function IoMicSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M192 448h128m64-240v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32m128 160v80\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 320a78.83 78.83 0 01-56.55-24.1A80.89 80.89 0 01176 239V128a79.69 79.69 0 0180-80c44.86 0 80 35.14 80 80v111c0 44.66-35.89 81-80 81z\"}}]})(props);\n};\nexport function IoMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M192 448h128m64-240v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32m128 160v80\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 320a78.83 78.83 0 01-56.55-24.1A80.89 80.89 0 01176 239V128a79.69 79.69 0 0180-80c44.86 0 80 35.14 80 80v111c0 44.66-35.89 81-80 81z\"}}]})(props);\n};\nexport function IoMoonOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 136c0-30.62 4.51-61.61 16-88C99.57 81.27 48 159.32 48 248c0 119.29 96.71 216 216 216 88.68 0 166.73-51.57 200-128-26.39 11.49-57.38 16-88 16-119.29 0-216-96.71-216-216z\"}}]})(props);\n};\nexport function IoMoonSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.62 126.77c0-33 4.85-66.35 17.23-94.77C87.54 67.83 32 151.89 32 247.38 32 375.85 136.15 480 264.62 480c95.49 0 179.55-55.54 215.38-137.85-28.42 12.38-61.8 17.23-94.77 17.23-128.47 0-232.61-104.14-232.61-232.61z\"}}]})(props);\n};\nexport function IoMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264 480A232 232 0 0132 248c0-94 54-178.28 137.61-214.67a16 16 0 0121.06 21.06C181.07 76.43 176 104.66 176 136c0 110.28 89.72 200 200 200 31.34 0 59.57-5.07 81.61-14.67a16 16 0 0121.06 21.06C442.28 426 358 480 264 480z\"}}]})(props);\n};\nexport function IoMoveOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 112l80-80 80 80m-80.02-80l.02 448m-80-80l80 80 80-80m64-224l80 80-80 80M112 176l-80 80 80 80m-80-80h448\"}}]})(props);\n};\nexport function IoMoveSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M176 112l80-80 80 80m-80.02-80l.02 448m-80-80l80 80 80-80m64-224l80 80-80 80M112 176l-80 80 80 80m-80-80h448\"}}]})(props);\n};\nexport function IoMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 112l80-80 80 80m-80.02-80l.02 448m-80-80l80 80 80-80m64-224l80 80-80 80M112 176l-80 80 80 80m-80-80h448\"}}]})(props);\n};\nexport function IoMusicalNoteOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M240 343.31V424a32.28 32.28 0 01-21.88 30.65l-21.47 7.23c-25.9 8.71-52.65-10.75-52.65-38.32h0A34.29 34.29 0 01167.25 391l50.87-17.12A32.29 32.29 0 00240 343.24V92a16.13 16.13 0 0112.06-15.66L360.49 48.2A6 6 0 01368 54v57.76a16.13 16.13 0 01-12.12 15.67l-91.64 23.13A32.25 32.25 0 00240 181.91v39.39\"}}]})(props);\n};\nexport function IoMusicalNoteSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381.55 32.05c-18.13 4.28-126.57 31.07-156 38.19a2 2 0 00-1.55 1.94V353.3a2 2 0 01-1.32 1.88L182 369.88c-29.82 10.66-54 18.94-54 59.06 0 32.47 23.53 47.18 37.95 50a81.77 81.77 0 0015 1.08c8.89 0 31-3.59 47.52-14.24C256 448 256 448 256 415.93V169.16a2 2 0 011.49-1.94l125-33a2 2 0 001.49-1.94V34a2 2 0 00-2.43-1.95z\"}}]})(props);\n};\nexport function IoMusicalNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.83 480a55.2 55.2 0 01-32.36-10.55A56.64 56.64 0 01128 423.58a50.26 50.26 0 0134.14-47.73L213 358.73a16.25 16.25 0 0011-15.49V92a32.1 32.1 0 0124.09-31.15l108.39-28.14A22 22 0 01384 54v57.75a32.09 32.09 0 01-24.2 31.19l-91.65 23.13A16.24 16.24 0 00256 181.91V424a48.22 48.22 0 01-32.78 45.81l-21.47 7.23a56 56 0 01-17.92 2.96z\"}}]})(props);\n};\nexport function IoMusicalNotesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80\"}}]})(props);\n};\nexport function IoMusicalNotesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.46 32.07c-23.6 6.53-205.55 58.81-250.54 71.43a4 4 0 00-2.92 3.83v247a2 2 0 01-1.33 1.89l-27.85 9.55c-19 7.44-66.82 16.68-66.82 59.19 0 35.54 24.63 51.54 45.86 54.28a52.06 52.06 0 007.81.8c7.37 0 36.38-7.08 53.3-18.08C208 448.25 208 448 208 412V202c0-.9.62-.84 1.48-1.07l188-51.92a2 2 0 012.53 2v155.54a2 2 0 01-1.36 1.89c-8.9 3-19.23 6.5-26.48 9.12C341.39 328.68 304 335.65 304 376c0 38.51 28.26 54.58 46.3 55.83a87.37 87.37 0 0021.33-1c9-1.38 24.09-5.9 38.14-14.86C432 401.79 432 401.51 432 360V34a2 2 0 00-2.54-1.93z\"}}]})(props);\n};\nexport function IoMusicalNotes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M421.84 37.37a25.86 25.86 0 00-22.6-4.46L199.92 86.49A32.3 32.3 0 00176 118v226c0 6.74-4.36 12.56-11.11 14.83l-.12.05-52 18C92.88 383.53 80 402 80 423.91a55.54 55.54 0 0023.23 45.63A54.78 54.78 0 00135.34 480a55.82 55.82 0 0017.75-2.93l.38-.13 21.84-7.94A47.84 47.84 0 00208 423.91v-212c0-7.29 4.77-13.21 12.16-15.07l.21-.06L395 150.14a4 4 0 015 3.86v141.93c0 6.75-4.25 12.38-11.11 14.68l-.25.09-50.89 18.11A49.09 49.09 0 00304 375.92a55.67 55.67 0 0023.23 45.8 54.63 54.63 0 0049.88 7.35l.36-.12 21.84-7.95A47.83 47.83 0 00432 375.92V58a25.74 25.74 0 00-10.16-20.63z\"}}]})(props);\n};\nexport function IoNavigateCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.76 161l-186.53 82.35c-10.47 4.8-6.95 20.67 4.57 20.67H244a4 4 0 014 4v89.18c0 11.52 16 15 20.78 4.56L351 175.24A10.73 10.73 0 00336.76 161z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoNavigateCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48A208.23 208.23 0 0048 256c0 114.68 93.31 208 208 208a208.23 208.23 0 00208-208c0-114.69-93.31-208-208-208zm-8 361V264H103l259-114.11z\"}}]})(props);\n};\nexport function IoNavigateCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zM351 175.24l-82.24 186.52c-4.79 10.47-20.78 7-20.78-4.56V268a4 4 0 00-4-4H154.8c-11.52 0-15-15.87-4.57-20.67L336.76 161A10.73 10.73 0 01351 175.24z\"}}]})(props);\n};\nexport function IoNavigateOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 64L64 240.14h200a8 8 0 018 8V448z\"}}]})(props);\n};\nexport function IoNavigateSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32L32 240h240v240L480 32z\"}}]})(props);\n};\nexport function IoNavigate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 464a16 16 0 01-16-16.42V264.13a8 8 0 00-8-8H64.41a16.31 16.31 0 01-15.49-10.65 16 16 0 018.41-19.87l384-176.15a16 16 0 0121.22 21.19l-176 384A16 16 0 01272 464z\"}}]})(props);\n};\nexport function IoNewspaperOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M240 128h64m-64 64h64m-192 64h192m-192 64h192m-192 64h192\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoNewspaperSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"96\",\"y\":\"112\",\"fill\":\"none\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M468 112h-52v304a32 32 0 0032 32 32 32 0 0032-32V124a12 12 0 00-12-12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M431.15 477.75A64.11 64.11 0 01384 416V44a12 12 0 00-12-12H44a12 12 0 00-12 12v380a56 56 0 0056 56h342.85a1.14 1.14 0 00.3-2.25zM96 208v-96h96v96zm224 192H96v-32h224zm0-64H96v-32h224zm0-64H96v-32h224zm0-64h-96v-32h96zm0-64h-96v-32h96z\"}}]})(props);\n};\nexport function IoNewspaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.91 112h-23.82a.09.09 0 00-.09.09V416a32 32 0 0032 32 32 32 0 0032-32V152.09A40.09 40.09 0 00439.91 112z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 416V72a40 40 0 00-40-40H72a40 40 0 00-40 40v352a56 56 0 0056 56h342.85a1.14 1.14 0 001.15-1.15 1.14 1.14 0 00-.85-1.1A64.11 64.11 0 01384 416zM96 128a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16h-64a16 16 0 01-16-16zm208 272H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 368h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 400zm0-64H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 304h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 336zm0-64H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 240h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 272zm0-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01240 176h63.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 208zm0-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01240 112h63.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 144z\"}}]})(props);\n};\nexport function IoNotificationsCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M365.2 313c-16.33-19.34-27.86-27.47-27.86-80.8 0-48.86-25.78-66.23-47-74.67a11.39 11.39 0 01-6.34-6.68C280.29 138.6 269.88 128 256 128s-24.31 10.6-28 22.86a11.35 11.35 0 01-6.33 6.68c-21.24 8.46-47 25.8-47 74.67 0 53.33-11.54 61.46-27.87 80.8-6.77 8-.65 23 11.19 23H354C365.77 336 371.94 321 365.2 313zm-144.96 39a4 4 0 00-4 4.42C218.49 375.14 235.11 384 256 384c20.67 0 37.14-9.15 39.66-27.52a4 4 0 00-4-4.48z\"}}]})(props);\n};\nexport function IoNotificationsCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M295.68 351.43v.57h.32z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M256 384c22.28 0 39.36-10.63 39.66-32H216c0 21.75 17.53 32 40 32zm39.67-32h.33l-.32-.57c0 .19-.01.38-.01.57z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 336c-22.48 0-40-10.25-40-32h80c-.3 21.37-17.71 32-40 32zm112-48H144v-28l28-36v-32.3c0-40.41 15.82-75.35 56-84.27l4-27.43h48l4 27.43c40 8.92 56 44 56 84.27V272l28 36z\"}}]})(props);\n};\nexport function IoNotificationsCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 336c-20.9 0-37.52-8.86-39.75-27.58a4 4 0 014-4.42h71.45a4 4 0 014 4.48C293.15 374.85 276.68 384 256 384zm98-48H158c-11.84 0-18-15-11.19-23 16.33-19.34 27.87-27.47 27.87-80.8 0-48.87 25.74-66.21 47-74.67a11.35 11.35 0 006.33-6.68C231.7 138.6 242.14 128 256 128s24.28 10.6 28 22.86a11.39 11.39 0 006.34 6.68c21.21 8.44 47 25.81 47 74.67 0 53.33 11.53 61.46 27.86 80.8 6.74 7.99.57 22.99-11.2 22.99z\"}}]})(props);\n};\nexport function IoNotificationsOffCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M220.24 352a4 4 0 00-4 4.42C218.49 375.14 235.11 384 256 384s37.5-8.86 39.73-27.58a4 4 0 00-4-4.42zM352 378a15.93 15.93 0 01-11.84-5.24l-192-212a16 16 0 0123.68-21.52l192 212A16 16 0 01352 378zM174.68 232.21c0 53.33-11.54 61.46-27.87 80.8-6.77 8-.65 23 11.19 23h118.83a4 4 0 002.95-6.7l-98-106.87a4 4 0 00-6.94 2.52c-.1 2.33-.16 4.75-.16 7.25zM365.2 313c-16.33-19.34-27.86-27.47-27.86-80.8 0-48.86-25.78-66.23-47-74.67a11.39 11.39 0 01-6.34-6.68C280.29 138.6 269.88 128 256 128s-24.31 10.6-28 22.86a11.35 11.35 0 01-6.33 6.68c-1.28.51-2.57 1.05-3.88 1.63a4 4 0 00-1.3 6.36L361 323.21a4 4 0 006.94-2.95 12 12 0 00-2.74-7.26z\"}}]})(props);\n};\nexport function IoNotificationsOffCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zM144 308l28-36v-32.3a131.83 131.83 0 012.34-25.42L285.92 336H144zm112.18 76C233.6 384 216 373.75 216 352h80c-.3 21.37-17.45 32-39.82 32zm93.48-3.74l-211-227 23.68-21.52 211 227zM368 330.85l-.32-.38-155.5-169.63a73.4 73.4 0 0115.82-5.41l4-27.43h48l4 27.43c40 8.92 56 44 56 84.27V272l28 36z\"}}]})(props);\n};\nexport function IoNotificationsOffCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zM146.83 313c16.33-19.34 27.86-27.47 27.86-80.8q0-3.75.2-7.26a4 4 0 017-2.52l98 106.87a4 4 0 01-2.94 6.7H158C146.18 336 140.06 321 146.83 313zm148.93 43.41C293.53 375.14 276.92 384 256 384s-37.51-8.86-39.75-27.58a4 4 0 014-4.42h71.53a4 4 0 013.98 4.42zm67 17.42a16 16 0 01-22.6-1.08l-192-212a16 16 0 0123.68-21.52l192 212a16 16 0 01-1.08 22.61zM361 323.21L216.49 165.53a4 4 0 011.3-6.36c1.31-.58 2.61-1.12 3.89-1.63a11.33 11.33 0 006.32-6.68c3.72-12.26 14.15-22.86 28-22.86s24.29 10.6 28 22.86a11.34 11.34 0 006.34 6.68c21.21 8.44 47 25.81 47 74.67 0 53.33 11.54 61.46 27.87 80.8a12.09 12.09 0 012.76 7.25 4 4 0 01-6.97 2.95z\"}}]})(props);\n};\nexport function IoNotificationsOffOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128.51 204.59q-.37 6.15-.37 12.76C128.14 304 110 320 84.33 351.43 73.69 364.45 83 384 101.62 384H320m94.5-48.7c-18.48-23.45-30.62-47.05-30.62-118 0-79.3-40.52-107.57-73.88-121.3-4.43-1.82-8.6-6-9.95-10.55C294.21 65.54 277.82 48 256 48s-38.2 17.55-44 37.47c-1.35 4.6-5.52 8.71-10 10.53a149.57 149.57 0 00-18 8.79M320 384v16a64 64 0 01-128 0v-16\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 448L64 64\"}}]})(props);\n};\nexport function IoNotificationsOffSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.37 64l22.628-22.628L470.627 448l-22.628 22.627zM256 480a80.09 80.09 0 0073.3-48H182.7a80.09 80.09 0 0073.3 48zM112 227.47V288l-48 64v48h268.12L115.87 183.75a236.75 236.75 0 00-3.87 43.72zM448 352l-48-64v-60.53C400 157 372.64 95.61 304 80l-8-48h-80l-8 48a117.45 117.45 0 00-41.95 18.17l282 282z\"}}]})(props);\n};\nexport function IoNotificationsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zm-7.92-122.69c-1.66-2-3.29-4-4.89-5.93-22-26.61-35.31-42.67-35.31-118 0-39-9.33-71-27.72-95-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 01-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.13 3.13 0 01-.81.65 157.88 157.88 0 00-21.88 11 8 8 0 00-1.49 12.49l261.78 261.74a8 8 0 0013.6-6.63 35.39 35.39 0 00-7.84-18.5zM112.14 217.35c0 75.36-13.29 91.42-35.31 118-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 00-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H312.8a8 8 0 005.66-13.66l-192-192a8 8 0 00-13.62 5q-.7 8.69-.7 18.04zM256 480a80.06 80.06 0 0070.44-42.13 4 4 0 00-3.54-5.87H189.12a4 4 0 00-3.55 5.87A80.06 80.06 0 00256 480z\"}}]})(props);\n};\nexport function IoNotificationsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M427.68 351.43C402 320 383.87 304 383.87 217.35 383.87 138 343.35 109.73 310 96c-4.43-1.82-8.6-6-9.95-10.55C294.2 65.54 277.8 48 256 48s-38.21 17.55-44 37.47c-1.35 4.6-5.52 8.71-9.95 10.53-33.39 13.75-73.87 41.92-73.87 121.35C128.13 304 110 320 84.32 351.43 73.68 364.45 83 384 101.61 384h308.88c18.51 0 27.77-19.61 17.19-32.57zM320 384v16a64 64 0 01-128 0v-16\"}}]})(props);\n};\nexport function IoNotificationsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 480a80.09 80.09 0 0073.3-48H182.7a80.09 80.09 0 0073.3 48zm144-192v-60.53C400 157 372.64 95.61 304 80l-8-48h-80l-8 48c-68.88 15.61-96 76.76-96 147.47V288l-48 64v48h384v-48z\"}}]})(props);\n};\nexport function IoNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.08 341.31c-1.66-2-3.29-4-4.89-5.93-22-26.61-35.31-42.67-35.31-118 0-39-9.33-71-27.72-95-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 01-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.13 3.13 0 01-.81.65c-56.38 23.21-83.78 67.74-83.78 136.14 0 75.36-13.29 91.42-35.31 118-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 00-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H410.5c14.94 0 28-8.06 34.19-21a35.17 35.17 0 00-4.61-37.66zM256 480a80.06 80.06 0 0070.44-42.13 4 4 0 00-3.54-5.87H189.12a4 4 0 00-3.55 5.87A80.06 80.06 0 00256 480z\"}}]})(props);\n};\nexport function IoNuclearOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"192\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"64\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M224 192L171 85m117 107l53-107m-13.45 170.81l119.41.13m-147.87 57.19l72.25 95.06M184.45 255.81l-119.41.13m147.87 57.19l-72.25 95.06\"}}]})(props);\n};\nexport function IoNuclearSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M223.47 335.59l-51.71 68a169.73 169.73 0 00168.48 0l-51.71-68\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M403.08 108.92a208 208 0 00-294.16 294.16 208 208 0 00294.16-294.16zM342 256a86.13 86.13 0 01-53.47 79.59l51.71 68a169.73 169.73 0 01-168.48 0l51.71-68a86 86 0 01-50.56-101.77l-85.48.09a170.21 170.21 0 0173.83-119l37.94 76.59a85.78 85.78 0 01113.6 0l37.94-76.59a170.21 170.21 0 0173.83 119l-85.48-.09A85.87 85.87 0 01342 256z\"}}]})(props);\n};\nexport function IoNuclear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zM429 239.92l-93.08-.1a2 2 0 01-1.95-1.57 80.08 80.08 0 00-27.44-44.17 2 2 0 01-.54-2.43l41.32-83.43a2 2 0 012.87-.81A176.2 176.2 0 01431 237.71a2 2 0 01-2 2.21zm-220.8 20.46a48 48 0 1143.42 43.42 48 48 0 01-43.42-43.42zm-43.55-152.16L206 191.65a2 2 0 01-.54 2.43A80.08 80.08 0 00178 238.25a2 2 0 01-2 1.57l-93.08.1a2 2 0 01-2-2.21 176.2 176.2 0 0180.82-130.3 2 2 0 012.91.81zm-.37 295.34l56.31-74.09a2 2 0 012.43-.6 79.84 79.84 0 0066 0 2 2 0 012.43.6l56.31 74.09a2 2 0 01-.54 2.92 175.65 175.65 0 01-182.36 0 2 2 0 01-.58-2.92z\"}}]})(props);\n};\nexport function IoNutritionOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M352 128c-32.26-2.89-64 16-96 16s-63.75-19-96-16c-64 6-96 64-96 160 0 80 64 192 111.2 192s51.94-24 80.8-24 33.59 24 80.8 24S448 368 448 288c0-96-29-154-96-160z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M323.92 83.14c-21 21-45.66 27-58.82 28.79a8 8 0 01-9.1-8.73 97.6 97.6 0 0128.61-59.33c22-22 46-26.9 58.72-27.85a8 8 0 018.67 8.92 98 98 0 01-28.08 58.2z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"216\",\"cy\":\"304\",\"rx\":\"24\",\"ry\":\"48\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"296\",\"cy\":\"304\",\"rx\":\"24\",\"ry\":\"48\"}}]})(props);\n};\nexport function IoNutritionSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.71 159.43c-17.6-28.31-45.5-43.8-85.28-47.37-22.82-2-50.23 4.94-72.25 10.55C271.26 125.14 260 128 256 128s-15.18-2.86-25-5.39c-22.08-5.65-49.56-12.69-72.45-10.54-38.53 3.61-66 19.19-84 47.62S48 229 48 288c0 61.28 29.53 114.58 47.13 140.89C116.82 461.34 149.25 496 175.2 496c18.57 0 34.12-7.23 47.82-13.64C243 473 256 472 256 472s11 0 31.94 10.11C301.65 488.73 317.3 496 336.8 496c26.58 0 59.08-34.69 80.63-67.15C434.82 402.65 464 349.52 464 288c0-60-8-100.83-25.29-128.57zM216 352c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48zm80 0c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M323.72 82.76C353.68 52.82 352 16.18 352 16.14s-35.77-3.76-67.23 27.67S256.06 112 256.06 112s37.68.71 67.66-29.24z\"}}]})(props);\n};\nexport function IoNutrition (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439 166.29c-18.67-32.57-47.46-50.81-85.57-54.23-20.18-1.8-39 3.37-57.23 8.38-14.15 3.89-27.52 7.56-40.2 7.56s-26-3.68-40.06-7.57c-18.28-5-37.18-10.26-57.43-8.36-36.39 3.41-65.51 22.11-84.31 54.08C56.82 195.76 48 236.76 48 288c0 40.4 15 90.49 40 134 12.82 22.25 47 74 87.16 74 30.77 0 47.15-9.44 59.11-16.33 8.3-4.78 13.31-7.67 21.69-7.67s13.39 2.89 21.69 7.67c12 6.89 28.35 16.33 59.15 16.33 40.17 0 74.34-51.76 87.16-74 25.07-43.5 40-93.59 40-134 .04-52.57-8.14-92.38-24.96-121.71zM216 352c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48zm80 0c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M265.1 111.93c13.16-1.75 37.86-7.83 58.83-28.79a98 98 0 0028-58.2 8 8 0 00-8.55-8.94c-12.71.95-36.76 5.87-58.73 27.85A97.6 97.6 0 00256 103.2a8 8 0 009.1 8.73z\"}}]})(props);\n};\nexport function IoOpenOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48M336 64h112v112M224 288L440 72\"}}]})(props);\n};\nexport function IoOpenSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.37 288l176-176H48v352h352V134.63l-176 176L201.37 288z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 48v32h89.37l-32 32L400 134.63l32-32V192h32V48H320z\"}}]})(props);\n};\nexport function IoOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 304a16 16 0 01-11.31-27.31l157.94-157.94A55.7 55.7 0 00344 112H104a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V168a55.7 55.7 0 00-6.75-26.63L235.31 299.31A15.92 15.92 0 01224 304z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M448 48H336a16 16 0 000 32h73.37l-38.74 38.75a56.35 56.35 0 0122.62 22.62L432 102.63V176a16 16 0 0032 0V64a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoOptionsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M368 128h80m-384 0h240m64 256h80m-384 0h240m-96-128h240m-384 0h80\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"336\",\"cy\":\"128\",\"r\":\"32\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"176\",\"cy\":\"256\",\"r\":\"32\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"336\",\"cy\":\"384\",\"r\":\"32\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoOptionsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381.25 112a48 48 0 00-90.5 0H48v32h242.75a48 48 0 0090.5 0H464v-32zM176 208a48.09 48.09 0 00-45.25 32H48v32h82.75a48 48 0 0090.5 0H464v-32H221.25A48.09 48.09 0 00176 208zm160 128a48.09 48.09 0 00-45.25 32H48v32h242.75a48 48 0 0090.5 0H464v-32h-82.75A48.09 48.09 0 00336 336z\"}}]})(props);\n};\nexport function IoOptions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 144h226.75a48 48 0 0090.5 0H448a16 16 0 000-32h-66.75a48 48 0 00-90.5 0H64a16 16 0 000 32zm384 224h-66.75a48 48 0 00-90.5 0H64a16 16 0 000 32h226.75a48 48 0 0090.5 0H448a16 16 0 000-32zm0-128H221.25a48 48 0 00-90.5 0H64a16 16 0 000 32h66.75a48 48 0 0090.5 0H448a16 16 0 000-32z\"}}]})(props);\n};\nexport function IoPaperPlaneOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M53.12 199.94l400-151.39a8 8 0 0110.33 10.33l-151.39 400a8 8 0 01-15-.34l-67.4-166.09a16 16 0 00-10.11-10.11L53.46 215a8 8 0 01-.34-15.06zM460 52L227 285\"}}]})(props);\n};\nexport function IoPaperPlaneSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 16L15.88 208 195 289 448 64 223 317l81 179L496 16z\"}}]})(props);\n};\nexport function IoPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M473 39.05a24 24 0 00-25.5-5.46L47.47 185h-.08a24 24 0 001 45.16l.41.13 137.3 58.63a16 16 0 0015.54-3.59L422 80a7.07 7.07 0 0110 10L226.66 310.26a16 16 0 00-3.59 15.54l58.65 137.38c.06.2.12.38.19.57 3.2 9.27 11.3 15.81 21.09 16.25h1a24.63 24.63 0 0023-15.46L478.39 64.62A24 24 0 00473 39.05z\"}}]})(props);\n};\nexport function IoPartlySunnyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M90.61 306.85A16.07 16.07 0 00104 293.6C116.09 220.17 169.63 176 232 176c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H106c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384.8 271.4a80 80 0 10-123.55-92M464 208h32M336 48v32M222.86 94.86l22.63 22.63m203.65-22.63l-22.63 22.63\"}}]})(props);\n};\nexport function IoPartlySunnySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01232 160c30.23 0 58.48 9.39 81.71 27.17a142.69 142.69 0 0145.36 60.66c29.41 4.82 54.72 17.11 73.19 35.54C453 304.11 464 331.71 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zm22.5-27.93a169.23 169.23 0 0145.44 19A96 96 0 00281 129.33q-2.85 2-5.54 4.2a162.47 162.47 0 0157.73 28.23 174.53 174.53 0 0148.31 58.13zM448 192h64v32h-64zM320 32h32v64h-32zm-64.65 97.63l12.45-12.45-44.62-44.63-22.63 22.63 33.17 33.17h.6a172 172 0 0121.03 1.28zm148.853-12.46l44.626-44.625 22.627 22.628-44.625 44.625z\"}}]})(props);\n};\nexport function IoPartlySunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01232 160c30.23 0 58.48 9.39 81.71 27.17a142.24 142.24 0 0142.19 53.21 16 16 0 0011.19 9c26 5.61 48.4 17.29 65.17 34C453 304.11 464 331.71 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zm28.89-26.14a168.8 168.8 0 0134.76 14.71 4 4 0 005.82-2.44 97 97 0 003.53-26.68c-.39-52.43-43.48-95.22-95.91-95.27A95.46 95.46 0 00281 129.33h-.06a3.38 3.38 0 001 6 162.45 162.45 0 0151.28 26.4 173.92 173.92 0 0145.32 52.51 16 16 0 009.35 7.44zM496 224h-32a16 16 0 010-32h32a16 16 0 010 32zM336 96a16 16 0 01-16-16V48a16 16 0 0132 0v32a16 16 0 01-16 16zm-90.51 37.49a15.92 15.92 0 01-11.31-4.69l-22.63-22.62a16 16 0 0122.63-22.63l22.62 22.63a16 16 0 01-11.31 27.31zm181.02 0a16 16 0 01-11.31-27.31l22.62-22.63a16 16 0 0122.63 22.63l-22.63 22.62a15.92 15.92 0 01-11.31 4.69z\"}}]})(props);\n};\nexport function IoPauseCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M208 192v128m96-128v128\"}}]})(props);\n};\nexport function IoPauseCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-32 288h-32V176h32zm96 0h-32V176h32z\"}}]})(props);\n};\nexport function IoPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-32 272a16 16 0 01-32 0V192a16 16 0 0132 0zm96 0a16 16 0 01-32 0V192a16 16 0 0132 0z\"}}]})(props);\n};\nexport function IoPauseOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 96h16v320h-16zm144 0h16v320h-16z\"}}]})(props);\n};\nexport function IoPauseSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 432h-80V80h80zm144 0h-80V80h80z\"}}]})(props);\n};\nexport function IoPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 432h-48a16 16 0 01-16-16V96a16 16 0 0116-16h48a16 16 0 0116 16v320a16 16 0 01-16 16zm144 0h-48a16 16 0 01-16-16V96a16 16 0 0116-16h48a16 16 0 0116 16v320a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoPawOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M457.74 170.1a30.26 30.26 0 00-11.16-2.1h-.4c-20.17.3-42.79 19.19-54.66 47.76-14.23 34.18-7.68 69.15 14.74 78.14a30.21 30.21 0 0011.15 2.1c20.27 0 43.2-19 55.17-47.76 14.13-34.18 7.48-69.15-14.84-78.14zM327.6 303.48C299.8 257.35 287.8 240 256 240s-43.9 17.46-71.7 63.48c-23.8 39.36-71.9 42.64-83.9 76.07a50.91 50.91 0 00-3.6 19.25c0 27.19 20.8 49.2 46.4 49.2 31.8 0 75.1-25.39 112.9-25.39S337 448 368.8 448c25.6 0 46.3-22 46.3-49.2a51 51 0 00-3.7-19.25c-12-33.55-60-36.71-83.8-76.07zM192.51 196a26.53 26.53 0 004-.3c23.21-3.37 37.7-35.53 32.44-71.85C224 89.61 203.22 64 181.49 64a26.53 26.53 0 00-4 .3c-23.21 3.37-37.7 35.53-32.44 71.85C150 170.29 170.78 196 192.51 196zm174.41-59.85c5.26-36.32-9.23-68.48-32.44-71.85a26.53 26.53 0 00-4-.3c-21.73 0-42.47 25.61-47.43 59.85-5.26 36.32 9.23 68.48 32.44 71.85a26.53 26.53 0 004 .3c21.73 0 42.51-25.71 47.43-59.85zM105.77 293.9c22.39-9 28.93-44 14.72-78.14C108.53 187 85.62 168 65.38 168a30.21 30.21 0 00-11.15 2.1c-22.39 9-28.93 44-14.72 78.14C51.47 277 74.38 296 94.62 296a30.21 30.21 0 0011.15-2.1z\"}}]})(props);\n};\nexport function IoPawSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M442.8 361.82c-8.8-25.1-29.31-37.82-49.11-50.12-17.23-10.71-33.5-20.83-44.14-39-29.33-50.33-45.44-80.7-93.49-80.7s-64.21 30.38-93.61 80.69c-10.65 18.21-27 28.35-44.25 39.08-19.8 12.31-40.27 25-49.1 50.05a78.06 78.06 0 00-5.1 28.29C64 430.85 96.45 464 132.4 464s83.31-18.13 123.76-18.13S343.31 464 379.71 464 448 430.85 448 390.11a78.3 78.3 0 00-5.2-28.29z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"72\",\"cy\":\"216\",\"rx\":\"56\",\"ry\":\"72\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"184\",\"cy\":\"120\",\"rx\":\"56\",\"ry\":\"72\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"328\",\"cy\":\"120\",\"rx\":\"56\",\"ry\":\"72\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"440\",\"cy\":\"216\",\"rx\":\"56\",\"ry\":\"72\"}}]})(props);\n};\nexport function IoPaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490.39 182.75c-5.55-13.19-14.77-22.7-26.67-27.49l-.16-.06a46.46 46.46 0 00-17-3.2h-.64c-27.24.41-55.05 23.56-69.19 57.61-10.37 24.9-11.56 51.68-3.18 71.64 5.54 13.2 14.78 22.71 26.73 27.5l.13.05a46.53 46.53 0 0017 3.2c27.5 0 55.6-23.15 70-57.65 10.24-24.87 11.37-51.63 2.98-71.6zM381.55 329.61c-15.71-9.44-30.56-18.37-40.26-34.41C314.53 250.8 298.37 224 256 224s-58.57 26.8-85.39 71.2c-9.72 16.06-24.6 25-40.36 34.48-18.07 10.86-36.74 22.08-44.8 44.16a66.93 66.93 0 00-4.65 25c0 35.95 28 65.2 62.4 65.2 17.75 0 36.64-6.15 56.63-12.66 19.22-6.26 39.09-12.73 56.27-12.73s37 6.47 56.15 12.73C332.2 457.85 351 464 368.8 464c34.35 0 62.3-29.25 62.3-65.2a67 67 0 00-4.75-25c-8.06-22.1-26.74-33.33-44.8-44.19zM150 188.85c11.9 14.93 27 23.15 42.52 23.15a42.88 42.88 0 006.33-.47c32.37-4.76 52.54-44.26 45.92-90C242 102.3 234.6 84.39 224 71.11 212.12 56.21 197 48 181.49 48a42.88 42.88 0 00-6.33.47c-32.37 4.76-52.54 44.26-45.92 90 2.76 19.2 10.16 37.09 20.76 50.38zm163.16 22.68a42.88 42.88 0 006.33.47c15.53 0 30.62-8.22 42.52-23.15 10.59-13.29 17.95-31.18 20.75-50.4 6.62-45.72-13.55-85.22-45.92-90a42.88 42.88 0 00-6.33-.47C315 48 299.88 56.21 288 71.11c-10.6 13.28-18 31.19-20.76 50.44-6.62 45.72 13.55 85.22 45.92 89.98zM111.59 308.8l.14-.05c11.93-4.79 21.16-14.29 26.69-27.48 8.38-20 7.2-46.75-3.15-71.65C120.94 175.16 92.85 152 65.38 152a46.4 46.4 0 00-17 3.2l-.14.05c-11.9 4.75-21.13 14.29-26.66 27.48-8.38 20-7.2 46.75 3.15 71.65C39.06 288.84 67.15 312 94.62 312a46.4 46.4 0 0016.97-3.2z\"}}]})(props);\n};\nexport function IoPencilOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M364.13 125.25L87 403l-23 45 44.99-23 277.76-277.13-22.62-22.62zm56.56-56.56l-22.62 22.62 22.62 22.63 22.62-22.63a16 16 0 000-22.62h0a16 16 0 00-22.62 0z\"}}]})(props);\n};\nexport function IoPencilSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103 464H48v-55L358.14 98.09l55.77 55.78L103 464zm322.72-322L370 86.28l31.66-30.66C406.55 50.7 414.05 48 421 48a25.91 25.91 0 0118.42 7.62l17 17A25.87 25.87 0 01464 91c0 7-2.71 14.45-7.62 19.36zm-7.52-70.83z\"}}]})(props);\n};\nexport function IoPencil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M358.62 129.28L86.49 402.08 70 442l39.92-16.49 272.8-272.13-24.1-24.1zm54.45-54.44l-11.79 11.78 24.1 24.1 11.79-11.79a16.51 16.51 0 000-23.34l-.75-.75a16.51 16.51 0 00-23.35 0z\"}}]})(props);\n};\nexport function IoPeopleCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208zm0-384c-97 0-176 79-176 176s79 176 176 176 176-78.95 176-176S353.05 80 256 80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M323.67 292c-17.4 0-34.21-7.72-47.34-21.73a83.76 83.76 0 01-22-51.32c-1.47-20.7 4.88-39.75 17.88-53.62S303.38 144 323.67 144c20.14 0 38.37 7.62 51.33 21.46s19.47 33 18 53.51a84 84 0 01-22 51.3C357.86 284.28 341.06 292 323.67 292zm55.81-74zm-215.66 77.36c-29.76 0-55.93-27.51-58.33-61.33-1.23-17.32 4.15-33.33 15.17-45.08s26.22-18 43.15-18 32.12 6.44 43.07 18.14 16.5 27.82 15.25 45c-2.44 33.77-28.6 61.27-58.31 61.27zm256.55 59.92c-1.59-4.7-5.46-9.71-13.22-14.46-23.46-14.33-52.32-21.91-83.48-21.91-30.57 0-60.23 7.9-83.53 22.25-26.25 16.17-43.89 39.75-51 68.18-1.68 6.69-4.13 19.14-1.51 26.11a192.18 192.18 0 00232.75-80.17zm-256.74 46.09c7.07-28.21 22.12-51.73 45.47-70.75a8 8 0 00-2.59-13.77c-12-3.83-25.7-5.88-42.69-5.88-23.82 0-49.11 6.45-68.14 18.17-5.4 3.33-10.7 4.61-14.78 5.75a192.84 192.84 0 0077.78 86.64l1.79-.14a102.82 102.82 0 013.16-20.02z\"}}]})(props);\n};\nexport function IoPeopleCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm69.3 96.17a72.5 72.5 0 11-72.6 72.5 72.55 72.55 0 0172.6-72.5zm-155.1 26.36a59.32 59.32 0 11-59.4 59.32 59.35 59.35 0 0159.4-59.32zm-75.85 155c24.5-13.29 55.87-19.94 75.85-19.94 15 0 34.32 3 53.33 10.2a133.05 133.05 0 00-34 27.11c-13.19 15-20.76 32.92-20.76 50.83v15a177.06 177.06 0 01-74.42-83.15zM256 432a175.12 175.12 0 01-59.4-10.33v-27.05c0-52.59 85.75-79.09 128.7-79.09 23 0 58.38 7.63 86.21 22.81A176.14 176.14 0 01256 432z\"}}]})(props);\n};\nexport function IoPeopleCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm-3.68 152.11c.21-1.2.44-2.4.71-3.59a66.46 66.46 0 0116.29-31.21c12.89-13.73 31.16-21.31 51.45-21.31a74.05 74.05 0 0125.06 4.26 66.69 66.69 0 0126.27 17.2 68.15 68.15 0 0118 42.14 78.46 78.46 0 010 11.4 86.19 86.19 0 01-8.2 31q-.76 1.59-1.59 3.15c-1.11 2.07-2.3 4.1-3.58 6.06a79.47 79.47 0 01-8.63 11c-13.12 14-29.92 21.73-47.31 21.73a59.61 59.61 0 01-19.17-3.18 63.47 63.47 0 01-6.1-2.43 70.76 70.76 0 01-22.07-16.12 83.76 83.76 0 01-22-51.32q-.27-3.88-.18-7.68a75.62 75.62 0 011.05-11.08zm-149.73 24.34a59.87 59.87 0 015.2-20.64 56.76 56.76 0 012.78-5.3 54.49 54.49 0 017.19-9.56 55.62 55.62 0 0114-10.82 56.84 56.84 0 018.11-3.64 63.85 63.85 0 0133.35-2.39 57 57 0 0130.78 17 57.86 57.86 0 0115.41 38.62c.05 2.11 0 4.23-.15 6.38a71.58 71.58 0 01-6 23.84 69.49 69.49 0 01-5.73 10.42 65.39 65.39 0 01-15.76 16.57c-1.5 1.07-3.06 2.07-4.67 3.07a54.21 54.21 0 01-10 4.65 49.31 49.31 0 01-16.2 2.76c-.93 0-1.86 0-2.78-.08a47.6 47.6 0 01-5.48-.62 51.19 51.19 0 01-5.35-1.23 53.54 53.54 0 01-7.72-2.89c-.84-.39-1.66-.8-2.48-1.23-18-9.49-31.57-29.16-34.23-52.12-.12-1.05-.22-2.1-.29-3.16a66.59 66.59 0 01.02-9.63zm53.92 178.6a177.27 177.27 0 01-61.94-70.65 4 4 0 011.62-5.26C117.67 316.69 141.4 311 163.82 311c17 0 30.7 2 42.69 5.88a8 8 0 012.59 13.77c-23.35 19-38.4 42.54-45.47 70.75a2.77 2.77 0 01-4.22 1.65zM256 432a175.12 175.12 0 01-65.7-12.72 4 4 0 01-2.4-4.46c.4-2.05.84-3.92 1.23-5.48 7.12-28.43 24.76-52 51-68.18 23.29-14.35 53-22.25 83.52-22.25 31.16 0 60 7.58 83.48 21.91a2.72 2.72 0 01.91 3.67A176.1 176.1 0 01256 432z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M161 295.28a47.6 47.6 0 01-5.48-.62 47.6 47.6 0 005.48.62zm-26.36-117.15a55.62 55.62 0 00-14 10.82 54.49 54.49 0 00-7.19 9.56 54.49 54.49 0 017.19-9.56 55.62 55.62 0 0114-10.82zm81.53 79.76a71.58 71.58 0 006-23.84c.15-2.15.2-4.27.15-6.38q.08 3.15-.15 6.38a71.58 71.58 0 01-6 23.84zm-81.53-79.76a56.84 56.84 0 018.11-3.64 56.84 56.84 0 00-8.11 3.64zm15.57 115.3a53.54 53.54 0 01-7.72-2.89 53.54 53.54 0 007.72 2.89zm-44.43-56.24c2.66 23 16.26 42.63 34.23 52.12-18.01-9.49-31.57-29.16-34.23-52.12zM254.34 219a83.76 83.76 0 0022 51.32 70.76 70.76 0 0022.07 16.12 70.76 70.76 0 01-22.07-16.12 83.76 83.76 0 01-22-51.32q-.27-3.88-.18-7.68-.09 3.75.18 7.68zm50.16 69.82a63.47 63.47 0 01-6.1-2.43 63.47 63.47 0 006.1 2.43zm-48.57-92.28a66.46 66.46 0 0116.29-31.21 66.46 66.46 0 00-16.29 31.21zM375 165.46a68.15 68.15 0 0118 42.14 68.15 68.15 0 00-18-42.14 66.69 66.69 0 00-26.27-17.2 66.69 66.69 0 0126.27 17.2zM393 219a86.19 86.19 0 01-8.2 31 86.19 86.19 0 008.2-31zm-138.84-7.73a75.62 75.62 0 011.06-11.14 75.62 75.62 0 00-1.06 11.14zm129.03 41.89zm-176.31-64.11a57.86 57.86 0 0115.41 38.62 57.86 57.86 0 00-15.41-38.62 57 57 0 00-30.78-17 57 57 0 0130.78 17zM190 288a54.21 54.21 0 01-10 4.65 54.21 54.21 0 0010-4.65zm-84.51-63.55a59.87 59.87 0 015.2-20.64 59.87 59.87 0 00-5.2 20.64zm89.19 60.43C193.17 286 191.61 287 190 288c1.61-1 3.17-2 4.68-3.12zm21.49-26.99a69.49 69.49 0 01-5.73 10.42 69.49 69.49 0 005.73-10.42zm-105.48-54.08a56.76 56.76 0 012.78-5.3 56.76 56.76 0 00-2.78 5.3zm83.99 81.07a65.39 65.39 0 0015.76-16.57 65.39 65.39 0 01-15.76 16.57z\"}}]})(props);\n};\nexport function IoPeopleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154\"}}]})(props);\n};\nexport function IoPeopleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"152\",\"cy\":\"184\",\"r\":\"72\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M234 296c-28.16-14.3-59.24-20-82-20-44.58 0-136 27.34-136 82v42h150v-16.07c0-19 8-38.05 22-53.93 11.17-12.68 26.81-24.45 46-34z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M340 288c-52.07 0-156 32.16-156 96v48h312v-48c0-63.84-103.93-96-156-96z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"340\",\"cy\":\"168\",\"r\":\"88\"}}]})(props);\n};\nexport function IoPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 256c-20.56 0-40.44-9.18-56-25.84-15.13-16.25-24.37-37.92-26-61-1.74-24.62 5.77-47.26 21.14-63.76S312 80 336 80c23.83 0 45.38 9.06 60.7 25.52 15.47 16.62 23 39.22 21.26 63.63-1.67 23.11-10.9 44.77-26 61C376.44 246.82 356.57 256 336 256zm66-88zm65.83 264H204.18a27.71 27.71 0 01-22-10.67 30.22 30.22 0 01-5.26-25.79c8.42-33.81 29.28-61.85 60.32-81.08C264.79 297.4 299.86 288 336 288c36.85 0 71 9 98.71 26.05 31.11 19.13 52 47.33 60.38 81.55a30.27 30.27 0 01-5.32 25.78A27.68 27.68 0 01467.83 432zM147 260c-35.19 0-66.13-32.72-69-72.93-1.42-20.6 5-39.65 18-53.62 12.86-13.83 31-21.45 51-21.45s38 7.66 50.93 21.57c13.1 14.08 19.5 33.09 18 53.52-2.87 40.2-33.8 72.91-68.93 72.91zm65.66 31.45c-17.59-8.6-40.42-12.9-65.65-12.9-29.46 0-58.07 7.68-80.57 21.62-25.51 15.83-42.67 38.88-49.6 66.71a27.39 27.39 0 004.79 23.36A25.32 25.32 0 0041.72 400h111a8 8 0 007.87-6.57c.11-.63.25-1.26.41-1.88 8.48-34.06 28.35-62.84 57.71-83.82a8 8 0 00-.63-13.39c-1.57-.92-3.37-1.89-5.42-2.89z\"}}]})(props);\n};\nexport function IoPersonAddOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M376 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M288 304c-87 0-175.3 48-191.64 138.6-2 10.92 4.21 21.4 15.65 21.4H464c11.44 0 17.62-10.48 15.65-21.4C463.3 352 375 304 288 304z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M88 176v112m56-56H32\"}}]})(props);\n};\nexport function IoPersonAddSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M106 304v-54h54v-36h-54v-54H70v54H16v36h54v54h36z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"288\",\"cy\":\"144\",\"r\":\"112\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M288 288c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z\"}}]})(props);\n};\nexport function IoPersonAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 256c52.79 0 99.43-49.71 104-110.82 2.27-30.7-7.36-59.33-27.12-80.6C345.33 43.57 318 32 288 32c-30.24 0-57.59 11.5-77 32.38-19.63 21.11-29.2 49.8-27 80.78C188.49 206.28 235.12 256 288 256zm207.38 183.76c-8.44-46.82-34.79-86.15-76.19-113.75C382.42 301.5 335.83 288 288 288s-94.42 13.5-131.19 38c-41.4 27.6-67.75 66.93-76.19 113.75-1.93 10.73.69 21.34 7.19 29.11A30.94 30.94 0 00112 480h352a30.94 30.94 0 0024.21-11.13c6.48-7.77 9.1-18.38 7.17-29.11zM104 288v-40h40a16 16 0 000-32h-40v-40a16 16 0 00-32 0v40H32a16 16 0 000 32h40v40a16 16 0 0032 0z\"}}]})(props);\n};\nexport function IoPersonCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm126.42 327.25a4 4 0 01-6.14-.32 124.27 124.27 0 00-32.35-29.59C321.37 329 289.11 320 256 320s-65.37 9-90.83 25.34a124.24 124.24 0 00-32.35 29.58 4 4 0 01-6.14.32A175.32 175.32 0 0180 259c-1.63-97.31 78.22-178.76 175.57-179S432 158.81 432 256a175.32 175.32 0 01-46.68 119.25z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 144c-19.72 0-37.55 7.39-50.22 20.82s-19 32-17.57 51.93C191.11 256 221.52 288 256 288s64.83-32 67.79-71.24c1.48-19.74-4.8-38.14-17.68-51.82C293.39 151.44 275.59 144 256 144z\"}}]})(props);\n};\nexport function IoPersonCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm2 96a72 72 0 11-72 72 72 72 0 0172-72zm-2 288a175.55 175.55 0 01-129.18-56.6C135.66 329.62 215.06 320 256 320s120.34 9.62 129.18 55.39A175.52 175.52 0 01256 432z\"}}]})(props);\n};\nexport function IoPersonCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-50.22 116.82C218.45 151.39 236.28 144 256 144s37.39 7.44 50.11 20.94c12.89 13.68 19.16 32.06 17.68 51.82C320.83 256 290.43 288 256 288s-64.89-32-67.79-71.25c-1.47-19.92 4.79-38.36 17.57-51.93zM256 432a175.49 175.49 0 01-126-53.22 122.91 122.91 0 0135.14-33.44C190.63 329 222.89 320 256 320s65.37 9 90.83 25.34A122.87 122.87 0 01382 378.78 175.45 175.45 0 01256 432z\"}}]})(props);\n};\nexport function IoPersonOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M344 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 304c-87 0-175.3 48-191.64 138.6C62.39 453.52 68.57 464 80 464h352c11.44 0 17.62-10.48 15.65-21.4C431.3 352 343 304 256 304z\"}}]})(props);\n};\nexport function IoPersonRemoveOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M376 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M288 304c-87 0-175.3 48-191.64 138.6-2 10.92 4.21 21.4 15.65 21.4H464c11.44 0 17.62-10.48 15.65-21.4C463.3 352 375 304 288 304z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 232H32\"}}]})(props);\n};\nexport function IoPersonRemoveSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 214h144v36H16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"288\",\"cy\":\"144\",\"r\":\"112\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M288 288c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z\"}}]})(props);\n};\nexport function IoPersonRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 256c52.79 0 99.43-49.71 104-110.82 2.27-30.7-7.36-59.33-27.12-80.6C345.33 43.57 318 32 288 32c-30.24 0-57.59 11.5-77 32.38-19.63 21.11-29.2 49.8-27 80.78C188.49 206.28 235.12 256 288 256zm207.38 183.76c-8.44-46.82-34.79-86.15-76.19-113.75C382.42 301.5 335.83 288 288 288s-94.42 13.5-131.19 38c-41.4 27.6-67.75 66.93-76.19 113.75-1.93 10.73.69 21.34 7.19 29.11A30.94 30.94 0 00112 480h352a30.94 30.94 0 0024.21-11.13c6.48-7.77 9.1-18.38 7.17-29.11zM144 216H32a16 16 0 000 32h112a16 16 0 000-32z\"}}]})(props);\n};\nexport function IoPersonSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 256a112 112 0 10-112-112 112 112 0 00112 112zm0 32c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z\"}}]})(props);\n};\nexport function IoPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M332.64 64.58C313.18 43.57 286 32 256 32c-30.16 0-57.43 11.5-76.8 32.38-19.58 21.11-29.12 49.8-26.88 80.78C156.76 206.28 203.27 256 256 256s99.16-49.71 103.67-110.82c2.27-30.7-7.33-59.33-27.03-80.6zM432 480H80a31 31 0 01-24.2-11.13c-6.5-7.77-9.12-18.38-7.18-29.11C57.06 392.94 83.4 353.61 124.8 326c36.78-24.51 83.37-38 131.2-38s94.42 13.5 131.2 38c41.4 27.6 67.74 66.93 76.18 113.75 1.94 10.73-.68 21.34-7.18 29.11A31 31 0 01432 480z\"}}]})(props);\n};\nexport function IoPhoneLandscapeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"256\",\"height\":\"480\",\"x\":\"128\",\"y\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\",\"transform\":\"rotate(-90 256 256)\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M16 336v-24a8 8 0 018-8h0a16 16 0 0016-16v-64a16 16 0 00-16-16h0a8 8 0 01-8-8v-24\"}}]})(props);\n};\nexport function IoPhoneLandscapeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 130v252a18 18 0 0018 18h476a18 18 0 0018-18V130a18 18 0 00-18-18H18a18 18 0 00-18 18zm448 234H64V148h384z\"}}]})(props);\n};\nexport function IoPhoneLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 176v160a64 64 0 0064 64h384a64 64 0 0064-64V176a64 64 0 00-64-64H64a64 64 0 00-64 64zm448-32a32 32 0 0132 32v160a32 32 0 01-32 32H64a32 32 0 01-32-32v-11.35a7.94 7.94 0 014.75-7.3A32 32 0 0056 288v-64a32 32 0 00-19.25-29.35 7.94 7.94 0 01-4.75-7.3V176a32 32 0 0132-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M48 176a11.88 11.88 0 004.69 9.53A48 48 0 0172 224v64a48 48 0 01-19.31 38.47A11.88 11.88 0 0048 336a16 16 0 0016 16h384a16 16 0 0016-16V176a16 16 0 00-16-16H64a16 16 0 00-16 16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 176v160a64 64 0 0064 64h384a64 64 0 0064-64V176a64 64 0 00-64-64H64a64 64 0 00-64 64zm448-32a32 32 0 0132 32v160a32 32 0 01-32 32H64a32 32 0 01-32-32v-11.35a7.94 7.94 0 014.75-7.3A32 32 0 0056 288v-64a32 32 0 00-19.25-29.35 7.94 7.94 0 01-4.75-7.3V176a32 32 0 0132-32z\"}}]})(props);\n};\nexport function IoPhonePortraitOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"256\",\"height\":\"480\",\"x\":\"128\",\"y\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 16h24a8 8 0 018 8h0a16 16 0 0016 16h64a16 16 0 0016-16h0a8 8 0 018-8h24\"}}]})(props);\n};\nexport function IoPhonePortraitSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382 0H130a18 18 0 00-18 18v476a18 18 0 0018 18h252a18 18 0 0018-18V18a18 18 0 00-18-18zM148 448V64h216v384z\"}}]})(props);\n};\nexport function IoPhonePortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H176a64 64 0 00-64 64v384a64 64 0 0064 64h160a64 64 0 0064-64V64a64 64 0 00-64-64zm32 448a32 32 0 01-32 32H176a32 32 0 01-32-32V64a32 32 0 0132-32h11.35a7.94 7.94 0 017.3 4.75A32 32 0 00224 56h64a32 32 0 0029.35-19.25 7.94 7.94 0 017.3-4.75H336a32 32 0 0132 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 48a11.88 11.88 0 00-9.53 4.69A48 48 0 01288 72h-64a48 48 0 01-38.47-19.31A11.88 11.88 0 00176 48a16 16 0 00-16 16v384a16 16 0 0016 16h160a16 16 0 0016-16V64a16 16 0 00-16-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H176a64 64 0 00-64 64v384a64 64 0 0064 64h160a64 64 0 0064-64V64a64 64 0 00-64-64zm32 448a32 32 0 01-32 32H176a32 32 0 01-32-32V64a32 32 0 0132-32h11.35a7.94 7.94 0 017.3 4.75A32 32 0 00224 56h64a32 32 0 0029.35-19.25 7.94 7.94 0 017.3-4.75H336a32 32 0 0132 32z\"}}]})(props);\n};\nexport function IoPieChartOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256.05 80.65Q263.94 80 272 80c106 0 192 86 192 192s-86 192-192 192A192.09 192.09 0 0189.12 330.65\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 48C141.12 48 48 141.12 48 256a207.29 207.29 0 0018.09 85L256 256z\"}}]})(props);\n};\nexport function IoPieChartSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58 362.09l-6.51-14.59A224 224 0 01256 32h16v234.37z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304 66.46v220.65L94.62 380.78A208.31 208.31 0 00272 480c114.69 0 208-93.31 208-208 0-103.81-76.45-190.1-176-205.54z\"}}]})(props);\n};\nexport function IoPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M66.1 357a16 16 0 01-14.61-9.46A224 224 0 01256 32a16 16 0 0116 16v208a16 16 0 01-9.47 14.61l-189.9 84.95A15.93 15.93 0 0166.1 357z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M313.59 68.18A8 8 0 00304 76v180a48.07 48.07 0 01-28.4 43.82L103.13 377a8 8 0 00-3.35 11.81 208.42 208.42 0 0048.46 50.41A206.32 206.32 0 00272 480c114.69 0 208-93.31 208-208 0-100.45-71.58-184.5-166.41-203.82z\"}}]})(props);\n};\nexport function IoPinOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"96\",\"r\":\"64\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M272 164a9 9 0 00-9-9h-14a9 9 0 00-9 9v293.56a32.09 32.09 0 002.49 12.38l10.07 24a3.92 3.92 0 006.88 0l10.07-24a32.09 32.09 0 002.49-12.38z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"280\",\"cy\":\"72\",\"r\":\"24\"}}]})(props);\n};\nexport function IoPinSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339 99a83 83 0 10-102 80.8V464l19 32 19-32V179.8A83.28 83.28 0 00339 99zm-59-6a21 21 0 1121-21 21 21 0 01-21 21z\"}}]})(props);\n};\nexport function IoPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 96a80 80 0 10-96 78.39v283.17a32.09 32.09 0 002.49 12.38l10.07 24a3.92 3.92 0 006.88 0l10.07-24a32.09 32.09 0 002.49-12.38V174.39A80.13 80.13 0 00336 96zm-56 0a24 24 0 1124-24 24 24 0 01-24 24z\"}}]})(props);\n};\nexport function IoPintOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M132.43 162c-6.24-34-4.49-45.55-3.07-68.39L132.27 47a16 16 0 0115.94-15h215.57a16 16 0 0115.94 15l2.91 46.61c1.43 22.86 3.19 34.39-3.06 68.45-5.93 32.29-43.71 133.27-43.71 238.32V472a8 8 0 01-8 8H184.12a8 8 0 01-8-8v-71.63c.01-92.47-37.46-204.3-43.69-238.37zm2.78-66h241.58\"}}]})(props);\n};\nexport function IoPintSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399 99.29L394 16H118.45L113 99.26c-1.29 19.24-2.23 33.14 3.73 65.66 1.67 9.11 5.22 22.66 9.73 39.82 12.61 48 33.71 128.36 33.71 195.63V496h191.68v-95.62c0-77.09 21.31-153.29 34-198.81 4.38-15.63 7.83-28 9.41-36.62 6.01-32.51 5.07-46.42 3.74-65.66zM146.23 80l2-32h215.52l2 32z\"}}]})(props);\n};\nexport function IoPint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399 99.29c-.15-2.13-.3-4.35-.44-6.68L395.69 46a32 32 0 00-31.91-30H148.21a32 32 0 00-31.91 30l-2.91 46.63c-.14 2.31-.29 4.51-.43 6.62-1.29 19.24-2.23 33.14 3.73 65.66 1.67 9.11 5.22 22.66 9.73 39.82 12.61 48 33.71 128.36 33.71 195.63V472a24 24 0 0024 24h143.74a24 24 0 0024-24v-71.62c0-77.09 21.31-153.29 34-198.81 4.38-15.63 7.83-28 9.41-36.62 5.99-32.51 5.05-46.42 3.72-65.66zm-35-47.54l1.5 24a4 4 0 01-4 4.25h-211a4 4 0 01-4-4.25l1.48-24A4 4 0 01152 48h208a4 4 0 014 3.75z\"}}]})(props);\n};\nexport function IoPizzaOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M404.76 123.08C358.37 104.18 309.69 96 256 96s-106.1 9-148.9 26.68c-8.08 3.3-15.26 9-10.07 19.5C101.24 150.71 203 375 241.66 455a15.94 15.94 0 0028.72 0l144.05-312.22c3.19-6.9.9-15.4-9.67-19.7z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M436.38 82.68C384.31 62.08 320.17 48 256 48S128.65 60.78 75.48 82.08C70.79 84 62 88.43 64.41 95.88L74.09 120c4 8.2 8.67 8.2 15.06 8.2 1.79 0 4.29-1 7.28-2.18A442.46 442.46 0 01256 96c56.76 0 114.91 12 159.6 30 3.59 1.4 5.59 2.18 7.28 2.18 6.58 0 10.38 2.19 15-8.1L447.65 96c2.01-6-4.99-10.82-11.27-13.32z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"192\",\"cy\":\"192\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"320\",\"cy\":\"208\",\"r\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"320\",\"r\":\"32\"}}]})(props);\n};\nexport function IoPizzaSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M442.3 67.82C383.92 44.72 317.78 32 256 32c-63.57 0-129.8 12.51-186.56 35.25C49.18 75.48 42 80 42 80l22 44 37.53-16.14C147.58 89.53 199.19 80 256.51 80c57.49 0 108.09 9.23 154.75 28.25L448 124l22-44s-7-4-27.7-12.18z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"320.48\",\"cy\":\"207.99\",\"fill\":\"none\",\"rx\":\"31.97\",\"ry\":\"32.03\",\"transform\":\"rotate(-44.98 320.503 207.996)\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"192.48\",\"cy\":\"191.99\",\"fill\":\"none\",\"rx\":\"31.97\",\"ry\":\"32.03\",\"transform\":\"rotate(-44.98 192.49 191.992)\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256.48\",\"cy\":\"319.99\",\"fill\":\"none\",\"rx\":\"31.97\",\"ry\":\"32.03\",\"transform\":\"rotate(-44.98 256.505 320)\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M409.66 140.85C364.15 122.52 308.16 112 256 112a425 425 0 00-153.7 28.9c-.25.1-9.24 4.23-19 8.71 7.46 16.22 18 39.16 22.2 48.33L256 480l173.74-330.84-19.92-8.24zm-185.25 53.22a32 32 0 11-34-34 32.12 32.12 0 0134 34zm64 128a32 32 0 11-34-34 32.12 32.12 0 0134 34zm64-112a32 32 0 11-34-34 32.12 32.12 0 0134 34z\"}}]})(props);\n};\nexport function IoPizza (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441.82 67.83C383.44 44.73 317.3 32 255.56 32 192 32 125.76 44.53 69 67.26 48.7 75.49 45.21 90 48.71 100.82L52.78 111a16 16 0 0021.31 8.69c10.8-4.76 23.93-10.54 27-11.78C145.1 89.64 198.71 80 256 80c57.47 0 108.09 9.24 154.76 28.25 4.42 1.8 14.88 6.42 26.17 11.46a16 16 0 0021.35-8.59L462 102l.34-.9c3.45-10.21.14-25.05-20.52-33.27z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M409.18 140.86C363.67 122.53 307.68 112 255.56 112a425 425 0 00-153.74 28.89c-.53.21-2.06.88-4.29 1.88a16 16 0 00-8 21.27c4 8.71 9.42 20.58 15.5 33.89C137.94 270 199.21 404 227.26 462A31.74 31.74 0 00256 480a31.73 31.73 0 0028.76-18.06l.06-.13 137.3-297.57a15.94 15.94 0 00-8.31-21.45c-2.26-.95-3.85-1.61-4.5-1.87zm-215.1 83.07a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64 128a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64-112a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85z\"}}]})(props);\n};\nexport function IoPlanetOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M413.48 284.46c58.87 47.24 91.61 89 80.31 108.55-17.85 30.85-138.78-5.48-270.1-81.15S.37 149.84 18.21 119c11.16-19.28 62.58-12.32 131.64 14.09\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"160\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoPlanetSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M81 274.71C90.36 363 165.26 432 256 432a174.91 174.91 0 0071.49-15.19c-40.3-16.53-84.05-38.17-127.77-63.36C157 328.86 115.84 301.5 81 274.71zm411.72 64.8c-8.5-11.31-20-23.8-34-37a205.25 205.25 0 01-11 34c28.72 29.5 33.2 45.34 32.17 48.45-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0019.54-27.25c.17-.29.35-.58.52-.88A175.39 175.39 0 00432 256a178.87 178.87 0 00-1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 00-106.4 35.89 177.4 177.4 0 00-45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 00-13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2.16-2.43 18.1-6.54 58.13 3.55a209.88 209.88 0 0124-26.56c-18.86-5.61-35.79-9.35-50.05-11C33.41 89.47 13.3 95.52 4.35 111c-3.24 5.58-6.35 15.09-2.72 28.6C7 159.66 26.14 184 53.23 209.5c8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12T137.1 276c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16t28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12H464c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z\"}}]})(props);\n};\nexport function IoPlanet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96.85 286.62a8 8 0 00-12.53 8.25C102.07 373.28 172.3 432 256 432a175.31 175.31 0 0052.41-8 8 8 0 00.79-15 1120 1120 0 01-109.48-55.61 1126.24 1126.24 0 01-102.87-66.77zm395.87 52.89c-4.19-5.58-9.11-11.44-14.7-17.53a15.83 15.83 0 00-26.56 5.13c0 .16-.11.31-.17.47a15.75 15.75 0 003.15 16.06c22.74 25 26.42 38.51 25.48 41.36-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0019.54-27.25c.17-.29.35-.58.52-.88A175.39 175.39 0 00432 256a178.87 178.87 0 00-1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 00-106.4 35.89 177.4 177.4 0 00-45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 00-13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2-2.23 15.54-5.87 48.62 1.31A15.82 15.82 0 0096.22 123l.36-.44a15.74 15.74 0 00-8.67-25.43A237.38 237.38 0 0064.13 93c-30.72-3.53-50.83 2.52-59.78 18-3.24 5.58-6.35 15.09-2.72 28.6C7 159.66 26.14 184 53.23 209.5c8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12T137.1 276c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16t28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12H464c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z\"}}]})(props);\n};\nexport function IoPlayBackCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M117.23 246.7l114.45-69.14a10.78 10.78 0 0116.32 9.31v53.32l103.68-62.63a10.78 10.78 0 0116.32 9.31v138.26a10.78 10.78 0 01-16.32 9.31L248 271.81v53.32a10.78 10.78 0 01-16.32 9.31L117.23 265.3a10.89 10.89 0 010-18.6z\"}}]})(props);\n};\nexport function IoPlayBackCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm63.47 0L248 168v72.16l120-72.48v176.45l-120-72.32v71.44z\"}}]})(props);\n};\nexport function IoPlayBackCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm69.23-9.3l114.45-69.14a10.78 10.78 0 0116.32 9.31v53.32l103.68-62.63a10.78 10.78 0 0116.32 9.31v138.26a10.78 10.78 0 01-16.32 9.31L248 271.81v53.32a10.78 10.78 0 01-16.32 9.31L117.23 265.3a10.89 10.89 0 010-18.6z\"}}]})(props);\n};\nexport function IoPlayBackOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M480 145.52v221c0 13.28-13 21.72-23.63 15.35L267.5 268.8c-9.24-5.53-9.24-20.07 0-25.6l188.87-113C467 123.8 480 132.24 480 145.52zm-228.57 0v221c0 13.28-13 21.72-23.63 15.35L38.93 268.8c-9.24-5.53-9.24-20.07 0-25.6l188.87-113c10.64-6.4 23.63 2.04 23.63 15.32z\"}}]})(props);\n};\nexport function IoPlayBackSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 400L256 256l240-144v288zm-240 0L16 256l240-144v288z\"}}]})(props);\n};\nexport function IoPlayBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M30.71 229.47l188.87-113a30.54 30.54 0 0131.09-.39 33.74 33.74 0 0116.76 29.47v79.05l180.72-108.16a30.54 30.54 0 0131.09-.39A33.74 33.74 0 01496 145.52v221A33.73 33.73 0 01479.24 396a30.54 30.54 0 01-31.09-.39L267.43 287.4v79.08A33.73 33.73 0 01250.67 396a30.54 30.54 0 01-31.09-.39l-188.87-113a31.27 31.27 0 010-53z\"}}]})(props);\n};\nexport function IoPlayCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M216.32 334.44l114.45-69.14a10.89 10.89 0 000-18.6l-114.45-69.14a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31z\"}}]})(props);\n};\nexport function IoPlayCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-56 296V168l144 88z\"}}]})(props);\n};\nexport function IoPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.77 217.3l-114.45 69.14a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31l114.45 69.14a10.89 10.89 0 010 18.6z\"}}]})(props);\n};\nexport function IoPlayForwardCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M394.77 246.7l-114.45-69.14a10.78 10.78 0 00-16.32 9.31v53.32l-103.68-62.63a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31L264 271.81v53.32a10.78 10.78 0 0016.32 9.31l114.45-69.14a10.89 10.89 0 000-18.6z\"}}]})(props);\n};\nexport function IoPlayForwardCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm8 295.25v-71.44l-120 72.32V167.71l120 72.48V168l136.53 88z\"}}]})(props);\n};\nexport function IoPlayForwardCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm138.77 217.3l-114.45 69.14a10.78 10.78 0 01-16.32-9.31v-53.32l-103.68 62.63a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31L264 240.19v-53.32a10.78 10.78 0 0116.32-9.31l114.45 69.14a10.89 10.89 0 010 18.6z\"}}]})(props);\n};\nexport function IoPlayForwardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M32 145.52v221c0 13.28 13 21.72 23.63 15.35l188.87-113c9.24-5.53 9.24-20.07 0-25.6l-188.87-113C45 123.8 32 132.24 32 145.52zm228.57 0v221c0 13.28 13 21.72 23.63 15.35l188.87-113c9.24-5.53 9.24-20.07 0-25.6l-188.87-113c-10.64-6.47-23.63 1.97-23.63 15.25z\"}}]})(props);\n};\nexport function IoPlayForwardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 400l240-144L16 112v288zm240 0l240-144-240-144v288z\"}}]})(props);\n};\nexport function IoPlayForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.29 229.47l-188.87-113a30.54 30.54 0 00-31.09-.39 33.74 33.74 0 00-16.76 29.47v79.05L63.85 116.44a30.54 30.54 0 00-31.09-.39A33.74 33.74 0 0016 145.52v221A33.74 33.74 0 0032.76 396a30.54 30.54 0 0031.09-.39L244.57 287.4v79.08A33.74 33.74 0 00261.33 396a30.54 30.54 0 0031.09-.39l188.87-113a31.27 31.27 0 000-53z\"}}]})(props);\n};\nexport function IoPlayOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z\"}}]})(props);\n};\nexport function IoPlaySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 448l320-192L96 64v384z\"}}]})(props);\n};\nexport function IoPlaySkipBackCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M192 176a16 16 0 0116 16v53l111.68-67.46a10.78 10.78 0 0116.32 9.33v138.26a10.78 10.78 0 01-16.32 9.31L208 267v53a16 16 0 01-32 0V192a16 16 0 0116-16z\"}}]})(props);\n};\nexport function IoPlaySkipBackCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm128-80h32v69l128-77.53v176.9L208 267v69h-32z\"}}]})(props);\n};\nexport function IoPlaySkipBackCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm128-64a16 16 0 0132 0v53l111.68-67.46a10.78 10.78 0 0116.32 9.33v138.26a10.78 10.78 0 01-16.32 9.31L208 267v53a16 16 0 01-32 0z\"}}]})(props);\n};\nexport function IoPlaySkipBackOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 111v290c0 17.44-17 28.52-31 20.16L121.09 272.79c-12.12-7.25-12.12-26.33 0-33.58L369 90.84c14-8.36 31 2.72 31 20.16z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M112 80v352\"}}]})(props);\n};\nexport function IoPlaySkipBackSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M143.47 64v163.52L416 64v384L143.47 284.48V448H96V64h47.47z\"}}]})(props);\n};\nexport function IoPlaySkipBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 64a16 16 0 0116 16v136.43L360.77 77.11a35.13 35.13 0 0135.77-.44c12 6.8 19.46 20 19.46 34.33v290c0 14.37-7.46 27.53-19.46 34.33a35.14 35.14 0 01-35.77-.45L128 295.57V432a16 16 0 01-32 0V80a16 16 0 0116-16z\"}}]})(props);\n};\nexport function IoPlaySkipForwardCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 176a16 16 0 00-16 16v53l-111.68-67.44a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31L304 267v53a16 16 0 0032 0V192a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoPlaySkipForwardCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 288h-32v-69l-128 77.37V167.49L304 245v-69h32z\"}}]})(props);\n};\nexport function IoPlaySkipForwardCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 272a16 16 0 01-32 0v-53l-111.68 67.44a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31L304 245v-53a16 16 0 0132 0z\"}}]})(props);\n};\nexport function IoPlaySkipForwardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 80v352\"}}]})(props);\n};\nexport function IoPlaySkipForwardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.53 64v163.52L96 64v384l272.53-163.52V448H416V64h-47.47z\"}}]})(props);\n};\nexport function IoPlaySkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 64a16 16 0 00-16 16v136.43L151.23 77.11a35.13 35.13 0 00-35.77-.44C103.46 83.47 96 96.63 96 111v290c0 14.37 7.46 27.53 19.46 34.33a35.14 35.14 0 0035.77-.45L384 295.57V432a16 16 0 0032 0V80a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M133 440a35.37 35.37 0 01-17.5-4.67c-12-6.8-19.46-20-19.46-34.33V111c0-14.37 7.46-27.53 19.46-34.33a35.13 35.13 0 0135.77.45l247.85 148.36a36 36 0 010 61l-247.89 148.4A35.5 35.5 0 01133 440z\"}}]})(props);\n};\nexport function IoPodiumOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M32 160v296a8 8 0 008 8h136V160a16 16 0 00-16-16H48a16 16 0 00-16 16zM320 48H192a16 16 0 00-16 16v400h160V64a16 16 0 00-16-16zm144 160H352a16 16 0 00-16 16v240h136a8 8 0 008-8V224a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoPodiumSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 32h192v448H160zm224 160h112v288H384zM16 128h112v352H16z\"}}]})(props);\n};\nexport function IoPodium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 32H192a32 32 0 00-32 32v412a4 4 0 004 4h184a4 4 0 004-4V64a32 32 0 00-32-32zm144 160h-72a8 8 0 00-8 8v272a8 8 0 008 8h80a24 24 0 0024-24V224a32 32 0 00-32-32zM48 128a32 32 0 00-32 32v296a24 24 0 0024 24h80a8 8 0 008-8V136a8 8 0 00-8-8z\"}}]})(props);\n};\nexport function IoPowerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M378 108a191.41 191.41 0 0170 148c0 106-86 192-192 192S64 362 64 256a192 192 0 0169-148m123-44v192\"}}]})(props);\n};\nexport function IoPowerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c-114.69 0-208-93.23-208-207.82a207.44 207.44 0 0174.76-160.13l16.9-14 28.17 33.72-16.9 14A163.72 163.72 0 0092 256.18c0 90.39 73.57 163.93 164 163.93s164-73.54 164-163.93a163.38 163.38 0 00-59.83-126.36l-17-14 28-33.82 17 14A207.13 207.13 0 01464 256.18C464 370.77 370.69 464 256 464z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M234 48h44v224h-44z\"}}]})(props);\n};\nexport function IoPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c-114.69 0-208-93.47-208-208.35 0-62.45 27.25-121 74.76-160.55a22 22 0 1128.17 33.8C113.48 160.1 92 206.3 92 255.65 92 346.27 165.57 420 256 420s164-73.73 164-164.35A164 164 0 00360.17 129a22 22 0 1128-33.92A207.88 207.88 0 01464 255.65C464 370.53 370.69 464 256 464z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 272a22 22 0 01-22-22V70a22 22 0 0144 0v180a22 22 0 01-22 22z\"}}]})(props);\n};\nexport function IoPricetagOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M435.25 48h-122.9a14.46 14.46 0 00-10.2 4.2L56.45 297.9a28.85 28.85 0 000 40.7l117 117a28.85 28.85 0 0040.7 0L459.75 210a14.46 14.46 0 004.2-10.2v-123a28.66 28.66 0 00-28.7-28.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 160a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoPricetagSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 32L16 320l176 176 288-288V32zm80 128a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoPricetag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M467 45.2A44.45 44.45 0 00435.29 32H312.36a30.63 30.63 0 00-21.52 8.89L45.09 286.59a44.82 44.82 0 000 63.32l117 117a44.83 44.83 0 0063.34 0l245.65-245.6A30.6 30.6 0 00480 199.8v-123a44.24 44.24 0 00-13-31.6zM384 160a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoPricetagsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M403.29 32H280.36a14.46 14.46 0 00-10.2 4.2L24.4 281.9a28.85 28.85 0 000 40.7l117 117a28.86 28.86 0 0040.71 0L427.8 194a14.46 14.46 0 004.2-10.2v-123A28.66 28.66 0 00403.29 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 144a32 32 0 1132-32 32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M230 480l262-262a13.81 13.81 0 004-10V80\"}}]})(props);\n};\nexport function IoPricetagsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 16L0 304l176 176 288-288V16zm80 128a32 32 0 1132-32 32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 64v144L216.9 471.1 242 496l270-272V64h-32z\"}}]})(props);\n};\nexport function IoPricetags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 183.8v-123A44.66 44.66 0 00403.29 16H280.36a30.62 30.62 0 00-21.51 8.89L13.09 270.58a44.86 44.86 0 000 63.34l117 117a44.84 44.84 0 0063.33 0l245.69-245.61A30.6 30.6 0 00448 183.8zM352 144a32 32 0 1132-32 32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M496 64a16 16 0 00-16 16v127.37L218.69 468.69a16 16 0 1022.62 22.62l262-262A29.84 29.84 0 00512 208V80a16 16 0 00-16-16z\"}}]})(props);\n};\nexport function IoPrintOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 368h24a40.12 40.12 0 0040-40V168a40.12 40.12 0 00-40-40H104a40.12 40.12 0 00-40 40v160a40.12 40.12 0 0040 40h24\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"256\",\"height\":\"208\",\"x\":\"128\",\"y\":\"240\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"24.32\",\"ry\":\"24.32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M384 128v-24a40.12 40.12 0 00-40-40H168a40.12 40.12 0 00-40 40v24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"392\",\"cy\":\"184\",\"r\":\"24\"}}]})(props);\n};\nexport function IoPrintSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96V56a8 8 0 00-8-8H120a8 8 0 00-8 8v40\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"208\",\"height\":\"160\",\"x\":\"152\",\"y\":\"264\",\"fill\":\"none\",\"rx\":\"4\",\"ry\":\"4\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"208\",\"height\":\"160\",\"x\":\"152\",\"y\":\"264\",\"fill\":\"none\",\"rx\":\"4\",\"ry\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M408 112H104a56 56 0 00-56 56v208a8 8 0 008 8h56v72a8 8 0 008 8h272a8 8 0 008-8v-72h56a8 8 0 008-8V168a56 56 0 00-56-56zm-48 308a4 4 0 01-4 4H156a4 4 0 01-4-4V268a4 4 0 014-4h200a4 4 0 014 4zm34-212.08a24 24 0 1122-22 24 24 0 01-22 22z\"}}]})(props);\n};\nexport function IoPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 112H106a58 58 0 00-58 58v158a56 56 0 0056 56h8v39.68A40.32 40.32 0 00152.32 464h207.36A40.32 40.32 0 00400 423.68V384h8a56 56 0 0056-56V168a56 56 0 00-56-56zm-40 311.68a8.35 8.35 0 01-8.32 8.32H152.32a8.35 8.35 0 01-8.32-8.32V264.32a8.35 8.35 0 018.32-8.32h207.36a8.35 8.35 0 018.32 8.32zm26-215.76a24 24 0 1122-22 24 24 0 01-22 22zM344 48H168a56.09 56.09 0 00-55.42 48h286.84A56.09 56.09 0 00344 48z\"}}]})(props);\n};\nexport function IoPrismOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M229.73 45.88L37.53 327.79a31.79 31.79 0 0011.31 46L241 476.26a31.77 31.77 0 0029.92 0l192.2-102.51a31.79 31.79 0 0011.31-46L282.27 45.88a31.8 31.8 0 00-52.54 0zM256 32v448\"}}]})(props);\n};\nexport function IoPrismSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 16L16 352l240 144 240-144zm-20 96.82v324.53L73.73 340z\"}}]})(props);\n};\nexport function IoPrism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.83 319.44L295.63 36.88a48 48 0 00-79.26 0L24.17 319.44a47.1 47.1 0 0016.93 68.13l192.2 102.75a48.05 48.05 0 0045.4 0l192.2-102.75a47.1 47.1 0 0016.93-68.13zm-431.26 41a16.12 16.12 0 01-8-10.38 16.8 16.8 0 012.37-13.62L232.66 69.26c2.18-3.21 7.34-1.72 7.34 2.13v374c0 5.9-6.54 9.63-11.87 6.78z\"}}]})(props);\n};\nexport function IoPulseOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 320h64l64-256 64 384 64-224 32 96h64\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"432\",\"cy\":\"320\",\"r\":\"32\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoPulseSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426 266a54.07 54.07 0 00-49.3 32h-24.84l-27-81a22 22 0 00-42 .92l-37.2 130.2-48-281.74a22 22 0 00-43-1.72L94.82 298H32v44h80a22 22 0 0021.34-16.66L171.69 172l46.61 273.62A22 22 0 00238.76 464H240a22 22 0 0021.15-16l44.47-149.62 9.51 28.62A22 22 0 00336 342h40.7a54 54 0 1049.3-76z\"}}]})(props);\n};\nexport function IoPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 272a48.09 48.09 0 00-45.25 32h-39.22l-28.35-85.06a16 16 0 00-30.56.66l-44.51 155.76-52.33-314a16 16 0 00-31.3-1.25L99.51 304H48a16 16 0 000 32h64a16 16 0 0015.52-12.12l45.34-181.37 51.36 308.12A16 16 0 00239.1 464h.91a16 16 0 0015.37-11.6l49.8-174.28 15.64 46.94A16 16 0 00336 336h50.75A48 48 0 10432 272z\"}}]})(props);\n};\nexport function IoPushOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 336h40a40 40 0 0040-40V88a40 40 0 00-40-40H136a40 40 0 00-40 40v208a40 40 0 0040 40h40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 240l80-80 80 80m-80 224V176\"}}]})(props);\n};\nexport function IoPushSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 352V204.63l64 64L358.63 246 256 143.37 153.37 246 176 268.63l64-64V352H92a12 12 0 01-12-12V44a12 12 0 0112-12h328a12 12 0 0112 12v296a12 12 0 01-12 12zm-32 0h32v128h-32z\"}}]})(props);\n};\nexport function IoPush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 352H272V198.63l52.69 52.68a16 16 0 0022.62-22.62l-80-80a16 16 0 00-22.62 0l-80 80a16 16 0 0022.62 22.62L240 198.63V352H136a56.06 56.06 0 01-56-56V88a56.06 56.06 0 0156-56h240a56.06 56.06 0 0156 56v208a56.06 56.06 0 01-56 56zM272 464a16 16 0 01-32 0V352h32z\"}}]})(props);\n};\nexport function IoQrCodeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"336\",\"y\":\"336\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"64\",\"x\":\"272\",\"y\":\"272\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"64\",\"x\":\"416\",\"y\":\"416\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"48\",\"x\":\"432\",\"y\":\"272\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"48\",\"x\":\"272\",\"y\":\"432\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"336\",\"y\":\"96\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"176\",\"x\":\"288\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"96\",\"y\":\"96\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"176\",\"x\":\"48\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"96\",\"y\":\"336\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"176\",\"height\":\"176\",\"x\":\"48\",\"y\":\"288\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}}]})(props);\n};\nexport function IoQrCodeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 336h80v80h-80zm-64-64h64v64h-64zm144 144h64v64h-64zm16-144h48v48h-48zM272 432h48v48h-48zm64-336h80v80h-80z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 240H272V32h208zm-164-44h120V76H316zM96 96h80v80H96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M240 240H32V32h208zM76 196h120V76H76zm20 140h80v80H96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M240 480H32V272h208zM76 436h120V316H76z\"}}]})(props);\n};\nexport function IoQrCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"80\",\"height\":\"80\",\"x\":\"336\",\"y\":\"336\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"64\",\"x\":\"272\",\"y\":\"272\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"64\",\"height\":\"64\",\"x\":\"416\",\"y\":\"416\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"48\",\"x\":\"432\",\"y\":\"272\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"48\",\"x\":\"272\",\"y\":\"432\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32H304a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V64a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8zM208 32H64a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V64a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8zm32 104H64a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V304a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8z\"}}]})(props);\n};\nexport function IoRadioButtonOffOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoRadioButtonOffSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoRadioButtonOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}}]})(props);\n};\nexport function IoRadioButtonOnOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"144\"}}]})(props);\n};\nexport function IoRadioButtonOnSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"144\"}}]})(props);\n};\nexport function IoRadioButtonOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"144\"}}]})(props);\n};\nexport function IoRadioOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256.02\",\"r\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M184.25 192.25a96 96 0 000 127.52m143.52 0a96 96 0 000-127.52m-194.49-50.97a168 168 0 000 229.44m245.44 0a168 168 0 000-229.44M435 416a240.34 240.34 0 000-320M77 96a240.34 240.34 0 000 320\"}}]})(props);\n};\nexport function IoRadioSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"rx\":\"36\",\"ry\":\"35.99\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M188.4 350.8l-14.62-16.44a117.91 117.91 0 010-156.71l14.62-16.43 32.87 29.24-14.62 16.43a73.93 73.93 0 000 98.25l14.62 16.44zm135.2 0l-32.89-29.22 14.62-16.44a73.93 73.93 0 000-98.25l-14.62-16.43 32.87-29.24 14.62 16.43a117.91 117.91 0 010 156.71z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M138.24 401.76l-15-16.06a189.85 189.85 0 010-259.4l15-16.07 32.14 30.05-15 16.06a145.88 145.88 0 000 199.32l15 16.06zm235.52 0l-32.14-30 15-16.06a145.88 145.88 0 000-199.32l-15-16.06 32.14-30 15 16.07a189.85 189.85 0 010 259.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M430.73 447l-32.79-29.33 14.66-16.39a218.2 218.2 0 000-290.56l-14.67-16.38L430.72 65l14.67 16.39a262.18 262.18 0 010 349.22zm-349.46 0L66.6 430.61a262.18 262.18 0 010-349.22L81.28 65l32.79 29.34-14.68 16.38a218.2 218.2 0 000 290.56l14.66 16.39z\"}}]})(props);\n};\nexport function IoRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"36\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M190.24 341.77a22 22 0 01-16.46-7.38 118 118 0 010-156.76 22 22 0 1132.87 29.24 74 74 0 000 98.29 22 22 0 01-16.43 36.61zm131.52 0a22 22 0 01-16.43-36.61 74 74 0 000-98.29 22 22 0 1132.87-29.24 118 118 0 010 156.76 22 22 0 01-16.44 7.38z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M139.29 392.72a21.92 21.92 0 01-16.08-7 190 190 0 010-259.49 22 22 0 1132.13 30.06 146 146 0 000 199.38 22 22 0 01-16.06 37zm233.42 0a22 22 0 01-16.06-37 146 146 0 000-199.38 22 22 0 1132.13-30.06 190 190 0 010 259.49 21.92 21.92 0 01-16.07 6.95z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M429 438a22 22 0 01-16.39-36.67 218.34 218.34 0 000-290.66 22 22 0 0132.78-29.34 262.34 262.34 0 010 349.34A22 22 0 01429 438zm-346 0a21.94 21.94 0 01-16.41-7.33 262.34 262.34 0 010-349.34 22 22 0 0132.78 29.34 218.34 218.34 0 000 290.66A22 22 0 0183 438z\"}}]})(props);\n};\nexport function IoRainyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M114.61 162.85A16.07 16.07 0 00128 149.6C140.09 76.17 193.63 32 256 32c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H130c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 384l-32 48m112-48l-64 96m144-96l-32 48m112-48l-64 96\"}}]})(props);\n};\nexport function IoRainySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M364 336H130c-29.5 0-54.92-7.83-73.53-22.64C35.23 296.44 24 271.35 24 240.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01256 16c30.23 0 58.48 9.39 81.71 27.17a142.69 142.69 0 0145.36 60.66c29.41 4.82 54.72 17.11 73.19 35.54C477 160.11 488 187.71 488 219.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zM93.82 430.422l49.75-74.626 26.626 17.75-49.751 74.627zm47.996 48.007L223.568 355.8l26.625 17.75-81.751 122.628zm111.995-48.005l49.751-74.626 26.626 17.75-49.751 74.627zm47.997 48.006l81.752-122.627 26.625 17.75-81.751 122.628z\"}}]})(props);\n};\nexport function IoRainy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456.26 139.37c-16.77-16.73-39.17-28.41-65.17-34a16 16 0 01-11.19-9 142.24 142.24 0 00-42.19-53.21C314.48 25.39 286.23 16 256 16a140.24 140.24 0 00-93.5 35.32c-24.2 21.56-40.91 51.34-48.43 85.83a16.05 16.05 0 01-11.72 12.18c-25 6.3-35.71 12.54-49.21 24.56C34 190.93 24 214.14 24 240.8c0 30.55 11.23 55.64 32.47 72.56C75.08 328.17 100.5 336 130 336h234c33.2 0 64.11-11.46 87-32.28 23.84-21.65 37-51.67 37-84.52 0-31.49-11-59.09-31.74-79.83zM112 448a16 16 0 01-13.3-24.88l32-48a16 16 0 0126.62 17.76l-32 48A16 16 0 01112 448zm48 48a16 16 0 01-13.29-24.88l64-96a16 16 0 0126.62 17.76l-64 96A16 16 0 01160 496zm112-48a16 16 0 01-13.3-24.88l32-48a16 16 0 0126.62 17.76l-32 48A16 16 0 01272 448zm48 48a16 16 0 01-13.3-24.88l64-96a16 16 0 0126.62 17.76l-64 96A16 16 0 01320 496z\"}}]})(props);\n};\nexport function IoReaderOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"320\",\"height\":\"416\",\"x\":\"96\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 128h160m-160 80h160m-160 80h80\"}}]})(props);\n};\nexport function IoReaderSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 44v424a12 12 0 0012 12h328a12 12 0 0012-12V44a12 12 0 00-12-12H92a12 12 0 00-12 12zm192 260H160v-32h112zm80-80H160v-32h192zm0-80H160v-32h192z\"}}]})(props);\n};\nexport function IoReader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32H144a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64zM256 304h-80a16 16 0 010-32h80a16 16 0 010 32zm80-80H176a16 16 0 010-32h160a16 16 0 010 32zm0-80H176a16 16 0 010-32h160a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoReceiptOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 336V48l32 16 32-16 31.94 16 32.37-16L320 64l31.79-16 31.93 16L416 48l32.01 16L480 48v224\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M480 272v112a80 80 0 01-80 80h0a80 80 0 01-80-80v-48H48a15.86 15.86 0 00-16 16c0 64 6.74 112 80 112h288\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M224 144h192m-128 80h128\"}}]})(props);\n};\nexport function IoReceiptSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 48l-32-16-32 16-32-16-32 16-32-16-32 16-32-16-32 16-48-16v256.05h224V424c0 30.93 33.07 56 64 56h12c30.93 0 52-25.07 52-56V32zM272.5 240l-.5-32h159.5l.5 32zm-64-80l-.5-32h223.5l.5 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 424V320H16v32c0 50.55 5.78 71.62 14.46 87.63C45.19 466.8 71.86 480 112 480h256s-32-20-32-56z\"}}]})(props);\n};\nexport function IoReceipt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.82 32.45a16.28 16.28 0 00-11.23 1.37L448 46.1l-24.8-12.4a16 16 0 00-14.31 0l-25.11 12.41L359 33.7a16 16 0 00-14.36 0L320 46.07l-24.45-12.34a16 16 0 00-14.35-.06L256 46.12l-24.8-12.43a16.05 16.05 0 00-14.33 0L192 46.1l-24.84-12.41a16 16 0 00-19.36 3.94 16.25 16.25 0 00-3.8 10.65V288l.05.05H336a32 32 0 0132 32V424c0 30.93 33.07 56 64 56h12a52 52 0 0052-52V48a16 16 0 00-12.18-15.55zM416 240H288.5c-8.64 0-16.1-6.64-16.48-15.28A16 16 0 01288 208h127.5c8.64 0 16.1 6.64 16.48 15.28A16 16 0 01416 240zm0-80H224.5c-8.64 0-16.1-6.64-16.48-15.28A16 16 0 01224 128h191.5c8.64 0 16.1 6.64 16.48 15.28A16 16 0 01416 160z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 424v-88a16 16 0 00-16-16H48a32.1 32.1 0 00-32 32.05c0 50.55 5.78 71.57 14.46 87.57C45.19 466.79 71.86 480 112 480h245.68a4 4 0 002.85-6.81C351.07 463.7 336 451 336 424z\"}}]})(props);\n};\nexport function IoRecordingOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"256\",\"r\":\"96\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"256\",\"r\":\"96\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 352h256\"}}]})(props);\n};\nexport function IoRecordingSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 138a117.93 117.93 0 00-91.84 192h-72.32A118 118 0 10128 374h256a118 118 0 000-236zM54 256a74 74 0 1174 74 74.09 74.09 0 01-74-74zm330 74a74 74 0 1174-74 74.09 74.09 0 01-74 74z\"}}]})(props);\n};\nexport function IoRecording (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.79 144.05c-59.1 1.65-107.12 49.71-108.79 108.81a111.64 111.64 0 0030.36 79.77A2 2 0 01301 336h-90a2 2 0 01-1.44-3.37A111.64 111.64 0 00240 252.86c-1.63-59.1-49.65-107.16-108.75-108.81A112.12 112.12 0 0016 255.53C15.75 317.77 67 368 129.24 368h253.52C445 368 496.25 317.77 496 255.53a112.12 112.12 0 00-115.21-111.48z\"}}]})(props);\n};\nexport function IoRefreshCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"28\",\"d\":\"M288 193s12.18-6-32-6a80 80 0 1080 80\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"28\",\"d\":\"M256 149l40 40-40 40\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\"}}]})(props);\n};\nexport function IoRefreshCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.32 48 256c0 114.86 93.14 208 208 208 114.69 0 208-93.31 208-208 0-114.87-93.13-208-208-208zm94 219a94 94 0 11-94-94h4.21l-24-24L256 129.2l59.8 59.8-59.8 59.8-19.8-19.8 27.92-27.92c-2.4-.08-5.12-.08-8.12-.08a66 66 0 1066 66v-14h28z\"}}]})(props);\n};\nexport function IoRefreshCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.32 48 256c0 114.86 93.14 208 208 208 114.69 0 208-93.31 208-208 0-114.87-93.13-208-208-208zm0 313a94 94 0 010-188h4.21l-14.11-14.1a14 14 0 0119.8-19.8l40 40a14 14 0 010 19.8l-40 40a14 14 0 01-19.8-19.8l18-18c-2.38-.1-5.1-.1-8.1-.1a66 66 0 1066 66 14 14 0 0128 0 94.11 94.11 0 01-94 94z\"}}]})(props);\n};\nexport function IoRefreshOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M320 146s24.36-12-64-12a160 160 0 10160 160\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 58l80 80-80 80\"}}]})(props);\n};\nexport function IoRefreshSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M320 146s24.36-12-64-12a160 160 0 10160 160\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 58l80 80-80 80\"}}]})(props);\n};\nexport function IoRefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M320 146s24.36-12-64-12a160 160 0 10160 160\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 58l80 80-80 80\"}}]})(props);\n};\nexport function IoReloadCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M341.54 197.85l-11.37-13.23a103.37 103.37 0 1022.71 105.84\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M367.32 162a8.44 8.44 0 00-6 2.54l-59.54 59.54a8.61 8.61 0 006.09 14.71h59.54a8.62 8.62 0 008.62-8.62v-59.56a8.61 8.61 0 00-8.68-8.63z\"}}]})(props);\n};\nexport function IoReloadCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm120 190.77h-89l36.88-36.88-5.6-6.51a87.38 87.38 0 10-62.94 148 87.55 87.55 0 0082.42-58.25l5.37-15.13 30.17 10.67-5.3 15.13a119.4 119.4 0 11-112.62-159.18 118.34 118.34 0 0186.36 36.95l.56.62 4.31 5L376 149.81z\"}}]})(props);\n};\nexport function IoReloadCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm120 182.15a8.62 8.62 0 01-8.62 8.62h-59.54a8.61 8.61 0 01-6.09-14.71l22.17-22.17-5.6-6.51a87.38 87.38 0 10-62.94 148 87.55 87.55 0 0082.42-58.25A16 16 0 11368 295.8a119.4 119.4 0 11-112.62-159.18 118.34 118.34 0 0186.36 36.95l.56.62 4.31 5 14.68-14.68a8.44 8.44 0 016-2.54 8.61 8.61 0 018.68 8.63z\"}}]})(props);\n};\nexport function IoReloadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z\"}}]})(props);\n};\nexport function IoReloadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 68.45V220a4 4 0 01-4 4H308.45a4 4 0 01-2.83-6.83L457.17 65.62a4 4 0 016.83 2.83z\"}}]})(props);\n};\nexport function IoReload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z\"}}]})(props);\n};\nexport function IoRemoveCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 256H176\"}}]})(props);\n};\nexport function IoRemoveCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm96 224H160v-32h192z\"}}]})(props);\n};\nexport function IoRemoveCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 224H176a16 16 0 010-32h160a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoRemoveOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 256H112\"}}]})(props);\n};\nexport function IoRemoveSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 256H112\"}}]})(props);\n};\nexport function IoRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 256H112\"}}]})(props);\n};\nexport function IoReorderFourOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M96 304h320M96 208h320M96 112h320M96 400h320\"}}]})(props);\n};\nexport function IoReorderFourSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M102 304h308m-308-96h308m-308-96h308M102 400h308\"}}]})(props);\n};\nexport function IoReorderFour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M102 304h308m-308-96h308m-308-96h308M102 400h308\"}}]})(props);\n};\nexport function IoReorderThreeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M96 256h320M96 176h320M96 336h320\"}}]})(props);\n};\nexport function IoReorderThreeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M102 256h308m-308-80h308M102 336h308\"}}]})(props);\n};\nexport function IoReorderThree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M102 256h308m-308-80h308M102 336h308\"}}]})(props);\n};\nexport function IoReorderTwoOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 304h288m-288-96h288\"}}]})(props);\n};\nexport function IoReorderTwoSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M118 304h276m-276-96h276\"}}]})(props);\n};\nexport function IoReorderTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M118 304h276m-276-96h276\"}}]})(props);\n};\nexport function IoRepeatOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 120l48 48-48 48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 168H144a80.24 80.24 0 00-80 80v16m128 128l-48-48 48-48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 344h208a80.24 80.24 0 0080-80v-16\"}}]})(props);\n};\nexport function IoRepeatSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M320 120l48 48-48 48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M352 168H64v96m128 128l-48-48 48-48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M160 344h288v-96\"}}]})(props);\n};\nexport function IoRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 120l48 48-48 48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 168H144a80.24 80.24 0 00-80 80v16m128 128l-48-48 48-48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M160 344h208a80.24 80.24 0 0080-80v-16\"}}]})(props);\n};\nexport function IoResizeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 96h112v112m-10.23-101.8L111.98 400.02M208 416H96V304\"}}]})(props);\n};\nexport function IoResizeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M304 96h112v112m-10.23-101.8L111.98 400.02M208 416H96V304\"}}]})(props);\n};\nexport function IoResize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 96h112v112m-10.23-101.8L111.98 400.02M208 416H96V304\"}}]})(props);\n};\nexport function IoRestaurantOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M57.49 47.74l368.43 368.43a37.28 37.28 0 010 52.72h0a37.29 37.29 0 01-52.72 0l-90-91.55a32 32 0 01-9.2-22.43v-5.53a32 32 0 00-9.52-22.78l-11.62-10.73a32 32 0 00-29.8-7.44h0a48.53 48.53 0 01-46.56-12.63l-85.43-85.44C40.39 159.68 21.74 83.15 57.49 47.74z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 32l-77.25 77.25A64 64 0 00304 154.51v14.86a16 16 0 01-4.69 11.32L288 192m32 32l11.31-11.31a16 16 0 0111.32-4.69h14.86a64 64 0 0045.26-18.75L480 112m-40-40l-80 80M200 368l-99.72 100.28a40 40 0 01-56.56 0h0a40 40 0 010-56.56L128 328\"}}]})(props);\n};\nexport function IoRestaurantSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.7 223.94h14.87a79.48 79.48 0 0056.58-23.44L496 118l-22.22-22.4-83.58 83.58-17.37-17.37 83.58-83.59-23-22.31-83.27 83.26-17.32-17.37 83.58-83.59L394 16l-82.5 81.85a79.49 79.49 0 00-23.44 56.59v14.86l-43.13 43.13L48 16C3.72 70.87 29.87 171.71 79.72 221.57l85.5 85.5c26.55 26.55 31.82 28.92 61.94 16.8 6.49-2.61 8.85-2.32 14.9 3.72l13 12.13c2.93 3 3 3.88 3 9.62v5.54c0 21.08 13.48 33.2 22.36 42.24L384 496l72-72-156.43-156.93z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M227.37 354.59c-29.82 6.11-48.11 11.74-83.08-23.23-.56-.56-1.14-1.1-1.7-1.66l-19.5-19.5L16 416l80 80 144-144z\"}}]})(props);\n};\nexport function IoRestaurant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M357.57 223.94a79.48 79.48 0 0056.58-23.44l77-76.95c6.09-6.09 6.65-16 .85-22.39a16 16 0 00-23.17-.56l-68.63 68.58a12.29 12.29 0 01-17.37 0c-4.79-4.78-4.53-12.86.25-17.64l68.33-68.33a16 16 0 00-.56-23.16A15.62 15.62 0 00440.27 56a16.71 16.71 0 00-11.81 4.9l-68.27 68.26a12.29 12.29 0 01-17.37 0c-4.78-4.78-4.53-12.86.25-17.64l68.33-68.31a16 16 0 00-.56-23.16A15.62 15.62 0 00400.26 16a16.73 16.73 0 00-11.81 4.9L311.5 97.85a79.49 79.49 0 00-23.44 56.59v8.23a16 16 0 01-4.69 11.33l-35.61 35.62a4 4 0 01-5.66 0L68.82 36.33a16 16 0 00-22.58-.06C31.09 51.28 23 72.47 23 97.54c-.1 41.4 21.66 89 56.79 124.08l85.45 85.45A64.79 64.79 0 00211 326a64 64 0 0016.21-2.08 16.24 16.24 0 014.07-.53 15.93 15.93 0 0110.83 4.25l11.39 10.52a16.12 16.12 0 014.6 11.23v5.54a47.73 47.73 0 0013.77 33.65l90.05 91.57.09.1a53.29 53.29 0 0075.36-75.37L302.39 269.9a4 4 0 010-5.66L338 228.63a16 16 0 0111.32-4.69z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M211 358a97.32 97.32 0 01-68.36-28.25l-13.86-13.86a8 8 0 00-11.3 0l-85 84.56c-15.15 15.15-20.56 37.45-13.06 59.29a30.63 30.63 0 001.49 3.6C31 484 50.58 496 72 496a55.68 55.68 0 0039.64-16.44L225 365.66a4.69 4.69 0 001.32-3.72v-.26a4.63 4.63 0 00-5.15-4.27A97.09 97.09 0 01211 358z\"}}]})(props);\n};\nexport function IoReturnDownBackOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 352l-64-64 64-64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 288h294c58.76 0 106-49.33 106-108v-20\"}}]})(props);\n};\nexport function IoReturnDownBackSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M112 352l-64-64 64-64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 288h400V160\"}}]})(props);\n};\nexport function IoReturnDownBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 352l-64-64 64-64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 288h294c58.76 0 106-49.33 106-108v-20\"}}]})(props);\n};\nexport function IoReturnDownForwardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 352l64-64-64-64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 288H154c-58.76 0-106-49.33-106-108v-20\"}}]})(props);\n};\nexport function IoReturnDownForwardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 352l64-64-64-64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 288H48V160\"}}]})(props);\n};\nexport function IoReturnDownForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 352l64-64-64-64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 288H154c-58.76 0-106-49.33-106-108v-20\"}}]})(props);\n};\nexport function IoReturnUpBackOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 160l-64 64 64 64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 224h294c58.76 0 106 49.33 106 108v20\"}}]})(props);\n};\nexport function IoReturnUpBackSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M112 160l-64 64 64 64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 224h400v128\"}}]})(props);\n};\nexport function IoReturnUpBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 160l-64 64 64 64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 224h294c58.76 0 106 49.33 106 108v20\"}}]})(props);\n};\nexport function IoReturnUpForwardOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 160l64 64-64 64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 224H154c-58.76 0-106 49.33-106 108v20\"}}]})(props);\n};\nexport function IoReturnUpForwardSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 160l64 64-64 64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 224H48v128\"}}]})(props);\n};\nexport function IoReturnUpForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 160l64 64-64 64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 224H154c-58.76 0-106 49.33-106 108v20\"}}]})(props);\n};\nexport function IoRibbonOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"160\",\"r\":\"128\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M143.65 227.82L48 400l86.86-.42a16 16 0 0113.82 7.8L192 480l88.33-194.32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M366.54 224L464 400l-86.86-.42a16 16 0 00-13.82 7.8L320 480l-64-140.8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"160\",\"r\":\"64\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoRibbonSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 336c-5.22 0-10.4-.24-15.51-.69a176.12 176.12 0 01-131.29-78.37L20 416h115l58 96 82.53-177.09A177.53 177.53 0 01256 336zm147-79.26a176.9 176.9 0 01-88.18 69.14L273.7 415.5 319 512l58-96h115z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256.02\",\"cy\":\"160\",\"r\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 16c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144S335.4 16 256 16zm0 224a80 80 0 1180-80 80.09 80.09 0 01-80 80z\"}}]})(props);\n};\nexport function IoRibbon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269 335.61q-6.33.47-12.78.47c-5.23 0-10.4-.24-15.51-.69a176.11 176.11 0 01-127.67-72.94 4 4 0 00-6.77.35l-72 129.4c-2.74 5-3.17 11-.28 15.88A16.78 16.78 0 0048.22 416h78a15.28 15.28 0 0113.62 7.33L178.5 488a16.26 16.26 0 0013.75 8c5.94-.33 12.09-4.19 14.56-9.6l66.11-145.15a4 4 0 00-3.92-5.64zm208.64 56.27l-71.53-129.17a4 4 0 00-6.74-.36 176.5 176.5 0 01-78.31 61.42 16.09 16.09 0 00-8.72 8.25l-36.86 81.1a7.92 7.92 0 000 6.6l30.27 66.59c2.45 5.41 8.59 9.36 14.52 9.69a16.3 16.3 0 0013.7-8.12l38.53-64.58c2.89-4.85 8.13-7.33 13.78-7.3h78.77c6.67 0 11.72-3.48 14-10a16.92 16.92 0 00-1.41-14.12z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256.26\",\"cy\":\"160\",\"rx\":\"48.01\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.26 16c-79.42 0-144 64.59-144 144s64.61 144 144 144 144-64.6 144-144-64.59-144-144-144zm0 224a80 80 0 1180-80 80.1 80.1 0 01-80 80z\"}}]})(props);\n};\nexport function IoRocketOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M461.81 53.81a4.4 4.4 0 00-3.3-3.39c-54.38-13.3-180 34.09-248.13 102.17a294.9 294.9 0 00-33.09 39.08c-21-1.9-42-.3-59.88 7.5-50.49 22.2-65.18 80.18-69.28 105.07a9 9 0 009.8 10.4l81.07-8.9a180.29 180.29 0 001.1 18.3 18.15 18.15 0 005.3 11.09l31.39 31.39a18.15 18.15 0 0011.1 5.3 179.91 179.91 0 0018.19 1.1l-8.89 81a9 9 0 0010.39 9.79c24.9-4 83-18.69 105.07-69.17 7.8-17.9 9.4-38.79 7.6-59.69a293.91 293.91 0 0039.19-33.09c68.38-68 115.47-190.86 102.37-247.95zM298.66 213.67a42.7 42.7 0 1160.38 0 42.65 42.65 0 01-60.38 0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M109.64 352a45.06 45.06 0 00-26.35 12.84C65.67 382.52 64 448 64 448s65.52-1.67 83.15-19.31A44.73 44.73 0 00160 402.32\"}}]})(props);\n};\nexport function IoRocketSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.64 38.26a4.75 4.75 0 00-3.55-3.66c-58.57-14.32-193.9 36.71-267.22 110a317 317 0 00-35.63 42.1c-22.61-2-45.22-.33-64.49 8.07C52.38 218.7 36.55 281.14 32.14 308a9.64 9.64 0 0010.55 11.2l87.31-9.63a194.1 194.1 0 001.19 19.7 19.53 19.53 0 005.7 12L170.7 375a19.59 19.59 0 0012 5.7 193.53 193.53 0 0019.59 1.19l-9.58 87.2a9.65 9.65 0 0011.2 10.55c26.81-4.3 89.36-20.13 113.15-74.5 8.4-19.27 10.12-41.77 8.18-64.27a317.66 317.66 0 0042.21-35.64C441 232.05 491.74 99.74 477.64 38.26zM294.07 217.93a48 48 0 1167.86 0 47.95 47.95 0 01-67.86 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M168.4 399.43c-5.48 5.49-14.27 7.63-24.85 9.46-23.77 4.05-44.76-16.49-40.49-40.52 1.63-9.11 6.45-21.88 9.45-24.88a4.37 4.37 0 00-3.65-7.45 60 60 0 00-35.13 17.12C50.22 376.69 48 464 48 464s87.36-2.22 110.87-25.75A59.69 59.69 0 00176 403.09c.37-4.18-4.72-6.67-7.6-3.66z\"}}]})(props);\n};\nexport function IoRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328.85 156.79a26.69 26.69 0 1018.88 7.81 26.6 26.6 0 00-18.88-7.81z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M477.44 50.06a.29.29 0 010-.09 20.4 20.4 0 00-15.13-15.3c-29.8-7.27-76.68.48-128.63 21.28-52.36 21-101.42 52-134.58 85.22A320.7 320.7 0 00169.55 175c-22.33-1-42 2.18-58.57 9.41-57.74 25.41-74.23 90.44-78.62 117.14a25 25 0 0027.19 29h.13l64.32-7.02c.08.82.17 1.57.24 2.26a34.36 34.36 0 009.9 20.72l31.39 31.41a34.27 34.27 0 0020.71 9.91l2.15.23-7 64.24v.13A25 25 0 00206 480a25.25 25.25 0 004.15-.34C237 475.34 302 459.05 327.34 401c7.17-16.46 10.34-36.05 9.45-58.34a314.78 314.78 0 0033.95-29.55c33.43-33.26 64.53-81.92 85.31-133.52 20.69-51.36 28.48-98.59 21.39-129.53zM370.38 224.94a58.77 58.77 0 110-83.07 58.3 58.3 0 010 83.07z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M161.93 386.44a16 16 0 00-11 2.67c-6.39 4.37-12.81 8.69-19.29 12.9-13.11 8.52-28.79-6.44-21-20l12.15-21a16 16 0 00-15.16-24.91A61.25 61.25 0 0072 353.56c-3.66 3.67-14.79 14.81-20.78 57.26A357.94 357.94 0 0048 447.59 16 16 0 0064 464h.4a359.87 359.87 0 0036.8-3.2c42.47-6 53.61-17.14 57.27-20.8a60.49 60.49 0 0017.39-35.74 16 16 0 00-13.93-17.82z\"}}]})(props);\n};\nexport function IoRoseOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 128c-18.9 4.25-36.8 8.94-53.7 13.95-40.5 12-75.5 27.15-105.4 41.65-19.3 9.37-26.2 13.51-51.5 28.23-58.4 33.69-93.4 77.4-93.4 142.81C112 428.55 167.6 480 256 480s144-55.81 144-129.72S339 225.24 416 128z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M264 180.19c-19.69-27-38.2-38.69-52.7-46.59C162.6 107.1 96 96 96 96c41.5 43.7 37.2 90.1 32 128 0 0-3.87 32.88 1.91 58.41\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M372 139.15C356.55 102.6 336 64 336 64s-63.32 0-135.69 64m53.17-40.43C221.25 45.81 176 32 176 32c-15.3 20.8-28.79 51.58-34.87 74.17\"}}]})(props);\n};\nexport function IoRoseSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 112s-17.62 0-30.51 1.39c-19 2-42.06 8-59.73 13.22-35.06 10.39-69.33 23.92-107.85 42.59-18.62 9.05-26 13.35-48 26.13l-4.5 2.67c-32.95 19-57.09 40-73.79 64.3C105.29 288.89 96 320 96 354.64c0 40.74 15.71 77.1 44.24 102.37C169 482.52 209.06 496 256 496c46.76 0 86.89-14.32 116-41.43 28.35-26.35 44-63.39 44-104.29 0-25-6.19-47-12.17-68.22-12.59-44.69-23.46-83.29 24.71-144.13C432.75 132.62 448 112 448 112zm-229 7.55C168.47 92.08 104.72 80 80 80c0 0 23.23 28.19 29.15 55.4s6.54 48.61 2.91 88.6c17.94-20.48 40.59-37.15 69.32-53.73l4.48-2.6C208 154.8 216.23 150 236 140.41c2.88-1.4 5.74-2.76 8.58-4.11A170.77 170.77 0 00219 119.55zM345.25 48s-42.53.36-86.12 21.3a280.36 280.36 0 00-32.27 18.27q3.73 1.89 7.4 3.88c3.44 1.87 7.09 4 10.9 6.29a189.7 189.7 0 0131.46 24.16c24.57-10.41 73-26.1 90.77-31.28-8-19.15-22.14-42.62-22.14-42.62zM176 16c-16 10.83-33.24 41.1-33.24 41.1a494.22 494.22 0 0148.92 15.25l17.65-11.56c8.18-5.35 16.55-10.29 25-14.77C234.31 46 202.59 24.17 176 16z\"}}]})(props);\n};\nexport function IoRose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.55 119.49a16 16 0 00-17.06-7.1c-18.64 4.19-37.06 9-54.73 14.22-35.06 10.39-69.33 23.92-107.85 42.59-18.62 9.05-26 13.35-48 26.13l-4.5 2.67c-32.95 19-57.09 40-73.79 64.29C105.29 288.89 96 320 96 354.64c0 40.74 15.71 77.1 44.24 102.37C169 482.52 209.06 496 256 496c46.76 0 86.89-14.33 116-41.43 28.35-26.35 44-63.39 44-104.29 0-25-6.19-47-12.17-68.22-12.59-44.69-23.46-83.29 24.71-144.13a16 16 0 001.01-18.44zm-210.55.06C168.46 92.08 101.46 80.69 98.63 80.22A16 16 0 0081 90.55a16.47 16.47 0 003.79 16.84c31.84 33.78 32.86 68.79 28.65 104.63a4.45 4.45 0 002.5 4.54 4.44 4.44 0 005.08-.9c16.39-16.51 36.37-31.52 60.4-45.39l4.48-2.6C208 154.8 216.23 150 236 140.41l2.69-1.3a4 4 0 00.64-6.83A178.59 178.59 0 00219 119.55zm15.26-28.1c3.44 1.87 7.09 4 10.9 6.29a189.31 189.31 0 0129.57 22.39 4 4 0 004.28.76 672 672 0 0169.65-25q7-2.07 14.08-4a4 4 0 002.53-5.62c-8.27-16.83-14.67-28.9-15.15-29.79A16 16 0 00336 48c-1.91 0-33.28.36-76.87 21.3a279 279 0 00-26.39 14.51 4 4 0 00.22 6.94zm-24.93-30.66c7.3-4.77 14.74-9.22 22.25-13.31a2 2 0 00.24-3.36c-26-19.57-49.73-27-51.15-27.42a16 16 0 00-17.56 5.82 217.63 217.63 0 00-19.28 32.38 2 2 0 001.29 2.81c13.61 3.57 29.4 8.29 45.61 14.29a2 2 0 001.79-.2z\"}}]})(props);\n};\nexport function IoSadOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"184\",\"cy\":\"232\",\"r\":\"24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 288c45.42 0 83.62 29.53 95.71 69.83a8 8 0 01-7.87 10.17H168.15a8 8 0 01-7.82-10.17C172.32 317.53 210.53 288 256 288z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"328\",\"cy\":\"232\",\"r\":\"24\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoSadSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM328 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-144 0a24 24 0 11-24 24 23.94 23.94 0 0124-24zm72 80c45.42 0 83.75 29.49 95.72 69.83 1 3.52 2.33 10.17 2.33 10.17H158s1.31-6.69 2.33-10.17C172.11 317.47 210.53 288 256 288z\"}}]})(props);\n};\nexport function IoSad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM184 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-23.67 149.83c12-40.3 50.2-69.83 95.62-69.83s83.62 29.53 95.71 69.83a8 8 0 01-7.82 10.17H168.15a8 8 0 01-7.82-10.17zM328 256a24 24 0 1124-24 23.94 23.94 0 01-24 24z\"}}]})(props);\n};\nexport function IoSaveOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M380.93 57.37A32 32 0 00358.3 48H94.22A46.21 46.21 0 0048 94.22v323.56A46.21 46.21 0 0094.22 464h323.56A46.36 46.36 0 00464 417.78V153.7a32 32 0 00-9.37-22.63zM256 416a64 64 0 1164-64 63.92 63.92 0 01-64 64zm48-224H112a16 16 0 01-16-16v-64a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoSaveSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.44 32H64a32 32 0 00-32 32v384a32 32 0 0032 32h384a32.09 32.09 0 0032-32V131.56zM112 176v-64h192v64zm223.91 179.76a80 80 0 11-83.66-83.67 80.21 80.21 0 0183.66 83.67z\"}}]})(props);\n};\nexport function IoSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465.94 119.76l-73.7-73.7A47.68 47.68 0 00358.3 32H96a64 64 0 00-64 64v320a64 64 0 0064 64h320a64 64 0 0064-64V153.7a47.68 47.68 0 00-14.06-33.94zM120 112h176a8 8 0 018 8v48a8 8 0 01-8 8H120a8 8 0 01-8-8v-48a8 8 0 018-8zm139.75 319.91a80 80 0 1176.16-76.16 80.06 80.06 0 01-76.16 76.16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"352\",\"r\":\"48\"}}]})(props);\n};\nexport function IoScaleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"416\",\"x\":\"48\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"96\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M388.94 151.56c-24.46-22.28-68.72-51.4-132.94-51.4s-108.48 29.12-132.94 51.4a34.66 34.66 0 00-3.06 48.08l33.32 39.21a26.07 26.07 0 0033.6 5.21c15.92-9.83 40.91-21.64 69.1-21.64s53.18 11.81 69.1 21.64a26.07 26.07 0 0033.6-5.21L392 199.64a34.66 34.66 0 00-3.06-48.08z\"}}]})(props);\n};\nexport function IoScaleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 32H80a48.05 48.05 0 00-48 48v352a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V80a48.05 48.05 0 00-48-48zm-16.71 165l-52.46 61.73a27.83 27.83 0 01-37.65 4.62c-13-9.29-39.27-24.89-69.18-24.89s-56.18 15.6-69.18 24.89a27.84 27.84 0 01-37.65-4.62L96.71 197a32.12 32.12 0 01.42-42c18.93-21.31 72.3-70.87 158.87-70.87S395.94 133.72 414.87 155a32.12 32.12 0 01.42 42z\"}}]})(props);\n};\nexport function IoScale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32H144A112.12 112.12 0 0032 144v224a112.12 112.12 0 00112 112h224a112.12 112.12 0 00112-112V144A112.12 112.12 0 00368 32zm36.21 178l-33.32 39.21A41.76 41.76 0 01339 264.05a42.32 42.32 0 01-22.29-6.38c-14.22-8.78-36.3-19.25-60.69-19.25s-46.47 10.47-60.69 19.25a41.86 41.86 0 01-54.2-8.46L107.79 210a50.48 50.48 0 014.49-70.27c27.84-25.35 75.37-55.57 143.72-55.57s115.88 30.22 143.72 55.57a50.48 50.48 0 014.49 70.27z\"}}]})(props);\n};\nexport function IoScanCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M296 352h28a28 28 0 0028-28v-28m0-80v-28a28 28 0 00-28-28h-28m-80 192h-28a28 28 0 01-28-28v-28m0-80v-28a28 28 0 0128-28h28\"}}]})(props);\n};\nexport function IoScanCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-24 320h-44a44.05 44.05 0 01-44-44v-44h32v44a12 12 0 0012 12h44zm0-192h-44a12 12 0 00-12 12v44h-32v-44a44.05 44.05 0 0144-44h44zm136 148a44.05 44.05 0 01-44 44h-44v-32h44a12 12 0 0012-12v-44h32zm0-92h-32v-44a12 12 0 00-12-12h-44v-32h44a44.05 44.05 0 0144 44z\"}}]})(props);\n};\nexport function IoScanCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-40 320h-28a44.05 44.05 0 01-44-44v-28a16 16 0 0132 0v28a12 12 0 0012 12h28a16 16 0 010 32zm0-192h-28a12 12 0 00-12 12v28a16 16 0 01-32 0v-28a44.05 44.05 0 0144-44h28a16 16 0 010 32zm152 148a44.05 44.05 0 01-44 44h-28a16 16 0 010-32h28a12 12 0 0012-12v-28a16 16 0 0132 0zm0-108a16 16 0 01-32 0v-28a12 12 0 00-12-12h-28a16 16 0 010-32h28a44.05 44.05 0 0144 44z\"}}]})(props);\n};\nexport function IoScanOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 448h56a56 56 0 0056-56v-56m0-160v-56a56 56 0 00-56-56h-56M176 448h-56a56 56 0 01-56-56v-56m0-160v-56a56 56 0 0156-56h56\"}}]})(props);\n};\nexport function IoScanSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388 466h-68v-44h68a34 34 0 0034-34v-68h44v68a78.09 78.09 0 01-78 78zm78-274h-44v-68a34 34 0 00-34-34h-68V46h68a78.09 78.09 0 0178 78zM192 466h-68a78.09 78.09 0 01-78-78v-68h44v68a34 34 0 0034 34h68zM90 192H46v-68a78.09 78.09 0 0178-78h68v44h-68a34 34 0 00-34 34z\"}}]})(props);\n};\nexport function IoScan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"44\",\"d\":\"M342 444h46a56 56 0 0056-56v-46m0-172v-46a56 56 0 00-56-56h-46M170 444h-46a56 56 0 01-56-56v-46m0-172v-46a56 56 0 0156-56h46\"}}]})(props);\n};\nexport function IoSchoolOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M32 192L256 64l224 128-224 128L32 192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 240v128l144 80 144-80V240m80 128V192M256 320v128\"}}]})(props);\n};\nexport function IoSchoolSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 370.43L96 279v98.42l160 88.88 160-88.88V279l-160 91.43z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512.25 192L256 45.57-.25 192 256 338.43l208-118.86V384h48V192.14l.25-.14z\"}}]})(props);\n};\nexport function IoSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 368a16 16 0 01-7.94-2.11L108 285.84a8 8 0 00-12 6.94V368a16 16 0 008.23 14l144 80a16 16 0 0015.54 0l144-80a16 16 0 008.23-14v-75.22a8 8 0 00-12-6.94l-140.06 80.05A16 16 0 01256 368z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M495.92 190.5v-.11a16 16 0 00-8-12.28l-224-128a16 16 0 00-15.88 0l-224 128a16 16 0 000 27.78l224 128a16 16 0 0015.88 0L461 221.28a2 2 0 013 1.74v144.53c0 8.61 6.62 16 15.23 16.43A16 16 0 00496 368V192a14.76 14.76 0 00-.08-1.5z\"}}]})(props);\n};\nexport function IoSearchCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 80a176 176 0 10176 176A176 176 0 00256 80z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M232 160a72 72 0 1072 72 72 72 0 00-72-72z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M283.64 283.64L336 336\"}}]})(props);\n};\nexport function IoSearchCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64zm80 294.63l-54.15-54.15a88.08 88.08 0 1122.63-22.63L358.63 336z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"232\",\"cy\":\"232\",\"r\":\"56\"}}]})(props);\n};\nexport function IoSearchCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64zm91.31 283.31a16 16 0 01-22.62 0l-42.84-42.83a88.08 88.08 0 1122.63-22.63l42.83 42.84a16 16 0 010 22.62z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"232\",\"cy\":\"232\",\"r\":\"56\"}}]})(props);\n};\nexport function IoSearchOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M338.29 338.29L448 448\"}}]})(props);\n};\nexport function IoSearchSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 428L339.92 303.9a160.48 160.48 0 0030.72-94.58C370.64 120.37 298.27 48 209.32 48S48 120.37 48 209.32s72.37 161.32 161.32 161.32a160.48 160.48 0 0094.58-30.72L428 464zM209.32 319.69a110.38 110.38 0 11110.37-110.37 110.5 110.5 0 01-110.37 110.37z\"}}]})(props);\n};\nexport function IoSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456.69 421.39L362.6 327.3a173.81 173.81 0 0034.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 00327.3 362.6l94.09 94.09a25 25 0 0035.3-35.3zM97.92 222.72a124.8 124.8 0 11124.8 124.8 124.95 124.95 0 01-124.8-124.8z\"}}]})(props);\n};\nexport function IoSendOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M470.3 271.15L43.16 447.31a7.83 7.83 0 01-11.16-7V327a8 8 0 016.51-7.86l247.62-47c17.36-3.29 17.36-28.15 0-31.44l-247.63-47a8 8 0 01-6.5-7.85V72.59c0-5.74 5.88-10.26 11.16-8L470.3 241.76a16 16 0 010 29.39z\"}}]})(props);\n};\nexport function IoSendSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 464l480-208L16 48v160l320 48-320 48z\"}}]})(props);\n};\nexport function IoSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.59 227.05l-.16-.07L49.35 49.84A23.56 23.56 0 0027.14 52 24.65 24.65 0 0016 72.59v113.29a24 24 0 0019.52 23.57l232.93 43.07a4 4 0 010 7.86L35.53 303.45A24 24 0 0016 327v113.31A23.57 23.57 0 0026.59 460a23.94 23.94 0 0013.22 4 24.55 24.55 0 009.52-1.93L476.4 285.94l.19-.09a32 32 0 000-58.8z\"}}]})(props);\n};\nexport function IoServerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256\",\"cy\":\"128\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"192\",\"ry\":\"80\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 214c0 44.18-86 80-192 80S64 258.18 64 214m384 86c0 44.18-86 80-192 80S64 344.18 64 300\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 127.24v257.52C64 428.52 150 464 256 464s192-35.48 192-79.24V127.24\"}}]})(props);\n};\nexport function IoServerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M409.43 389.87C362 410 305.4 421.05 256 421.05s-105.87-11.3-153.44-31.18S48 353.16 48 353.16v38.2c0 31.15 18 43.64 67.32 64.35C153.13 471.59 203.18 480 256 480s102.87-8.41 140.68-24.29C446 435 464 422.51 464 391.36v-38.2s-7.14 16.59-54.57 36.71zM63.69 173.22c11.23 9.84 27.82 19.49 48 27.92 42.48 17.76 96.45 28.37 144.36 28.37s101.88-10.61 144.36-28.37c20.13-8.43 36.72-18.08 47.95-27.92 6.06-5.31 10.85-10.12 13.47-12.85a8 8 0 002.22-5.54v-26.16c-.84-28.79-24.71-54.41-67.21-72.14C358.83 40.71 308.84 32 256 32s-102.83 8.71-140.74 24.53C72.85 74.22 49 99.78 48.05 128.5v26.33a8 8 0 002.21 5.54c2.58 2.73 7.36 7.54 13.43 12.85z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M409.43 221.91C365 241 305.4 253.09 256 253.09s-108.87-12.27-153.43-31.18S48 185.2 48 185.2v47.36c.08 7.52 5.5 16.2 15.69 25.13 11.24 9.84 27.82 19.5 48 27.92C154.12 303.38 208.09 314 256 314s101.88-10.6 144.36-28.37c20.13-8.42 36.72-18.08 47.95-27.92 10.25-9 15.68-17.71 15.69-25.27V185.2s-10.13 17.62-54.57 36.71z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M409.43 306.38C362 326 305.4 337.56 256 337.56s-109.87-12.8-153.43-31.18S48 269.67 48 269.67v46.25c0 7.55 5.44 16.28 15.69 25.26 11.23 9.84 27.81 19.5 48 27.92 42.48 17.77 96.44 28.37 144.36 28.37s101.88-10.6 144.36-28.37c20.13-8.43 36.72-18.08 47.95-27.92 10.19-8.93 15.61-17.61 15.69-25.13v-46.38s-7.18 17.09-54.62 36.71z\"}}]})(props);\n};\nexport function IoServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 428c-52.35 0-111.39-11.61-157.93-31-17.07-7.19-31.69-18.82-43.64-28a4 4 0 00-6.43 3.18v12.58c0 28.07 23.49 53.22 66.14 70.82C152.29 471.33 202.67 480 256 480s103.7-8.67 141.86-24.42C440.51 438 464 412.83 464 384.76v-12.58a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 28-46.54 19.39-105.57 31-157.92 31zm208-301.49c-.81-27.65-24.18-52.4-66-69.85C359.74 40.76 309.34 32 256 32s-103.74 8.76-141.91 24.66c-41.78 17.41-65.15 42.11-66 69.69L48 144c0 6.41 5.2 16.48 14.63 24.73 11.13 9.73 27.65 19.33 47.78 27.73C153.24 214.36 207.67 225 256 225s102.76-10.68 145.59-28.58c20.13-8.4 36.65-18 47.78-27.73C458.8 160.49 464 150.42 464 144z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M413.92 226c-46.53 19.43-105.57 31-157.92 31s-111.39-11.57-157.93-31c-17.07-7.15-31.69-18.79-43.64-28a4 4 0 00-6.43 3.22V232c0 6.41 5.2 14.48 14.63 22.73 11.13 9.74 27.65 19.33 47.78 27.74C153.24 300.34 207.67 311 256 311s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 246.47 464 238.41 464 232v-30.78a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M413.92 312c-46.54 19.41-105.57 31-157.92 31s-111.39-11.59-157.93-31c-17.07-7.17-31.69-18.81-43.64-28a4 4 0 00-6.43 3.2V317c0 6.41 5.2 14.47 14.62 22.71 11.13 9.74 27.66 19.33 47.79 27.74C153.24 385.32 207.66 396 256 396s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 331.44 464 323.37 464 317v-29.8a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.98z\"}}]})(props);\n};\nexport function IoSettingsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4zM416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z\"}}]})(props);\n};\nexport function IoSettingsSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 176a80 80 0 1080 80 80.24 80.24 0 00-80-80zm172.72 80a165.53 165.53 0 01-1.64 22.34l48.69 38.12a11.59 11.59 0 012.63 14.78l-46.06 79.52a11.64 11.64 0 01-14.14 4.93l-57.25-23a176.56 176.56 0 01-38.82 22.67l-8.56 60.78a11.93 11.93 0 01-11.51 9.86h-92.12a12 12 0 01-11.51-9.53l-8.56-60.78A169.3 169.3 0 01151.05 393L93.8 416a11.64 11.64 0 01-14.14-4.92L33.6 331.57a11.59 11.59 0 012.63-14.78l48.69-38.12A174.58 174.58 0 0183.28 256a165.53 165.53 0 011.64-22.34l-48.69-38.12a11.59 11.59 0 01-2.63-14.78l46.06-79.52a11.64 11.64 0 0114.14-4.93l57.25 23a176.56 176.56 0 0138.82-22.67l8.56-60.78A11.93 11.93 0 01209.94 26h92.12a12 12 0 0111.51 9.53l8.56 60.78A169.3 169.3 0 01361 119l57.2-23a11.64 11.64 0 0114.14 4.92l46.06 79.52a11.59 11.59 0 01-2.63 14.78l-48.69 38.12a174.58 174.58 0 011.64 22.66z\"}}]})(props);\n};\nexport function IoSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M470.39 300l-.47-.38-31.56-24.75a16.11 16.11 0 01-6.1-13.33v-11.56a16 16 0 016.11-13.22L469.92 212l.47-.38a26.68 26.68 0 005.9-34.06l-42.71-73.9a1.59 1.59 0 01-.13-.22A26.86 26.86 0 00401 92.14l-.35.13-37.1 14.93a15.94 15.94 0 01-14.47-1.29q-4.92-3.1-10-5.86a15.94 15.94 0 01-8.19-11.82l-5.59-39.59-.12-.72A27.22 27.22 0 00298.76 26h-85.52a26.92 26.92 0 00-26.45 22.39l-.09.56-5.57 39.67a16 16 0 01-8.13 11.82 175.21 175.21 0 00-10 5.82 15.92 15.92 0 01-14.43 1.27l-37.13-15-.35-.14a26.87 26.87 0 00-32.48 11.34l-.13.22-42.77 73.95a26.71 26.71 0 005.9 34.1l.47.38 31.56 24.75a16.11 16.11 0 016.1 13.33v11.56a16 16 0 01-6.11 13.22L42.08 300l-.47.38a26.68 26.68 0 00-5.9 34.06l42.71 73.9a1.59 1.59 0 01.13.22 26.86 26.86 0 0032.45 11.3l.35-.13 37.07-14.93a15.94 15.94 0 0114.47 1.29q4.92 3.11 10 5.86a15.94 15.94 0 018.19 11.82l5.56 39.59.12.72A27.22 27.22 0 00213.24 486h85.52a26.92 26.92 0 0026.45-22.39l.09-.56 5.57-39.67a16 16 0 018.18-11.82c3.42-1.84 6.76-3.79 10-5.82a15.92 15.92 0 0114.43-1.27l37.13 14.95.35.14a26.85 26.85 0 0032.48-11.34 2.53 2.53 0 01.13-.22l42.71-73.89a26.7 26.7 0 00-5.89-34.11zm-134.48-40.24a80 80 0 11-83.66-83.67 80.21 80.21 0 0183.66 83.67z\"}}]})(props);\n};\nexport function IoShapesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 320H32L184 48l152 272zm-70.68-125.49A144 144 0 11192 320\"}}]})(props);\n};\nexport function IoShapesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M363.27 336H4.73L184 16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 160a160.54 160.54 0 00-32.55 3.36l87.75 157L417.81 368H183.36C203.8 432.85 264.49 480 336 480c88.22 0 160-71.78 160-160s-71.78-160-160-160z\"}}]})(props);\n};\nexport function IoShapes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 336H32a16 16 0 01-14-23.81l152-272a16 16 0 0127.94 0l152 272A16 16 0 01336 336z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 160a161.07 161.07 0 00-32.57 3.32l74.47 133.27A48 48 0 01336 368H183.33A160 160 0 10336 160z\"}}]})(props);\n};\nexport function IoShareOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 192h40a40 40 0 0140 40v192a40 40 0 01-40 40H136a40 40 0 01-40-40V232a40 40 0 0140-40h40m160-64l-80-80-80 80m80 193V48\"}}]})(props);\n};\nexport function IoShareSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 176v161h-32V176H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V188a12 12 0 00-12-12zm0-83.37l64 64L358.63 134 256 31.37 153.37 134 176 156.63l64-64V176h32V92.63z\"}}]})(props);\n};\nexport function IoShareSocialOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"128\",\"cy\":\"256\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"112\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"384\",\"cy\":\"400\",\"r\":\"48\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M169.83 279.53l172.34 96.94m0-240.94l-172.34 96.94\"}}]})(props);\n};\nexport function IoShareSocialSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378 324a69.78 69.78 0 00-48.83 19.91L202 272.41a69.68 69.68 0 000-32.82l127.13-71.5A69.76 69.76 0 10308.87 129l-130.13 73.2a70 70 0 100 107.56L308.87 383A70 70 0 10378 324z\"}}]})(props);\n};\nexport function IoShareSocial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 336a63.78 63.78 0 00-46.12 19.7l-148-83.27a63.85 63.85 0 000-32.86l148-83.27a63.8 63.8 0 10-15.73-27.87l-148 83.27a64 64 0 100 88.6l148 83.27A64 64 0 10384 336z\"}}]})(props);\n};\nexport function IoShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 176H272v145a16 16 0 01-32 0V176H136a56.06 56.06 0 00-56 56v192a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V232a56.06 56.06 0 00-56-56zM272 86.63l52.69 52.68a16 16 0 0022.62-22.62l-80-80a16 16 0 00-22.62 0l-80 80a16 16 0 0022.62 22.62L240 86.63V176h32z\"}}]})(props);\n};\nexport function IoShieldCheckmarkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M336 176L225.2 304 176 255.8\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z\"}}]})(props);\n};\nexport function IoShieldCheckmarkSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.07 111.36l-.79-12.53-12.36-2.21c-86.5-15.52-122.61-26.74-203.33-63.2l-6.59-3-6.59 3C168.69 69.88 132.58 81.1 46.08 96.62l-12.36 2.21-.79 12.53c-3.85 61.11 4.36 118.05 24.43 169.24A349.47 349.47 0 00129 393.11c53.47 56.73 110.24 81.37 121.07 85.73l6 2.41 6-2.41c10.83-4.36 67.6-29 121.07-85.73a349.47 349.47 0 0071.5-112.51c20.07-51.19 28.28-108.13 24.43-169.24zm-252.91 216L153.37 256l22.4-22.86 48.47 47.49 110.13-127.2 24.2 20.94z\"}}]})(props);\n};\nexport function IoShieldCheckmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.07 111.36a16 16 0 00-13.15-14.74c-86.5-15.52-122.61-26.74-203.33-63.2a16 16 0 00-13.18 0C168.69 69.88 132.58 81.1 46.08 96.62a16 16 0 00-13.15 14.74c-3.85 61.11 4.36 118.05 24.43 169.24A349.47 349.47 0 00129 393.11c53.47 56.73 110.24 81.37 121.07 85.73a16 16 0 0012 0c10.83-4.36 67.6-29 121.07-85.73a349.47 349.47 0 0071.5-112.51c20.07-51.19 28.28-108.13 24.43-169.24zm-131 75.11l-110.8 128a16 16 0 01-11.41 5.53h-.66a16 16 0 01-11.2-4.57l-49.2-48.2a16 16 0 1122.4-22.86l37 36.29 99.7-115.13a16 16 0 0124.2 20.94z\"}}]})(props);\n};\nexport function IoShieldHalfOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464z\"}}]})(props);\n};\nexport function IoShieldHalfSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C174 69.06 121.38 86.46 32 96c0 77.59 5.27 133.36 25.29 184.51a348.86 348.86 0 0071.43 112.41c49.6 52.66 104.17 80.4 127.28 87.08 23.11-6.68 77.68-34.42 127.28-87.08a348.86 348.86 0 0071.43-112.41C474.73 229.36 480 173.59 480 96c-89.38-9.54-142-26.94-224-64zm161.47 233.93a309.18 309.18 0 01-63.31 99.56C316 406 276.65 428.31 256 437.36V75.8c38.75 17 68.73 28.3 97.93 36.89a613.12 613.12 0 0085.6 18.52c-1.72 60.22-8.36 99.69-22.06 134.72z\"}}]})(props);\n};\nexport function IoShieldHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48.9 112.37C138.32 96.33 175.29 84.45 256 48c80.71 36.45 117.68 48.33 207.1 64.37C479.3 369.13 271.42 457.79 256 464c-15.42-6.21-223.3-94.87-207.1-351.63z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c80.71 36.45 117.68 48.33 207.1 64.37C479.3 369.13 271.42 457.79 256 464z\"}}]})(props);\n};\nexport function IoShieldOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z\"}}]})(props);\n};\nexport function IoShieldSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C174 69.06 121.38 86.46 32 96c0 77.59 5.27 133.36 25.29 184.51a348.86 348.86 0 0071.43 112.41c49.6 52.66 104.17 80.4 127.28 87.08 23.11-6.68 77.68-34.42 127.28-87.08a348.86 348.86 0 0071.43-112.41C474.73 229.36 480 173.59 480 96c-89.38-9.54-142-26.94-224-64z\"}}]})(props);\n};\nexport function IoShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.07 111.35a16 16 0 00-13.15-14.75C379.89 81.18 343.69 69.12 266 34.16c-7.76-2.89-12.57-2.84-20 0-77.69 35-113.89 47-199.92 62.44a16 16 0 00-13.15 14.75c-3.85 61.1 4.34 118 24.36 169.15a348.86 348.86 0 0071.43 112.41c44.67 47.43 94.2 75.12 119.74 85.6a20 20 0 0015.11 0c27-10.92 74.69-37.82 119.71-85.62a348.86 348.86 0 0071.43-112.39c20.02-51.14 28.21-108.05 24.36-169.15z\"}}]})(props);\n};\nexport function IoShirtOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M314.56 48s-22.78 8-58.56 8-58.56-8-58.56-8a31.94 31.94 0 00-10.57 1.8L32 104l16.63 88 48.88 5.52a24 24 0 0121.29 24.58L112 464h288l-6.8-241.9a24 24 0 0121.29-24.58l48.88-5.52L480 104 325.13 49.8a31.94 31.94 0 00-10.57-1.8zm18.75 4.66a80 80 0 01-154.62 0\"}}]})(props);\n};\nexport function IoShirtSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 42c-33.88 0-64-10-64-10v2a64 64 0 00128 0v-2s-30.12 10-64 10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 44c-5.49 47.76-46.79 85-96 85s-90.51-37.24-96-85L16 94l18 114 61.71 7.42c7.08.9 7.1.9 7.1 8.19L96 480h320l-6.81-256.39c-.21-7-.21-7 7.1-8.19L478 208l18-114z\"}}]})(props);\n};\nexport function IoShirt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96c33.08 0 60.71-25.78 64-58 .3-3-3-6-6-6a13 13 0 00-4.74.9c-.2.08-21.1 8.1-53.26 8.1s-53.1-8-53.26-8.1a16.21 16.21 0 00-5.3-.9h-.06a5.69 5.69 0 00-5.38 6c3.35 32.16 31 58 64 58z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M485.29 89.9L356 44.64a4 4 0 00-5.27 3.16 96 96 0 01-189.38 0 4 4 0 00-5.35-3.16L26.71 89.9A16 16 0 0016.28 108l16.63 88a16 16 0 0013.92 12.9l48.88 5.52a8 8 0 017.1 8.19l-7.33 240.9a16 16 0 009.1 14.94A17.49 17.49 0 00112 480h288a17.49 17.49 0 007.42-1.55 16 16 0 009.1-14.94l-7.33-240.9a8 8 0 017.1-8.19l48.88-5.52a16 16 0 0013.92-12.9l16.63-88a16 16 0 00-10.43-18.1z\"}}]})(props);\n};\nexport function IoShuffleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 304l48 48-48 48m0-288l48 48-48 48M64 352h85.19a80 80 0 0066.56-35.62L256 256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 160h85.19a80 80 0 0166.56 35.62l80.5 120.76A80 80 0 00362.81 352H416m0-192h-53.19a80 80 0 00-66.56 35.62L288 208\"}}]})(props);\n};\nexport function IoShuffleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 304l48 48-48 48m0-288l48 48-48 48M64 352h128l60-92\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M64 160h128l128 192h96m0-192h-96l-32 48\"}}]})(props);\n};\nexport function IoShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M400 304l48 48-48 48m0-288l48 48-48 48M64 352h85.19a80 80 0 0066.56-35.62L256 256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M64 160h85.19a80 80 0 0166.56 35.62l80.5 120.76A80 80 0 00362.81 352H416m0-192h-53.19a80 80 0 00-66.56 35.62L288 208\"}}]})(props);\n};\nexport function IoSkullOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 225.64v99a64 64 0 01-40.23 59.42l-23.68 9.47A32 32 0 00364.6 417l-10 50.14A16 16 0 01338.88 480H173.12a16 16 0 01-15.69-12.86L147.4 417a32 32 0 00-19.49-23.44l-23.68-9.47A64 64 0 0164 324.67V224c0-105.92 85.77-191.81 191.65-192S448 119.85 448 225.64z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"168\",\"cy\":\"280\",\"r\":\"40\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"344\",\"cy\":\"280\",\"r\":\"40\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 336l-16 48h32l-16-48zm0 112v32m-48-32v32m96-32v32\"}}]})(props);\n};\nexport function IoSkullSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 16C141.31 16 48 109.31 48 224v154.83l82 32.81L146.88 496H192v-64h32v64h16v-64h32v64h16v-64h32v64h45.12L382 411.64l82-32.81V224c0-114.69-93.31-208-208-208zm-88 320a56 56 0 1156-56 56.06 56.06 0 01-56 56zm51.51 64L244 320h24l24.49 80zM344 336a56 56 0 1156-56 56.06 56.06 0 01-56 56zm104 32z\"}}]})(props);\n};\nexport function IoSkull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M402 76.94C362.61 37.63 310.78 16 256 16h-.37A208 208 0 0048 224v100.67A79.62 79.62 0 0098.29 399l23.71 9.42a15.92 15.92 0 019.75 11.72l10 50.13A32.09 32.09 0 00173.12 496H184a8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01224 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01320 448v40a8 8 0 008 8h10.88a32.09 32.09 0 0031.38-25.72l10-50.14a16 16 0 019.74-11.72l23.71-9.42A79.62 79.62 0 00464 324.67v-99c0-56-22-108.81-62-148.73zM171.66 335.88a56 56 0 1152.22-52.22 56 56 0 01-52.22 52.22zM281 397.25a16.37 16.37 0 01-9.3 2.75h-31.4a16.37 16.37 0 01-9.28-2.75 16 16 0 01-6.6-16.9l15.91-47.6C243 326 247.25 321 254 320.13c8.26-1 14 2.87 17.61 12.22l16 48a16 16 0 01-6.61 16.9zm66.68-61.37a56 56 0 1152.22-52.22 56 56 0 01-52.24 52.22z\"}}]})(props);\n};\nexport function IoSnowOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 32v448m57.72-400A111.47 111.47 0 01256 96a111.47 111.47 0 01-57.72-16m0 352a112.11 112.11 0 01115.44 0m136.27-288L62.01 368m375.26-150a112.09 112.09 0 01-57.71-100M74.73 294a112.09 112.09 0 0157.71 100M62.01 144l387.98 224M74.73 218a112.09 112.09 0 0057.71-100m304.83 176a112.09 112.09 0 00-57.71 100\"}}]})(props);\n};\nexport function IoSnowSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.88 313.27l19.25-10.64-21.28-38.51-19.25 10.64a133.42 133.42 0 00-38.54 32.1L300 256l88.07-50.86a133.42 133.42 0 0038.54 32.1l19.25 10.64 21.28-38.51-19.25-10.64a89.27 89.27 0 01-20.93-16L480 152.05 458 114l-53 30.58a89.07 89.07 0 01-3.42-26.15l.41-22-44-.82-.41 22a133.62 133.62 0 008.49 49.39L278 217.89V116.18a133.52 133.52 0 0047.06-17.33L343.9 87.5l-22.71-37.69-18.84 11.35A89.5 89.5 0 01278 71.27V16h-44v55.27a89.5 89.5 0 01-24.35-10.11l-18.84-11.35L168.1 87.5l18.84 11.35A133.52 133.52 0 00234 116.18v101.71L145.93 167a133.62 133.62 0 008.53-49.43l-.41-22-44 .82.41 22a89.07 89.07 0 01-3.42 26.15L54 114l-22 38.1 53.05 30.64a89.27 89.27 0 01-20.93 16l-19.25 10.63 21.28 38.51 19.25-10.64a133.42 133.42 0 0038.54-32.1L212 256l-88.07 50.86a133.42 133.42 0 00-38.54-32.1l-19.24-10.64-21.28 38.51 19.25 10.64a89.27 89.27 0 0120.93 16L32 360l22 38.1 53.05-30.63a89.07 89.07 0 013.42 26.15l-.41 22 44 .82.41-22a133.62 133.62 0 00-8.54-49.44L234 294.11v101.71a133.52 133.52 0 00-47.06 17.33L168.1 424.5l22.71 37.69 18.84-11.35A89.5 89.5 0 01234 440.73V496h44v-55.27a89.5 89.5 0 0124.35 10.11l18.84 11.35 22.71-37.69-18.84-11.35A133.52 133.52 0 00278 395.82V294.11L366.07 345a133.62 133.62 0 00-8.53 49.43l.41 22 44-.82-.41-22a89.07 89.07 0 013.46-26.19l53 30.63L480 360l-53-30.69a89.27 89.27 0 0120.88-16.04z\"}}]})(props);\n};\nexport function IoSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461 349l-34-19.64a89.53 89.53 0 0120.94-16 22 22 0 00-21.28-38.51 133.62 133.62 0 00-38.55 32.1L300 256l88.09-50.86a133.46 133.46 0 0038.55 32.1 22 22 0 1021.28-38.51 89.74 89.74 0 01-20.94-16l34-19.64A22 22 0 10439 125l-34 19.63a89.74 89.74 0 01-3.42-26.15A22 22 0 00380 96h-.41a22 22 0 00-22 21.59 133.61 133.61 0 008.5 49.41L278 217.89V116.18a133.5 133.5 0 0047.07-17.33 22 22 0 00-22.71-37.69A89.56 89.56 0 01278 71.27V38a22 22 0 00-44 0v33.27a89.56 89.56 0 01-24.36-10.11 22 22 0 10-22.71 37.69A133.5 133.5 0 00234 116.18v101.71L145.91 167a133.61 133.61 0 008.52-49.43 22 22 0 00-22-21.59H132a22 22 0 00-21.59 22.41 89.74 89.74 0 01-3.41 26.19L73 125a22 22 0 10-22 38.1l34 19.64a89.74 89.74 0 01-20.94 16 22 22 0 1021.28 38.51 133.62 133.62 0 0038.55-32.1L212 256l-88.09 50.86a133.62 133.62 0 00-38.55-32.1 22 22 0 10-21.28 38.51 89.74 89.74 0 0120.94 16L51 349a22 22 0 1022 38.1l34-19.63a89.74 89.74 0 013.42 26.15A22 22 0 00132 416h.41a22 22 0 0022-21.59 133.61 133.61 0 00-8.5-49.41L234 294.11v101.71a133.5 133.5 0 00-47.07 17.33 22 22 0 1022.71 37.69A89.56 89.56 0 01234 440.73V474a22 22 0 0044 0v-33.27a89.56 89.56 0 0124.36 10.11 22 22 0 0022.71-37.69A133.5 133.5 0 00278 395.82V294.11L366.09 345a133.61 133.61 0 00-8.52 49.43 22 22 0 0022 21.59h.43a22 22 0 0021.59-22.41 89.74 89.74 0 013.41-26.19l34 19.63A22 22 0 10461 349z\"}}]})(props);\n};\nexport function IoSparklesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M259.92 262.91L216.4 149.77a9 9 0 00-16.8 0l-43.52 113.14a9 9 0 01-5.17 5.17L37.77 311.6a9 9 0 000 16.8l113.14 43.52a9 9 0 015.17 5.17l43.52 113.14a9 9 0 0016.8 0l43.52-113.14a9 9 0 015.17-5.17l113.14-43.52a9 9 0 000-16.8l-113.14-43.52a9 9 0 01-5.17-5.17zM108 68L88 16 68 68 16 88l52 20 20 52 20-52 52-20-52-20zm318.67 49.33L400 48l-26.67 69.33L304 144l69.33 26.67L400 240l26.67-69.33L496 144l-69.33-26.67z\"}}]})(props);\n};\nexport function IoSparklesSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 512l-52.38-139.62L16 320l139.62-52.38L208 128l52.38 139.62L400 320l-139.62 52.38zM88 176l-23.57-64.43L0 88l64.43-23.57L88 0l23.57 64.43L176 88l-64.43 23.57zm312 80l-31.11-80.89L288 144l80.89-31.11L400 32l31.11 80.89L512 144l-80.89 31.11z\"}}]})(props);\n};\nexport function IoSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 512a24.84 24.84 0 01-23.34-16l-39.84-103.6a16.06 16.06 0 00-9.19-9.19L32 343.34a25 25 0 010-46.68l103.6-39.84a16.06 16.06 0 009.19-9.19L184.66 144a25 25 0 0146.68 0l39.84 103.6a16.06 16.06 0 009.19 9.19l103 39.63a25.49 25.49 0 0116.63 24.1 24.82 24.82 0 01-16 22.82l-103.6 39.84a16.06 16.06 0 00-9.19 9.19L231.34 496A24.84 24.84 0 01208 512zm66.85-254.84zM88 176a14.67 14.67 0 01-13.69-9.4l-16.86-43.84a7.28 7.28 0 00-4.21-4.21L9.4 101.69a14.67 14.67 0 010-27.38l43.84-16.86a7.31 7.31 0 004.21-4.21L74.16 9.79A15 15 0 0186.23.11a14.67 14.67 0 0115.46 9.29l16.86 43.84a7.31 7.31 0 004.21 4.21l43.84 16.86a14.67 14.67 0 010 27.38l-43.84 16.86a7.28 7.28 0 00-4.21 4.21l-16.86 43.84A14.67 14.67 0 0188 176zm312 80a16 16 0 01-14.93-10.26l-22.84-59.37a8 8 0 00-4.6-4.6l-59.37-22.84a16 16 0 010-29.86l59.37-22.84a8 8 0 004.6-4.6l22.67-58.95a16.45 16.45 0 0113.17-10.57 16 16 0 0116.86 10.15l22.84 59.37a8 8 0 004.6 4.6l59.37 22.84a16 16 0 010 29.86l-59.37 22.84a8 8 0 00-4.6 4.6l-22.84 59.37A16 16 0 01400 256z\"}}]})(props);\n};\nexport function IoSpeedometerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.1 231.9l-47.5 75.5a31 31 0 01-7 7 30.11 30.11 0 01-35-49l75.5-47.5a10.23 10.23 0 0111.7 0 10.06 10.06 0 012.3 14z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 64C132.3 64 32 164.2 32 287.9a223.18 223.18 0 0056.3 148.5c1.1 1.2 2.1 2.4 3.2 3.5a25.19 25.19 0 0037.1-.1 173.13 173.13 0 01254.8 0 25.19 25.19 0 0037.1.1l3.2-3.5A223.18 223.18 0 00480 287.9C480 164.2 379.7 64 256 64z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 128v32m160 128h-32m-256 0H96m69.49-90.51l-22.63-22.63m203.65 22.63l22.63-22.63\"}}]})(props);\n};\nexport function IoSpeedometerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C123.46 48 16 156.55 16 290.56a243.3 243.3 0 0060.32 160.87c1.18 1.3 2.25 2.6 3.43 3.79C89.2 464 92.07 464 99.57 464s12.43 0 19.93-8.88C152 416.64 202 400 256 400s104.07 16.71 136.5 55.12C400 464 404.82 464 412.43 464s11.3 0 19.82-8.78c1.22-1.25 2.25-2.49 3.43-3.79A243.3 243.3 0 00496 290.56C496 156.55 388.54 48 256 48zm-16 64h32v64h-32zm-96 192H80v-32h64zm21.49-83.88l-45.25-45.26 22.62-22.62 45.26 45.25zM278.6 307.4a31 31 0 01-7 7 30.11 30.11 0 01-35-49L320 224zm45.28-109.91l45.26-45.25 22.62 22.62-45.25 45.26zM432 304h-64v-32h64z\"}}]})(props);\n};\nexport function IoSpeedometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.7 118.25A240 240 0 0076.32 447l.18.2c.33.35.64.71 1 1.05.74.84 1.58 1.79 2.57 2.78a41.17 41.17 0 0060.36-.42 157.13 157.13 0 01231.26 0 41.18 41.18 0 0060.65.06l3.21-3.5.18-.2a239.93 239.93 0 00-10-328.76zM240 128a16 16 0 0132 0v32a16 16 0 01-32 0zM128 304H96a16 16 0 010-32h32a16 16 0 010 32zm48.8-95.2a16 16 0 01-22.62 0l-22.63-22.62a16 16 0 0122.63-22.63l22.62 22.63a16 16 0 010 22.62zm149.3 23.1l-47.5 75.5a31 31 0 01-7 7 30.11 30.11 0 01-35-49l75.5-47.5a10.23 10.23 0 0111.7 0 10.06 10.06 0 012.3 14zm31.72-23.1a16 16 0 01-22.62-22.62l22.62-22.63a16 16 0 0122.63 22.63zm65.88 227.6zM416 304h-32a16 16 0 010-32h32a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoSquareOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M416 448H96a32.09 32.09 0 01-32-32V96a32.09 32.09 0 0132-32h320a32.09 32.09 0 0132 32v320a32.09 32.09 0 01-32 32z\"}}]})(props);\n};\nexport function IoSquareSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 48h416v416H48z\"}}]})(props);\n};\nexport function IoSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 464H96a48.05 48.05 0 01-48-48V96a48.05 48.05 0 0148-48h320a48.05 48.05 0 0148 48v320a48.05 48.05 0 01-48 48z\"}}]})(props);\n};\nexport function IoStarHalfOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48v316L118 464l54-160-140-96h172l52-160z\"}}]})(props);\n};\nexport function IoStarHalfSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 203.3H312.36L256 32l-56.36 171.3H16l150.21 105.4-58.5 171.3L256 373.84 404.29 480l-58.61-171.3zM274.63 347.82L256 334.49v-200.1l26 78.91 7.24 22h105.39l-67.32 47.2-19.69 13.81 7.78 22.75 26.26 76.75z\"}}]})(props);\n};\nexport function IoStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48v316L118 464l54-160-140-96h172l52-160z\"}}]})(props);\n};\nexport function IoStarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z\"}}]})(props);\n};\nexport function IoStarSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 203.3H312.36L256 32l-56.36 171.3H16l150.21 105.4-58.5 171.3L256 373.84 404.29 480l-58.61-171.3z\"}}]})(props);\n};\nexport function IoStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z\"}}]})(props);\n};\nexport function IoStatsChartOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"160\",\"x\":\"64\",\"y\":\"320\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"256\",\"x\":\"288\",\"y\":\"224\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"368\",\"x\":\"400\",\"y\":\"112\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"48\",\"height\":\"448\",\"x\":\"176\",\"y\":\"32\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"8\",\"ry\":\"8\"}}]})(props);\n};\nexport function IoStatsChartSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 496H48V304h80zm224 0h-80V208h80zm112 0h-80V96h80zm-224 0h-80V16h80z\"}}]})(props);\n};\nexport function IoStatsChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 496H72a24 24 0 01-24-24V328a24 24 0 0124-24h32a24 24 0 0124 24v144a24 24 0 01-24 24zm224 0h-32a24 24 0 01-24-24V232a24 24 0 0124-24h32a24 24 0 0124 24v240a24 24 0 01-24 24zm112 0h-32a24 24 0 01-24-24V120a24 24 0 0124-24h32a24 24 0 0124 24v352a24 24 0 01-24 24zm-224 0h-32a24 24 0 01-24-24V40a24 24 0 0124-24h32a24 24 0 0124 24v432a24 24 0 01-24 24z\"}}]})(props);\n};\nexport function IoStopCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M310.4 336H201.6a25.62 25.62 0 01-25.6-25.6V201.6a25.62 25.62 0 0125.6-25.6h108.8a25.62 25.62 0 0125.6 25.6v108.8a25.62 25.62 0 01-25.6 25.6z\"}}]})(props);\n};\nexport function IoStopCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 288H176V176h160z\"}}]})(props);\n};\nexport function IoStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 262.4a25.62 25.62 0 01-25.6 25.6H201.6a25.62 25.62 0 01-25.6-25.6V201.6a25.62 25.62 0 0125.6-25.6h108.8a25.62 25.62 0 0125.6 25.6z\"}}]})(props);\n};\nexport function IoStopOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"320\",\"height\":\"320\",\"x\":\"96\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"24\",\"ry\":\"24\"}}]})(props);\n};\nexport function IoStopSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 80h352v352H80z\"}}]})(props);\n};\nexport function IoStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 432H120a40 40 0 01-40-40V120a40 40 0 0140-40h272a40 40 0 0140 40v272a40 40 0 01-40 40z\"}}]})(props);\n};\nexport function IoStopwatchOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 232v-80\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M256 88V72m-124 60l-12-12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"272\",\"r\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 96a176 176 0 10176 176A176 176 0 00256 96z\"}}]})(props);\n};\nexport function IoStopwatchSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 81.5V48h-48v33.5a191 191 0 00-84.43 32.13L120 86l-34 34 25.59 25.59A191.17 191.17 0 0064 272c0 105.87 86.13 192 192 192s192-86.13 192-192c0-97.74-73.42-178.66-168-190.5zM256 320a48 48 0 01-16-93.25V136h32v90.75A48 48 0 01256 320z\"}}]})(props);\n};\nexport function IoStopwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"272\",\"r\":\"16\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M280 81.5V72a24 24 0 00-48 0v9.5a191 191 0 00-84.43 32.13L137 103a24 24 0 00-34 34l8.6 8.6A191.17 191.17 0 0064 272c0 105.87 86.13 192 192 192s192-86.13 192-192c0-97.74-73.42-178.66-168-190.5zM256 320a48 48 0 01-16-93.25V152a16 16 0 0132 0v74.75A48 48 0 01256 320z\"}}]})(props);\n};\nexport function IoStorefrontOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 448V240m-384 0v208M382.47 48H129.53c-21.79 0-41.47 12-49.93 30.46L36.3 173c-14.58 31.81 9.63 67.85 47.19 69h2c31.4 0 56.85-25.18 56.85-52.23 0 27 25.46 52.23 56.86 52.23s56.8-23.38 56.8-52.23c0 27 25.45 52.23 56.85 52.23s56.86-23.38 56.86-52.23c0 28.85 25.45 52.23 56.85 52.23h1.95c37.56-1.17 61.77-37.21 47.19-69l-43.3-94.54C423.94 60 404.26 48 382.47 48zM32 464h448M136 288h80a24 24 0 0124 24v88h0-128 0v-88a24 24 0 0124-24zm152 176V312a24 24 0 0124-24h64a24 24 0 0124 24v152\"}}]})(props);\n};\nexport function IoStorefrontSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 448V267.85a104.76 104.76 0 01-33.56 6.58c-1.18 0-2.3.05-3.4.05a108 108 0 01-56.86-16 108 108 0 01-56.85 16 106.16 106.16 0 01-56.51-16.2 107.84 107.84 0 01-57.2 16.2 106.14 106.14 0 01-56.85-16.42 106.14 106.14 0 01-56.85 16.42c-1.09 0-2.19 0-3.37-.05h-.06A104.66 104.66 0 0148 267.49V448H16v32h480v-32zm-240-64h-96v-76a4 4 0 014-4h88a4 4 0 014 4zm160 64h-80V308a4 4 0 014-4h72a4 4 0 014 4zm108.57-277.72L445.89 64C432 32 432 32 400 32H112c-32 0-32 0-45.94 32L19.38 170.28c-9 19.41 2.89 39.34 2.9 39.35l.41.66c.42.66 1.13 1.75 1.62 2.37.1.13.19.27.28.4l5.24 6.39 5.31 5.14.42.36a69.65 69.65 0 009.44 6.78v.05a74 74 0 0036 10.67h2.47a76.08 76.08 0 0051.89-20.31 72.38 72.38 0 005.77-6 74.18 74.18 0 005.78 6 76.08 76.08 0 0051.89 20.31c23.28 0 44.07-10 57.63-25.56a.11.11 0 01.15 0l5.66 5.26a76.09 76.09 0 0051.9 20.31c23.29 0 44.11-10 57.66-25.61 13.56 15.61 34.37 25.61 57.67 25.61h2.49a71.35 71.35 0 0035-10.7c.95-.57 1.86-1.17 2.78-1.77A71.33 71.33 0 00488 212.17l2-3c.9-2.04 11.21-20.3 2.57-38.89z\"}}]})(props);\n};\nexport function IoStorefront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 448h-12a4 4 0 01-4-4V273.51a4 4 0 00-5.24-3.86 104.92 104.92 0 01-28.32 4.78c-1.18 0-2.3.05-3.4.05a108.22 108.22 0 01-52.85-13.64 8.23 8.23 0 00-8 0 108.18 108.18 0 01-52.84 13.64 106.11 106.11 0 01-52.46-13.79 8.21 8.21 0 00-8.09 0 108.14 108.14 0 01-53.16 13.8 106.19 106.19 0 01-52.77-14 8.25 8.25 0 00-8.16 0 106.19 106.19 0 01-52.77 14c-1.09 0-2.19 0-3.37-.05h-.06a104.91 104.91 0 01-29.28-5.09 4 4 0 00-5.23 3.8V444a4 4 0 01-4 4H32.5c-8.64 0-16.1 6.64-16.48 15.28A16 16 0 0032 480h447.5c8.64 0 16.1-6.64 16.48-15.28A16 16 0 00480 448zm-256-68a4 4 0 01-4 4h-88a4 4 0 01-4-4v-64a12 12 0 0112-12h72a12 12 0 0112 12zm156 68h-72a4 4 0 01-4-4V316a12 12 0 0112-12h56a12 12 0 0112 12v128a4 4 0 01-4 4zm112.57-277.72l-42.92-98.49C438.41 47.62 412.74 32 384.25 32H127.7c-28.49 0-54.16 15.62-65.4 39.79l-42.92 98.49c-9 19.41 2.89 39.34 2.9 39.35l.28.45c.49.78 1.36 2 1.89 2.78.05.06.09.13.14.2l5 6.05a7.45 7.45 0 00.6.65l5 4.83.42.36a69.65 69.65 0 009.39 6.78v.05a74 74 0 0036 10.67h2.47a76.08 76.08 0 0051.89-20.31l.33-.31a7.94 7.94 0 0110.89 0l.33.31a77.3 77.3 0 00104.46 0 8 8 0 0110.87 0 77.31 77.31 0 00104.21.23 7.88 7.88 0 0110.71 0 76.81 76.81 0 0052.31 20.08h2.49a71.35 71.35 0 0035-10.7c.95-.57 1.86-1.17 2.78-1.77A71.33 71.33 0 00488 212.17l1.74-2.63q.26-.4.48-.84c1.66-3.38 10.56-20.76 2.35-38.42z\"}}]})(props);\n};\nexport function IoSubwayOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"288\",\"height\":\"352\",\"x\":\"112\",\"y\":\"32\",\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M208 80h96\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"288\",\"height\":\"96\",\"x\":\"112\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"176\",\"cy\":\"320\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"336\",\"cy\":\"320\",\"r\":\"16\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M144 464h224m-32-32l48 48m-208-48l-48 48\"}}]})(props);\n};\nexport function IoSubwaySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 16H120a24 24 0 00-24 24v336a24 24 0 0024 24h272a24 24 0 0024-24V40a24 24 0 00-24-24zM208 64h95.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 96h-95.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01208 64zm-28.53 287.82a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zm160 0a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zM384 144v64H128v-64zm-86 272l31.37 32H182.63L214 416h-44l-80.57 80h45.2l16-16h210.74l16 16h45.3L343 416h-45z\"}}]})(props);\n};\nexport function IoSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 16H160a64.07 64.07 0 00-64 64v256a64.07 64.07 0 0064 64h192a64.07 64.07 0 0064-64V80a64.07 64.07 0 00-64-64zM208 64h96a16 16 0 010 32h-96a16 16 0 010-32zm-32 288a32 32 0 1132-32 32 32 0 01-32 32zm160 0a32 32 0 1132-32 32 32 0 01-32 32zm48-160a16 16 0 01-16 16H144a16 16 0 01-16-16v-32a16 16 0 0116-16h224a16 16 0 0116 16zm-36.69 228.69a16 16 0 00-22.62 22.62l4.68 4.69H182.63l4.68-4.69a16 16 0 00-22.62-22.62l-48 48a16 16 0 1022.62 22.62L150.63 480h210.74l11.32 11.31a16 16 0 0022.62-22.62z\"}}]})(props);\n};\nexport function IoSunnyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 48v48m0 320v48m147.08-355.08l-33.94 33.94M142.86 369.14l-33.94 33.94M464 256h-48m-320 0H48m355.08 147.08l-33.94-33.94M142.86 142.86l-33.94-33.94\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"80\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoSunnySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234 26h44v92h-44zm0 368h44v92h-44zm104.025-251.143l65.054-65.054 31.113 31.113-65.054 65.054zM77.815 403.074l65.054-65.054 31.113 31.113-65.054 65.054zM394 234h92v44h-92zm-368 0h92v44H26zm312.029 135.14l31.112-31.113 65.054 65.054-31.112 31.112zM77.802 108.92l31.113-31.113 65.054 65.054-31.113 31.112zM256 358a102 102 0 11102-102 102.12 102.12 0 01-102 102z\"}}]})(props);\n};\nexport function IoSunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 118a22 22 0 01-22-22V48a22 22 0 0144 0v48a22 22 0 01-22 22zm0 368a22 22 0 01-22-22v-48a22 22 0 0144 0v48a22 22 0 01-22 22zm113.14-321.14a22 22 0 01-15.56-37.55l33.94-33.94a22 22 0 0131.11 31.11l-33.94 33.94a21.93 21.93 0 01-15.55 6.44zM108.92 425.08a22 22 0 01-15.55-37.56l33.94-33.94a22 22 0 1131.11 31.11l-33.94 33.94a21.94 21.94 0 01-15.56 6.45zM464 278h-48a22 22 0 010-44h48a22 22 0 010 44zm-368 0H48a22 22 0 010-44h48a22 22 0 010 44zm307.08 147.08a21.94 21.94 0 01-15.56-6.45l-33.94-33.94a22 22 0 0131.11-31.11l33.94 33.94a22 22 0 01-15.55 37.56zM142.86 164.86a21.89 21.89 0 01-15.55-6.44l-33.94-33.94a22 22 0 0131.11-31.11l33.94 33.94a22 22 0 01-15.56 37.55zM256 358a102 102 0 11102-102 102.12 102.12 0 01-102 102z\"}}]})(props);\n};\nexport function IoSwapHorizontalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 48l112 112-112 112m94.87-112H96m112 304L96 352l112-112m-94 112h302\"}}]})(props);\n};\nexport function IoSwapHorizontalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M304 48l112 112-112 112m94.87-112H96m112 304L96 352l112-112m-94 112h302\"}}]})(props);\n};\nexport function IoSwapHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M304 48l112 112-112 112m94.87-112H96m112 304L96 352l112-112m-94 112h302\"}}]})(props);\n};\nexport function IoSwapVerticalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M464 208L352 96 240 208m112-94.87V416M48 304l112 112 112-112m-112 94V96\"}}]})(props);\n};\nexport function IoSwapVerticalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M464 208L352 96 240 208m112-94.87V416M48 304l112 112 112-112m-112 94V96\"}}]})(props);\n};\nexport function IoSwapVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M464 208L352 96 240 208m112-94.87V416M48 304l112 112 112-112m-112 94V96\"}}]})(props);\n};\nexport function IoSyncCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M351.82 271.87v-16A96.15 96.15 0 00184.09 192m-24.2 48.17v16A96.22 96.22 0 00327.81 320\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M135.87 256l23.59-23.6 24.67 23.6m192 0l-23.59 23.6-24.67-23.6\"}}]})(props);\n};\nexport function IoSyncCircleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm0 320a112.19 112.19 0 01-111.27-98.23l-8.86 8.86L113.24 256l46-46 47.55 45.48-22.12 23.12-7.2-6.88a80.26 80.26 0 00138.48 37.5l23.77 21.41A112.82 112.82 0 01256 368zm96.79-66l-47.55-45.5 22.12-23.12 6.86 6.55A80.2 80.2 0 00196 202.64l-23.82-21.37A112.18 112.18 0 01367 242.49l9.11-9.12L398.76 256z\"}}]})(props);\n};\nexport function IoSyncCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm83.69 282.65a112.24 112.24 0 01-195-61.29 16 16 0 01-20.13-24.67l23.6-23.6a16 16 0 0122.37-.25l24.67 23.6a16 16 0 01-18 26 80.25 80.25 0 00138.72 38.83 16 16 0 0123.77 21.41zm47.76-63.34l-23.6 23.6a16 16 0 01-22.37.25l-24.67-23.6a16 16 0 0117.68-26.11A80.17 80.17 0 00196 202.64a16 16 0 11-23.82-21.37 112.17 112.17 0 01194.88 61.57 16 16 0 0120.39 24.47z\"}}]})(props);\n};\nexport function IoSyncOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M32 256l44-44 46 44m358 0l-44 44-46-44\"}}]})(props);\n};\nexport function IoSyncSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M32 256l44-44 46 44m358 0l-44 44-46-44\"}}]})(props);\n};\nexport function IoSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M32 256l44-44 46 44m358 0l-44 44-46-44\"}}]})(props);\n};\nexport function IoTabletLandscapeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"352\",\"height\":\"480\",\"x\":\"80\",\"y\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\",\"transform\":\"rotate(-90 256 256)\"}}]})(props);\n};\nexport function IoTabletLandscapeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 82v348a18 18 0 0018 18h476a18 18 0 0018-18V82a18 18 0 00-18-18H18A18 18 0 000 82zm448 330H64V100h384z\"}}]})(props);\n};\nexport function IoTabletLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 128v256a64.07 64.07 0 01-64 64H64a64.07 64.07 0 01-64-64V128a64.07 64.07 0 0164-64h384a64.07 64.07 0 0164 64zM32 384a32 32 0 0032 32h384a32 32 0 0032-32V128a32 32 0 00-32-32H64a32 32 0 00-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128a64.07 64.07 0 0164-64h384a64.07 64.07 0 0164 64v256a64.07 64.07 0 01-64 64H64a64.07 64.07 0 01-64-64V128m480 256V128a32 32 0 00-32-32H64a32 32 0 00-32 32v256a32 32 0 0032 32h384a32 32 0 0032-32m-16 0a16 16 0 01-16 16H64a16 16 0 01-16-16V128a16 16 0 0116-16h384a16 16 0 0116 16v256z\"}}]})(props);\n};\nexport function IoTabletPortraitOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"352\",\"height\":\"480\",\"x\":\"80\",\"y\":\"16\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}}]})(props);\n};\nexport function IoTabletPortraitSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M430 0H82a18 18 0 00-18 18v476a18 18 0 0018 18h348a18 18 0 0018-18V18a18 18 0 00-18-18zM100 448V64h312v384z\"}}]})(props);\n};\nexport function IoTabletPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 512H128a64.07 64.07 0 01-64-64V64a64.07 64.07 0 0164-64h256a64.07 64.07 0 0164 64v384a64.07 64.07 0 01-64 64zM128 32a32 32 0 00-32 32v384a32 32 0 0032 32h256a32 32 0 0032-32V64a32 32 0 00-32-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 0a64.07 64.07 0 0164 64v384a64.07 64.07 0 01-64 64H128a64.07 64.07 0 01-64-64V64a64.07 64.07 0 0164-64h256M128 480h256a32 32 0 0032-32V64a32 32 0 00-32-32H128a32 32 0 00-32 32v384a32 32 0 0032 32m0-16a16 16 0 01-16-16V64a16 16 0 0116-16h256a16 16 0 0116 16v384a16 16 0 01-16 16z\"}}]})(props);\n};\nexport function IoTelescopeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M39.93 327.56l-4.71-8.13A24 24 0 0144 286.64l86.87-50.07a16 16 0 0121.89 5.86l12.71 22a16 16 0 01-5.86 21.85l-86.85 50.07a24.06 24.06 0 01-32.83-8.79z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M170.68 273.72L147.12 233a24 24 0 018.8-32.78l124.46-71.75a16 16 0 0121.89 5.86l31.57 54.59a16 16 0 01-5.84 21.84L203.51 282.5a24 24 0 01-32.83-8.78zm171.17-71.51l-46.51-80.43a24 24 0 018.8-32.78l93.29-53.78A24.07 24.07 0 01430.27 44l46.51 80.43a24 24 0 01-8.8 32.79L374.69 211a24.06 24.06 0 01-32.84-8.79zM127.59 480l96.14-207.99m48.07-15.99L368.55 448\"}}]})(props);\n};\nexport function IoTelescopeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.41 292.9l44.82 76.97 98.14-56.38-44.73-77.37L1.41 292.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M287.87 252.34l23.67-13.81-63.42-110-132.92 77C133.75 237.51 176 310 176 310l15.53-8.32c.24-.13.55 0 .83 0L102.65 496h35.16l99.05-214.25 23.24-13.4L358 464h36zM262.08 96c24.81 42.23 60.25 104.25 86.4 148.76L510.79 151 424.07 1.41z\"}}]})(props);\n};\nexport function IoTelescope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M107.56 250a16 16 0 00-21.85-5.86L36 272.81a39.71 39.71 0 00-18.8 24.91 40.9 40.9 0 004.55 30.35l4.36 7.54a40 40 0 0054.62 14.62l49.67-28.63a16 16 0 005.87-21.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M382.84 440.8L288.72 254a2 2 0 01.79-2.63l8.3-4.79a16 16 0 005.86-21.86l-47.53-82.33a16 16 0 00-21.86-5.87l-86.38 49.8a39.73 39.73 0 00-18.65 24.28 34.82 34.82 0 00-1.37 9.76c.06 7.6 9.2 22.7 18.12 38.28 9.59 16.75 19.24 33.88 26.34 38.15 4.52 2.72 12.5 4.9 19.21 4.9h.84l-79.32 171.6a16 16 0 1029.05 13.42l93.68-202.65a7.94 7.94 0 013.26-3.57l19.21-11.08a2 2 0 012.78.84l93.21 185a16 16 0 0028.58-14.4zm107.37-325.06L444.09 36a40.08 40.08 0 00-54.63-14.62l-93.34 53.78a39.69 39.69 0 00-18.65 24.28 32.76 32.76 0 00-1.27 13.25c1.74 12.62 13 30.4 26.41 53.89 13.58 23.73 28.91 50.48 36.93 56.27a40.18 40.18 0 0023.18 7.37 39.77 39.77 0 0019.92-5.34L476 171.07a39.72 39.72 0 0018.79-24.84 41 41 0 00-4.58-30.49z\"}}]})(props);\n};\nexport function IoTennisballOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"208\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M461.43 271.44c-5.09.37-8.24.56-13.43.56-114.88 0-208-93.12-208-208 0-5.37.2-8.69.6-14M49.65 240.56S58.84 240 64 240c114.88 0 208 93.12 208 208 0 5.38-.61 14-.61 14\"}}]})(props);\n};\nexport function IoTennisballSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.4 480a181 181 0 003.22-22.86c.35-4.61.53-9.31.53-14 0-100-81.34-181.32-181.32-181.32A181.72 181.72 0 0032 265.61 224.2 224.2 0 00246.4 480z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M284.63 227.37A222.73 222.73 0 01219 68.83a227.09 227.09 0 012.62-34.42A224.41 224.41 0 0034.41 221.58 227.09 227.09 0 0168.83 219a222.73 222.73 0 01158.54 65.67A222.73 222.73 0 01293 443.17c0 5.74-.22 11.54-.65 17.23s-1.11 11.51-2 17.2a224.42 224.42 0 00187.24-187.18 227.09 227.09 0 01-34.42 2.58 222.73 222.73 0 01-158.54-65.63z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M443.17 250.15a181.72 181.72 0 0036.83-3.76A224.2 224.2 0 00265.61 32a181.72 181.72 0 00-3.76 36.83c0 99.98 81.34 181.32 181.32 181.32z\"}}]})(props);\n};\nexport function IoTennisball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 256a192.55 192.55 0 0032-2.68A224 224 0 00258.68 32 192.55 192.55 0 00256 64c0 105.87 86.13 192 192 192zM253.35 480c.94-5.67 1.65-11.4 2.09-17.18.37-4.88.56-9.86.56-14.79 0-105.87-86.13-192-192-192a192.55 192.55 0 00-32 2.68A224 224 0 00253.35 480z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M289.61 222.39A222.53 222.53 0 01224 64a226.07 226.07 0 012-30A224.1 224.1 0 0034 226a226.07 226.07 0 0130-2 222.53 222.53 0 01158.39 65.61A222.53 222.53 0 01288 448c0 5.74-.22 11.53-.65 17.22q-.5 6.42-1.36 12.79A224.12 224.12 0 00478 286a226.07 226.07 0 01-30 2 222.53 222.53 0 01-158.39-65.61z\"}}]})(props);\n};\nexport function IoTerminalOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"416\",\"x\":\"32\",\"y\":\"48\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M96 112l80 64-80 64m96 0h64\"}}]})(props);\n};\nexport function IoTerminalSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 44v424a12 12 0 0012 12h456a12 12 0 0012-12V44a12 12 0 00-12-12H28a12 12 0 00-12 12zm57.51 193.5l76.88-61.5-76.88-61.5 20-25 108.1 86.5L93.5 262.49zM272 256h-96v-32h96z\"}}]})(props);\n};\nexport function IoTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 32H80a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h352a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64zM96 256a16 16 0 01-10-28.49L150.39 176 86 124.49a16 16 0 1120-25l80 64a16 16 0 010 25l-80 64A16 16 0 0196 256zm160 0h-64a16 16 0 010-32h64a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoTextOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M32 415.5l120-320 120 320m-42-112H74m252-64c12.19-28.69 41-48 74-48h0c46 0 80 32 80 80v144\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 358.5c0 36 26.86 58 60 58 54 0 100-27 100-106v-15c-20 0-58 1-92 5-32.77 3.86-68 19-68 58z\"}}]})(props);\n};\nexport function IoTextSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404.42 170c-41.23 0-78.07 24.06-93.85 61.3L304 246.52l40.33 17.18 6.56-15.22c8.9-21 29.91-34.55 53.53-34.55 34.55 0 57.76 23.27 57.76 57.91v2.3c-22.12.59-48.65 2.05-72.27 4.84-54.52 6.43-87.06 36.23-87.06 79.72 0 23.16 8.72 44 24.56 58.59C342.28 431 362.55 438 384.51 438c30.86 0 57.5-7.33 77.67-22.64V438H506V271.84C506 212.83 463.28 170 404.42 170zm-19.91 225.07c-17.46 0-37.85-9.84-37.85-36.37 0-10.65 3.82-18.11 12.38-24.19 8.34-5.92 21.12-10.15 36-11.9 21.78-2.57 46.31-3.95 67-4.52-2.16 51.49-27.57 76.98-77.53 76.98zm-291.26-69.2h125.5L260.94 438H308L155 48 4 438h47.06zM156 160.71L202.25 282h-92.5z\"}}]})(props);\n};\nexport function IoText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M292.6 407.78l-120-320a22 22 0 00-41.2 0l-120 320a22 22 0 0041.2 15.44l36.16-96.42a2 2 0 011.87-1.3h122.74a2 2 0 011.87 1.3l36.16 96.42a22 22 0 0041.2-15.44zm-185.84-129l43.37-115.65a2 2 0 013.74 0l43.37 115.67a2 2 0 01-1.87 2.7h-86.74a2 2 0 01-1.87-2.7zM400.77 169.5c-41.72-.3-79.08 23.87-95 61.4a22 22 0 0040.5 17.2c8.88-20.89 29.77-34.44 53.32-34.6 32.32-.22 58.41 26.5 58.41 58.85a1.5 1.5 0 01-1.45 1.5c-21.92.61-47.92 2.07-71.12 4.8-54.75 6.44-87.43 36.29-87.43 79.85 0 23.19 8.76 44 24.67 58.68C337.6 430.93 358 438.5 380 438.5c31 0 57.69-8 77.94-23.22h.06a22 22 0 1044 .19v-143c0-56.18-45-102.56-101.23-102.97zM380 394.5c-17.53 0-38-9.43-38-36 0-10.67 3.83-18.14 12.43-24.23 8.37-5.93 21.2-10.16 36.14-11.92 21.12-2.49 44.82-3.86 65.14-4.47a2 2 0 012 2.1C455 370.1 429.46 394.5 380 394.5z\"}}]})(props);\n};\nexport function IoThermometerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M307.72 302.27a8 8 0 01-3.72-6.75V80a48 48 0 00-48-48h0a48 48 0 00-48 48v215.52a8 8 0 01-3.71 6.74 97.51 97.51 0 00-44.19 86.07A96 96 0 00352 384a97.49 97.49 0 00-44.28-81.73zM256 112v272\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"384\",\"r\":\"48\"}}]})(props);\n};\nexport function IoThermometerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 291.24V80a64 64 0 10-128 0v211.24A113.39 113.39 0 00144 384a112 112 0 00224 0 113.39 113.39 0 00-48-92.76zM256 432a48 48 0 01-16-93.26V96h32v242.74A48 48 0 01256 432z\"}}]})(props);\n};\nexport function IoThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 287.18V81c0-35.12-27.89-64.42-63-64.95a64.08 64.08 0 00-65 64v207.13a8 8 0 01-3.18 6.37A113.48 113.48 0 00144 384a112 112 0 00224 0 113.48 113.48 0 00-44.82-90.45 8 8 0 01-3.18-6.37zM254.07 432a48 48 0 01-22-89.54 16 16 0 008-13.84V112.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 112v216.58a16.18 16.18 0 008.15 13.94A48 48 0 01254.07 432z\"}}]})(props);\n};\nexport function IoThumbsDownOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M192 53.84S208 48 256 48s74 16 96 32h64a64 64 0 0164 64v48a64 64 0 01-64 64h-30a32.34 32.34 0 00-27.37 15.4S350 290.19 324 335.22 248 448 240 464c-29 0-43-22-34-47.71 10.28-29.39 23.71-54.38 27.46-87.09.54-4.78-3.14-12-8-12L96 307\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M96 241l80 2c20 1.84 32 12.4 32 30h0c0 17.6-14 28.84-32 30l-80 4c-17.6 0-32-16.4-32-34v-.17A32 32 0 0196 241zm-32-65l112 2c18 .84 32 12.41 32 30h0c0 17.61-14 28.86-32 30l-112 2a32.1 32.1 0 01-32-32h0a32.1 32.1 0 0132-32zm48-128l64 3c21 1.84 32 11.4 32 29h0c0 17.6-14.4 30-32 30l-64 2a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32zm-32 64l96 2c19 .84 32 12.4 32 30h0c0 17.6-13 28.84-32 30l-96 2a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32z\"}}]})(props);\n};\nexport function IoThumbsDownSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M56 320l156.05 12-23 89.4c-6.08 26.6.7 41.87 22.39 48.62l34.69 9.85a4 4 0 004.4-1.72l129-202.34a8 8 0 016.81-3.81H496V64H378.39a48 48 0 01-15.18-2.46l-76.3-25.43a80 80 0 00-25.3-4.11H83.68c-19 0-31.5 13.52-35.23 32.16L16 206.42V280c0 22.06 18 38 40 40z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M378.45 273.93A15.84 15.84 0 01386 272a15.93 15.93 0 00-7.51 1.91zm-40.59 69.29l-.13.22a2.53 2.53 0 01.13-.22c20.5-35.51 30.36-55 33.82-62-3.47 7.06-13.34 26.51-33.82 62z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M372.66 279.16l-1 2a16.29 16.29 0 016.77-7.26 16.48 16.48 0 00-5.77 5.26z\"}}]})(props);\n};\nexport function IoThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M39.94 178l144.16 6.12c4.61.36 23.9 1.22 23.9 25.88 0 23.8-19.16 25.33-24.14 25.88L39.94 242C27.27 241.87 16 227.56 16 210s11.27-31.87 23.94-32zm141.45 131.66L74.65 318C62 318 48 301.31 48 284.12v-.33c0-16.33 11.14-29.63 24.88-29.79l108.45 1.72C208 259 208 275.16 208 282.12c0 22.88-21.8 27.14-26.61 27.54zM90.15 32l89.37 8.93C204 41.86 208 58.18 208 68.4c0 18.39-13.41 24.6-26.67 24.6l-91 3C75.78 95.78 64 81.51 64 64s11.68-31.66 26.15-32zm-34.36 71.5l126.4 6.22c9.39.63 25.81 3 25.81 26.36 0 12-4.35 25.62-25 27.53L55.79 167.5C42.65 167.35 32 154 32 136.08s10.65-32.43 23.79-32.58z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M378.45 273.93A15.84 15.84 0 01386 272a15.93 15.93 0 00-7.51 1.91zm-40.59 69.29l-.13.22a2.53 2.53 0 01.13-.22c20.5-35.51 30.36-55 33.82-62-3.47 7.06-13.34 26.51-33.82 62z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M372.66 279.16l-1 2a16.29 16.29 0 016.77-7.26 16.48 16.48 0 00-5.77 5.26z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M195.94 459.38C205.37 472.67 221 480 240 480a16 16 0 0014.31-8.85c3-6.06 15.25-24 28.19-42.9 18-26.33 40.35-59.08 55.23-84.81l.13-.22c20.48-35.49 30.35-54.94 33.82-62l1-2a16.48 16.48 0 015.79-5.23A15.93 15.93 0 01386 272h25.32A84.7 84.7 0 00496 187.3v-38.6A84.7 84.7 0 00411.31 64h-48.79a17.46 17.46 0 01-9.58-2.89C330 46.13 286.66 32 240 32c-7.45 0-14.19.14-20.27.38a8 8 0 00-6.2 12.68l.1.14C222.2 57.59 224 71 224 80a61.16 61.16 0 01-5.19 24.77 17.38 17.38 0 000 14.06 63.81 63.81 0 010 50.39 17.32 17.32 0 000 14 62.13 62.13 0 010 49.58 18.13 18.13 0 000 14.68A60.41 60.41 0 01224 273c0 8.2-2 21.3-8 31.18a15.66 15.66 0 00-1.14 13.65c.38 1 .76 2.06 1.13 3.17a24.8 24.8 0 01.86 11.57c-3 19.35-9.67 36.3-16.74 54.16-3.08 7.78-6.27 15.82-9.22 24.27-6.14 17.56-4.3 35.2 5.05 48.38z\"}}]})(props);\n};\nexport function IoThumbsUpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M320 458.16S304 464 256 464s-74-16-96-32H96a64 64 0 01-64-64v-48a64 64 0 0164-64h30a32.34 32.34 0 0027.37-15.4S162 221.81 188 176.78 264 64 272 48c29 0 43 22 34 47.71-10.28 29.39-23.71 54.38-27.46 87.09-.54 4.78 3.14 12 7.95 12L416 205\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M416 271l-80-2c-20-1.84-32-12.4-32-30h0c0-17.6 14-28.84 32-30l80-4c17.6 0 32 16.4 32 34v.17A32 32 0 01416 271zm32 65l-112-2c-18-.84-32-12.41-32-30h0c0-17.61 14-28.86 32-30l112-2a32.1 32.1 0 0132 32h0a32.1 32.1 0 01-32 32zm-48 128l-64-3c-21-1.84-32-11.4-32-29h0c0-17.6 14.4-30 32-30l64-2a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32zm32-64l-96-2c-19-.84-32-12.4-32-30h0c0-17.6 13-28.84 32-30l96-2a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32z\"}}]})(props);\n};\nexport function IoThumbsUpSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 192l-156-12 23-89.4c6-26.6-.78-41.87-22.47-48.6l-34.69-9.85a4 4 0 00-4.4 1.72l-129 202.34a8 8 0 01-6.81 3.81H16V448h117.61a48 48 0 0115.18 2.46l76.3 25.43a80 80 0 0025.3 4.11h177.93c19 0 31.5-13.52 35.23-32.16L496 305.58V232c0-22.06-18-38-40-40z\"}}]})(props);\n};\nexport function IoThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472.06 334l-144.16-6.13c-4.61-.36-23.9-1.21-23.9-25.87 0-23.81 19.16-25.33 24.14-25.88L472.06 270c12.67.13 23.94 14.43 23.94 32s-11.27 31.87-23.94 32zM330.61 202.33L437.35 194C450 194 464 210.68 464 227.88v.33c0 16.32-11.14 29.62-24.88 29.79l-108.45-1.73C304 253 304 236.83 304 229.88c0-22.88 21.8-27.15 26.61-27.55zM421.85 480l-89.37-8.93C308 470.14 304 453.82 304 443.59c0-18.38 13.41-24.6 26.67-24.6l91-3c14.54.23 26.32 14.5 26.32 32s-11.67 31.67-26.14 32.01zm34.36-71.5l-126.4-6.21c-9.39-.63-25.81-3-25.81-26.37 0-12 4.35-25.61 25-27.53l127.19-3.88c13.16.14 23.81 13.49 23.81 31.4s-10.65 32.43-23.79 32.58z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M133.55 238.06A15.85 15.85 0 01126 240a15.82 15.82 0 007.51-1.92zm40.59-69.28l.13-.23-.13.23c-20.5 35.51-30.36 54.95-33.82 62 3.47-7.07 13.34-26.51 33.82-62z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M139.34 232.84l1-2a16.27 16.27 0 01-6.77 7.25 16.35 16.35 0 005.77-5.25z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M316.06 52.62C306.63 39.32 291 32 272 32a16 16 0 00-14.31 8.84c-3 6.07-15.25 24-28.19 42.91-18 26.33-40.35 59.07-55.23 84.8l-.13.23c-20.48 35.49-30.35 54.93-33.82 62l-1 2a16.35 16.35 0 01-5.79 5.22 15.82 15.82 0 01-7.53 2h-25.31A84.69 84.69 0 0016 324.69v38.61a84.69 84.69 0 0084.69 84.7h48.79a17.55 17.55 0 019.58 2.89C182 465.87 225.34 480 272 480c7.45 0 14.19-.14 20.27-.38a8 8 0 006.2-12.68l-.1-.14C289.8 454.41 288 441 288 432a61.2 61.2 0 015.19-24.77 17.36 17.36 0 000-14.05 63.81 63.81 0 010-50.39 17.32 17.32 0 000-14 62.15 62.15 0 010-49.59 18.13 18.13 0 000-14.68A60.33 60.33 0 01288 239c0-8.2 2-21.3 8-31.19a15.63 15.63 0 001.14-13.64c-.38-1-.76-2.07-1.13-3.17a24.84 24.84 0 01-.86-11.58c3-19.34 9.67-36.29 16.74-54.16 3.08-7.78 6.27-15.82 9.22-24.26 6.14-17.57 4.3-35.2-5.05-48.38z\"}}]})(props);\n};\nexport function IoThunderstormOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M120 352l-24 48m40 32l-16 32m280-112l-24 48m40 32l-16 32M208 304l-16 96h48v80l80-112h-48l16-64m116.33-151.11H392.2C384.71 84.85 326.14 32 256 32a136.39 136.39 0 00-128.63 90.67h-4.57c-49.94 0-90.8 40.8-90.8 90.66h0C32 263.2 72.86 304 122.8 304h281.53C446 304 480 270 480 228.44h0c0-41.55-34-75.55-75.67-75.55z\"}}]})(props);\n};\nexport function IoThunderstormSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.84 136.9a151.25 151.25 0 00-47.6-81.9 153 153 0 00-241.81 51.86C60.5 110.16 16 156.65 16 213.33 16 272.15 63.91 320 122.8 320h72.31L176 416h48v80l112-144h-43.51l8-32h103.84a91.56 91.56 0 001.51-183.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M74.53 407.177l38.32-76.622 28.62 14.313-38.32 76.623zm23.99 64.012l30.318-60.622 28.62 14.313-30.317 60.622zm256.021-64l38.32-76.623 28.62 14.314-38.32 76.622zm24.001 64.011l30.317-60.622 28.62 14.314-30.317 60.621z\"}}]})(props);\n};\nexport function IoThunderstorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 416a16 16 0 01-14.3-23.16l24-48a16 16 0 0128.62 14.32l-24 48A16 16 0 0196 416zm24 64a16 16 0 01-14.3-23.16l16-32a16 16 0 0128.62 14.32l-16 32A16 16 0 01120 480zm256-64a16 16 0 01-14.3-23.16l24-48a16 16 0 0128.62 14.32l-24 48A16 16 0 01376 416zm24 64a16 16 0 01-14.3-23.16l16-32a16 16 0 0128.62 14.32l-16 32A16 16 0 01400 480z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M405.84 136.9a151.25 151.25 0 00-47.6-81.9 153 153 0 00-241.81 51.86C60.5 110.16 16 156.65 16 213.33 16 272.15 63.91 320 122.8 320h66.31l-12.89 77.37A16 16 0 00192 416h32v64a16 16 0 0029 9.3l80-112a16 16 0 00-13-25.3h-27.51l8-32h103.84a91.56 91.56 0 001.51-183.1z\"}}]})(props);\n};\nexport function IoTicketOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M366.05 146a46.7 46.7 0 01-2.42-63.42 3.87 3.87 0 00-.22-5.26l-44.13-44.18a3.89 3.89 0 00-5.5 0l-70.34 70.34a23.62 23.62 0 00-5.71 9.24h0a23.66 23.66 0 01-14.95 15h0a23.7 23.7 0 00-9.25 5.71L33.14 313.78a3.89 3.89 0 000 5.5l44.13 44.13a3.87 3.87 0 005.26.22 46.69 46.69 0 0165.84 65.84 3.87 3.87 0 00.22 5.26l44.13 44.13a3.89 3.89 0 005.5 0l180.4-180.39a23.7 23.7 0 005.71-9.25h0a23.66 23.66 0 0114.95-15h0a23.62 23.62 0 009.24-5.71l70.34-70.34a3.89 3.89 0 000-5.5l-44.13-44.13a3.87 3.87 0 00-5.26-.22 46.7 46.7 0 01-63.42-2.32z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M250.5 140.44l-16.51-16.51m60.53 60.53l-11.01-11m55.03 55.03l-11-11.01m60.53 60.53l-16.51-16.51\"}}]})(props);\n};\nexport function IoTicketSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.24 127.72l-10.94 10.94a29.67 29.67 0 01-42-42l10.94-10.94L314.52 16l-88 88-4 12.09-12.09 4L16 314.52l69.76 69.76 10.94-10.94a29.67 29.67 0 0142 42l-10.94 10.94L197.48 496l194.4-194.4 4-12.09 12.09-4 88-88zm-208.56 5.43l21.87-21.87 33 33-21.88 21.87zm43 43l21.88-21.88 32.52 32.52-21.88 21.88zm42.56 42.56l21.88-21.88 32.52 32.52-21.84 21.93zm75.57 75.56l-33-33 21.87-21.88 33 33z\"}}]})(props);\n};\nexport function IoTicket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490.18 181.4l-44.13-44.13a20 20 0 00-27-1 30.81 30.81 0 01-41.68-1.6 30.81 30.81 0 01-1.6-41.67 20 20 0 00-1-27L330.6 21.82a19.91 19.91 0 00-28.13 0l-70.35 70.34a39.87 39.87 0 00-9.57 15.5 7.71 7.71 0 01-4.83 4.83 39.78 39.78 0 00-15.5 9.58l-180.4 180.4a19.91 19.91 0 000 28.13L66 374.73a20 20 0 0027 1 30.69 30.69 0 0143.28 43.28 20 20 0 001 27l44.13 44.13a19.91 19.91 0 0028.13 0l180.4-180.4a39.82 39.82 0 009.58-15.49 7.69 7.69 0 014.84-4.84 39.84 39.84 0 0015.49-9.57l70.34-70.35a19.91 19.91 0 00-.01-28.09zm-228.37-29.65a16 16 0 01-22.63 0l-11.51-11.51a16 16 0 0122.63-22.62l11.51 11.5a16 16 0 010 22.63zm44 44a16 16 0 01-22.62 0l-11-11a16 16 0 1122.63-22.63l11 11a16 16 0 01.01 22.66zm44 44a16 16 0 01-22.63 0l-11-11a16 16 0 0122.63-22.62l11 11a16 16 0 01.05 22.67zm44.43 44.54a16 16 0 01-22.63 0l-11.44-11.5a16 16 0 1122.68-22.57l11.45 11.49a16 16 0 01-.01 22.63z\"}}]})(props);\n};\nexport function IoTimeOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 128v144h96\"}}]})(props);\n};\nexport function IoTimeSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256c0 114.69 93.32 208 208 208 114.86 0 208-93.14 208-208 0-114.69-93.31-208-208-208zm108 240H244a4 4 0 01-4-4V116a4 4 0 014-4h24a4 4 0 014 4v140h92a4 4 0 014 4v24a4 4 0 01-4 4z\"}}]})(props);\n};\nexport function IoTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm96 240h-96a16 16 0 01-16-16V128a16 16 0 0132 0v128h80a16 16 0 010 32z\"}}]})(props);\n};\nexport function IoTimerOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112.91 128A191.85 191.85 0 0064 254c-1.18 106.35 85.65 193.8 192 194 106.2.2 192-85.83 192-192 0-104.54-83.55-189.61-187.5-192a4.36 4.36 0 00-4.5 4.37V152\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M233.38 278.63l-79-113a8.13 8.13 0 0111.32-11.32l113 79a32.5 32.5 0 01-37.25 53.26 33.21 33.21 0 01-8.07-7.94z\"}}]})(props);\n};\nexport function IoTimerSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.12 48 48 141.12 48 256s93.12 208 208 208 208-93.12 208-208S370.88 48 256 48zm0 384c-97 0-176-78.95-176-176a174.55 174.55 0 0153.87-126.72L279 233l-19 30-125-91c-13 23-26.7 46-26.7 84 0 81.44 66.26 147.7 147.7 147.7S403.7 337.44 403.7 256c0-76.67-58.72-139.88-133.55-147v55h-28.3V79.89c4.24.07 8.94.11 14.15.11 97.05 0 176 79 176 176s-78.95 176-176 176z\"}}]})(props);\n};\nexport function IoTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.12 48 48 141.12 48 256s93.12 208 208 208 208-93.12 208-208S370.88 48 256 48zm-82.33 114.34l105 71a32.5 32.5 0 01-37.25 53.26 33.21 33.21 0 01-8-8l-71-105a8.13 8.13 0 0111.32-11.32zM256 432c-97 0-176-78.95-176-176a174.55 174.55 0 0153.87-126.72 14.15 14.15 0 1119.64 20.37A146.53 146.53 0 00108.3 256c0 81.44 66.26 147.7 147.7 147.7S403.7 337.44 403.7 256c0-76.67-58.72-139.88-133.55-147v55a14.15 14.15 0 11-28.3 0V94.15A14.15 14.15 0 01256 80c97.05 0 176 79 176 176s-78.95 176-176 176z\"}}]})(props);\n};\nexport function IoTodayOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"384\",\"x\":\"48\",\"y\":\"80\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 48v32m256-32v32\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"96\",\"height\":\"96\",\"x\":\"112\",\"y\":\"224\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"13\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M464 160H48\"}}]})(props);\n};\nexport function IoTodaySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm80-238.86a9.14 9.14 0 019.14-9.14h109.72a9.14 9.14 0 019.14 9.14v109.72a9.14 9.14 0 01-9.14 9.14H121.14a9.14 9.14 0 01-9.14-9.14zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z\"}}]})(props);\n};\nexport function IoToday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4v-12a64 64 0 00-64-64zm61 112H35a3 3 0 00-3 3v237a64 64 0 0064 64h320a64 64 0 0064-64V179a3 3 0 00-3-3zM224 307.43A28.57 28.57 0 01195.43 336h-70.86A28.57 28.57 0 0196 307.43v-70.86A28.57 28.57 0 01124.57 208h70.86A28.57 28.57 0 01224 236.57z\"}}]})(props);\n};\nexport function IoToggleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"368\",\"cy\":\"256\",\"r\":\"128\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"480\",\"height\":\"256\",\"x\":\"16\",\"y\":\"128\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"128\",\"ry\":\"128\"}}]})(props);\n};\nexport function IoToggleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 112H144a144 144 0 000 288h224a144 144 0 000-288zm0 230a86 86 0 1186-86 85.88 85.88 0 01-86 86z\"}}]})(props);\n};\nexport function IoToggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 112H144C64.6 112 0 176.6 0 256s64.6 144 144 144h224c79.4 0 144-64.6 144-144s-64.6-144-144-144zm0 256a112 112 0 11112-112 112.12 112.12 0 01-112 112z\"}}]})(props);\n};\nexport function IoTrailSignOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 400v64m0-256v64m0-224v32m160 128H102.63a16 16 0 01-11.32-4.69L32 144l59.31-59.31A16 16 0 01102.63 80H416a16 16 0 0116 16v96a16 16 0 01-16 16zM96 400h313.37a16 16 0 0011.32-4.69L480 336l-59.31-59.31a16 16 0 00-11.32-4.69H96a16 16 0 00-16 16v96a16 16 0 0016 16z\"}}]})(props);\n};\nexport function IoTrailSignSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.63 336l-80-80H278v-32h170V64H278V32h-44v32H89.37l-80 80 80 80H234v32H64v160h170v64h44v-64h144.63z\"}}]})(props);\n};\nexport function IoTrailSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M491.31 324.69L432 265.37a31.8 31.8 0 00-22.63-9.37H272v-32h144a32 32 0 0032-32V96a32 32 0 00-32-32H272V48a16 16 0 00-32 0v16H102.63A31.8 31.8 0 0080 73.37l-59.31 59.32a16 16 0 000 22.62L80 214.63a31.8 31.8 0 0022.63 9.37H240v32H96a32 32 0 00-32 32v96a32 32 0 0032 32h144v48a16 16 0 0032 0v-48h137.37a31.8 31.8 0 0022.63-9.37l59.31-59.32a16 16 0 000-22.62z\"}}]})(props);\n};\nexport function IoTrainOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M344 48h-24a16 16 0 00-16-16h-96a16 16 0 00-16 16h-24a56.16 56.16 0 00-56 56v247c0 35.3 144 65 144 65s144-29.7 144-65V104a56 56 0 00-56-56zm-88 304a48 48 0 1148-48 48 48 0 01-48 48zm96-160a16 16 0 01-16 16H176a16 16 0 01-16-16v-64a16 16 0 0116-16h160a16 16 0 0116 16zM144 464h224m-32-32l48 48m-208-48l-48 48\"}}]})(props);\n};\nexport function IoTrainSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32h-64a16 16 0 00-16-16h-96a16 16 0 00-16 16h-64c-16 0-32 16-32 32v288c0 23.92 160 80 160 80s160-56.74 160-80V64c0-16-16-32-32-32zM256 352a48 48 0 1148-48 48 48 0 01-48 48zm112-152a8 8 0 01-8 8H152a8 8 0 01-8-8v-80a8 8 0 018-8h208a8 8 0 018 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M314 432l15.32 16H182.58L198 432l-32-13-76.62 77h45.2l16-16h210.74l16 16h45.3l-76.36-77.75L314 432z\"}}]})(props);\n};\nexport function IoTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256\",\"cy\":\"304\",\"rx\":\"32.05\",\"ry\":\"31.94\",\"transform\":\"rotate(-45 256.001 304)\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 32h-15a10 10 0 01-7.87-3.78A31.94 31.94 0 00304 16h-96a32 32 0 00-26.11 13.52A6 6 0 01177 32h-17c-36.81 0-64 28.84-64 64v255c0 23.27 25.6 42.06 83 60.94a753 753 0 0073.77 19.73 16 16 0 006.46 0A753 753 0 00333 411.94c57.4-18.88 83-37.67 83-60.94V96a64 64 0 00-64-64zm-168 96h144a8 8 0 018 8v48a8 8 0 01-8 8H184a8 8 0 01-8-8v-48a8 8 0 018-8zm76.18 239.87a64 64 0 1159.69-59.69 64.07 64.07 0 01-59.69 59.69z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M395.31 468.69L347.63 421c-6.09-6.1-16-6.66-22.38-.86a16 16 0 00-.56 23.16l4.68 4.69H182.63l4.36-4.37c6.1-6.09 6.66-16 .86-22.38a16 16 0 00-23.16-.56l-48 48a16 16 0 1022.62 22.62l11.32-11.3h210.74l11.32 11.31a16 16 0 0022.62-22.62z\"}}]})(props);\n};\nexport function IoTransgenderOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"128\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M448 352l-96 96M176 80l-95.98 95.98M464 128V48h-80M48 128V48h80m336 0L346.5 165.5M48 48l117.49 117.49M464 464L346.65 346.37\"}}]})(props);\n};\nexport function IoTransgenderSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 448.94l-48.94-49.08L464 366.92l-31.1-31.11-32.9 32.9-23.55-23.61a149.64 149.64 0 00-.1-178.45l59.55-59.56V144h44V32h-112v44h36.87l-59.55 59.55a149.65 149.65 0 00-178.59 0l-7.55-7.55 33-33L161 63.88l-33 33L107.09 76H144V32H32v112h44v-36.91L96.87 128l-33 33L95 192.05l33-33 7.56 7.57A149.18 149.18 0 00106 255.94c0 82.69 67.27 150 150 150a149.12 149.12 0 0089.44-29.67l23.51 23.58-33.14 33.05 31.11 31.1 33-33 48.9 49zm-330-193a106 106 0 11106 106 106.09 106.09 0 01-106-106z\"}}]})(props);\n};\nexport function IoTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458 32h-68a22 22 0 000 44h14.89l-59.57 59.57a149.69 149.69 0 00-178.64 0l-7.57-7.57 26.45-26.44a22 22 0 00-31.12-31.12L128 96.89 107.11 76H122a22 22 0 000-44H54a22 22 0 00-22 22v68a22 22 0 0044 0v-14.89L96.89 128l-26.42 26.42a22 22 0 1031.11 31.11L128 159.11l7.57 7.57A149.19 149.19 0 00106 256c0 82.71 67.29 150 150 150a149.2 149.2 0 0089.46-29.67L369 399.9l-26.54 26.54a22 22 0 0031.12 31.12l26.49-26.5 42.37 42.48a22 22 0 0031.16-31.08L431.17 400l26.39-26.39a22 22 0 00-31.12-31.12l-26.35 26.35-23.55-23.62a149.68 149.68 0 00-.11-178.49L436 107.11V122a22 22 0 0044 0V54a22 22 0 00-22-22zM150 256a106 106 0 11106 106 106.12 106.12 0 01-106-106z\"}}]})(props);\n};\nexport function IoTrashBinOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M432 144l-28.67 275.74A32 32 0 01371.55 448H140.46a32 32 0 01-31.78-28.26L80 144\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"80\",\"x\":\"32\",\"y\":\"64\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"16\",\"ry\":\"16\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M312 240L200 352m112 0L200 240\"}}]})(props);\n};\nexport function IoTrashBinSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M337.46 240L312 214.54l-56 56-56-56L174.54 240l56 56-56 56L200 377.46l56-56 56 56L337.46 352l-56-56 56-56z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M337.46 240L312 214.54l-56 56-56-56L174.54 240l56 56-56 56L200 377.46l56-56 56 56L337.46 352l-56-56 56-56z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M64 160l29.74 282.51A24 24 0 00117.61 464h276.78a24 24 0 0023.87-21.49L448 160zm248 217.46l-56-56-56 56L174.54 352l56-56-56-56L200 214.54l56 56 56-56L337.46 240l-56 56 56 56z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"80\",\"x\":\"32\",\"y\":\"48\",\"rx\":\"12\",\"ry\":\"12\"}}]})(props);\n};\nexport function IoTrashBin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"80\",\"x\":\"32\",\"y\":\"48\",\"rx\":\"32\",\"ry\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M74.45 160a8 8 0 00-8 8.83l26.31 252.56a1.5 1.5 0 000 .22A48 48 0 00140.45 464h231.09a48 48 0 0047.67-42.39v-.21l26.27-252.57a8 8 0 00-8-8.83zm248.86 180.69a16 16 0 11-22.63 22.62L256 318.63l-44.69 44.68a16 16 0 01-22.63-22.62L233.37 296l-44.69-44.69a16 16 0 0122.63-22.62L256 273.37l44.68-44.68a16 16 0 0122.63 22.62L278.62 296z\"}}]})(props);\n};\nexport function IoTrashOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 112l20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M80 112h352\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M192 112V72h0a23.93 23.93 0 0124-24h80a23.93 23.93 0 0124 24h0v40m-64 64v224m-72-224l8 224m136-224l-8 224\"}}]})(props);\n};\nexport function IoTrashSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M296 64h-80a7.91 7.91 0 00-8 8v24h96V72a7.91 7.91 0 00-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M292 64h-72a4 4 0 00-4 4v28h80V68a4 4 0 00-4-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M447.55 96H336V48a16 16 0 00-16-16H192a16 16 0 00-16 16v48H64.45L64 136h33l20.09 314A32 32 0 00149 480h214a32 32 0 0031.93-29.95L415 136h33zM176 416l-9-256h33l9 256zm96 0h-32V160h32zm24-320h-80V68a4 4 0 014-4h72a4 4 0 014 4zm40 320h-33l9-256h33z\"}}]})(props);\n};\nexport function IoTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M296 64h-80a7.91 7.91 0 00-8 8v24h96V72a7.91 7.91 0 00-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96h-96V72a40 40 0 00-40-40h-80a40 40 0 00-40 40v24H80a16 16 0 000 32h17l19 304.92c1.42 26.85 22 47.08 48 47.08h184c26.13 0 46.3-19.78 48-47l19-305h17a16 16 0 000-32zM192.57 416H192a16 16 0 01-16-15.43l-8-224a16 16 0 1132-1.14l8 224A16 16 0 01192.57 416zM272 400a16 16 0 01-32 0V176a16 16 0 0132 0zm32-304h-96V72a7.91 7.91 0 018-8h80a7.91 7.91 0 018 8zm32 304.57A16 16 0 01320 416h-.58A16 16 0 01304 399.43l8-224a16 16 0 1132 1.14z\"}}]})(props);\n};\nexport function IoTrendingDownOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 368h112V256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 144l121.37 121.37a32 32 0 0045.26 0l50.74-50.74a32 32 0 0145.26 0L448 352\"}}]})(props);\n};\nexport function IoTrendingDownSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M352 368h112V256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M48 144l144 144 96-96 160 160\"}}]})(props);\n};\nexport function IoTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 368h112V256\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 144l121.37 121.37a32 32 0 0045.26 0l50.74-50.74a32 32 0 0145.26 0L448 352\"}}]})(props);\n};\nexport function IoTrendingUpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 144h112v112\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 368l121.37-121.37a32 32 0 0145.26 0l50.74 50.74a32 32 0 0045.26 0L448 160\"}}]})(props);\n};\nexport function IoTrendingUpSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M352 144h112v112\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M48 368l144-144 96 96 160-160\"}}]})(props);\n};\nexport function IoTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 144h112v112\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 368l121.37-121.37a32 32 0 0145.26 0l50.74 50.74a32 32 0 0045.26 0L448 160\"}}]})(props);\n};\nexport function IoTriangleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M48 448L256 64l208 384H48z\"}}]})(props);\n};\nexport function IoTriangleSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32L20 464h472L256 32z\"}}]})(props);\n};\nexport function IoTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 464H48a16 16 0 01-14.07-23.62l208-384a16 16 0 0128.14 0l208 384A16 16 0 01464 464z\"}}]})(props);\n};\nexport function IoTrophyOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 464h160m-80 0V336m128-112c0-50.64-.08-134.63-.12-160a16 16 0 00-16-16l-223.79.26a16 16 0 00-16 15.95c0 30.58-.13 129.17-.13 159.79 0 64.28 83 112 128 112S384 288.28 384 224z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128 96H48v16c0 55.22 33.55 112 80 112M384 96h80v16c0 55.22-33.55 112-80 112\"}}]})(props);\n};\nexport function IoTrophySharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.9 80V32H112v48H32v38c0 32 9.5 62.79 26.76 86.61 13.33 18.4 34.17 31.1 52.91 37.21 5.44 29.29 20.2 57.13 50.19 79.83 22 16.66 48.45 28.87 72.14 33.86V436h-74v44h192v-44h-74v-80.49c23.69-5 50.13-17.2 72.14-33.86 30-22.7 44.75-50.54 50.19-79.83 18.74-6.11 39.58-18.81 52.91-37.21C470.5 180.79 480 150 480 118V80zM94.4 178.8c-10.68-14.68-17.17-34.4-18.24-54.8H112v67.37c-3.94-1.14-12.92-6.12-17.6-12.57zm323.2 0c-4.6 6.61-11.6 12.58-17.6 12.58 0-22.4 0-46.29-.05-67.38h35.9c-1.08 20.4-7.85 39.9-18.25 54.8z\"}}]})(props);\n};\nexport function IoTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 80h-60.1a4 4 0 01-4-4V63.92a32 32 0 00-32-31.92l-223.79.26a32 32 0 00-31.94 31.93V76a4 4 0 01-4 4H48a16 16 0 00-16 16v16c0 54.53 30 112.45 76.52 125.35a7.82 7.82 0 015.55 5.9c5.77 26.89 23.52 52.5 51.41 73.61 20.91 15.83 45.85 27.5 68.27 32.48a8 8 0 016.25 7.8V444a4 4 0 01-4 4h-59.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00176 480h159.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00336 448h-60a4 4 0 01-4-4v-86.86a8 8 0 016.25-7.8c22.42-5 47.36-16.65 68.27-32.48 27.89-21.11 45.64-46.72 51.41-73.61a7.82 7.82 0 015.55-5.9C450 224.45 480 166.53 480 112V96a16 16 0 00-16-16zM112 198.22a4 4 0 01-6 3.45c-10.26-6.11-17.75-15.37-22.14-21.89-11.91-17.69-19-40.67-19.79-63.63a4 4 0 014-4.15h40a4 4 0 014 4c-.02 27.45-.07 58.87-.07 82.22zm316.13-18.44c-4.39 6.52-11.87 15.78-22.13 21.89a4 4 0 01-6-3.46c0-26.51 0-56.63-.05-82.21a4 4 0 014-4h40a4 4 0 014 4.15c-.79 22.96-7.9 45.94-19.81 63.63z\"}}]})(props);\n};\nexport function IoTvOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"448\",\"height\":\"272\",\"x\":\"32\",\"y\":\"96\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"32.14\",\"ry\":\"32.14\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M128 416h256\"}}]})(props);\n};\nexport function IoTvSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 384H24a8 8 0 01-8-8V88a8 8 0 018-8h464a8 8 0 018 8v288a8 8 0 01-8 8z\"}},{\"tag\":\"rect\",\"attr\":{\"width\":\"288\",\"height\":\"32\",\"x\":\"112\",\"y\":\"400\",\"rx\":\"4\",\"ry\":\"4\"}}]})(props);\n};\nexport function IoTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.86 384H64.14A48.2 48.2 0 0116 335.86V128.14A48.2 48.2 0 0164.14 80h383.72A48.2 48.2 0 01496 128.14v207.72A48.2 48.2 0 01447.86 384z\"}},{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M128 416h256\"}}]})(props);\n};\nexport function IoUmbrellaOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M256 272v160a32 32 0 01-32 32h0a32 32 0 01-32-32m272-160c0-114.88-93.12-208-208-208S48 157.12 48 272h0a67.88 67.88 0 0196 0h0a78.28 78.28 0 01102.31-7.27L256 272l9.69-7.27A78.28 78.28 0 01368 272h0a67.88 67.88 0 0196 0zM256 64V48\"}}]})(props);\n};\nexport function IoUmbrellaSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.93 280l-.26-.3c-.9-.74-1.83-1.43-2.77-2.1zm254.15 0l2.62-2.12c-.79.58-1.57 1.17-2.34 1.79z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M463.14 186.44A224.55 224.55 0 00272 48.57V32h-32v16.57A223.58 223.58 0 0032 272v22.52l12.25-11.21a62.63 62.63 0 0181.43-5.88l.22.17c.94.67 1.87 1.36 2.77 2.1q2.09 1.69 4 3.61L144 294.63l11.31-11.32a62.59 62.59 0 0181.4-5.78L240 280v152a16 16 0 01-32 0v-16h-32v16a48 48 0 0096 0V280l3.29-2.47a62.59 62.59 0 0181.4 5.78L368 294.63l11.31-11.32q1.95-1.94 4.05-3.64c.77-.62 1.55-1.21 2.34-1.79l.26-.21c24.63-18.47 60-16.13 81.81 5.64l12.23 11.2V272a223.62 223.62 0 00-16.86-85.56z\"}}]})(props);\n};\nexport function IoUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.39 113.61a222.26 222.26 0 00-136.33-64.54 8.09 8.09 0 01-6.88-5.62 15.79 15.79 0 00-30.36 0 8.09 8.09 0 01-6.88 5.62A224 224 0 0032 271.52a16.41 16.41 0 007.24 13.87 16 16 0 0020.07-2.08 51.89 51.89 0 0173.31-.06 15.94 15.94 0 0022.6.15 62.59 62.59 0 0181.49-5.87 8.24 8.24 0 013.29 6.59v147.42c0 8.6-6.6 16-15.19 16.44A16 16 0 01208 432a16 16 0 00-16.29-16c-9 .16-15.9 8.11-15.7 17.1a48.06 48.06 0 0047.37 46.9c26.88.34 48.62-21.93 48.62-48.81V284.12a8.24 8.24 0 013.29-6.59 62.59 62.59 0 0181.4 5.78 16 16 0 0022.62 0 51.91 51.91 0 0173.38 0 16 16 0 0019.54 2.41 16.4 16.4 0 007.77-14.21 222.54 222.54 0 00-65.61-157.9z\"}}]})(props);\n};\nexport function IoUnlinkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"36\",\"d\":\"M208 352h-64a96 96 0 010-192h64m96 0h64a96 96 0 010 192h-64\"}}]})(props);\n};\nexport function IoUnlinkSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M200.66 352H144a96 96 0 010-192h55.41m113.18 0H368a96 96 0 010 192h-56.66\"}}]})(props);\n};\nexport function IoUnlink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"48\",\"d\":\"M200.66 352H144a96 96 0 010-192h55.41m113.18 0H368a96 96 0 010 192h-56.66\"}}]})(props);\n};\nexport function IoVideocamOffOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M374.79 308.78L457.5 367a16 16 0 0022.5-14.62V159.62A16 16 0 00457.5 145l-82.71 58.22A16 16 0 00368 216.3v79.4a16 16 0 006.79 13.08z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M50.19 140.57A51.94 51.94 0 0032 180v152a52.15 52.15 0 0052 52h184a51.6 51.6 0 0022-4.9M208 128h60.48A51.68 51.68 0 01320 179.52V248m96 168L80 80\"}}]})(props);\n};\nexport function IoVideocamOffSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M57.376 79.998l22.627-22.627 358.63 358.63-22.627 22.628zM32 112a16 16 0 00-16 16v256a16 16 0 0016 16h288a15.89 15.89 0 009.34-3l-285-285zm304 96v-80a16 16 0 00-16-16H179.63l245.44 245.44L496 400V112z\"}}]})(props);\n};\nexport function IoVideocamOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 179.52A67.52 67.52 0 00268.48 112h-79.2a4 4 0 00-2.82 6.83l142.71 142.71a4 4 0 006.83-2.82zM16 180v152a68 68 0 0068 68h184a67.66 67.66 0 0042.84-15.24 4 4 0 00.33-6L54.41 122a4 4 0 00-4.87-.62A68 68 0 0016 180zm448 204.39a32 32 0 01-13-2.77 15.77 15.77 0 01-2.71-1.54l-82.71-58.22A32 32 0 01352 295.7v-79.4a32 32 0 0113.58-26.16l82.71-58.22a15.77 15.77 0 012.71-1.54 32 32 0 0145 29.24v192.76a32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M416 416L80 80\"}}]})(props);\n};\nexport function IoVideocamOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M374.79 308.78L457.5 367a16 16 0 0022.5-14.62V159.62A16 16 0 00457.5 145l-82.71 58.22A16 16 0 00368 216.3v79.4a16 16 0 006.79 13.08z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M268 384H84a52.15 52.15 0 01-52-52V180a52.15 52.15 0 0152-52h184.48A51.68 51.68 0 01320 179.52V332a52.15 52.15 0 01-52 52z\"}}]})(props);\n};\nexport function IoVideocamSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 208v-80a16 16 0 00-16-16H32a16 16 0 00-16 16v256a16 16 0 0016 16h288a16 16 0 0016-16v-80l160 96V112z\"}}]})(props);\n};\nexport function IoVideocam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 384.39a32 32 0 01-13-2.77 15.77 15.77 0 01-2.71-1.54l-82.71-58.22A32 32 0 01352 295.7v-79.4a32 32 0 0113.58-26.16l82.71-58.22a15.77 15.77 0 012.71-1.54 32 32 0 0145 29.24v192.76a32 32 0 01-32 32zM268 400H84a68.07 68.07 0 01-68-68V180a68.07 68.07 0 0168-68h184.48A67.6 67.6 0 01336 179.52V332a68.07 68.07 0 01-68 68z\"}}]})(props);\n};\nexport function IoVolumeHighOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M126 192H56a8 8 0 00-8 8v112a8 8 0 008 8h69.65a15.93 15.93 0 0110.14 3.54l91.47 74.89A8 8 0 00240 392V120a8 8 0 00-12.74-6.43l-91.47 74.89A15 15 0 01126 192zm194 128c9.74-19.38 16-40.84 16-64 0-23.48-6-44.42-16-64m48 176c19.48-33.92 32-64.06 32-112s-12-77.74-32-112m48 272c30-46 48-91.43 48-160s-18-113-48-160\"}}]})(props);\n};\nexport function IoVolumeHighSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M320 320c9.74-19.38 16-40.84 16-64 0-23.48-6-44.42-16-64m48 176c19.48-33.92 32-64.06 32-112s-12-77.74-32-112m48 272c30-46 48-91.43 48-160s-18-113-48-160\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M125.65 176.1H32v159.8h93.65L256 440V72L125.65 176.1z\"}}]})(props);\n};\nexport function IoVolumeHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 416a23.88 23.88 0 01-14.2-4.68 8.27 8.27 0 01-.66-.51L125.76 336H56a24 24 0 01-24-24V200a24 24 0 0124-24h69.75l91.37-74.81a8.27 8.27 0 01.66-.51A24 24 0 01256 120v272a24 24 0 01-24 24zm-106.18-80zm-.27-159.86zM320 336a16 16 0 01-14.29-23.19c9.49-18.87 14.3-38 14.3-56.81 0-19.38-4.66-37.94-14.25-56.73a16 16 0 0128.5-14.54C346.19 208.12 352 231.44 352 256c0 23.86-6 47.81-17.7 71.19A16 16 0 01320 336z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M368 384a16 16 0 01-13.86-24C373.05 327.09 384 299.51 384 256c0-44.17-10.93-71.56-29.82-103.94a16 16 0 0127.64-16.12C402.92 172.11 416 204.81 416 256c0 50.43-13.06 83.29-34.13 120a16 16 0 01-13.87 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M416 432a16 16 0 01-13.39-24.74C429.85 365.47 448 323.76 448 256c0-66.5-18.18-108.62-45.49-151.39a16 16 0 1127-17.22C459.81 134.89 480 181.74 480 256c0 64.75-14.66 113.63-50.6 168.74A16 16 0 01416 432z\"}}]})(props);\n};\nexport function IoVolumeLowOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M189.65 192H120a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61zM384 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64\"}}]})(props);\n};\nexport function IoVolumeLowSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391.12 341.48l-28.6-14.36 7.18-14.3c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73L362.48 185 391 170.48l7.26 14.25C410.2 208.16 416 231.47 416 256c0 23.83-6 47.78-17.7 71.18zM189.65 176.1H96v159.8h93.65L320 440V72L189.65 176.1z\"}}]})(props);\n};\nexport function IoVolumeLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 416.19a23.92 23.92 0 01-14.21-4.69l-.66-.51-91.46-75H120a24 24 0 01-24-24V200a24 24 0 0124-24h69.65l91.46-75 .66-.51A24 24 0 01320 119.83v272.34a24 24 0 01-24 24zM384 336a16 16 0 01-14.29-23.18c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73a16 16 0 0128.5-14.54C410.2 208.16 416 231.47 416 256c0 23.83-6 47.78-17.7 71.18A16 16 0 01384 336z\"}}]})(props);\n};\nexport function IoVolumeMediumOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M157.65 192H88a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61zM352 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64m48 176c19.48-34 32-64 32-112s-12-77.7-32-112\"}}]})(props);\n};\nexport function IoVolumeMediumSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M157.65 176.1H64v159.8h93.65L288 440V72L157.65 176.1z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64m48 176c19.48-34 32-64 32-112s-12-77.7-32-112\"}}]})(props);\n};\nexport function IoVolumeMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264 416.19a23.92 23.92 0 01-14.21-4.69l-.66-.51-91.46-75H88a24 24 0 01-24-24V200a24 24 0 0124-24h69.65l91.46-75 .66-.51A24 24 0 01288 119.83v272.34a24 24 0 01-24 24zM352 336a16 16 0 01-14.29-23.18c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73a16 16 0 0128.5-14.54C378.2 208.16 384 231.47 384 256c0 23.83-6 47.78-17.7 71.18A16 16 0 01352 336z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 384a16 16 0 01-13.87-24C405 327.05 416 299.45 416 256c0-44.12-10.94-71.52-29.83-103.95A16 16 0 01413.83 136C434.92 172.16 448 204.88 448 256c0 50.36-13.06 83.24-34.12 120a16 16 0 01-13.88 8z\"}}]})(props);\n};\nexport function IoVolumeMuteOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M416 432L64 80\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136.92v33.8a4 4 0 001.17 2.82l24 24a4 4 0 006.83-2.82v-74.15a24.53 24.53 0 00-12.67-21.72 23.91 23.91 0 00-25.55 1.83 8.27 8.27 0 00-.66.51l-31.94 26.15a4 4 0 00-.29 5.92l17.05 17.06a4 4 0 005.37.26zm0 238.16l-78.07-63.92a32 32 0 00-20.28-7.16H64v-96h50.72a4 4 0 002.82-6.83l-24-24a4 4 0 00-2.82-1.17H56a24 24 0 00-24 24v112a24 24 0 0024 24h69.76l91.36 74.8a8.27 8.27 0 00.66.51 23.93 23.93 0 0025.85 1.69A24.49 24.49 0 00256 391.45v-50.17a4 4 0 00-1.17-2.82l-24-24a4 4 0 00-6.83 2.82zM125.82 336zM352 256c0-24.56-5.81-47.88-17.75-71.27a16 16 0 00-28.5 14.54C315.34 218.06 320 236.62 320 256q0 4-.31 8.13a8 8 0 002.32 6.25l19.66 19.67a4 4 0 006.75-2A146.89 146.89 0 00352 256zm64 0c0-51.19-13.08-83.89-34.18-120.06a16 16 0 00-27.64 16.12C373.07 184.44 384 211.83 384 256c0 23.83-3.29 42.88-9.37 60.65a8 8 0 001.9 8.26l16.77 16.76a4 4 0 006.52-1.27C410.09 315.88 416 289.91 416 256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 256c0-74.26-20.19-121.11-50.51-168.61a16 16 0 10-27 17.22C429.82 147.38 448 189.5 448 256c0 47.45-8.9 82.12-23.59 113a4 4 0 00.77 4.55L443 391.39a4 4 0 006.4-1C470.88 348.22 480 307 480 256z\"}}]})(props);\n};\nexport function IoVolumeMuteSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M416 432L64 80\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 256c0-24.56-5.81-47.88-17.75-71.27L327 170.47 298.48 185l7.27 14.25C315.34 218.06 320 236.62 320 256a112.91 112.91 0 01-.63 11.74l27.32 27.32A148.8 148.8 0 00352 256zm64 0c0-51.19-13.08-83.89-34.18-120.06l-8.06-13.82-27.64 16.12 8.06 13.82C373.07 184.44 384 211.83 384 256c0 25.93-3.89 46.21-11 65.33l24.5 24.51C409.19 319.68 416 292.42 416 256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 256c0-74.26-20.19-121.11-50.51-168.61l-8.61-13.49-27 17.22 8.61 13.49C429.82 147.38 448 189.5 448 256c0 48.76-9.4 84-24.82 115.55l23.7 23.7C470.16 351.39 480 309 480 256zM256 72l-73.6 58.78 73.6 73.59V72zM32 176.1v159.8h93.65L256 440V339.63L92.47 176.1H32z\"}}]})(props);\n};\nexport function IoVolumeMute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M416 432L64 80\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M243.33 98.86a23.89 23.89 0 00-25.55 1.82l-.66.51-28.52 23.35a8 8 0 00-.59 11.85l54.33 54.33a8 8 0 0013.66-5.66v-64.49a24.51 24.51 0 00-12.67-21.71zm8 236.43L96.69 180.69A16 16 0 0085.38 176H56a24 24 0 00-24 24v112a24 24 0 0024 24h69.76l92 75.31a23.9 23.9 0 0025.87 1.69A24.51 24.51 0 00256 391.45v-44.86a16 16 0 00-4.67-11.3zM352 256c0-24.56-5.81-47.87-17.75-71.27a16 16 0 10-28.5 14.55C315.34 218.06 320 236.62 320 256q0 4-.31 8.13a8 8 0 002.32 6.25l14.36 14.36a8 8 0 0013.55-4.31A146 146 0 00352 256zm64 0c0-51.18-13.08-83.89-34.18-120.06a16 16 0 00-27.64 16.12C373.07 184.44 384 211.83 384 256c0 23.83-3.29 42.88-9.37 60.65a8 8 0 001.9 8.26L389 337.4a8 8 0 0013.13-2.79C411 311.76 416 287.26 416 256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480 256c0-74.25-20.19-121.11-50.51-168.61a16 16 0 10-27 17.22C429.82 147.38 448 189.5 448 256c0 46.19-8.43 80.27-22.43 110.53a8 8 0 001.59 9l11.92 11.92a8 8 0 0012.92-2.16C471.6 344.9 480 305 480 256z\"}}]})(props);\n};\nexport function IoVolumeOffOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M237.65 192H168a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61z\"}}]})(props);\n};\nexport function IoVolumeOffSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M237.65 176.1H144v159.8h93.65L368 440V72L237.65 176.1z\"}}]})(props);\n};\nexport function IoVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 416a23.92 23.92 0 01-14.21-4.69c-.23-.16-.44-.33-.66-.51l-91.46-74.9H168a24 24 0 01-24-24V200.07a24 24 0 0124-24h69.65l91.46-74.9c.22-.18.43-.35.66-.51A24 24 0 01368 120v272a24 24 0 01-24 24z\"}}]})(props);\n};\nexport function IoWalkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M314.21 482.32l-56.77-114.74-44.89-57.39a72.82 72.82 0 01-10.13-37.05V144h15.67a40.22 40.22 0 0140.23 40.22v183.36M127.9 293.05v-74.52S165.16 144 202.42 144M370.1 274.42L304 231M170.53 478.36L224 400\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"258.32\",\"cy\":\"69.48\",\"r\":\"37.26\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\"}}]})(props);\n};\nexport function IoWalkSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M315.09 481.38l-56.95-115.12-45-57.56a73.11 73.11 0 01-10.16-37.17V142h15.73A40.36 40.36 0 01259 182.32v162.52\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M128.18 291.5v-74.77l64.95-65.1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M376.35 295.73l-83.95-56.38v-44.68l104.68 72.95-20.73 28.11zM175.13 498.58l-21.43-26.91 80.33-81.54 15.53 32.07-74.43 76.38z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"259.02\",\"cy\":\"67.21\",\"r\":\"37.38\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"16\"}}]})(props);\n};\nexport function IoWalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M312.55 479.9l-56.42-114-44.62-57a72.37 72.37 0 01-10.06-36.9V143.64H217a40 40 0 0140 40v182.21\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M127.38 291.78v-74.07s37-74.07 74.07-74.07\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M368.09 291.78a18.49 18.49 0 01-10.26-3.11L297.7 250a21.18 21.18 0 01-9.7-17.79v-23.7a5.65 5.65 0 018.69-4.77l81.65 54.11a18.52 18.52 0 01-10.29 33.93zM171.91 493.47a18.5 18.5 0 01-14.83-7.41c-6.14-8.18-4-17.18 3.7-25.92l59.95-74.66a7.41 7.41 0 0110.76 2.06c1.56 2.54 3.38 5.65 5.19 9.09 5.24 9.95 6 16.11-1.68 25.7-8 10-52 67.44-52 67.44-2.62 2.98-7.23 3.7-11.09 3.7z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"257\",\"cy\":\"69.56\",\"r\":\"37.04\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"16\"}}]})(props);\n};\nexport function IoWalletOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"416\",\"height\":\"288\",\"x\":\"48\",\"y\":\"144\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M411.36 144v-30A50 50 0 00352 64.9L88.64 109.85A50 50 0 0048 159v49\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M368 320a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoWalletSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.5 104H432V51.52a16 16 0 00-19.14-15.69l-368 60.48a16 16 0 00-12 10.47A39.69 39.69 0 0147.5 104zm416 24h-416a16 16 0 00-16 16v288a16 16 0 0016 16h416a16 16 0 0016-16V144a16 16 0 00-16-16zM368 320a32 32 0 1132-32 32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M31.33 259.5V116c0-12.33 5.72-18.48 15.42-20 35.2-5.53 108.58-8.5 108.58-8.5s-8.33 16-27.33 16V128c18.5 0 31.33 23.5 31.33 23.5L84.83 236z\"}}]})(props);\n};\nexport function IoWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M95.5 104h320a87.73 87.73 0 0111.18.71 66 66 0 00-77.51-55.56L86 94.08h-.3a66 66 0 00-41.07 26.13A87.57 87.57 0 0195.5 104zm320 24h-320a64.07 64.07 0 00-64 64v192a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64V192a64.07 64.07 0 00-64-64zM368 320a32 32 0 1132-32 32 32 0 01-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M32 259.5V160c0-21.67 12-58 53.65-65.87C121 87.5 156 87.5 156 87.5s23 16 4 16-18.5 24.5 0 24.5 0 23.5 0 23.5L85.5 236z\"}}]})(props);\n};\nexport function IoWarningOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M85.57 446.25h340.86a32 32 0 0028.17-47.17L284.18 82.58c-12.09-22.44-44.27-22.44-56.36 0L57.4 399.08a32 32 0 0028.17 47.17z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M250.26 195.39l5.74 122 5.73-121.95a5.74 5.74 0 00-5.79-6h0a5.74 5.74 0 00-5.68 5.95z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 397.25a20 20 0 1120-20 20 20 0 01-20 20z\"}}]})(props);\n};\nexport function IoWarningSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479 447.77L268.43 56.64a8 8 0 00-14.09 0L43.73 447.77a8 8 0 007.05 11.79H472a8 8 0 007-11.79zm-197.62-36.29h-40v-40h40zm-4-63.92h-32l-6-160h44z\"}}]})(props);\n};\nexport function IoWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M449.07 399.08L278.64 82.58c-12.08-22.44-44.26-22.44-56.35 0L51.87 399.08A32 32 0 0080 446.25h340.89a32 32 0 0028.18-47.17zm-198.6-1.83a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.95a21.73 21.73 0 0121.5-22.69h.21a21.74 21.74 0 0121.73 22.7z\"}}]})(props);\n};\nexport function IoWatchOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"288\",\"height\":\"288\",\"x\":\"112\",\"y\":\"112\",\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"rx\":\"64\",\"ry\":\"64\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M176 112V40a8 8 0 018-8h144a8 8 0 018 8v72m0 288v72a8 8 0 01-8 8H184a8 8 0 01-8-8v-72\"}}]})(props);\n};\nexport function IoWatchSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"240\",\"height\":\"240\",\"x\":\"136\",\"y\":\"136\",\"rx\":\"8\",\"ry\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 96h-48V16H176v80h-48a32 32 0 00-32 32v256a32 32 0 0032 32h48v80h160v-80h48a32 32 0 0032-32V128a32 32 0 00-32-32zm8 272a24 24 0 01-24 24H144a24 24 0 01-24-24V144a24 24 0 0124-24h224a24 24 0 0124 24z\"}}]})(props);\n};\nexport function IoWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"width\":\"240\",\"height\":\"240\",\"x\":\"136\",\"y\":\"136\",\"rx\":\"56\",\"ry\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M336 96V32a16 16 0 00-16-16H192a16 16 0 00-16 16v64a80.09 80.09 0 00-80 80v160a80.09 80.09 0 0080 80v64a16 16 0 0016 16h128a16 16 0 0016-16v-64a80.09 80.09 0 0080-80V176a80.09 80.09 0 00-80-80zm56 224a72.08 72.08 0 01-72 72H192a72.08 72.08 0 01-72-72V192a72.08 72.08 0 0172-72h128a72.08 72.08 0 0172 72z\"}}]})(props);\n};\nexport function IoWaterOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M400 320c0 88.37-55.63 144-144 144s-144-55.63-144-144c0-94.83 103.23-222.85 134.89-259.88a12 12 0 0118.23 0C296.77 97.15 400 225.17 400 320z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M344 328a72 72 0 01-72 72\"}}]})(props);\n};\nexport function IoWaterSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 43.91s-144 158.3-144 270.3c0 88.36 55.64 144 144 144s144-55.64 144-144c0-112-144-270.3-144-270.3zm16 362.3v-24a60.07 60.07 0 0060-60h24a84.09 84.09 0 01-84 84z\"}}]})(props);\n};\nexport function IoWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M265.12 60.12a12 12 0 00-18.23 0C215.23 97.15 112 225.17 112 320c0 88.37 55.64 144 144 144s144-55.63 144-144c0-94.83-103.23-222.85-134.88-259.88zM272 412a12 12 0 01-11.34-16 11.89 11.89 0 0111.41-8A60.06 60.06 0 00332 328.07a11.89 11.89 0 018-11.41A12 12 0 01356 328a84.09 84.09 0 01-84 84z\"}}]})(props);\n};\nexport function IoWifiOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M332.41 310.59a115 115 0 00-152.8 0m213.85-61.05a201.26 201.26 0 00-274.92 0m329.18-67.43a288 288 0 00-383.44 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 416a32 32 0 1132-32 32 32 0 01-32 32z\"}}]})(props);\n};\nexport function IoWifiSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"42\",\"d\":\"M332.69 320a115 115 0 00-152.8 0m213.85-61a201.26 201.26 0 00-274.92 0M448 191.52a288 288 0 00-383.44 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M300.67 384L256 433l-44.34-49a56.73 56.73 0 0188.92 0z\"}}]})(props);\n};\nexport function IoWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M346.65 304.3a136 136 0 00-180.71 0 21 21 0 1027.91 31.38 94 94 0 01124.89 0 21 21 0 0027.91-31.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.28 183.7a221.47 221.47 0 00-151.8 59.92 21 21 0 1028.68 30.67 180.28 180.28 0 01246.24 0 21 21 0 1028.68-30.67 221.47 221.47 0 00-151.8-59.92z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M462 175.86a309 309 0 00-411.44 0 21 21 0 1028 31.29 267 267 0 01355.43 0 21 21 0 0028-31.31z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256.28\",\"cy\":\"393.41\",\"r\":\"32\"}}]})(props);\n};\nexport function IoWineOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M398.57 80H113.43v16S87.51 272 256 272 398.57 96 398.57 96zM256 272v160\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M352 432H160\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M112 160h288\"}}]})(props);\n};\nexport function IoWineSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453 112V66.33H60.75V112l175.13 176v118H124.75v42H389v-42H277.88V288zm-336.65-3.67h281l-37.81 38H154.16z\"}}]})(props);\n};\nexport function IoWine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.56 94.92V80a16 16 0 00-16-16H113.44a16 16 0 00-16 16v14.92c-1.46 11.37-9.65 90.74 36.93 144.69 24.87 28.8 60.36 44.85 105.63 47.86V416h-80a16 16 0 000 32h192a16 16 0 000-32h-80V287.47c45.27-3 80.76-19.06 105.63-47.86 46.58-53.95 38.37-133.32 36.93-144.69zm-285.3 3.41a15.14 15.14 0 00.18-2.33h253.12a15.14 15.14 0 00.18 2.33 201.91 201.91 0 010 45.67H129.32a204.29 204.29 0 01-.06-45.67z\"}}]})(props);\n};\nexport function IoWomanOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M208 368v104a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\",\"d\":\"M256 368v104a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24V368m-121-94a23.73 23.73 0 01-29.84 16.18h0a23.72 23.72 0 01-16.17-29.84l25-84.28A44.85 44.85 0 01205 144h102a44.85 44.85 0 0143 32.08l25 84.28a23.72 23.72 0 01-16.17 29.84h0a23.73 23.73 0 01-29.78-16.2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"56\",\"r\":\"40\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeMiterlimit\":\"10\",\"strokeWidth\":\"32\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"32\",\"d\":\"M208 192l-48 160h192l-48-160\"}}]})(props);\n};\nexport function IoWomanSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"255.75\",\"cy\":\"56\",\"r\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M310.28 191.4h.05l7.66-2.3 36.79 122.6 46-13.8-16.21-54.16c0-.12 0-.24-.07-.36l-16.84-56.12-4.71-15.74-.9-3H362l-2.51-8.45a44.84 44.84 0 00-43-32.08H195.24a44.84 44.84 0 00-43 32.08l-2.51 8.45h-.06l-.9 3-4.71 15.74-16.84 56.12c0 .12 0 .24-.07.36l-16.21 54.16 46 13.8 36.76-122.6 7.54 2.26L148.25 368h51.5v144h52V368h8v144h52V368h51.51z\"}}]})(props);\n};\nexport function IoWoman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"255.75\",\"cy\":\"56\",\"r\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M394.63 277.9l-10.33-34.41v-.11l-22.46-74.86h-.05l-2.51-8.45a44.87 44.87 0 00-43-32.08h-120a44.84 44.84 0 00-43 32.08l-2.51 8.45h-.06l-22.46 74.86v.11l-10.37 34.41c-3.12 10.39 2.3 21.66 12.57 25.14a20 20 0 0025.6-13.18l25.58-85.25 2.17-7.23a8 8 0 0115.53 2.62 7.78 7.78 0 01-.17 1.61L155.43 347.4a16 16 0 0015.32 20.6h29v114.69c0 16.46 10.53 29.31 24 29.31s24-12.85 24-29.31V368h16v114.69c0 16.46 10.53 29.31 24 29.31s24-12.85 24-29.31V368h30a16 16 0 0015.33-20.6l-43.74-145.81a7.52 7.52 0 01-.16-1.59 8 8 0 0115.54-2.63l2.17 7.23 25.57 85.25A20 20 0 00382.05 303c10.27-3.44 15.69-14.71 12.58-25.1z\"}}]})(props);\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Primitive } from '@sentry/types';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): boolean {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat: unknown, ty: string): boolean {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): boolean {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): boolean {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _isNil from \"lodash/isNil\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\n\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true)), children);\n}","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction objectToCamel(obj) {\n if (obj == null) {\n return obj;\n }\n const caps = /^[A-Z]+$/;\n const output = {};\n return Object.keys(obj).reduce((camelObj, k) => {\n if (caps.test(k)) {\n camelObj[k.toLowerCase()] = obj[k];\n } else if (caps.test(k[0])) {\n camelObj[k[0].toLowerCase() + k.slice(1)] = obj[k];\n } else {\n camelObj[k] = obj[k];\n }\n return camelObj;\n }, output);\n}\n\nexports.objectToCamel = objectToCamel;\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Integration } from '@sentry/types';\n\nimport { isNodeEnv } from './node';\n\n/** Internal */\ninterface SentryGlobal {\n Sentry?: {\n Integrations?: Integration[];\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n __SENTRY__: {\n globalEventProcessors: any;\n hub: any;\n logger: any;\n };\n}\n\nconst fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject(): T & SentryGlobal {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) as T & SentryGlobal;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ComponentContainer,\n ComponentType,\n Provider,\n Name\n} from '@firebase/component';\nimport { PlatformLoggerService, VersionService } from './types';\n\nexport class PlatformLoggerServiceImpl implements PlatformLoggerService {\n constructor(private readonly container: ComponentContainer) {}\n // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n getPlatformInfoString(): string {\n const providers = this.container.getProviders();\n // Loop through providers and get library/version pairs from any that are\n // version components.\n return providers\n .map(provider => {\n if (isVersionServiceProvider(provider)) {\n const service = provider.getImmediate() as VersionService;\n return `${service.library}/${service.version}`;\n } else {\n return null;\n }\n })\n .filter(logString => logString)\n .join(' ');\n }\n}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */\nfunction isVersionServiceProvider(provider: Provider): boolean {\n const component = provider.getComponent();\n return component?.type === ComponentType.VERSION;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp } from './public-types';\nimport { Component, Provider, Name } from '@firebase/component';\nimport { logger } from './logger';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport { FirebaseAppImpl } from './firebaseApp';\n\n/**\n * @internal\n */\nexport const _apps = new Map();\n\n/**\n * Registered components.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const _components = new Map>();\n\n/**\n * @param component - the component being added to this app's container\n *\n * @internal\n */\nexport function _addComponent(\n app: FirebaseApp,\n component: Component\n): void {\n try {\n (app as FirebaseAppImpl).container.addComponent(component);\n } catch (e) {\n logger.debug(\n `Component ${component.name} failed to register with FirebaseApp ${app.name}`,\n e\n );\n }\n}\n\n/**\n *\n * @internal\n */\nexport function _addOrOverwriteComponent(\n app: FirebaseApp,\n component: Component\n): void {\n (app as FirebaseAppImpl).container.addOrOverwriteComponent(component);\n}\n\n/**\n *\n * @param component - the component to register\n * @returns whether or not the component is registered successfully\n *\n * @internal\n */\nexport function _registerComponent(\n component: Component\n): boolean {\n const componentName = component.name;\n if (_components.has(componentName)) {\n logger.debug(\n `There were multiple attempts to register component ${componentName}.`\n );\n\n return false;\n }\n\n _components.set(componentName, component);\n\n // add the component to existing app instances\n for (const app of _apps.values()) {\n _addComponent(app as FirebaseAppImpl, component);\n }\n\n return true;\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n *\n * @returns the provider for the service with the matching name\n *\n * @internal\n */\nexport function _getProvider(\n app: FirebaseApp,\n name: T\n): Provider {\n const heartbeatController = (app as FirebaseAppImpl).container\n .getProvider('heartbeat')\n .getImmediate({ optional: true });\n if (heartbeatController) {\n void heartbeatController.triggerHeartbeat();\n }\n return (app as FirebaseAppImpl).container.getProvider(name);\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\n *\n * @internal\n */\nexport function _removeServiceInstance(\n app: FirebaseApp,\n name: T,\n instanceIdentifier: string = DEFAULT_ENTRY_NAME\n): void {\n _getProvider(app, name).clearInstance(instanceIdentifier);\n}\n\n/**\n * Test only\n *\n * @internal\n */\nexport function _clearComponents(): void {\n _components.clear();\n}\n\n/**\n * Exported in order to be used in app-compat package\n */\nexport { DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport {\n ComponentContainer,\n Component,\n ComponentType\n} from '@firebase/component';\nimport { ERROR_FACTORY, AppError } from './errors';\n\nexport class FirebaseAppImpl implements FirebaseApp {\n private readonly _options: FirebaseOptions;\n private readonly _name: string;\n /**\n * Original config values passed in as a constructor parameter.\n * It is only used to compare with another config object to support idempotent initializeApp().\n *\n * Updating automaticDataCollectionEnabled on the App instance will not change its value in _config.\n */\n private readonly _config: Required;\n private _automaticDataCollectionEnabled: boolean;\n private _isDeleted = false;\n private readonly _container: ComponentContainer;\n\n constructor(\n options: FirebaseOptions,\n config: Required,\n container: ComponentContainer\n ) {\n this._options = { ...options };\n this._config = { ...config };\n this._name = config.name;\n this._automaticDataCollectionEnabled =\n config.automaticDataCollectionEnabled;\n this._container = container;\n this.container.addComponent(\n new Component('app', () => this, ComponentType.PUBLIC)\n );\n }\n\n get automaticDataCollectionEnabled(): boolean {\n this.checkDestroyed();\n return this._automaticDataCollectionEnabled;\n }\n\n set automaticDataCollectionEnabled(val: boolean) {\n this.checkDestroyed();\n this._automaticDataCollectionEnabled = val;\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): FirebaseOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get config(): Required {\n this.checkDestroyed();\n return this._config;\n }\n\n get container(): ComponentContainer {\n return this._container;\n }\n\n get isDeleted(): boolean {\n return this._isDeleted;\n }\n\n set isDeleted(val: boolean) {\n this._isDeleted = val;\n }\n\n /**\n * This function will throw an Error if the App has already been deleted -\n * use before performing API actions on the App.\n */\n private checkDestroyed(): void {\n if (this.isDeleted) {\n throw ERROR_FACTORY.create(AppError.APP_DELETED, { appName: this._name });\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport { DEFAULT_ENTRY_NAME, PLATFORM_LOG_STRING } from './constants';\nimport { ERROR_FACTORY, AppError } from './errors';\nimport {\n ComponentContainer,\n Component,\n Name,\n ComponentType\n} from '@firebase/component';\nimport { version } from '../../firebase/package.json';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { _apps, _components, _registerComponent } from './internal';\nimport { logger } from './logger';\nimport {\n LogLevelString,\n setLogLevel as setLogLevelImpl,\n LogCallback,\n LogOptions,\n setUserLogHandler\n} from '@firebase/logger';\nimport { deepEqual } from '@firebase/util';\n\nexport { FirebaseError } from '@firebase/util';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const SDK_VERSION = version;\n\n/**\n * Creates and initializes a {@link @firebase/app#FirebaseApp} instance.\n *\n * See\n * {@link\n * https://firebase.google.com/docs/web/setup#add_firebase_to_your_app\n * | Add Firebase to your app} and\n * {@link\n * https://firebase.google.com/docs/web/setup#multiple-projects\n * | Initialize multiple projects} for detailed documentation.\n *\n * @example\n * ```javascript\n *\n * // Initialize default app\n * // Retrieve your own options values by adding a web app on\n * // https://console.firebase.google.com\n * initializeApp({\n * apiKey: \"AIza....\", // Auth / General Use\n * authDomain: \"YOUR_APP.firebaseapp.com\", // Auth with popup/redirect\n * databaseURL: \"https://YOUR_APP.firebaseio.com\", // Realtime Database\n * storageBucket: \"YOUR_APP.appspot.com\", // Storage\n * messagingSenderId: \"123456789\" // Cloud Messaging\n * });\n * ```\n *\n * @example\n * ```javascript\n *\n * // Initialize another app\n * const otherApp = initializeApp({\n * databaseURL: \"https://.firebaseio.com\",\n * storageBucket: \".appspot.com\"\n * }, \"otherApp\");\n * ```\n *\n * @param options - Options to configure the app's services.\n * @param name - Optional name of the app to initialize. If no name\n * is provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The initialized app.\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n name?: string\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @param options - Options to configure the app's services.\n * @param config - FirebaseApp Configuration\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n config?: FirebaseAppSettings\n): FirebaseApp;\nexport function initializeApp(\n options: FirebaseOptions,\n rawConfig = {}\n): FirebaseApp {\n if (typeof rawConfig !== 'object') {\n const name = rawConfig;\n rawConfig = { name };\n }\n\n const config: Required = {\n name: DEFAULT_ENTRY_NAME,\n automaticDataCollectionEnabled: false,\n ...rawConfig\n };\n const name = config.name;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(AppError.BAD_APP_NAME, {\n appName: String(name)\n });\n }\n\n const existingApp = _apps.get(name) as FirebaseAppImpl;\n if (existingApp) {\n // return the existing app if options and config deep equal the ones in the existing app.\n if (\n deepEqual(options, existingApp.options) &&\n deepEqual(config, existingApp.config)\n ) {\n return existingApp;\n } else {\n throw ERROR_FACTORY.create(AppError.DUPLICATE_APP, { appName: name });\n }\n }\n\n const container = new ComponentContainer(name);\n for (const component of _components.values()) {\n container.addComponent(component);\n }\n\n const newApp = new FirebaseAppImpl(options, config, container);\n\n _apps.set(name, newApp);\n\n return newApp;\n}\n\n/**\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\n *\n * When called with no arguments, the default app is returned. When an app name\n * is provided, the app corresponding to that name is returned.\n *\n * An exception is thrown if the app being retrieved has not yet been\n * initialized.\n *\n * @example\n * ```javascript\n * // Return the default app\n * const app = getApp();\n * ```\n *\n * @example\n * ```javascript\n * // Return a named app\n * const otherApp = getApp(\"otherApp\");\n * ```\n *\n * @param name - Optional name of the app to return. If no name is\n * provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The app corresponding to the provided app name.\n * If no app name is provided, the default app is returned.\n *\n * @public\n */\nexport function getApp(name: string = DEFAULT_ENTRY_NAME): FirebaseApp {\n const app = _apps.get(name);\n if (!app) {\n throw ERROR_FACTORY.create(AppError.NO_APP, { appName: name });\n }\n\n return app;\n}\n\n/**\n * A (read-only) array of all initialized apps.\n * @public\n */\nexport function getApps(): FirebaseApp[] {\n return Array.from(_apps.values());\n}\n\n/**\n * Renders this app unusable and frees the resources of all associated\n * services.\n *\n * @example\n * ```javascript\n * deleteApp(app)\n * .then(function() {\n * console.log(\"App deleted successfully\");\n * })\n * .catch(function(error) {\n * console.log(\"Error deleting app:\", error);\n * });\n * ```\n *\n * @public\n */\nexport async function deleteApp(app: FirebaseApp): Promise {\n const name = app.name;\n if (_apps.has(name)) {\n _apps.delete(name);\n await Promise.all(\n (app as FirebaseAppImpl).container\n .getProviders()\n .map(provider => provider.delete())\n );\n (app as FirebaseAppImpl).isDeleted = true;\n }\n}\n\n/**\n * Registers a library's name and version for platform logging purposes.\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\n * @param version - Current version of that library.\n * @param variant - Bundle variant, e.g., node, rn, etc.\n *\n * @public\n */\nexport function registerVersion(\n libraryKeyOrName: string,\n version: string,\n variant?: string\n): void {\n // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n let library = PLATFORM_LOG_STRING[libraryKeyOrName] ?? libraryKeyOrName;\n if (variant) {\n library += `-${variant}`;\n }\n const libraryMismatch = library.match(/\\s|\\//);\n const versionMismatch = version.match(/\\s|\\//);\n if (libraryMismatch || versionMismatch) {\n const warning = [\n `Unable to register library \"${library}\" with version \"${version}\":`\n ];\n if (libraryMismatch) {\n warning.push(\n `library name \"${library}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n if (versionMismatch) {\n warning.push(\n `version name \"${version}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n logger.warn(warning.join(' '));\n return;\n }\n _registerComponent(\n new Component(\n `${library}-version` as Name,\n () => ({ library, version }),\n ComponentType.VERSION\n )\n );\n}\n\n/**\n * Sets log handler for all Firebase SDKs.\n * @param logCallback - An optional custom log handler that executes user code whenever\n * the Firebase SDK makes a logging call.\n *\n * @public\n */\nexport function onLog(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(AppError.INVALID_LOG_ARGUMENT);\n }\n setUserLogHandler(logCallback, options);\n}\n\n/**\n * Sets log level for all Firebase SDKs.\n *\n * All of the log types above the current log level are captured (i.e. if\n * you set the log level to `info`, errors are logged, but `debug` and\n * `verbose` logs are not).\n *\n * @public\n */\nexport function setLogLevel(logLevel: LogLevelString): void {\n setLogLevelImpl(logLevel);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DB, openDb } from 'idb';\nimport { AppError, ERROR_FACTORY } from './errors';\nimport { FirebaseApp } from './public-types';\nimport { HeartbeatsInIndexedDB } from './types';\nconst DB_NAME = 'firebase-heartbeat-database';\nconst DB_VERSION = 1;\nconst STORE_NAME = 'firebase-heartbeat-store';\n\nlet dbPromise: Promise | null = null;\nfunction getDbPromise(): Promise {\n if (!dbPromise) {\n dbPromise = openDb(DB_NAME, DB_VERSION, upgradeDB => {\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (upgradeDB.oldVersion) {\n case 0:\n upgradeDB.createObjectStore(STORE_NAME);\n }\n }).catch(e => {\n throw ERROR_FACTORY.create(AppError.STORAGE_OPEN, {\n originalErrorMessage: e.message\n });\n });\n }\n return dbPromise;\n}\n\nexport async function readHeartbeatsFromIndexedDB(\n app: FirebaseApp\n): Promise {\n try {\n const db = await getDbPromise();\n return db\n .transaction(STORE_NAME)\n .objectStore(STORE_NAME)\n .get(computeKey(app));\n } catch (e) {\n throw ERROR_FACTORY.create(AppError.STORAGE_GET, {\n originalErrorMessage: e.message\n });\n }\n}\n\nexport async function writeHeartbeatsToIndexedDB(\n app: FirebaseApp,\n heartbeatObject: HeartbeatsInIndexedDB\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME, 'readwrite');\n const objectStore = tx.objectStore(STORE_NAME);\n await objectStore.put(heartbeatObject, computeKey(app));\n return tx.complete;\n } catch (e) {\n throw ERROR_FACTORY.create(AppError.STORAGE_WRITE, {\n originalErrorMessage: e.message\n });\n }\n}\n\nexport async function deleteHeartbeatsFromIndexedDB(\n app: FirebaseApp\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME, 'readwrite');\n await tx.objectStore(STORE_NAME).delete(computeKey(app));\n return tx.complete;\n } catch (e) {\n throw ERROR_FACTORY.create(AppError.STORAGE_DELETE, {\n originalErrorMessage: e.message\n });\n }\n}\n\nfunction computeKey(app: FirebaseApp): string {\n return `${app.name}!${app.options.appId}`;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentContainer } from '@firebase/component';\nimport {\n base64Encode,\n isIndexedDBAvailable,\n validateIndexedDBOpenable\n} from '@firebase/util';\nimport {\n deleteHeartbeatsFromIndexedDB,\n readHeartbeatsFromIndexedDB,\n writeHeartbeatsToIndexedDB\n} from './indexeddb';\nimport { FirebaseApp } from './public-types';\nimport {\n HeartbeatsByUserAgent,\n HeartbeatService,\n HeartbeatStorage,\n SingleDateHeartbeat\n} from './types';\n\nconst MAX_HEADER_BYTES = 1024;\n// 30 days\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\n\nexport class HeartbeatServiceImpl implements HeartbeatService {\n /**\n * The persistence layer for heartbeats\n * Leave public for easier testing.\n */\n _storage: HeartbeatStorageImpl;\n\n /**\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\n * the header string.\n * Stores one record per date. This will be consolidated into the standard\n * format of one record per user agent string before being sent as a header.\n * Populated from indexedDB when the controller is instantiated and should\n * be kept in sync with indexedDB.\n * Leave public for easier testing.\n */\n _heartbeatsCache: SingleDateHeartbeat[] | null = null;\n\n /**\n * the initialization promise for populating heartbeatCache.\n * If getHeartbeatsHeader() is called before the promise resolves\n * (hearbeatsCache == null), it should wait for this promise\n * Leave public for easier testing.\n */\n _heartbeatsCachePromise: Promise;\n constructor(private readonly container: ComponentContainer) {\n const app = this.container.getProvider('app').getImmediate();\n this._storage = new HeartbeatStorageImpl(app);\n this._heartbeatsCachePromise = this._storage.read().then(result => {\n this._heartbeatsCache = result;\n return result;\n });\n }\n\n /**\n * Called to report a heartbeat. The function will generate\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\n * to IndexedDB.\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\n * already logged, subsequent calls to this function in the same day will be ignored.\n */\n async triggerHeartbeat(): Promise {\n const platformLogger = this.container\n .getProvider('platform-logger')\n .getImmediate();\n\n // This is the \"Firebase user agent\" string from the platform logger\n // service, not the browser user agent.\n const userAgent = platformLogger.getPlatformInfoString();\n const date = getUTCDateString();\n if (this._heartbeatsCache === null) {\n this._heartbeatsCache = await this._heartbeatsCachePromise;\n }\n if (\n this._heartbeatsCache.some(\n singleDateHeartbeat => singleDateHeartbeat.date === date\n )\n ) {\n // Do not store a heartbeat if one is already stored for this day.\n return;\n } else {\n // There is no entry for this date. Create one.\n this._heartbeatsCache.push({ date, userAgent });\n }\n // Remove entries older than 30 days.\n this._heartbeatsCache = this._heartbeatsCache.filter(\n singleDateHeartbeat => {\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\n const now = Date.now();\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\n }\n );\n return this._storage.overwrite(this._heartbeatsCache);\n }\n\n /**\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\n * It also clears all heartbeats from memory as well as in IndexedDB.\n *\n * NOTE: It will read heartbeats from the heartbeatsCache, instead of from indexedDB to reduce latency\n */\n async getHeartbeatsHeader(): Promise {\n if (this._heartbeatsCache === null) {\n await this._heartbeatsCachePromise;\n }\n // If it's still null, it's been cleared and has not been repopulated.\n if (this._heartbeatsCache === null) {\n return '';\n }\n // Extract as many heartbeats from the cache as will fit under the size limit.\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(\n this._heartbeatsCache\n );\n const headerString = base64Encode(\n JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })\n );\n if (unsentEntries.length > 0) {\n // Store any unsent entries if they exist.\n this._heartbeatsCache = unsentEntries;\n // This seems more likely than deleteAll (below) to lead to some odd state\n // since the cache isn't empty and this will be called again on the next request,\n // and is probably safest if we await it.\n await this._storage.overwrite(this._heartbeatsCache);\n } else {\n this._heartbeatsCache = null;\n // Do not wait for this, to reduce latency.\n void this._storage.deleteAll();\n }\n return headerString;\n }\n}\n\nfunction getUTCDateString(): string {\n const today = new Date();\n // Returns date format 'YYYY-MM-DD'\n return today.toISOString().substring(0, 10);\n}\n\nexport function extractHeartbeatsForHeader(\n heartbeatsCache: SingleDateHeartbeat[],\n maxSize = MAX_HEADER_BYTES\n): {\n heartbeatsToSend: HeartbeatsByUserAgent[];\n unsentEntries: SingleDateHeartbeat[];\n} {\n // Heartbeats grouped by user agent in the standard format to be sent in\n // the header.\n const heartbeatsToSend: HeartbeatsByUserAgent[] = [];\n // Single date format heartbeats that are not sent.\n let unsentEntries = heartbeatsCache.slice();\n for (const singleDateHeartbeat of heartbeatsCache) {\n // Look for an existing entry with the same user agent.\n const heartbeatEntry = heartbeatsToSend.find(\n hb => hb.userAgent === singleDateHeartbeat.userAgent\n );\n if (!heartbeatEntry) {\n // If no entry for this user agent exists, create one.\n heartbeatsToSend.push({\n userAgent: singleDateHeartbeat.userAgent,\n dates: [singleDateHeartbeat.date]\n });\n if (countBytes(heartbeatsToSend) > maxSize) {\n // If the header would exceed max size, remove the added heartbeat\n // entry and stop adding to the header.\n heartbeatsToSend.pop();\n break;\n }\n } else {\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\n // If the header would exceed max size, remove the added date\n // and stop adding to the header.\n if (countBytes(heartbeatsToSend) > maxSize) {\n heartbeatEntry.dates.pop();\n break;\n }\n }\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\n // quota and the loop breaks early.)\n unsentEntries = unsentEntries.slice(1);\n }\n return {\n heartbeatsToSend,\n unsentEntries\n };\n}\n\nexport class HeartbeatStorageImpl implements HeartbeatStorage {\n private _canUseIndexedDBPromise: Promise;\n constructor(public app: FirebaseApp) {\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\n }\n async runIndexedDBEnvironmentCheck(): Promise {\n if (!isIndexedDBAvailable()) {\n return false;\n } else {\n return validateIndexedDBOpenable()\n .then(() => true)\n .catch(() => false);\n }\n }\n /**\n * Read all heartbeats.\n */\n async read(): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return [];\n } else {\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\n return idbHeartbeatObject?.heartbeats || [];\n }\n }\n // overwrite the storage with the provided heartbeats\n async overwrite(heartbeats: SingleDateHeartbeat[]): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n return writeHeartbeatsToIndexedDB(this.app, { heartbeats });\n }\n }\n // add heartbeats\n async add(heartbeats: SingleDateHeartbeat[]): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeats = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n heartbeats: [...existingHeartbeats, ...heartbeats]\n });\n }\n }\n // delete heartbeats\n async delete(heartbeats: SingleDateHeartbeat[]): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeats = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n heartbeats: existingHeartbeats.filter(\n existingHeartbeat => !heartbeats.includes(existingHeartbeat)\n )\n });\n }\n }\n // delete all heartbeats\n async deleteAll(): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n return deleteHeartbeatsFromIndexedDB(this.app);\n }\n }\n}\n\n/**\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\n * in a platform logging header JSON object, stringified, and converted\n * to base 64.\n */\nexport function countBytes(heartbeatsCache: HeartbeatsByUserAgent[]): number {\n // base64 has a restricted set of characters, all of which should be 1 byte.\n return base64Encode(\n // heartbeatsCache wrapper properties\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })\n ).length;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, ComponentType } from '@firebase/component';\nimport { PlatformLoggerServiceImpl } from './platformLoggerService';\nimport { name, version } from '../package.json';\nimport { _registerComponent } from './internal';\nimport { registerVersion } from './api';\nimport { HeartbeatServiceImpl } from './heartbeatService';\n\nexport function registerCoreComponents(variant?: string): void {\n _registerComponent(\n new Component(\n 'platform-logger',\n container => new PlatformLoggerServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n _registerComponent(\n new Component(\n 'heartbeat',\n container => new HeartbeatServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n\n // Register `app` package.\n registerVersion(name, version, variant);\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n // Register platform SDK identifier (no version).\n registerVersion('fire-js', '');\n}\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\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\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","'use strict'\n\nconst codec = require('./codec')\nconst protocols = require('./protocols-table')\nconst varint = require('varint')\nconst { CID } = require('multiformats/cid')\nconst { base58btc } = require('multiformats/bases/base58')\nconst errCode = require('err-code')\nconst inspect = Symbol.for('nodejs.util.inspect.custom')\nconst { toString: uint8ArrayToString } = require('uint8arrays/to-string')\nconst { equals: uint8ArrayEquals } = require('uint8arrays/equals')\n\n/**\n * @typedef {(addr: Multiaddr) => Promise} Resolver\n * @typedef {string | Multiaddr | Uint8Array | null} MultiaddrInput\n * @typedef {import('./types').MultiaddrObject} MultiaddrObject\n * @typedef {import('./types').Protocol} Protocol\n */\n\n/** @type {Map} */\nconst resolvers = new Map()\nconst symbol = Symbol.for('@multiformats/js-multiaddr/multiaddr')\n\n/**\n * Creates a [multiaddr](https://github.com/multiformats/multiaddr) from\n * a Uint8Array, String or another Multiaddr instance\n * public key.\n *\n */\nclass Multiaddr {\n /**\n * @example\n * ```js\n * new Multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // \n * ```\n *\n * @param {MultiaddrInput} [addr] - If String or Uint8Array, needs to adhere to the address format of a [multiaddr](https://github.com/multiformats/multiaddr#string-format)\n */\n constructor (addr) {\n // default\n if (addr == null) {\n addr = ''\n }\n\n // Define symbol\n Object.defineProperty(this, symbol, { value: true })\n\n if (addr instanceof Uint8Array) {\n /** @type {Uint8Array} - The raw bytes representing this multiaddress */\n this.bytes = codec.fromBytes(addr)\n } else if (typeof addr === 'string') {\n if (addr.length > 0 && addr.charAt(0) !== '/') {\n throw new Error(`multiaddr \"${addr}\" must start with a \"/\"`)\n }\n this.bytes = codec.fromString(addr)\n } else if (Multiaddr.isMultiaddr(addr)) { // Multiaddr\n this.bytes = codec.fromBytes(addr.bytes) // validate + copy buffer\n } else {\n throw new Error('addr must be a string, Buffer, or another Multiaddr')\n }\n }\n\n /**\n * Returns Multiaddr as a String\n *\n * @example\n * ```js\n * new Multiaddr('/ip4/127.0.0.1/tcp/4001').toString()\n * // '/ip4/127.0.0.1/tcp/4001'\n * ```\n */\n toString () {\n return codec.bytesToString(this.bytes)\n }\n\n /**\n * Returns Multiaddr as a JSON encoded object\n *\n * @example\n * ```js\n * JSON.stringify(new Multiaddr('/ip4/127.0.0.1/tcp/4001'))\n * // '/ip4/127.0.0.1/tcp/4001'\n * ```\n */\n toJSON () {\n return this.toString()\n }\n\n /**\n * Returns Multiaddr as a convinient options object to be used with net.createConnection\n *\n * @example\n * ```js\n * new Multiaddr('/ip4/127.0.0.1/tcp/4001').toOptions()\n * // { family: 4, host: '127.0.0.1', transport: 'tcp', port: 4001 }\n * ```\n */\n toOptions () {\n /** @type {MultiaddrObject} */\n const opts = {}\n const parsed = this.toString().split('/')\n opts.family = parsed[1] === 'ip4' ? 4 : 6\n opts.host = parsed[2]\n opts.transport = parsed[3]\n opts.port = parseInt(parsed[4])\n return opts\n }\n\n /**\n * Returns the protocols the Multiaddr is defined with, as an array of objects, in\n * left-to-right order. Each object contains the protocol code, protocol name,\n * and the size of its address space in bits.\n * [See list of protocols](https://github.com/multiformats/multiaddr/blob/master/protocols.csv)\n *\n * @example\n * ```js\n * new Multiaddr('/ip4/127.0.0.1/tcp/4001').protos()\n * // [ { code: 4, size: 32, name: 'ip4' },\n * // { code: 6, size: 16, name: 'tcp' } ]\n * ```\n *\n * @returns {Protocol[]} protocols - All the protocols the address is composed of\n */\n protos () {\n return this.protoCodes().map(code => Object.assign({}, protocols(code)))\n }\n\n /**\n * Returns the codes of the protocols in left-to-right order.\n * [See list of protocols](https://github.com/multiformats/multiaddr/blob/master/protocols.csv)\n *\n * @example\n * ```js\n * Multiaddr('/ip4/127.0.0.1/tcp/4001').protoCodes()\n * // [ 4, 6 ]\n * ```\n *\n * @returns {number[]} protocol codes\n */\n protoCodes () {\n const codes = []\n const buf = this.bytes\n let i = 0\n while (i < buf.length) {\n const code = varint.decode(buf, i)\n const n = varint.decode.bytes\n\n const p = protocols(code)\n const size = codec.sizeForAddr(p, buf.slice(i + n))\n\n i += (size + n)\n codes.push(code)\n }\n\n return codes\n }\n\n /**\n * Returns the names of the protocols in left-to-right order.\n * [See list of protocols](https://github.com/multiformats/multiaddr/blob/master/protocols.csv)\n *\n * @example\n * ```js\n * new Multiaddr('/ip4/127.0.0.1/tcp/4001').protoNames()\n * // [ 'ip4', 'tcp' ]\n * ```\n *\n * @returns {string[]} protocol names\n */\n protoNames () {\n return this.protos().map(proto => proto.name)\n }\n\n /**\n * Returns a tuple of parts\n *\n * @example\n * ```js\n * new Multiaddr(\"/ip4/127.0.0.1/tcp/4001\").tuples()\n * // [ [ 4, ], [ 6, ] ]\n * ```\n */\n tuples () {\n return codec.bytesToTuples(this.bytes)\n }\n\n /**\n * Returns a tuple of string/number parts\n * - tuples[][0] = code of protocol\n * - tuples[][1] = contents of address\n *\n * @example\n * ```js\n * new Multiaddr(\"/ip4/127.0.0.1/tcp/4001\").stringTuples()\n * // [ [ 4, '127.0.0.1' ], [ 6, '4001' ] ]\n * ```\n */\n stringTuples () {\n const t = codec.bytesToTuples(this.bytes)\n return codec.tuplesToStringTuples(t)\n }\n\n /**\n * Encapsulates a Multiaddr in another Multiaddr\n *\n * @example\n * ```js\n * const mh1 = new Multiaddr('/ip4/8.8.8.8/tcp/1080')\n * // \n *\n * const mh2 = new Multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // \n *\n * const mh3 = mh1.encapsulate(mh2)\n * // \n *\n * mh3.toString()\n * // '/ip4/8.8.8.8/tcp/1080/ip4/127.0.0.1/tcp/4001'\n * ```\n *\n * @param {MultiaddrInput} addr - Multiaddr to add into this Multiaddr\n */\n encapsulate (addr) {\n addr = new Multiaddr(addr)\n return new Multiaddr(this.toString() + addr.toString())\n }\n\n /**\n * Decapsulates a Multiaddr from another Multiaddr\n *\n * @example\n * ```js\n * const mh1 = new Multiaddr('/ip4/8.8.8.8/tcp/1080')\n * // \n *\n * const mh2 = new Multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // \n *\n * const mh3 = mh1.encapsulate(mh2)\n * // \n *\n * mh3.decapsulate(mh2).toString()\n * // '/ip4/8.8.8.8/tcp/1080'\n * ```\n *\n * @param {Multiaddr | string} addr - Multiaddr to remove from this Multiaddr\n * @returns {Multiaddr}\n */\n decapsulate (addr) {\n const addrString = addr.toString()\n const s = this.toString()\n const i = s.lastIndexOf(addrString)\n if (i < 0) {\n throw new Error('Address ' + this + ' does not contain subaddress: ' + addr)\n }\n return new Multiaddr(s.slice(0, i))\n }\n\n /**\n * A more reliable version of `decapsulate` if you are targeting a\n * specific code, such as 421 (the `p2p` protocol code). The last index of the code\n * will be removed from the `Multiaddr`, and a new instance will be returned.\n * If the code is not present, the original `Multiaddr` is returned.\n *\n * @example\n * ```js\n * const addr = new Multiaddr('/ip4/0.0.0.0/tcp/8080/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC')\n * // \n *\n * addr.decapsulateCode(421).toString()\n * // '/ip4/0.0.0.0/tcp/8080'\n *\n * new Multiaddr('/ip4/127.0.0.1/tcp/8080').decapsulateCode(421).toString()\n * // '/ip4/127.0.0.1/tcp/8080'\n * ```\n *\n * @param {number} code - The code of the protocol to decapsulate from this Multiaddr\n * @returns {Multiaddr}\n */\n decapsulateCode (code) {\n const tuples = this.tuples()\n for (let i = tuples.length - 1; i >= 0; i--) {\n if (tuples[i][0] === code) {\n return new Multiaddr(codec.tuplesToBytes(tuples.slice(0, i)))\n }\n }\n return this\n }\n\n /**\n * Extract the peerId if the multiaddr contains one\n *\n * @example\n * ```js\n * const mh1 = new Multiaddr('/ip4/8.8.8.8/tcp/1080/ipfs/QmValidBase58string')\n * // \n *\n * // should return QmValidBase58string or null if the id is missing or invalid\n * const peerId = mh1.getPeerId()\n * ```\n *\n * @returns {string | null} peerId - The id of the peer or null if invalid or missing from the ma\n */\n getPeerId () {\n try {\n const tuples = this.stringTuples().filter((tuple) => {\n if (tuple[0] === protocols.names.ipfs.code) {\n return true\n }\n return false\n })\n\n // Get the last ipfs tuple ['ipfs', 'peerid string']\n const tuple = tuples.pop()\n if (tuple && tuple[1]) {\n const peerIdStr = tuple[1]\n\n // peer id is base58btc encoded string but not multibase encoded so add the `z`\n // prefix so we can validate that it is correctly encoded\n if (peerIdStr[0] === 'Q' || peerIdStr[0] === '1') {\n return uint8ArrayToString(base58btc.decode(`z${peerIdStr}`), 'base58btc')\n }\n\n // try to parse peer id as CID\n return uint8ArrayToString(CID.parse(peerIdStr).multihash.bytes, 'base58btc')\n }\n\n return null\n } catch (e) {\n return null\n }\n }\n\n /**\n * Extract the path if the multiaddr contains one\n *\n * @example\n * ```js\n * const mh1 = new Multiaddr('/ip4/8.8.8.8/tcp/1080/unix/tmp/p2p.sock')\n * // \n *\n * // should return utf8 string or null if the id is missing or invalid\n * const path = mh1.getPath()\n * ```js\n *\n * @returns {string | null} path - The path of the multiaddr, or null if no path protocol is present\n */\n getPath () {\n let path = null\n try {\n path = this.stringTuples().filter((tuple) => {\n const proto = protocols(tuple[0])\n if (proto.path) {\n return true\n }\n return false\n })[0][1]\n\n if (!path) {\n path = null\n }\n } catch (e) {\n path = null\n }\n return path\n }\n\n /**\n * Checks if two Multiaddrs are the same\n *\n * @example\n * ```js\n * const mh1 = new Multiaddr('/ip4/8.8.8.8/tcp/1080')\n * // \n *\n * const mh2 = new Multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // \n *\n * mh1.equals(mh1)\n * // true\n *\n * mh1.equals(mh2)\n * // false\n * ```\n *\n * @param {Multiaddr} addr\n * @returns {boolean}\n */\n equals (addr) {\n return uint8ArrayEquals(this.bytes, addr.bytes)\n }\n\n /**\n * Resolve multiaddr if containing resolvable hostname.\n *\n * @example\n * ```js\n * Multiaddr.resolvers.set('dnsaddr', resolverFunction)\n * const mh1 = new Multiaddr('/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb')\n * const resolvedMultiaddrs = await mh1.resolve()\n * // [\n * // ,\n * // ,\n * // \n * // ]\n * ```\n *\n * @returns {Promise>}\n */\n async resolve () {\n const resolvableProto = this.protos().find((p) => p.resolvable)\n\n // Multiaddr is not resolvable?\n if (!resolvableProto) {\n return [this]\n }\n\n const resolver = resolvers.get(resolvableProto.name)\n if (!resolver) {\n throw errCode(new Error(`no available resolver for ${resolvableProto.name}`), 'ERR_NO_AVAILABLE_RESOLVER')\n }\n\n const addresses = await resolver(this)\n return addresses.map((a) => new Multiaddr(a))\n }\n\n /**\n * Gets a Multiaddrs node-friendly address object. Note that protocol information\n * is left out: in Node (and most network systems) the protocol is unknowable\n * given only the address.\n *\n * Has to be a ThinWaist Address, otherwise throws error\n *\n * @example\n * ```js\n * new Multiaddr('/ip4/127.0.0.1/tcp/4001').nodeAddress()\n * // {family: 4, address: '127.0.0.1', port: 4001}\n * ```\n *\n * @returns {{family: 4 | 6, address: string, port: number}}\n * @throws {Error} Throws error if Multiaddr is not a Thin Waist address\n */\n nodeAddress () {\n const codes = this.protoCodes()\n const names = this.protoNames()\n const parts = this.toString().split('/').slice(1)\n\n if (parts.length < 4) {\n throw new Error('multiaddr must have a valid format: \"/{ip4, ip6, dns4, dns6}/{address}/{tcp, udp}/{port}\".')\n } else if (codes[0] !== 4 && codes[0] !== 41 && codes[0] !== 54 && codes[0] !== 55) {\n throw new Error(`no protocol with name: \"'${names[0]}'\". Must have a valid family name: \"{ip4, ip6, dns4, dns6}\".`)\n } else if (parts[2] !== 'tcp' && parts[2] !== 'udp') {\n throw new Error(`no protocol with name: \"'${names[1]}'\". Must have a valid transport protocol: \"{tcp, udp}\".`)\n }\n\n return {\n family: (codes[0] === 41 || codes[0] === 55) ? 6 : 4,\n address: parts[1],\n port: parseInt(parts[3]) // tcp or udp port\n }\n }\n\n /**\n * Returns if a Multiaddr is a Thin Waist address or not.\n *\n * Thin Waist is if a Multiaddr adheres to the standard combination of:\n *\n * `{IPv4, IPv6}/{TCP, UDP}`\n *\n * @example\n * ```js\n * const mh1 = new Multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // \n * const mh2 = new Multiaddr('/ip4/192.168.2.1/tcp/5001')\n * // \n * const mh3 = mh1.encapsulate(mh2)\n * // \n * const mh4 = new Multiaddr('/ip4/127.0.0.1/tcp/2000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')\n * // \n * mh1.isThinWaistAddress()\n * // true\n * mh2.isThinWaistAddress()\n * // true\n * mh3.isThinWaistAddress()\n * // false\n * mh4.isThinWaistAddress()\n * // false\n * ```\n *\n * @param {Multiaddr} [addr] - Defaults to using `this` instance\n */\n isThinWaistAddress (addr) {\n const protos = (addr || this).protos()\n\n if (protos.length !== 2) {\n return false\n }\n\n if (protos[0].code !== 4 && protos[0].code !== 41) {\n return false\n }\n if (protos[1].code !== 6 && protos[1].code !== 273) {\n return false\n }\n return true\n }\n\n /**\n * Creates a Multiaddr from a node-friendly address object\n *\n * @example\n * ```js\n * Multiaddr.fromNodeAddress({address: '127.0.0.1', port: '4001'}, 'tcp')\n * // \n * ```\n *\n * @param {{family: 4 | 6, address: string, port: number}} addr\n * @param {string} transport\n */\n static fromNodeAddress (addr, transport) {\n if (!addr) { throw new Error('requires node address object') }\n if (!transport) { throw new Error('requires transport protocol') }\n let ip\n switch (addr.family) {\n case 4:\n ip = 'ip4'\n break\n case 6:\n ip = 'ip6'\n break\n default:\n throw Error(`Invalid addr family. Got '${addr.family}' instead of 4 or 6`)\n }\n return new Multiaddr('/' + [ip, addr.address, transport, addr.port].join('/'))\n }\n\n /**\n * Returns if something is a Multiaddr that is a name\n *\n * @param {Multiaddr} addr\n * @returns {boolean} isName\n */\n static isName (addr) {\n if (!Multiaddr.isMultiaddr(addr)) {\n return false\n }\n\n // if a part of the multiaddr is resolvable, then return true\n return addr.protos().some((proto) => proto.resolvable)\n }\n\n /**\n * Check if object is a CID instance\n *\n * @param {any} value\n * @returns {value is Multiaddr}\n */\n static isMultiaddr (value) {\n return value instanceof Multiaddr || Boolean(value && value[symbol])\n }\n\n /**\n * Returns Multiaddr as a human-readable string.\n * For post Node.js v10.0.0.\n * https://nodejs.org/api/deprecations.html#deprecations_dep0079_custom_inspection_function_on_objects_via_inspect\n *\n * @example\n * ```js\n * console.log(new Multiaddr('/ip4/127.0.0.1/tcp/4001'))\n * // ''\n * ```\n *\n * @returns {string}\n */\n [inspect] () {\n return ''\n }\n\n /**\n * Returns Multiaddr as a human-readable string.\n * Fallback for pre Node.js v10.0.0.\n * https://nodejs.org/api/deprecations.html#deprecations_dep0079_custom_inspection_function_on_objects_via_inspect\n *\n * @example\n * ```js\n * new Multiaddr('/ip4/127.0.0.1/tcp/4001').inspect()\n * // ''\n * ```\n *\n * @returns {string}\n */\n inspect () {\n return ''\n }\n}\n\n/**\n * Object containing table, names and codes of all supported protocols.\n * To get the protocol values from a Multiaddr, you can use\n * [`.protos()`](#multiaddrprotos),\n * [`.protoCodes()`](#multiaddrprotocodes) or\n * [`.protoNames()`](#multiaddrprotonames)\n *\n * @returns {{table: Array, names: Object, codes: Object}}\n */\nMultiaddr.protocols = protocols\n\nMultiaddr.resolvers = resolvers\n\n/**\n * Static factory\n *\n * @param {MultiaddrInput} addr\n */\nfunction multiaddr (addr) {\n return new Multiaddr(addr)\n}\n\nmodule.exports = { Multiaddr, multiaddr, protocols, resolvers }\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\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./serializer\"));\nconst value = __importStar(require(\"./value\"));\nexports.value = value;\n//# sourceMappingURL=index.js.map","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ExtendedError, WrappedFunction } from '@sentry/types';\n\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { memoBuilder, MemoFunc } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n const original = source[name] as () => any;\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: { [key: string]: unknown }, name: string, value: unknown): void {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func: WrappedFunction): WrappedFunction | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(value: any): {\n [key: string]: any;\n} {\n if (isError(value)) {\n const error = value as ExtendedError;\n const err: {\n [key: string]: any;\n stack: string | undefined;\n message: string;\n name: string;\n } = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n\n for (const i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n\n return err;\n }\n\n if (isEvent(value)) {\n /**\n * Event-like interface that's usable in browser and node\n */\n interface SimpleEvent {\n [key: string]: unknown;\n type: string;\n target?: unknown;\n currentTarget?: unknown;\n }\n\n const event = value as unknown as SimpleEvent;\n\n const source: {\n [key: string]: any;\n } = {};\n\n // Accessing event attributes can throw (see https://github.com/getsentry/sentry-javascript/issues/768 and\n // https://github.com/getsentry/sentry-javascript/issues/838), but accessing `type` hasn't been wrapped in a\n // try-catch in at least two years and no one's complained, so that's likely not an issue anymore\n source.type = event.type;\n\n try {\n source.target = isElement(event.target)\n ? htmlTreeAsString(event.target)\n : Object.prototype.toString.call(event.target);\n } catch (_oO) {\n source.target = '';\n }\n\n try {\n source.currentTarget = isElement(event.currentTarget)\n ? htmlTreeAsString(event.currentTarget)\n : Object.prototype.toString.call(event.currentTarget);\n } catch (_oO) {\n source.currentTarget = '';\n }\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event.detail;\n }\n\n for (const attr in event) {\n if (Object.prototype.hasOwnProperty.call(event, attr)) {\n source[attr] = event[attr];\n }\n }\n\n return source;\n }\n\n return value as {\n [key: string]: any;\n };\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const serialized = normalize(object, depth);\n\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return serialized as T;\n}\n\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value: any): any {\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n\n const type = Object.prototype.toString.call(value);\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n\n // `makeSerializable` provides a string representation of certain non-serializable values. For all others, it's a\n // pass-through.\n const serializable = makeSerializable(value);\n return isPrimitive(serializable) ? serializable : type;\n}\n\n/**\n * makeSerializable()\n *\n * Takes unserializable input and make it serializer-friendly.\n *\n * Handles globals, functions, `undefined`, `NaN`, and other non-serializable values.\n */\nfunction makeSerializable(value: T, key?: any): T | string {\n if (key === 'domain' && value && typeof value === 'object' && (value as unknown as { _events: any })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n if (typeof (global as any) !== 'undefined' && (value as unknown) === global) {\n return '[Global]';\n }\n\n // It's safe to use `window` and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof (window as any) !== 'undefined' && (value as unknown) === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof (document as any) !== 'undefined' && (value as unknown) === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n return value;\n}\n\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key: string, value: any, depth: number = +Infinity, memo: MemoFunc = memoBuilder()): any {\n const [memoize, unmemoize] = memo;\n\n // If we reach the maximum depth, serialize whatever is left\n if (depth === 0) {\n return serializeValue(value);\n }\n\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n // `makeSerializable` provides a string representation of certain non-serializable values. For all others, it's a\n // pass-through. If what comes back is a primitive (either because it's been stringified or because it was primitive\n // all along), we're done.\n const serializable = makeSerializable(value, key);\n if (isPrimitive(serializable)) {\n return serializable;\n }\n\n // Create source that we will use for the next iteration. It will either be an objectified error object (`Error` type\n // with extracted key:value pairs) or the input itself.\n const source = getWalkSource(value);\n\n // Create an accumulator that will act as a parent for all future itterations of that branch\n const acc: { [key: string]: any } = Array.isArray(value) ? [] : {};\n\n // If we already walked that branch, bail out, as it's circular reference\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // Walk all keys of the source\n for (const innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n const innerValue: any = source[innerKey];\n acc[innerKey] = walk(innerKey, innerValue, depth - 1, memo);\n }\n\n // Once walked through all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return acc;\n}\n\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input: any, depth?: number): any {\n try {\n // since we're at the outermost level, there is no key\n return walk('', input, depth);\n } catch (_oO) {\n return '**non-serializable**';\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception: any, maxLength: number = 40): string {\n const keys = Object.keys(getWalkSource(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n const serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val: T): T {\n if (isPlainObject(val)) {\n const obj = val as { [key: string]: any };\n const rv: { [key: string]: any } = {};\n for (const key of Object.keys(obj)) {\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n return rv as T;\n }\n\n if (Array.isArray(val)) {\n return (val as any[]).map(dropUndefinedKeys) as any;\n }\n\n return val;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import { sha256 as jsSha256 } from 'js-sha256';\nimport borc from 'borc';\nimport { Buffer } from 'buffer/';\nimport { blobFromBuffer, blobFromUint8Array, blobToHex, lebEncode, } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\n/**\n * get RequestId as hex-encoded blob.\n * @param requestId - RequestId to hex\n */\nexport function toHex(requestId) {\n return blobToHex(requestId);\n}\n/**\n * sha256 hash the provided Buffer\n * @param data - input to hash function\n */\nexport function hash(data) {\n const hashed = jsSha256.create().update(data).arrayBuffer();\n return blobFromUint8Array(new Uint8Array(hashed));\n}\nfunction hashValue(value) {\n if (value instanceof borc.Tagged) {\n return hashValue(value.value);\n }\n else if (typeof value === 'string') {\n return hashString(value);\n }\n else if (typeof value === 'number') {\n return hash(lebEncode(value));\n }\n else if (Buffer.isBuffer(value)) {\n return hash(blobFromUint8Array(new Uint8Array(value)));\n }\n else if (value instanceof Uint8Array || value instanceof ArrayBuffer) {\n return hash(blobFromUint8Array(new Uint8Array(value)));\n }\n else if (Array.isArray(value)) {\n const vals = value.map(hashValue);\n return hash(Buffer.concat(vals));\n }\n else if (value instanceof Principal) {\n return hash(blobFromUint8Array(value.toUint8Array()));\n }\n else if (typeof value === 'object' &&\n value !== null &&\n typeof value.toHash === 'function') {\n return hashValue(value.toHash());\n // TODO This should be move to a specific async method as the webauthn flow required\n // the flow to be synchronous to ensure Safari touch id works.\n // } else if (value instanceof Promise) {\n // return value.then(x => hashValue(x));\n }\n else if (typeof value === 'bigint') {\n // Do this check much later than the other bigint check because this one is much less\n // type-safe.\n // So we want to try all the high-assurance type guards before this 'probable' one.\n return hash(lebEncode(value));\n }\n throw Object.assign(new Error(`Attempt to hash a value of unsupported type: ${value}`), {\n // include so logs/callers can understand the confusing value.\n // (when stringified in error message, prototype info is lost)\n value,\n });\n}\nconst hashString = (value) => {\n const encoder = new TextEncoder();\n const encoded = encoder.encode(value);\n return hash(Buffer.from(encoded));\n};\n/**\n * Concatenate many blobs.\n * @param bs - blobs to concatenate\n */\nfunction concat(bs) {\n return blobFromBuffer(Buffer.concat(bs));\n}\n/**\n * Get the RequestId of the provided ic-ref request.\n * RequestId is the result of the representation-independent-hash function.\n * https://sdk.dfinity.org/docs/interface-spec/index.html#hash-of-map\n * @param request - ic-ref request to hash into RequestId\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function requestIdOf(request) {\n const hashed = Object.entries(request)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => {\n const hashedKey = hashString(key);\n const hashedValue = hashValue(value);\n return [hashedKey, hashedValue];\n });\n const traversed = hashed;\n const sorted = traversed.sort(([k1], [k2]) => {\n return Buffer.compare(Buffer.from(k1), Buffer.from(k2));\n });\n const concatenated = concat(sorted.map(concat));\n const requestId = hash(concatenated);\n return requestId;\n}\n//# sourceMappingURL=request_id.js.map","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","export * from './api';\nexport * from './http';\nexport * from './proxy';\nexport function getDefaultAgent() {\n const agent = typeof window === 'undefined'\n ? typeof global === 'undefined'\n ? typeof self === 'undefined'\n ? undefined\n : self.ic.agent\n : global.ic.agent\n : window.ic.agent;\n if (!agent) {\n throw new Error('No Agent could be found.');\n }\n return agent;\n}\n//# sourceMappingURL=index.js.map","var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar esm = {};\n\n/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar k,goog=goog||{},l=commonjsGlobal||self;function aa(){}function ba(a){var b=typeof a;b=\"object\"!=b?b:a?Array.isArray(a)?\"array\":b:\"null\";return \"array\"==b||\"object\"==b&&\"number\"==typeof a.length}function p(a){var b=typeof a;return \"object\"==b&&null!=a||\"function\"==b}function da(a){return Object.prototype.hasOwnProperty.call(a,ea)&&a[ea]||(a[ea]=++fa)}var ea=\"closure_uid_\"+(1E9*Math.random()>>>0),fa=0;function ha(a,b,c){return a.call.apply(a.bind,arguments)}\nfunction ia(a,b,c){if(!a)throw Error();if(2b?null:\"string\"===typeof a?a.charAt(b):a[b]}function qa(a){return Array.prototype.concat.apply([],arguments)}function ra(a){const b=a.length;if(0b?1:0}var x;a:{var va=l.navigator;if(va){var wa=va.userAgent;if(wa){x=wa;break a}}x=\"\";}function xa(a,b,c){for(const d in a)b.call(c,a[d],d,a);}function ya(a){const b={};for(const c in a)b[c]=a[c];return b}var za=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");function Aa(a,b){let c,d;for(let e=1;eparseFloat(Oa)){Na=String(Qa);break a}}Na=Oa;}var Ga={};\nfunction Ra(){return Fa(function(){let a=0;const b=ta(String(Na)).split(\".\"),c=ta(\"9\").split(\".\"),d=Math.max(b.length,c.length);for(let h=0;0==a&&h>>0);function hb(a){if(\"function\"===typeof a)return a;a[pb]||(a[pb]=function(b){return a.handleEvent(b)});return a[pb]}function C(){v.call(this);this.i=new $a(this);this.P=this;this.I=null;}t(C,v);C.prototype[B]=!0;C.prototype.removeEventListener=function(a,b,c,d){nb(this,a,b,c,d);};\nfunction D(a,b){var c,d=a.I;if(d)for(c=[];d;d=d.I)c.push(d);a=a.P;d=b.type||b;if(\"string\"===typeof b)b=new z(b,a);else if(b instanceof z)b.target=b.target||a;else {var e=b;b=new z(d,a);Aa(b,e);}e=!0;if(c)for(var f=c.length-1;0<=f;f--){var h=b.g=c[f];e=qb(h,d,!0,b)&&e;}h=b.g=a;e=qb(h,d,!0,b)&&e;e=qb(h,d,!1,b)&&e;if(c)for(f=0;fnew wb,a=>a.reset());\nclass wb{constructor(){this.next=this.g=this.h=null;}set(a,b){this.h=a;this.g=b;this.next=null;}reset(){this.next=this.g=this.h=null;}}function yb(a){l.setTimeout(()=>{throw a;},0);}function zb(a,b){Ab||Bb();Cb||(Ab(),Cb=!0);tb.add(a,b);}var Ab;function Bb(){var a=l.Promise.resolve(void 0);Ab=function(){a.then(Db);};}var Cb=!1,tb=new ub;function Db(){for(var a;a=sb();){try{a.h.call(a.g);}catch(c){yb(c);}var b=vb;b.j(a);100>b.h&&(b.h++,a.next=b.g,b.g=a);}Cb=!1;}function Eb(a,b){C.call(this);this.h=a||1;this.g=b||l;this.j=q(this.kb,this);this.l=Date.now();}t(Eb,C);k=Eb.prototype;k.da=!1;k.S=null;k.kb=function(){if(this.da){var a=Date.now()-this.l;0{a.g=null;a.i&&(a.i=!1,Hb(a));},a.j);const b=a.h;a.h=null;a.m.apply(null,b);}class Ib extends v{constructor(a,b){super();this.m=a;this.j=b;this.h=null;this.i=!1;this.g=null;}l(a){this.h=arguments;this.g?this.i=!0:Hb(this);}M(){super.M();this.g&&(l.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null);}}function E(a){v.call(this);this.h=a;this.g={};}t(E,v);var Jb=[];function Kb(a,b,c,d){Array.isArray(c)||(c&&(Jb[0]=c.toString()),c=Jb);for(var e=0;ed.length)){var e=d[1];if(Array.isArray(e)&&!(1>e.length)){var f=e[0];if(\"noop\"!=f&&\"stop\"!=f&&\"close\"!=f)for(var h=1;hr)&&(3!=r||Ja||this.g&&(this.h.h||this.g.ga()||oc(this.g)))){this.I||4!=r||7==b||(8==b||0>=G?I(3):I(2));pc(this);var c=this.g.ba();this.N=c;b:if(qc(this)){var d=oc(this.g);a=\"\";var e=d.length,f=4==O(this.g);if(!this.h.i){if(\"undefined\"===typeof TextDecoder){P(this);rc(this);var h=\"\";break b}this.h.i=new l.TextDecoder;}for(b=0;bb.length)return hc;b=b.substr(d,c);a.C=d+c;return b}k.cancel=function(){this.I=!0;P(this);};function lc(a){a.Y=Date.now()+a.P;xc(a,a.P);}\nfunction xc(a,b){if(null!=a.B)throw Error(\"WatchDog timer not null\");a.B=K(q(a.eb,a),b);}function pc(a){a.B&&(l.clearTimeout(a.B),a.B=null);}k.eb=function(){this.B=null;const a=Date.now();0<=a-this.Y?(Qb(this.j,this.A),2!=this.K&&(I(3),J(17)),P(this),this.o=2,rc(this)):xc(this,this.Y-a);};function rc(a){0==a.l.G||a.I||uc(a.l,a);}function P(a){pc(a);var b=a.L;b&&\"function\"==typeof b.na&&b.na();a.L=null;Fb(a.W);Lb(a.V);a.g&&(b=a.g,a.g=null,b.abort(),b.na());}\nfunction sc(a,b){try{var c=a.l;if(0!=c.G&&(c.g==a||yc(c.i,a)))if(c.I=a.N,!a.J&&yc(c.i,a)&&3==c.G){try{var d=c.Ca.g.parse(b);}catch(m){d=null;}if(Array.isArray(d)&&3==d.length){var e=d;if(0==e[0])a:{if(!c.u){if(c.g)if(c.g.F+3E3e[2]&&c.N&&0==c.A&&!c.v&&(c.v=K(q(c.ab,c),6E3));if(1>=Cc(c.i)&&c.ka){try{c.ka();}catch(m){}c.ka=void 0;}}else Q(c,11);}else if((a.J||c.g==a)&&zc(c),!sa(b))for(e=c.Ca.g.parse(b),b=0;bb)throw Error(\"Bad port number \"+b);a.m=b;}else a.m=null;}function Sc(a,b,c){b instanceof Rc?(a.h=b,Zc(a.h,a.g)):(c||(b=Uc(b,$c)),a.h=new Rc(b,a.g));}function R(a,b,c){a.h.set(b,c);}function jc(a){R(a,\"zx\",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36));return a}\nfunction ad(a){return a instanceof U?N(a):new U(a,void 0)}function bd(a,b,c,d){var e=new U(null,void 0);a&&Oc(e,a);b&&Pc(e,b);c&&Qc(e,c);d&&(e.l=d);return e}function Tc(a,b){return a?b?decodeURI(a.replace(/%25/g,\"%2525\")):decodeURIComponent(a):\"\"}function Uc(a,b,c){return \"string\"===typeof a?(a=encodeURI(a).replace(b,cd),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,\"%$1\")),a):null}function cd(a){a=a.charCodeAt(0);return \"%\"+(a>>4&15).toString(16)+(a&15).toString(16)}\nvar Vc=/[#\\/\\?@]/g,Xc=/[#\\?:]/g,Wc=/[#\\?]/g,$c=/[#\\?@]/g,Yc=/#/g;function Rc(a,b){this.h=this.g=null;this.i=a||null;this.j=!!b;}function V(a){a.g||(a.g=new S,a.h=0,a.i&&Nc(a.i,function(b,c){a.add(decodeURIComponent(b.replace(/\\+/g,\" \")),c);}));}k=Rc.prototype;k.add=function(a,b){V(this);this.i=null;a=W(this,a);var c=this.g.get(a);c||this.g.set(a,c=[]);c.push(b);this.h+=1;return this};\nfunction dd(a,b){V(a);b=W(a,b);T(a.g.h,b)&&(a.i=null,a.h-=a.g.get(b).length,a=a.g,T(a.h,b)&&(delete a.h[b],a.i--,a.g.length>2*a.i&&Lc(a)));}function ed(a,b){V(a);b=W(a,b);return T(a.g.h,b)}k.forEach=function(a,b){V(this);this.g.forEach(function(c,d){na(c,function(e){a.call(b,e,d,this);},this);},this);};k.T=function(){V(this);for(var a=this.g.R(),b=this.g.T(),c=[],d=0;d=a.j:!1}function Cc(a){return a.h?1:a.g?a.g.size:0}function yc(a,b){return a.h?a.h==b:a.g?a.g.has(b):!1}function Dc(a,b){a.g?a.g.add(b):a.h=b;}\nfunction Fc(a,b){a.h&&a.h==b?a.h=null:a.g&&a.g.has(b)&&a.g.delete(b);}gd.prototype.cancel=function(){this.i=jd(this);if(this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const a of this.g.values())a.cancel();this.g.clear();}};function jd(a){if(null!=a.h)return a.i.concat(a.h.D);if(null!=a.g&&0!==a.g.size){let b=a.i;for(const c of a.g.values())b=b.concat(c.D);return b}return ra(a.i)}function kd(){}kd.prototype.stringify=function(a){return l.JSON.stringify(a,void 0)};kd.prototype.parse=function(a){return l.JSON.parse(a,void 0)};function ld(){this.g=new kd;}function md(a,b,c){const d=c||\"\";try{Kc(a,function(e,f){let h=e;p(e)&&(h=rb(e));b.push(d+f+\"=\"+encodeURIComponent(h));});}catch(e){throw b.push(d+\"type=\"+encodeURIComponent(\"_badmap\")),e;}}function nd(a,b){const c=new Mb;if(l.Image){const d=new Image;d.onload=ja(od,c,d,\"TestLoadImage: loaded\",!0,b);d.onerror=ja(od,c,d,\"TestLoadImage: error\",!1,b);d.onabort=ja(od,c,d,\"TestLoadImage: abort\",!1,b);d.ontimeout=ja(od,c,d,\"TestLoadImage: timeout\",!1,b);l.setTimeout(function(){if(d.ontimeout)d.ontimeout();},1E4);d.src=a;}else b(!1);}function od(a,b,c,d,e){try{b.onload=null,b.onerror=null,b.onabort=null,b.ontimeout=null,e(d);}catch(f){}}function pd(a){this.l=a.$b||null;this.j=a.ib||!1;}t(pd,Yb);pd.prototype.g=function(){return new qd(this.l,this.j)};pd.prototype.i=function(a){return function(){return a}}({});function qd(a,b){C.call(this);this.D=a;this.u=b;this.m=void 0;this.readyState=rd;this.status=0;this.responseType=this.responseText=this.response=this.statusText=\"\";this.onreadystatechange=null;this.v=new Headers;this.h=null;this.C=\"GET\";this.B=\"\";this.g=!1;this.A=this.j=this.l=null;}t(qd,C);var rd=0;k=qd.prototype;\nk.open=function(a,b){if(this.readyState!=rd)throw this.abort(),Error(\"Error reopening a connection\");this.C=a;this.B=b;this.readyState=1;sd(this);};k.send=function(a){if(1!=this.readyState)throw this.abort(),Error(\"need to call open() first. \");this.g=!0;const b={headers:this.v,method:this.C,credentials:this.m,cache:void 0};a&&(b.body=a);(this.D||l).fetch(new Request(this.B,b)).then(this.Va.bind(this),this.ha.bind(this));};\nk.abort=function(){this.response=this.responseText=\"\";this.v=new Headers;this.status=0;this.j&&this.j.cancel(\"Request was aborted.\");1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,td(this));this.readyState=rd;};\nk.Va=function(a){if(this.g&&(this.l=a,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=a.headers,this.readyState=2,sd(this)),this.g&&(this.readyState=3,sd(this),this.g)))if(\"arraybuffer\"===this.responseType)a.arrayBuffer().then(this.Ta.bind(this),this.ha.bind(this));else if(\"undefined\"!==typeof l.ReadableStream&&\"body\"in a){this.j=a.body.getReader();if(this.u){if(this.responseType)throw Error('responseType must be empty for \"streamBinaryChunks\" mode responses.');this.response=\n[];}else this.response=this.responseText=\"\",this.A=new TextDecoder;ud(this);}else a.text().then(this.Ua.bind(this),this.ha.bind(this));};function ud(a){a.j.read().then(a.Sa.bind(a)).catch(a.ha.bind(a));}k.Sa=function(a){if(this.g){if(this.u&&a.value)this.response.push(a.value);else if(!this.u){var b=a.value?a.value:new Uint8Array(0);if(b=this.A.decode(b,{stream:!a.done}))this.response=this.responseText+=b;}a.done?td(this):sd(this);3==this.readyState&&ud(this);}};\nk.Ua=function(a){this.g&&(this.response=this.responseText=a,td(this));};k.Ta=function(a){this.g&&(this.response=a,td(this));};k.ha=function(){this.g&&td(this);};function td(a){a.readyState=4;a.l=null;a.j=null;a.A=null;sd(a);}k.setRequestHeader=function(a,b){this.v.append(a,b);};k.getResponseHeader=function(a){return this.h?this.h.get(a.toLowerCase())||\"\":\"\"};\nk.getAllResponseHeaders=function(){if(!this.h)return \"\";const a=[],b=this.h.entries();for(var c=b.next();!c.done;)c=c.value,a.push(c[0]+\": \"+c[1]),c=b.next();return a.join(\"\\r\\n\")};function sd(a){a.onreadystatechange&&a.onreadystatechange.call(a);}Object.defineProperty(qd.prototype,\"withCredentials\",{get:function(){return \"include\"===this.m},set:function(a){this.m=a?\"include\":\"same-origin\";}});var vd=l.JSON.parse;function X(a){C.call(this);this.headers=new S;this.u=a||null;this.h=!1;this.C=this.g=null;this.H=\"\";this.m=0;this.j=\"\";this.l=this.F=this.v=this.D=!1;this.B=0;this.A=null;this.J=wd;this.K=this.L=!1;}t(X,C);var wd=\"\",xd=/^https?$/i,yd=[\"POST\",\"PUT\"];k=X.prototype;\nk.ea=function(a,b,c,d){if(this.g)throw Error(\"[goog.net.XhrIo] Object is active with another request=\"+this.H+\"; newUri=\"+a);b=b?b.toUpperCase():\"GET\";this.H=a;this.j=\"\";this.m=0;this.D=!1;this.h=!0;this.g=this.u?this.u.g():cc.g();this.C=this.u?Zb(this.u):Zb(cc);this.g.onreadystatechange=q(this.Fa,this);try{this.F=!0,this.g.open(b,String(a),!0),this.F=!1;}catch(f){zd(this,f);return}a=c||\"\";const e=new S(this.headers);d&&Kc(d,function(f,h){e.set(h,f);});d=oa(e.T());c=l.FormData&&a instanceof l.FormData;\n!(0<=ma(yd,b))||d||c||e.set(\"Content-Type\",\"application/x-www-form-urlencoded;charset=utf-8\");e.forEach(function(f,h){this.g.setRequestHeader(h,f);},this);this.J&&(this.g.responseType=this.J);\"withCredentials\"in this.g&&this.g.withCredentials!==this.L&&(this.g.withCredentials=this.L);try{Ad(this),0=a.i.j-(a.m?1:0))return !1;if(a.m)return a.l=b.D.concat(a.l),!0;if(1==a.G||2==a.G||a.C>=(a.Xa?0:a.Ya))return !1;a.m=K(q(a.Ha,a,b),Od(a,a.C));a.C++;return !0}\nk.Ha=function(a){if(this.m)if(this.m=null,1==this.G){if(!a){this.V=Math.floor(1E5*Math.random());a=this.V++;const e=new M(this,this.h,a,void 0);let f=this.s;this.P&&(f?(f=ya(f),Aa(f,this.P)):f=this.P);null===this.o&&(e.H=f);if(this.ja)a:{var b=0;for(var c=0;cm)f=Math.max(0,e[u].h-100),n=!1;else try{md(r,h,\"req\"+m+\"_\");}catch(G){d&&d(r);}}if(n){d=h.join(\"&\");break a}}}a=a.l.splice(0,c);b.D=a;return d}function Gc(a){a.g||a.u||(a.Y=1,zb(a.Ga,a),a.A=0);}\nfunction Bc(a){if(a.g||a.u||3<=a.A)return !1;a.Y++;a.u=K(q(a.Ga,a),Od(a,a.A));a.A++;return !0}k.Ga=function(){this.u=null;Rd(this);if(this.$&&!(this.L||null==this.g||0>=this.O)){var a=2*this.O;this.h.info(\"BP detection timer enabled: \"+a);this.B=K(q(this.bb,this),a);}};k.bb=function(){this.B&&(this.B=null,this.h.info(\"BP detection timeout reached.\"),this.h.info(\"Buffering proxy detected and switch to long-polling!\"),this.N=!1,this.L=!0,J(10),Ac(this),Rd(this));};\nfunction wc(a){null!=a.B&&(l.clearTimeout(a.B),a.B=null);}function Rd(a){a.g=new M(a,a.h,\"rpc\",a.Y);null===a.o&&(a.g.H=a.s);a.g.O=0;var b=N(a.oa);R(b,\"RID\",\"rpc\");R(b,\"SID\",a.J);R(b,\"CI\",a.N?\"0\":\"1\");R(b,\"AID\",a.U);Kd(a,b);R(b,\"TYPE\",\"xmlhttp\");a.o&&a.s&&Gd(b,a.o,a.s);a.K&&a.g.setTimeout(a.K);var c=a.g;a=a.la;c.K=1;c.v=jc(N(b));c.s=null;c.U=!0;kc(c,a);}k.ab=function(){null!=this.v&&(this.v=null,Ac(this),Bc(this),J(19));};function zc(a){null!=a.v&&(l.clearTimeout(a.v),a.v=null);}\nfunction uc(a,b){var c=null;if(a.g==b){zc(a);wc(a);a.g=null;var d=2;}else if(yc(a.i,b))c=b.D,Fc(a.i,b),d=1;else return;a.I=b.N;if(0!=a.G)if(b.i)if(1==d){c=b.s?b.s.length:0;b=Date.now()-b.F;var e=a.C;d=Sb();D(d,new Vb(d,c,b,e));Hc(a);}else Gc(a);else if(e=b.o,3==e||0==e&&0= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch] || charMap[ch] || ch;\n if (appendChar === replacement) {\n appendChar = ' ';\n }\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Type {\n constructor(major, name, terminal) {\n this.major = major;\n this.majorEncoded = major << 5;\n this.name = name;\n this.terminal = terminal;\n }\n toString() {\n return `Type[${ this.major }].${ this.name }`;\n }\n compare(typ) {\n return this.major < typ.major ? -1 : this.major > typ.major ? 1 : 0;\n }\n}\nType.uint = new Type(0, 'uint', true);\nType.negint = new Type(1, 'negint', true);\nType.bytes = new Type(2, 'bytes', true);\nType.string = new Type(3, 'string', true);\nType.array = new Type(4, 'array', false);\nType.map = new Type(5, 'map', false);\nType.tag = new Type(6, 'tag', false);\nType.float = new Type(7, 'float', true);\nType.false = new Type(7, 'false', true);\nType.true = new Type(7, 'true', true);\nType.null = new Type(7, 'null', true);\nType.undefined = new Type(7, 'undefined', true);\nType.break = new Type(7, 'break', true);\nclass Token {\n constructor(type, value, encodedLength) {\n this.type = type;\n this.value = value;\n this.encodedLength = encodedLength;\n this.encodedBytes = undefined;\n this.byteValue = undefined;\n }\n toString() {\n return `Token[${ this.type }].${ this.value }`;\n }\n}\n\nexports.Token = Token;\nexports.Type = Type;\n","'use strict'\n\nlet impl\n\nif (globalThis.AbortController && globalThis.AbortSignal) {\n impl = globalThis\n} else {\n impl = require('abort-controller')\n}\n\nmodule.exports.AbortSignal = impl.AbortSignal\nmodule.exports.AbortController = impl.AbortController\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\n\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n } // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n\n\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\n\nexport var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","const bufEquals = (b1, b2) => {\n if (b1.byteLength !== b2.byteLength)\n return false;\n const u1 = new Uint8Array(b1);\n const u2 = new Uint8Array(b2);\n for (let i = 0; i < u1.length; i++) {\n if (u1[i] !== u2[i])\n return false;\n }\n return true;\n};\nconst encodeLenBytes = (len) => {\n if (len <= 0x7f) {\n return 1;\n }\n else if (len <= 0xff) {\n return 2;\n }\n else if (len <= 0xffff) {\n return 3;\n }\n else if (len <= 0xffffff) {\n return 4;\n }\n else {\n throw new Error('Length too long (> 4 bytes)');\n }\n};\nconst encodeLen = (buf, offset, len) => {\n if (len <= 0x7f) {\n buf[offset] = len;\n return 1;\n }\n else if (len <= 0xff) {\n buf[offset] = 0x81;\n buf[offset + 1] = len;\n return 2;\n }\n else if (len <= 0xffff) {\n buf[offset] = 0x82;\n buf[offset + 1] = len >> 8;\n buf[offset + 2] = len;\n return 3;\n }\n else if (len <= 0xffffff) {\n buf[offset] = 0x83;\n buf[offset + 1] = len >> 16;\n buf[offset + 2] = len >> 8;\n buf[offset + 3] = len;\n return 4;\n }\n else {\n throw new Error('Length too long (> 4 bytes)');\n }\n};\nconst decodeLenBytes = (buf, offset) => {\n if (buf[offset] < 0x80)\n return 1;\n if (buf[offset] === 0x80)\n throw new Error('Invalid length 0');\n if (buf[offset] === 0x81)\n return 2;\n if (buf[offset] === 0x82)\n return 3;\n if (buf[offset] === 0x83)\n return 4;\n throw new Error('Length too long (> 4 bytes)');\n};\n/**\n * A DER encoded `SEQUENCE(OID)` for DER-encoded-COSE\n */\nexport const DER_COSE_OID = Uint8Array.from([\n ...[0x30, 0x0c],\n ...[0x06, 0x0a],\n ...[0x2b, 0x06, 0x01, 0x04, 0x01, 0x83, 0xb8, 0x43, 0x01, 0x01], // DER encoded COSE\n]);\n/**\n * A DER encoded `SEQUENCE(OID)` for the Ed25519 algorithm\n */\nexport const ED25519_OID = Uint8Array.from([\n ...[0x30, 0x05],\n ...[0x06, 0x03],\n ...[0x2b, 0x65, 0x70], // id-Ed25519 OID\n]);\n/**\n * Wraps the given `payload` in a DER encoding tagged with the given encoded `oid` like so:\n * `SEQUENCE(oid, BITSTRING(payload))`\n *\n * @param paylod The payload to encode as the bit string\n * @param oid The DER encoded (and SEQUENCE wrapped!) OID to tag the payload with\n */\nexport const wrapDER = (payload, oid) => {\n // The Bit String header needs to include the unused bit count byte in its length\n const bitStringHeaderLength = 2 + encodeLenBytes(payload.byteLength + 1);\n const len = oid.byteLength + bitStringHeaderLength + payload.byteLength;\n let offset = 0;\n const buf = new Uint8Array(1 + encodeLenBytes(len) + len);\n // Sequence\n buf[offset++] = 0x30;\n // Sequence Length\n offset += encodeLen(buf, offset, len);\n // OID\n buf.set(oid, offset);\n offset += oid.byteLength;\n // Bit String Header\n buf[offset++] = 0x03;\n offset += encodeLen(buf, offset, payload.byteLength + 1);\n // 0 padding\n buf[offset++] = 0x00;\n buf.set(new Uint8Array(payload), offset);\n return buf;\n};\n/**\n * Extracts a payload from the given `derEncoded` data, and checks that it was tagged with the given `oid`.\n *\n * `derEncoded = SEQUENCE(oid, BITSTRING(payload))`\n *\n * @param derEncoded The DER encoded and tagged data\n * @param oid The DER encoded (and SEQUENCE wrapped!) expected OID\n * @returns The unwrapped payload\n */\nexport const unwrapDER = (derEncoded, oid) => {\n let offset = 0;\n const expect = (n, msg) => {\n if (buf[offset++] !== n)\n throw new Error('Expected: ' + msg);\n };\n const buf = new Uint8Array(derEncoded);\n expect(0x30, 'sequence');\n offset += decodeLenBytes(buf, offset);\n if (!bufEquals(buf.slice(offset, offset + oid.byteLength), oid)) {\n throw new Error('Not the expected OID.');\n }\n offset += oid.byteLength;\n expect(0x03, 'bit string');\n offset += decodeLenBytes(buf, offset);\n expect(0x00, '0 padding');\n return buf.slice(offset);\n};\n//# sourceMappingURL=der.js.map","import { SignIdentity } from '@dfinity/agent';\nimport { blobFromHex, blobFromUint8Array, blobToHex, derBlobFromBlob, blobFromBuffer, } from '@dfinity/candid';\nimport { Buffer } from 'buffer/';\nimport * as tweetnacl from 'tweetnacl';\nimport { ED25519_OID, unwrapDER, wrapDER } from './der';\nexport class Ed25519PublicKey {\n // `fromRaw` and `fromDer` should be used for instantiation, not this constructor.\n constructor(key) {\n this.rawKey = key;\n this.derKey = Ed25519PublicKey.derEncode(key);\n }\n static from(key) {\n return this.fromDer(key.toDer());\n }\n static fromRaw(rawKey) {\n return new Ed25519PublicKey(rawKey);\n }\n static fromDer(derKey) {\n return new Ed25519PublicKey(this.derDecode(derKey));\n }\n static derEncode(publicKey) {\n return derBlobFromBlob(blobFromUint8Array(wrapDER(publicKey, ED25519_OID)));\n }\n static derDecode(key) {\n const unwrapped = unwrapDER(key, ED25519_OID);\n if (unwrapped.length !== this.RAW_KEY_LENGTH) {\n throw new Error('An Ed25519 public key must be exactly 32bytes long');\n }\n return blobFromUint8Array(unwrapped);\n }\n toDer() {\n return this.derKey;\n }\n toRaw() {\n return this.rawKey;\n }\n}\n// The length of Ed25519 public keys is always 32 bytes.\nEd25519PublicKey.RAW_KEY_LENGTH = 32;\nexport class Ed25519KeyIdentity extends SignIdentity {\n // `fromRaw` and `fromDer` should be used for instantiation, not this constructor.\n constructor(publicKey, _privateKey) {\n super();\n this._privateKey = _privateKey;\n this._publicKey = Ed25519PublicKey.from(publicKey);\n }\n static generate(seed) {\n if (seed && seed.length !== 32) {\n throw new Error('Ed25519 Seed needs to be 32 bytes long.');\n }\n const { publicKey, secretKey } = seed === undefined ? tweetnacl.sign.keyPair() : tweetnacl.sign.keyPair.fromSeed(seed);\n return new this(Ed25519PublicKey.fromRaw(blobFromUint8Array(publicKey)), blobFromUint8Array(secretKey));\n }\n static fromParsedJson(obj) {\n const [publicKeyDer, privateKeyRaw] = obj;\n return new Ed25519KeyIdentity(Ed25519PublicKey.fromDer(blobFromHex(publicKeyDer)), blobFromHex(privateKeyRaw));\n }\n static fromJSON(json) {\n const parsed = JSON.parse(json);\n if (Array.isArray(parsed)) {\n if (typeof parsed[0] === 'string' && typeof parsed[1] === 'string') {\n return this.fromParsedJson([parsed[0], parsed[1]]);\n }\n else {\n throw new Error('Deserialization error: JSON must have at least 2 items.');\n }\n }\n else if (typeof parsed === 'object' && parsed !== null) {\n const { publicKey, _publicKey, secretKey, _privateKey } = parsed;\n const pk = publicKey\n ? Ed25519PublicKey.fromRaw(blobFromUint8Array(new Uint8Array(publicKey.data)))\n : Ed25519PublicKey.fromDer(blobFromUint8Array(new Uint8Array(_publicKey.data)));\n if (publicKey && secretKey && secretKey.data) {\n return new Ed25519KeyIdentity(pk, blobFromUint8Array(new Uint8Array(secretKey.data)));\n }\n else if (_publicKey && _privateKey && _privateKey.data) {\n return new Ed25519KeyIdentity(pk, blobFromUint8Array(new Uint8Array(_privateKey.data)));\n }\n }\n throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(json)}`);\n }\n static fromKeyPair(publicKey, privateKey) {\n return new Ed25519KeyIdentity(Ed25519PublicKey.fromRaw(publicKey), privateKey);\n }\n static fromSecretKey(secretKey) {\n const keyPair = tweetnacl.sign.keyPair.fromSecretKey(new Uint8Array(secretKey));\n const identity = Ed25519KeyIdentity.fromKeyPair(blobFromUint8Array(keyPair.publicKey), blobFromUint8Array(keyPair.secretKey));\n return identity;\n }\n /**\n * Serialize this key to JSON.\n */\n toJSON() {\n return [blobToHex(this._publicKey.toDer()), blobToHex(this._privateKey)];\n }\n /**\n * Return a copy of the key pair.\n */\n getKeyPair() {\n return {\n secretKey: blobFromUint8Array(new Uint8Array(this._privateKey)),\n publicKey: this._publicKey,\n };\n }\n /**\n * Return the public key.\n */\n getPublicKey() {\n return this._publicKey;\n }\n /**\n * Signs a blob of data, with this identity's private key.\n * @param challenge - challenge to sign with this identity's secretKey, producing a signature\n */\n async sign(challenge) {\n const blob = challenge instanceof Buffer\n ? blobFromBuffer(challenge)\n : blobFromUint8Array(new Uint8Array(challenge));\n const signature = tweetnacl.sign.detached(blob, this._privateKey);\n return blobFromUint8Array(signature);\n }\n}\n//# sourceMappingURL=ed25519.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { requestIdOf, SignIdentity } from '@dfinity/agent';\nimport { blobFromHex, blobFromUint8Array, derBlobFromBlob, } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport { Buffer } from 'buffer/';\nimport * as cbor from 'simple-cbor';\nconst domainSeparator = new TextEncoder().encode('\\x1Aic-request-auth-delegation');\nconst requestDomainSeparator = Buffer.from(new TextEncoder().encode('\\x0Aic-request'));\nfunction _parseBlob(value) {\n if (typeof value !== 'string' || value.length < 64) {\n throw new Error('Invalid public key.');\n }\n return blobFromHex(value);\n}\n/**\n * A single delegation object that is signed by a private key. This is constructed by\n * `DelegationChain.create()`.\n *\n * {@see DelegationChain}\n */\nexport class Delegation {\n constructor(pubkey, expiration, targets) {\n this.pubkey = pubkey;\n this.expiration = expiration;\n this.targets = targets;\n }\n toCBOR() {\n // Expiration field needs to be encoded as a u64 specifically.\n return cbor.value.map(Object.assign({ pubkey: cbor.value.bytes(this.pubkey), expiration: cbor.value.u64(this.expiration.toString(16), 16) }, (this.targets && {\n targets: cbor.value.array(this.targets.map(t => cbor.value.bytes(t.toUint8Array()))),\n })));\n }\n toJSON() {\n // every string should be hex and once-de-hexed,\n // discoverable what it is (e.g. de-hex to get JSON with a 'type' property, or de-hex to DER with an OID)\n // After de-hex, if it's not obvious what it is, it's an ArrayBuffer.\n return Object.assign({ expiration: this.expiration.toString(16), pubkey: this.pubkey.toString('hex') }, (this.targets && { targets: this.targets.map(p => p.toHex()) }));\n }\n}\n/**\n * Sign a single delegation object for a period of time.\n *\n * @param from The identity that lends its delegation.\n * @param to The identity that receives the delegation.\n * @param expiration An expiration date for this delegation.\n * @param targets Limit this delegation to the target principals.\n */\nasync function _createSingleDelegation(from, to, expiration, targets) {\n const delegation = new Delegation(to.toDer(), BigInt(+expiration) * BigInt(1000000), // In nanoseconds.\n targets);\n // The signature is calculated by signing the concatenation of the domain separator\n // and the message.\n // Note: To ensure Safari treats this as a user gesture, ensure to not use async methods\n // besides the actualy webauthn functionality (such as `sign`). Safari will de-register\n // a user gesture if you await an async call thats not fetch, xhr, or setTimeout.\n const challenge = new Uint8Array([...domainSeparator, ...requestIdOf(delegation)]);\n const signature = await from.sign(blobFromUint8Array(challenge));\n return {\n delegation,\n signature,\n };\n}\n/**\n * A chain of delegations. This is JSON Serializable.\n * This is the object to serialize and pass to a DelegationIdentity. It does not keep any\n * private keys.\n */\nexport class DelegationChain {\n constructor(delegations, publicKey) {\n this.delegations = delegations;\n this.publicKey = publicKey;\n }\n /**\n * Create a delegation chain between two (or more) keys. By default, the expiration time\n * will be very short (15 minutes).\n *\n * To build a chain of more than 2 identities, this function needs to be called multiple times,\n * passing the previous delegation chain into the options argument. For example:\n *\n * @example\n * const rootKey = createKey();\n * const middleKey = createKey();\n * const bottomeKey = createKey();\n *\n * const rootToMiddle = await DelegationChain.create(\n * root, middle.getPublicKey(), Date.parse('2100-01-01'),\n * );\n * const middleToBottom = await DelegationChain.create(\n * middle, bottom.getPublicKey(), Date.parse('2100-01-01'), { previous: rootToMiddle },\n * );\n *\n * // We can now use a delegation identity that uses the delegation above:\n * const identity = DelegationIdentity.fromDelegation(bottomKey, middleToBottom);\n *\n * @param from The identity that will delegate.\n * @param to The identity that gets delegated. It can now sign messages as if it was the\n * identity above.\n * @param expiration The length the delegation is valid. By default, 15 minutes from calling\n * this function.\n * @param options A set of options for this delegation. expiration and previous\n * @param options.previous - Another DelegationChain that this chain should start with.\n * @param options.targets - targets that scope the delegation (e.g. Canister Principals)\n */\n static async create(from, to, expiration = new Date(Date.now() + 15 * 60 * 1000), options = {}) {\n var _a, _b;\n const delegation = await _createSingleDelegation(from, to, expiration, options.targets);\n return new DelegationChain([...(((_a = options.previous) === null || _a === void 0 ? void 0 : _a.delegations) || []), delegation], ((_b = options.previous) === null || _b === void 0 ? void 0 : _b.publicKey) || from.getPublicKey().toDer());\n }\n /**\n * Creates a DelegationChain object from a JSON string.\n *\n * @param json The JSON string to parse.\n */\n static fromJSON(json) {\n const { publicKey, delegations } = typeof json === 'string' ? JSON.parse(json) : json;\n if (!Array.isArray(delegations)) {\n throw new Error('Invalid delegations.');\n }\n const parsedDelegations = delegations.map(signedDelegation => {\n const { delegation, signature } = signedDelegation;\n const { pubkey, expiration, targets } = delegation;\n if (targets !== undefined && !Array.isArray(targets)) {\n throw new Error('Invalid targets.');\n }\n return {\n delegation: new Delegation(_parseBlob(pubkey), BigInt(`0x${expiration}`), // expiration in JSON is an hexa string (See toJSON() below).\n targets &&\n targets.map((t) => {\n if (typeof t !== 'string') {\n throw new Error('Invalid target.');\n }\n return Principal.fromHex(t);\n })),\n signature: _parseBlob(signature),\n };\n });\n return new this(parsedDelegations, derBlobFromBlob(_parseBlob(publicKey)));\n }\n /**\n * Creates a DelegationChain object from a list of delegations and a DER-encoded public key.\n *\n * @param delegations The list of delegations.\n * @param publicKey The DER-encoded public key of the key-pair signing the first delegation.\n */\n static fromDelegations(delegations, publicKey) {\n return new this(delegations, publicKey);\n }\n toJSON() {\n return {\n delegations: this.delegations.map(signedDelegation => {\n const { delegation, signature } = signedDelegation;\n const { targets } = delegation;\n return {\n delegation: Object.assign({ expiration: delegation.expiration.toString(16), pubkey: delegation.pubkey.toString('hex') }, (targets && {\n targets: targets.map(t => t.toHex()),\n })),\n signature: signature.toString('hex'),\n };\n }),\n publicKey: this.publicKey.toString('hex'),\n };\n }\n}\n/**\n * An Identity that adds delegation to a request. Everywhere in this class, the name\n * innerKey refers to the SignIdentity that is being used to sign the requests, while\n * originalKey is the identity that is being borrowed. More identities can be used\n * in the middle to delegate.\n */\nexport class DelegationIdentity extends SignIdentity {\n constructor(_inner, _delegation) {\n super();\n this._inner = _inner;\n this._delegation = _delegation;\n }\n /**\n * Create a delegation without having access to delegateKey.\n *\n * @param key The key used to sign the reqyests.\n * @param delegation A delegation object created using `createDelegation`.\n */\n static fromDelegation(key, delegation) {\n return new this(key, delegation);\n }\n getDelegation() {\n return this._delegation;\n }\n getPublicKey() {\n return {\n toDer: () => this._delegation.publicKey,\n };\n }\n sign(blob) {\n return this._inner.sign(blob);\n }\n async transformRequest(request) {\n const { body } = request, fields = __rest(request, [\"body\"]);\n const requestId = await requestIdOf(body);\n return Object.assign(Object.assign({}, fields), { body: {\n content: body,\n sender_sig: await this.sign(blobFromUint8Array(Buffer.concat([requestDomainSeparator, requestId]))),\n sender_delegation: this._delegation.delegations,\n sender_pubkey: this._delegation.publicKey,\n } });\n }\n}\n//# sourceMappingURL=delegation.js.map","import { SignIdentity } from '@dfinity/agent';\nimport { blobFromHex, blobFromUint8Array, derBlobFromBlob, } from '@dfinity/candid';\nimport borc from 'borc';\nimport * as tweetnacl from 'tweetnacl';\nimport { DER_COSE_OID, wrapDER } from './der';\nfunction _coseToDerEncodedBlob(cose) {\n return derBlobFromBlob(blobFromUint8Array(wrapDER(cose, DER_COSE_OID)));\n}\n/**\n * From the documentation;\n * The authData is a byte array described in the spec. Parsing it will involve slicing bytes from\n * the array and converting them into usable objects.\n *\n * See https://webauthn.guide/#registration (subsection \"Example: Parsing the authenticator data\").\n *\n * @param authData The authData field of the attestation response.\n * @returns The COSE key of the authData.\n */\nfunction _authDataToCose(authData) {\n const dataView = new DataView(new ArrayBuffer(2));\n const idLenBytes = authData.slice(53, 55);\n [...new Uint8Array(idLenBytes)].forEach((v, i) => dataView.setUint8(i, v));\n const credentialIdLength = dataView.getUint16(0);\n // Get the public key object.\n return authData.slice(55 + credentialIdLength);\n}\nexport class CosePublicKey {\n constructor(_cose) {\n this._cose = _cose;\n this._encodedKey = _coseToDerEncodedBlob(_cose);\n }\n toDer() {\n return this._encodedKey;\n }\n getCose() {\n return this._cose;\n }\n}\n/**\n * Create a challenge from a string or array. The default challenge is always the same\n * because we don't need to verify the authenticity of the key on the server (we don't\n * register our keys with the IC). Any challenge would do, even one per key, randomly\n * generated.\n *\n * @param challenge The challenge to transform into a byte array. By default a hard\n * coded string.\n */\nfunction _createChallengeBuffer(challenge = '') {\n if (typeof challenge === 'string') {\n return Uint8Array.from(challenge, c => c.charCodeAt(0));\n }\n else {\n return challenge;\n }\n}\n/**\n * Create a credentials to authenticate with a server. This is necessary in order in\n * WebAuthn to get credentials IDs (which give us the public key and allow us to\n * sign), but in the case of the Internet Computer, we don't actually need to register\n * it, so we don't.\n * @param credentialCreationOptions an optional CredentialCreationOptions object\n */\nasync function _createCredential(credentialCreationOptions) {\n const creds = (await navigator.credentials.create(credentialCreationOptions !== null && credentialCreationOptions !== void 0 ? credentialCreationOptions : {\n publicKey: {\n authenticatorSelection: {\n userVerification: 'preferred',\n },\n attestation: 'direct',\n challenge: _createChallengeBuffer(),\n pubKeyCredParams: [{ type: 'public-key', alg: PubKeyCoseAlgo.ECDSA_WITH_SHA256 }],\n rp: {\n name: 'Internet Identity Service',\n },\n user: {\n id: tweetnacl.randomBytes(16),\n name: 'Internet Identity',\n displayName: 'Internet Identity',\n },\n },\n }));\n // Validate that it's the correct type at runtime, since WebAuthn does not HAVE to\n // reply with a PublicKeyCredential.\n if (creds.response === undefined || !(creds.rawId instanceof ArrayBuffer)) {\n return null;\n }\n else {\n return creds;\n }\n}\n// See https://www.iana.org/assignments/cose/cose.xhtml#algorithms for a complete\n// list of these algorithms. We only list the ones we support here.\nvar PubKeyCoseAlgo;\n(function (PubKeyCoseAlgo) {\n PubKeyCoseAlgo[PubKeyCoseAlgo[\"ECDSA_WITH_SHA256\"] = -7] = \"ECDSA_WITH_SHA256\";\n})(PubKeyCoseAlgo || (PubKeyCoseAlgo = {}));\n/**\n * A SignIdentity that uses `navigator.credentials`. See https://webauthn.guide/ for\n * more information about WebAuthentication.\n */\nexport class WebAuthnIdentity extends SignIdentity {\n constructor(rawId, cose) {\n super();\n this.rawId = rawId;\n this._publicKey = new CosePublicKey(cose);\n }\n /**\n * Create an identity from a JSON serialization.\n * @param json - json to parse\n */\n static fromJSON(json) {\n const { publicKey, rawId } = JSON.parse(json);\n if (typeof publicKey !== 'string' || typeof rawId !== 'string') {\n throw new Error('Invalid JSON string.');\n }\n return new this(blobFromHex(rawId), blobFromHex(publicKey));\n }\n /**\n * Create an identity.\n * @param credentialCreationOptions an optional CredentialCreationOptions Challenge\n */\n static async create(credentialCreationOptions) {\n const creds = await _createCredential(credentialCreationOptions);\n if (!creds || creds.type !== 'public-key') {\n throw new Error('Could not create credentials.');\n }\n const response = creds.response;\n if (!(response.attestationObject instanceof ArrayBuffer)) {\n throw new Error('Was expecting an attestation response.');\n }\n // Parse the attestationObject as CBOR.\n const attObject = borc.decodeFirst(new Uint8Array(response.attestationObject));\n return new this(blobFromUint8Array(new Uint8Array(creds.rawId)), blobFromUint8Array(new Uint8Array(_authDataToCose(attObject.authData))));\n }\n getPublicKey() {\n return this._publicKey;\n }\n async sign(blob) {\n const result = (await navigator.credentials.get({\n publicKey: {\n allowCredentials: [\n {\n type: 'public-key',\n id: this.rawId,\n },\n ],\n challenge: blob,\n userVerification: 'preferred',\n },\n }));\n const response = result.response;\n if (response.signature instanceof ArrayBuffer &&\n response.authenticatorData instanceof ArrayBuffer) {\n const cbor = borc.encode(new borc.Tagged(55799, {\n authenticator_data: new Uint8Array(response.authenticatorData),\n client_data_json: new TextDecoder().decode(response.clientDataJSON),\n signature: new Uint8Array(response.signature),\n }));\n if (!cbor) {\n throw new Error('failed to encode cbor');\n }\n return blobFromUint8Array(new Uint8Array(cbor));\n }\n else {\n throw new Error('Invalid response from WebAuthn.');\n }\n }\n /**\n * Allow for JSON serialization of all information needed to reuse this identity.\n */\n toJSON() {\n return {\n publicKey: this._publicKey.getCose().toString('hex'),\n rawId: this.rawId.toString('hex'),\n };\n }\n}\n//# sourceMappingURL=webauthn.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName: string): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n","'use strict';\n\n/**\n * @typedef {{ [key: string]: any }} Extensions\n * @typedef {Error} Err\n * @property {string} message\n */\n\n/**\n *\n * @param {Error} obj\n * @param {Extensions} props\n * @returns {Error & Extensions}\n */\nfunction assign(obj, props) {\n for (const key in props) {\n Object.defineProperty(obj, key, {\n value: props[key],\n enumerable: true,\n configurable: true,\n });\n }\n\n return obj;\n}\n\n/**\n *\n * @param {any} err - An Error\n * @param {string|Extensions} code - A string code or props to set on the error\n * @param {Extensions} [props] - Props to set on the error\n * @returns {Error & Extensions}\n */\nfunction createError(err, code, props) {\n if (!err || typeof err === 'string') {\n throw new TypeError('Please pass an Error to err-code');\n }\n\n if (!props) {\n props = {};\n }\n\n if (typeof code === 'object') {\n props = code;\n code = '';\n }\n\n if (code) {\n props.code = code;\n }\n\n try {\n return assign(err, props);\n } catch (_) {\n props.message = err.message;\n props.stack = err.stack;\n\n const ErrClass = function () {};\n\n ErrClass.prototype = Object.create(Object.getPrototypeOf(err));\n\n // @ts-ignore\n const output = assign(new ErrClass(), props);\n\n return output;\n }\n}\n\nmodule.exports = createError;\n","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { filterProps } from '../util/types';\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\n\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height; // Define vertical offsets and position inverts based on the value being positive or negative\n\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end'; // Define horizontal offsets and position inverts based on the value being positive or negative\n\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\n\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n\n if (labelViewBox) {\n return labelViewBox;\n }\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","// tslint:disable:max-classes-per-file\n// This file is based on:\n// tslint:disable-next-line: max-line-length\n// https://github.com/dfinity-lab/dfinity/blob/9bca65f8edd65701ea6bdb00e0752f9186bbc893/docs/spec/public/index.adoc#cbor-encoding-of-requests-and-responses\nimport borc from 'borc';\nimport { Buffer } from 'buffer/';\nimport * as cbor from 'simple-cbor';\nimport { SelfDescribeCborSerializer } from 'simple-cbor';\nimport { blobFromBuffer, blobFromHex } from '@dfinity/candid';\n// We are using hansl/simple-cbor for CBOR serialization, to avoid issues with\n// encoding the uint64 values that the HTTP handler of the client expects for\n// canister IDs. However, simple-cbor does not yet provide deserialization so\n// we are using `Uint8Array` so that we can use the dignifiedquire/borc CBOR\n// decoder.\nclass PrincipalEncoder {\n get name() {\n return 'Principal';\n }\n get priority() {\n return 0;\n }\n match(value) {\n return value && value._isPrincipal === true;\n }\n encode(v) {\n return cbor.value.bytes(v.toUint8Array().buffer);\n }\n}\nclass BufferEncoder {\n get name() {\n return 'Buffer';\n }\n get priority() {\n return 1;\n }\n match(value) {\n return Buffer.isBuffer(value);\n }\n encode(v) {\n return cbor.value.bytes(new Uint8Array(v));\n }\n}\nclass BigIntEncoder {\n get name() {\n return 'BigInt';\n }\n get priority() {\n return 1;\n }\n match(value) {\n return typeof value === `bigint`;\n }\n encode(v) {\n // Always use a bigint encoding.\n if (v > BigInt(0)) {\n return cbor.value.tagged(2, cbor.value.bytes(blobFromHex(v.toString(16))));\n }\n else {\n return cbor.value.tagged(3, cbor.value.bytes(blobFromHex((BigInt('-1') * v).toString(16))));\n }\n }\n}\nconst serializer = SelfDescribeCborSerializer.withDefaultEncoders(true);\nserializer.addEncoder(new PrincipalEncoder());\nserializer.addEncoder(new BufferEncoder());\nserializer.addEncoder(new BigIntEncoder());\nexport var CborTag;\n(function (CborTag) {\n CborTag[CborTag[\"Uint64LittleEndian\"] = 71] = \"Uint64LittleEndian\";\n CborTag[CborTag[\"Semantic\"] = 55799] = \"Semantic\";\n})(CborTag || (CborTag = {}));\nexport const encode = (value) => {\n return blobFromBuffer(Buffer.from(serializer.serialize(value)));\n};\nfunction decodePositiveBigInt(buf) {\n const len = buf.byteLength;\n let res = BigInt(0);\n for (let i = 0; i < len; i++) {\n // tslint:disable-next-line:no-bitwise\n res = res * BigInt(0x100) + BigInt(buf[i]);\n }\n return res;\n}\nexport function decode(input) {\n const decoder = new borc.Decoder({\n size: input.byteLength,\n tags: {\n // Override tags 2 and 3 for BigInt support (borc supports only BigNumber).\n 2: val => decodePositiveBigInt(val),\n 3: val => -decodePositiveBigInt(val),\n [CborTag.Semantic]: (value) => value,\n },\n });\n const result = decoder.decodeFirst(input);\n return result;\n}\n//# sourceMappingURL=cbor.js.map","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\ninterface TimestampSource {\n nowSeconds(): number;\n}\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nconst dateTimestampSource: TimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance(): Performance | undefined {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n const timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance(): Performance | undefined {\n try {\n const perfHooks = dynamicRequire(module, 'perf_hooks') as { performance: Performance };\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nconst platformPerformance: Performance | undefined = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nconst timestampSource: TimestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport const dateTimestampInSeconds: () => number = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport const timestampInSeconds: () => number = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nexport const timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport const usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport let _browserPerformanceTimeOriginMode: string;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport const browserPerformanceTimeOrigin = ((): number | undefined => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n const threshold = 3600 * 1000;\n const performanceNow = performance.now();\n const dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n const timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n const timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing && performance.timing.navigationStart;\n const hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n const navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst decodeErrPrefix = 'CBOR decode error:';\nconst encodeErrPrefix = 'CBOR encode error:';\nconst uintMinorPrefixBytes = [];\nuintMinorPrefixBytes[23] = 1;\nuintMinorPrefixBytes[24] = 2;\nuintMinorPrefixBytes[25] = 3;\nuintMinorPrefixBytes[26] = 5;\nuintMinorPrefixBytes[27] = 9;\nfunction assertEnoughData(data, pos, need) {\n if (data.length - pos < need) {\n throw new Error(`${ decodeErrPrefix } not enough data for type`);\n }\n}\n\nexports.assertEnoughData = assertEnoughData;\nexports.decodeErrPrefix = decodeErrPrefix;\nexports.encodeErrPrefix = encodeErrPrefix;\nexports.uintMinorPrefixBytes = uintMinorPrefixBytes;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar normaliseInput_browser = require('./files/normalise-input.browser.js');\nvar modeToString = require('./mode-to-string.js');\n\nasync function multipartRequest(source, abortController, headers = {}) {\n const parts = [];\n const formData = new FormData();\n let index = 0;\n let total = 0;\n for await (const {content, path, mode, mtime} of normaliseInput_browser.normaliseInput(source)) {\n let fileSuffix = '';\n const type = content ? 'file' : 'dir';\n if (index > 0) {\n fileSuffix = `-${ index }`;\n }\n let fieldName = type + fileSuffix;\n const qs = [];\n if (mode !== null && mode !== undefined) {\n qs.push(`mode=${ modeToString.modeToString(mode) }`);\n }\n if (mtime != null) {\n const {secs, nsecs} = mtime;\n qs.push(`mtime=${ secs }`);\n if (nsecs != null) {\n qs.push(`mtime-nsecs=${ nsecs }`);\n }\n }\n if (qs.length) {\n fieldName = `${ fieldName }?${ qs.join('&') }`;\n }\n if (content) {\n formData.set(fieldName, content, path != null ? encodeURIComponent(path) : undefined);\n const end = total + content.size;\n parts.push({\n name: path,\n start: total,\n end\n });\n total = end;\n } else if (path != null) {\n formData.set(fieldName, new File([''], encodeURIComponent(path), { type: 'application/x-directory' }));\n } else {\n throw new Error('path or content or both must be set');\n }\n index++;\n }\n return {\n total,\n parts,\n headers,\n body: formData\n };\n}\n\nexports.multipartRequest = multipartRequest;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar anySignal = require('any-signal');\n\nfunction filter(signals) {\n return signals.filter(Boolean);\n}\nfunction abortSignal(...signals) {\n return anySignal.anySignal(filter(signals));\n}\n\nexports.abortSignal = abortSignal;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatTime = formatTime;\nexports.isVideoChild = isVideoChild;\nexports.mergeAndSortChildren = mergeAndSortChildren;\nexports.deprecatedWarning = deprecatedWarning;\nexports.throttle = throttle;\nexports.mediaProperties = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\n// NaN is the only value in javascript which is not equal to itself.\n// eslint-disable-next-line no-self-compare\nvar isNaN = Number.isNaN || function (value) {\n return value !== value;\n};\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\n\n\nfunction formatTime() {\n var seconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var guide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : seconds;\n var s = Math.floor(seconds % 60);\n var m = Math.floor(seconds / 60 % 60);\n var h = Math.floor(seconds / 3600);\n var gm = Math.floor(guide / 60 % 60);\n var gh = Math.floor(guide / 3600); // handle invalid times\n\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = '-';\n m = '-';\n s = '-';\n } // Check if we need to show hours\n\n\n h = h > 0 || gh > 0 ? \"\".concat(h, \":\") : ''; // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n\n m = \"\".concat((h || gm >= 10) && m < 10 ? \"0\".concat(m) : m, \":\"); // Check if leading zero is need for seconds\n\n s = s < 10 ? \"0\".concat(s) : s;\n return h + m + s;\n} // Check if the element belongs to a video element\n// only accept , ,\n// \n// elements\n\n\nfunction isVideoChild(c) {\n if (c.props && c.props.isVideoChild) {\n return true;\n }\n\n return c.type === 'source' || c.type === 'track';\n}\n\nvar find = function find(elements, func) {\n return elements.filter(func)[0];\n}; // check if two components are the same type\n\n\nvar isTypeEqual = function isTypeEqual(component1, component2) {\n var type1 = component1.type;\n var type2 = component2.type;\n\n if (typeof type1 === 'string' || typeof type2 === 'string') {\n return type1 === type2;\n }\n\n if (typeof type1 === 'function' && typeof type2 === 'function') {\n return type1.displayName === type2.displayName;\n }\n\n return false;\n}; // merge default children\n// sort them by `order` property\n// filter them by `disabled` property\n\n\nfunction mergeAndSortChildren(defaultChildren, _children, _parentProps) {\n var defaultOrder = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n var children = _react[\"default\"].Children.toArray(_children);\n\n var order = _parentProps.order,\n parentProps = (0, _objectWithoutProperties2[\"default\"])(_parentProps, [\"order\"]); // ignore order from parent\n\n return children.filter(function (e) {\n return !e.props.disabled;\n }) // filter the disabled components\n .concat(defaultChildren.filter(function (c) {\n return !find(children, function (component) {\n return isTypeEqual(component, c);\n });\n })).map(function (element) {\n var defaultComponent = find(defaultChildren, function (c) {\n return isTypeEqual(c, element);\n });\n var defaultProps = defaultComponent ? defaultComponent.props : {};\n var props = (0, _objectSpread2[\"default\"])({}, parentProps, defaultProps, element.props);\n\n var e = _react[\"default\"].cloneElement(element, props, element.props.children);\n\n return e;\n }).sort(function (a, b) {\n return (a.props.order || defaultOrder) - (b.props.order || defaultOrder);\n });\n}\n/**\n * Temporary utility for generating the warnings\n */\n\n\nfunction deprecatedWarning(oldMethodCall, newMethodCall) {\n // eslint-disable-next-line no-console\n console.warn(\"WARNING: \".concat(oldMethodCall, \" will be deprecated soon! Please use \").concat(newMethodCall, \" instead.\"));\n}\n\nfunction throttle(callback, limit) {\n var _arguments = arguments;\n var wait = false;\n return function () {\n if (!wait) {\n // eslint-disable-next-line prefer-rest-params\n callback.apply(void 0, (0, _toConsumableArray2[\"default\"])(_arguments));\n wait = true;\n setTimeout(function () {\n wait = false;\n }, limit);\n }\n };\n}\n\nvar mediaProperties = ['error', 'src', 'srcObject', 'currentSrc', 'crossOrigin', 'networkState', 'preload', 'buffered', 'readyState', 'seeking', 'currentTime', 'duration', 'paused', 'defaultPlaybackRate', 'playbackRate', 'played', 'seekable', 'ended', 'autoplay', 'loop', 'mediaGroup', 'controller', 'controls', 'volume', 'muted', 'defaultMuted', 'audioTracks', 'videoTracks', 'textTracks', 'width', 'height', 'videoWidth', 'videoHeight', 'poster'];\nexports.mediaProperties = mediaProperties;","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\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","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\n\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\n\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, 'Bar');\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\n\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = void 0;\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\n\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { useState, useEffect, createElement, Component } from 'react';\nimport invariant from 'invariant';\n\nvar INSTANCE_MAP = new Map();\nvar OBSERVER_MAP = new Map();\n/**\n * Monitor element, and trigger callback when element becomes visible\n * @param element {HTMLElement}\n * @param callback {Function} Called with inView\n * @param options {Object} InterSection observer options\n * @param options.threshold {Number} Number between 0 and 1, indicating how much of the element should be visible before triggering\n * @param options.root {HTMLElement} It should have a unique id or data-intersection-id in order for the Observer to reused.\n * @param options.rootMargin {String} The CSS margin to apply to the root element.\n * @param rootId {String} Unique identifier for the root element, to enable reusing the IntersectionObserver\n */\n\nfunction observe(element, callback, options, rootId) {\n if (options === void 0) {\n options = {};\n }\n\n // Validate that the element is not being used in another \n invariant(!INSTANCE_MAP.has(element), \"react-intersection-observer: Trying to observe %s, but it's already being observed by another instance.\\nMake sure the `ref` is only used by a single instance.\\n\\n%s\", element); // IntersectionObserver needs a threshold to trigger, so set it to 0 if it's not defined.\n // Modify the options object, since it's used in the onChange handler.\n\n if (!options.threshold) options.threshold = 0;\n var _options = options,\n root = _options.root,\n rootMargin = _options.rootMargin,\n threshold = _options.threshold;\n if (!element || !callback) return;\n var observerId = rootMargin ? threshold.toString() + \"_\" + rootMargin : threshold.toString();\n\n if (root) {\n observerId = rootId ? rootId + \"_\" + observerId : null;\n }\n\n var observerInstance = observerId ? OBSERVER_MAP.get(observerId) : null;\n\n if (!observerInstance) {\n observerInstance = new IntersectionObserver(onChange, options);\n if (observerId) OBSERVER_MAP.set(observerId, observerInstance);\n }\n\n var instance = {\n callback: callback,\n visible: false,\n options: options,\n observerId: observerId,\n observer: !observerId ? observerInstance : undefined\n };\n INSTANCE_MAP.set(element, instance);\n observerInstance.observe(element);\n return instance;\n}\n/**\n * Stop observing an element. If an element is removed from the DOM or otherwise destroyed,\n * make sure to call this method.\n * @param element {HTMLElement}\n */\n\nfunction unobserve(element) {\n if (!element) return;\n var instance = INSTANCE_MAP.get(element);\n\n if (instance) {\n var observerId = instance.observerId,\n observer = instance.observer;\n var observerInstance = observerId ? OBSERVER_MAP.get(observerId) : observer;\n\n if (observerInstance) {\n observerInstance.unobserve(element);\n } // Check if we are still observing any elements with the same threshold.\n\n\n var itemsLeft = false;\n\n if (observerId) {\n INSTANCE_MAP.forEach(function (item, key) {\n if (item && item.observerId === observerId && key !== element) {\n itemsLeft = true;\n }\n });\n }\n\n if (observerInstance && !itemsLeft) {\n // No more elements to observe for threshold, disconnect observer\n observerInstance.disconnect();\n OBSERVER_MAP.delete(observerId);\n } // Remove reference to element\n\n\n INSTANCE_MAP.delete(element);\n }\n}\n\nfunction onChange(changes) {\n changes.forEach(function (intersection) {\n var isIntersecting = intersection.isIntersecting,\n intersectionRatio = intersection.intersectionRatio,\n target = intersection.target;\n var instance = INSTANCE_MAP.get(target); // Firefox can report a negative intersectionRatio when scrolling.\n\n if (instance && intersectionRatio >= 0) {\n var options = instance.options;\n var _inView = false;\n\n if (Array.isArray(options.threshold)) {\n // If threshold is an array, check if any of them intersects. This just triggers the onChange event multiple times.\n _inView = options.threshold.some(function (threshold) {\n return instance.visible ? intersectionRatio > threshold : intersectionRatio >= threshold;\n });\n } else if (options.threshold !== undefined) {\n // Trigger on 0 ratio only when not visible. This is fallback for browsers without isIntersecting support\n _inView = instance.visible ? intersectionRatio > options.threshold : intersectionRatio >= options.threshold;\n }\n\n if (isIntersecting !== undefined) {\n // If isIntersecting is defined, ensure that the element is actually intersecting.\n // Otherwise it reports a threshold of 0\n _inView = _inView && isIntersecting;\n }\n\n instance.visible = _inView;\n instance.callback(_inView, intersectionRatio);\n }\n });\n}\n\nfunction useInView(ref, options) {\n if (options === void 0) {\n options = {};\n }\n\n // $FlowFixMe - useState is not exposed in React Flow lib yet\n var _React$useState = useState(false),\n isInView = _React$useState[0],\n setInView = _React$useState[1]; // $FlowFixMe - useEffect is not exposed in React Flow lib yet\n\n\n useEffect(function () {\n if (ref.current) {\n observe(ref.current, function (inView) {\n setInView(inView);\n\n if (inView && options.triggerOnce) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve(ref.current);\n }\n }, {\n threshold: options.threshold,\n root: options.root,\n rootMargin: options.rootMargin\n }, options.rootId);\n }\n\n return function () {\n unobserve(ref.current);\n };\n }, [options.threshold, options.root, options.rootMargin, options.rootId]);\n return isInView;\n}\n\n/**\n * Monitors scroll, and triggers the children function with updated props\n *\n \n {({inView, ref}) => (\n

{`${inView}`}

\n )}\n
\n */\nvar InView =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InView, _React$Component);\n\n function InView() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n inView: false,\n intersectionRatio: 0\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleNode\", function (node) {\n if (_this.node) unobserve(_this.node);\n _this.node = node;\n\n _this.observeNode();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"handleChange\", function (inView, intersectionRatio) {\n _this.setState({\n inView: inView,\n intersectionRatio: intersectionRatio\n });\n\n if (_this.props.onChange) {\n _this.props.onChange(inView, intersectionRatio);\n }\n });\n\n return _this;\n }\n\n var _proto = InView.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.hasOwnProperty('render')) {\n console.warn(\"react-intersection-observer: \\\"render\\\" is deprecated, and should be replaced with \\\"children\\\"\", this.node);\n }\n\n invariant(this.node, \"react-intersection-observer: No DOM node found. Make sure you forward \\\"ref\\\" to the root DOM element you want to observe.\");\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If a IntersectionObserver option changed, reinit the observer\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold) {\n unobserve(this.node);\n this.observeNode();\n }\n\n if (prevState.inView !== this.state.inView) {\n if (this.state.inView && this.props.triggerOnce) {\n unobserve(this.node);\n this.node = null;\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.node) {\n unobserve(this.node);\n this.node = null;\n }\n };\n\n _proto.observeNode = function observeNode() {\n if (!this.node) return;\n var _this$props = this.props,\n threshold = _this$props.threshold,\n root = _this$props.root,\n rootMargin = _this$props.rootMargin,\n rootId = _this$props.rootId;\n observe(this.node, this.handleChange, {\n threshold: threshold,\n root: root,\n rootMargin: rootMargin\n }, rootId);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n render = _this$props2.render,\n tag = _this$props2.tag,\n triggerOnce = _this$props2.triggerOnce,\n threshold = _this$props2.threshold,\n root = _this$props2.root,\n rootId = _this$props2.rootId,\n rootMargin = _this$props2.rootMargin,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"render\", \"tag\", \"triggerOnce\", \"threshold\", \"root\", \"rootId\", \"rootMargin\"]);\n\n var _this$state = this.state,\n inView = _this$state.inView,\n intersectionRatio = _this$state.intersectionRatio;\n var renderMethod = children || render;\n\n if (typeof renderMethod === 'function') {\n return renderMethod({\n inView: inView,\n intersectionRatio: intersectionRatio,\n ref: this.handleNode\n });\n }\n\n return createElement(tag || 'div', _extends({\n ref: this.handleNode\n }, props), children);\n };\n\n return InView;\n}(Component);\n\n_defineProperty(InView, \"defaultProps\", {\n threshold: 0,\n triggerOnce: false\n});\n\nexport default InView;\nexport { InView, useInView };\n","import React from \"react\";\nimport Observer from \"react-intersection-observer\";\nimport { unionize, ofType, UnionOf } from \"unionize\";\n\n/**\n * Valid props for LazyImage components\n */\nexport type CommonLazyImageProps = ImageProps & {\n // NOTE: if you add props here, remember to destructure them out of being\n // passed to the children, in the render() callback.\n\n /** Whether to skip checking for viewport and always show the 'actual' component\n * @see https://github.com/fpapado/react-lazy-images/#eager-loading--server-side-rendering-ssr\n */\n loadEagerly?: boolean;\n\n /** Subset of props for the IntersectionObserver\n * @see https://github.com/thebuilder/react-intersection-observer#props\n */\n observerProps?: ObserverProps;\n\n /** Use the Image Decode API;\n * The call to a new HTML element’s decode() function returns a promise, which,\n * when fulfilled, ensures that the image can be appended to the DOM without causing\n * a decoding delay on the next frame.\n * @see: https://www.chromestatus.com/feature/5637156160667648\n */\n experimentalDecode?: boolean;\n\n /** Whether to log out internal state transitions for the component */\n debugActions?: boolean;\n\n /** Delay a certain duration before starting to load, in ms.\n * This can help avoid loading images while the user scrolls quickly past them.\n * TODO: naming things.\n */\n debounceDurationMs?: number;\n};\n\n/** Valid props for LazyImageFull */\nexport interface LazyImageFullProps extends CommonLazyImageProps {\n /** Children should be either a function or a node */\n children: (args: RenderCallbackArgs) => React.ReactNode;\n}\n\n/** Values that the render props take */\nexport interface RenderCallbackArgs {\n imageState: ImageState;\n imageProps: ImageProps;\n /** When not loading eagerly, a ref to bind to the DOM element. This is needed for the intersection calculation to work. */\n ref?: React.RefObject;\n}\n\nexport interface ImageProps {\n /** The source of the image to load */\n src: string;\n\n /** The source set of the image to load */\n srcSet?: string;\n\n /** The alt text description of the image you are loading */\n alt?: string;\n\n /** Sizes descriptor */\n sizes?: string;\n}\n\n/** Subset of react-intersection-observer's props */\nexport interface ObserverProps {\n /**\n * Margin around the root that expands the area for intersection.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/rootMargin\n * @default \"50px 0px\"\n * @example Declaration same as CSS margin:\n * `\"10px 20px 30px 40px\"` (top, right, bottom, left).\n */\n rootMargin?: string;\n\n /** Number between 0 and 1 indicating the the percentage that should be\n * visible before triggering.\n * @default `0.01`\n */\n threshold?: number;\n}\n\n/** States that the image loading can be in.\n * Used together with LazyImageFull render props.\n * External representation of the internal state.\n * */\nexport enum ImageState {\n NotAsked = \"NotAsked\",\n Loading = \"Loading\",\n LoadSuccess = \"LoadSuccess\",\n LoadError = \"LoadError\"\n}\n\n/** The component's state */\nconst LazyImageFullState = unionize({\n NotAsked: {},\n Buffering: {},\n // Could try to make it Promise,\n // but we don't use the element anyway, and we cache promises\n Loading: {},\n LoadSuccess: {},\n LoadError: ofType<{ msg: string }>()\n});\n\ntype LazyImageFullState = UnionOf;\n\n/** Actions that change the component's state.\n * These are not unlike Actions in Redux or, the ones I'm inspired by,\n * Msg in Elm.\n */\nconst Action = unionize({\n ViewChanged: ofType<{ inView: boolean }>(),\n BufferingEnded: {},\n // MAYBE: Load: {},\n LoadSuccess: {},\n LoadError: ofType<{ msg: string }>()\n});\n\ntype Action = UnionOf;\n\n/** Commands (Cmd) describe side-effects as functions that take the instance */\n// FUTURE: These should be tied to giving back a Msg / asynchronoulsy giving a Msg with conditions\ntype Cmd = (instance: LazyImageFull) => void;\n\n/** The output from a reducer is the next state and maybe a command */\ntype ReducerResult = {\n nextState: LazyImageFullState;\n cmd?: Cmd;\n};\n\n///// Commands, things that perform side-effects /////\n/** Get a command that sets a buffering Promise */\nconst getBufferingCmd = (durationMs: number): Cmd => instance => {\n // Make cancelable buffering Promise\n const bufferingPromise = makeCancelable(delayedPromise(durationMs));\n\n // Kick off promise chain\n bufferingPromise.promise\n .then(() => instance.update(Action.BufferingEnded()))\n .catch(\n _reason => {}\n //console.log({ isCanceled: _reason.isCanceled })\n );\n\n // Side-effect; set the promise in the cache\n instance.promiseCache.buffering = bufferingPromise;\n};\n\n/** Get a command that sets an image loading Promise */\nconst getLoadingCmd = (\n imageProps: ImageProps,\n experimentalDecode?: boolean\n): Cmd => instance => {\n // Make cancelable loading Promise\n const loadingPromise = makeCancelable(\n loadImage(imageProps, experimentalDecode)\n );\n\n // Kick off request for Image and attach listeners for response\n loadingPromise.promise\n .then(_res => instance.update(Action.LoadSuccess({})))\n .catch(e => {\n // If the Loading Promise was canceled, it means we have stopped\n // loading due to unmount, rather than an error.\n if (!e.isCanceled) {\n // TODO: think more about the error here\n instance.update(Action.LoadError({ msg: \"Failed to load\" }));\n }\n });\n\n // Side-effect; set the promise in the cache\n instance.promiseCache.loading = loadingPromise;\n};\n\n/** Command that cancels the buffering Promise */\nconst cancelBufferingCmd: Cmd = instance => {\n // Side-effect; cancel the promise in the cache\n // We know this exists if we are in a Buffering state\n instance.promiseCache.buffering.cancel();\n};\n\n/**\n * Component that preloads the image once it is in the viewport,\n * and then swaps it in. Takes a render prop that allows to specify\n * what is rendered based on the loading state.\n */\nexport class LazyImageFull extends React.Component<\n LazyImageFullProps,\n LazyImageFullState\n> {\n static displayName = \"LazyImageFull\";\n\n /** A central place to store promises.\n * A bit silly, but passing promsises directly in the state\n * was giving me weird timing issues. This way we can keep\n * the promises in check, and pick them up from the respective methods.\n * FUTURE: Could pass the relevant key in Buffering and Loading, so\n * that at least we know where they are from a single source.\n */\n promiseCache: {\n [key: string]: CancelablePromise;\n } = {};\n\n initialState = LazyImageFullState.NotAsked();\n\n /** Emit the next state based on actions.\n * This is the core of the component!\n */\n static reducer(\n action: Action,\n prevState: LazyImageFullState,\n props: LazyImageFullProps\n ): ReducerResult {\n return Action.match(action, {\n ViewChanged: ({ inView }) => {\n if (inView === true) {\n // If src is not specified, then there is nothing to preload; skip to Loaded state\n if (!props.src) {\n return { nextState: LazyImageFullState.LoadSuccess() }; // Error wtf\n } else {\n // If in view, only load something if NotAsked, otherwise leave untouched\n return LazyImageFullState.match(prevState, {\n NotAsked: () => {\n // If debounce is specified, then start buffering\n if (!!props.debounceDurationMs) {\n return {\n nextState: LazyImageFullState.Buffering(),\n cmd: getBufferingCmd(props.debounceDurationMs)\n };\n } else {\n // If no debounce is specified, then start loading immediately\n return {\n nextState: LazyImageFullState.Loading(),\n cmd: getLoadingCmd(props, props.experimentalDecode)\n };\n }\n },\n // Do nothing in other states\n default: () => ({ nextState: prevState })\n });\n }\n } else {\n // If out of view, cancel if Buffering, otherwise leave untouched\n return LazyImageFullState.match(prevState, {\n Buffering: () => ({\n nextState: LazyImageFullState.NotAsked(),\n cmd: cancelBufferingCmd\n }),\n // Do nothing in other states\n default: () => ({ nextState: prevState })\n });\n }\n },\n // Buffering has ended/succeeded, kick off request for image\n BufferingEnded: () => ({\n nextState: LazyImageFullState.Loading(),\n cmd: getLoadingCmd(props, props.experimentalDecode)\n }),\n // Loading the image succeeded, simple\n LoadSuccess: () => ({ nextState: LazyImageFullState.LoadSuccess() }),\n // Loading the image failed, simple\n LoadError: e => ({ nextState: LazyImageFullState.LoadError(e) })\n });\n }\n\n constructor(props: LazyImageFullProps) {\n super(props);\n this.state = this.initialState;\n\n // Bind methods\n this.update = this.update.bind(this);\n }\n\n update(action: Action) {\n // Get the next state and any effects\n const { nextState, cmd } = LazyImageFull.reducer(\n action,\n this.state,\n this.props\n );\n\n // Debugging\n if (this.props.debugActions) {\n if (process.env.NODE_ENV === \"production\") {\n console.warn(\n 'You are running LazyImage with debugActions=\"true\" in production. This might have performance implications.'\n );\n }\n console.log({ action, prevState: this.state, nextState });\n }\n\n // Actually set the state, and kick off any effects after that\n this.setState(nextState, () => cmd && cmd(this));\n }\n\n componentWillUnmount() {\n // Clear the Promise Cache\n if (this.promiseCache.loading) {\n // NOTE: This does not cancel the request, only the callback.\n // We weould need fetch() and an AbortHandler for that.\n this.promiseCache.loading.cancel();\n }\n if (this.promiseCache.buffering) {\n this.promiseCache.buffering.cancel();\n }\n this.promiseCache = {};\n }\n\n // Render function\n render() {\n // This destructuring is silly\n const {\n children,\n loadEagerly,\n observerProps,\n experimentalDecode,\n debounceDurationMs,\n debugActions,\n ...imageProps\n } = this.props;\n\n if (loadEagerly) {\n // If eager, skip the observer and view changing stuff; resolve the imageState as loaded.\n return children({\n // We know that the state tags and the enum match up\n imageState: LazyImageFullState.LoadSuccess().tag as ImageState,\n imageProps\n });\n } else {\n return (\n this.update(Action.ViewChanged({ inView }))}\n >\n {({ ref }) =>\n children({\n // We know that the state tags and the enum match up, apart\n // from Buffering not being exposed\n imageState:\n this.state.tag === \"Buffering\"\n ? ImageState.Loading\n : (this.state.tag as ImageState),\n imageProps,\n ref\n })\n }\n
\n );\n }\n }\n}\n\n///// Utilities /////\n\n/** Promise constructor for loading an image */\nconst loadImage = (\n { src, srcSet, alt, sizes }: ImageProps,\n experimentalDecode = false\n) =>\n new Promise((resolve, reject) => {\n const image = new Image();\n if (srcSet) {\n image.srcset = srcSet;\n }\n if (alt) {\n image.alt = alt;\n }\n if (sizes) {\n image.sizes = sizes;\n }\n image.src = src;\n\n /** @see: https://www.chromestatus.com/feature/5637156160667648 */\n if (experimentalDecode && \"decode\" in image) {\n return (\n image\n // NOTE: .decode() is not in the TS defs yet\n // TODO: consider writing the .decode() definition and sending a PR\n //@ts-ignore\n .decode()\n .then((image: HTMLImageElement) => resolve(image))\n .catch((err: any) => reject(err))\n );\n }\n\n image.onload = resolve;\n image.onerror = reject;\n });\n\n/** Promise that resolves after a specified number of ms */\nconst delayedPromise = (ms: number) =>\n new Promise(resolve => setTimeout(resolve, ms));\n\ninterface CancelablePromise {\n promise: Promise<{}>;\n cancel: () => void;\n}\n\n/** Make a Promise \"cancelable\".\n *\n * Rejects with {isCanceled: true} if canceled.\n *\n * The way this works is by wrapping it with internal hasCanceled_ state\n * and checking it before resolving.\n */\nconst makeCancelable = (promise: Promise): CancelablePromise => {\n let hasCanceled_ = false;\n\n const wrappedPromise = new Promise((resolve, reject) => {\n promise.then(\n (val: any) => (hasCanceled_ ? reject({ isCanceled: true }) : resolve(val))\n );\n promise.catch(\n (error: any) =>\n hasCanceled_ ? reject({ isCanceled: true }) : reject(error)\n );\n });\n\n return {\n promise: wrappedPromise,\n cancel() {\n hasCanceled_ = true;\n }\n };\n};\n","import React from \"react\";\nimport {\n LazyImageFull,\n CommonLazyImageProps,\n ImageState,\n ImageProps\n} from \"./LazyImageFull\";\n\n/**\n * Valid props for LazyImage\n */\nexport interface LazyImageRenderPropArgs {\n imageProps: ImageProps;\n}\n\nexport interface RefArg {\n /** When not loading eagerly, a ref to bind to the DOM element. This is needed for the intersection calculation to work. */\n ref?: React.RefObject;\n}\n\nexport interface LazyImageProps extends CommonLazyImageProps {\n /** Component to display once image has loaded */\n actual: (args: LazyImageRenderPropArgs) => React.ReactElement<{}>;\n\n /** Component to display while image has not been requested\n * @default: undefined\n */\n placeholder: (\n args: LazyImageRenderPropArgs & RefArg\n ) => React.ReactElement<{}>;\n\n /** Component to display while the image is loading\n * @default placeholder, if defined\n */\n loading?: () => React.ReactElement<{}>;\n\n /** Component to display if the image fails to load\n * @default actual (broken image)\n */\n error?: () => React.ReactElement<{}>;\n}\n\n/**\n * Component that preloads the image once it is in the viewport,\n * and then swaps it in. Has predefined rendering logic, but the\n * specifics are up to the caller.\n */\nexport const LazyImage: React.StatelessComponent = ({\n actual,\n placeholder,\n loading,\n error,\n ...rest\n}) => (\n \n {({ imageState, imageProps, ref }) => {\n // Call the appropriate render callback based on the state\n // and the props specified, passing on relevant props.\n switch (imageState) {\n case ImageState.NotAsked:\n return !!placeholder && placeholder({ imageProps, ref });\n\n case ImageState.Loading:\n // Only render loading if specified, otherwise placeholder\n return !!loading\n ? loading()\n : !!placeholder && placeholder({ imageProps, ref });\n\n case ImageState.LoadSuccess:\n return actual({ imageProps });\n\n case ImageState.LoadError:\n // Only render error if specified, otherwise actual (broken image)\n return !!error ? error() : actual({ imageProps });\n }\n }}\n \n);\n\nLazyImage.displayName = \"LazyImage\";\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n InstantiationMode,\n InstanceFactory,\n ComponentType,\n Dictionary,\n Name,\n onInstanceCreatedCallback\n} from './types';\n\n/**\n * Component for service name T, e.g. `auth`, `auth-internal`\n */\nexport class Component {\n multipleInstances = false;\n /**\n * Properties to be added to the service namespace\n */\n serviceProps: Dictionary = {};\n\n instantiationMode = InstantiationMode.LAZY;\n\n onInstanceCreated: onInstanceCreatedCallback | null = null;\n\n /**\n *\n * @param name The public service name, e.g. app, auth, firestore, database\n * @param instanceFactory Service factory responsible for creating the public interface\n * @param type whether the service provided by the component is public or private\n */\n constructor(\n readonly name: T,\n readonly instanceFactory: InstanceFactory,\n readonly type: ComponentType\n ) {}\n\n setInstantiationMode(mode: InstantiationMode): this {\n this.instantiationMode = mode;\n return this;\n }\n\n setMultipleInstances(multipleInstances: boolean): this {\n this.multipleInstances = multipleInstances;\n return this;\n }\n\n setServiceProps(props: Dictionary): this {\n this.serviceProps = props;\n return this;\n }\n\n setInstanceCreatedCallback(callback: onInstanceCreatedCallback): this {\n this.onInstanceCreated = callback;\n return this;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Deferred } from '@firebase/util';\nimport { ComponentContainer } from './component_container';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport {\n InitializeOptions,\n InstantiationMode,\n Name,\n NameServiceMapping,\n OnInitCallBack\n} from './types';\nimport { Component } from './component';\n\n/**\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\n * NameServiceMapping[T] is an alias for the type of the instance\n */\nexport class Provider {\n private component: Component | null = null;\n private readonly instances: Map = new Map();\n private readonly instancesDeferred: Map<\n string,\n Deferred\n > = new Map();\n private readonly instancesOptions: Map> =\n new Map();\n private onInitCallbacks: Map>> = new Map();\n\n constructor(\n private readonly name: T,\n private readonly container: ComponentContainer\n ) {}\n\n /**\n * @param identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n */\n get(identifier?: string): Promise {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n const deferred = new Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred);\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n // initialize the service if it can be auto-initialized\n try {\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {\n // when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier)!.promise;\n }\n\n /**\n *\n * @param options.identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n * @param options.optional If optional is false or not provided, the method throws an error when\n * the service is not immediately available.\n * If optional is true, the method returns null if the service is not immediately available.\n */\n getImmediate(options: {\n identifier?: string;\n optional: true;\n }): NameServiceMapping[T] | null;\n getImmediate(options?: {\n identifier?: string;\n optional?: false;\n }): NameServiceMapping[T];\n getImmediate(options?: {\n identifier?: string;\n optional?: boolean;\n }): NameServiceMapping[T] | null {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n options?.identifier\n );\n const optional = options?.optional ?? false;\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n try {\n return this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n } else {\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\n if (optional) {\n return null;\n } else {\n throw Error(`Service ${this.name} is not available`);\n }\n }\n }\n\n getComponent(): Component | null {\n return this.component;\n }\n\n setComponent(component: Component): void {\n if (component.name !== this.name) {\n throw Error(\n `Mismatching Component ${component.name} for Provider ${this.name}.`\n );\n }\n\n if (this.component) {\n throw Error(`Component for ${this.name} has already been provided`);\n }\n\n this.component = component;\n\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n if (!this.shouldAutoInitialize()) {\n return;\n }\n\n // if the service is eager, initialize the default instance\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\n } catch (e) {\n // when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n })!;\n instanceDeferred.resolve(instance);\n } catch (e) {\n // when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n }\n\n clearInstance(identifier: string = DEFAULT_ENTRY_NAME): void {\n this.instancesDeferred.delete(identifier);\n this.instancesOptions.delete(identifier);\n this.instances.delete(identifier);\n }\n\n // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n async delete(): Promise {\n const services = Array.from(this.instances.values());\n\n await Promise.all([\n ...services\n .filter(service => 'INTERNAL' in service) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any).INTERNAL!.delete()),\n ...services\n .filter(service => '_delete' in service) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any)._delete())\n ]);\n }\n\n isComponentSet(): boolean {\n return this.component != null;\n }\n\n isInitialized(identifier: string = DEFAULT_ENTRY_NAME): boolean {\n return this.instances.has(identifier);\n }\n\n getOptions(identifier: string = DEFAULT_ENTRY_NAME): Record {\n return this.instancesOptions.get(identifier) || {};\n }\n\n initialize(opts: InitializeOptions = {}): NameServiceMapping[T] {\n const { options = {} } = opts;\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n opts.instanceIdentifier\n );\n if (this.isInitialized(normalizedIdentifier)) {\n throw Error(\n `${this.name}(${normalizedIdentifier}) has already been initialized`\n );\n }\n\n if (!this.isComponentSet()) {\n throw Error(`Component ${this.name} has not been registered yet`);\n }\n\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier,\n options\n })!;\n\n // resolve any pending promise waiting for the service instance\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedDeferredIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\n instanceDeferred.resolve(instance);\n }\n }\n\n return instance;\n }\n\n /**\n *\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n *\n * @param identifier An optional instance identifier\n * @returns a function to unregister the callback\n */\n onInit(callback: OnInitCallBack, identifier?: string): () => void {\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n const existingCallbacks =\n this.onInitCallbacks.get(normalizedIdentifier) ??\n new Set>();\n existingCallbacks.add(callback);\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n\n const existingInstance = this.instances.get(normalizedIdentifier);\n if (existingInstance) {\n callback(existingInstance, normalizedIdentifier);\n }\n\n return () => {\n existingCallbacks.delete(callback);\n };\n }\n\n /**\n * Invoke onInit callbacks synchronously\n * @param instance the service instance`\n */\n private invokeOnInitCallbacks(\n instance: NameServiceMapping[T],\n identifier: string\n ): void {\n const callbacks = this.onInitCallbacks.get(identifier);\n if (!callbacks) {\n return;\n }\n for (const callback of callbacks) {\n try {\n callback(instance, identifier);\n } catch {\n // ignore errors in the onInit callback\n }\n }\n }\n\n private getOrInitializeService({\n instanceIdentifier,\n options = {}\n }: {\n instanceIdentifier: string;\n options?: Record;\n }): NameServiceMapping[T] | null {\n let instance = this.instances.get(instanceIdentifier);\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, {\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n options\n });\n this.instances.set(instanceIdentifier, instance);\n this.instancesOptions.set(instanceIdentifier, options);\n\n /**\n * Invoke onInit listeners.\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\n * while onInit listeners are registered by consumers of the provider.\n */\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\n\n /**\n * Order is important\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\n * makes `isInitialized()` return true.\n */\n if (this.component.onInstanceCreated) {\n try {\n this.component.onInstanceCreated(\n this.container,\n instanceIdentifier,\n instance\n );\n } catch {\n // ignore errors in the onInstanceCreatedCallback\n }\n }\n }\n\n return instance || null;\n }\n\n private normalizeInstanceIdentifier(\n identifier: string = DEFAULT_ENTRY_NAME\n ): string {\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n }\n\n private shouldAutoInitialize(): boolean {\n return (\n !!this.component &&\n this.component.instantiationMode !== InstantiationMode.EXPLICIT\n );\n }\n}\n\n// undefined should be passed to the service factory for the default instance\nfunction normalizeIdentifierForFactory(identifier: string): string | undefined {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component: Component): boolean {\n return component.instantiationMode === InstantiationMode.EAGER;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Provider } from './provider';\nimport { Component } from './component';\nimport { Name } from './types';\n\n/**\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\n */\nexport class ComponentContainer {\n private readonly providers = new Map>();\n\n constructor(private readonly name: string) {}\n\n /**\n *\n * @param component Component being added\n * @param overwrite When a component with the same name has already been registered,\n * if overwrite is true: overwrite the existing component with the new component and create a new\n * provider with the new component. It can be useful in tests where you want to use different mocks\n * for different tests.\n * if overwrite is false: throw an exception\n */\n addComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n throw new Error(\n `Component ${component.name} has already been registered with ${this.name}`\n );\n }\n\n provider.setComponent(component);\n }\n\n addOrOverwriteComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n }\n\n /**\n * getProvider provides a type safe interface where it can only be called with a field name\n * present in NameServiceMapping interface.\n *\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\n * themselves.\n */\n getProvider(name: T): Provider {\n if (this.providers.has(name)) {\n return this.providers.get(name) as unknown as Provider;\n }\n\n // create a Provider for a service that hasn't registered with Firebase\n const provider = new Provider(name, this);\n this.providers.set(name, provider as unknown as Provider);\n\n return provider as Provider;\n }\n\n getProviders(): Array> {\n return Array.from(this.providers.values());\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar baseX$1 = require('../../vendor/base-x.js');\nvar bytes = require('../bytes.js');\n\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n switch (text[0]) {\n case this.prefix: {\n return this.baseDecode(text.slice(1));\n }\n default: {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n }\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nconst or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nclass Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nconst from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nconst baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = baseX$1(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => bytes.coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nconst rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};\n\nexports.Codec = Codec;\nexports.baseX = baseX;\nexports.from = from;\nexports.or = or;\nexports.rfc4648 = rfc4648;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar common = require('./common.js');\n\nconst uintBoundaries = [\n 24,\n 256,\n 65536,\n 4294967296,\n BigInt('18446744073709551616')\n];\nfunction readUint8(data, offset, options) {\n common.assertEnoughData(data, offset, 1);\n const value = data[offset];\n if (options.strict === true && value < uintBoundaries[0]) {\n throw new Error(`${ common.decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nfunction readUint16(data, offset, options) {\n common.assertEnoughData(data, offset, 2);\n const value = data[offset] << 8 | data[offset + 1];\n if (options.strict === true && value < uintBoundaries[1]) {\n throw new Error(`${ common.decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nfunction readUint32(data, offset, options) {\n common.assertEnoughData(data, offset, 4);\n const value = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n if (options.strict === true && value < uintBoundaries[2]) {\n throw new Error(`${ common.decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n return value;\n}\nfunction readUint64(data, offset, options) {\n common.assertEnoughData(data, offset, 8);\n const hi = data[offset] * 16777216 + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3];\n const lo = data[offset + 4] * 16777216 + (data[offset + 5] << 16) + (data[offset + 6] << 8) + data[offset + 7];\n const value = (BigInt(hi) << BigInt(32)) + BigInt(lo);\n if (options.strict === true && value < uintBoundaries[3]) {\n throw new Error(`${ common.decodeErrPrefix } integer encoded in more bytes than necessary (strict decode)`);\n }\n if (value <= Number.MAX_SAFE_INTEGER) {\n return Number(value);\n }\n if (options.allowBigInt === true) {\n return value;\n }\n throw new Error(`${ common.decodeErrPrefix } integers outside of the safe integer range are not supported`);\n}\nfunction decodeUint8(data, pos, _minor, options) {\n return new token.Token(token.Type.uint, readUint8(data, pos + 1, options), 2);\n}\nfunction decodeUint16(data, pos, _minor, options) {\n return new token.Token(token.Type.uint, readUint16(data, pos + 1, options), 3);\n}\nfunction decodeUint32(data, pos, _minor, options) {\n return new token.Token(token.Type.uint, readUint32(data, pos + 1, options), 5);\n}\nfunction decodeUint64(data, pos, _minor, options) {\n return new token.Token(token.Type.uint, readUint64(data, pos + 1, options), 9);\n}\nfunction encodeUint(buf, token) {\n return encodeUintValue(buf, 0, token.value);\n}\nfunction encodeUintValue(buf, major, uint) {\n if (uint < uintBoundaries[0]) {\n const nuint = Number(uint);\n buf.push([major | nuint]);\n } else if (uint < uintBoundaries[1]) {\n const nuint = Number(uint);\n buf.push([\n major | 24,\n nuint\n ]);\n } else if (uint < uintBoundaries[2]) {\n const nuint = Number(uint);\n buf.push([\n major | 25,\n nuint >>> 8,\n nuint & 255\n ]);\n } else if (uint < uintBoundaries[3]) {\n const nuint = Number(uint);\n buf.push([\n major | 26,\n nuint >>> 24 & 255,\n nuint >>> 16 & 255,\n nuint >>> 8 & 255,\n nuint & 255\n ]);\n } else {\n const buint = BigInt(uint);\n if (buint < uintBoundaries[4]) {\n const set = [\n major | 27,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n let lo = Number(buint & BigInt(4294967295));\n let hi = Number(buint >> BigInt(32) & BigInt(4294967295));\n set[8] = lo & 255;\n lo = lo >> 8;\n set[7] = lo & 255;\n lo = lo >> 8;\n set[6] = lo & 255;\n lo = lo >> 8;\n set[5] = lo & 255;\n set[4] = hi & 255;\n hi = hi >> 8;\n set[3] = hi & 255;\n hi = hi >> 8;\n set[2] = hi & 255;\n hi = hi >> 8;\n set[1] = hi & 255;\n buf.push(set);\n } else {\n throw new Error(`${ common.decodeErrPrefix } encountered BigInt larger than allowable range`);\n }\n }\n}\nencodeUint.encodedSize = function encodedSize(token) {\n return encodeUintValue.encodedSize(token.value);\n};\nencodeUintValue.encodedSize = function encodedSize(uint) {\n if (uint < uintBoundaries[0]) {\n return 1;\n }\n if (uint < uintBoundaries[1]) {\n return 2;\n }\n if (uint < uintBoundaries[2]) {\n return 3;\n }\n if (uint < uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeUint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : 0;\n};\n\nexports.decodeUint16 = decodeUint16;\nexports.decodeUint32 = decodeUint32;\nexports.decodeUint64 = decodeUint64;\nexports.decodeUint8 = decodeUint8;\nexports.encodeUint = encodeUint;\nexports.encodeUintValue = encodeUintValue;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.readUint64 = readUint64;\nexports.readUint8 = readUint8;\nexports.uintBoundaries = uintBoundaries;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.b64UrlDecode = exports.b64UrlEncode = exports.bufferTob64Url = exports.bufferTob64 = exports.b64UrlToBuffer = exports.stringToB64Url = exports.stringToBuffer = exports.bufferToString = exports.b64UrlToString = exports.concatBuffers = void 0;\r\nconst B64js = require(\"base64-js\");\r\nfunction concatBuffers(buffers) {\r\n let total_length = 0;\r\n for (let i = 0; i < buffers.length; i++) {\r\n total_length += buffers[i].byteLength;\r\n }\r\n let temp = new Uint8Array(total_length);\r\n let offset = 0;\r\n temp.set(new Uint8Array(buffers[0]), offset);\r\n offset += buffers[0].byteLength;\r\n for (let i = 1; i < buffers.length; i++) {\r\n temp.set(new Uint8Array(buffers[i]), offset);\r\n offset += buffers[i].byteLength;\r\n }\r\n return temp;\r\n}\r\nexports.concatBuffers = concatBuffers;\r\nfunction b64UrlToString(b64UrlString) {\r\n let buffer = b64UrlToBuffer(b64UrlString);\r\n // TextEncoder will be available in browsers, but not in node\r\n if (typeof TextDecoder == \"undefined\") {\r\n const TextDecoder = require(\"util\").TextDecoder;\r\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(buffer);\r\n }\r\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(buffer);\r\n}\r\nexports.b64UrlToString = b64UrlToString;\r\nfunction bufferToString(buffer) {\r\n // TextEncoder will be available in browsers, but not in node\r\n if (typeof TextDecoder == \"undefined\") {\r\n const TextDecoder = require(\"util\").TextDecoder;\r\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(buffer);\r\n }\r\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(buffer);\r\n}\r\nexports.bufferToString = bufferToString;\r\nfunction stringToBuffer(string) {\r\n // TextEncoder will be available in browsers, but not in node\r\n if (typeof TextEncoder == \"undefined\") {\r\n const TextEncoder = require(\"util\").TextEncoder;\r\n return new TextEncoder().encode(string);\r\n }\r\n return new TextEncoder().encode(string);\r\n}\r\nexports.stringToBuffer = stringToBuffer;\r\nfunction stringToB64Url(string) {\r\n return bufferTob64Url(stringToBuffer(string));\r\n}\r\nexports.stringToB64Url = stringToB64Url;\r\nfunction b64UrlToBuffer(b64UrlString) {\r\n return new Uint8Array(B64js.toByteArray(b64UrlDecode(b64UrlString)));\r\n}\r\nexports.b64UrlToBuffer = b64UrlToBuffer;\r\nfunction bufferTob64(buffer) {\r\n return B64js.fromByteArray(new Uint8Array(buffer));\r\n}\r\nexports.bufferTob64 = bufferTob64;\r\nfunction bufferTob64Url(buffer) {\r\n return b64UrlEncode(bufferTob64(buffer));\r\n}\r\nexports.bufferTob64Url = bufferTob64Url;\r\nfunction b64UrlEncode(b64UrlString) {\r\n return b64UrlString\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\")\r\n .replace(/\\=/g, \"\");\r\n}\r\nexports.b64UrlEncode = b64UrlEncode;\r\nfunction b64UrlDecode(b64UrlString) {\r\n b64UrlString = b64UrlString.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\");\r\n let padding;\r\n b64UrlString.length % 4 == 0\r\n ? (padding = 0)\r\n : (padding = 4 - (b64UrlString.length % 4));\r\n return b64UrlString.concat(\"=\".repeat(padding));\r\n}\r\nexports.b64UrlDecode = b64UrlDecode;\r\n//# sourceMappingURL=utils.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import * as React from 'react';\n\nconst useLatest = current => {\n const storedValue = React.useRef(current);\n React.useEffect(() => {\n storedValue.current = current;\n });\n return storedValue;\n};\n\nexport default useLatest;","import * as React from 'react';\nimport useLatest from '@react-hook/latest';\nexport const useDebounceCallback = (callback, wait = 100, leading = false) => {\n const storedCallback = useLatest(callback);\n const timeout = React.useRef();\n const deps = [wait, leading, storedCallback]; // Cleans up pending timeouts when the deps change\n\n function _ref() {\n timeout.current && clearTimeout(timeout.current);\n timeout.current = void 0;\n }\n\n React.useEffect(() => _ref, deps);\n\n function _ref2() {\n timeout.current = void 0;\n }\n\n return React.useCallback(function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const {\n current\n } = timeout; // Calls on leading edge\n\n if (current === void 0 && leading) {\n timeout.current = setTimeout(_ref2, wait); // eslint-disable-next-line prefer-spread\n\n return storedCallback.current.apply(null, args);\n } // Clear the timeout every call and start waiting again\n\n\n current && clearTimeout(current); // Waits for `wait` before invoking the callback\n\n timeout.current = setTimeout(() => {\n timeout.current = void 0;\n storedCallback.current.apply(null, args);\n }, wait);\n }, deps);\n};\nexport const useDebounce = (initialState, wait, leading) => {\n const state = React.useState(initialState);\n return [state[0], useDebounceCallback(state[1], wait, leading)];\n};","import * as React from 'react';\n\nfunction useEvent(target, type, listener, cleanup) {\n const storedListener = React.useRef(listener);\n const storedCleanup = React.useRef(cleanup);\n React.useEffect(() => {\n storedListener.current = listener;\n storedCleanup.current = cleanup;\n });\n React.useEffect(() => {\n const targetEl = target && 'current' in target ? target.current : target;\n if (!targetEl) return;\n let didUnsubscribe = 0;\n\n function listener(...args) {\n if (didUnsubscribe) return;\n storedListener.current.apply(this, args);\n }\n\n targetEl.addEventListener(type, listener);\n const cleanup = storedCleanup.current;\n return () => {\n didUnsubscribe = 1;\n targetEl.removeEventListener(type, listener);\n cleanup && cleanup();\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [target, type]);\n}\n\nexport default useEvent;","import { useDebounce } from '@react-hook/debounce';\nimport useEvent from '@react-hook/event';\nconst emptyObj = {};\nconst win = typeof window === 'undefined' ? null : window;\n\nconst getSize = () => [document.documentElement.clientWidth, document.documentElement.clientHeight];\n\nexport const useWindowSize = (options = emptyObj) => {\n const {\n wait,\n leading,\n initialWidth = 0,\n initialHeight = 0\n } = options;\n const [size, setDebouncedSize] = useDebounce(\n /* istanbul ignore next */\n typeof document === 'undefined' ? [initialWidth, initialHeight] : getSize, wait, leading);\n\n const setSize = () => setDebouncedSize(getSize);\n\n useEvent(win, 'resize', setSize);\n useEvent(win, 'orientationchange', setSize);\n return size;\n};\nexport const useWindowHeight = options => useWindowSize(options)[1];\nexport const useWindowWidth = options => useWindowSize(options)[0];","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\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\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\n return target;\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Player\", {\n enumerable: true,\n get: function get() {\n return _Player[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Video\", {\n enumerable: true,\n get: function get() {\n return _Video[\"default\"];\n }\n});\nObject.defineProperty(exports, \"BigPlayButton\", {\n enumerable: true,\n get: function get() {\n return _BigPlayButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"LoadingSpinner\", {\n enumerable: true,\n get: function get() {\n return _LoadingSpinner[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PosterImage\", {\n enumerable: true,\n get: function get() {\n return _PosterImage[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Slider\", {\n enumerable: true,\n get: function get() {\n return _Slider[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Bezel\", {\n enumerable: true,\n get: function get() {\n return _Bezel[\"default\"];\n }\n});\nObject.defineProperty(exports, \"Shortcut\", {\n enumerable: true,\n get: function get() {\n return _Shortcut[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ControlBar\", {\n enumerable: true,\n get: function get() {\n return _ControlBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlayToggle\", {\n enumerable: true,\n get: function get() {\n return _PlayToggle[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ForwardControl\", {\n enumerable: true,\n get: function get() {\n return _ForwardControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ReplayControl\", {\n enumerable: true,\n get: function get() {\n return _ReplayControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"FullscreenToggle\", {\n enumerable: true,\n get: function get() {\n return _FullscreenToggle[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ProgressControl\", {\n enumerable: true,\n get: function get() {\n return _ProgressControl[\"default\"];\n }\n});\nObject.defineProperty(exports, \"SeekBar\", {\n enumerable: true,\n get: function get() {\n return _SeekBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlayProgressBar\", {\n enumerable: true,\n get: function get() {\n return _PlayProgressBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"LoadProgressBar\", {\n enumerable: true,\n get: function get() {\n return _LoadProgressBar[\"default\"];\n }\n});\nObject.defineProperty(exports, \"MouseTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _MouseTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"VolumeMenuButton\", {\n enumerable: true,\n get: function get() {\n return _VolumeMenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlaybackRateMenuButton\", {\n enumerable: true,\n get: function get() {\n return _PlaybackRateMenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"PlaybackRate\", {\n enumerable: true,\n get: function get() {\n return _PlaybackRate[\"default\"];\n }\n});\nObject.defineProperty(exports, \"ClosedCaptionButton\", {\n enumerable: true,\n get: function get() {\n return _ClosedCaptionButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"RemainingTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _RemainingTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"CurrentTimeDisplay\", {\n enumerable: true,\n get: function get() {\n return _CurrentTimeDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"DurationDisplay\", {\n enumerable: true,\n get: function get() {\n return _DurationDisplay[\"default\"];\n }\n});\nObject.defineProperty(exports, \"TimeDivider\", {\n enumerable: true,\n get: function get() {\n return _TimeDivider[\"default\"];\n }\n});\nObject.defineProperty(exports, \"MenuButton\", {\n enumerable: true,\n get: function get() {\n return _MenuButton[\"default\"];\n }\n});\nObject.defineProperty(exports, \"playerReducer\", {\n enumerable: true,\n get: function get() {\n return _reducers.playerReducer;\n }\n});\nObject.defineProperty(exports, \"operationReducer\", {\n enumerable: true,\n get: function get() {\n return _reducers.operationReducer;\n }\n});\nexports.videoActions = exports.playerActions = void 0;\n\nvar _Player = _interopRequireDefault(require(\"./components/Player\"));\n\nvar _Video = _interopRequireDefault(require(\"./components/Video\"));\n\nvar _BigPlayButton = _interopRequireDefault(require(\"./components/BigPlayButton\"));\n\nvar _LoadingSpinner = _interopRequireDefault(require(\"./components/LoadingSpinner\"));\n\nvar _PosterImage = _interopRequireDefault(require(\"./components/PosterImage\"));\n\nvar _Slider = _interopRequireDefault(require(\"./components/Slider\"));\n\nvar _Bezel = _interopRequireDefault(require(\"./components/Bezel\"));\n\nvar _Shortcut = _interopRequireDefault(require(\"./components/Shortcut\"));\n\nvar _ControlBar = _interopRequireDefault(require(\"./components/control-bar/ControlBar\"));\n\nvar _PlayToggle = _interopRequireDefault(require(\"./components/control-bar/PlayToggle\"));\n\nvar _ForwardControl = _interopRequireDefault(require(\"./components/control-bar/ForwardControl\"));\n\nvar _ReplayControl = _interopRequireDefault(require(\"./components/control-bar/ReplayControl\"));\n\nvar _FullscreenToggle = _interopRequireDefault(require(\"./components/control-bar/FullscreenToggle\"));\n\nvar _ProgressControl = _interopRequireDefault(require(\"./components/control-bar/ProgressControl\"));\n\nvar _SeekBar = _interopRequireDefault(require(\"./components/control-bar/SeekBar\"));\n\nvar _PlayProgressBar = _interopRequireDefault(require(\"./components/control-bar/PlayProgressBar\"));\n\nvar _LoadProgressBar = _interopRequireDefault(require(\"./components/control-bar/LoadProgressBar\"));\n\nvar _MouseTimeDisplay = _interopRequireDefault(require(\"./components/control-bar/MouseTimeDisplay\"));\n\nvar _VolumeMenuButton = _interopRequireDefault(require(\"./components/control-bar/VolumeMenuButton\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./components/control-bar/PlaybackRateMenuButton\"));\n\nvar _PlaybackRate = _interopRequireDefault(require(\"./components/control-bar/PlaybackRate\"));\n\nvar _ClosedCaptionButton = _interopRequireDefault(require(\"./components/control-bar/ClosedCaptionButton\"));\n\nvar _RemainingTimeDisplay = _interopRequireDefault(require(\"./components/time-controls/RemainingTimeDisplay\"));\n\nvar _CurrentTimeDisplay = _interopRequireDefault(require(\"./components/time-controls/CurrentTimeDisplay\"));\n\nvar _DurationDisplay = _interopRequireDefault(require(\"./components/time-controls/DurationDisplay\"));\n\nvar _TimeDivider = _interopRequireDefault(require(\"./components/time-controls/TimeDivider\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"./components/menu/MenuButton\"));\n\nvar playerActions = _interopRequireWildcard(require(\"./actions/player\"));\n\nexports.playerActions = playerActions;\n\nvar videoActions = _interopRequireWildcard(require(\"./actions/video\"));\n\nexports.videoActions = videoActions;\n\nvar _reducers = require(\"./reducers\");","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\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\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function Md3DRotation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.52 21.48A10.487 10.487 0 011.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08a1.07 1.07 0 01-.4-.24c-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56a1.67 1.67 0 00-.23-.51c-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31a2.098 2.098 0 00.89-.75c.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96a1.78 1.78 0 00-.51-.69c-.2-.19-.47-.33-.77-.43C9.1 8.05 8.76 8 8.39 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49a.87.87 0 01-.25.37c-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09H7.5v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z\"}}]})(props);\n};\nexport function MdAccessibilityNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"}}]})(props);\n};\nexport function MdAccessibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z\"}}]})(props);\n};\nexport function MdAccessibleForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"4.54\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17h-2c0 1.65-1.35 3-3 3s-3-1.35-3-3 1.35-3 3-3v-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5zm3-3.5h-1.86l1.67-3.67C17.42 8.5 16.44 7 14.96 7h-5.2c-.81 0-1.54.47-1.87 1.2L7.22 10l1.92.53L9.79 9H12l-1.83 4.1c-.6 1.33.39 2.9 1.85 2.9H17v5h2v-5.5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdAccessible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.45-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1a5 5 0 105.9 5.9h-2.07z\"}}]})(props);\n};\nexport function MdAccountBalanceWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18v1c0 1.1-.9 2-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14c1.1 0 2 .9 2 2v1h-9a2 2 0 00-2 2v8a2 2 0 002 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdAccountBalance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10h3v7H4zM10.5 10h3v7h-3zM2 19h20v3H2zM17 10h3v7h-3zM12 1L2 6v2h20V6z\"}}]})(props);\n};\nexport function MdAccountBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5a2 2 0 00-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z\"}}]})(props);\n};\nexport function MdAccountCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2a7.2 7.2 0 01-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 01-6 3.22z\"}}]})(props);\n};\nexport function MdAddShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm18.31 6l-2.76 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z\"}}]})(props);\n};\nexport function MdAddTask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.18L10.59 16.6l-4.24-4.24 1.41-1.41 2.83 2.83 10-10L22 5.18zM12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8c1.57 0 3.04.46 4.28 1.25l1.45-1.45A10.02 10.02 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10c1.73 0 3.36-.44 4.78-1.22l-1.5-1.5c-1 .46-2.11.72-3.28.72zm7-5h-3v2h3v3h2v-3h3v-2h-3v-3h-2v3z\"}}]})(props);\n};\nexport function MdAddToDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-3h3v-2h-3v-3h-2v3h-3v2h3v3h2zm-4.97.5H5.66c-.72 0-1.38-.38-1.73-1l-2.36-4.1c-.36-.62-.35-1.38.01-2L7.92 3.49c.36-.61 1.02-.99 1.73-.99h4.7c.71 0 1.37.38 1.73.99l4.48 7.71a6.176 6.176 0 00-2.4-.14L14.35 4.5h-4.7L3.31 15.41l2.35 4.09h7.89c.35.77.85 1.45 1.48 2zM13.34 15c-.22.63-.34 1.3-.34 2H7.25l-.73-1.27 4.58-7.98h1.8l2.53 4.42c-.56.42-1.05.93-1.44 1.51l-2-3.49L9.25 15h4.09z\"}}]})(props);\n};\nexport function MdAddchart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5v2h-3v3h-2V7h-3V5h3V2h2v3h3zm-3 14H5V5h6V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6h-2v6zm-4-6v4h2v-4h-2zm-4 4h2V9h-2v8zm-2 0v-6H7v6h2z\"}}]})(props);\n};\nexport function MdAdminPanelSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11c.34 0 .67.04 1 .09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55-.69-.98-1.1-2.17-1.1-3.45 0-3.31 2.69-6 6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 13c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1.38c.62 0 1.12.51 1.12 1.12s-.51 1.12-1.12 1.12-1.12-.51-1.12-1.12.5-1.12 1.12-1.12zm0 5.37c-.93 0-1.74-.46-2.24-1.17.05-.72 1.51-1.08 2.24-1.08s2.19.36 2.24 1.08c-.5.71-1.31 1.17-2.24 1.17z\"}}]})(props);\n};\nexport function MdAdsClick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.71 17.99A5.993 5.993 0 016 12c0-3.31 2.69-6 6-6 3.22 0 5.84 2.53 5.99 5.71l-2.1-.63a3.999 3.999 0 10-4.81 4.81l.63 2.1zM22 12c0 .3-.01.6-.04.9l-1.97-.59c.01-.1.01-.21.01-.31 0-4.42-3.58-8-8-8s-8 3.58-8 8 3.58 8 8 8c.1 0 .21 0 .31-.01l.59 1.97c-.3.03-.6.04-.9.04-5.52 0-10-4.48-10-10S6.48 2 12 2s10 4.48 10 10zm-3.77 4.26L22 15l-10-3 3 10 1.26-3.77 4.27 4.27 1.98-1.98-4.28-4.26z\"}}]})(props);\n};\nexport function MdAlarmAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z\"}}]})(props);\n};\nexport function MdAlarmOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92a9 9 0 00-9-9c-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8A8.964 8.964 0 003 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.71 1.42 1.42.86-.71z\"}}]})(props);\n};\nexport function MdAlarmOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z\"}}]})(props);\n};\nexport function MdAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdAllInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 6h-4c0 1.62-1.38 3-3 3s-3-1.38-3-3H5V5h14v4zm-4 7h6v3c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3z\"}}]})(props);\n};\nexport function MdAllOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.21 4.16l4 4v-4zm4 12l-4 4h4zm-12 4l-4-4v4zm-4-12l4-4h-4zm12.95-.95c-2.73-2.73-7.17-2.73-9.9 0s-2.73 7.17 0 9.9 7.17 2.73 9.9 0 2.73-7.16 0-9.9zm-1.1 8.8c-2.13 2.13-5.57 2.13-7.7 0s-2.13-5.57 0-7.7 5.57-2.13 7.7 0 2.13 5.57 0 7.7z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M.21.16h24v24h-24z\"}}]})(props);\n};\nexport function MdAnalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-5h2v5zm4 0h-2v-3h2v3zm0-5h-2v-2h2v2zm4 5h-2V7h2v10z\"}}]})(props);\n};\nexport function MdAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 15l1.55 1.55c-.96 1.69-3.33 3.04-5.55 3.37V11h3V9h-3V7.82C14.16 7.4 15 6.3 15 5c0-1.65-1.35-3-3-3S9 3.35 9 5c0 1.3.84 2.4 2 2.82V9H8v2h3v8.92c-2.22-.33-4.59-1.68-5.55-3.37L7 15l-4-3v3c0 3.88 4.92 7 9 7s9-3.12 9-7v-3l-4 3zM12 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}}]})(props);\n};\nexport function MdAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.6 9.48l1.84-3.18c.16-.31.04-.69-.26-.85a.637.637 0 00-.83.22l-1.88 3.24a11.463 11.463 0 00-8.94 0L5.65 5.67a.643.643 0 00-.87-.2c-.28.18-.37.54-.22.83L6.4 9.48A10.78 10.78 0 001 18h22a10.78 10.78 0 00-5.4-8.52zM7 15.25a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zm10 0a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5z\"}}]})(props);\n};\nexport function MdAnnouncement (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdApi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12l-2 2-2-2 2-2 2 2zm-2-6l2.12 2.12 2.5-2.5L12 1 7.38 5.62l2.5 2.5L12 6zm-6 6l2.12-2.12-2.5-2.5L1 12l4.62 4.62 2.5-2.5L6 12zm12 0l-2.12 2.12 2.5 2.5L23 12l-4.62-4.62-2.5 2.5L18 12zm-6 6l-2.12-2.12-2.5 2.5L12 23l4.62-4.62-2.5-2.5L12 18z\"}}]})(props);\n};\nexport function MdAppBlocking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-2.5 4A2.5 2.5 0 0118 9.5c.42 0 .8.11 1.15.29l-3.36 3.36c-.18-.35-.29-.73-.29-1.15zm2.5 2.5c-.42 0-.8-.11-1.15-.29l3.36-3.36c.18.35.29.73.29 1.15a2.5 2.5 0 01-2.5 2.5zM17 18H7V6h10v1h2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v1z\"}}]})(props);\n};\nexport function MdArrowCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 10V8h-2v4H8l4 4 4-4h-3z\"}}]})(props);\n};\nexport function MdArrowCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0 2c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm-1-10v4h2v-4h3l-4-4-4 4h3z\"}}]})(props);\n};\nexport function MdArrowRightAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.01 11H4v2h12.01v3L20 12l-3.99-4z\"}}]})(props);\n};\nexport function MdArticle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"}}]})(props);\n};\nexport function MdAspectRatio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\"}}]})(props);\n};\nexport function MdAssessment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdAssignmentInd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z\"}}]})(props);\n};\nexport function MdAssignmentLate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 15h-2v-2h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdAssignmentReturn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm4 12h-4v3l-5-5 5-5v3h4v4z\"}}]})(props);\n};\nexport function MdAssignmentReturned (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l-5-5h3V9h4v4h3l-5 5z\"}}]})(props);\n};\nexport function MdAssignmentTurnedIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 14l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z\"}}]})(props);\n};\nexport function MdAssignment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"}}]})(props);\n};\nexport function MdAutorenew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 016 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z\"}}]})(props);\n};\nexport function MdBackupTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6v14H6v2h14c1.1 0 2-.9 2-2V6h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 16H4v-5h5v5zm7 0h-5v-5h5v5zm0-7H4V4h12v5z\"}}]})(props);\n};\nexport function MdBackup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z\"}}]})(props);\n};\nexport function MdBatchPrediction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8H7c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-4 12.5h-2V19h2v1.5zm0-2.5h-2c0-1.5-2.5-3-2.5-5 0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5c0 2-2.5 3.5-2.5 5zm5-11.5H6C6 5.67 6.67 5 7.5 5h9c.83 0 1.5.67 1.5 1.5zm-1-3H7C7 2.67 7.67 2 8.5 2h7c.83 0 1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdBookOnline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 18V6h10v12H7zm9-7V9.14C16 8.51 15.55 8 15 8H9c-.55 0-1 .51-1 1.14v1.96c.55 0 1 .45 1 1s-.45 1-1 1v1.76c0 .63.45 1.14 1 1.14h6c.55 0 1-.51 1-1.14V13c-.55 0-1-.45-1-1s.45-1 1-1zm-3.5 3.5h-1v-1h1v1zm0-2h-1v-1h1v1zm0-2h-1v-1h1v1z\"}}]})(props);\n};\nexport function MdBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z\"}}]})(props);\n};\nexport function MdBookmarkAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7h-2v2h-2V7h-2V5h2V3h2v2h2v2zm-2 14l-7-3-7 3V5c0-1.1.9-2 2-2h7a5.002 5.002 0 005 7.9V21z\"}}]})(props);\n};\nexport function MdBookmarkAdded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-3-7 3V5c0-1.1.9-2 2-2h7a5.002 5.002 0 005 7.9V21zM17.83 9L15 6.17l1.41-1.41 1.41 1.41 3.54-3.54 1.41 1.41L17.83 9z\"}}]})(props);\n};\nexport function MdBookmarkBorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z\"}}]})(props);\n};\nexport function MdBookmarkRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7h-6V5h6v2zm-2 3.9A5.002 5.002 0 0114 3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V10.9z\"}}]})(props);\n};\nexport function MdBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdBookmarks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 18l2 1V3c0-1.1-.9-2-2-2H8.99C7.89 1 7 1.9 7 3h10c1.1 0 2 .9 2 2v13zM15 5H5c-1.1 0-2 .9-2 2v16l7-3 7 3V7c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdBugReport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-2.81a5.985 5.985 0 00-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z\"}}]})(props);\n};\nexport function MdBuildCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.9 13.49l-1.4 1.4c-.2.2-.51.2-.71 0l-3.41-3.41c-1.22.43-2.64.17-3.62-.81a3.468 3.468 0 01-.59-4.1l2.35 2.35 1.41-1.41-2.35-2.34c1.32-.71 2.99-.52 4.1.59.98.98 1.24 2.4.81 3.62l3.41 3.41c.19.19.19.51 0 .7z\"}}]})(props);\n};\nexport function MdBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z\"}}]})(props);\n};\nexport function MdCached (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8l-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 01-2.8-.7l-1.46 1.46A7.93 7.93 0 0012 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0012 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z\"}}]})(props);\n};\nexport function MdCalendarToday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z\"}}]})(props);\n};\nexport function MdCalendarViewDay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17h18v2H3zm0-7h18v5H3zm0-4h18v2H3z\"}}]})(props);\n};\nexport function MdCalendarViewMonth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8 11H4V6h4v5zm6 0h-4V6h4v5zm6 0h-4V6h4v5zM8 18H4v-5h4v5zm6 0h-4v-5h4v5zm6 0h-4v-5h4v5z\"}}]})(props);\n};\nexport function MdCalendarViewWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 2h2.5v12H13V6zm-2 12H8.5V6H11v12zM4 6h2.5v12H4V6zm16 12h-2.5V6H20v12z\"}}]})(props);\n};\nexport function MdCameraEnhance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2h-3.17L15 3H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17l1.25-2.75L16 13l-2.75-1.25L12 9l-1.25 2.75L8 13l2.75 1.25z\"}}]})(props);\n};\nexport function MdCancelScheduleSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9c-.42 0-.83.04-1.24.11L1.01 3 1 10l9 2-9 2 .01 7 8.07-3.46C9.59 21.19 12.71 24 16.5 24c4.14 0 7.5-3.36 7.5-7.5S20.64 9 16.5 9zm0 13c-3.03 0-5.5-2.47-5.5-5.5s2.47-5.5 5.5-5.5 5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.27 14.03l-1.77 1.76-1.77-1.76-.7.7 1.76 1.77-1.76 1.77.7.7 1.77-1.76 1.77 1.76.7-.7-1.76-1.77 1.76-1.77z\"}}]})(props);\n};\nexport function MdCardGiftcard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 00-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z\"}}]})(props);\n};\nexport function MdCardMembership (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z\"}}]})(props);\n};\nexport function MdCardTravel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11 15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z\"}}]})(props);\n};\nexport function MdChangeHistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z\"}}]})(props);\n};\nexport function MdCheckCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.59 7.58L10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"}}]})(props);\n};\nexport function MdChromeReaderMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M-74 29h48v48h-48V29zM0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12h7v1.5h-7zm0-2.5h7V11h-7zm0 5h7V16h-7zM21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 15h-9V6h9v13z\"}}]})(props);\n};\nexport function MdCircleNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 16.5c-.83 0-1.5-.67-1.5-1.5h3c0 .83-.67 1.5-1.5 1.5zm5-2.5H7v-1l1-1v-2.61C8 9.27 9.03 7.47 11 7v-.5c0-.57.43-1 1-1s1 .43 1 1V7c1.97.47 3 2.28 3 4.39V14l1 1v1z\"}}]})(props);\n};\nexport function MdClass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z\"}}]})(props);\n};\nexport function MdCloseFullscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3.41L16.71 8.7 20 12h-8V4l3.29 3.29L20.59 2 22 3.41zM3.41 22l5.29-5.29L12 20v-8H4l3.29 3.29L2 20.59 3.41 22z\"}}]})(props);\n};\nexport function MdCodeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.17 12l-4.58-4.59L16 6l6 6-3.59 3.59L17 14.17 19.17 12zM1.39 4.22l4.19 4.19L2 12l6 6 1.41-1.41L4.83 12 7 9.83l12.78 12.78 1.41-1.41L2.81 2.81 1.39 4.22z\"}}]})(props);\n};\nexport function MdCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"}}]})(props);\n};\nexport function MdCommentBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 11l-2.5-1.5L14 13V5h5v8z\"}}]})(props);\n};\nexport function MdCommute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4H5C3.34 4 2 5.34 2 7v8c0 1.66 1.34 3 3 3l-1 1v1h1l2-2.03L9 18v-5H4V5.98L13 6v2h2V7c0-1.66-1.34-3-3-3zM5 14c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm15.57-4.34c-.14-.4-.52-.66-.97-.66h-7.19c-.46 0-.83.26-.98.66L10 13.77l.01 5.51c0 .38.31.72.69.72h.62c.38 0 .68-.38.68-.76V18h8v1.24c0 .38.31.76.69.76h.61c.38 0 .69-.34.69-.72l.01-1.37v-4.14l-1.43-4.11zm-8.16.34h7.19l1.03 3h-9.25l1.03-3zM12 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdCompareArrows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z\"}}]})(props);\n};\nexport function MdCompress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19h3v3h2v-3h3l-4-4-4 4zm8-15h-3V1h-2v3H8l4 4 4-4zM4 9v2h16V9H4zM4 12h16v2H4z\"}}]})(props);\n};\nexport function MdContactPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-2 8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0116 17.43V18z\"}}]})(props);\n};\nexport function MdContactSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 2C6.81 2 3 5.81 3 10.5S6.81 19 11.5 19h.5v3c4.86-2.34 8-7 8-11.5C20 5.81 16.19 2 11.5 2zm1 14.5h-2v-2h2v2zm0-3.5h-2c0-3.25 3-3 3-5 0-1.1-.9-2-2-2s-2 .9-2 2h-2c0-2.21 1.79-4 4-4s4 1.79 4 4c0 2.5-3 2.75-3 5z\"}}]})(props);\n};\nexport function MdContactless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8.46 14.45l-1.36-.62c.28-.61.41-1.24.4-1.86a4.42 4.42 0 00-.4-1.8l1.36-.63c.35.75.53 1.56.54 2.4.01.86-.17 1.7-.54 2.51zm3.07 1.56l-1.3-.74c.52-.92.78-1.98.78-3.15 0-1.19-.27-2.33-.8-3.4l1.34-.67c.64 1.28.96 2.65.96 4.07 0 1.43-.33 2.74-.98 3.89zm3.14 1.32l-1.35-.66c.78-1.6 1.18-3.18 1.18-4.69 0-1.51-.4-3.07-1.18-4.64l1.34-.67c.9 1.78 1.34 3.56 1.34 5.31 0 1.74-.44 3.54-1.33 5.35z\"}}]})(props);\n};\nexport function MdCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.88 9.14c1.28.06 1.61 1.15 1.63 1.66h1.79c-.08-1.98-1.49-3.19-3.45-3.19C9.64 7.61 8 9 8 12.14c0 1.94.93 4.24 3.84 4.24 2.22 0 3.41-1.65 3.44-2.95h-1.79c-.03.59-.45 1.38-1.63 1.44-1.31-.04-1.86-1.06-1.86-2.73 0-2.89 1.28-2.98 1.88-3zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdCreditCardOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.9 21.9L2.1 2.1.69 3.51l1.55 1.55c-.15.28-.23.6-.23.94L2 18c0 1.11.89 2 2 2h13.17l3.31 3.31 1.42-1.41zM4 12V8h1.17l4 4H4zm2.83-8H20c1.11 0 2 .89 2 2v12c0 .34-.08.66-.23.94L14.83 12H20V8h-9.17l-4-4z\"}}]})(props);\n};\nexport function MdCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z\"}}]})(props);\n};\nexport function MdDangerous (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM17 15.74L15.74 17 12 13.26 8.26 17 7 15.74 10.74 12 7 8.26 8.26 7 12 10.74 15.74 7 17 8.26 13.26 12 17 15.74z\"}}]})(props);\n};\nexport function MdDashboardCustomize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3h8v8H3zm10 0h8v8h-8zM3 13h8v8H3zm15 0h-2v3h-3v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdDashboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z\"}}]})(props);\n};\nexport function MdDataExploration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12c0 1.33.26 2.61.74 3.77L8 10.5l3.3 2.78L14.58 10H13V8h5v5h-2v-1.58L11.41 16l-3.29-2.79-4.4 4.4A9.996 9.996 0 0012 22h8c1.1 0 2-.9 2-2v-8c0-5.52-4.48-10-10-10zm7.5 18.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdDateRange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\"}}]})(props);\n};\nexport function MdDeleteForever (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z\"}}]})(props);\n};\nexport function MdDeleteOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4z\"}}]})(props);\n};\nexport function MdDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"}}]})(props);\n};\nexport function MdDescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z\"}}]})(props);\n};\nexport function MdDisabledByDefault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18V3H3zm14 12.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"}}]})(props);\n};\nexport function MdDisabledVisible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.99 12.34c.01-.11.01-.23.01-.34 0-5.52-4.48-10-10-10S2 6.48 2 12c0 5.17 3.93 9.43 8.96 9.95a9.343 9.343 0 01-2.32-2.68A8.01 8.01 0 014 12c0-1.85.63-3.55 1.69-4.9l5.66 5.66c.56-.4 1.17-.73 1.82-1L7.1 5.69A7.902 7.902 0 0112 4c4.24 0 7.7 3.29 7.98 7.45.71.22 1.39.52 2.01.89zM17 13c-3.18 0-5.9 1.87-7 4.5 1.1 2.63 3.82 4.5 7 4.5s5.9-1.87 7-4.5c-1.1-2.63-3.82-4.5-7-4.5zm0 7a2.5 2.5 0 010-5 2.5 2.5 0 010 5zm1.5-2.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdDns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdDoneAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z\"}}]})(props);\n};\nexport function MdDoneOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 5.03l1.4 1.4L8.43 19.17l-5.6-5.6 1.4-1.4 4.2 4.2L19.77 5.03m0-2.83L8.43 13.54l-4.2-4.2L0 13.57 8.43 22 24 6.43 19.77 2.2z\"}}]})(props);\n};\nexport function MdDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"}}]})(props);\n};\nexport function MdDonutLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44 6-6.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13 18.92V22c5-.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z\"}}]})(props);\n};\nexport function MdDonutSmall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z\"}}]})(props);\n};\nexport function MdDragIndicator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdDynamicForm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20v-9h-2V4h7l-2 5h2l-5 11zm-2-7v7H4c-1.1 0-2-.9-2-2v-3c0-1.1.9-2 2-2h11zm-8.75 2.75h-1.5v1.5h1.5v-1.5zM13 4v7H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h9zM6.25 6.75h-1.5v1.5h1.5v-1.5z\"}}]})(props);\n};\nexport function MdEco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.05 8.05a7.001 7.001 0 00-.02 9.88c1.47-3.4 4.09-6.24 7.36-7.93A15.952 15.952 0 008 19.32c2.6 1.23 5.8.78 7.95-1.37C19.43 14.47 20 4 20 4S9.53 4.57 6.05 8.05z\"}}]})(props);\n};\nexport function MdEditCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22H5a2 2 0 01-2-2l.01-14c0-1.1.88-2 1.99-2h1V2h2v2h8V2h2v2h1c1.1 0 2 .9 2 2v6h-2v-2H5v10h7v2zm10.13-5.01l.71-.71a.996.996 0 000-1.41l-.71-.71a.996.996 0 00-1.41 0l-.71.71 2.12 2.12zm-.71.71l-5.3 5.3H14v-2.12l5.3-5.3 2.12 2.12z\"}}]})(props);\n};\nexport function MdEditOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.126 8.125l1.937-1.937 3.747 3.747-1.937 1.938zM20.71 5.63l-2.34-2.34a1 1 0 00-1.41 0l-1.83 1.83 3.75 3.75L20.71 7a1 1 0 000-1.37zM2 5l6.63 6.63L3 17.25V21h3.75l5.63-5.62L18 21l2-2L4 3 2 5z\"}}]})(props);\n};\nexport function MdEject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 24V0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17h14v2H5zm7-12L5.33 15h13.34z\"}}]})(props);\n};\nexport function MdEuroSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 18.5A6.48 6.48 0 019.24 15H15v-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15V9H9.24A6.491 6.491 0 0115 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3A8.955 8.955 0 0015 3c-3.92 0-7.24 2.51-8.48 6H3v2h3.06a8.262 8.262 0 000 2H3v2h3.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z\"}}]})(props);\n};\nexport function MdEventSeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18v3h3v-3h10v3h3v-6H4v3zm15-8h3v3h-3v-3zM2 10h3v3H2v-3zm15 3H7V5c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v8z\"}}]})(props);\n};\nexport function MdEvent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"}}]})(props);\n};\nexport function MdExitToApp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5a2 2 0 00-2 2v4h2V5h14v14H5v-4H3v4a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16v2H4zM4 2h16v2H4zm9 7h3l-4-4-4 4h3v6H8l4 4 4-4h-3z\"}}]})(props);\n};\nexport function MdExploreOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.19 14.19l-1.41-1.41-1.56-1.56L11 11 9.81 9.81 4.93 4.93 2.27 2.27 1 3.54l2.78 2.78c-.11.16-.21.32-.31.48-.04.07-.09.14-.13.21-.09.15-.17.31-.25.47-.05.1-.1.21-.16.32-.06.14-.13.28-.19.43-.1.24-.19.48-.27.73l-.09.3c-.05.2-.1.39-.14.59-.02.11-.04.22-.07.33-.04.2-.07.4-.09.61-.01.1-.03.2-.03.3-.03.29-.05.6-.05.91 0 5.52 4.48 10 10 10 .31 0 .62-.02.92-.05l.3-.03c.2-.02.41-.06.61-.09.11-.02.22-.04.33-.07.2-.04.39-.09.58-.15.1-.03.2-.05.3-.09.25-.08.49-.17.73-.27.15-.06.29-.13.43-.19.11-.05.22-.1.33-.16.16-.08.31-.16.46-.25.07-.04.14-.09.21-.13.16-.1.32-.2.48-.31L20.46 23l1.27-1.27-2.66-2.66-4.88-4.88zM6 18l3-6.46L12.46 15 6 18zm16-6c0 .31-.02.62-.05.92l-.03.3c-.02.2-.06.41-.09.61-.02.11-.04.22-.07.33-.04.2-.09.39-.15.58-.03.1-.05.21-.09.31-.08.25-.17.49-.27.73-.06.15-.13.29-.19.43-.05.11-.1.22-.16.33-.08.16-.16.31-.25.46-.04.07-.09.14-.13.21-.1.16-.2.32-.31.48L15 12.46 18 6l-6.46 3-5.22-5.22c.16-.11.32-.21.48-.31.07-.04.14-.09.21-.13.15-.09.31-.17.46-.25.11-.05.22-.1.33-.16.14-.06.28-.13.43-.19.24-.1.48-.19.73-.27l.31-.09c.19-.05.38-.11.58-.15.11-.02.22-.04.33-.07.2-.04.4-.07.61-.09.1-.01.2-.03.3-.03.29-.02.6-.04.91-.04 5.52 0 10 4.48 10 10z\"}}]})(props);\n};\nexport function MdExplore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z\"}}]})(props);\n};\nexport function MdExtensionOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.78 22.61l-1.63-1.63c-.05 0-.1.02-.15.02h-3.8c0-2.71-2.16-3-2.7-3s-2.7.29-2.7 3H5c-1.1 0-2-.9-2-2v-3.8c2.71 0 3-2.16 3-2.7s-.3-2.7-2.99-2.7V6c0-.05.02-.09.02-.14L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zm.22-5.44V15a2.5 2.5 0 000-5V6c0-1.1-.9-2-2-2h-4a2.5 2.5 0 00-5 0H6.83L20 17.17z\"}}]})(props);\n};\nexport function MdExtension (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5a2.5 2.5 0 00-5 0V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5a2.5 2.5 0 000-5z\"}}]})(props);\n};\nexport function MdFace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11.75a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm6 0a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37a9.974 9.974 0 0010.41 3.97c.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdFactCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM10 17H5v-2h5v2zm0-4H5v-2h5v2zm0-4H5V7h5v2zm4.82 6L12 12.16l1.41-1.41 1.41 1.42L17.99 9l1.42 1.42L14.82 15z\"}}]})(props);\n};\nexport function MdFavoriteBorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z\"}}]})(props);\n};\nexport function MdFavorite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z\"}}]})(props);\n};\nexport function MdFeedback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z\"}}]})(props);\n};\nexport function MdFilePresent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V7l-5-5zM6 20V4h8v4h4v12H6zm10-10v5c0 2.21-1.79 4-4 4s-4-1.79-4-4V8.5a2.5 2.5 0 012.76-2.49c1.3.13 2.24 1.32 2.24 2.63V15h-2V8.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5V15c0 1.1.9 2 2 2s2-.9 2-2v-5h2z\"}}]})(props);\n};\nexport function MdFilterAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24m0 24H0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0018.95 4H5.04c-.83 0-1.3.95-.79 1.61z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdFilterListAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zM0 0h24m0 24H0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.25 5.66c.1.13 5.74 7.33 5.74 7.33V19c0 .55.45 1 1.01 1h2.01c.55 0 1.01-.45 1.01-1v-6.02s5.49-7.02 5.75-7.34C20.03 5.32 20 5 20 5c0-.55-.45-1-1.01-1H5.01C4.4 4 4 4.48 4 5c0 .2.06.44.25.66z\"}}]})(props);\n};\nexport function MdFindInPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\"}}]})(props);\n};\nexport function MdFindReplace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05A6.976 6.976 0 0011 4c-3.53 0-6.43 2.61-6.92 6H6.1A5 5 0 0111 6zm5.64 9.14A6.89 6.89 0 0017.92 12H15.9a5 5 0 01-4.9 4c-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05A6.976 6.976 0 0011 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z\"}}]})(props);\n};\nexport function MdFingerprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2a.506.506 0 01.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67a.49.49 0 01-.44.28zM3.5 9.72a.499.499 0 01-.41-.79c.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25a.5.5 0 01-.12.7c-.23.16-.54.11-.7-.12a9.388 9.388 0 00-3.39-2.94c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07a.47.47 0 01-.35-.15c-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1a7.297 7.297 0 01-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29a11.14 11.14 0 01-.73-3.96c0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z\"}}]})(props);\n};\nexport function MdFitScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4h3c1.1 0 2 .9 2 2v2h-2V6h-3V4zM4 8V6h3V4H4c-1.1 0-2 .9-2 2v2h2zm16 8v2h-3v2h3c1.1 0 2-.9 2-2v-2h-2zM7 18H4v-2H2v2c0 1.1.9 2 2 2h3v-2zM18 8H6v8h12V8z\"}}]})(props);\n};\nexport function MdFlaky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M14.05 17.58l-.01.01-2.4-2.4 1.06-1.06 1.35 1.35L16.54 13l1.06 1.06-3.54 3.54-.01-.02zM12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM7.34 6.28l1.41 1.41 1.41-1.41 1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.41-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.41 1.06-1.06zM12 20c-2.2 0-4.2-.9-5.7-2.3L17.7 6.3C19.1 7.8 20 9.8 20 12c0 4.4-3.6 8-8 8z\"}}]})(props);\n};\nexport function MdFlightLand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 19h19v2h-19v-2zm16.84-3.15c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.06-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l16.57 4.44z\"}}]})(props);\n};\nexport function MdFlightTakeoff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 19h19v2h-19v-2zm19.57-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.33-1.97-1.54-1.45.39 2.59 4.49s7.12-1.9 16.57-4.43c.81-.23 1.28-1.05 1.07-1.85z\"}}]})(props);\n};\nexport function MdFlipToBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7H7v2h2V7zm0 4H7v2h2v-2zm0-8a2 2 0 00-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2V3zM9 17v-2H7a2 2 0 002 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zM5 7H3v12a2 2 0 002 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdFlipToFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3a2 2 0 002 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9a2 2 0 00-2 2v10a2 2 0 002 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z\"}}]})(props);\n};\nexport function MdFlutterDash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.07 11.7c.29-.39.81-.56 1.27-.37.17.07.32.18.43.33.22.28.25.59.22.85-.05.33-.25.63-.54.79 0 0-4.87 2.95-5.07 2.69s3.69-4.29 3.69-4.29zM22 10c0 2.5-1 3-1.5 3-.23 0-.44-.1-.62-.26-.48 3.32-2.36 5.31-5.33 5.99.11.44.48.77.95.77h.58c.22 0 .41.15.48.36.17.52.66 1.02 1.02 1.32.25.21.24.59-.03.78-.34.24-.9.49-1.79.53a.501.501 0 01-.45-.22c-.13-.2-.31-.56-.31-1.01 0-.3.04-.57.09-.8-.78-.16-1.39-.78-1.55-1.56-.49.06-1 .1-1.54.1-.88 0-1.7-.09-2.45-.25-.02.08-.05.16-.05.25 0 .55.45 1 1 1h.58c.22 0 .41.15.48.36.17.52.66 1.02 1.02 1.32.25.21.24.59-.03.78-.34.24-.9.49-1.79.53a.501.501 0 01-.45-.22c-.13-.2-.31-.56-.31-1.01 0-.3.04-.57.09-.8-.9-.19-1.59-1-1.59-1.96 0-.18.03-.36.08-.53-2.46-.86-4.03-2.78-4.46-5.74-.18.17-.38.27-.62.27C3 13 2 12.5 2 10c0-2.27 1.7-4.5 3-4.5.43 0 .49.49.5.85a7.989 7.989 0 015.55-3.29c.2-.96 1.08-1.56 1.95-1.56v1s.33-.5 1-.5c.67 0 1 .5 1 .5-.49 0-.85.35-.96.77 1.82.48 3.39 1.59 4.46 3.08.01-.36.07-.85.5-.85 1.3 0 3 2.23 3 4.5zM5 11c0 .81.1 1.53.25 2.21.18-.69.46-1.33.83-1.92a3.77 3.77 0 01-.34-1.54A3.766 3.766 0 019.5 6c.96 0 1.84.37 2.5.97.66-.6 1.54-.97 2.5-.97 2.07 0 3.75 1.68 3.75 3.75 0 .55-.12 1.07-.34 1.54.37.59.66 1.24.84 1.94.15-.68.25-1.41.25-2.23 0-3.86-3.14-7-7-7s-7 3.14-7 7zm12.98 4.29c0-.1.02-.19.02-.29 0-1.01-.26-1.95-.7-2.78-.69.78-1.68 1.28-2.8 1.28-.27 0-.54-.03-.79-.09.14-.23.23-.49.27-.77.01-.07.01-.13.02-.19.17.03.33.05.5.05 1.52 0 2.75-1.23 2.75-2.75S16.02 7 14.5 7c-.67 0-1.32.25-1.83.72l-.67.6-.67-.6C10.82 7.25 10.17 7 9.5 7 7.98 7 6.75 8.23 6.75 9.75c0 1.34.96 2.46 2.23 2.7l-.76.83c-.6-.22-1.12-.59-1.53-1.05A6.01 6.01 0 006 15c0 .08.01.15.01.24C7.13 17.06 9.14 18 12 18c2.88 0 4.88-.91 5.98-2.71zM16 9.75c0 .97-.67 1.75-1.5 1.75S13 10.72 13 9.75 13.67 8 14.5 8s1.5.78 1.5 1.75zm-.75-.87c0-.21-.17-.38-.38-.38s-.37.17-.37.38.17.38.38.38.37-.18.37-.38zM11 9.75c0 .97-.67 1.75-1.5 1.75S8 10.72 8 9.75 8.67 8 9.5 8s1.5.78 1.5 1.75zm-.75-.87c0-.21-.17-.38-.38-.38s-.37.17-.37.38.17.38.38.38.37-.18.37-.38z\"}}]})(props);\n};\nexport function MdFreeCancellation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.21 20H5V10h14v4.38l2-2V6c0-1.1-.9-2-2-2h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 002 2h8.21l-2-2zm5.33 2.5L13 18.96l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41-5.64 5.66zM10.41 14L12 15.59 10.59 17 9 15.41 7.41 17 6 15.59 7.59 14 6 12.41 7.41 11 9 12.59 10.59 11 12 12.41 10.41 14z\"}}]})(props);\n};\nexport function MdGTranslate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H11l-1-3H3c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8l1 3h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 16c-2.76 0-5-2.24-5-5s2.24-5 5-5c1.35 0 2.48.5 3.35 1.3L9.03 8.57c-.38-.36-1.04-.78-2.03-.78-1.74 0-3.15 1.44-3.15 3.21S5.26 14.21 7 14.21c2.01 0 2.84-1.44 2.92-2.41H7v-1.71h4.68c.07.31.12.61.12 1.02C11.8 13.97 9.89 16 7 16zm6.17-5.42h3.7c-.43 1.25-1.11 2.43-2.05 3.47-.31-.35-.6-.72-.86-1.1l-.79-2.37zm8.33 9.92c0 .55-.45 1-1 1H14l2-2.5-1.04-3.1 3.1 3.1.92-.92-3.3-3.25.02-.02c1.13-1.25 1.93-2.69 2.4-4.22H20v-1.3h-4.53V8h-1.29v1.29h-1.44L11.46 5.5h9.04c.55 0 1 .45 1 1v14z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}}]})(props);\n};\nexport function MdGavel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.25 8.069l2.83-2.827 14.134 14.15-2.83 2.827zM9.486 3.827L12.314.998l5.657 5.656-2.828 2.83zM.999 12.315l2.828-2.829 5.657 5.657-2.828 2.828zM1 21h12v2H1z\"}}]})(props);\n};\nexport function MdGeneratingTokens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 6.5h-2v5H8v-5H6V9h6v1.5zm8.25-6.75L23 5l-2.75 1.25L19 9l-1.25-2.75L15 5l2.75-1.25L19 1l1.25 2.75zm0 14L23 19l-2.75 1.25L19 23l-1.25-2.75L15 19l2.75-1.25L19 15l1.25 2.75z\"}}]})(props);\n};\nexport function MdGetApp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\"}}]})(props);\n};\nexport function MdGif (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 9H13v6h-1.5zM9 9H6c-.6 0-1 .5-1 1v4c0 .5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zM19 10.5V9h-4.5v6H16v-2h2v-1.5h-2v-1z\"}}]})(props);\n};\nexport function MdGrade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"}}]})(props);\n};\nexport function MdGrading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h16v2H4V7zm0 6h16v-2H4v2zm0 4h7v-2H4v2zm0 4h7v-2H4v2zm11.41-2.83L14 16.75l-1.41 1.41L15.41 21 20 16.42 18.58 15l-3.17 3.17zM4 3v2h16V3H4z\"}}]})(props);\n};\nexport function MdGroupWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8 17.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5zM9.5 8a2.5 2.5 0 015 0 2.5 2.5 0 01-5 0zm6.5 9.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdHelpCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6.99 15c-.7 0-1.26-.56-1.26-1.26 0-.71.56-1.25 1.26-1.25.71 0 1.25.54 1.25 1.25-.01.69-.54 1.26-1.25 1.26zm3.01-7.4c-.76 1.11-1.48 1.46-1.87 2.17-.16.29-.22.48-.22 1.41h-1.82c0-.49-.08-1.29.31-1.98.49-.87 1.42-1.39 1.96-2.16.57-.81.25-2.33-1.37-2.33-1.06 0-1.58.8-1.8 1.48l-1.65-.7C9.01 7.15 10.22 6 11.99 6c1.48 0 2.49.67 3.01 1.52.44.72.7 2.07.02 3.08z\"}}]})(props);\n};\nexport function MdHelpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdHelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"}}]})(props);\n};\nexport function MdHideSource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.81 2.81L1.39 4.22l2.27 2.27A9.91 9.91 0 002 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.41L2.81 2.81zM12 20c-4.41 0-8-3.59-8-8 0-1.48.41-2.86 1.12-4.06l10.94 10.94C14.86 19.59 13.48 20 12 20zM7.94 5.12L6.49 3.66A9.91 9.91 0 0112 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51l-1.46-1.46A7.869 7.869 0 0020 12c0-4.41-3.59-8-8-8-1.48 0-2.86.41-4.06 1.12z\"}}]})(props);\n};\nexport function MdHighlightAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5h-2V3h2v2zm-2 16h2v-2.59L19.59 21 21 19.59 18.41 17H21v-2h-6v6zm4-12h2V7h-2v2zm0 4h2v-2h-2v2zm-8 8h2v-2h-2v2zM7 5h2V3H7v2zM3 17h2v-2H3v2zm2 4v-2H3c0 1.1.9 2 2 2zM19 3v2h2c0-1.1-.9-2-2-2zm-8 2h2V3h-2v2zM3 9h2V7H3v2zm4 12h2v-2H7v2zm-4-8h2v-2H3v2zm0-8h2V3c-1.1 0-2 .9-2 2z\"}}]})(props);\n};\nexport function MdHighlightOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdHistoryToggleOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.1 19.37l1 1.74c-.96.44-2.01.73-3.1.84v-2.02c.74-.09 1.44-.28 2.1-.56zM4.07 13H2.05c.11 1.1.4 2.14.84 3.1l1.74-1c-.28-.66-.47-1.36-.56-2.1zM15.1 4.63l1-1.74c-.96-.44-2-.73-3.1-.84v2.02c.74.09 1.44.28 2.1.56zM19.93 11h2.02c-.11-1.1-.4-2.14-.84-3.1l-1.74 1c.28.66.47 1.36.56 2.1zM8.9 19.37l-1 1.74c.96.44 2.01.73 3.1.84v-2.02c-.74-.09-1.44-.28-2.1-.56zM11 4.07V2.05c-1.1.11-2.14.4-3.1.84l1 1.74c.66-.28 1.36-.47 2.1-.56zm7.36 3.1l1.74-1.01c-.63-.87-1.4-1.64-2.27-2.27l-1.01 1.74c.59.45 1.1.96 1.54 1.54zM4.63 8.9l-1.74-1c-.44.96-.73 2-.84 3.1h2.02c.09-.74.28-1.44.56-2.1zm15.3 4.1c-.09.74-.28 1.44-.56 2.1l1.74 1c.44-.96.73-2.01.84-3.1h-2.02zm-3.1 5.36l1.01 1.74c.87-.63 1.64-1.4 2.27-2.27l-1.74-1.01c-.45.59-.96 1.1-1.54 1.54zM7.17 5.64l-1-1.75c-.88.64-1.64 1.4-2.27 2.28l1.74 1.01a7.7 7.7 0 011.53-1.54zM5.64 16.83l-1.74 1c.63.87 1.4 1.64 2.27 2.27l1.01-1.74a7.7 7.7 0 01-1.54-1.53zM13 7h-2v5.41l4.29 4.29 1.41-1.41-3.7-3.7V7z\"}}]})(props);\n};\nexport function MdHistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3a9 9 0 00-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0013 21a9 9 0 000-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\"}}]})(props);\n};\nexport function MdHomeFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L4 9v12h5v-7h6v7h5V9z\"}}]})(props);\n};\nexport function MdHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\"}}]})(props);\n};\nexport function MdHorizontalSplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 19h18v-6H3v6zm0-8h18V9H3v2zm0-6v2h18V5H3z\"}}]})(props);\n};\nexport function MdHotelClass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.58 10H1l6.17 4.41L4.83 22 11 17.31 17.18 22l-2.35-7.59L21 10h-7.58L11 2l-2.42 8zm12.78 12l-1.86-6.01L23.68 13h-3.44l-3.08 2.2 1.46 4.72L21.36 22zM17 8l-1.82-6-1.04 3.45.77 2.55H17z\"}}]})(props);\n};\nexport function MdHourglassDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4h8v3.5l-2.84 2.84 1.25 1.25L18 8.01 17.99 8H18V2H6v1.17l2 2zM2.1 2.1L.69 3.51l8.9 8.9L6 16l.01.01H6V22h12v-1.17l2.49 2.49 1.41-1.41L2.1 2.1zM16 20H8v-3.5l2.84-2.84L16 18.83V20z\"}}]})(props);\n};\nexport function MdHourglassEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z\"}}]})(props);\n};\nexport function MdHourglassFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6z\"}}]})(props);\n};\nexport function MdHttp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}}]})(props);\n};\nexport function MdHttps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\"}}]})(props);\n};\nexport function MdImportantDevices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12a2 2 0 002 2h7v2H7v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4a2 2 0 00-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z\"}}]})(props);\n};\nexport function MdInfoOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v2h-2V7zm0 4h2v6h-2v-6zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"}}]})(props);\n};\nexport function MdInput (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 00-2-2zM11 16l4-4-4-4v3H1v2h10v3z\"}}]})(props);\n};\nexport function MdIntegrationInstructions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"3.5\",\"r\":\".75\",\"fill\":\"none\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"3.5\",\"r\":\".75\",\"fill\":\"none\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"3.5\",\"r\":\".75\",\"fill\":\"none\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 00-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11.17l-1.41 1.42L6 12l3.59-3.59L11 9.83 8.83 12 11 14.17zm1-9.92c-.41 0-.75-.34-.75-.75s.34-.75.75-.75.75.34.75.75-.34.75-.75.75zm2.41 11.34L13 14.17 15.17 12 13 9.83l1.41-1.42L18 12l-3.59 3.59z\"}}]})(props);\n};\nexport function MdInvertColors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.81V19c-3.31 0-6-2.63-6-5.87 0-1.56.62-3.03 1.75-4.14L12 4.81M6.35 7.56C4.9 8.99 4 10.96 4 13.13 4 17.48 7.58 21 12 21s8-3.52 8-7.87c0-2.17-.9-4.14-2.35-5.57L12 2 6.35 7.56z\"}}]})(props);\n};\nexport function MdLabelImportantOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 19H3l4.5-7L3 5h12c.65 0 1.26.31 1.63.84L21 12l-4.37 6.16c-.37.52-.98.84-1.63.84zm-8.5-2H15l3.5-5L15 7H6.5l3.5 5-3.5 5z\"}}]})(props);\n};\nexport function MdLabelImportant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 18.99l11 .01c.67 0 1.27-.33 1.63-.84L20.5 12l-4.37-6.16c-.36-.51-.96-.84-1.63-.84l-11 .01L8.34 12 3.5 18.99z\"}}]})(props);\n};\nexport function MdLabelOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.25 2.75l17 17L19 21l-2-2H5c-1.1 0-2-.9-2-2V7c0-.55.23-1.05.59-1.41L2 4l1.25-1.25zM22 12l-4.37-6.16C17.27 5.33 16.67 5 16 5H8l11 11 3-4z\"}}]})(props);\n};\nexport function MdLabelOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z\"}}]})(props);\n};\nexport function MdLabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z\"}}]})(props);\n};\nexport function MdLanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 00-1.38-3.56A8.03 8.03 0 0118.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 015.08 16zm2.95-8H5.08a7.987 7.987 0 014.33-3.56A15.65 15.65 0 008.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 01-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"}}]})(props);\n};\nexport function MdLaunch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19H5V5h7V3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"}}]})(props);\n};\nexport function MdLeaderboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 21H2V9h5.5v12zm7.25-18h-5.5v18h5.5V3zM22 11h-5.5v10H22V11z\"}}]})(props);\n};\nexport function MdLightbulbOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2 11.7V16h-4v-2.3C8.48 12.63 7 11.53 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.49-1.51 3.65-3 4.7z\"}}]})(props);\n};\nexport function MdLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21c0 .5.4 1 1 1h4c.6 0 1-.5 1-1v-1H9v1zm3-19C8.1 2 5 5.1 5 9c0 2.4 1.2 4.5 3 5.7V17c0 .5.4 1 1 1h6c.6 0 1-.5 1-1v-2.3c1.8-1.3 3-3.4 3-5.7 0-3.9-3.1-7-7-7z\"}}]})(props);\n};\nexport function MdLineStyle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 16h5v-2H3v2zm6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z\"}}]})(props);\n};\nexport function MdLineWeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3zm0-9v4h18V4H3z\"}}]})(props);\n};\nexport function MdList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"}}]})(props);\n};\nexport function MdLockClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 14.2l2.9 1.7-.8 1.3L13 15v-5h1.5v4.2zM22 14c0 4.41-3.59 8-8 8-2.02 0-3.86-.76-5.27-2H4c-1.15 0-2-.85-2-2V9c0-1.12.89-1.96 2-2v-.5C4 4.01 6.01 2 8.5 2c2.34 0 4.24 1.79 4.46 4.08.34-.05.69-.08 1.04-.08 4.41 0 8 3.59 8 8zM6 7h5v-.74A2.509 2.509 0 008.5 4 2.5 2.5 0 006 6.5V7zm14 7c0-3.31-2.69-6-6-6s-6 2.69-6 6 2.69 6 6 6 6-2.69 6-6z\"}}]})(props);\n};\nexport function MdLockOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z\"}}]})(props);\n};\nexport function MdLockOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z\"}}]})(props);\n};\nexport function MdLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\"}}]})(props);\n};\nexport function MdLogin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7L9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z\"}}]})(props);\n};\nexport function MdLogout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z\"}}]})(props);\n};\nexport function MdLoyalty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27A2.5 2.5 0 0110.5 11c.69 0 1.32.28 1.77.74l.73.72.73-.73a2.5 2.5 0 013.54 3.54z\"}}]})(props);\n};\nexport function MdManageAccounts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"8\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.67 13.02c-.22-.01-.44-.02-.67-.02-2.42 0-4.68.67-6.61 1.82-.88.52-1.39 1.5-1.39 2.53V20h9.26a6.963 6.963 0 01-.59-6.98zM20.75 16c0-.22-.03-.42-.06-.63l1.14-1.01-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L18 11h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1.01c-.03.21-.06.41-.06.63s.03.42.06.63l-1.14 1.01 1 1.73 1.45-.49c.32.27.68.48 1.08.63L16 21h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1.01c.03-.21.06-.41.06-.63zM17 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdMarkAsUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.83 7h-2.6L10.5 4 4 7.4V17c-1.1 0-2-.9-2-2V7.17c0-.53.32-1.09.8-1.34L10.5 2l7.54 3.83c.43.23.73.7.79 1.17zM20 8H7c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm0 3.67L13.5 15 7 11.67V10l6.5 3.33L20 10v1.67z\"}}]})(props);\n};\nexport function MdMarkunreadMailbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M-618-3000H782V600H-618zM0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3h18v2H3z\"}}]})(props);\n};\nexport function MdMediation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12l-4 4-1.41-1.41L18.17 13h-5.23A8.974 8.974 0 018 20.05 3.005 3.005 0 015 23c-1.66 0-3-1.34-3-3s1.34-3 3-3c.95 0 1.78.45 2.33 1.14A6.969 6.969 0 0010.91 13h-3.1C7.4 14.16 6.3 15 5 15c-1.66 0-3-1.34-3-3s1.34-3 3-3c1.3 0 2.4.84 2.82 2h3.1c-.32-2.23-1.69-4.1-3.59-5.14C6.78 6.55 5.95 7 5 7 3.34 7 2 5.66 2 4s1.34-3 3-3a2.99 2.99 0 012.99 2.95A8.974 8.974 0 0112.93 11h5.23l-1.58-1.59L18 8l4 4z\"}}]})(props);\n};\nexport function MdMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19h12v2H6z\"}}]})(props);\n};\nexport function MdModelTraining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 13.5c0 2-2.5 3.5-2.5 5h-2c0-1.5-2.5-3-2.5-5 0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5zm-2.5 6h-2V21h2v-1.5zm6-6.5c0 1.68-.59 3.21-1.58 4.42l1.42 1.42a8.978 8.978 0 00-1-12.68l-1.42 1.42A6.993 6.993 0 0119 13zm-3-8l-4-4v3a9 9 0 00-9 9c0 2.23.82 4.27 2.16 5.84l1.42-1.42A6.938 6.938 0 015 13c0-3.86 3.14-7 7-7v3l4-4z\"}}]})(props);\n};\nexport function MdNewLabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12l-4.37 6.16c-.37.52-.98.84-1.63.84h-3v-6H9v-3H3V7c0-1.1.9-2 2-2h10c.65 0 1.26.31 1.63.84L21 12zm-11 3H7v-3H5v3H2v2h3v3h2v-3h3v-2z\"}}]})(props);\n};\nexport function MdNextPlan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 11.97h-5l2.26-2.26a4.94 4.94 0 00-3.76-1.74c-2.37 0-4.35 1.66-4.86 3.88l-.96-.32c.64-2.62 3-4.56 5.82-4.56 1.78 0 3.37.79 4.47 2.03L18 8.97v5z\"}}]})(props);\n};\nexport function MdNightlightRound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 12c0-3.57 2.2-6.62 5.31-7.87.89-.36.75-1.69-.19-1.9-1.1-.24-2.27-.3-3.48-.14-4.51.6-8.12 4.31-8.59 8.83C4.44 16.93 9.13 22 15.01 22c.73 0 1.43-.08 2.12-.23.95-.21 1.1-1.53.2-1.9A8.46 8.46 0 0112.01 12z\"}}]})(props);\n};\nexport function MdNoAccounts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.18 10.94c.2-.44.32-.92.32-1.44C15.5 7.57 13.93 6 12 6c-.52 0-1 .12-1.44.32l4.62 4.62z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 13c-2.32 0-4.45.8-6.14 2.12A7.957 7.957 0 014 12c0-1.85.63-3.55 1.69-4.9l2.86 2.86a3.47 3.47 0 002.99 2.99l2.2 2.2c-.57-.1-1.15-.15-1.74-.15zm6.31 1.9L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.54-1.69 4.9z\"}}]})(props);\n};\nexport function MdNotAccessible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11.05l-3.42-3.42c.32-.34.74-.57 1.23-.61.48-.04.84.07 1.2.26.19.1.39.22.63.46l1.29 1.43c.98 1.08 2.53 1.85 4.07 1.83v2c-1.75-.01-3.71-.88-5-1.95zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2.81 2.81L1.39 4.22 10 12.83V15c0 1.1.9 2 2 2h2.17l5.61 5.61 1.41-1.41L2.81 2.81zM10 20c-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1a5 5 0 105.9 5.9h-2.07c-.41 1.16-1.52 2-2.83 2z\"}}]})(props);\n};\nexport function MdNotStarted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm1 0V8l5 4-5 4z\"}}]})(props);\n};\nexport function MdNoteAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z\"}}]})(props);\n};\nexport function MdOfflineBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.02c-5.51 0-9.98 4.47-9.98 9.98s4.47 9.98 9.98 9.98 9.98-4.47 9.98-9.98S17.51 2.02 12 2.02zM11.48 20v-6.26H8L13 4v6.26h3.35L11.48 20z\"}}]})(props);\n};\nexport function MdOfflinePin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm5 16H7v-2h10v2zm-6.7-4L7 10.7l1.4-1.4 1.9 1.9 5.3-5.3L17 7.3 10.3 14z\"}}]})(props);\n};\nexport function MdOnlinePrediction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 11.5c0 2-2.5 3.5-2.5 5h-2c0-1.5-2.5-3-2.5-5C8.5 9.57 10.07 8 12 8s3.5 1.57 3.5 3.5zm-2.5 6h-2V19h2v-1.5zm9-5.5c0-2.76-1.12-5.26-2.93-7.07l-1.06 1.06A8.481 8.481 0 0120.5 12c0 2.34-.95 4.47-2.49 6.01l1.06 1.06A9.969 9.969 0 0022 12zM3.5 12c0-2.34.95-4.47 2.49-6.01L4.93 4.93A9.969 9.969 0 002 12c0 2.76 1.12 5.26 2.93 7.07l1.06-1.06A8.481 8.481 0 013.5 12zm14 0c0 1.52-.62 2.89-1.61 3.89l1.06 1.06A6.976 6.976 0 0019 12c0-1.93-.78-3.68-2.05-4.95l-1.06 1.06c.99 1 1.61 2.37 1.61 3.89zM7.05 16.95l1.06-1.06c-1-1-1.61-2.37-1.61-3.89s.62-2.89 1.61-3.89L7.05 7.05A6.976 6.976 0 005 12c0 1.93.78 3.68 2.05 4.95z\"}}]})(props);\n};\nexport function MdOpacity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 0H0v24h24V0zm0 0H0v24h24V0zM0 24h24V0H0v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.66 8L12 2.35 6.34 8A8.02 8.02 0 004 13.64c0 2 .78 4.11 2.34 5.67a7.99 7.99 0 0011.32 0c1.56-1.56 2.34-3.67 2.34-5.67S19.22 9.56 17.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14H6z\"}}]})(props);\n};\nexport function MdOpenInBrowser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6a2 2 0 00-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z\"}}]})(props);\n};\nexport function MdOpenInFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11V3h-8l3.29 3.29-10 10L3 13v8h8l-3.29-3.29 10-10z\"}}]})(props);\n};\nexport function MdOpenInNewOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.79 5.8L14 3h7v7l-2.79-2.8-4.09 4.09-1.41-1.41 4.08-4.08zM19 12v4.17l2 2V12h-2zm.78 10.61L18.17 21H5a2 2 0 01-2-2V5.83L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM16.17 19l-4.88-4.88-1.59 1.59-1.41-1.41 1.59-1.59L5 7.83V19h11.17zM7.83 5H12V3H5.83l2 2z\"}}]})(props);\n};\nexport function MdOpenInNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19H5V5h7V3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"}}]})(props);\n};\nexport function MdOpenWith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\"}}]})(props);\n};\nexport function MdOutbond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.88 9.54L8.92 16.5l-1.41-1.41 4.96-4.96L10.34 8l5.65.01.01 5.65-2.12-2.12z\"}}]})(props);\n};\nexport function MdOutbound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.88 9.54L8.92 16.5l-1.41-1.41 4.96-4.96L10.34 8l5.65.01.01 5.65-2.12-2.12z\"}}]})(props);\n};\nexport function MdOutbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zM8 11h2v3h4v-3h2l-4-4-4 4z\"}}]})(props);\n};\nexport function MdOutgoingMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 11c.17 0 .34.01.5.03V6.87C19 5.84 18.16 5 17.13 5H3.87C2.84 5 2 5.84 2 6.87v10.26C2 18.16 2.84 19 3.87 19h9.73c-.38-.75-.6-1.6-.6-2.5 0-3.04 2.46-5.5 5.5-5.5zm-8.1 2L4 9.19V7h.23l6.18 3.68L16.74 7H17v2.16L10.4 13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13l-1.41 1.41L19.17 16H15v2h4.17l-1.58 1.59L19 21l4-4z\"}}]})(props);\n};\nexport function MdOutlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM9 12c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v3c0 .55-.45 1-1 1zm5 6h-4v-2c0-1.1.9-2 2-2s2 .9 2 2v2zm2-7c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v3z\"}}]})(props);\n};\nexport function MdPageview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 9a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3.21 14.21l-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9-1.42 1.42z\"}}]})(props);\n};\nexport function MdPaid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm.88 15.76V19h-1.75v-1.29c-.74-.18-2.39-.77-3.02-2.96l1.65-.67c.06.22.58 2.09 2.4 2.09.93 0 1.98-.48 1.98-1.61 0-.96-.7-1.46-2.28-2.03-1.1-.39-3.35-1.03-3.35-3.31 0-.1.01-2.4 2.62-2.96V5h1.75v1.24c1.84.32 2.51 1.79 2.66 2.23l-1.58.67c-.11-.35-.59-1.34-1.9-1.34-.7 0-1.81.37-1.81 1.39 0 .95.86 1.31 2.64 1.9 2.4.83 3.01 2.05 3.01 3.45 0 2.63-2.5 3.13-3.02 3.22z\"}}]})(props);\n};\nexport function MdPanTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdPayment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z\"}}]})(props);\n};\nexport function MdPendingActions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11a6.743 6.743 0 01-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdPending (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdPermCameraMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v-2.09c-2.83-.48-5-2.94-5-5.91h2c0 2.21 1.79 4 4 4s4-1.79 4-4h2c0 2.97-2.17 5.43-5 5.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9 2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z\"}}]})(props);\n};\nexport function MdPermContactCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-1V1h-2v2H8V1H6v2H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z\"}}]})(props);\n};\nexport function MdPermDataSetting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 20h11.56c-.04-.33-.07-.66-.07-1 0-4.14 3.36-7.5 7.5-7.5zm3.71 7.99c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83a.26.26 0 00.06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83a3.908 3.908 0 000 .98l-1.06.83a.26.26 0 00-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73a.26.26 0 00-.06-.32l-1.07-.83zm-3.71 1.01c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdPermDeviceInformation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"}}]})(props);\n};\nexport function MdPermIdentity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.9a2.1 2.1 0 110 4.2 2.1 2.1 0 010-4.2m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdPermMedia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-6 3.5 4.51 2.5-3.01L21 15H7z\"}}]})(props);\n};\nexport function MdPermPhoneMsg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.074 15.074 0 01-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM12 3v10l3-3h6V3h-9z\"}}]})(props);\n};\nexport function MdPermScanWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z\"}}]})(props);\n};\nexport function MdPets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4.5\",\"cy\":\"9.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"5.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"5.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.5\",\"cy\":\"9.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z\"}}]})(props);\n};\nexport function MdPictureInPictureAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 11h-8v6h8v-6zm4 8V4.98C23 3.88 22.1 3 21 3H3c-1.1 0-2 .88-2 1.98V19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 .02H3V4.97h18v14.05z\"}}]})(props);\n};\nexport function MdPictureInPicture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z\"}}]})(props);\n};\nexport function MdPinEnd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12V6H4v12h10v2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2v6h-2zm-1 2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm-4.34-6H9v5.66l2.12-2.12 2.83 2.83 1.41-1.41-2.83-2.83L14.66 8z\"}}]})(props);\n};\nexport function MdPinInvoke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10v2H4v12h16v-6h2zm0-5c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm-10.53 5.12l-2.83 2.83 1.41 1.41 2.83-2.83L15 15.66V10H9.34l2.13 2.12z\"}}]})(props);\n};\nexport function MdPlagiarism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm1.04 17.45l-1.88-1.88c-1.33.71-3.01.53-4.13-.59a3.495 3.495 0 010-4.95 3.495 3.495 0 014.95 0 3.48 3.48 0 01.59 4.13l1.88 1.88-1.41 1.41zM13 9V3.5L18.5 9H13z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdPlayForWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z\"}}]})(props);\n};\nexport function MdPolymer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15 20h4l4.5-8z\"}}]})(props);\n};\nexport function MdPowerSettingsNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3h-2v10h2V3zm4.83 2.17l-1.42 1.42A6.92 6.92 0 0119 12c0 3.87-3.13 7-7 7A6.995 6.995 0 017.58 6.58L6.17 5.17A8.932 8.932 0 003 12a9 9 0 0018 0c0-2.74-1.23-5.18-3.17-6.83z\"}}]})(props);\n};\nexport function MdPregnantWoman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9a3.285 3.285 0 00-2-3c0-1.66-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z\"}}]})(props);\n};\nexport function MdPreview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 16H5V7h14v12zm-5.5-6c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5zM12 9c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4zm0 6.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\"}}]})(props);\n};\nexport function MdPrivacyTip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-1 6h2v2h-2V7zm0 4h2v6h-2v-6z\"}}]})(props);\n};\nexport function MdPrivateConnectivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.93 11c-.49-3.39-3.4-6-6.93-6s-6.44 2.61-6.93 6H2v2h3.07c.49 3.39 3.4 6 6.93 6s6.44-2.61 6.93-6H22v-2h-3.07zM15 14.5c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1v-1a2 2 0 012.34-1.97c.98.16 1.66 1.08 1.66 2.08v.89c.55 0 1 .45 1 1v3zM12.75 13c0 .41-.34.75-.75.75s-.75-.34-.75-.75.34-.75.75-.75.75.34.75.75zM13 9.5v1h-2v-1c0-.55.45-1 1-1s1 .45 1 1z\"}}]})(props);\n};\nexport function MdProductionQuantityLimits (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10h-2V8h2v2zm0-4h-2V1h2v5zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-8.9-5h7.45c.75 0 1.41-.41 1.75-1.03L21 4.96 19.25 4l-3.7 7H8.53L4.27 2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2z\"}}]})(props);\n};\nexport function MdPublishedWithChanges (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.66 9.53l-7.07 7.07-4.24-4.24 1.41-1.41 2.83 2.83 5.66-5.66 1.41 1.41zM4 12c0-2.33 1.02-4.42 2.62-5.88L9 8.5v-6H3l2.2 2.2C3.24 6.52 2 9.11 2 12c0 5.19 3.95 9.45 9 9.95v-2.02c-3.94-.49-7-3.86-7-7.93zm18 0c0-5.19-3.95-9.45-9-9.95v2.02c3.94.49 7 3.86 7 7.93 0 2.33-1.02 4.42-2.62 5.88L15 15.5v6h6l-2.2-2.2c1.96-1.82 3.2-4.41 3.2-7.3z\"}}]})(props);\n};\nexport function MdQueryBuilder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"}}]})(props);\n};\nexport function MdQuestionAnswer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z\"}}]})(props);\n};\nexport function MdQuickreply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h9v-8h7V4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.5 16h-2.2l1.7-4h-5v6h2v5z\"}}]})(props);\n};\nexport function MdReceipt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z\"}}]})(props);\n};\nexport function MdRecordVoiceOver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"9\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64l-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z\"}}]})(props);\n};\nexport function MdRedeem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 00-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z\"}}]})(props);\n};\nexport function MdRemoveDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.79 12l5.58 5.59L5.96 19 .37 13.41 1.79 12zm.45-7.78L12.9 14.89l-1.28 1.28L7.44 12l-1.41 1.41L11.62 19l2.69-2.69 4.89 4.89 1.41-1.41L3.65 2.81 2.24 4.22zm14.9 9.27L23.62 7 22.2 5.59l-6.48 6.48 1.42 1.42zM17.96 7l-1.41-1.41-3.65 3.66 1.41 1.41L17.96 7z\"}}]})(props);\n};\nexport function MdRemoveShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.73 22.73L2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38A1.997 1.997 0 0017 22c.67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0020 4H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdReorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z\"}}]})(props);\n};\nexport function MdReportProblem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdRequestPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm1 9h-4v1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1h-1v1h-2v-1H9v-2h4v-1h-3c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1h1V8h2v1h2v2z\"}}]})(props);\n};\nexport function MdRestoreFromTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-3.5l-1-1h-5l-1 1H5v2h14zM6 7v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zm8 7v4h-4v-4H8l4-4 4 4h-2z\"}}]})(props);\n};\nexport function MdRestorePage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm-2 16c-2.05 0-3.81-1.24-4.58-3h1.71c.63.9 1.68 1.5 2.87 1.5 1.93 0 3.5-1.57 3.5-3.5S13.93 9.5 12 9.5a3.5 3.5 0 00-3.1 1.9l1.6 1.6h-4V9l1.3 1.3C8.69 8.92 10.23 8 12 8c2.76 0 5 2.24 5 5s-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3a9 9 0 00-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0013 21a9 9 0 000-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\"}}]})(props);\n};\nexport function MdRoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdRoundedCorner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19h2v2h-2v-2zm0-2h2v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8 16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z\"}}]})(props);\n};\nexport function MdRowing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 14.5L4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.35-.39.99-.73 1.65-.73h.03C15.99 6.01 17 7.02 17 8.26v5.75c0 .84-.35 1.61-.92 2.16l-3.58-3.58v-2.27c-.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z\"}}]})(props);\n};\nexport function MdRule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.54 11L13 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L16.54 11zM11 7H2v2h9V7zm10 6.41L19.59 12 17 14.59 14.41 12 13 13.41 15.59 16 13 18.59 14.41 20 17 17.41 19.59 20 21 18.59 18.41 16 21 13.41zM11 15H2v2h9v-2z\"}}]})(props);\n};\nexport function MdSavedSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm-2.17-1.5l2.14-1.53 2.14 1.53-.83-2.46 2.15-1.5h-2.62L9.47 6l-.84 2.54H6l2.14 1.49z\"}}]})(props);\n};\nexport function MdSavings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.83 7.5l-2.27-2.27c.07-.42.18-.81.32-1.15A1.498 1.498 0 0016.5 2c-1.64 0-3.09.79-4 2h-5C4.46 4 2 6.46 2 9.5S4.5 21 4.5 21H10v-2h2v2h5.5l1.68-5.59 2.82-.94V7.5h-2.17zM13 9H8V7h5v2zm3 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdScheduleSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 12.5H15v4l3 2 .75-1.23-2.25-1.52V12.5zM16 9L2 3v7l9 2-9 2v7l7.27-3.11C10.09 20.83 12.79 23 16 23c3.86 0 7-3.14 7-7s-3.14-7-7-7zm0 12c-2.75 0-4.98-2.22-5-4.97v-.07a5.008 5.008 0 015-4.97c2.76 0 5 2.24 5 5S18.76 21 16 21z\"}}]})(props);\n};\nexport function MdSchedule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"}}]})(props);\n};\nexport function MdSearchOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 009.5 3C6.08 3 3.28 5.64 3.03 9h2.02C5.3 6.75 7.18 5 9.5 5 11.99 5 14 7.01 14 9.5S11.99 14 9.5 14c-.17 0-.33-.03-.5-.05v2.02c.17.02.33.03.5.03 1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.47 10.82L4 13.29l-2.47-2.47-.71.71L3.29 14 .82 16.47l.71.71L4 14.71l2.47 2.47.71-.71L4.71 14l2.47-2.47z\"}}]})(props);\n};\nexport function MdSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"}}]})(props);\n};\nexport function MdSegment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18h12v-2H9v2zM3 6v2h18V6H3zm6 7h12v-2H9v2z\"}}]})(props);\n};\nexport function MdSendAndArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10h-3L2 3v7l9 2-9 2v7l8-3.5V21c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm0 11h-9v-9h9v9zm-4.5-1L13 16h2v-3h3v3h2l-3.5 4z\"}}]})(props);\n};\nexport function MdSensorsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.14 10.96c-.09.33-.14.68-.14 1.04 0 1.1.45 2.1 1.17 2.83l-1.42 1.42A6.018 6.018 0 016 12c0-.93.21-1.8.58-2.59L5.11 7.94A7.897 7.897 0 004 12c0 2.21.9 4.21 2.35 5.65l-1.42 1.42A9.969 9.969 0 012 12c0-2.04.61-3.93 1.66-5.51L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41L8.14 10.96zm9.28 3.63c.37-.79.58-1.66.58-2.59 0-1.66-.67-3.16-1.76-4.24l-1.42 1.42a3.951 3.951 0 011.04 3.86l1.56 1.55zM20 12c0 1.48-.4 2.87-1.11 4.06l1.45 1.45A9.91 9.91 0 0022 12c0-2.76-1.12-5.26-2.93-7.07l-1.42 1.42A7.94 7.94 0 0120 12z\"}}]})(props);\n};\nexport function MdSensors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.76 16.24C6.67 15.16 6 13.66 6 12s.67-3.16 1.76-4.24l1.42 1.42C8.45 9.9 8 10.9 8 12c0 1.1.45 2.1 1.17 2.83l-1.41 1.41zm8.48 0C17.33 15.16 18 13.66 18 12s-.67-3.16-1.76-4.24l-1.42 1.42C15.55 9.9 16 10.9 16 12c0 1.1-.45 2.1-1.17 2.83l1.41 1.41zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8 2c0 2.21-.9 4.21-2.35 5.65l1.42 1.42C20.88 17.26 22 14.76 22 12s-1.12-5.26-2.93-7.07l-1.42 1.42A7.94 7.94 0 0120 12zM6.35 6.35L4.93 4.93C3.12 6.74 2 9.24 2 12s1.12 5.26 2.93 7.07l1.42-1.42C4.9 16.21 4 14.21 4 12s.9-4.21 2.35-5.65z\"}}]})(props);\n};\nexport function MdSettingsAccessibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 4c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 6c1.86.5 4 .83 6 1v12h2v-6h2v6h2V7c2-.17 4.14-.5 6-1l-.5-2zM12 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdSettingsApplications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42a.353.353 0 01.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16a.353.353 0 01-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z\"}}]})(props);\n};\nexport function MdSettingsBackupRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9a9 9 0 00-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7a6.995 6.995 0 01-11.06 5.7l-1.42 1.44A9 9 0 1012 3z\"}}]})(props);\n};\nexport function MdSettingsBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 24h2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 10.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88 1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdSettingsBrightness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3V9z\"}}]})(props);\n};\nexport function MdSettingsCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z\"}}]})(props);\n};\nexport function MdSettingsEthernet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z\"}}]})(props);\n};\nexport function MdSettingsInputAntenna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29a2.5 2.5 0 00-5 0c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2a9 9 0 0118 0h2c0-6.07-4.93-11-11-11z\"}}]})(props);\n};\nexport function MdSettingsInputComponent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z\"}}]})(props);\n};\nexport function MdSettingsInputComposite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z\"}}]})(props);\n};\nexport function MdSettingsInputHdmi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z\"}}]})(props);\n};\nexport function MdSettingsInputSvideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.67 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67 18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdSettingsOverscan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 5.5L10 8h4l-1.99-2.5zM18 10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\"}}]})(props);\n};\nexport function MdSettingsPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 9h-2v2h2V9zm4 0h-2v2h2V9zm3 6.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.074 15.074 0 01-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 9v2h2V9h-2z\"}}]})(props);\n};\nexport function MdSettingsPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45A5.969 5.969 0 0118 11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44A7.961 7.961 0 004 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdSettingsRemote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM7.05 6.05l1.41 1.41a5.022 5.022 0 017.08 0l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0z\"}}]})(props);\n};\nexport function MdSettingsVoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 24h2v-2H7v2zm5-11c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3zm-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z\"}}]})(props);\n};\nexport function MdSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 00.12-.61l-1.92-3.32a.488.488 0 00-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 00-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 00-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\"}}]})(props);\n};\nexport function MdShop2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9H1v11c0 1.11.89 2 2 2h16v-2H3V9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3.5L12 15z\"}}]})(props);\n};\nexport function MdShopTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z\"}}]})(props);\n};\nexport function MdShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z\"}}]})(props);\n};\nexport function MdShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6h-2c0-2.21-1.79-4-4-4S8 3.79 8 6H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-8 4c0 .55-.45 1-1 1s-1-.45-1-1V8h2v2zm2-6c1.1 0 2 .9 2 2h-4c0-1.1.9-2 2-2zm4 6c0 .55-.45 1-1 1s-1-.45-1-1V8h2v2z\"}}]})(props);\n};\nexport function MdShoppingBasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.21 9l-4.38-6.56a.993.993 0 00-.83-.42c-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0020 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdSmartButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9v6c0 1.1-.9 2-2 2h-1v-2h1V9H4v6h6v2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-7.5 10l1.09-2.41L18 15.5l-2.41-1.09L14.5 12l-1.09 2.41L11 15.5l2.41 1.09L14.5 19zm2.5-5l.62-1.38L19 12l-1.38-.62L17 10l-.62 1.38L15 12l1.38.62L17 14zm-2.5 5l1.09-2.41L18 15.5l-2.41-1.09L14.5 12l-1.09 2.41L11 15.5l2.41 1.09L14.5 19zm2.5-5l.62-1.38L19 12l-1.38-.62L17 10l-.62 1.38L15 12l1.38.62L17 14z\"}}]})(props);\n};\nexport function MdSource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 10H6v-2h8v2zm4-4H6v-2h12v2z\"}}]})(props);\n};\nexport function MdSpaceDashboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 21H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h6v18zm2 0h6c1.1 0 2-.9 2-2v-7h-8v9zm8-11V5c0-1.1-.9-2-2-2h-6v7h8z\"}}]})(props);\n};\nexport function MdSpeakerNotesOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.54 11l-.54-.54L7.54 8 6 6.46 2.38 2.84 1.27 1.73 0 3l2.01 2.01L2 22l4-4h9l5.73 5.73L22 22.46 17.54 18l-7-7zM8 14H6v-2h2v2zm-2-3V9l2 2H6zm14-9H4.08L10 7.92V6h8v2h-7.92l1 1H18v2h-4.92l6.99 6.99C21.14 17.95 22 17.08 22 16V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdSpeakerNotes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z\"}}]})(props);\n};\nexport function MdSpellcheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z\"}}]})(props);\n};\nexport function MdStarRate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.43 10L12 2l-2.43 8H2l6.18 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10z\"}}]})(props);\n};\nexport function MdStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z\"}}]})(props);\n};\nexport function MdStickyNote2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H4.99C3.89 3 3 3.9 3 5l.01 14c0 1.1.89 2 1.99 2h10l6-6V5c0-1.1-.9-2-2-2zM7 8h10v2H7V8zm5 6H7v-2h5v2zm2 5.5V14h5.5L14 19.5z\"}}]})(props);\n};\nexport function MdStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z\"}}]})(props);\n};\nexport function MdSubject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z\"}}]})(props);\n};\nexport function MdSubtitlesOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H6.83l8 8H20v2h-3.17l4.93 4.93c.15-.28.24-.59.24-.93V6c0-1.1-.9-2-2-2zM1.04 3.87l1.2 1.2C2.09 5.35 2 5.66 2 6v12c0 1.1.9 2 2 2h13.17l2.96 2.96 1.41-1.41L2.45 2.45 1.04 3.87zM8 12v2H4v-2h4zm6 4.83V18H4v-2h9.17l.83.83z\"}}]})(props);\n};\nexport function MdSupervisedUserCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm3.61 6.34c1.07 0 1.93.86 1.93 1.93 0 1.07-.86 1.93-1.93 1.93-1.07 0-1.93-.86-1.93-1.93-.01-1.07.86-1.93 1.93-1.93zm-6-1.58c1.3 0 2.36 1.06 2.36 2.36 0 1.3-1.06 2.36-2.36 2.36s-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36zm0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68zM11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09z\"}}]})(props);\n};\nexport function MdSupervisorAccount (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7a2.5 2.5 0 000 5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z\"}}]})(props);\n};\nexport function MdSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm7.46 7.12l-2.78 1.15a4.982 4.982 0 00-2.95-2.94l1.15-2.78c2.1.8 3.77 2.47 4.58 4.57zM12 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zM9.13 4.54l1.17 2.78a5 5 0 00-2.98 2.97L4.54 9.13a7.984 7.984 0 014.59-4.59zM4.54 14.87l2.78-1.15a4.968 4.968 0 002.97 2.96l-1.17 2.78a7.996 7.996 0 01-4.58-4.59zm10.34 4.59l-1.15-2.78a4.978 4.978 0 002.95-2.97l2.78 1.17a8.007 8.007 0 01-4.58 4.58z\"}}]})(props);\n};\nexport function MdSwapHoriz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z\"}}]})(props);\n};\nexport function MdSwapHorizontalCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10 10-4.48 10-10zm-7-5.5l3.5 3.5-3.5 3.5V11h-4V9h4V6.5zm-6 11L5.5 14 9 10.5V13h4v2H9v2.5z\"}}]})(props);\n};\nexport function MdSwapVert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z\"}}]})(props);\n};\nexport function MdSwapVerticalCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM6.5 9L10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4h2v4h2.5z\"}}]})(props);\n};\nexport function MdSwipe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.89 14.75l-4.09-2.04c-.28-.14-.58-.21-.89-.21H13v-6c0-.83-.67-1.5-1.5-1.5S10 5.67 10 6.5v10.74l-3.25-.74a.99.99 0 00-.92.28l-.83.84 4.54 4.79c.38.38 1.14.59 1.67.59h6.16c1 0 1.84-.73 1.98-1.72l.63-4.46c.12-.85-.32-1.68-1.09-2.07z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.13 3.87C18.69 2.17 15.6 1 12 1S5.31 2.17 3.87 3.87L2 2v5h5L4.93 4.93c1-1.29 3.7-2.43 7.07-2.43s6.07 1.14 7.07 2.43L17 7h5V2l-1.87 1.87z\"}}]})(props);\n};\nexport function MdSyncAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8l-4-4v3H3v2h15v3l4-4zM2 16l4 4v-3h15v-2H6v-3l-4 4z\"}}]})(props);\n};\nexport function MdSystemUpdateAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 .5h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdTabUnselected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdTab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z\"}}]})(props);\n};\nexport function MdTableView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7H9c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 2v2H9V9h10zm-6 6v-2h2v2h-2zm2 2v2h-2v-2h2zm-4-2H9v-2h2v2zm6-2h2v2h-2v-2zm-8 4h2v2H9v-2zm8 2v-2h2v2h-2zM6 17H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v1h-2V5H5v10h1v2z\"}}]})(props);\n};\nexport function MdTaskAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.18L10.59 16.6l-4.24-4.24 1.41-1.41 2.83 2.83 10-10L22 5.18zm-2.21 5.04c.13.57.21 1.17.21 1.78 0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c1.58 0 3.04.46 4.28 1.25l1.44-1.44A9.9 9.9 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-1.19-.22-2.33-.6-3.39l-1.61 1.61z\"}}]})(props);\n};\nexport function MdTextRotateUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12v1.5l11 4.75v-2.1l-2.2-.9v-5l2.2-.9v-2.1L3 12zm7 2.62l-5.02-1.87L10 10.88v3.74zm8-10.37l-3 3h2v12.5h2V7.25h2l-3-3z\"}}]})(props);\n};\nexport function MdTextRotateVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.75 5h-1.5L9.5 16h2.1l.9-2.2h5l.9 2.2h2.1L15.75 5zm-2.62 7L15 6.98 16.87 12h-3.74zM6 19.75l3-3H7V4.25H5v12.5H3l3 3z\"}}]})(props);\n};\nexport function MdTextRotationAngledown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 4.91l-1.06-1.06L7.2 8.27l1.48 1.48 2.19-.92 3.54 3.54-.92 2.19 1.48 1.48L19.4 4.91zm-6.81 3.1l4.87-2.23-2.23 4.87-2.64-2.64zM14.27 21v-4.24l-1.41 1.41-8.84-8.84-1.42 1.42 8.84 8.84L10.03 21h4.24z\"}}]})(props);\n};\nexport function MdTextRotationAngleup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.49 4.21L3.43 5.27 7.85 16.4l1.48-1.48-.92-2.19 3.54-3.54 2.19.92 1.48-1.48L4.49 4.21zm3.09 6.8L5.36 6.14l4.87 2.23-2.65 2.64zm12.99-1.68h-4.24l1.41 1.41-8.84 8.84L10.32 21l8.84-8.84 1.41 1.41V9.33z\"}}]})(props);\n};\nexport function MdTextRotationDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v-1.5L10 5.75v2.1l2.2.9v5l-2.2.9v2.1L21 12zm-7-2.62l5.02 1.87L14 13.12V9.38zM6 19.75l3-3H7V4.25H5v12.5H3l3 3z\"}}]})(props);\n};\nexport function MdTextRotationNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.75 3h-1.5L6.5 14h2.1l.9-2.2h5l.9 2.2h2.1L12.75 3zm-2.62 7L12 4.98 13.87 10h-3.74zm10.37 8l-3-3v2H5v2h12.5v2l3-3z\"}}]})(props);\n};\nexport function MdTheaters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z\"}}]})(props);\n};\nexport function MdThumbDownOffAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.89 18.28l.57-2.89c.12-.59-.04-1.2-.42-1.66-.38-.46-.94-.73-1.54-.73H4v-1.08L6.57 6h8.09c.18 0 .34.16.34.34v7.84l-4.11 4.1M10 22l6.41-6.41c.38-.38.59-.89.59-1.42V6.34C17 5.05 15.95 4 14.66 4h-8.1c-.71 0-1.36.37-1.72.97l-2.67 6.15c-.11.25-.17.52-.17.8V13c0 1.1.9 2 2 2h5.5l-.92 4.65c-.05.22-.02.46.08.66.23.45.52.86.88 1.22L10 22zm10-7h2V4h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1z\"}}]})(props);\n};\nexport function MdThumbDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z\"}}]})(props);\n};\nexport function MdThumbUpOffAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.11 5.72l-.57 2.89c-.12.59.04 1.2.42 1.66.38.46.94.73 1.54.73H20v1.08L17.43 18H9.34a.35.35 0 01-.34-.34V9.82l4.11-4.1M14 2L7.59 8.41C7.21 8.79 7 9.3 7 9.83v7.83C7 18.95 8.05 20 9.34 20h8.1c.71 0 1.36-.37 1.72-.97l2.67-6.15c.11-.25.17-.52.17-.8V11c0-1.1-.9-2-2-2h-5.5l.92-4.65c.05-.22.02-.46-.08-.66a4.8 4.8 0 00-.88-1.22L14 2zM4 9H2v11h2c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdThumbUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2z\"}}]})(props);\n};\nexport function MdThumbsUpDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17 5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55V18c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdTimeline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 8c0 1.1-.9 2-2 2a1.7 1.7 0 01-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56A1.7 1.7 0 0119 8c0-1.1.9-2 2-2s2 .9 2 2z\"}}]})(props);\n};\nexport function MdTipsAndUpdates (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm-2-1h8v-2H5v2zm11.5-9.5c0 3.82-2.66 5.86-3.77 6.5H5.27c-1.11-.64-3.77-2.68-3.77-6.5C1.5 5.36 4.86 2 9 2s7.5 3.36 7.5 7.5zm4.87-2.13L20 8l1.37.63L22 10l.63-1.37L24 8l-1.37-.63L22 6l-.63 1.37zM19 6l.94-2.06L22 3l-2.06-.94L19 0l-.94 2.06L16 3l2.06.94L19 6z\"}}]})(props);\n};\nexport function MdToc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdToday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"}}]})(props);\n};\nexport function MdToll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zM3 12a5.99 5.99 0 014-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6 7.74v-2.09A5.99 5.99 0 013 12z\"}}]})(props);\n};\nexport function MdTouchApp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11.24V7.5a2.5 2.5 0 015 0v3.74c1.21-.81 2-2.18 2-3.74C16 5.01 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74zm9.84 4.63l-4.54-2.26c-.17-.07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74c-3.6-.76-3.54-.75-3.67-.75-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-1.38z\"}}]})(props);\n};\nexport function MdTour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H7V2H5v20h2v-8h14l-2-5 2-5zm-6 5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z\"}}]})(props);\n};\nexport function MdTrackChanges (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93l-1.41 1.41A8.014 8.014 0 0120 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z\"}}]})(props);\n};\nexport function MdTranslate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.87 15.07l-2.54-2.51.03-.03A17.52 17.52 0 0014.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z\"}}]})(props);\n};\nexport function MdTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18l2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z\"}}]})(props);\n};\nexport function MdTrendingFlat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12l-4-4v3H3v2h15v3z\"}}]})(props);\n};\nexport function MdTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z\"}}]})(props);\n};\nexport function MdTry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6.43 9.57L12 15l-1.57-3.43L7 10l3.43-1.57L12 5l1.57 3.43L17 10l-3.43 1.57z\"}}]})(props);\n};\nexport function MdTurnedInNot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z\"}}]})(props);\n};\nexport function MdTurnedIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdUnpublished (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22l2.27 2.27A9.91 9.91 0 002 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.42zm-10.6-4.59l-4.24-4.24 1.41-1.41 2.83 2.83.18-.18 1.41 1.41-1.59 1.59zm3-5.84l-7.1-7.1A9.91 9.91 0 0112 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51L15 12.17l2.65-2.65-1.41-1.41-2.65 2.65z\"}}]})(props);\n};\nexport function MdUpdateDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.67 5.84L7.22 4.39A8.86 8.86 0 0112 3c2.74 0 5.19 1.23 6.84 3.16L21 4v6h-6l2.41-2.41C16.12 6.02 14.18 5 12 5c-1.2 0-2.34.31-3.33.84zM13 7h-2v1.17l2 2V7zm6.78 15.61l-3-3A8.973 8.973 0 0112 21a9 9 0 01-9-9c0-1.76.51-3.4 1.39-4.78l-3-3L2.8 2.81l18.38 18.38-1.4 1.42zm-4.46-4.46L5.84 8.67A7.06 7.06 0 005 12c0 3.86 3.14 7 7 7 1.2 0 2.34-.31 3.32-.85zM20.94 13h-2.02c-.12.83-.39 1.61-.77 2.32l1.47 1.47c.7-1.12 1.17-2.41 1.32-3.79z\"}}]})(props);\n};\nexport function MdUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z\"}}]})(props);\n};\nexport function MdUpgrade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18v2H8v-2h8zM11 7.99V16h2V7.99h3L12 4 8 7.99h3z\"}}]})(props);\n};\nexport function MdVerifiedUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z\"}}]})(props);\n};\nexport function MdVerified (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12l-2.44-2.79.34-3.69-3.61-.82-1.89-3.2L12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 12l2.44 2.79-.34 3.7 3.61.82L8.6 22.5l3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69L23 12zm-12.91 4.72l-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48-7.33 7.35z\"}}]})(props);\n};\nexport function MdVerticalSplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 15h8v-2H3v2zm0 4h8v-2H3v2zm0-8h8V9H3v2zm0-6v2h8V5H3zm10 0h8v14h-8V5z\"}}]})(props);\n};\nexport function MdViewAgenda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm0-10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdViewArray (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5h-3v14h3V5zm-4 0H7v14h10V5zM6 5H3v14h3V5z\"}}]})(props);\n};\nexport function MdViewCarousel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7h4v10H2V7zm5 12h10V5H7v14zM18 7h4v10h-4V7z\"}}]})(props);\n};\nexport function MdViewColumn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"}}]})(props);\n};\nexport function MdViewDay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z\"}}]})(props);\n};\nexport function MdViewHeadline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"}}]})(props);\n};\nexport function MdViewInAr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.25 7.6l-5.5-3.18a1.49 1.49 0 00-1.5 0L5.75 7.6c-.46.27-.75.76-.75 1.3v6.35c0 .54.29 1.03.75 1.3l5.5 3.18c.46.27 1.04.27 1.5 0l5.5-3.18c.46-.27.75-.76.75-1.3V8.9c0-.54-.29-1.03-.75-1.3zM7 14.96v-4.62l4 2.32v4.61l-4-2.31zm5-4.03L8 8.61l4-2.31 4 2.31-4 2.32zm1 6.34v-4.61l4-2.32v4.62l-4 2.31zM7 2H3.5C2.67 2 2 2.67 2 3.5V7h2V4h3V2zm10 0h3.5c.83 0 1.5.67 1.5 1.5V7h-2V4h-3V2zM7 22H3.5c-.83 0-1.5-.67-1.5-1.5V17h2v3h3v2zm10 0h3.5c.83 0 1.5-.67 1.5-1.5V17h-2v3h-3v2z\"}}]})(props);\n};\nexport function MdViewList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14h4v-4H3v4zm0 5h4v-4H3v4zM3 9h4V5H3v4zm5 5h13v-4H8v4zm0 5h13v-4H8v4zM8 5v4h13V5H8z\"}}]})(props);\n};\nexport function MdViewModule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.67 5v6.5H9.33V5h5.34zm1 6.5H21V5h-5.33v6.5zm-1 7.5v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zm-7.34 0H3V19h5.33v-6.5zm0-1V5H3v6.5h5.33z\"}}]})(props);\n};\nexport function MdViewQuilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5v6.5H9.33V5H21zm-6.33 14v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zM8.33 19V5H3v14h5.33z\"}}]})(props);\n};\nexport function MdViewSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 20H2V4h14v16zm2-12h4V4h-4v4zm0 12h4v-4h-4v4zm0-6h4v-4h-4v4z\"}}]})(props);\n};\nexport function MdViewStream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17v-2c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v2c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2zM3 7v2c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2z\"}}]})(props);\n};\nexport function MdViewWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.33 20H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h1.33c1.1 0 2 .9 2 2v12a2 2 0 01-2 2zM22 18V6c0-1.1-.9-2-2-2h-1.33c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2H20a2 2 0 002-2zm-7.33 0V6c0-1.1-.9-2-2-2h-1.33c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h1.33c1.1 0 2-.9 2-2z\"}}]})(props);\n};\nexport function MdVisibilityOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 001 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"}}]})(props);\n};\nexport function MdVisibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdVoiceOverOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.99 9.18c0-.06.01-.12.01-.18 0-2.21-1.79-4-4-4-.06 0-.12.01-.18.01l4.17 4.17zm-6.1-3.56L4.27 3 3 4.27l2.62 2.62C5.23 7.5 5 8.22 5 9c0 2.21 1.79 4 4 4 .78 0 1.5-.23 2.11-.62L19.73 21 21 19.73l-8.62-8.62-5.49-5.49zM9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64l-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z\"}}]})(props);\n};\nexport function MdWatchLater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z\"}}]})(props);\n};\nexport function MdWifiProtectedSetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.71 5.29L19 3h-8v8l2.3-2.3c1.97 1.46 3.25 3.78 3.25 6.42 0 1.31-.32 2.54-.88 3.63 2.33-1.52 3.88-4.14 3.88-7.13 0-2.52-1.11-4.77-2.84-6.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.46 8.88c0-1.31.32-2.54.88-3.63a8.479 8.479 0 00-3.88 7.13c0 2.52 1.1 4.77 2.84 6.33L5 21h8v-8l-2.3 2.3c-1.96-1.46-3.24-3.78-3.24-6.42z\"}}]})(props);\n};\nexport function MdWorkOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21.74l-1.46-1.46L7.21 5.95 3.25 1.99 1.99 3.25l2.7 2.7h-.64c-1.11 0-1.99.89-1.99 2l-.01 11c0 1.11.89 2 2 2h15.64L21.74 23 23 21.74zM22 7.95c.05-1.11-.84-2-1.95-1.95h-4V3.95c0-1.11-.89-2-2-1.95h-4c-1.11-.05-2 .84-2 1.95v.32l13.95 14V7.95zM14.05 6H10V3.95h4.05V6z\"}}]})(props);\n};\nexport function MdWorkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M14 6V4h-4v2h4zM4 8v11h16V8H4zm16-2c1.11 0 2 .89 2 2v11c0 1.11-.89 2-2 2H4c-1.11 0-2-.89-2-2l.01-11c0-1.11.88-2 1.99-2h4V4c0-1.11.89-2 2-2h4c1.11 0 2 .89 2 2v2h4z\"}}]})(props);\n};\nexport function MdWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z\"}}]})(props);\n};\nexport function MdWysiwyg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 16H5V7h14v12zm-2-7H7v-2h10v2zm-4 4H7v-2h6v2z\"}}]})(props);\n};\nexport function MdYoutubeSearchedFor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.01 14h-.8l-.27-.27a6.451 6.451 0 001.57-4.23c0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51a4.5 4.5 0 019 0 4.507 4.507 0 01-6.32 4.12L7.71 15.1a6.474 6.474 0 007.52-.67l.27.27v.79l5.01 4.99L22 19l-4.99-5z\"}}]})(props);\n};\nexport function MdZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\"}}]})(props);\n};\nexport function MdZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\"}}]})(props);\n};\nexport function MdAddAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2s-1.59.71-1.59 1.59v.72A6.873 6.873 0 005.12 11v5.82L3 18.94V20h18v-1.06l-2.12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z\"}}]})(props);\n};\nexport function MdAutoDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2h-3.5l-1-1h-5l-1 1H1v2h14zM16 9c-.7 0-1.37.1-2 .29V5H2v12c0 1.1.9 2 2 2h5.68A6.999 6.999 0 0023 16c0-3.87-3.13-7-7-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 12H15v5l3.6 2.1.8-1.2-2.9-1.7z\"}}]})(props);\n};\nexport function MdErrorOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"}}]})(props);\n};\nexport function MdNotificationImportant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-5 0h-2v-2h2v2zm0-4h-2V8h2v4zm-1 10c1.1 0 2-.9 2-2h-4a2 2 0 002 2z\"}}]})(props);\n};\nexport function MdWarningAmber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 16h-2v2h2zM13 10h-2v5h2z\"}}]})(props);\n};\nexport function MdWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"}}]})(props);\n};\nexport function Md10K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10.5h1.5v3H10zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 15H6v-4.5H4.5V9h3v6zm5.5-1c0 .55-.45 1-1 1H9.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H12c.55 0 1 .45 1 1v4zm6.5 1h-1.75L16 12.75V15h-1.5V9H16v2.25L17.75 9h1.75l-2.25 3 2.25 3z\"}}]})(props);\n};\nexport function Md1KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 15H7.5v-4.5H6V9h3v6zm4.75 0L12 12.75V15h-1.5V9H12v2.25L13.75 9h1.75l-2.25 3 2.25 3h-1.75zm5.75-2.5H18V14h-1v-1.5h-1.5v-1H17V10h1v1.5h1.5v1z\"}}]})(props);\n};\nexport function Md1K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8.5 12H9v-4.5H7.5V9h3v6zm7 0h-1.75L14 12.75V15h-1.5V9H14v2.25L15.75 9h1.75l-2.25 3 2.25 3z\"}}]})(props);\n};\nexport function Md2KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9.5 8.5c0 .55-.45 1-1 1h-2v1h3V15H5v-2.5c0-.55.45-1 1-1h2v-1H5V9h3.5c.55 0 1 .45 1 1v1.5zm4.75 3.5l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15h-1.75zM20 12.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md2K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 9.5H8v1h3V15H6.5v-2.5c0-.55.45-1 1-1h2v-1h-3V9H10c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1zm8 2.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function Md3KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 14c0 .55-.45 1-1 1H5v-1.5h3v-1H6v-1h2v-1H5V9h3.5c.55 0 1 .45 1 1v4zm6.5 1h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md3K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11c0 .55-.45 1-1 1H6.5v-1.5h3v-1h-2v-1h2v-1h-3V9H10c.55 0 1 .45 1 1v4zm7 1h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function Md4KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8.5 10.5h-1V15H8v-1.5H5V9h1.5v3H8V9h1.5v3h1v1.5zM16 15h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md4K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 10.5h-1V15H9.5v-1.5h-3V9H8v3h1.5V9H11v3h1v1.5zm6 1.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function Md5G (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 13h2v2h-5V9h7c0-1.1-.9-2-2-2h-5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4v2zM3 13h5v2H3v2h5c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2H5V9h5V7H3v6z\"}}]})(props);\n};\nexport function Md5KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9.5 7.5h-3v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H5v-1.5h3v-1H5V9h4.5v1.5zM16 15h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md5K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 7.5H8v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H6.5v-1.5h3v-1h-3V9H11v1.5zm7 4.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function Md6KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 12.5H8V14H6.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9.5 7.5h-3v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3.5v1.5zM16 15h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md6K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12.5h1.5V14H8zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 7.5H8v1h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H7.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H11v1.5zm7 4.5h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function Md7KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM8 15H6.25l1.38-4.5H5V9h3.5c.67 0 1.15.65.96 1.29L8 15zm8 0h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md7K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 15H7.75l1.38-4.5H6.5V9H10c.67 0 1.15.65.96 1.29L9.5 15zm8.5 0h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function Md8KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 12.5H8V14H6.5zm0-2.5H8v1.5H6.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 14c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm6.5 1h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md8K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12.5h1.5V14H8zM8 10h1.5v1.5H8zm11-7H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11c0 .55-.45 1-1 1H7.5c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1H10c.55 0 1 .45 1 1v4zm7 1h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function Md9KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 10H8v1.5H6.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.5 14c0 .55-.45 1-1 1H5v-1.5h3v-1H6c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm6.5 1h-1.75l-1.75-2.25V15H11V9h1.5v2.25L14.25 9H16l-2.25 3L16 15zm4-2.5h-1.5V14h-1v-1.5H16v-1h1.5V10h1v1.5H20v1z\"}}]})(props);\n};\nexport function Md9K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10h1.5v1.5H8zm11-7H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 11c0 .55-.45 1-1 1H6.5v-1.5h3v-1h-2c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1H10c.55 0 1 .45 1 1v4zm7 1h-1.75l-1.75-2.25V15H13V9h1.5v2.25L16.25 9H18l-2.25 3L18 15z\"}}]})(props);\n};\nexport function MdAddToQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 00-2-2zm0 14H3V5h18v12zm-5-7v2h-3v3h-2v-3H8v-2h3V7h2v3h3z\"}}]})(props);\n};\nexport function MdAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 22h12l-6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V5h18v12h-4v2h4c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdAlbum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"}}]})(props);\n};\nexport function MdArtTrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 13h-8v-2h8v2zm0-6h-8v2h8V7zm-8 10h8v-2h-8v2zm-2-8v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-1.5 6l-2.25-3-1.75 2.26-1.25-1.51L3.5 15h7z\"}}]})(props);\n};\nexport function MdAvTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm0-14v4h2V5.08c3.39.49 6 3.39 6 6.92 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-1.68.59-3.22 1.58-4.42L12 13l1.41-1.41-6.8-6.8v.02C4.42 6.45 3 9.05 3 12c0 4.97 4.02 9 9 9a9 9 0 000-18h-1zm7 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zM6 12c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z\"}}]})(props);\n};\nexport function MdBrandingWatermark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-9v-6h9v6z\"}}]})(props);\n};\nexport function MdCallToAction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z\"}}]})(props);\n};\nexport function MdClosedCaptionDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.83 4H19c1.1 0 2 .9 2 2v12c0 .05-.01.1-.02.16l-3.38-3.38c.24-.19.4-.46.4-.78v-1h-1.5v.5h-.17l-1.83-1.83V10.5h2v.5H18v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v.17L6.83 4zm12.95 18.61L17.17 20H5a2 2 0 01-2-2V6c0-.05.02-.1.02-.15L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM11 13.83l-.83-.83H9.5v.5h-2v-3h.17L6.4 9.22c-.24.19-.4.46-.4.78v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-.17z\"}}]})(props);\n};\nexport function MdClosedCaptionOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 5.5v13h-15v-13h15zM19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z\"}}]})(props);\n};\nexport function MdClosedCaption (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z\"}}]})(props);\n};\nexport function MdControlCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 5.54L13.77 7.3 12 5.54 10.23 7.3 8.46 5.54 12 2zm2.92 10l-1.76-1.77L18.46 12l-1.76-1.77 1.76-1.77L22 12zm-10 2.92l1.77-1.76L12 18.46l1.77-1.76 1.77 1.76L12 22zm-2.92-10l1.76 1.77L5.54 12l1.76 1.77-1.76 1.77L2 12z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function MdEqualizer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z\"}}]})(props);\n};\nexport function MdExplicit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h4v2h-4v2h4v2H9V7h6v2z\"}}]})(props);\n};\nexport function MdFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z\"}}]})(props);\n};\nexport function MdFastRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18V6l-8.5 6 8.5 6zm.5-6l8.5 6V6l-8.5 6z\"}}]})(props);\n};\nexport function MdFeaturedPlayList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 8H3V9h9v2zm0-4H3V5h9v2z\"}}]})(props);\n};\nexport function MdFeaturedVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 9H3V5h9v7z\"}}]})(props);\n};\nexport function MdFiberDvr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 10.5h2v1h-2v-1zm-13 0h2v3h-2v-3zM21 3H3c-1.11 0-2 .89-2 2v14a2 2 0 002 2h18a2 2 0 002-2V5c0-1.11-.89-2-2-2zM8 13.5c0 .85-.65 1.5-1.5 1.5H3V9h3.5c.85 0 1.5.65 1.5 1.5v3zm4.62 1.5h-1.5L9.37 9h1.5l1 3.43 1-3.43h1.5l-1.75 6zM21 11.5c0 .6-.4 1.15-.9 1.4L21 15h-1.5l-.85-2H17.5v2H16V9h3.5c.85 0 1.5.65 1.5 1.5v1z\"}}]})(props);\n};\nexport function MdFiberManualRecord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"8\"}}]})(props);\n};\nexport function MdFiberNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM8.5 15H7.3l-2.55-3.5V15H3.5V9h1.25l2.5 3.5V9H8.5v6zm5-4.74H11v1.12h2.5v1.26H11v1.11h2.5V15h-4V9h4v1.26zm7 3.74c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1V9h1.25v4.51h1.13V9.99h1.25v3.51h1.12V9h1.25v5z\"}}]})(props);\n};\nexport function MdFiberPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 10.5h2v1h-2zM20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM9 11.5c0 .85-.65 1.5-1.5 1.5h-2v2H4V9h3.5c.85 0 1.5.65 1.5 1.5v1zm3.5 3.5H11V9h1.5v6zm7.5 0h-1.2l-2.55-3.5V15H15V9h1.25l2.5 3.5V9H20v6z\"}}]})(props);\n};\nexport function MdFiberSmartRecord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"12\",\"r\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4.26v2.09a5.99 5.99 0 010 11.3v2.09c3.45-.89 6-4.01 6-7.74s-2.55-6.85-6-7.74z\"}}]})(props);\n};\nexport function MdForward10 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.86 15.94v-4.27h-.09L9 12.3v.69l1.01-.31v3.26zM12.25 13.44v.74c0 1.9 1.31 1.82 1.44 1.82.14 0 1.44.09 1.44-1.82v-.74c0-1.9-1.31-1.82-1.44-1.82-.14 0-1.44-.09-1.44 1.82zm2.04-.12v.97c0 .77-.21 1.03-.59 1.03s-.6-.26-.6-1.03v-.97c0-.75.22-1.01.59-1.01.38-.01.6.26.6 1.01z\"}}]})(props);\n};\nexport function MdForward30 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.06 15.38c-.29 0-.62-.17-.62-.54h-.85c0 .97.9 1.23 1.45 1.23.87 0 1.51-.46 1.51-1.25 0-.66-.45-.9-.71-1 .11-.05.65-.32.65-.92 0-.21-.05-1.22-1.44-1.22-.62 0-1.4.35-1.4 1.16h.85c0-.34.31-.48.57-.48.59 0 .58.5.58.54 0 .52-.41.59-.63.59h-.46v.66h.45c.65 0 .7.42.7.64 0 .32-.21.59-.65.59zM13.85 11.68c-.14 0-1.44-.08-1.44 1.82v.74c0 1.9 1.31 1.82 1.44 1.82.14 0 1.44.09 1.44-1.82v-.74c.01-1.91-1.3-1.82-1.44-1.82zm.6 2.67c0 .77-.21 1.03-.59 1.03s-.6-.26-.6-1.03v-.97c0-.75.22-1.01.59-1.01.38 0 .6.26.6 1.01v.97z\"}}]})(props);\n};\nexport function MdForward5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.03 15.38c-.44 0-.58-.31-.6-.56h-.84c.03.85.79 1.25 1.44 1.25.93 0 1.44-.63 1.44-1.43 0-1.33-.97-1.44-1.3-1.44-.2 0-.43.05-.64.16l.11-.92h1.7v-.71h-2.39l-.25 2.17.67.17c.13-.13.28-.23.57-.23.4 0 .69.23.69.75-.01.05.02.79-.6.79z\"}}]})(props);\n};\nexport function MdGames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z\"}}]})(props);\n};\nexport function MdHd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 12H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm2-6h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1h-4V9zm1.5 4.5h2v-3h-2v3z\"}}]})(props);\n};\nexport function MdHearingDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.03 3.2C7.15 2.44 8.51 2 10 2c3.93 0 7 3.07 7 7 0 1.26-.38 2.65-1.07 3.9-.02.04-.05.08-.08.13l-1.48-1.48c.4-.86.63-1.75.63-2.55 0-2.8-2.2-5-5-5-.92 0-1.76.26-2.5.67L6.03 3.2zm11.18 11.18l1.43 1.43C20.11 13.93 21 11.57 21 9c0-3.04-1.23-5.79-3.22-7.78l-1.42 1.42A8.937 8.937 0 0119 9c0 2.02-.67 3.88-1.79 5.38zM10 6.5c-.21 0-.4.03-.59.08l3.01 3.01c.05-.19.08-.38.08-.59A2.5 2.5 0 0010 6.5zm11.19 14.69L2.81 2.81 1.39 4.22l2.13 2.13C3.19 7.16 3 8.05 3 9h2c0-.36.05-.71.12-1.05l6.61 6.61c-.88.68-1.78 1.41-2.27 2.9-.5 1.5-1 2.01-1.71 2.38-.19.1-.46.16-.75.16-1.1 0-2-.9-2-2H3a3.999 3.999 0 005.64 3.65c1.36-.71 2.13-1.73 2.73-3.55.32-.98.9-1.43 1.71-2.05.03-.02.05-.04.08-.06l6.62 6.62 1.41-1.42z\"}}]})(props);\n};\nexport function MdHearing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55A3.999 3.999 0 0021 18h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9a2.5 2.5 0 005 0 2.5 2.5 0 00-5 0z\"}}]})(props);\n};\nexport function MdHighQuality (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z\"}}]})(props);\n};\nexport function MdLibraryAddCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\"}}]})(props);\n};\nexport function MdLibraryAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z\"}}]})(props);\n};\nexport function MdLibraryBooks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z\"}}]})(props);\n};\nexport function MdLibraryMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5a2.5 2.5 0 01-5 0 2.5 2.5 0 012.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\"}}]})(props);\n};\nexport function MdLoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0020 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 004 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\"}}]})(props);\n};\nexport function MdMicNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm-1.2-9.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2V4.9zm6.5 6.1c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z\"}}]})(props);\n};\nexport function MdMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73 4.27 3z\"}}]})(props);\n};\nexport function MdMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z\"}}]})(props);\n};\nexport function MdMissedVideoCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4zM10 15l-3.89-3.89v2.55H5V9.22h4.44v1.11H6.89l3.11 3.1 4.22-4.22.78.79-5 5z\"}}]})(props);\n};\nexport function MdMovie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z\"}}]})(props);\n};\nexport function MdMusicVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM8 15c0-1.66 1.34-3 3-3 .35 0 .69.07 1 .18V6h5v2h-3v7.03A3.003 3.003 0 0111 18c-1.66 0-3-1.34-3-3z\"}}]})(props);\n};\nexport function MdNewReleases (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-10 5h-2v-2h2v2zm0-4h-2V7h2v6z\"}}]})(props);\n};\nexport function MdNotInterested (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0112 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\"}}]})(props);\n};\nexport function MdNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10l-6-6H4c-1.1 0-2 .9-2 2v12.01c0 1.1.9 1.99 2 1.99l16-.01c1.1 0 2-.89 2-1.99v-8zm-7-4.5l5.5 5.5H15V5.5z\"}}]})(props);\n};\nexport function MdPauseCircleFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z\"}}]})(props);\n};\nexport function MdPauseCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z\"}}]})(props);\n};\nexport function MdPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z\"}}]})(props);\n};\nexport function MdPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"}}]})(props);\n};\nexport function MdPlayArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 5v14l11-7z\"}}]})(props);\n};\nexport function MdPlayCircleFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z\"}}]})(props);\n};\nexport function MdPlayCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM9.5 16.5v-9l7 4.5-7 4.5z\"}}]})(props);\n};\nexport function MdPlayDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm11.75 11.47l-.11-.11.11.11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 5.19V5l11 7-2.55 1.63L8 5.19zm12 14.54l-5.11-5.11L8 7.73 4.27 4 3 5.27l5 5V19l5.33-3.4 5.4 5.4L20 19.73z\"}}]})(props);\n};\nexport function MdPlaylistAddCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h11v2H3zM3 6h11v2H3zM3 14h7v2H3zM20.59 11.93l-4.25 4.24-2.12-2.12-1.41 1.41L16.34 19 22 13.34z\"}}]})(props);\n};\nexport function MdPlaylistAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10H3v2h11v-2zm0-4H3v2h11V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM3 16h7v-2H3v2z\"}}]})(props);\n};\nexport function MdPlaylistPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h11v2H3zM3 6h11v2H3zM3 14h7v2H3zM16 13v8l6-4z\"}}]})(props);\n};\nexport function MdQueueMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 6H3v2h12V6zm0 4H3v2h12v-2zM3 16h8v-2H3v2zM17 6v8.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6h-5z\"}}]})(props);\n};\nexport function MdQueuePlayNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h2v-2H3V5h18v8h2V5a2 2 0 00-2-2zm-8 7V7h-2v3H8v2h3v3h2v-3h3v-2h-3zm11 8l-4.5 4.5L18 21l3-3-3-3 1.5-1.5L24 18z\"}}]})(props);\n};\nexport function MdQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z\"}}]})(props);\n};\nexport function MdRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.24 6.15C2.51 6.43 2 7.17 2 8v12a2 2 0 002 2h16a2 2 0 002-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z\"}}]})(props);\n};\nexport function MdRecentActors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5v14h2V5h-2zm-4 14h2V5h-2v14zM14 5H2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8 7.75c1.24 0 2.25 1.01 2.25 2.25S9.24 12.25 8 12.25 5.75 11.24 5.75 10 6.76 7.75 8 7.75zM12.5 17h-9v-.75c0-1.5 3-2.25 4.5-2.25s4.5.75 4.5 2.25V17z\"}}]})(props);\n};\nexport function MdRemoveFromQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 00-2-2zm0 14H3V5h18v12zm-5-7v2H8v-2h8z\"}}]})(props);\n};\nexport function MdRepeatOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z\"}}]})(props);\n};\nexport function MdRepeatOneOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z\"}}]})(props);\n};\nexport function MdRepeatOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z\"}}]})(props);\n};\nexport function MdRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z\"}}]})(props);\n};\nexport function MdReplay10 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 5V1l-5 5 5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6h-2c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.89 16h-.85v-3.26l-1.01.31v-.69l1.77-.63h.09V16zM15.17 14.24c0 .32-.03.6-.1.82s-.17.42-.29.57-.28.26-.45.33-.37.1-.59.1-.41-.03-.59-.1-.33-.18-.46-.33-.23-.34-.3-.57-.11-.5-.11-.82v-.74c0-.32.03-.6.1-.82s.17-.42.29-.57.28-.26.45-.33.37-.1.59-.1.41.03.59.1.33.18.46.33.23.34.3.57.11.5.11.82v.74zm-.85-.86c0-.19-.01-.35-.04-.48s-.07-.23-.12-.31-.11-.14-.19-.17-.16-.05-.25-.05-.18.02-.25.05-.14.09-.19.17-.09.18-.12.31-.04.29-.04.48v.97c0 .19.01.35.04.48s.07.24.12.32.11.14.19.17.16.05.25.05.18-.02.25-.05.14-.09.19-.17.09-.19.11-.32.04-.29.04-.48v-.97z\"}}]})(props);\n};\nexport function MdReplay30 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.56 13.49h.45c.21 0 .37-.05.48-.16s.16-.25.16-.43a.538.538 0 00-.15-.39c-.05-.05-.11-.09-.18-.11s-.16-.04-.25-.04c-.08 0-.15.01-.22.03s-.13.05-.18.1-.09.09-.12.15-.05.13-.05.2h-.85a1.06 1.06 0 01.41-.85c.13-.1.27-.18.44-.23s.35-.08.54-.08c.21 0 .41.03.59.08s.33.13.46.23.23.23.3.38.11.33.11.53a.842.842 0 01-.17.52 1.1 1.1 0 01-.48.39c.24.09.42.21.54.39s.18.38.18.61c0 .2-.04.38-.12.53s-.18.29-.32.39-.29.19-.48.24-.38.08-.6.08c-.18 0-.36-.02-.53-.07s-.33-.12-.46-.23-.25-.23-.33-.38-.12-.34-.12-.55h.85c0 .08.02.15.05.22s.07.12.13.17.12.09.2.11.16.04.25.04c.1 0 .19-.01.27-.04s.15-.07.2-.12.1-.11.13-.18.04-.15.04-.24c0-.11-.02-.21-.05-.29s-.08-.15-.14-.2-.13-.09-.22-.11-.18-.04-.29-.04h-.47v-.65zM15.3 14.24c0 .32-.03.6-.1.82s-.17.42-.29.57-.28.26-.45.33-.37.1-.59.1-.41-.03-.59-.1-.33-.18-.46-.33-.23-.34-.3-.57-.11-.5-.11-.82v-.74c0-.32.03-.6.1-.82s.17-.42.29-.57.28-.26.45-.33.37-.1.59-.1.41.03.59.1.33.18.46.33.23.34.3.57.11.5.11.82v.74zm-.85-.86c0-.19-.01-.35-.04-.48s-.07-.23-.12-.31-.11-.14-.19-.17-.16-.05-.25-.05-.18.02-.25.05-.14.09-.19.17-.09.18-.12.31-.04.29-.04.48v.97c0 .19.01.35.04.48s.07.24.12.32.11.14.19.17.16.05.25.05.18-.02.25-.05.14-.09.19-.17.09-.19.11-.32c.03-.13.04-.29.04-.48v-.97z\"}}]})(props);\n};\nexport function MdReplay5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.69 13.9l.25-2.17h2.39v.71h-1.7l-.11.92c.03-.02.07-.03.11-.05s.09-.04.15-.05.12-.03.18-.04.13-.02.2-.02c.21 0 .39.03.55.1s.3.16.41.28.2.27.25.45.09.38.09.6c0 .19-.03.37-.09.54s-.15.32-.27.45-.27.24-.45.31-.39.12-.64.12c-.18 0-.36-.03-.53-.08s-.32-.14-.46-.24-.24-.24-.32-.39-.13-.33-.13-.53h.84c.02.18.08.32.19.41s.25.15.42.15a.49.49 0 00.45-.23c.04-.07.08-.15.11-.25s.03-.2.03-.31-.01-.21-.04-.31-.07-.17-.13-.24-.13-.12-.21-.15-.19-.05-.3-.05c-.08 0-.15.01-.2.02s-.11.03-.15.05-.08.05-.12.07-.07.06-.1.09l-.67-.16z\"}}]})(props);\n};\nexport function MdReplayCircleFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm6 10c0 3.31-2.69 6-6 6s-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4v3L8 7l4-4v3c3.31 0 6 2.69 6 6z\"}}]})(props);\n};\nexport function MdReplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z\"}}]})(props);\n};\nexport function MdSd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 6h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1h-4V9zm-3.5 4.5v-1H7c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1H9.5v-.5h-2v1H10c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-1h1.5v.5h2zm5 0h2v-3h-2v3z\"}}]})(props);\n};\nexport function MdShuffleOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z\"}}]})(props);\n};\nexport function MdShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z\"}}]})(props);\n};\nexport function MdSkipNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\"}}]})(props);\n};\nexport function MdSkipPrevious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6h2v12H6zm3.5 6l8.5 6V6z\"}}]})(props);\n};\nexport function MdSlowMotionVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.05 9.79L10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zM11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.941 7.941 0 0111 4.07zM5.69 7.1L4.26 5.68A9.949 9.949 0 002.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 014.07 13zm1.61 6.74A9.981 9.981 0 0011 21.95v-2.02a7.941 7.941 0 01-3.9-1.62l-1.42 1.43zM22 12c0 5.16-3.92 9.42-8.95 9.95v-2.02C16.97 19.41 20 16.05 20 12s-3.03-7.41-6.95-7.93V2.05C18.08 2.58 22 6.84 22 12z\"}}]})(props);\n};\nexport function MdSnooze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-3-9h3.63L9 15.2V17h6v-2h-3.63L15 10.8V9H9v2z\"}}]})(props);\n};\nexport function MdSortByAlpha (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm.75.75h22.5v22.5H.75z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.94 4.66h-4.72l2.36-2.36zm-4.69 14.71h4.66l-2.33 2.33zM6.1 6.27L1.6 17.73h1.84l.92-2.45h5.11l.92 2.45h1.84L7.74 6.27H6.1zm-1.13 7.37l1.94-5.18 1.94 5.18H4.97zm10.76 2.5h6.12v1.59h-8.53v-1.29l5.92-8.56h-5.88v-1.6h8.3v1.26l-5.93 8.6z\"}}]})(props);\n};\nexport function MdSpeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.38 8.57l-1.23 1.85a8 8 0 01-.22 7.58H5.07A8 8 0 0115.58 6.85l1.85-1.23A10 10 0 003.35 19a2 2 0 001.72 1h13.85a2 2 0 001.74-1 10 10 0 00-.27-10.44zm-9.79 6.84a2 2 0 002.83 0l5.66-8.49-8.49 5.66a2 2 0 000 2.83z\"}}]})(props);\n};\nexport function MdStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M8 16h8V8H8v8zm4-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\"}}]})(props);\n};\nexport function MdStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6h12v12H6z\"}}]})(props);\n};\nexport function MdSubscriptions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z\"}}]})(props);\n};\nexport function MdSubtitles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z\"}}]})(props);\n};\nexport function MdSurroundSound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.76 16.24l-1.41 1.41A7.909 7.909 0 014 12c0-2.05.78-4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-.59-3.07-1.76-4.24l1.41-1.41A7.909 7.909 0 0120 12c0 2.05-.78 4.1-2.34 5.66zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdVideoCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4zM14 13h-3v3H9v-3H6v-2h3V8h2v3h3v2z\"}}]})(props);\n};\nexport function MdVideoLabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 13H3V5h18v11z\"}}]})(props);\n};\nexport function MdVideoLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 12.5v-9l6 4.5-6 4.5z\"}}]})(props);\n};\nexport function MdVideoSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18v5h2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9v-2H3V6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12L9 8v8zM22.71 18.43c.03-.29.04-.58.01-.86l1.07-.85c.1-.08.12-.21.06-.32l-1.03-1.79c-.06-.11-.19-.15-.31-.11l-1.28.5a3.44 3.44 0 00-.75-.42l-.2-1.36a.249.249 0 00-.25-.22h-2.07c-.12 0-.23.09-.25.21l-.2 1.36c-.26.11-.51.26-.74.42l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.79c-.06.11-.04.24.06.32l1.07.86c-.03.29-.04.58-.01.86l-1.07.85c-.1.08-.12.21-.06.32l1.03 1.79c.06.11.19.15.31.11l1.27-.5c.23.17.48.31.75.42l.2 1.36c.02.12.12.21.25.21h2.07c.12 0 .23-.09.25-.21l.2-1.36c.26-.11.51-.26.74-.42l1.28.5c.12.05.25 0 .31-.11l1.03-1.79c.06-.11.04-.24-.06-.32l-1.06-.85zM19 19.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdVideocamOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6.5l-4 4V7c0-.55-.45-1-1-1H9.82L21 17.18V6.5zM3.27 2L2 3.27 4.73 6H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.21 0 .39-.08.54-.18L19.73 21 21 19.73 3.27 2z\"}}]})(props);\n};\nexport function MdVideocam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z\"}}]})(props);\n};\nexport function MdVolumeDownAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02S15.48 8.71 14 7.97zM3 9v6h4l5 5V4L7 9H3z\"}}]})(props);\n};\nexport function MdVolumeDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 12A4.5 4.5 0 0016 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z\"}}]})(props);\n};\nexport function MdVolumeMute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9v6h4l5 5V4l-5 5H7z\"}}]})(props);\n};\nexport function MdVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 12A4.5 4.5 0 0014 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0021 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 003.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\"}}]})(props);\n};\nexport function MdVolumeUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0014 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"}}]})(props);\n};\nexport function MdWebAssetOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.83 4H20a2 2 0 012 2v12c0 .34-.09.66-.23.94L20 17.17V8h-9.17l-4-4zm13.66 19.31L17.17 20H4a2 2 0 01-2-2V6c0-.34.08-.66.23-.94L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM15.17 18l-10-10H4v10h11.17z\"}}]})(props);\n};\nexport function MdWebAsset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6a2 2 0 00-2-2zm0 14H5V8h14v10z\"}}]})(props);\n};\nexport function MdWeb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z\"}}]})(props);\n};\nexport function Md3P (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4.01c-1.1 0-2 .9-2 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 4c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0116 13.43V14z\"}}]})(props);\n};\nexport function MdAddIcCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM21 6h-3V3h-2v3h-3v2h3v3h2V8h3z\"}}]})(props);\n};\nexport function MdAlternateEmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57V12c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdAppRegistration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4h4v4h-4zM4 16h4v4H4zM4 10h4v4H4zM4 4h4v4H4zM14 12.42V10h-4v4h2.42zM20.88 11.29l-1.17-1.17a.41.41 0 00-.58 0l-.88.88L20 12.75l.88-.88a.41.41 0 000-.58zM11 18.25V20h1.75l6.67-6.67-1.75-1.75zM16 4h4v4h-4z\"}}]})(props);\n};\nexport function MdBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\"}}]})(props);\n};\nexport function MdCallEnd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9c-1.6 0-3.15.25-4.6.72v3.1c0 .39-.23.74-.56.9-.98.49-1.87 1.12-2.66 1.85-.18.18-.43.28-.7.28-.28 0-.53-.11-.71-.29L.29 13.08a.956.956 0 01-.29-.7c0-.28.11-.53.29-.71C3.34 8.78 7.46 7 12 7s8.66 1.78 11.71 4.67c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2.48 2.48c-.18.18-.43.29-.71.29-.27 0-.52-.11-.7-.28a11.27 11.27 0 00-2.67-1.85.996.996 0 01-.56-.9v-3.1C15.15 9.25 13.6 9 12 9z\"}}]})(props);\n};\nexport function MdCallMade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5z\"}}]})(props);\n};\nexport function MdCallMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\"}}]})(props);\n};\nexport function MdCallMissedOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8.41l9 9 7-7V15h2V7h-8v2h4.59L12 14.59 4.41 7 3 8.41z\"}}]})(props);\n};\nexport function MdCallMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.59 7L12 14.59 6.41 9H11V7H3v8h2v-4.59l7 7 9-9z\"}}]})(props);\n};\nexport function MdCallReceived (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5.41L18.59 4 7 15.59V9H5v10h10v-2H8.41z\"}}]})(props);\n};\nexport function MdCallSplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4l2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3z\"}}]})(props);\n};\nexport function MdCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 00-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z\"}}]})(props);\n};\nexport function MdCancelPresentation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19.1H3V5h18v14.1zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M21 19.1H3V5h18v14.1zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41z\"}}]})(props);\n};\nexport function MdCellWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9.98L6 22h16V5.97l-4 4.01zM20 20h-2v-7.22l2-2V20zM5.22 7.22L3.93 5.93c3.9-3.91 10.24-3.91 14.15 0l-1.29 1.29c-3.19-3.19-8.38-3.19-11.57 0zm7.71 3.85L11 13l-1.93-1.93a2.74 2.74 0 013.86 0zm1.29-1.28c-1.78-1.77-4.66-1.77-6.43 0L6.5 8.5a6.374 6.374 0 019 0l-1.28 1.29z\"}}]})(props);\n};\nexport function MdChatBubbleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z\"}}]})(props);\n};\nexport function MdChatBubble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdChat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z\"}}]})(props);\n};\nexport function MdClearAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z\"}}]})(props);\n};\nexport function MdComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM18 14H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z\"}}]})(props);\n};\nexport function MdContactMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8V7l-3 2-3-2v1l3 2 3-2zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm8-6h-8V6h8v6z\"}}]})(props);\n};\nexport function MdContactPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm3.85-4h1.64L21 16l-1.99 1.99A7.512 7.512 0 0116.28 14c-.18-.64-.28-1.31-.28-2s.1-1.36.28-2a7.474 7.474 0 012.73-3.99L21 8l-1.51 2h-1.64c-.22.63-.35 1.3-.35 2s.13 1.37.35 2z\"}}]})(props);\n};\nexport function MdContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 0H4v2h16V0zM4 24h16v-2H4v2zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 2.75c1.24 0 2.25 1.01 2.25 2.25s-1.01 2.25-2.25 2.25S9.75 10.24 9.75 9 10.76 6.75 12 6.75zM17 17H7v-1.5c0-1.67 3.33-2.5 5-2.5s5 .83 5 2.5V17z\"}}]})(props);\n};\nexport function MdDesktopAccessDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 16c0 1.1-.9 2-2 2h-1l-2-2h3V4H6L4 2h17c1.1 0 2 .9 2 2v12zm-5.5 2l-2-2zm-2.6 0l6 6 1.3-1.3-4.7-4.7-2-2L1.2 1.8 0 3.1l1 1V16c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h.9zM3 16V6.1l9.9 9.9H3z\"}}]})(props);\n};\nexport function MdDialerSip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h-1v5h1V3zm-2 2h-2V4h2V3h-3v3h2v1h-2v1h3V5zm3-2v5h1V6h2V3h-3zm2 2h-1V4h1v1zm0 10.5c-1.25 0-2.45-.2-3.57-.57a.998.998 0 00-1.01.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21c.27-.26.35-.65.24-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdDialpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdDocumentScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3H4v3H2V1h5v2zm15 3V1h-5v2h3v3h2zM7 21H4v-3H2v5h5v-2zm13-3v3h-3v2h5v-5h-2zm-1 0c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v12zM15 8H9v2h6V8zm0 3H9v2h6v-2zm0 3H9v2h6v-2z\"}}]})(props);\n};\nexport function MdDomainDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 5h2v2h-.9L12 9.9V9h8v8.9l2 2V7H12V3H5.1L8 5.9zm8 6h2v2h-2zM1.3 1.8L.1 3.1 2 5v16h16l3 3 1.3-1.3-21-20.9zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm4 8H8v-2h2v2zm0-4H8v-2h2v2zm2 4v-2h2l2 2h-4z\"}}]})(props);\n};\nexport function MdDomainVerification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.6 10.88l-1.42-1.42-4.24 4.25-2.12-2.13L7.4 13l3.54 3.54z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6a2 2 0 00-2-2zm0 14H5V8h14v10z\"}}]})(props);\n};\nexport function MdDuo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2h-8C6.38 2 2 6.66 2 12.28 2 17.5 6.49 22 11.72 22 17.39 22 22 17.62 22 12V4c0-1.1-.9-2-2-2zm-3 13l-3-2v2H7V9h7v2l3-2v6z\"}}]})(props);\n};\nexport function MdEmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"}}]})(props);\n};\nexport function MdForum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z\"}}]})(props);\n};\nexport function MdForwardToInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9v-2H4V8l8 5 8-5v5h2V6c0-1.1-.9-2-2-2zm-8 7L4 6h16l-8 5zm7 4l4 4-4 4v-3h-4v-2h4v-3z\"}}]})(props);\n};\nexport function MdHourglassBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 22l-.01-6L14 12l3.99-4.01L18 2H6v6l4 4-4 3.99V22h12zM8 7.5V4h8v3.5l-4 4-4-4z\"}}]})(props);\n};\nexport function MdHourglassTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2l.01 6L10 12l-3.99 4.01L6 22h12v-6l-4-4 4-3.99V2H6zm10 14.5V20H8v-3.5l4-4 4 4z\"}}]})(props);\n};\nexport function MdImportContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 4.5c-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .65.73.45.75.45C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.41.21.75-.19.75-.45V6c-1.49-1.12-3.63-1.5-5.5-1.5zm3.5 14c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z\"}}]})(props);\n};\nexport function MdImportExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z\"}}]})(props);\n};\nexport function MdInvertColorsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22l4.2 4.2a7.73 7.73 0 00-1.6 4.7C4 17.48 7.58 21 12 21c1.75 0 3.36-.56 4.67-1.5l3.1 3.1 1.42-1.41zM12 19c-3.31 0-6-2.63-6-5.87 0-1.19.36-2.32 1.02-3.28L12 14.83V19zM8.38 5.56L12 2l5.65 5.56C19.1 8.99 20 10.96 20 13.13c0 1.18-.27 2.29-.74 3.3L12 9.17V4.81L9.8 6.97 8.38 5.56z\"}}]})(props);\n};\nexport function MdListAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m1.1-2H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9zM11 7h6v2h-6V7zm0 4h6v2h-6v-2zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7z\"}}]})(props);\n};\nexport function MdLiveHelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5a2 2 0 00-2 2v14a2 2 0 002 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 16h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 11.9 13 12.5 13 14h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"}}]})(props);\n};\nexport function MdLocationOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm11.75 11.47l-.11-.11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.5A2.5 2.5 0 0114.5 9c0 .74-.33 1.39-.83 1.85l3.63 3.63c.98-1.86 1.7-3.8 1.7-5.48 0-3.87-3.13-7-7-7a7 7 0 00-5.04 2.15l3.19 3.19c.46-.52 1.11-.84 1.85-.84zm4.37 9.6l-4.63-4.63-.11-.11L3.27 3 2 4.27l3.18 3.18C5.07 7.95 5 8.47 5 9c0 5.25 7 13 7 13s1.67-1.85 3.38-4.35L18.73 21 20 19.73l-3.63-3.63z\"}}]})(props);\n};\nexport function MdLocationOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdMailOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z\"}}]})(props);\n};\nexport function MdMarkChatRead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.34 20l-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L23 14.34 17.34 20zM12 17a6.995 6.995 0 0110-6.32V4c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v18l4-4h6c0-.17.01-.33.03-.5A4.07 4.07 0 0112 17z\"}}]})(props);\n};\nexport function MdMarkChatUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6.98V16c0 1.1-.9 2-2 2H6l-4 4V4c0-1.1.9-2 2-2h10.1A5.002 5.002 0 0019 8c1.13 0 2.16-.39 3-1.02zM16 3c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\"}}]})(props);\n};\nexport function MdMarkEmailRead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19a6.995 6.995 0 0110-6.32V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h8.08c-.05-.33-.08-.66-.08-1zM4 6l8 5 8-5v2l-8 5-8-5V6zm13.34 16l-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L23 16.34 17.34 22z\"}}]})(props);\n};\nexport function MdMarkEmailUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8.98V18c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10.1c-.06.32-.1.66-.1 1 0 1.48.65 2.79 1.67 3.71L12 11 4 6v2l8 5 5.3-3.32c.54.2 1.1.32 1.7.32 1.13 0 2.16-.39 3-1.02zM16 5c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\"}}]})(props);\n};\nexport function MdMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z\"}}]})(props);\n};\nexport function MdMobileScreenShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-4.2-5.78v1.75l3.2-2.99L12.8 9v1.7c-3.11.43-4.35 2.56-4.8 4.7 1.11-1.5 2.58-2.18 4.8-2.18z\"}}]})(props);\n};\nexport function MdMoreTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8v6l4.7 2.9.8-1.2-4-2.4V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.92 12A6.957 6.957 0 0111 20c-3.9 0-7-3.1-7-7s3.1-7 7-7c.7 0 1.37.1 2 .29V4.23c-.64-.15-1.31-.23-2-.23-5 0-9 4-9 9s4 9 9 9a8.963 8.963 0 008.94-10h-2.02z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5V2h-2v3h-3v2h3v3h2V7h3V5z\"}}]})(props);\n};\nexport function MdNat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.82 13H11v-2H6.82C6.4 9.84 5.3 9 4 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c1.3 0 2.4-.84 2.82-2zM4 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12l-4-3v2h-4.05c-.5-5.05-4.76-9-9.95-9v2c4.42 0 8 3.58 8 8s-3.58 8-8 8v2c5.19 0 9.45-3.95 9.95-9H19v2l4-3z\"}}]})(props);\n};\nexport function MdNoSim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88L2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z\"}}]})(props);\n};\nexport function MdPausePresentation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19.1H3V5h18v14.1zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M21 19.1H3V5h18v14.1zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 8h2v8H9zm4 0h2v8h-2z\"}}]})(props);\n};\nexport function MdPersonAddDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"8\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 20v-2c0-2.3-4.1-3.7-6.9-3.9l6 5.9h.9zm-11.6-5.5C9.2 15.1 7 16.3 7 18v2h9.9l4 4 1.3-1.3-21-20.9L0 3.1l4 4V10H1v2h3v3h2v-3h2.9l2.5 2.5zM6 10v-.9l.9.9H6z\"}}]})(props);\n};\nexport function MdPersonSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"8\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.35 14.01C7.62 13.91 2 15.27 2 18v2h9.54c-2.47-2.76-1.23-5.89-1.19-5.99zM19.43 18.02c.36-.59.57-1.28.57-2.02 0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4c.74 0 1.43-.22 2.02-.57L20.59 22 22 20.59l-2.57-2.57zM16 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdPhoneDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.34 14.54l-1.43-1.43c.56-.73 1.05-1.5 1.47-2.32l-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1H20c.55 0 1 .45 1 1 0 3.98-1.37 7.64-3.66 10.54zm-2.82 2.81A16.884 16.884 0 014 21c-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.35-.12.75-.03 1.02.24l2.2 2.2c.81-.42 1.58-.9 2.3-1.46L1.39 4.22l1.42-1.41L21.19 21.2l-1.41 1.41-5.26-5.26z\"}}]})(props);\n};\nexport function MdPhoneEnabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.38 10.79l-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1H20c.55 0 1 .45 1 1 0 9.39-7.61 17-17 17-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.35-.12.75-.03 1.02.24l2.2 2.2c2.83-1.45 5.15-3.76 6.59-6.59z\"}}]})(props);\n};\nexport function MdPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\"}}]})(props);\n};\nexport function MdPhonelinkErase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8.2l-1-1-4 4-4-4-1 1 4 4-4 4 1 1 4-4 4 4 1-1-4-4 4-4zM19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdPhonelinkLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-8.2 10V9.5C10.8 8.1 9.4 7 8 7S5.2 8.1 5.2 9.5V11c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3zm-1.3 0h-3V9.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3V11z\"}}]})(props);\n};\nexport function MdPhonelinkRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.1 7.7l-1 1c1.8 1.8 1.8 4.6 0 6.5l1 1c2.5-2.3 2.5-6.1 0-8.5zM18 9.8l-1 1c.5.7.5 1.6 0 2.3l1 1c1.2-1.2 1.2-3 0-4.3zM14 1H4c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 19H4V4h10v16z\"}}]})(props);\n};\nexport function MdPhonelinkSetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.82 12.49c.02-.16.04-.32.04-.49 0-.17-.02-.33-.04-.49l1.08-.82c.1-.07.12-.21.06-.32l-1.03-1.73c-.06-.11-.2-.15-.31-.11l-1.28.5c-.27-.2-.56-.36-.87-.49l-.2-1.33c0-.12-.11-.21-.24-.21H5.98a.26.26 0 00-.26.21l-.2 1.32c-.31.12-.6.3-.87.49l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.73c-.06.12-.03.25.07.33l1.08.82c-.02.16-.03.33-.03.49 0 .17.02.33.04.49l-1.09.83c-.1.07-.12.21-.06.32l1.03 1.73c.06.11.2.15.31.11l1.28-.5c.27.2.56.36.87.49l.2 1.32c.01.12.12.21.25.21h2.06c.13 0 .24-.09.25-.21l.2-1.32c.31-.12.6-.3.87-.49l1.28.5c.12.05.25 0 .31-.11l1.03-1.73c.06-.11.04-.24-.06-.32l-1.1-.83zM7 13.75c-.99 0-1.8-.78-1.8-1.75s.81-1.75 1.8-1.75 1.8.78 1.8 1.75S8 13.75 7 13.75zM18 1.01L8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z\"}}]})(props);\n};\nexport function MdPortableWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.56 14.24c.28-.69.44-1.45.44-2.24 0-3.31-2.69-6-6-6-.79 0-1.55.16-2.24.44l1.62 1.62c.2-.03.41-.06.62-.06a3.999 3.999 0 013.95 4.63l1.61 1.61zM12 4c4.42 0 8 3.58 8 8 0 1.35-.35 2.62-.95 3.74l1.47 1.47A9.86 9.86 0 0022 12c0-5.52-4.48-10-10-10-1.91 0-3.69.55-5.21 1.47l1.46 1.46C9.37 4.34 10.65 4 12 4zM3.27 2.5L2 3.77l2.1 2.1C2.79 7.57 2 9.69 2 12c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 17.53 4 14.96 4 12c0-1.76.57-3.38 1.53-4.69l1.43 1.44C6.36 9.68 6 10.8 6 12c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-.65.17-1.25.44-1.79l1.58 1.58L10 12c0 1.1.9 2 2 2l.21-.02.01.01 7.51 7.51L21 20.23 4.27 3.5l-1-1z\"}}]})(props);\n};\nexport function MdPresentToAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h18c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 16.02H3V4.98h18v14.04zM10 12H8l4-4 4 4h-2v4h-4v-4z\"}}]})(props);\n};\nexport function MdPrintDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.1 17H22v-6c0-1.7-1.3-3-3-3h-9l9.1 9zm-.1-7c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-1-3V3H6v1.1L9 7zM1.2 1.8L0 3l4.9 5C3.3 8.1 2 9.4 2 11v6h4v4h11.9l3 3 1.3-1.3-21-20.9zM8 19v-5h2.9l5 5H8z\"}}]})(props);\n};\nexport function MdQrCode2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21h-2v-2h2v2zm-2-7h-2v5h2v-5zm8-2h-2v4h2v-4zm-2-2h-2v2h2v-2zM7 12H5v2h2v-2zm-2-2H3v2h2v-2zm7-5h2V3h-2v2zm-7.5-.5v3h3v-3h-3zM9 9H3V3h6v6zm-4.5 7.5v3h3v-3h-3zM9 21H3v-6h6v6zm7.5-16.5v3h3v-3h-3zM21 9h-6V3h6v6zm-2 10v-3h-4v2h2v3h4v-2h-2zm-2-7h-4v2h4v-2zm-4-2H7v2h2v2h2v-2h2v-2zm1-1V7h-2V5h-2v4h4zM6.75 5.25h-1.5v1.5h1.5v-1.5zm0 12h-1.5v1.5h1.5v-1.5zm12-12h-1.5v1.5h1.5v-1.5z\"}}]})(props);\n};\nexport function MdQrCodeScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 6.5v3h-3v-3h3M11 5H5v6h6V5zm-1.5 9.5v3h-3v-3h3M11 13H5v6h6v-6zm6.5-6.5v3h-3v-3h3M19 5h-6v6h6V5zm-6 8h1.5v1.5H13V13zm1.5 1.5H16V16h-1.5v-1.5zM16 13h1.5v1.5H16V13zm-3 3h1.5v1.5H13V16zm1.5 1.5H16V19h-1.5v-1.5zM16 16h1.5v1.5H16V16zm1.5-1.5H19V16h-1.5v-1.5zm0 3H19V19h-1.5v-1.5zM22 7h-2V4h-3V2h5v5zm0 15v-5h-2v3h-3v2h5zM2 22h5v-2H4v-3H2v5zM2 2v5h2V4h3V2H2z\"}}]})(props);\n};\nexport function MdQrCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM19 19h2v2h-2zM13 13h2v2h-2zM15 15h2v2h-2zM13 17h2v2h-2zM15 19h2v2h-2zM17 17h2v2h-2zM17 13h2v2h-2zM19 15h2v2h-2z\"}}]})(props);\n};\nexport function MdReadMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h9v2h-9zM13 15h9v2h-9zM16 11h6v2h-6zM13 12L8 7v4H2v2h6v4z\"}}]})(props);\n};\nexport function MdRingVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23.71 16.67A16.971 16.971 0 0012 12C7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71a.99.99 0 00-.29-.7zM21.16 6.26l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM13 2h-2v5h2V2zM6.4 9.81L7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z\"}}]})(props);\n};\nexport function MdRssFeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.18\",\"cy\":\"17.82\",\"r\":\"2.18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z\"}}]})(props);\n};\nexport function MdRtt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.03 3l-1.11 7.07h2.62l.7-4.5h2.58L11.8 18.43H9.47L9.06 21h7.27l.4-2.57h-2.35l2-12.86h2.58l-.71 4.5h2.65L22 3H9.03zM8 5H4l-.31 2h4L8 5zm-.61 4h-4l-.31 2h4l.31-2zm.92 8h-6L2 19h6l.31-2zm.62-4h-6l-.31 2h6.01l.3-2z\"}}]})(props);\n};\nexport function MdScreenShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 6a2 2 0 00-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 002 2H0v2h24v-2h-4zm-7-3.53v-2.19c-2.78 0-4.61.85-6 2.72.56-2.67 2.11-5.33 6-5.87V7l4 3.73-4 3.74z\"}}]})(props);\n};\nexport function MdSentimentSatisfiedAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-2.5c2.33 0 4.32-1.45 5.12-3.5h-1.67c-.69 1.19-1.97 2-3.45 2s-2.75-.81-3.45-2H6.88c.8 2.05 2.79 3.5 5.12 3.5z\"}}]})(props);\n};\nexport function MdSip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 10.5h2v1h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-10 6.5H6.5v.75H9c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H5v-1.5h3.5v-.75H6c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h4v1.5zm3 4.5h-2V9h2v6zm6-3c0 .55-.45 1-1 1h-2.5v2H14V9h4c.55 0 1 .45 1 1v2z\"}}]})(props);\n};\nexport function MdSpeakerPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7.07L8.43 8.5c.91-.91 2.18-1.48 3.57-1.48s2.66.57 3.57 1.48L17 7.07C15.72 5.79 13.95 5 12 5s-3.72.79-5 2.07zM12 1C8.98 1 6.24 2.23 4.25 4.21l1.41 1.41C7.28 4 9.53 3 12 3s4.72 1 6.34 2.62l1.41-1.41A10.963 10.963 0 0012 1zm2.86 9.01L9.14 10C8.51 10 8 10.51 8 11.14v9.71c0 .63.51 1.14 1.14 1.14h5.71c.63 0 1.14-.51 1.14-1.14v-9.71c.01-.63-.5-1.13-1.13-1.13zM15 20H9v-8h6v8z\"}}]})(props);\n};\nexport function MdStayCurrentLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z\"}}]})(props);\n};\nexport function MdStayCurrentPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"}}]})(props);\n};\nexport function MdStayPrimaryLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z\"}}]})(props);\n};\nexport function MdStayPrimaryPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"}}]})(props);\n};\nexport function MdStopScreenShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.22 18.02l2 2H24v-2h-2.78zm.77-2l.01-10a2 2 0 00-2-2H7.22l5.23 5.23c.18-.04.36-.07.55-.1V7.02l4 3.73-1.58 1.47 5.54 5.54c.61-.33 1.03-.99 1.03-1.74zM2.39 1.73L1.11 3l1.54 1.54c-.4.36-.65.89-.65 1.48v10a2 2 0 002 2H0v2h18.13l2.71 2.71 1.27-1.27L2.39 1.73zM7 15.02c.31-1.48.92-2.95 2.07-4.06l1.59 1.59c-1.54.38-2.7 1.18-3.66 2.47z\"}}]})(props);\n};\nexport function MdSwapCalls (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4l-4 4h3v7c0 1.1-.9 2-2 2s-2-.9-2-2V8c0-2.21-1.79-4-4-4S5 5.79 5 8v7H2l4 4 4-4H7V8c0-1.1.9-2 2-2s2 .9 2 2v7c0 2.21 1.79 4 4 4s4-1.79 4-4V8h3l-4-4z\"}}]})(props);\n};\nexport function MdTextsms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z\"}}]})(props);\n};\nexport function MdUnsubscribe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 13c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm2 4h-4v-1h4v1zm-6.95 0c-.02-.17-.05-.33-.05-.5 0-2.76 2.24-5 5-5 .92 0 1.76.26 2.5.69V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h8.55zM12 10.5L5 7V5l7 3.5L19 5v2l-7 3.5z\"}}]})(props);\n};\nexport function MdVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 6C15.46 6 13 8.46 13 11.5c0 1.33.47 2.55 1.26 3.5H9.74c.79-.95 1.26-2.17 1.26-3.5C11 8.46 8.54 6 5.5 6S0 8.46 0 11.5 2.46 17 5.5 17h13c3.04 0 5.5-2.46 5.5-5.5S21.54 6 18.5 6zm-13 9C3.57 15 2 13.43 2 11.5S3.57 8 5.5 8 9 9.57 9 11.5 7.43 15 5.5 15zm13 0c-1.93 0-3.5-1.57-3.5-3.5S16.57 8 18.5 8 22 9.57 22 11.5 20.43 15 18.5 15z\"}}]})(props);\n};\nexport function MdVpnKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.65 10A5.99 5.99 0 007 6c-3.31 0-6 2.69-6 6s2.69 6 6 6a5.99 5.99 0 005.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdWifiCalling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4.95C21.79 4.78 19.67 3 16.5 3c-3.18 0-5.29 1.78-5.5 1.95L16.5 12 22 4.95z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.51c-1.24 0-2.45-.2-3.57-.57a.994.994 0 00-1.02.24l-2.2 2.2a15.149 15.149 0 01-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdAddBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\"}}]})(props);\n};\nexport function MdAddCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdAddCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\"}}]})(props);\n};\nexport function MdAddLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h8v2H8zm12.1 1H22c0-2.76-2.24-5-5-5h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1zM3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM19 12h-2v3h-3v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"}}]})(props);\n};\nexport function MdAmpStories (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 4h10v15H7zM3 6h2v11H3zM19 6h2v11h-2z\"}}]})(props);\n};\nexport function MdArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z\"}}]})(props);\n};\nexport function MdAttribution (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.5c-.91 0-2.75.46-2.75 1.38v4.62h1.5V19h2.5v-4.5h1.5V9.88c0-.91-1.84-1.38-2.75-1.38z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z\"}}]})(props);\n};\nexport function MdBallot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M13 9.5h5v-2h-5v2zm0 7h5v-2h-5v2zm6 4.5H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v14c0 1.1-.9 2-2 2zM6 11h5V6H6v5zm1-4h3v3H7V7zM6 18h5v-5H6v5zm1-4h3v3H7v-3z\"}}]})(props);\n};\nexport function MdBiotech (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19c-1.1 0-2 .9-2 2h14c0-1.1-.9-2-2-2h-4v-2h3c1.1 0 2-.9 2-2h-8c-1.66 0-3-1.34-3-3 0-1.09.59-2.04 1.46-2.56C8.17 9.03 8 8.54 8 8c0-.21.04-.42.09-.62A5.01 5.01 0 005 12c0 2.76 2.24 5 5 5v2H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.56 5.51C11.91 5.54 13 6.64 13 8c0 .75-.33 1.41-.85 1.87l.59 1.62.94-.34.34.94 1.88-.68-.34-.94.94-.34-2.74-7.53-.94.34-.34-.94-1.88.68.34.94-.94.35.56 1.54z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10.5\",\"cy\":\"8\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdBlockFlipped (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0-5.5-4.5-10-10-10S2 6.5 2 12s4.5 10 10 10 10-4.5 10-10zM5.7 7.1l11.2 11.2c-1.3 1.1-3 1.7-4.9 1.7-4.4 0-8-3.6-8-8 0-1.9.6-3.6 1.7-4.9zM20 12c0 1.9-.6 3.6-1.7 4.9L7.1 5.7C8.4 4.6 10.1 4 12 4c4.4 0 8 3.6 8 8z\"}}]})(props);\n};\nexport function MdBlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9A7.902 7.902 0 014 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1A7.902 7.902 0 0120 12c0 4.42-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 21h-1l1-7H7.5c-.58 0-.57-.32-.38-.66.19-.34.05-.08.07-.12C8.48 10.94 10.42 7.54 13 3h1l-1 7h3.5c.49 0 .56.33.47.51l-.07.15C12.96 17.55 11 21 11 21z\"}}]})(props);\n};\nexport function MdCalculate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5.97 4.06L14.09 6l1.41 1.41L16.91 6l1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.4-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.42zm-6.78.66h5v1.5h-5v-1.5zM11.5 16h-2v2H8v-2H6v-1.5h2v-2h1.5v2h2V16zm6.5 1.25h-5v-1.5h5v1.5zm0-2.5h-5v-1.5h5v1.5z\"}}]})(props);\n};\nexport function MdChangeCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm.06 17v-2.01H12c-1.28 0-2.56-.49-3.54-1.46a5.006 5.006 0 01-.64-6.29l1.1 1.1c-.71 1.33-.53 3.01.59 4.13.7.7 1.62 1.03 2.54 1.01v-2.14l2.83 2.83L12.06 19zm4.11-4.24l-1.1-1.1c.71-1.33.53-3.01-.59-4.13A3.482 3.482 0 0012 8.5h-.06v2.15L9.11 7.83 11.94 5v2.02c1.3-.02 2.61.45 3.6 1.45 1.7 1.7 1.91 4.35.63 6.29z\"}}]})(props);\n};\nexport function MdClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"}}]})(props);\n};\nexport function MdContentCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\"}}]})(props);\n};\nexport function MdContentCut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"2\",\"fill\":\"none\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\".5\",\"fill\":\"none\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"2\",\"fill\":\"none\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z\"}}]})(props);\n};\nexport function MdContentPasteOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.42zM5 19V7.83L16.17 19H5zM17 8V5h2v11.17l2 2V5c0-1.1-.9-2-2-2h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5.83l5 5H17zm-5-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}}]})(props);\n};\nexport function MdContentPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z\"}}]})(props);\n};\nexport function MdCopyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H9c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H9V4h9v12zM3 15v-2h2v2H3zm0-5.5h2v2H3v-2zM10 20h2v2h-2v-2zm-7-1.5v-2h2v2H3zM5 22c-1.1 0-2-.9-2-2h2v2zm3.5 0h-2v-2h2v2zm5 0v-2h2c0 1.1-.9 2-2 2zM5 6v2H3c0-1.1.9-2 2-2z\"}}]})(props);\n};\nexport function MdCreate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 000-1.41l-2.34-2.34a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"}}]})(props);\n};\nexport function MdDeleteSweep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3v10zM14 5h-3l-1-1H6L5 5H2v2h12z\"}}]})(props);\n};\nexport function MdDrafts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13L3.74 7.84 12 3l8.26 4.84L12 13z\"}}]})(props);\n};\nexport function MdDynamicFeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8H6v7c0 1.1.9 2 2 2h9v-2H8V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3h-8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8h-8V7h8v4zM4 12H2v7c0 1.1.9 2 2 2h9v-2H4v-7z\"}}]})(props);\n};\nexport function MdFileCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z\"}}]})(props);\n};\nexport function MdFilterList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\"}}]})(props);\n};\nexport function MdFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z\"}}]})(props);\n};\nexport function MdFontDownloadOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.58 9.75l-.87-.87.23-.66h.1l.54 1.53zm-2.23-2.23L10.92 6h2.14l2.55 6.79L22 19.17V4c0-1.1-.9-2-2-2H4.83l5.52 5.52zm10.14 15.79L19.17 22H4c-1.1 0-2-.9-2-2V4.83L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zm-8.39-8.38l-3.3-3.3L6.41 18h2.08l1.09-3.07h2.52z\"}}]})(props);\n};\nexport function MdFontDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"baseProfile\":\"tiny\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z\"}}]})(props);\n};\nexport function MdForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8V4l8 8-8 8v-4H4V8z\"}}]})(props);\n};\nexport function MdGesture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z\"}}]})(props);\n};\nexport function MdHowToReg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"g\",\"attr\":{\"fillRule\":\"evenodd\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17l3-2.94a9.34 9.34 0 00-1-.06c-2.67 0-8 1.34-8 4v2h9l-3-3zm2-5c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4M15.47 20.5L12 17l1.4-1.41 2.07 2.08 5.13-5.17 1.4 1.41z\"}}]}]})(props);\n};\nexport function MdHowToVote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 002-2v-4l-3-3zm-1-5.05l-4.95 4.95-3.54-3.54 4.95-4.95L17 7.95zm-4.24-5.66L6.39 8.66a.996.996 0 000 1.41l4.95 4.95c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 000-1.41L14.16 2.3a.975.975 0 00-1.4-.01z\"}}]})(props);\n};\nexport function MdInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10z\"}}]})(props);\n};\nexport function MdInsights (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9l.94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11L4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z\"}}]})(props);\n};\nexport function MdInventory2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-5 12H9v-2h6v2zm5-7H4V4h16v3z\"}}]})(props);\n};\nexport function MdInventory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-5 12H9v-2h6v2zm5-7H4V4l16-.02V7z\"}}]})(props);\n};\nexport function MdLinkOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5zm-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11A4.991 4.991 0 002 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3 2 4.27z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 24V0\"}}]})(props);\n};\nexport function MdLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"}}]})(props);\n};\nexport function MdLowPriority (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 5h8v2h-8zm0 5.5h8v2h-8zm0 5.5h8v2h-8zM2 11.5C2 15.08 4.92 18 8.5 18H9v2l3-3-3-3v2h-.5C6.02 16 4 13.98 4 11.5S6.02 7 8.5 7H12V5H8.5C4.92 5 2 7.92 2 11.5z\"}}]})(props);\n};\nexport function MdMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"}}]})(props);\n};\nexport function MdMarkunread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"}}]})(props);\n};\nexport function MdMoveToInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z\"}}]})(props);\n};\nexport function MdNextWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-4V5zm1 13.5l-1-1 3-3-3-3 1-1 4 4-4 4z\"}}]})(props);\n};\nexport function MdOutlinedFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-1-2H5v17h2v-7h5l1 2h7V6h-6zm4 8h-4l-1-2H7V6h5l1 2h5v6z\"}}]})(props);\n};\nexport function MdPolicy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5l-9-4-9 4v6c0 5.55 3.84 10.74 9 12 2.3-.56 4.33-1.9 5.88-3.71l-3.12-3.12a4.994 4.994 0 01-6.29-.64 5.003 5.003 0 010-7.07 5.003 5.003 0 017.07 0 5.006 5.006 0 01.64 6.29l2.9 2.9C20.29 15.69 21 13.38 21 11V5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function MdPushPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z\"}}]})(props);\n};\nexport function MdRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16a8.002 8.002 0 017.6-5.5c1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\"}}]})(props);\n};\nexport function MdRemoveCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdRemoveCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z\"}}]})(props);\n};\nexport function MdRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13H5v-2h14v2z\"}}]})(props);\n};\nexport function MdReplyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6 1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z\"}}]})(props);\n};\nexport function MdReply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z\"}}]})(props);\n};\nexport function MdReportGmailerrorred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM19 14.9L14.9 19H9.1L5 14.9V9.1L9.1 5h5.8L19 9.1v5.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v6h-2zM11 15h2v2h-2z\"}}]})(props);\n};\nexport function MdReportOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v2.92l6.91 6.91 1.09-1.1V8.27L15.73 3H8.27L7.18 4.1 11 7.92zm11.27 14.73l-20-20.01L1 2.99l3.64 3.64L3 8.27v7.46L8.27 21h7.46l1.64-1.63L21 23l1.27-1.27zM12 17.3c-.72 0-1.3-.58-1.3-1.3s.58-1.3 1.3-1.3 1.3.58 1.3 1.3-.58 1.3-1.3 1.3z\"}}]})(props);\n};\nexport function MdReport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z\"}}]})(props);\n};\nexport function MdSaveAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z\"}}]})(props);\n};\nexport function MdSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z\"}}]})(props);\n};\nexport function MdSelectAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z\"}}]})(props);\n};\nexport function MdSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"}}]})(props);\n};\nexport function MdShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z\"}}]})(props);\n};\nexport function MdSort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z\"}}]})(props);\n};\nexport function MdSquareFoot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.66 17.66l-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06L9.7 9.7l-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06L4 4v14c0 1.1.9 2 2 2h14l-2.34-2.34zM7 17v-5.76L12.76 17H7z\"}}]})(props);\n};\nexport function MdStackedBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10h3v10H6zm0-5h3v4H6zm10 11h3v4h-3zm0-3h3v2h-3zm-5 0h3v7h-3zm0-4h3v3h-3z\"}}]})(props);\n};\nexport function MdStream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.05 8.59L6.03 4.55h-.01l-.31-.32-1.42 1.41 4.02 4.05.01-.01.31.32zm3.893.027l4.405-4.392L19.76 5.64l-4.405 4.393zM10.01 15.36l-1.42-1.41-4.03 4.01-.32.33 1.41 1.41 4.03-4.02zm9.75 2.94l-3.99-4.01-.36-.35L14 15.35l3.99 4.01.35.35z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}}]})(props);\n};\nexport function MdTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10V8h-4V4h-2v4h-4V4H8v4H4v2h4v4H4v2h4v4h2v-4h4v4h2v-4h4v-2h-4v-4h4zm-6 4h-4v-4h4v4z\"}}]})(props);\n};\nexport function MdTextFormat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z\"}}]})(props);\n};\nexport function MdUnarchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.55 5.22l-1.39-1.68A1.51 1.51 0 0018 3H6c-.47 0-.88.21-1.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19a2 2 0 002 2h14c1.1 0 2-.9 2-2V6.5c0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.93 1H5.12z\"}}]})(props);\n};\nexport function MdUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\"}}]})(props);\n};\nexport function MdUpcoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.16 7.26l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM11 3h2v5h-2zM6.4 10.81L7.81 9.4 4.26 5.84 2.84 7.26c.11.03 3.56 3.55 3.56 3.55zM20 12h-5c0 1.66-1.34 3-3 3s-3-1.34-3-3H4c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdWaves (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.99c-1.35 0-2.2.42-2.95.8-.65.33-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.38-1.57-.8-2.95-.8s-2.2.42-2.95.8c-.65.33-1.17.6-2.05.6v1.95c1.35 0 2.2-.42 2.95-.8.65-.33 1.17-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.42 2.95-.8c.65-.33 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8v-1.95c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8zm0-4.45c-1.35 0-2.2.43-2.95.8-.65.32-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.38-1.57-.8-2.95-.8s-2.2.43-2.95.8c-.65.32-1.17.6-2.05.6v1.95c1.35 0 2.2-.43 2.95-.8.65-.35 1.15-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.35 1.15-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.58.8 2.95.8v-1.95c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8zm2.95-8.08c-.75-.38-1.58-.8-2.95-.8s-2.2.42-2.95.8c-.65.32-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.37-1.57-.8-2.95-.8s-2.2.42-2.95.8c-.65.33-1.17.6-2.05.6v1.93c1.35 0 2.2-.43 2.95-.8.65-.33 1.17-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.32 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8V5.04c-.9 0-1.4-.25-2.05-.58zM17 8.09c-1.35 0-2.2.43-2.95.8-.65.35-1.15.6-2.05.6s-1.4-.25-2.05-.6c-.75-.38-1.57-.8-2.95-.8s-2.2.43-2.95.8c-.65.35-1.15.6-2.05.6v1.95c1.35 0 2.2-.43 2.95-.8.65-.32 1.18-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.32 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8V9.49c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8z\"}}]})(props);\n};\nexport function MdWebStories (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2V4zM3 20c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v16zm19-2c.83 0 1.5-.67 1.5-1.5v-9c0-.83-.67-1.5-1.5-1.5v12z\"}}]})(props);\n};\nexport function MdWeekend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c-1.1 0-2 .9-2 2v3H5v-3a2 2 0 10-4 0v5c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2 1.52 2 2.81V14h12v-2.03c0-1.3.84-2.4 2-2.81V7c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdWhereToVote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c3.86 0 7 3.14 7 7 0 5.25-7 13-7 13S5 14.25 5 9c0-3.86 3.14-7 7-7zm-1.53 12L17 7.41 15.6 6l-5.13 5.18L8.4 9.09 7 10.5l3.47 3.5z\"}}]})(props);\n};\nexport function Md1XMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h4v10H6V9H4V7zm11.83 4.72L18.66 7h-2.33l-1.66 2.77L13 7h-2.33l2.83 4.72L10.33 17h2.33l2-3.34 2 3.34H19l-3.17-5.28z\"}}]})(props);\n};\nexport function Md30Fps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 5v3h6v2.5H3v3h5V16H2v3h6c1.66 0 3-1.34 3-3v-1.9A2.1 2.1 0 008.9 12 2.1 2.1 0 0011 9.9V8c0-1.66-1.34-3-3-3H2zm17 3v8h-4V8h4m0-3h-4c-1.66 0-3 1.34-3 3v8c0 1.66 1.34 3 3 3h4c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3z\"}}]})(props);\n};\nexport function Md3GMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7v2h5v2H4v2h4v2H3v2h5c1.1 0 2-.9 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.1-.9-2-2-2H3zm18 4v4c0 1.1-.9 2-2 2h-5c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h5c1.1 0 2 .9 2 2h-7v6h5v-2h-2.5v-2H21z\"}}]})(props);\n};\nexport function Md4GMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7H7v5H5V7H3v7h4v3h2v-3h2v-2H9V7zm8 4v2h2v2h-5V9h7c0-1.1-.9-2-2-2h-5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4z\"}}]})(props);\n};\nexport function Md4GPlusMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11v2h2v2h-4V9h6c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h4c1.1 0 2-.9 2-2v-4h-4zm11 0h-2V9h-2v2h-2v2h2v2h2v-2h2v-2zM7 7H5v5H3V7H1v7h4v3h2v-3h1v-2H7V7z\"}}]})(props);\n};\nexport function Md60Fps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8v8h-4V8h4m0-3h-4c-1.66 0-3 1.34-3 3v8c0 1.66 1.34 3 3 3h4c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3zm-9 3V5H5C3.34 5 2 6.34 2 8v8c0 1.66 1.34 3 3 3h3c1.66 0 3-1.34 3-3v-3c0-1.66-1.34-3-3-3H5V8h5zm-2 5v3H5v-3h3z\"}}]})(props);\n};\nexport function MdAccessAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdAccessAlarms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M-618-568H782v3600H-618zM0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.7l-4.6-3.9-1.3 1.5 4.6 3.9L22 5.7zM7.9 3.4L6.6 1.9 2 5.7l1.3 1.5 4.6-3.8zM12.5 8H11v6l4.7 2.9.8-1.2-4-2.4V8zM12 4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z\"}}]})(props);\n};\nexport function MdAccessTimeFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm3.3 14.71L11 12.41V7h2v4.59l3.71 3.71-1.42 1.41z\"}}]})(props);\n};\nexport function MdAccessTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"}}]})(props);\n};\nexport function MdAdUnits (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14zM8 6h8v2H8z\"}}]})(props);\n};\nexport function MdAddAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z\"}}]})(props);\n};\nexport function MdAddToHomeScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 1.01L8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM10 15h2V8H5v2h3.59L3 15.59 4.41 17 10 11.41z\"}}]})(props);\n};\nexport function MdAir (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 17c0 1.65-1.35 3-3 3s-3-1.35-3-3h2c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1H2v-2h9.5c1.65 0 3 1.35 3 3zM19 6.5C19 4.57 17.43 3 15.5 3S12 4.57 12 6.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S16.33 8 15.5 8H2v2h13.5c1.93 0 3.5-1.57 3.5-3.5zm-.5 4.5H2v2h16.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5v2c1.93 0 3.5-1.57 3.5-3.5S20.43 11 18.5 11z\"}}]})(props);\n};\nexport function MdAirplaneTicket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.19 4H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.81-2-1.81-2zm-2.46 9.3l-8.86 2.36-1.66-2.88.93-.25 1.26.99 2.39-.64-2.4-4.16 1.4-.38 4.01 3.74 2.44-.65a.967.967 0 011.18.68.988.988 0 01-.69 1.19z\"}}]})(props);\n};\nexport function MdAirplanemodeActive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-2l-8.5-5V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V9L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-5.5L22 16z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdAirplanemodeInactive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 7.67V3.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V9l8.5 5v2l-4.49-1.32-7.01-7.01zm9.28 14.94l1.41-1.41-7.69-7.7-3.94-3.94-6.75-6.75-1.42 1.41 6.38 6.38L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-2.67l6.28 6.28z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdAod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 18H7V6h10v12zm-9-8h8v1.5H8V10zm1 3h6v1.5H9V13z\"}}]})(props);\n};\nexport function MdBatteryAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z\"}}]})(props);\n};\nexport function MdBatteryChargingFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM11 20v-5.5H9L13 7v5.5h2L11 20z\"}}]})(props);\n};\nexport function MdBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z\"}}]})(props);\n};\nexport function MdBatterySaver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h-2V2h-4v2H8c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10h-2v2h-2v-2H9v-2h2v-2h2v2h2v2z\"}}]})(props);\n};\nexport function MdBatteryStd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z\"}}]})(props);\n};\nexport function MdBatteryUnknown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zm-2.72 13.95h-1.9v-1.9h1.9v1.9zm1.35-5.26s-.38.42-.67.71c-.48.48-.83 1.15-.83 1.6h-1.6c0-.83.46-1.52.93-2l.93-.94A1.498 1.498 0 0012 9.5c-.83 0-1.5.67-1.5 1.5H9c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .66-.27 1.26-.7 1.69z\"}}]})(props);\n};\nexport function MdBloodtype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-5.33 4.55-8 8.48-8 11.8 0 4.98 3.8 8.2 8 8.2s8-3.22 8-8.2c0-3.32-2.67-7.25-8-11.8zm3 16H9v-2h6v2zm0-5h-2v2h-2v-2H9v-2h2V9h2v2h2v2z\"}}]})(props);\n};\nexport function MdBluetoothConnected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12l-2-2-2 2 2 2 2-2zm10.71-4.29L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88zM19 10l-2 2 2 2 2-2-2-2z\"}}]})(props);\n};\nexport function MdBluetoothDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5.83l1.88 1.88-1.6 1.6 1.41 1.41 3.02-3.02L12 2h-1v5.03l2 2v-3.2zM5.41 4L4 5.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l4.29-4.29 2.3 2.29L20 18.59 5.41 4zM13 18.17v-3.76l1.88 1.88L13 18.17z\"}}]})(props);\n};\nexport function MdBluetoothDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10H4.81l1.04-3H15V5H5.5c-.66 0-1.21.42-1.42 1.01L2 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8h-3c-1.1 0-2-.9-2-2zm-8.5 6c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3.85L19.15 1h-.5v3.79l-2.3-2.29-.7.7L18.44 6l-2.79 2.79.7.71 2.3-2.3V11h.5L22 8.14 19.85 6 22 3.85zm-2.35-.94l.94.94-.94.94V2.91zm.94 5.23l-.94.94V7.2l.94.94z\"}}]})(props);\n};\nexport function MdBluetoothSearching (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2a9.936 9.936 0 001.54-5.31c-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.71 7.71L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdBrightnessAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.85 12.65h2.3L12 9l-1.15 3.65zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9h-1.9z\"}}]})(props);\n};\nexport function MdBrightnessHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdBrightnessLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdBrightnessMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdCable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z\"}}]})(props);\n};\nexport function MdCameraswitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7h-1l-1-1h-4L9 7H8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-4 7c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.57.51l4.48 4.48V2.04c4.72.47 8.48 4.23 8.95 8.95h2C23.34 3.02 15.49-1.59 8.57.51zM10.95 21.96c-4.72-.47-8.48-4.23-8.95-8.95H0c.66 7.97 8.51 12.58 15.43 10.48l-4.48-4.48v2.95z\"}}]})(props);\n};\nexport function MdCreditScore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h5v-2H4v-6h18V6c0-1.11-.89-2-2-2zm0 4H4V6h16v2zm-5.07 11.17l-2.83-2.83-1.41 1.41L14.93 22 22 14.93l-1.41-1.41-5.66 5.65z\"}}]})(props);\n};\nexport function MdDarkMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3a9 9 0 109 9c0-.46-.04-.92-.1-1.36a5.389 5.389 0 01-4.4 2.26 5.403 5.403 0 01-3.14-9.8c-.44-.06-.9-.1-1.36-.1z\"}}]})(props);\n};\nexport function MdDataSaverOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0112 19z\"}}]})(props);\n};\nexport function MdDataSaverOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8v3H8v2h3v3h2v-3h3v-2h-3V8h-2zm2-5.95v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0112 19z\"}}]})(props);\n};\nexport function MdDataUsage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0112 19z\"}}]})(props);\n};\nexport function MdDeveloperMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17L6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z\"}}]})(props);\n};\nexport function MdDeviceThermostat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-8c0-.55.45-1 1-1s1 .45 1 1h-1v1h1v2h-1v1h1v2h-2V5z\"}}]})(props);\n};\nexport function MdDevices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z\"}}]})(props);\n};\nexport function MdDoNotDisturbOnTotalSilence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-3.3 0-6 2.7-6 6s2.7 6 6 6 6-2.7 6-6-2.6-6-6-6zm3 7H9v-2h6v2z\"}}]})(props);\n};\nexport function MdDvr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zm-2-9H8v2h11V8zm0 4H8v2h11v-2zM7 8H5v2h2V8zm0 4H5v2h2v-2z\"}}]})(props);\n};\nexport function MdEMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9V7H8v10h8v-2h-6v-2h6v-2h-6V9h6z\"}}]})(props);\n};\nexport function MdEdgesensorHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7h2v7H3V7zm-3 3h2v7H0v-7zm22-3h2v7h-2V7zm-3 3h2v7h-2v-7zm-3-7.99L8 2c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-1.99-2-1.99zM16 17H8V7h8v10z\"}}]})(props);\n};\nexport function MdEdgesensorLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7h2v7H2V7zm18 3h2v7h-2v-7zm-4-7.99L8 2c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-1.99-2-1.99zM16 17H8V7h8v10z\"}}]})(props);\n};\nexport function MdFlashlightOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5V2H6v1.17L7.83 5zM16 11l2-3V7H9.83L16 13.17zM2.81 2.81L1.39 4.22 8 10.83V22h8v-3.17l3.78 3.78 1.41-1.41L2.81 2.81z\"}}]})(props);\n};\nexport function MdFlashlightOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2h12v3H6zM6 7v1l2 3v11h8V11l2-3V7H6zm6 8.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdFlourescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9h14v6H5zM11 2h2v3h-2zM17.286 6.399l1.79-1.803 1.42 1.41-1.79 1.802zM11 19h2v3h-2zM17.29 17.71l1.79 1.8 1.42-1.42-1.8-1.79zM3.495 6.01l1.407-1.408L6.69 6.391 5.284 7.798zM3.492 18.076l1.803-1.79 1.409 1.42-1.803 1.79z\"}}]})(props);\n};\nexport function MdFmdBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8C20 5.22 16.2 2 12 2zm1 13h-2v-2h2v2zm0-4h-2V6h2v5z\"}}]})(props);\n};\nexport function MdFmdGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8C20 5.22 16.2 2 12 2zm0 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdGMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11v2h2v2H9V9h7c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4z\"}}]})(props);\n};\nexport function MdGppBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm3.5 12.09l-1.41 1.41L12 13.42 9.91 15.5 8.5 14.09 10.59 12 8.5 9.91 9.91 8.5 12 10.59l2.09-2.09 1.41 1.41L13.42 12l2.08 2.09z\"}}]})(props);\n};\nexport function MdGppGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm-1.06 13.54L7.4 12l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41-5.64 5.66z\"}}]})(props);\n};\nexport function MdGppMaybe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm1 14h-2v-2h2v2zm0-4h-2V7h2v5z\"}}]})(props);\n};\nexport function MdGpsFixed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdGpsNotFixed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 11A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdGpsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 11A8.994 8.994 0 0013 3.06V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5A6.995 6.995 0 0119 12c0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04A8.914 8.914 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27a6.995 6.995 0 01-9.81-9.81l9.81 9.81z\"}}]})(props);\n};\nexport function MdGraphicEq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18h2V6H7v12zm4 4h2V2h-2v20zm-8-8h2v-4H3v4zm12 4h2V6h-2v12zm4-8v4h2v-4h-2z\"}}]})(props);\n};\nexport function MdGrid3X3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10V8h-4V4h-2v4h-4V4H8v4H4v2h4v4H4v2h4v4h2v-4h4v4h2v-4h4v-2h-4v-4h4zm-6 4h-4v-4h4v4z\"}}]})(props);\n};\nexport function MdGrid4X4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7V5h-3V2h-2v3h-4V2h-2v3H7V2H5v3H2v2h3v4H2v2h3v4H2v2h3v3h2v-3h4v3h2v-3h4v3h2v-3h3v-2h-3v-4h3v-2h-3V7h3zM7 7h4v4H7V7zm0 10v-4h4v4H7zm10 0h-4v-4h4v4zm0-6h-4V7h4v4z\"}}]})(props);\n};\nexport function MdGridGoldenratio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11V9h-7V2h-2v7h-2V2H9v7H2v2h7v2H2v2h7v7h2v-7h2v7h2v-7h7v-2h-7v-2h7zm-9 2h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdHMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11H9V7H7v10h2v-4h6v4h2V7h-2v4z\"}}]})(props);\n};\nexport function MdHPlusMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11H6V7H4v10h2v-4h6v4h2V7h-2v4zm10 0h-2V9h-2v2h-2v2h2v2h2v-2h2v-2z\"}}]})(props);\n};\nexport function MdHdrAutoSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zM16.5 16H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1zM3.5 18h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5zM22 18.5v-2h-1.5v2h-2V20h2v2H22v-2h2v-1.5zM11.97 5.3l-1.02 2.89h2.1L12.03 5.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.69 2 6 4.69 6 8s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm2.04 9l-.63-1.79h-2.83L9.96 11H8.74l2.63-7h1.25l2.63 7h-1.21z\"}}]})(props);\n};\nexport function MdHdrAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.04 8.04h-.09l-1.6 4.55h3.29z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm3.21 15l-.98-2.81H9.78l-1 2.81h-1.9l4.13-11h1.97l4.13 11h-1.9z\"}}]})(props);\n};\nexport function MdHdrOffSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 18.5v-1c0-.8-.7-1.5-1.5-1.5H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5v2zm6.5-2H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zm14-.5h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zM10.98 4.15L9.42 2.59c5.1-2.42 10.41 2.89 7.99 7.99l-1.56-1.56c.81-2.96-1.91-5.68-4.87-4.87zM6.34 2.34L4.93 3.76l1.66 1.66c-2.42 5.1 2.89 10.41 7.99 7.99l1.66 1.66 1.41-1.41L6.34 2.34zm1.81 4.64l4.87 4.87c-2.96.81-5.68-1.91-4.87-4.87z\"}}]})(props);\n};\nexport function MdHdrOnSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 18.5v-1c0-.8-.7-1.5-1.5-1.5H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5v2zm6.5-2H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zm14-.5h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zM12 4c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4m0-2C8.69 2 6 4.69 6 8s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6z\"}}]})(props);\n};\nexport function MdLensBlur (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdLightMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58a.996.996 0 00-1.41 0 .996.996 0 000 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37a.996.996 0 00-1.41 0 .996.996 0 000 1.41l1.06 1.06c.39.39 1.03.39 1.41 0a.996.996 0 000-1.41l-1.06-1.06zm1.06-10.96a.996.996 0 000-1.41.996.996 0 00-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36a.996.996 0 000-1.41.996.996 0 00-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z\"}}]})(props);\n};\nexport function MdLocationDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 11A8.994 8.994 0 0013 3.06V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5A6.995 6.995 0 0119 12c0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04A8.914 8.914 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27a6.995 6.995 0 01-9.81-9.81l9.81 9.81z\"}}]})(props);\n};\nexport function MdLocationSearching (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 11A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdLteMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14h3v2H4V8h2v6zm3-4h2v6h2v-6h2V8H9v2zm12 0V8h-5v8h5v-2h-3v-1h3v-2h-3v-1h3z\"}}]})(props);\n};\nexport function MdLtePlusMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14h3v2H1V8h2v6zm2-4h2v6h2v-6h2V8H5v2zm7 6h5v-2h-3v-1h3v-2h-3v-1h3V8h-5v8zm12-5h-2V9h-2v2h-2v2h2v2h2v-2h2v-2z\"}}]})(props);\n};\nexport function MdMediaBluetoothOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6.17V3h6v4h-4v1.17l-2-2zM19.42 15L22 17.57l-.8.8-6.78-6.78.8-.8 2.75 2.75V9h.6L22 12.43 19.42 15zm-.25-1.45l1.13-1.13-1.13-1.13v2.26zm2.02 7.64l-1.41 1.41-3.98-3.98-.58.58-.85-.85.58-.58L11 13.83V17c0 2.21-1.78 4-3.99 4S3 19.21 3 17s1.79-4 4.01-4c.73 0 1.41.21 2 .55v-1.72L1.39 4.22 2.8 2.81l18.39 18.38z\"}}]})(props);\n};\nexport function MdMediaBluetoothOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3l.01 10.55c-.6-.34-1.28-.55-2-.55a4.001 4.001 0 100 8C9.23 21 11 19.21 11 17V7h4V3H9zm12 9.43L17.57 9h-.6v4.55l-2.75-2.75-.85.85L16.73 15l-3.35 3.35.85.85 2.75-2.75V21h.6L21 17.57 18.42 15 21 12.43zm-2.83-1.13l1.13 1.13-1.13 1.13V11.3zm1.13 6.27l-1.13 1.13v-2.26l1.13 1.13z\"}}]})(props);\n};\nexport function MdMedication (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3h12v2H6zM17 6H7c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-1 9h-2.5v2.5h-3V15H8v-3h2.5V9.5h3V12H16v3z\"}}]})(props);\n};\nexport function MdMobileFriendly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7.01 13.47l-2.55-2.55-1.27 1.27L7 16l7.19-7.19-1.27-1.27z\"}}]})(props);\n};\nexport function MdMobileOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.76 2.49L1.49 3.76 5 7.27V21c0 1.1.9 2 2 2h10c1.02 0 1.85-.77 1.98-1.75l1.72 1.72 1.27-1.27L2.76 2.49zM7 19V9.27L16.73 19H7zM17 5v9.17l2 2V3c0-1.1-.9-2-2-2H7c-.85 0-1.58.54-1.87 1.3L7.83 5H17z\"}}]})(props);\n};\nexport function MdMobiledataOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7h3l-4-4-4 4h3v4.17l2 2zM2.81 2.81L1.39 4.22 8 10.83v6.18l-3 .01L9 21l4-4-3 .01v-4.18l9.78 9.78 1.41-1.42z\"}}]})(props);\n};\nexport function MdModeNight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 2c-1.82 0-3.53.5-5 1.35 2.99 1.73 5 4.95 5 8.65s-2.01 6.92-5 8.65c1.47.85 3.18 1.35 5 1.35 5.52 0 10-4.48 10-10S15.02 2 9.5 2z\"}}]})(props);\n};\nexport function MdModeStandby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z\"}}]})(props);\n};\nexport function MdMonitorWeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8.5h1v1h-1zM11.5 8.5h1v1h-1zM13 8.5h1v1h-1z\"}}]})(props);\n};\nexport function MdNearbyError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.57l4.42 4.42L12 16.41l-4.42-4.42L12 7.57zm0 11.62l-7.2-7.2 7.2-7.2 6 6V7.16l-4.58-4.58c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0L18 16.82v-3.63l-6 6zm8 .81h2v2h-2v-2zm2-10h-2v8h2v-8\"}}]})(props);\n};\nexport function MdNearbyOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 13.42L18.83 16l-1.81-1.81L19.2 12 12 4.8 9.81 6.99 8 5.17l2.58-2.58c.78-.78 2.05-.78 2.83 0l8 8c.79.78.79 2.04 0 2.83zm-.22 7.77l-1.41 1.41L16 18.83l-2.58 2.58c-.78.78-2.05.78-2.83 0l-8-8c-.78-.78-.78-2.05 0-2.83L5.17 8 1.39 4.22 2.8 2.81l18.39 18.38zm-7-4.17l-1.39-1.39-.8.8L7.58 12l.8-.8-1.4-1.39L4.8 12l7.2 7.2 2.19-2.18zM16.42 12L12 7.58l-.8.8 4.42 4.42.8-.8z\"}}]})(props);\n};\nexport function MdNetworkCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20V2L2 22zm18-2h-3V9.83l3-3V20z\"}}]})(props);\n};\nexport function MdNetworkWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98zm-21.08.09C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07l-1.43 1.43C17.5 8.94 14.86 8 12 8s-5.5.94-7.65 2.51L2.92 9.07z\"}}]})(props);\n};\nexport function MdNfc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M4 20h16V4H4v16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16zM18 6h-5c-1.1 0-2 .9-2 2v2.28c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V8h3v8H8V8h2V6H6v12h12V6z\"}}]})(props);\n};\nexport function MdNightlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2c1.82 0 3.53.5 5 1.35-2.99 1.73-5 4.95-5 8.65s2.01 6.92 5 8.65A9.973 9.973 0 0114 22C8.48 22 4 17.52 4 12S8.48 2 14 2z\"}}]})(props);\n};\nexport function MdNoteAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM9.1 17H7v-2.14l5.96-5.96 2.12 2.12L9.1 17zm7.75-7.73l-1.06 1.06-2.12-2.12 1.06-1.06c.2-.2.51-.2.71 0l1.41 1.41c.2.2.2.51 0 .71z\"}}]})(props);\n};\nexport function MdPassword (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17h20v2H2v-2zm1.15-4.05L4 11.47l.85 1.48 1.3-.75-.85-1.48H7v-1.5H5.3l.85-1.47L4.85 7 4 8.47 3.15 7l-1.3.75.85 1.47H1v1.5h1.7l-.85 1.48 1.3.75zm6.7-.75l1.3.75.85-1.48.85 1.48 1.3-.75-.85-1.48H15v-1.5h-1.7l.85-1.47-1.3-.75L12 8.47 11.15 7l-1.3.75.85 1.47H9v1.5h1.7l-.85 1.48zM23 9.22h-1.7l.85-1.47-1.3-.75L20 8.47 19.15 7l-1.3.75.85 1.47H17v1.5h1.7l-.85 1.48 1.3.75.85-1.48.85 1.48 1.3-.75-.85-1.48H23v-1.5z\"}}]})(props);\n};\nexport function MdPattern (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm2 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-.02 6c-.74 0-1.37.4-1.72 1h-2.54a1.98 1.98 0 00-3.44 0H8.41l3.07-3.07c.17.04.34.07.52.07 1.1 0 2-.9 2-2 0-.18-.03-.35-.07-.51l3.56-3.56c.16.04.33.07.51.07 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .18.03.35.07.51l-3.56 3.56c-.16-.04-.33-.07-.51-.07-1.1 0-2 .9-2 2 0 .18.03.35.07.51l-3.56 3.56C6.35 16.03 6.18 16 6 16c-1.1 0-2 .9-2 2s.9 2 2 2c.74 0 1.37-.4 1.72-1h2.57a1.98 1.98 0 003.44 0h2.55c.34.6.98 1 1.72 1 1.1 0 2-.9 2-2-.02-1.1-.92-2-2.02-2z\"}}]})(props);\n};\nexport function MdPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.64 15H6.49v-4.5l-.9.66-.58-.89L6.77 9h.87v6zm5.86 0H9.61v-1.02c1.07-1.07 1.77-1.77 2.13-2.15.4-.42.54-.69.54-1.06 0-.4-.31-.72-.81-.72-.52 0-.8.39-.9.72l-1.01-.42c.01-.02.18-.76 1-1.15.69-.33 1.48-.2 1.95.03.86.44.91 1.24.91 1.48 0 .64-.31 1.26-.92 1.86-.25.25-.72.71-1.4 1.39l.03.05h2.37V15zm5.25-.85c-.08.13-.56.85-1.76.85-.04 0-1.6.08-2.05-1.51l1.03-.41c.03.1.19.86 1.02.86.41 0 .89-.28.89-.77 0-.55-.48-.79-1.04-.79h-.5v-1h.46c.33 0 .88-.14.88-.72 0-.39-.31-.65-.75-.65-.5 0-.74.32-.85.64l-.99-.41C15.2 9.9 15.68 9 16.94 9c1.09 0 1.54.64 1.62.75.33.5.28 1.16.02 1.57-.15.22-.32.38-.52.48v.07c.28.11.51.28.68.52.37.52.33 1.27.01 1.76z\"}}]})(props);\n};\nexport function MdPlayLesson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11c.34 0 .67.03 1 .08V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h7.26A6.995 6.995 0 0118 11zM7 11V4h5v7L9.5 9.5 7 11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm-1.25 7.5v-5l4 2.5-4 2.5z\"}}]})(props);\n};\nexport function MdPriceChange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm-8 6H8v1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1h-1v1H8v-1H6v-2h4v-1H7c-.55 0-1-.45-1-1V9c0-.55.45-1 1-1h1V7h2v1h2v2zm4 6.25l-2-2h4l-2 2zM14 10l2-2 2 2h-4z\"}}]})(props);\n};\nexport function MdPriceCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13V9c0-.55-.45-1-1-1H7V6h5V4H9.5V3h-2v1H6c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h4v2H5v2h2.5v1h2v-1H11c.55 0 1-.45 1-1zM19.59 12.52l-5.66 5.65-2.83-2.83-1.41 1.42L13.93 21 21 13.93z\"}}]})(props);\n};\nexport function MdQuiz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5.99 13c-.59 0-1.05-.47-1.05-1.05 0-.59.47-1.04 1.05-1.04.59 0 1.04.45 1.04 1.04-.01.58-.45 1.05-1.04 1.05zm2.5-6.17c-.63.93-1.23 1.21-1.56 1.81-.13.24-.18.4-.18 1.18h-1.52c0-.41-.06-1.08.26-1.65.41-.73 1.18-1.16 1.63-1.8.48-.68.21-1.94-1.14-1.94-.88 0-1.32.67-1.5 1.23l-1.37-.57C11.51 5.96 12.52 5 13.99 5c1.23 0 2.08.56 2.51 1.26.37.61.58 1.73.01 2.57z\"}}]})(props);\n};\nexport function MdRMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8 7.2L9 10H7L5.87 7.33H4V10H2V2h5c1.13 0 2 .87 2 2v1.33c0 .8-.53 1.54-1.2 1.87zM7 4H4v1.33h3V4z\"}}]})(props);\n};\nexport function MdRadar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.74 18.33A9.984 9.984 0 0022 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10a9.984 9.984 0 007.11-2.97c.03-.03.05-.06.07-.08.2-.2.39-.41.56-.62zM12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8c0 1.85-.63 3.54-1.69 4.9l-1.43-1.43c.69-.98 1.1-2.17 1.1-3.46 0-3.31-2.69-6-6-6s-6 2.69-6 6 2.69 6 6 6c1.3 0 2.51-.42 3.49-1.13l1.42 1.42A7.822 7.822 0 0112 20zm1.92-7.49c.17-.66.02-1.38-.49-1.9l-.02-.02c-.77-.77-2-.78-2.78-.04-.01.01-.03.02-.05.04-.78.78-.78 2.05 0 2.83l.02.02c.52.51 1.25.67 1.91.49l1.51 1.51c-.6.36-1.29.58-2.04.58-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4c0 .73-.21 1.41-.56 2l-1.5-1.51z\"}}]})(props);\n};\nexport function MdRememberMe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 14.21c-1.5-.77-3.2-1.21-5-1.21s-3.5.44-5 1.21V6h10v9.21z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"}}]})(props);\n};\nexport function MdResetTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10h-8.01V7L9 11l3.99 4v-3H21v5H3V5h18v3h2V5c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2v-5H23c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdRestartAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V2L8 6l4 4V7c3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93 0-4.42-3.58-8-8-8zM6 13c0-1.65.67-3.15 1.76-4.24L6.34 7.34A8.014 8.014 0 004 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91z\"}}]})(props);\n};\nexport function MdReviews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6.43 9.57L12 15l-1.57-3.43L7 10l3.43-1.57L12 5l1.57 3.43L17 10l-3.43 1.57z\"}}]})(props);\n};\nexport function MdRsvp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9h1.5l-1.75 6h-1.5L12.5 9H14l1 3.43L16 9zM5.1 12.9L6 15H4.5l-.85-2H2.5v2H1V9h3.5c.85 0 1.5.65 1.5 1.5v1c0 .6-.4 1.15-.9 1.4zm-.6-2.4h-2v1h2v-1zm17 2.5h-2v2H18V9h3.5c.83 0 1.5.67 1.5 1.5v1c0 .83-.67 1.5-1.5 1.5zm0-2.5h-2v1h2v-1zM11.5 9v1.5h-3v.75h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H7v-1.5h3v-.75H7.75c-.41 0-.75-.34-.75-.75v-2c0-.55.45-1 1-1h3.5z\"}}]})(props);\n};\nexport function MdScreenLockLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-2 12H5V7h14v10zm-9-1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1a2 2 0 10-4 0v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1z\"}}]})(props);\n};\nexport function MdScreenLockPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1a2 2 0 10-4 0v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1zM17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14z\"}}]})(props);\n};\nexport function MdScreenLockRotation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23.25 12.77l-2.57-2.57-1.41 1.41 2.22 2.22-5.66 5.66L4.51 8.17l5.66-5.66 2.1 2.1 1.41-1.41L11.23.75a1.49 1.49 0 00-2.12 0L2.75 7.11a1.49 1.49 0 000 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12zM8.47 20.48A10.487 10.487 0 012.5 12H1c.51 6.16 5.66 11 11.95 11l.66-.03-3.81-3.82-1.33 1.33zM16 9h5c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1v-.5a2.5 2.5 0 00-5 0V3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.8-6.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V3h-3.4v-.5z\"}}]})(props);\n};\nexport function MdScreenRotation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.48 2.52c3.27 1.55 5.61 4.72 5.97 8.48h1.5C23.44 4.84 18.29 0 12 0l-.66.03 3.81 3.81 1.33-1.32zm-6.25-.77a1.49 1.49 0 00-2.12 0L1.75 8.11a1.49 1.49 0 000 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12L10.23 1.75zm4.6 19.44L2.81 9.17l6.36-6.36 12.02 12.02-6.36 6.36zm-7.31.29A10.487 10.487 0 011.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32z\"}}]})(props);\n};\nexport function MdScreenSearchDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M9.6 16.8h4.8v1.8H9.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 6a2 2 0 00-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 002 2H0v2h24v-2h-4zM4 16V6h16v10.01L4 16zm5.097-6.047c0-1.027.836-1.864 1.864-1.864 1.027 0 1.864.837 1.864 1.864a1.867 1.867 0 01-1.864 1.864 1.867 1.867 0 01-1.864-1.864zm7.032 4.236l-2.482-2.482a3.19 3.19 0 00.527-1.754A3.216 3.216 0 0010.96 6.74a3.217 3.217 0 00-3.214 3.213 3.218 3.218 0 003.214 3.214 3.19 3.19 0 001.724-.51l2.489 2.487.955-.955z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}}]})(props);\n};\nexport function MdScreenshot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 18H7V6h10v12zM9.5 8.5H12V7H8v4h1.5V8.5zM12 17h4v-4h-1.5v2.5H12V17z\"}}]})(props);\n};\nexport function MdSdStorage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z\"}}]})(props);\n};\nexport function MdSecurityUpdateGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12zm-1-7.95l-1.41-1.41-3.54 3.54-1.41-1.41-1.41 1.41L11.05 15 16 10.05z\"}}]})(props);\n};\nexport function MdSecurityUpdateWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2zM11 7h2v6h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12z\"}}]})(props);\n};\nexport function MdSecurityUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2zm12 15H7V6h10v12zm-1-6h-3V8h-2v4H8l4 4 4-4z\"}}]})(props);\n};\nexport function MdSell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 11.41l-8.83-8.83c-.37-.37-.88-.58-1.41-.58H4c-1.1 0-2 .9-2 2v7.17c0 .53.21 1.04.59 1.41l8.83 8.83c.78.78 2.05.78 2.83 0l7.17-7.17c.78-.78.78-2.04-.01-2.83zM6.5 8C5.67 8 5 7.33 5 6.5S5.67 5 6.5 5 8 5.67 8 6.5 7.33 8 6.5 8z\"}}]})(props);\n};\nexport function MdSendToMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17h2v4c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-1.99 2-1.99L17 1c1.1 0 2 .9 2 2v4h-2V6H7v12h10v-1zm5-5l-4-4v3h-5v2h5v3l4-4z\"}}]})(props);\n};\nexport function MdSettingsSuggest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.41 6.59L15 5.5l2.41-1.09L18.5 2l1.09 2.41L22 5.5l-2.41 1.09L18.5 9l-1.09-2.41zm3.87 6.13L20.5 11l-.78 1.72-1.72.78 1.72.78.78 1.72.78-1.72L23 13.5l-1.72-.78zm-5.04 1.65l1.94 1.47-2.5 4.33-2.24-.94c-.2.13-.42.26-.64.37l-.3 2.4h-5l-.3-2.41c-.22-.11-.43-.23-.64-.37l-2.24.94-2.5-4.33 1.94-1.47c-.01-.11-.01-.24-.01-.36s0-.25.01-.37l-1.94-1.47 2.5-4.33 2.24.94c.2-.13.42-.26.64-.37L7.5 6h5l.3 2.41c.22.11.43.23.64.37l2.24-.94 2.5 4.33-1.94 1.47c.01.12.01.24.01.37s0 .24-.01.36zM13 14c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3z\"}}]})(props);\n};\nexport function MdSettingsSystemDaydream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h6.5a2.5 2.5 0 000-5h-.05c-.24-1.69-1.69-3-3.45-3-1.4 0-2.6.83-3.16 2.02h-.16A2.994 2.994 0 006 13c0 1.66 1.34 3 3 3zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\"}}]})(props);\n};\nexport function MdShareLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.02 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.42-1.43a7.941 7.941 0 01-3.9 1.62zM4.03 12c0-4.05 3.03-7.41 6.95-7.93V2.05C5.95 2.58 2.03 6.84 2.03 12c0 5.16 3.92 9.42 8.95 9.95v-2.02c-3.92-.52-6.95-3.88-6.95-7.93zM19.95 11h2.02c-.2-2.01-1-3.84-2.21-5.32l-1.43 1.43c.86 1.1 1.44 2.43 1.62 3.89zM18.34 4.26a9.981 9.981 0 00-5.32-2.21v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM18.33 16.9l1.43 1.42A9.949 9.949 0 0021.97 13h-2.02a7.941 7.941 0 01-1.62 3.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.1C16 8.61 14.1 7 12 7s-4 1.61-4 4.1c0 1.66 1.33 3.63 4 5.9 2.67-2.27 4-4.24 4-5.9zm-4 .9a1.071 1.071 0 010-2.14A1.071 1.071 0 0112 12z\"}}]})(props);\n};\nexport function MdShortcut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11l-6-6v5H8c-2.76 0-5 2.24-5 5v4h2v-4c0-1.65 1.35-3 3-3h7v5l6-6z\"}}]})(props);\n};\nexport function MdSignalCellular0Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6.83V20H6.83L20 6.83M22 2L2 22h20V2z\"}}]})(props);\n};\nexport function MdSignalCellular4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20V2z\"}}]})(props);\n};\nexport function MdSignalCellularAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4h3v16h-3zM5 14h3v6H5zm6-5h3v11h-3z\"}}]})(props);\n};\nexport function MdSignalCellularConnectedNoInternet0Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zm-2-2v2H2L22 2v6h-2V6.83L6.83 20H18z\"}}]})(props);\n};\nexport function MdSignalCellularConnectedNoInternet4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zM2 22h16V8h4V2L2 22z\"}}]})(props);\n};\nexport function MdSignalCellularNoSim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M-618-2872H782V728H-618zM-1 0h26v24H-1zm1 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88L2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M.01 0h24v24h-24z\"}}]})(props);\n};\nexport function MdSignalCellularNodata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 13h-9v9H2L22 2v11zm-1 2.41L19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41z\"}}]})(props);\n};\nexport function MdSignalCellularNull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6.83V20H6.83L20 6.83M22 2L2 22h20V2z\"}}]})(props);\n};\nexport function MdSignalCellularOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1l-8.59 8.59L21 18.18V1zM4.77 4.5L3.5 5.77l6.36 6.36L1 21h17.73l2 2L22 21.73 4.77 4.5z\"}}]})(props);\n};\nexport function MdSignalWifi0Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c3.33 0 6.49 1.08 9.08 3.07L12 18.17l-9.08-9.1C5.51 7.08 8.67 6 12 6m0-2C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0012 4z\"}}]})(props);\n};\nexport function MdSignalWifi4BarLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.98 11L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36L12 21l3.05-3.05V15c0-.45.09-.88.23-1.29.54-1.57 2.01-2.71 3.77-2.71h2.93z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z\"}}]})(props);\n};\nexport function MdSignalWifi4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z\"}}]})(props);\n};\nexport function MdSignalWifiBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z\"}}]})(props);\n};\nexport function MdSignalWifiConnectedNoInternet4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z\"}}]})(props);\n};\nexport function MdSignalWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23.64 7c-.45-.34-4.93-4-11.64-4-1.5 0-2.89.19-4.15.48L18.18 13.8 23.64 7zm-6.6 8.22L3.27 1.44 2 2.72l2.05 2.06C1.91 5.76.59 6.82.36 7l11.63 14.49.01.01.01-.01 3.9-4.86 3.32 3.32 1.27-1.27-3.46-3.46z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbar4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0012 4z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbarConnectedNoInternet4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21l5-5.01V8h5.92C19.97 5.51 16.16 4 12 4zM19 18h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10h2v6h-2z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbarNull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0012 4zM2.92 9.07C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07L12 18.17l-9.08-9.1z\"}}]})(props);\n};\nexport function MdSimCardDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4 8v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 15l-4-4h3V9.02L13 9v4h3l-4 4z\"}}]})(props);\n};\nexport function MdSplitscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4v5H6V4h12m0-2H6c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 13v5H6v-5h12m0-2H6c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdSportsScore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6H9V4h2v2zm4-2h-2v2h2V4zM9 14h2v-2H9v2zm10-4V8h-2v2h2zm0 4v-2h-2v2h2zm-6 0h2v-2h-2v2zm6-10h-2v2h2V4zm-6 4V6h-2v2h2zm-6 2V8h2V6H7V4H5v16h2v-8h2v-2H7zm8 2h2v-2h-2v2zm-4-2v2h2v-2h-2zM9 8v2h2V8H9zm4 2h2V8h-2v2zm2-4v2h2V6h-2z\"}}]})(props);\n};\nexport function MdStorage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z\"}}]})(props);\n};\nexport function MdStorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.93 8C16.72 4.18 11.82 2.87 8 5.07c-1.41.82-2.48 2-3.16 3.37-.13-2.2.22-4.4 1.02-6.44H3.74C2.2 6.49 2.52 11.58 5.07 16a7.96 7.96 0 004.86 3.72c1.98.53 4.16.31 6.07-.79 1.41-.82 2.48-2 3.16-3.37.13 2.2-.21 4.4-1.01 6.44h2.11c1.53-4.49 1.22-9.58-1.33-14zM15 17.2A6.012 6.012 0 016.8 15c-.11-.2-.21-.4-.3-.6-1.2-2.76-.17-6.06 2.5-7.6 2.86-1.65 6.54-.67 8.2 2.2.11.2.21.4.3.6 1.2 2.76.17 6.06-2.5 7.6zM12 10c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdSummarize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V9l-6-6zM8 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 1V4.5l5.5 5.5H14z\"}}]})(props);\n};\nexport function MdSystemSecurityUpdateGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12zm-1-7.95l-1.41-1.41-3.54 3.54-1.41-1.41-1.41 1.41L11.05 15 16 10.05z\"}}]})(props);\n};\nexport function MdSystemSecurityUpdateWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2zM11 7h2v6h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 17H7V6h10v12z\"}}]})(props);\n};\nexport function MdSystemSecurityUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2zm12 15H7V6h10v12zm-1-6h-3V8h-2v4H8l4 4 4-4z\"}}]})(props);\n};\nexport function MdTask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm-3.06 16L7.4 14.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L10.94 18zM13 9V3.5L18.5 9H13z\"}}]})(props);\n};\nexport function MdThermostat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-2V5c0-.55.45-1 1-1s1 .45 1 1v1h-1v1h1v2h-1v1h1v1h-2z\"}}]})(props);\n};\nexport function MdTimer10Select (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8v8h-3V8h3m0-3h-3C8.34 5 7 6.34 7 8v8c0 1.66 1.34 3 3 3h3c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3zM1 8h2v11h3V5H1v3zm17.5 3c-.83 0-1.5.68-1.5 1.5v2c0 .82.67 1.5 1.5 1.5H21v1h-4v2h4.5c.83 0 1.5-.67 1.5-1.5v-2c0-.83-.67-1.5-1.5-1.5H19v-1h4v-2h-4.5z\"}}]})(props);\n};\nexport function MdTimer3Select (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11v2h-4v1h2.5c.83 0 1.5.68 1.5 1.5v2c0 .83-.67 1.5-1.5 1.5H15v-2h4v-1h-2.5c-.82 0-1.5-.68-1.5-1.5v-2c0-.82.68-1.5 1.5-1.5H21zM4 5v3h6v2.5H4v3h6V16H4v3h6c1.66 0 3-1.34 3-3v-1.9a2.1 2.1 0 00-2.1-2.1A2.1 2.1 0 0013 9.9V8c0-1.66-1.34-3-3-3H4z\"}}]})(props);\n};\nexport function MdTungsten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 19h2v3h-2zM2 11h3v2H2zM19 11h3v2h-3zM15.894 17.801l1.407-1.407 2.122 2.122-1.408 1.407zM4.584 18.509l2.121-2.122 1.408 1.407-2.122 2.122zM15 8.02V3H9v5.02c-1.21.92-2 2.35-2 3.98 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.06-2-3.98zM11 5h2v2.1c-.32-.06-.66-.1-1-.1s-.68.04-1 .1V5z\"}}]})(props);\n};\nexport function MdUsbOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8h4v4h-1v2c0 .34-.08.66-.23.94L16 13.17V12h-1V8zm-4 .17l2 2V6h2l-3-4-3 4h2v2.17zM13 16v2.28c.6.34 1 .98 1 1.72 0 1.1-.9 2-2 2s-2-.9-2-2c0-.74.4-1.37 1-1.72V16H8c-1.11 0-2-.89-2-2v-2.28c-.6-.34-1-.98-1-1.72 0-.59.26-1.13.68-1.49L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41-6.6-6.6H13zm-2-2v-.17l-2.51-2.51c-.14.16-.31.29-.49.4V14h3z\"}}]})(props);\n};\nexport function MdUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7v4h1v2h-3V5h2l-3-4-3 4h2v8H8v-2.07c.7-.37 1.2-1.08 1.2-1.93 0-1.21-.99-2.2-2.2-2.2-1.21 0-2.2.99-2.2 2.2 0 .85.5 1.56 1.2 1.93V13c0 1.11.89 2 2 2h3v3.05c-.71.37-1.2 1.1-1.2 1.95a2.2 2.2 0 004.4 0c0-.85-.49-1.58-1.2-1.95V15h3c1.11 0 2-.89 2-2v-2h1V7h-4z\"}}]})(props);\n};\nexport function MdWallpaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9l-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z\"}}]})(props);\n};\nexport function MdWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.98 14H22h-.02zM5.35 13c1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.31 1v-2c-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1zm13.32 2c-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.1 1-3.34 1-1.24 0-1.38-1-3.33-1-1.95 0-2.1 1-3.34 1v2c1.95 0 2.11-1 3.34-1 1.24 0 1.38 1 3.33 1 1.95 0 2.1-1 3.34-1 1.19 0 1.42 1 3.33 1 1.94 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1v-2c-1.24 0-1.38-1-3.33-1zM5.35 9c1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.31 1V8c-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1C3.38 7 3.24 8 2 8v2c1.9 0 2.17-1 3.35-1z\"}}]})(props);\n};\nexport function MdWidgets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13v8h8v-8h-8zM3 21h8v-8H3v8zM3 3v8h8V3H3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65z\"}}]})(props);\n};\nexport function MdWifiCalling3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.49 3c-2.21 0-4.21.9-5.66 2.34l1.06 1.06a6.47 6.47 0 019.18 0l1.06-1.06A7.932 7.932 0 0016.49 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.03 7.46a5.022 5.022 0 00-7.08 0l1.06 1.06c.63-.63 1.51-1.03 2.47-1.03s1.84.39 2.47 1.03l1.08-1.06zM15.08 9.59L16.49 11l1.41-1.41c-.36-.37-.86-.59-1.41-.59s-1.05.22-1.41.59z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.63 14.4l-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.56.03 1.03-.44 1.03-1v-4.15c0-.48-.34-.89-.8-.98l-3.67-.73a.985.985 0 00-.9.26z\"}}]})(props);\n};\nexport function MdWifiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.98 11L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36L12 21l3.05-3.05V15c0-.45.09-.88.23-1.29.54-1.57 2.01-2.71 3.77-2.71h2.93z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z\"}}]})(props);\n};\nexport function MdWifiTetheringErrorRounded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7c-3.31 0-6 2.69-6 6 0 1.66.68 3.15 1.76 4.24l1.42-1.42A3.934 3.934 0 018 13c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.11-.45 2.1-1.18 2.82l1.42 1.42A6.003 6.003 0 0018 13c0-3.31-2.69-6-6-6zm0-4C6.48 3 2 7.48 2 13c0 2.76 1.12 5.26 2.93 7.07l1.42-1.42A7.94 7.94 0 014 13c0-4.42 3.58-8 8-8 2.53 0 4.78 1.17 6.24 3h2.42C18.93 5.01 15.7 3 12 3zm0 8c-1.1 0-2 .9-2 2 0 .55.23 1.05.59 1.41.36.36.86.59 1.41.59s1.05-.23 1.41-.59c.36-.36.59-.86.59-1.41 0-1.1-.9-2-2-2zm8-1h2v6h-2v-6zm0 8h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdWifiTetheringOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.81 2.81L1.39 4.22l2.69 2.69A9.958 9.958 0 002 13c0 2.76 1.12 5.26 2.93 7.07l1.42-1.42a7.957 7.957 0 01-.84-10.31l1.43 1.43a6.003 6.003 0 00.82 7.47l1.42-1.42A3.934 3.934 0 018 13c0-.63.15-1.23.41-1.76l1.61 1.61c0 .05-.02.1-.02.15 0 .55.23 1.05.59 1.41.36.36.86.59 1.41.59.05 0 .1-.01.16-.02l7.62 7.62 1.41-1.41L2.81 2.81zM17.7 14.87c.19-.59.3-1.22.3-1.87 0-3.31-2.69-6-6-6-.65 0-1.28.1-1.87.3l1.71 1.71C11.89 9 11.95 9 12 9c2.21 0 4 1.79 4 4 0 .05 0 .11-.01.16l1.71 1.71zM12 5c4.42 0 8 3.58 8 8 0 1.22-.27 2.37-.77 3.4l1.49 1.49A9.953 9.953 0 0022 13c0-5.52-4.48-10-10-10-1.78 0-3.44.46-4.89 1.28l1.48 1.48C9.63 5.27 10.78 5 12 5z\"}}]})(props);\n};\nexport function MdWifiTethering (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 2c0-3.31-2.69-6-6-6s-6 2.69-6 6c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.48-.81 2.75-2 3.45l1 1.74c1.79-1.04 3-2.97 3-5.19zM12 3C6.48 3 2 7.48 2 13c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 18.53 4 15.96 4 13c0-4.42 3.58-8 8-8s8 3.58 8 8c0 2.96-1.61 5.53-4 6.92l1 1.73c2.99-1.73 5-4.95 5-8.65 0-5.52-4.48-10-10-10z\"}}]})(props);\n};\nexport function MdAddChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 9.99h2v7H6zm8 3h2v4h-2zm-4-6h2v10h-2zM20 7V4h-2v3h-3v2h3v3h2V9h3V7zm-2 12H4V5h12V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5h-2v5z\"}}]})(props);\n};\nexport function MdAddComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM17 11h-4v4h-2v-4H7V9h4V5h2v4h4v2z\"}}]})(props);\n};\nexport function MdAlignHorizontalCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 2h2v5h8v3h-8v4h5v3h-5v5h-2v-5H6v-3h5v-4H3V7h8z\"}}]})(props);\n};\nexport function MdAlignHorizontalLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22H2V2h2v20zM22 7H6v3h16V7zm-6 7H6v3h10v-3z\"}}]})(props);\n};\nexport function MdAlignHorizontalRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2h2v20h-2V2zM2 10h16V7H2v3zm6 7h10v-3H8v3z\"}}]})(props);\n};\nexport function MdAlignVerticalBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22H2v-2h20v2zM10 2H7v16h3V2zm7 6h-3v10h3V8z\"}}]})(props);\n};\nexport function MdAlignVerticalCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11h-5V6h-3v5h-4V3H7v8H1.84v2H7v8h3v-8h4v5h3v-5h5z\"}}]})(props);\n};\nexport function MdAlignVerticalTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2v2H2V2h20zM7 22h3V6H7v16zm7-6h3V6h-3v10z\"}}]})(props);\n};\nexport function MdAreaChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13v7h18v-1.5l-9-7L8 17l-5-4zm0-6l4 3 5-7 5 4h4v8.97l-9.4-7.31-3.98 5.48L3 10.44V7z\"}}]})(props);\n};\nexport function MdAttachFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5a2.5 2.5 0 015 0v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5a2.5 2.5 0 005 0V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"}}]})(props);\n};\nexport function MdAttachMoney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z\"}}]})(props);\n};\nexport function MdAutoGraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.06 9.94L12 9l2.06-.94L15 6l.94 2.06L18 9l-2.06.94L15 12l-.94-2.06zM4 14l.94-2.06L7 11l-2.06-.94L4 8l-.94 2.06L1 11l2.06.94L4 14zm4.5-5l1.09-2.41L12 5.5 9.59 4.41 8.5 2 7.41 4.41 5 5.5l2.41 1.09L8.5 9zm-4 11.5l6-6.01 4 4L23 8.93l-1.41-1.41-7.09 7.97-4-4L3 19l1.5 1.5z\"}}]})(props);\n};\nexport function MdBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9.2h3V19H5zM10.6 5h2.8v14h-2.8zm5.6 8H19v6h-2.8z\"}}]})(props);\n};\nexport function MdBorderAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z\"}}]})(props);\n};\nexport function MdBorderBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11H7v2h2v-2zm4 4h-2v2h2v-2zM9 3H7v2h2V3zm4 8h-2v2h2v-2zM5 3H3v2h2V3zm8 4h-2v2h2V7zm4 4h-2v2h2v-2zm-4-8h-2v2h2V3zm4 0h-2v2h2V3zm2 10h2v-2h-2v2zm0 4h2v-2h-2v2zM5 7H3v2h2V7zm14-4v2h2V3h-2zm0 6h2V7h-2v2zM5 11H3v2h2v-2zM3 21h18v-2H3v2zm2-6H3v2h2v-2z\"}}]})(props);\n};\nexport function MdBorderClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5h2V3H7v2zm0 8h2v-2H7v2zm0 8h2v-2H7v2zm4-4h2v-2h-2v2zm0 4h2v-2h-2v2zm-8 0h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2V7H3v2zm0-4h2V3H3v2zm8 8h2v-2h-2v2zm8 4h2v-2h-2v2zm0-4h2v-2h-2v2zm0 8h2v-2h-2v2zm0-12h2V7h-2v2zm-8 0h2V7h-2v2zm8-6v2h2V3h-2zm-8 2h2V3h-2v2zm4 16h2v-2h-2v2zm0-8h2v-2h-2v2zm0-8h2V3h-2v2z\"}}]})(props);\n};\nexport function MdBorderColor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 24H2v-4h20v4zM13.06 5.19l3.75 3.75L7.75 18H4v-3.75l9.06-9.06zm4.82 2.68l-3.75-3.75 1.83-1.83a.996.996 0 011.41 0l2.34 2.34c.39.39.39 1.02 0 1.41l-1.83 1.83z\"}}]})(props);\n};\nexport function MdBorderHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h2v-2H3v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zm4 4h2v-2H7v2zM5 3H3v2h2V3zm4 0H7v2h2V3zm8 0h-2v2h2V3zm-4 4h-2v2h2V7zm0-4h-2v2h2V3zm6 14h2v-2h-2v2zm-8 4h2v-2h-2v2zm-8-8h18v-2H3v2zM19 3v2h2V3h-2zm0 6h2V7h-2v2zm-8 8h2v-2h-2v2zm4 4h2v-2h-2v2zm4 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdBorderInner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h2v-2H3v2zm4 0h2v-2H7v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zM9 3H7v2h2V3zM5 3H3v2h2V3zm12 0h-2v2h2V3zm2 6h2V7h-2v2zm0-6v2h2V3h-2zm-4 18h2v-2h-2v2zM13 3h-2v8H3v2h8v8h2v-8h8v-2h-8V3zm6 18h2v-2h-2v2zm0-4h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdBorderLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 21h2v-2h-2v2zm0-4h2v-2h-2v2zm0-12h2V3h-2v2zm0 4h2V7h-2v2zm0 4h2v-2h-2v2zm-4 8h2v-2H7v2zM7 5h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2V3H3v18zM19 9h2V7h-2v2zm-4 12h2v-2h-2v2zm4-4h2v-2h-2v2zm0-14v2h2V3h-2zm0 10h2v-2h-2v2zm0 8h2v-2h-2v2zm-4-8h2v-2h-2v2zm0-8h2V3h-2v2z\"}}]})(props);\n};\nexport function MdBorderOuter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v2h2V7zm0 4h-2v2h2v-2zm4 0h-2v2h2v-2zM3 3v18h18V3H3zm16 16H5V5h14v14zm-6-4h-2v2h2v-2zm-4-4H7v2h2v-2z\"}}]})(props);\n};\nexport function MdBorderRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h2v-2H7v2zM3 5h2V3H3v2zm4 0h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2v-2H3v2zm8 0h2v-2h-2v2zm-8-8h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm8 8h2v-2h-2v2zm4-4h2v-2h-2v2zm4-10v18h2V3h-2zm-4 18h2v-2h-2v2zm0-16h2V3h-2v2zm-4 8h2v-2h-2v2zm0-8h2V3h-2v2zm0 4h2V7h-2v2z\"}}]})(props);\n};\nexport function MdBorderStyle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21h2v-2h-2v2zm4 0h2v-2h-2v2zM7 21h2v-2H7v2zm4 0h2v-2h-2v2zm8-4h2v-2h-2v2zm0-4h2v-2h-2v2zM3 3v18h2V5h16V3H3zm16 6h2V7h-2v2z\"}}]})(props);\n};\nexport function MdBorderTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h2v-2H7v2zm0-8h2v-2H7v2zm4 0h2v-2h-2v2zm0 8h2v-2h-2v2zm-8-4h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2v-2H3v2zm0-4h2V7H3v2zm8 8h2v-2h-2v2zm8-8h2V7h-2v2zm0 4h2v-2h-2v2zM3 3v2h18V3H3zm16 14h2v-2h-2v2zm-4 4h2v-2h-2v2zM11 9h2V7h-2v2zm8 12h2v-2h-2v2zm-4-8h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdBorderVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h2V7H3v2zm0-4h2V3H3v2zm4 16h2v-2H7v2zm0-8h2v-2H7v2zm-4 0h2v-2H3v2zm0 8h2v-2H3v2zm0-4h2v-2H3v2zM7 5h2V3H7v2zm12 12h2v-2h-2v2zm-8 4h2V3h-2v18zm8 0h2v-2h-2v2zm0-8h2v-2h-2v2zm0-10v2h2V3h-2zm0 6h2V7h-2v2zm-4-4h2V3h-2v2zm0 16h2v-2h-2v2zm0-8h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdBubbleChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.2\",\"cy\":\"14.4\",\"r\":\"3.2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.8\",\"cy\":\"18\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.2\",\"cy\":\"8.8\",\"r\":\"4.8\"}}]})(props);\n};\nexport function MdChecklistRtl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7H2v2h9V7zm0 8H2v2h9v-2zm5.34-4L12.8 7.46l1.41-1.41 2.12 2.12 4.24-4.24L22 5.34 16.34 11zm0 8l-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L22 13.34 16.34 19z\"}}]})(props);\n};\nexport function MdChecklist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7h-9v2h9V7zm0 8h-9v2h9v-2zM5.54 11L2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 11zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 19z\"}}]})(props);\n};\nexport function MdDragHandle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9H4v2h16V9zM4 15h16v-2H4v2z\"}}]})(props);\n};\nexport function MdDraw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.85 10.39l1.06-1.06c.78-.78.78-2.05 0-2.83L18.5 5.09c-.78-.78-2.05-.78-2.83 0l-1.06 1.06 4.24 4.24zm-5.66-2.83L4 16.76V21h4.24l9.19-9.19-4.24-4.25zM19 17.5c0 2.19-2.54 3.5-5 3.5-.55 0-1-.45-1-1s.45-1 1-1c1.54 0 3-.73 3-1.5 0-.47-.48-.87-1.23-1.2l1.48-1.48c1.07.63 1.75 1.47 1.75 2.68zM4.58 13.35C3.61 12.79 3 12.06 3 11c0-1.8 1.89-2.63 3.56-3.36C7.59 7.18 9 6.56 9 6c0-.41-.78-1-2-1-1.26 0-1.8.61-1.83.64-.35.41-.98.46-1.4.12a.992.992 0 01-.15-1.38C3.73 4.24 4.76 3 7 3s4 1.32 4 3c0 1.87-1.93 2.72-3.64 3.47C6.42 9.88 5 10.5 5 11c0 .31.43.6 1.07.86l-1.49 1.49z\"}}]})(props);\n};\nexport function MdEditNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h11v2H3v-2zm0-2h11V6H3v2zm0 8h7v-2H3v2zm15.01-3.13l.71-.71a.996.996 0 011.41 0l.71.71c.39.39.39 1.02 0 1.41l-.71.71-2.12-2.12zm-.71.71l-5.3 5.3V21h2.12l5.3-5.3-2.12-2.12z\"}}]})(props);\n};\nexport function MdFormatAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z\"}}]})(props);\n};\nexport function MdFormatAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zm0-6v2h18V3H3z\"}}]})(props);\n};\nexport function MdFormatAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z\"}}]})(props);\n};\nexport function MdFormatAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z\"}}]})(props);\n};\nexport function MdFormatBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdFormatClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.27 5L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.55 5.27 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z\"}}]})(props);\n};\nexport function MdFormatColorFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15a1.49 1.49 0 000 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5zM2 20h20v4H2v-4z\"}}]})(props);\n};\nexport function MdFormatColorReset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 14c0-4-6-10.8-6-10.8s-1.33 1.51-2.73 3.52l8.59 8.59c.09-.42.14-.86.14-1.31zm-.88 3.12L12.5 12.5 5.27 5.27 4 6.55l3.32 3.32C6.55 11.32 6 12.79 6 14c0 3.31 2.69 6 6 6 1.52 0 2.9-.57 3.96-1.5l2.63 2.63 1.27-1.27-2.74-2.74z\"}}]})(props);\n};\nexport function MdFormatColorText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h20v4H2v-4zm3.49-3h2.42l1.27-3.58h5.65L16.09 17h2.42L13.25 3h-2.5L5.49 17zm4.42-5.61l2.03-5.79h.12l2.03 5.79H9.91z\"}}]})(props);\n};\nexport function MdFormatIndentDecrease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17h10v-2H11v2zm-8-5l4 4V8l-4 4zm0 9h18v-2H3v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\"}}]})(props);\n};\nexport function MdFormatIndentIncrease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h18v-2H3v2zM3 8v8l4-4-4-4zm8 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\"}}]})(props);\n};\nexport function MdFormatItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\"}}]})(props);\n};\nexport function MdFormatLineSpacing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm4-2v2h12V5H10zm0 14h12v-2H10v2zm0-6h12v-2H10v2z\"}}]})(props);\n};\nexport function MdFormatListBulleted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\"}}]})(props);\n};\nexport function MdFormatListNumberedRtl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17h2v.5h-1v1h1v.5h-2v1h3v-4h-3zm1-9h1V4h-2v1h1zm-1 3h1.8L18 13.1v.9h3v-1h-1.8l1.8-2.1V10h-3zM2 5h14v2H2zm0 12h14v2H2zm0-6h14v2H2z\"}}]})(props);\n};\nexport function MdFormatListNumbered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\"}}]})(props);\n};\nexport function MdFormatPaint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4V3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6h1v4H9v11c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-9h8V4h-3z\"}}]})(props);\n};\nexport function MdFormatQuote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z\"}}]})(props);\n};\nexport function MdFormatShapes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 7V1h-6v2H7V1H1v6h2v10H1v6h6v-2h10v2h6v-6h-2V7h2zM3 3h2v2H3V3zm2 18H3v-2h2v2zm12-2H7v-2H5V7h2V5h10v2h2v10h-2v2zm4 2h-2v-2h2v2zM19 5V3h2v2h-2zm-5.27 9h-3.49l-.73 2H7.89l3.4-9h1.4l3.41 9h-1.63l-.74-2zm-3.04-1.26h2.61L12 8.91l-1.31 3.83z\"}}]})(props);\n};\nexport function MdFormatSize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v3h5v12h3V7h5V4H9zm-6 8h3v7h3v-7h3V9H3v3z\"}}]})(props);\n};\nexport function MdFormatStrikethrough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z\"}}]})(props);\n};\nexport function MdFormatTextdirectionLToR (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8l-4-4v3H5v2h12v3l4-4z\"}}]})(props);\n};\nexport function MdFormatTextdirectionRToL (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zm-2 7v-3l-4 4 4 4v-3h12v-2H8z\"}}]})(props);\n};\nexport function MdFormatUnderlined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\"}}]})(props);\n};\nexport function MdFunctions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z\"}}]})(props);\n};\nexport function MdHeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6.99h3L12 3 8 6.99h3v10.02H8L12 21l4-3.99h-3z\"}}]})(props);\n};\nexport function MdHighlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14l3 3v5h6v-5l3-3V9H6v5zm5-12h2v3h-2V2zM3.5 5.88l1.41-1.41 2.12 2.12L5.62 8 3.5 5.88zm13.46.71l2.12-2.12 1.41 1.41L18.38 8l-1.42-1.41z\"}}]})(props);\n};\nexport function MdHorizontalDistribute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22H2V2h2v20zM22 2h-2v20h2V2zm-8.5 5h-3v10h3V7z\"}}]})(props);\n};\nexport function MdHorizontalRule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 11h16v2H4z\"}}]})(props);\n};\nexport function MdInsertChartOutlined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4zm2.5 2.1h-15V5h15v14.1zm0-16.1h-15c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdInsertChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdInsertComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z\"}}]})(props);\n};\nexport function MdInsertDriveFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z\"}}]})(props);\n};\nexport function MdInsertEmoticon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"}}]})(props);\n};\nexport function MdInsertInvitation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"}}]})(props);\n};\nexport function MdInsertLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"}}]})(props);\n};\nexport function MdInsertPhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\"}}]})(props);\n};\nexport function MdLinearScale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 9.5c-1.03 0-1.9.62-2.29 1.5h-2.92c-.39-.88-1.26-1.5-2.29-1.5s-1.9.62-2.29 1.5H6.79c-.39-.88-1.26-1.5-2.29-1.5a2.5 2.5 0 000 5c1.03 0 1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5s1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5a2.5 2.5 0 000-5z\"}}]})(props);\n};\nexport function MdMargin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18V3H3zm16 16H5V5h14v14zM11 7h2v2h-2zM7 7h2v2H7zm8 0h2v2h-2zm-8 4h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2z\"}}]})(props);\n};\nexport function MdMergeType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\"}}]})(props);\n};\nexport function MdModeComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z\"}}]})(props);\n};\nexport function MdModeEditOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 5.63l-2.34-2.34a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 000-1.41z\"}}]})(props);\n};\nexport function MdModeEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 000-1.41l-2.34-2.34a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"}}]})(props);\n};\nexport function MdMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 5.63l-2.34-2.34a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 000-1.41z\"}}]})(props);\n};\nexport function MdMonetizationOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.41 16.09V20h-2.67v-1.93c-1.71-.36-3.16-1.46-3.27-3.4h1.96c.1 1.05.82 1.87 2.65 1.87 1.96 0 2.4-.98 2.4-1.59 0-.83-.44-1.61-2.67-2.14-2.48-.6-4.18-1.62-4.18-3.67 0-1.72 1.39-2.84 3.11-3.21V4h2.67v1.95c1.86.45 2.79 1.86 2.85 3.39H14.3c-.05-1.11-.64-1.87-2.22-1.87-1.5 0-2.4.68-2.4 1.64 0 .84.65 1.39 2.67 1.91s4.18 1.39 4.18 3.91c-.01 1.83-1.38 2.83-3.12 3.16z\"}}]})(props);\n};\nexport function MdMoneyOffCsred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.53 7.43c.42-.31.93-.47 1.54-.47s1.11.16 1.5.49c.39.32.65.7.79 1.12l1.89-.8c-.24-.71-.71-1.35-1.4-1.92-.5-.4-1.12-.65-1.85-.77V3h-2v2.11c-.41.08-.79.21-1.14.39-.35.18-.64.39-.9.63l1.43 1.43c.04-.04.09-.09.14-.13zM2.81 2.81L1.39 4.22l12.35 12.35c-.43.28-.95.43-1.55.43-.71 0-1.32-.23-1.83-.7-.5-.47-.86-1.07-1.06-1.81l-1.98.8c.34 1.17.95 2.08 1.83 2.73.57.42 1.19.68 1.85.83V21h2v-2.08c.44-.07.87-.17 1.29-.35.34-.14.64-.32.92-.53l4.57 4.57 1.41-1.41L2.81 2.81z\"}}]})(props);\n};\nexport function MdMoneyOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 6.9c1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-.53.12-1.03.3-1.48.54l1.47 1.47c.41-.17.91-.27 1.51-.27zM5.33 4.06L4.06 5.33 7.5 8.77c0 2.08 1.56 3.21 3.91 3.91l3.51 3.51c-.34.48-1.05.91-2.42.91-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c.96-.18 1.82-.55 2.45-1.12l2.22 2.22 1.27-1.27L5.33 4.06z\"}}]})(props);\n};\nexport function MdMultilineChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6.92l-1.41-1.41-2.85 3.21C15.68 6.4 12.83 5 9.61 5 6.72 5 4.07 6.16 2 8l1.42 1.42C5.12 7.93 7.27 7 9.61 7c2.74 0 5.09 1.26 6.77 3.24l-2.88 3.24-4-4L2 16.99l1.5 1.5 6-6.01 4 4 4.05-4.55c.75 1.35 1.25 2.9 1.44 4.55H21c-.22-2.3-.95-4.39-2.04-6.14L22 6.92z\"}}]})(props);\n};\nexport function MdNotes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h12v-2H3v2zM3 6v2h18V6H3zm0 7h18v-2H3v2z\"}}]})(props);\n};\nexport function MdPadding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18V3H3zm16 16H5V5h14v14zM11 7h2v2h-2zM7 7h2v2H7zm8 0h2v2h-2z\"}}]})(props);\n};\nexport function MdPieChartOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 2.07c3.61.45 6.48 3.33 6.93 6.93H13V4.07zM4 12c0-4.06 3.07-7.44 7-7.93v15.87c-3.93-.5-7-3.88-7-7.94zm9 7.93V13h6.93A8.002 8.002 0 0113 19.93z\"}}]})(props);\n};\nexport function MdPieChartOutlined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 2.07c3.61.45 6.48 3.33 6.93 6.93H13V4.07zM4 12c0-4.06 3.07-7.44 7-7.93v15.87c-3.93-.5-7-3.88-7-7.94zm9 7.93V13h6.93A8.002 8.002 0 0113 19.93z\"}}]})(props);\n};\nexport function MdPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 2v20c-5.07-.5-9-4.79-9-10s3.93-9.5 9-10zm2.03 0v8.99H22c-.47-4.74-4.24-8.52-8.97-8.99zm0 11.01V22c4.74-.47 8.5-4.25 8.97-8.99h-8.97z\"}}]})(props);\n};\nexport function MdPostAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 19.22H5V7h7V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-7h-2v7.22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2h-2v3h-3c.01.01 0 2 0 2h3v2.99c.01.01 2 0 2 0V7h3V5h-3V2zM7 9h8v2H7zM7 12v2h8v-2h-3zM7 15h8v2H7z\"}}]})(props);\n};\nexport function MdPublish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z\"}}]})(props);\n};\nexport function MdQueryStats (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.88 18.47c.44-.7.7-1.51.7-2.39 0-2.49-2.01-4.5-4.5-4.5s-4.5 2.01-4.5 4.5 2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21.58 23 23 21.58l-3.12-3.11zm-3.8.11a2.5 2.5 0 010-5 2.5 2.5 0 010 5zm-.36-8.5c-.74.02-1.45.18-2.1.45l-.55-.83-3.8 6.18-3.01-3.52-3.63 5.81L1 17l5-8 3 3.5L13 6l2.72 4.08zm2.59.5c-.64-.28-1.33-.45-2.05-.49L21.38 2 23 3.18l-4.69 7.4z\"}}]})(props);\n};\nexport function MdScatterPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"14\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.6\",\"cy\":\"17.6\",\"r\":\"3\"}}]})(props);\n};\nexport function MdSchema (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9v2h-3V9H8.5V7H11V1H4v6h2.5v2H4v6h2.5v2H4v6h7v-6H8.5v-2H11v-2h3v2h7V9h-7z\"}}]})(props);\n};\nexport function MdScore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 2h1.5v3l2-3h1.7l-2 3 2 3h-1.7l-2-3v3H12V5zM7 7.25h2.5V6.5H7V5h4v3.75H8.5v.75H11V11H7V7.25zM19 13l-6 6-4-4-4 4v-2.5l4-4 4 4 6-6V13z\"}}]})(props);\n};\nexport function MdShortText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9h16v2H4V9zm0 4h10v2H4v-2z\"}}]})(props);\n};\nexport function MdShowChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z\"}}]})(props);\n};\nexport function MdSpaceBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9v4H6V9H4v6h16V9z\"}}]})(props);\n};\nexport function MdStackedLineChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19.99l7.5-7.51 4 4 7.09-7.97L22 9.92l-8.5 9.56-4-4-6 6.01-1.5-1.5zm1.5-4.5l6-6.01 4 4L22 3.92l-1.41-1.41-7.09 7.97-4-4L2 13.99l1.5 1.5z\"}}]})(props);\n};\nexport function MdStrikethroughS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.85 7.08C6.85 4.37 9.45 3 12.24 3c1.64 0 3 .49 3.9 1.28.77.65 1.46 1.73 1.46 3.24h-3.01c0-.31-.05-.59-.15-.85-.29-.86-1.2-1.28-2.25-1.28-1.86 0-2.34 1.02-2.34 1.7 0 .48.25.88.74 1.21.38.25.77.48 1.41.7H7.39c-.21-.34-.54-.89-.54-1.92zM21 12v-2H3v2h9.62c1.15.45 1.96.75 1.96 1.97 0 1-.81 1.67-2.28 1.67-1.54 0-2.93-.54-2.93-2.51H6.4c0 .55.08 1.13.24 1.58.81 2.29 3.29 3.3 5.67 3.3 2.27 0 5.3-.89 5.3-4.05 0-.3-.01-1.16-.48-1.94H21V12z\"}}]})(props);\n};\nexport function MdSubscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18h-2v1h3v1h-4v-2c0-.55.45-1 1-1h2v-1h-3v-1h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 18h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 4h-2.68l-3.07 4.99h-.12L8.85 4H6.19l4.32 6.73L5.88 18z\"}}]})(props);\n};\nexport function MdSuperscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7h-2v1h3v1h-4V7c0-.55.45-1 1-1h2V5h-3V4h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 20h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 6h-2.68l-3.07 4.99h-.12L8.85 6H6.19l4.32 6.73L5.88 20z\"}}]})(props);\n};\nexport function MdTableChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10.02h5V21h-5zM17 21h3c1.1 0 2-.9 2-2v-9h-5v11zm3-18H5c-1.1 0-2 .9-2 2v3h19V5c0-1.1-.9-2-2-2zM3 19c0 1.1.9 2 2 2h3V10H3v9z\"}}]})(props);\n};\nexport function MdTableRows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8H3V4h18v4zm0 2H3v4h18v-4zm0 6H3v4h18v-4z\"}}]})(props);\n};\nexport function MdTextFields (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z\"}}]})(props);\n};\nexport function MdTitle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4v3h5.5v12h3V7H19V4z\"}}]})(props);\n};\nexport function MdVerticalAlignBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z\"}}]})(props);\n};\nexport function MdVerticalAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19h3v4h2v-4h3l-4-4-4 4zm8-14h-3V1h-2v4H8l4 4 4-4zM4 11v2h16v-2H4z\"}}]})(props);\n};\nexport function MdVerticalAlignTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z\"}}]})(props);\n};\nexport function MdVerticalDistribute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2v2H2V2h20zM7 10.5v3h10v-3H7zM2 20v2h20v-2H2z\"}}]})(props);\n};\nexport function MdWrapText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdApproval (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16v6h16v-6c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2zm14 2H6v-2h12v2zM12 2C9.24 2 7 4.24 7 7l5 7 5-7c0-2.76-2.24-5-5-5zm0 9L9 7c0-1.66 1.34-3 3-3s3 1.34 3 3l-3 4z\"}}]})(props);\n};\nexport function MdAttachEmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10V4c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2L1 16c0 1.1.9 2 2 2h11v-5c0-1.66 1.34-3 3-3h4zm-10 1L3 6V4l8 5 8-5v2l-8 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14v4c0 1.1-.9 2-2 2s-2-.9-2-2v-4.5c0-.28.22-.5.5-.5s.5.22.5.5V18h2v-4.5a2.5 2.5 0 00-5 0V18c0 2.21 1.79 4 4 4s4-1.79 4-4v-4h-2z\"}}]})(props);\n};\nexport function MdAttachment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 010-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\"}}]})(props);\n};\nexport function MdCloudCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01A3.98 3.98 0 0112 7c2.21 0 4 1.79 4 4h.5a2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdCloudDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L10 17z\"}}]})(props);\n};\nexport function MdCloudDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z\"}}]})(props);\n};\nexport function MdCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46a5.497 5.497 0 018.05 4.87v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z\"}}]})(props);\n};\nexport function MdCloudQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdCloudUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z\"}}]})(props);\n};\nexport function MdCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z\"}}]})(props);\n};\nexport function MdCreateNewFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z\"}}]})(props);\n};\nexport function MdDownloadDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.13 5.41L18.72 4l-9.19 9.19-4.25-4.24-1.41 1.41 5.66 5.66zM5 18h14v2H5z\"}}]})(props);\n};\nexport function MdDownloadForOffline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm-1 8V6h2v4h3l-4 4-4-4h3zm6 7H7v-2h10v2z\"}}]})(props);\n};\nexport function MdDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z\"}}]})(props);\n};\nexport function MdDownloading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.32 4.26A9.949 9.949 0 0013 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1a7.941 7.941 0 011.62 3.9zm-1.62 5.9l1.43 1.43a9.981 9.981 0 002.21-5.32h-2.02a7.945 7.945 0 01-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zM13 12V7h-2v5H7l5 5 5-5h-4zm-2 7.93v2.02c-5.05-.5-9-4.76-9-9.95s3.95-9.45 9-9.95v2.02C7.05 4.56 4 7.92 4 12s3.05 7.44 7 7.93z\"}}]})(props);\n};\nexport function MdDriveFileMoveOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10zm-8.01-9l-1.41 1.41L12.16 12H8v2h4.16l-1.59 1.59L11.99 17 16 13.01 11.99 9z\"}}]})(props);\n};\nexport function MdDriveFileMoveRtl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-8 11l-4-4 4-4v3h4v2h-4v3z\"}}]})(props);\n};\nexport function MdDriveFileMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 12v-3h-4v-4h4V8l5 5-5 5z\"}}]})(props);\n};\nexport function MdDriveFileRenameOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.41 5.8L17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83zM6.21 18H5v-1.21l8.66-8.66 1.21 1.21L6.21 18zM11 20l4-4h6v4H11z\"}}]})(props);\n};\nexport function MdDriveFolderUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10zM8 13.01l1.41 1.41L11 12.84V17h2v-4.16l1.59 1.59L16 13.01 12.01 9 8 13.01z\"}}]})(props);\n};\nexport function MdFileDownloadDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18h14v2H5v-2zm4.6-2.7L5 10.7l2-1.9 2.6 2.6L17 4l2 2-9.4 9.3z\"}}]})(props);\n};\nexport function MdFileDownloadOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6.17V3h6v6h4l-3.59 3.59L9 6.17zm12.19 15.02L2.81 2.81 1.39 4.22 6.17 9H5l7 7 .59-.59L15.17 18H5v2h12.17l2.61 2.61 1.41-1.42z\"}}]})(props);\n};\nexport function MdFileDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\"}}]})(props);\n};\nexport function MdFileUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z\"}}]})(props);\n};\nexport function MdFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\"}}]})(props);\n};\nexport function MdFolderShared (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z\"}}]})(props);\n};\nexport function MdFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z\"}}]})(props);\n};\nexport function MdGridView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fillRule\":\"evenodd\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v8h8V3H3zm6 6H5V5h4v4zm-6 4v8h8v-8H3zm6 6H5v-4h4v4zm4-16v8h8V3h-8zm6 6h-4V5h4v4zm-6 4v8h8v-8h-8zm6 6h-4v-4h4v4z\"}}]}]})(props);\n};\nexport function MdRequestQuote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm1 10h-4v1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1h-1v1h-2v-1H9v-2h4v-1h-3c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1h1V9h2v1h2v2zm-2-4V3.5L17.5 8H13z\"}}]})(props);\n};\nexport function MdRuleFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM7.83 16L5 13.17l1.41-1.41 1.41 1.41 3.54-3.54 1.41 1.41L7.83 16zm9.58-3L19 14.59 17.59 16 16 14.41 14.41 16 13 14.59 14.59 13 13 11.41 14.41 10 16 11.59 17.59 10 19 11.41 17.41 13z\"}}]})(props);\n};\nexport function MdSnippetFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.88 10.5l1.62 1.62v3.38h-3v-5h1.38zM22 8v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2l.01-12c0-1.1.89-2 1.99-2h6l2 2h8c1.1 0 2 .9 2 2zm-3 3.5L16.5 9H13v8h6v-5.5z\"}}]})(props);\n};\nexport function MdTextSnippet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.41 8.41l-4.83-4.83c-.37-.37-.88-.58-1.41-.58H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9.83c0-.53-.21-1.04-.59-1.42zM7 7h7v2H7V7zm10 10H7v-2h10v2zm0-4H7v-2h10v2z\"}}]})(props);\n};\nexport function MdTopic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6 10H6v-2h8v2zm4-4H6v-2h12v2z\"}}]})(props);\n};\nexport function MdUploadFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z\"}}]})(props);\n};\nexport function MdUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20h14v-2H5v2zm0-10h4v6h6v-6h4l-7-7-7 7z\"}}]})(props);\n};\nexport function MdWorkspacesFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-10C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z\"}}]})(props);\n};\nexport function MdWorkspacesOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 15c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 12c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z\"}}]})(props);\n};\nexport function MdWorkspaces (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-10C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z\"}}]})(props);\n};\nexport function MdBrowserNotSupported (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v10.5l1.95 1.95c.03-.15.05-.3.05-.45V6c0-1.1-.9-2-2-2H6.5l2 2H19zM3.22 3.32L1.95 4.59 3 5.64V18c0 1.1.9 2 2 2h12.36l2.06 2.06 1.27-1.27L3.22 3.32zM15 18H5V7.64L15.36 18H15z\"}}]})(props);\n};\nexport function MdCastConnected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\",\"opacity\":\".1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm18-7H5v1.63c3.96 1.28 7.09 4.41 8.37 8.37H19V7zM1 10v2a9 9 0 019 9h2c0-6.08-4.93-11-11-11zm20-7H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdCastForEducation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 019 9h2c0-6.08-4.93-11-11-11zm10 1.09v2L14.5 15l3.5-1.91v-2L14.5 13 11 11.09zM14.5 6L9 9l5.5 3L20 9l-5.5-3z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\",\"opacity\":\".1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 019 9h2c0-6.08-4.93-11-11-11z\"}}]})(props);\n};\nexport function MdComputer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z\"}}]})(props);\n};\nexport function MdConnectedTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zM4 14v2h2c0-1.11-.89-2-2-2zm0-3v1.43c1.97 0 3.57 1.6 3.57 3.57H9c0-2.76-2.24-5-5-5zm0-3v1.45c3.61 0 6.55 2.93 6.55 6.55H12c0-4.42-3.59-8-8-8z\"}}]})(props);\n};\nexport function MdDesktopMac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7l-2 3v1h8v-1l-2-3h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 12H3V4h18v10z\"}}]})(props);\n};\nexport function MdDesktopWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z\"}}]})(props);\n};\nexport function MdDeveloperBoardOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.83 5H18v10.17L19.83 17H22v-2h-2v-2h2v-2h-2V9h2V7h-2V5c0-1.1-.9-2-2-2H5.83l2 2zM12 9.17V7h4v3h-3.17L12 9.17zM9.83 7H11v1.17L9.83 7zm4 4H16v2.17L13.83 11zM18 21c.06 0 .11 0 .16-.01l2.32 2.32 1.41-1.41L2.1 2.1.69 3.51l1.32 1.32C2 4.89 2 4.94 2 5v14c0 1.1.9 2 2 2h14zM4 19V6.83l2 2V12h3.17l1 1H6v4h5v-3.17l1 1V17h2.17l2 2H4z\"}}]})(props);\n};\nexport function MdDeveloperBoard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9V7h-2V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2v-2h-2V9h2zm-4 10H4V5h14v14zM6 13h5v4H6zm6-6h4v3h-4zM6 7h5v5H6zm6 4h4v6h-4z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}}]})(props);\n};\nexport function MdDeviceHub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z\"}}]})(props);\n};\nexport function MdDeviceUnknown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14zM12 6.72c-1.96 0-3.5 1.52-3.5 3.47h1.75c0-.93.82-1.75 1.75-1.75s1.75.82 1.75 1.75c0 1.75-2.63 1.57-2.63 4.45h1.76c0-1.96 2.62-2.19 2.62-4.45 0-1.96-1.54-3.47-3.5-3.47zm-.88 8.8h1.76v1.76h-1.76z\"}}]})(props);\n};\nexport function MdDevicesOther (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18V4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V6zm10 6H9v1.78c-.61.55-1 1.33-1 2.22s.39 1.67 1 2.22V20h4v-1.78c.61-.55 1-1.34 1-2.22s-.39-1.67-1-2.22V12zm-2 5.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM22 8h-6c-.5 0-1 .5-1 1v10c0 .5.5 1 1 1h6c.5 0 1-.5 1-1V9c0-.5-.5-1-1-1zm-1 10h-4v-8h4v8z\"}}]})(props);\n};\nexport function MdDock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 23h8v-2H8v2zm8-21.99L8 1c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM16 15H8V5h8v10z\"}}]})(props);\n};\nexport function MdEarbudsBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7h-1V6h-2v1h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM10.62 6C8.76 6 7.25 7.51 7.25 9.38v5.25c0 1.04-.84 1.88-1.88 1.88s-1.87-.85-1.87-1.89v-4.7c.16.05.33.08.5.08 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2v6.62C2 16.49 3.51 18 5.38 18s3.38-1.51 3.38-3.38V9.38c0-1.04.84-1.88 1.88-1.88s1.88.84 1.88 1.88v4.7c-.18-.05-.35-.08-.52-.08-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2V9.38C14 7.51 12.49 6 10.62 6z\"}}]})(props);\n};\nexport function MdEarbuds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.2 3.01C4.44 2.89 3 4.42 3 6.19V16c0 2.76 2.24 5 5 5s5-2.24 5-5V8c0-1.66 1.34-3 3-3s3 1.34 3 3v7h-.83c-1.61 0-3.06 1.18-3.17 2.79A3 3 0 0017.8 21c1.76.12 3.2-1.42 3.2-3.18V8c0-2.76-2.24-5-5-5s-5 2.24-5 5v8c0 1.66-1.34 3-3 3s-3-1.34-3-3V9h.83C7.44 9 8.89 7.82 9 6.21c.11-1.68-1.17-3.1-2.8-3.2z\"}}]})(props);\n};\nexport function MdGamepad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z\"}}]})(props);\n};\nexport function MdHeadphonesBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7h-1V6h-2v1h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM8 6c-3.31 0-6 2.69-6 6v4c0 1.1.9 2 2 2h2v-5H3.5v-1c0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5v1H10v5h2c1.1 0 2-.9 2-2v-4c0-3.31-2.69-6-6-6z\"}}]})(props);\n};\nexport function MdHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3a9 9 0 00-9 9v7c0 1.1.9 2 2 2h4v-8H5v-1c0-3.87 3.13-7 7-7s7 3.13 7 7v1h-4v8h4c1.1 0 2-.9 2-2v-7a9 9 0 00-9-9z\"}}]})(props);\n};\nexport function MdHeadsetMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\",\"opacity\":\".1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a9 9 0 00-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10a9 9 0 00-9-9z\"}}]})(props);\n};\nexport function MdHeadsetOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c3.87 0 7 3.13 7 7v2h-2.92L21 17.92V11a9 9 0 00-9-9c-1.95 0-3.76.62-5.23 1.68l1.44 1.44A6.914 6.914 0 0112 4zM2.27 1.72L1 3l3.33 3.32A8.899 8.899 0 003 11v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-1.17.29-2.26.79-3.22L15 17v4h3c.3 0 .59-.06.86-.14L21 23l1.27-1.27-20-20.01z\"}}]})(props);\n};\nexport function MdHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\",\"opacity\":\".1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a9 9 0 00-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7a9 9 0 00-9-9z\"}}]})(props);\n};\nexport function MdHomeMax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5H5C2.79 5 1 6.79 1 9v5c0 2.21 1.79 4 4 4h2v1h10v-1h2c2.21 0 4-1.79 4-4V9c0-2.21-1.79-4-4-4zm2 9c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v5z\"}}]})(props);\n};\nexport function MdHomeMini (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5C4.19 5 2 9.48 2 12c0 3.86 3.13 7 6.99 7h6.02C17.7 19 22 16.92 22 12c0 0 0-7-10-7zm0 2c7.64 0 7.99 4.51 8 5H4c0-.2.09-5 8-5zm2.86 10H9.14c-2.1 0-3.92-1.24-4.71-3h15.15c-.8 1.76-2.62 3-4.72 3z\"}}]})(props);\n};\nexport function MdKeyboardAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 12v2H5v-2h2zm-2-2V8h2v2H5zm6 2v2H9v-2h2zm-2-2V8h2v2H9zm7 6v1H8v-1h8zm-1-4v2h-2v-2h2zm-2-2V8h2v2h-2zm4 4v-2h2v2h-2zm2-4h-2V8h2v2z\"}}]})(props);\n};\nexport function MdKeyboardArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"}}]})(props);\n};\nexport function MdKeyboardArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"}}]})(props);\n};\nexport function MdKeyboardArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"}}]})(props);\n};\nexport function MdKeyboardArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"}}]})(props);\n};\nexport function MdKeyboardBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z\"}}]})(props);\n};\nexport function MdKeyboardCapslock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.41L16.59 13 18 11.59l-6-6-6 6L7.41 13 12 8.41zM6 18h12v-2H6v2z\"}}]})(props);\n};\nexport function MdKeyboardHide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.1 0-1.99.9-1.99 2L2 15c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 3h2v2h-2V6zm0 3h2v2h-2V9zM8 6h2v2H8V6zm0 3h2v2H8V9zm-1 2H5V9h2v2zm0-3H5V6h2v2zm9 7H8v-2h8v2zm0-4h-2V9h2v2zm0-3h-2V6h2v2zm3 3h-2V9h2v2zm0-3h-2V6h2v2zm-7 15l4-4H8l4 4z\"}}]})(props);\n};\nexport function MdKeyboardReturn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z\"}}]})(props);\n};\nexport function MdKeyboardTab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.59 7.41L15.17 11H1v2h14.17l-3.59 3.59L13 18l6-6-6-6-1.41 1.41zM20 6v12h2V6h-2z\"}}]})(props);\n};\nexport function MdKeyboardVoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 15 6.7 12H5c0 3.42 2.72 6.23 6 6.72V22h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z\"}}]})(props);\n};\nexport function MdKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}}]})(props);\n};\nexport function MdLaptopChromebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18V3H2v15H0v2h24v-2h-2zm-8 0h-4v-1h4v1zm6-3H4V5h16v10z\"}}]})(props);\n};\nexport function MdLaptopMac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdLaptopWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v-1c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2v1H0v2h24v-2h-4zM4 5h16v10H4V5z\"}}]})(props);\n};\nexport function MdLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z\"}}]})(props);\n};\nexport function MdMemory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9H9v6h6V9zm-2 4h-2v-2h2v2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2zm-4 6H7V7h10v10z\"}}]})(props);\n};\nexport function MdMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h3l-1 1v2h12v-2l-1-1h3c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 13H4V5h16v11z\"}}]})(props);\n};\nexport function MdMouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93zM4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4v4zm7-13.93C7.05 1.56 4 4.92 4 9h7V1.07z\"}}]})(props);\n};\nexport function MdPhoneAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z\"}}]})(props);\n};\nexport function MdPhoneIphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 1h-8A2.5 2.5 0 005 3.5v17A2.5 2.5 0 007.5 23h8a2.5 2.5 0 002.5-2.5v-17A2.5 2.5 0 0015.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z\"}}]})(props);\n};\nexport function MdPhonelinkOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6V4H6.82l2 2H22zM1.92 1.65L.65 2.92l1.82 1.82C2.18 5.08 2 5.52 2 6v11H0v3h17.73l2.35 2.35 1.27-1.27L3.89 3.62 1.92 1.65zM4 6.27L14.73 17H4V6.27zM23 8h-6c-.55 0-1 .45-1 1v4.18l2 2V10h4v7h-2.18l3 3H23c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdPhonelink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z\"}}]})(props);\n};\nexport function MdPointOfSale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 2H7c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 4H7V4h10v2zm3 16H4c-1.1 0-2-.9-2-2v-1h20v1c0 1.1-.9 2-2 2zm-1.47-11.81A2.008 2.008 0 0016.7 9H7.3c-.79 0-1.51.47-1.83 1.19L2 18h20l-3.47-7.81zM9.5 16h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm3 4h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm3 4h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5z\"}}]})(props);\n};\nexport function MdPowerInput (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9v2h19V9H2zm0 6h5v-2H2v2zm7 0h5v-2H9v2zm7 0h5v-2h-5v2z\"}}]})(props);\n};\nexport function MdRouter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.2 5.9l.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7zm-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1l.8-.8zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zM8 18H6v-2h2v2zm3.5 0h-2v-2h2v2zm3.5 0h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.8 10.7L4.2 5l-.7 1.9L17.6 12H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5.5c0-.8-.5-1.6-1.2-1.8zM7 17H5v-2h2v2zm12 0H9v-2h10v2z\"}}]})(props);\n};\nexport function MdSecurity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\"}}]})(props);\n};\nexport function MdSimCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.99 4c0-1.1-.89-2-1.99-2h-8L4 8v12c0 1.1.9 2 2 2h12.01c1.1 0 1.99-.9 1.99-2l-.01-16zM9 19H7v-2h2v2zm8 0h-2v-2h2v2zm-8-4H7v-4h2v4zm4 4h-2v-4h2v4zm0-6h-2v-2h2v2zm4 2h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdSmartDisplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM9.5 16.5v-9l7 4.5-7 4.5z\"}}]})(props);\n};\nexport function MdSmartScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-3 12H6V7h12v10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11.25h1.5v1.5H15zM12.5 11.25H14v1.5h-1.5zM10 11.25h1.5v1.5H10zM7.5 11.25H9v1.5H7.5z\"}}]})(props);\n};\nexport function MdSmartToy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3zM7.5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S9.83 13 9 13s-1.5-.67-1.5-1.5zM16 17H8v-2h8v2zm-1-4c-.83 0-1.5-.67-1.5-1.5S14.17 10 15 10s1.5.67 1.5 1.5S15.83 13 15 13z\"}}]})(props);\n};\nexport function MdSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"}}]})(props);\n};\nexport function MdSpeakerGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.2 1H9.8C8.81 1 8 1.81 8 2.8v14.4c0 .99.81 1.79 1.8 1.79l8.4.01c.99 0 1.8-.81 1.8-1.8V2.8c0-.99-.81-1.8-1.8-1.8zM14 3c1.1 0 2 .89 2 2s-.9 2-2 2-2-.89-2-2 .9-2 2-2zm0 13.5c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"12.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 5H4v16a2 2 0 002 2h10v-2H6V5z\"}}]})(props);\n};\nexport function MdSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 2H7c-1.1 0-2 .9-2 2v16c0 1.1.9 1.99 2 1.99L17 22c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 2c1.1 0 2 .9 2 2s-.9 2-2 2a2 2 0 110-4zm0 16c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdTabletAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z\"}}]})(props);\n};\nexport function MdTabletMac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 0h-14A2.5 2.5 0 002 2.5v19A2.5 2.5 0 004.5 24h14a2.5 2.5 0 002.5-2.5v-19A2.5 2.5 0 0018.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z\"}}]})(props);\n};\nexport function MdTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z\"}}]})(props);\n};\nexport function MdToys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 14c0-1.95-1.4-3.57-3.25-3.92L17.4 6.05A2.978 2.978 0 0014.56 4H9.44C8.15 4 7 4.82 6.6 6.05L5.81 8.4 4.41 7l.29-.29A.996.996 0 103.29 5.3l-2 2A.996.996 0 102.7 8.71l.3-.3 1.79 1.79C3.18 10.72 2 12.22 2 14c0 1.5.83 2.79 2.05 3.48A3 3 0 007 20c1.3 0 2.4-.84 2.82-2h4.37c.41 1.16 1.51 2 2.82 2a3 3 0 002.95-2.52C21.17 16.79 22 15.5 22 14zM7 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4-8H7.41l-.02-.02 1.1-3.3A1 1 0 019.44 6H11v4zm2-4h1.56a1 1 0 01.95.68l1.1 3.32H13V6zm4 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z\"}}]})(props);\n};\nexport function MdVideogameAssetOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22 3.3 6.13C2.54 6.41 2 7.15 2 8v8c0 1.1.9 2 2 2h11.17l4.61 4.61 1.41-1.42zM9 13v2H7v-2H5v-2h2V9.83L10.17 13H9zm11.7 4.87c.76-.28 1.3-1.02 1.3-1.87V8c0-1.1-.9-2-2-2H8.83L20.7 17.87zM17.5 9c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z\"}}]})(props);\n};\nexport function MdVideogameAsset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0v24h24V0H0zm23 16c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V8c0-1.1.9-2 2-2h18c1.1 0 2 .9 2 2v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-10 7H8v3H6v-3H3v-2h3V8h2v3h3v2zm4.5 2c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4-3c-.83 0-1.5-.67-1.5-1.5S18.67 9 19.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\",\"opacity\":\".1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12c0-2.54-1.19-4.81-3.04-6.27L16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73A7.976 7.976 0 0020 12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6z\"}}]})(props);\n};\nexport function MdSensorDoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v18h16V4c0-1.1-.9-2-2-2zm-2.5 11.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdSensorWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4v16H6V4h12m0-2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM7 19h10v-6H7v6zm3-9h4v1h3V5H7v6h3v-1z\"}}]})(props);\n};\nexport function Md10Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 7H15v3h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm6.5 5c0 .55-.45 1-1 1H13c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm-1 3.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md11Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM11 5.5v6H9.5V7H8V5.5h3zm5 0v6h-1.5V7H13V5.5h3zm-.5 8.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md12Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zM15.5 9h-2v1h3v1.5H12V9c0-.55.45-1 1-1h2V7h-3V5.5h3.5c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm0 5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md13Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm6.5 5c0 .55-.45 1-1 1H12V10h3V9h-2V8h2V7h-3V5.5h3.5c.55 0 1 .45 1 1v4zm-1 3.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md14Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm7.5 4.5h-1v1.5H15V10h-3V5.5h1.5v3H15v-3h1.5v3h1V10zm-2 4H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md15Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zM16.5 7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H12V10h3V9h-3V5.5h4.5V7zm-1 7H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md16Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 9H15v1.5h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm3 6c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3.5V7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H13zm2.5 2.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md17Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm5 6h-1.75L14.62 7H12V5.5h3.5c.67 0 1.15.65.96 1.29L15 11.5zm.5 2.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md18Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 5.5v6H8.5V7H7V5.5h3zm6.5 5c0 .55-.45 1-1 1H13c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm-3 0H15V9h-1.5v1.5zm0-2.5H15V6.5h-1.5V8zm2 6H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md19Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 7h3V9h-2c-.55 0-1-.45-1-1V6.5c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1H12V10zm1.5-2H15V6.5h-1.5V8zM7 5.5h3v6H8.5V7H7V5.5zm5 13h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm6.5-2.5c0 .55-.45 1-1 1h-2v1.5H14v-6h3.5c.55 0 1 .45 1 1V16zm-3-2H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md20Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 7H16v3h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm2-8c0 .55-.45 1-1 1H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm5.5 5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md21Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM11 9H9v1h3v1.5H7.5V9c0-.55.45-1 1-1h2V7h-3V5.5H11c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm3-3.5h3v6h-1.5V7H14V5.5zm1.5 8.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md22Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm6.5 0h-2v1h3v1.5H13V9c0-.55.45-1 1-1h2V7h-3V5.5h3.5c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm-1 5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md23Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm7.5 1.5c0 .55-.45 1-1 1H13V10h3V9h-2V8h2V7h-3V5.5h3.5c.55 0 1 .45 1 1v4zm-2 3.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md24Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM10 9H8v1h3v1.5H6.5V9c0-.55.45-1 1-1h2V7h-3V5.5H10c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm8.5 1h-1v1.5H16V10h-3V5.5h1.5v3H16v-3h1.5v3h1V10zm-3 4H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md2Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-2-9.5h-2v1h3v1.5H10V9c0-.55.45-1 1-1h2V7h-3V5.5h3.5c.55 0 1 .45 1 1V8c0 .55-.45 1-1 1zm2 5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md30FpsSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v2h5v2H5v2h4v2H4v2h5c1.1 0 2-.9 2-2v-1.5c0-.83-.17-1.5-1-1.5.83 0 1-.67 1-1.5V6c0-1.1-.9-2-2-2H4zm14 0c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-3c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h3zm0 2h-3v6h3V6zM5 22H3v-5h2v5zm4 0H7v-5h2v5zm4 0h-2v-5h2v5zm8 0h-6v-5h6v5z\"}}]})(props);\n};\nexport function Md3Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-1-8c0 .55-.45 1-1 1H10V10h3V9h-2V8h2V7h-3V5.5h3.5c.55 0 1 .45 1 1v4zm1 3.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md4Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3-8.5h-1v1.5h-1.5V10h-3V5.5H11v3h1.5v-3H14v3h1V10zm.5 8.5H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm0-4.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md5Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zM14.5 7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H10V10h3V9h-3V5.5h4.5V7zm1 7H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md60FpsSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6v6h-3V6h3zm0-2h-3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 2V4H6c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2H6V6h5zm-2 4v2H6v-2h3zM5 22H3v-5h2v5zm4 0H7v-5h2v5zm4 0h-2v-5h2v5zm8 0h-6v-5h6v5z\"}}]})(props);\n};\nexport function Md6Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 9H13v1.5h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm-1-7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3.5V7h-3v1h2c.55 0 1 .45 1 1v1.5c0 .55-.45 1-1 1H11zm4.5 7H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm0-4.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md7Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-2.5-7h-1.75L12.62 7H10V5.5h3.5c.67 0 1.15.65.96 1.29L13 11.5zm2.5 2.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md8Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 9H13v1.5h-1.5zm0-2.5H13V8h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-1-8c0 .55-.45 1-1 1H11c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm1 3.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function Md9Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 6.5H13V8h-1.5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15.5h-1.5V14h-1v3H8v-3H7v4.5H5.5v-5c0-.55.45-1 1-1H11c.55 0 1 .45 1 1v5zm3.5 0H14v-6h3.5c.55 0 1 .45 1 1V16c0 .55-.45 1-1 1h-2v1.5zm-1-8c0 .55-.45 1-1 1H10V10h3V9h-2c-.55 0-1-.45-1-1V6.5c0-.55.45-1 1-1h2.5c.55 0 1 .45 1 1v4zm1 3.5H17v1.5h-1.5z\"}}]})(props);\n};\nexport function MdAddAPhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2s3.2-1.43 3.2-3.2-1.43-3.2-3.2-3.2-3.2 1.43-3.2 3.2z\"}}]})(props);\n};\nexport function MdAddPhotoAlternate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7v2.99s-1.99.01-2 0V7h-3s.01-1.99 0-2h3V2h2v3h3v2h-3zm-3 4V8h-3V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-3zM5 19l3-4 2 3 3-4 4 5H5z\"}}]})(props);\n};\nexport function MdAddToPhotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z\"}}]})(props);\n};\nexport function MdAdjust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z\"}}]})(props);\n};\nexport function MdAnimation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2c-2.71 0-5.05 1.54-6.22 3.78a7.062 7.062 0 00-3 3A7.014 7.014 0 002 15c0 3.87 3.13 7 7 7 2.71 0 5.05-1.54 6.22-3.78a7.062 7.062 0 003-3A7.014 7.014 0 0022 9c0-3.87-3.13-7-7-7zM9 20a5.002 5.002 0 01-4-8c0 3.87 3.13 7 7 7-.84.63-1.88 1-3 1zm3-3a5.002 5.002 0 01-4-8c0 3.86 3.13 6.99 7 7-.84.63-1.88 1-3 1zm4.7-3.3c-.53.19-1.1.3-1.7.3-2.76 0-5-2.24-5-5 0-.6.11-1.17.3-1.7.53-.19 1.1-.3 1.7-.3 2.76 0 5 2.24 5 5 0 .6-.11 1.17-.3 1.7zM19 12c0-3.86-3.13-6.99-7-7a5.002 5.002 0 017 7z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}}]})(props);\n};\nexport function MdAssistantPhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z\"}}]})(props);\n};\nexport function MdAssistant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5.12 10.88L12 17l-1.88-4.12L6 11l4.12-1.88L12 5l1.88 4.12L18 11l-4.12 1.88z\"}}]})(props);\n};\nexport function MdAudiotrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v9.28a4.39 4.39 0 00-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\"}}]})(props);\n};\nexport function MdAutoAwesomeMosaic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14a2 2 0 002 2h6V3H5a2 2 0 00-2 2zm16-2h-6v8h8V5c0-1.1-.9-2-2-2zm-6 18h6c1.1 0 2-.9 2-2v-6h-8v8z\"}}]})(props);\n};\nexport function MdAutoAwesomeMotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H4a2 2 0 00-2 2v10h2V4h10V2zm4 4H8a2 2 0 00-2 2v10h2V8h10V6zm2 4h-8a2 2 0 00-2 2v8a2 2 0 002 2h8c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdAutoAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9l1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z\"}}]})(props);\n};\nexport function MdAutoFixHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 5.6L10 7 8.6 4.5 10 2 7.5 3.4 5 2l1.4 2.5L5 7zm12 9.8L17 14l1.4 2.5L17 19l2.5-1.4L22 19l-1.4-2.5L22 14zM22 2l-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.996.996 0 00-1.41 0L1.29 18.96a.996.996 0 000 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05a.996.996 0 000-1.41l-2.33-2.35zm-1.03 5.49l-2.12-2.12 2.44-2.44 2.12 2.12-2.44 2.44z\"}}]})(props);\n};\nexport function MdAutoFixNormal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2l-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.996.996 0 00-1.41 0L1.29 18.96a.996.996 0 000 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05a.996.996 0 000-1.41l-2.33-2.35zm-1.03 5.49l-2.12-2.12 2.44-2.44 2.12 2.12-2.44 2.44z\"}}]})(props);\n};\nexport function MdAutoFixOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 1l-2.5 1.4L18 1l1.4 2.5L18 6l2.5-1.4L23 6l-1.4-2.5L23 1zm-8.34 6.22l2.12 2.12-2.44 2.44.81.81 2.55-2.55a.996.996 0 000-1.41l-2.34-2.34a.996.996 0 00-1.41 0L11.4 8.84l.81.81 2.45-2.43zm-.78 6.65l-3.75-3.75-6.86-6.86L2 4.53l6.86 6.86-6.57 6.57a.996.996 0 000 1.41l2.34 2.34c.39.39 1.02.39 1.41 0l6.57-6.57L19.47 22l1.27-1.27-6.86-6.86z\"}}]})(props);\n};\nexport function MdAutoStories (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 1l-5 5v11l5-4.5V1zM1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5V6c-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6zm22 13.5V6c-.6-.45-1.25-.75-2-1v13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5v2c1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5v-1.1z\"}}]})(props);\n};\nexport function MdAutofpsSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.03 6.3h-.06l-1.02 2.89h2.1zM3 17h2v5H3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm-.63-10h1.25l2.63 7h-1.21l-.63-1.79h-2.83L9.96 12H8.74l2.63-7zM7 17h2v5H7zM11 17h2v5h-2zM15 17h6v5h-6z\"}}]})(props);\n};\nexport function MdBedtime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.34 2.02C6.59 1.82 2 6.42 2 12c0 5.52 4.48 10 10 10 3.71 0 6.93-2.02 8.66-5.02-7.51-.25-12.09-8.43-8.32-14.96z\"}}]})(props);\n};\nexport function MdBlurCircular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"}}]})(props);\n};\nexport function MdBlurLinear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z\"}}]})(props);\n};\nexport function MdBlurOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-.2 4.48l.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm11 7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 13.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM2.5 5.27l3.78 3.78L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81A.875.875 0 0014 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78L20 20.23 3.77 4 2.5 5.27zM10 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm11-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z\"}}]})(props);\n};\nexport function MdBlurOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdBrightness1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function MdBrightness2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z\"}}]})(props);\n};\nexport function MdBrightness3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54 0 4.48-2.94 8.27-7 9.54.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z\"}}]})(props);\n};\nexport function MdBrightness4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdBrightness5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdBrightness6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdBrightness7 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdBrokenImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0zm21 19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42l3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z\"}}]})(props);\n};\nexport function MdBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34a.996.996 0 00-1.41 0L9 12.25 11.75 15l8.96-8.96a.996.996 0 000-1.41z\"}}]})(props);\n};\nexport function MdBurstMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM11 17l2.5-3.15L15.29 16l2.5-3.22L21 17H11z\"}}]})(props);\n};\nexport function MdCameraAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdCameraFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zM12 8c1.1 0 2-.9 2-2s-.9-2-2-2-1.99.9-1.99 2S10.9 8 12 8zm5-8H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 2h10v10.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2z\"}}]})(props);\n};\nexport function MdCameraRear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-5 6c-1.11 0-2-.9-2-2s.89-2 1.99-2 2 .9 2 2C14 5.1 13.1 6 12 6z\"}}]})(props);\n};\nexport function MdCameraRoll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm-2 13h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2z\"}}]})(props);\n};\nexport function MdCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 10.5l4.77-8.26a9.984 9.984 0 00-8.49 2.01l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25A9.91 9.91 0 0022 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75A9.958 9.958 0 002.2 14h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0l-3.9 6.76a9.984 9.984 0 008.49-2.01l-3.66-6.35-.93 1.6z\"}}]})(props);\n};\nexport function MdCases (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6V4l-2-2h-5L9 4v2H5v11s1 2 2 2h13s2-.98 2-2V6h-4zM4 9H2v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H4V9zm7-4c0-.55.53-1 1-1h3c.46 0 1 .54 1 1v1h-5V5zM5 6h17v11c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V6z\"}}]})(props);\n};\nexport function MdCenterFocusStrong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z\"}}]})(props);\n};\nexport function MdCenterFocusWeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z\"}}]})(props);\n};\nexport function MdCollectionsBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 10l-2.5-1.5L15 12V4h5v8z\"}}]})(props);\n};\nexport function MdCollections (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z\"}}]})(props);\n};\nexport function MdColorLens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3a9 9 0 000 18c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdColorize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.71 5.63l-2.34-2.34a.996.996 0 00-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z\"}}]})(props);\n};\nexport function MdCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdControlPointDuplicate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16A6.99 6.99 0 012 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z\"}}]})(props);\n};\nexport function MdControlPoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdCrop169 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z\"}}]})(props);\n};\nexport function MdCrop32 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z\"}}]})(props);\n};\nexport function MdCrop54 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z\"}}]})(props);\n};\nexport function MdCrop75 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z\"}}]})(props);\n};\nexport function MdCropDin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdCropFree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdCropLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z\"}}]})(props);\n};\nexport function MdCropOriginal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71l-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z\"}}]})(props);\n};\nexport function MdCropPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z\"}}]})(props);\n};\nexport function MdCropRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.47 21.49C4.2 19.93 1.86 16.76 1.5 13H0c.51 6.16 5.66 11 11.95 11 .23 0 .44-.02.66-.03L8.8 20.15l-1.33 1.34zM12.05 0c-.23 0-.44.02-.66.04l3.81 3.81 1.33-1.33C19.8 4.07 22.14 7.24 22.5 11H24c-.51-6.16-5.66-11-11.95-11zM16 14h2V8a2 2 0 00-2-2h-6v2h6v6zm-8 2V4H6v2H4v2h2v8a2 2 0 002 2h8v2h2v-2h2v-2H8z\"}}]})(props);\n};\nexport function MdCropSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z\"}}]})(props);\n};\nexport function MdCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z\"}}]})(props);\n};\nexport function MdDehaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 15.5v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20v-2H2z\"}}]})(props);\n};\nexport function MdDetails (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L2 21h20L12 3zm1 5.92L18.6 19H13V8.92zm-2 0V19H5.4L11 8.92z\"}}]})(props);\n};\nexport function MdDirtyLens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.95 19H20V7H4v12h7.24c.14-.98.42-2.05-.16-2.43-.89-.59-1.27 2.06-2.8 1.35-1.39-1.12 1.05-1.29.5-3.27-.22-.79-2.28.36-2.4-1.24-.08-1 1.49-.74 1.51-1.49.03-.75-1.03-1.05-.25-1.91.22-.24.71-.26.91-.19.79.27 1.55 1.82 2.51 1.19 1.03-.66-1.88-2.35 0-2.86 1.64-.44 1.31 2.08 2.65 2.44 1.94.52 2.65-4.55 4.41-2.33 1.85 2.33-3.43 2.27-2.85 4.01.34 1.01 2.15-1.2 2.76.53.64 1.83-3.09.82-3.04 1.66.06.83 2.41.55 1.64 2.12-1.14 1.86-3-1.03-3.81.09-.39.57-.09 1.49.13 2.33zM20 5c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h3.17L9 3h6l1.83 2H20zm-1.86 13.01c-.47 0-.86-.38-.86-.86s.38-.86.86-.86c.47 0 .86.38.86.86s-.38.86-.86.86z\"}}]})(props);\n};\nexport function MdEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 000-1.41l-2.34-2.34a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"}}]})(props);\n};\nexport function MdEuro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 18.5A6.48 6.48 0 019.24 15H15l1-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15l1-2H9.24A6.491 6.491 0 0115 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3A8.955 8.955 0 0015 3c-3.92 0-7.24 2.51-8.48 6H3l-1 2h4.06a8.262 8.262 0 000 2H3l-1 2h4.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z\"}}]})(props);\n};\nexport function MdExposureNeg1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z\"}}]})(props);\n};\nexport function MdExposureNeg2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17s.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0016.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z\"}}]})(props);\n};\nexport function MdExposurePlus1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z\"}}]})(props);\n};\nexport function MdExposurePlus2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46-.18-.44-.44-.81-.78-1.11-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0017.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z\"}}]})(props);\n};\nexport function MdExposureZero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.14 12.5c0 1-.1 1.85-.3 2.55-.2.7-.48 1.27-.83 1.7-.36.44-.79.75-1.3.95-.51.2-1.07.3-1.7.3-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95-.36-.44-.65-1.01-.85-1.7-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19-.32 0-.61.06-.86.18s-.47.31-.64.58c-.17.27-.31.62-.4 1.06s-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19c.33 0 .62-.06.87-.19s.46-.33.63-.61c.17-.28.3-.64.39-1.09.09-.45.13-.99.13-1.62v-2.66z\"}}]})(props);\n};\nexport function MdExposure (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6 7h5v1.5H6V7zm13 12H5L19 5v14zm-4.5-3v2H16v-2h2v-1.5h-2v-2h-1.5v2h-2V16z\"}}]})(props);\n};\nexport function MdFaceRetouchingNatural (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1.25\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.77 8.58l-.92 2.01c.09.46.15.93.15 1.41 0 4.41-3.59 8-8 8s-8-3.59-8-8c0-.05.01-.1 0-.14 2.6-.98 4.69-2.99 5.74-5.55A10 10 0 0017.5 10c.45 0 .89-.04 1.33-.1l-.6-1.32-.88-1.93-1.93-.88-2.79-1.27 2.79-1.27.71-.32A9.86 9.86 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-1.47-.33-2.87-.9-4.13l-.33.71z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"13\",\"r\":\"1.25\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.6 5.6L19.5 8l-1.1-2.4L16 4.5l2.4-1.1L19.5 1l1.1 2.4L23 4.5z\"}}]})(props);\n};\nexport function MdFaceRetouchingOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1.25\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 10c.75 0 1.47-.09 2.17-.24.21.71.33 1.46.33 2.24 0 1.22-.28 2.37-.77 3.4l1.49 1.49A9.981 9.981 0 0022 12c0-5.52-4.48-10-10-10-1.78 0-3.44.47-4.89 1.28l5.33 5.33c1.49.88 3.21 1.39 5.06 1.39zM1.89 3.72l2.19 2.19A9.958 9.958 0 002 12c0 5.52 4.48 10 10 10 2.29 0 4.4-.78 6.09-2.08l2.19 2.19 1.41-1.41L3.31 2.31 1.89 3.72zm14.77 14.77A7.91 7.91 0 0112 20c-4.41 0-8-3.59-8-8 0-.05.01-.1 0-.14a9.946 9.946 0 003.64-2.39l9.02 9.02z\"}}]})(props);\n};\nexport function MdFilter1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdFilter2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2a2 2 0 002-2V7a2 2 0 00-2-2h-4v2h4v2h-2a2 2 0 00-2 2v4h6v-2z\"}}]})(props);\n};\nexport function MdFilter3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 00-2-2h-4v2h4v2h-2v2h2v2h-4v2h4a2 2 0 002-2z\"}}]})(props);\n};\nexport function MdFilter4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdFilter5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2a2 2 0 00-2-2h-2V7h4V5h-6v6h4v2h-4v2h4a2 2 0 002-2z\"}}]})(props);\n};\nexport function MdFilter6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 002-2v-2a2 2 0 00-2-2h-2V7h4V5h-4a2 2 0 00-2 2v6a2 2 0 002 2zm0-4h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdFilter7 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2l4-8V5h-6v2h4l-4 8h2z\"}}]})(props);\n};\nexport function MdFilter8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 002-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 00-2-2h-2a2 2 0 00-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13a2 2 0 002 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdFilter9Plus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8a2 2 0 00-2-2h-1a2 2 0 00-2 2v1a2 2 0 002 2h1v1H9v2h3a2 2 0 002-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z\"}}]})(props);\n};\nexport function MdFilter9 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2a2 2 0 00-2 2v2a2 2 0 002 2h2v2h-4v2h4a2 2 0 002-2V7a2 2 0 00-2-2zm0 4h-2V7h2v2z\"}}]})(props);\n};\nexport function MdFilterBAndW (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16l-7-8v8H5l7-8V5h7v14z\"}}]})(props);\n};\nexport function MdFilterCenterFocus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdFilterDrama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4a7.48 7.48 0 00-6.64 4.04A5.996 5.996 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z\"}}]})(props);\n};\nexport function MdFilterFrames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM18 8H6v10h12\"}}]})(props);\n};\nexport function MdFilterHdr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z\"}}]})(props);\n};\nexport function MdFilterNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdFilterTiltShift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.941 7.941 0 0111 4.07zm7.32.19A9.949 9.949 0 0013 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1a7.941 7.941 0 011.62 3.9zM5.69 7.1L4.26 5.68A9.949 9.949 0 002.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 014.07 13zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9l1.43 1.43a9.981 9.981 0 002.21-5.32h-2.02a7.945 7.945 0 01-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19A9.981 9.981 0 0011 21.95v-2.02a7.941 7.941 0 01-3.9-1.62l-1.42 1.43z\"}}]})(props);\n};\nexport function MdFilterVintage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.7 12.4a6.06 6.06 0 00-.86-.4c.29-.11.58-.24.86-.4a6.012 6.012 0 003-5.19 6.007 6.007 0 00-6 0c-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55a6.008 6.008 0 00-6 0 5.97 5.97 0 003 5.19c.28.16.57.29.86.4-.29.11-.58.24-.86.4a6.012 6.012 0 00-3 5.19 6.007 6.007 0 006 0c.28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54a6.008 6.008 0 006 0 6.012 6.012 0 00-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"}}]})(props);\n};\nexport function MdFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.96 10.29l-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdFlare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z\"}}]})(props);\n};\nexport function MdFlashAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z\"}}]})(props);\n};\nexport function MdFlashOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.27 3L2 4.27l5 5V13h3v9l3.58-6.14L17.73 20 19 18.73 3.27 3zM17 10h-4l4-8H7v2.18l8.46 8.46L17 10z\"}}]})(props);\n};\nexport function MdFlashOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2v11h3v9l7-12h-4l4-8z\"}}]})(props);\n};\nexport function MdFlipCameraAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10V8H5.09C6.47 5.61 9.05 4 12 4c3.72 0 6.85 2.56 7.74 6h2.06c-.93-4.56-4.96-8-9.8-8-3.27 0-6.18 1.58-8 4.01V4H2v6h6zM16 14v2h2.91c-1.38 2.39-3.96 4-6.91 4-3.72 0-6.85-2.56-7.74-6H2.2c.93 4.56 4.96 8 9.8 8 3.27 0 6.18-1.58 8-4.01V20h2v-6h-6z\"}}]})(props);\n};\nexport function MdFlipCameraIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-8 13c-2.76 0-5-2.24-5-5H5l2.5-2.5L10 13H8c0 2.21 1.79 4 4 4 .58 0 1.13-.13 1.62-.35l.74.74c-.71.37-1.5.61-2.36.61zm4.5-2.5L14 13h2c0-2.21-1.79-4-4-4-.58 0-1.13.13-1.62.35l-.74-.73C10.35 8.24 11.14 8 12 8c2.76 0 5 2.24 5 5h2l-2.5 2.5z\"}}]})(props);\n};\nexport function MdFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z\"}}]})(props);\n};\nexport function MdGradient (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z\"}}]})(props);\n};\nexport function MdGrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdGridOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z\"}}]})(props);\n};\nexport function MdGridOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"}}]})(props);\n};\nexport function MdHdrEnhancedSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6zm0 2C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm1 7h-2V9H9V7h2V5h2v2h2v2h-2v2zm11 9h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zm-6-1.5c0 .6-.4 1.1-.9 1.4L18 22h-1.5l-.9-2h-1.1v2H13v-6h3.5c.8 0 1.5.7 1.5 1.5v1zm-1.5 0v-1h-2v1h2zm-13-.5v-2H5v6H3.5v-2.5h-2V22H0v-6h1.5v2h2zm6.5-2c.8 0 1.5.7 1.5 1.5v3c0 .8-.7 1.5-1.5 1.5H6.5v-6H10zm0 4.5v-3H8v3h2z\"}}]})(props);\n};\nexport function MdHdrOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 15v-2h1.1l.9 2H21l-.9-2.1c.5-.2.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5H16v4.9l1.1 1.1h.4zm0-4.5h2v1h-2v-1zm-4.5 0v.4l1.5 1.5v-1.9c0-.8-.7-1.5-1.5-1.5h-1.9l1.5 1.5h.4zm-3.5-1l-7-7-1.1 1L6.9 9h-.4v2h-2V9H3v6h1.5v-2.5h2V15H8v-4.9l1.5 1.5V15h3.4l7.6 7.6 1.1-1.1-12.1-12z\"}}]})(props);\n};\nexport function MdHdrOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5v-1c0-.8-.7-1.5-1.5-1.5H16v6h1.5v-2h1.1l.9 2H21l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2V9H3v6h1.5v-2.5h2V15H8V9H6.5v2zM13 9H9.5v6H13c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5h-2v-3h2v3z\"}}]})(props);\n};\nexport function MdHdrPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 14.5h2v1h-2zM14.5 7.5H16v3h-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 13.5c0 .6-.4 1.1-.9 1.4L12 19h-1.5l-.9-2H8.5v2H7v-6h3.5c.8 0 1.5.7 1.5 1.5v1zm0-3.5h-1.5V9.5h-2V12H7V6h1.5v2h2V6H12v6zm5.5 4H16v1.5h-1.5V16H13v-1.5h1.5V13H16v1.49h1.5V16zm0-5.5c0 .8-.7 1.5-1.5 1.5h-3V6h3c.8 0 1.5.7 1.5 1.5v3z\"}}]})(props);\n};\nexport function MdHdrStrong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdHdrWeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"}}]})(props);\n};\nexport function MdHealing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.73 12.02l3.98-3.98a.996.996 0 000-1.41l-4.34-4.34a.996.996 0 00-1.41 0l-3.98 3.98L8 2.29a1.001 1.001 0 00-1.41 0L2.25 6.63a.996.996 0 000 1.41l3.98 3.98L2.25 16a.996.996 0 000 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34a.996.996 0 000-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34l-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z\"}}]})(props);\n};\nexport function MdHevc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 11h-1V9H3v6h1.5v-2.5h1V15H7V9H5.5zM21 11v-1c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h-1.5v.5h-1v-3h1v.5H21zM14.25 13.5L13.5 9H12l1 6h2.5l1-6H15zM8 9v6h3.5v-1.5h-2v-1h2V11h-2v-.5h2V9z\"}}]})(props);\n};\nexport function MdHideImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5c0-1.1-.9-2-2-2H5.83L21 18.17V5zM2.81 2.81L1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.41L2.81 2.81zM6 17l3-4 2.25 3 .82-1.1 2.1 2.1H6z\"}}]})(props);\n};\nexport function MdImageAspectRatio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z\"}}]})(props);\n};\nexport function MdImageNotSupported (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.9 21.9l-8.49-8.49-9.82-9.82L2.1 2.1.69 3.51 3 5.83V19c0 1.1.9 2 2 2h13.17l2.31 2.31 1.42-1.41zM5 18l3.5-4.5 2.5 3.01L12.17 15l3 3H5zm16 .17L5.83 3H19c1.1 0 2 .9 2 2v13.17z\"}}]})(props);\n};\nexport function MdImageSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\"}}]})(props);\n};\nexport function MdIncompleteCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0 5.52-4.48 10-10 10S2 17.52 2 12c0-2.76 1.12-5.26 2.93-7.07L12 12V2c5.52 0 10 4.48 10 10z\"}}]})(props);\n};\nexport function MdIso (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z\"}}]})(props);\n};\nexport function MdLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z\"}}]})(props);\n};\nexport function MdLeakAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2a9 9 0 01-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2a9 9 0 019-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z\"}}]})(props);\n};\nexport function MdLeakRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3H8c0 .37-.04.72-.12 1.06l1.59 1.59C9.81 4.84 10 3.94 10 3zM3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97A8.99 8.99 0 013 12v2c2.71 0 5.19-.99 7.11-2.62l2.5 2.5A11.044 11.044 0 0010 21h2c0-2.16.76-4.14 2.03-5.69l1.43 1.43A6.922 6.922 0 0014 21h2c0-1.06.33-2.03.89-2.84L19.73 21 21 19.73 4.27 3 3 4.27zM14 3h-2c0 1.5-.37 2.91-1.02 4.16l1.46 1.46C13.42 6.98 14 5.06 14 3zm5.94 13.12c.34-.08.69-.12 1.06-.12v-2c-.94 0-1.84.19-2.66.52l1.6 1.6zm-4.56-4.56l1.46 1.46A8.98 8.98 0 0121 12v-2c-2.06 0-3.98.58-5.62 1.56z\"}}]})(props);\n};\nexport function MdLens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\"}}]})(props);\n};\nexport function MdLinkedCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"3.2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"5\",\"fill\":\"none\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.33c2.58 0 4.67 2.09 4.67 4.67H22c0-3.31-2.69-6-6-6v1.33M16 6c1.11 0 2 .89 2 2h1.33c0-1.84-1.49-3.33-3.33-3.33V6\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 0H0v24h24V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 9c0-1.11-.89-2-2-2V4H9L7.17 6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9h-5zm-5 10c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdLooks3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M.01 0h24v24h-24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.01 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 7.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15a2 2 0 01-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4a2 2 0 012 2v1.5z\"}}]})(props);\n};\nexport function MdLooks4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 14h-2v-4H9V7h2v4h2V7h2v10z\"}}]})(props);\n};\nexport function MdLooks5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2a2 2 0 012 2v2a2 2 0 01-2 2H9v-2h4v-2H9V7h6v2z\"}}]})(props);\n};\nexport function MdLooks6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v-2h-2v2zm8-12H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V9a2 2 0 012-2h4v2z\"}}]})(props);\n};\nexport function MdLooksOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z\"}}]})(props);\n};\nexport function MdLooksTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 8a2 2 0 01-2 2h-2v2h4v2H9v-4a2 2 0 012-2h2V9H9V7h4a2 2 0 012 2v2z\"}}]})(props);\n};\nexport function MdLooks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z\"}}]})(props);\n};\nexport function MdLoupe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdMicExternalOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22 5.17 8H4l1 10h1c0 2.21 1.79 4 4 4s4-1.79 4-4v-1.17l5.78 5.78 1.41-1.42zM12 18c0 1.1-.9 2-2 2s-2-.9-2-2h1l.56-5.61L12 14.83V18zm2-12v5.17l-2-2V6c0-2.21 1.79-4 4-4s4 1.79 4 4v11.17l-2-2V6c0-1.1-.9-2-2-2s-2 .9-2 2zm-4-1c0 .62-.2 1.18-.52 1.66L5.33 2.51A2.996 2.996 0 0110 5z\"}}]})(props);\n};\nexport function MdMicExternalOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.22 7H4.78C4.3 6.47 4 5.77 4 5c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .77-.3 1.47-.78 2zM16 2c2.21 0 4 1.79 4 4v16h-2V6c0-1.1-.9-2-2-2s-2 .9-2 2v12c0 2.21-1.79 4-4 4s-4-1.79-4-4H5L4 8h6L9 18H8c0 1.1.9 2 2 2s2-.9 2-2V6c0-2.21 1.79-4 4-4z\"}}]})(props);\n};\nexport function MdMonochromePhotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zM-74 29h48v48h-48V29z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.2L15 3H9L7.2 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-8v-1c-2.8 0-5-2.2-5-5s2.2-5 5-5V7h8v12zm-3-6c0-2.8-2.2-5-5-5v1.8c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2V18c2.8 0 5-2.2 5-5zm-8.2 0c0 1.8 1.4 3.2 3.2 3.2V9.8c-1.8 0-3.2 1.4-3.2 3.2z\"}}]})(props);\n};\nexport function MdMotionPhotosAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 7.88l1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM7 5.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5zm5.03 3.49h-.07L10.8 12.3h2.39l-1.16-3.31zM12 18c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm-.71-10.5h1.43l3.01 8h-1.39l-.72-2.04h-3.23l-.73 2.04H8.28l3.01-8z\"}}]})(props);\n};\nexport function MdMotionPhotosOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 20.84L3.16 3.16 1.89 4.43l1.89 1.89A9.92 9.92 0 002 12c0 5.52 4.48 10 10 10 2.11 0 4.07-.66 5.68-1.77l1.89 1.89 1.27-1.28zM12 20c-4.41 0-8-3.59-8-8 0-1.55.45-3 1.22-4.23l1.46 1.46C6.25 10.06 6 11 6 12c0 3.31 2.69 6 6 6 1 0 1.94-.25 2.77-.68l1.46 1.46A7.951 7.951 0 0112 20zM6.32 3.77A9.986 9.986 0 0112 2c5.52 0 10 4.48 10 10 0 2.11-.66 4.07-1.77 5.68l-1.45-1.45A7.951 7.951 0 0020 12c0-4.41-3.59-8-8-8-1.55 0-3 .45-4.23 1.22L6.32 3.77zM18 12c0 1-.25 1.94-.68 2.77L9.23 6.68C10.06 6.25 11 6 12 6c3.31 0 6 2.69 6 6z\"}}]})(props);\n};\nexport function MdMotionPhotosOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 7.88l1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6zm1-6.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5z\"}}]})(props);\n};\nexport function MdMotionPhotosPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 7.88l1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM7 5.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5zm5 .5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 9H9V9h2v6zm4 0h-2V9h2v6z\"}}]})(props);\n};\nexport function MdMotionPhotosPaused (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0 5.52-4.48 10-10 10S2 17.52 2 12c0-1.19.22-2.32.6-3.38l1.88.68C4.17 10.14 4 11.05 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.95 0-1.85.17-2.69.48l-.68-1.89C9.69 2.22 10.82 2 12 2c5.52 0 10 4.48 10 10zM5.5 4C4.67 4 4 4.67 4 5.5S4.67 7 5.5 7 7 6.33 7 5.5 6.33 4 5.5 4zM11 16V8H9v8h2zm4 0V8h-2v8h2z\"}}]})(props);\n};\nexport function MdMovieCreation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z\"}}]})(props);\n};\nexport function MdMovieFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4l2 3h-3l-2-3h-2l2 3h-3l-2-3H8l2 3H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4zm-6.75 11.25L10 18l-1.25-2.75L6 14l2.75-1.25L10 10l1.25 2.75L14 14l-2.75 1.25zm5.69-3.31L16 14l-.94-2.06L13 11l2.06-.94L16 8l.94 2.06L19 11l-2.06.94z\"}}]})(props);\n};\nexport function MdMp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM6.5 9H11c.55 0 1 .45 1 1v5h-1.5v-4.5h-1v3H8v-3H7V15H5.5v-5c0-.55.45-1 1-1zm9 6H14V9h3.5c.55 0 1 .45 1 1v2.5c0 .55-.45 1-1 1h-2V15zm0-3H17v-1.5h-1.5V12z\"}}]})(props);\n};\nexport function MdMusicNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\"}}]})(props);\n};\nexport function MdMusicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.27 3L3 4.27l9 9v.28c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4v-1.73L19.73 21 21 19.73 4.27 3zM14 7h4V3h-6v5.18l2 2z\"}}]})(props);\n};\nexport function MdNaturePeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0014 16.06V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88a7 7 0 006.17-6.95zM4.5 11c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z\"}}]})(props);\n};\nexport function MdNature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 16.12a7 7 0 006.17-6.95c0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0011 16.06V20H5v2h14v-2h-6v-3.88z\"}}]})(props);\n};\nexport function MdNavigateBefore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"}}]})(props);\n};\nexport function MdNavigateNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"}}]})(props);\n};\nexport function MdPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10a2.5 2.5 0 002.5-2.5c0-.61-.23-1.2-.64-1.67a.528.528 0 01-.13-.33c0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zM5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S7.33 13 6.5 13 5 12.33 5 11.5zm6-4c0 .83-.67 1.5-1.5 1.5S8 8.33 8 7.5 8.67 6 9.5 6s1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdPanoramaFishEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdPanoramaHorizontalSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7s-6.18-.55-9.12-1.64A.94.94 0 002.57 4c-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64s6.18.55 9.12 1.64c.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z\"}}]})(props);\n};\nexport function MdPanoramaHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16-2.72 0-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7c-3.09 0-6.18-.55-9.12-1.64A.94.94 0 002.57 4c-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64 3.09 0 6.18.55 9.12 1.64.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z\"}}]})(props);\n};\nexport function MdPanoramaPhotosphereSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.49 8.51c-.47-.23-.93-.44-1.4-.64C19.52 4.41 16.05 2 12 2S4.47 4.41 2.9 7.88c-.47.2-.93.41-1.4.63-.31.15-.5.48-.5.83v5.32c0 .35.19.68.51.83.47.23.93.44 1.39.64 3.55 7.83 14.65 7.82 18.2 0 .47-.2.93-.41 1.39-.63.31-.17.51-.49.51-.84V9.34a.91.91 0 00-.51-.83zM12 3.8c2.6 0 4.91 1.23 6.41 3.12-4.1-1.19-8.48-1.26-12.83.01C7.08 5.03 9.4 3.8 12 3.8zM5.6 17.08c4.19 1.22 8.57 1.23 12.82-.01a8.136 8.136 0 01-12.82.01z\"}}]})(props);\n};\nexport function MdPanoramaPhotosphere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.4 11.32v2.93c-.1.05-2.17.85-3.33 1.17-.94.26-3.84.73-6.07.73-3.7 0-7-.7-9.16-1.8-.08-.04-.16-.06-.24-.1V9.76c6.02-2.84 12.6-2.92 18.8 0v1.56zm-9.39 8.88c-2.5 0-4.87-1.15-6.41-3.12 4.19 1.22 8.57 1.23 12.82-.01a8.136 8.136 0 01-6.41 3.13zM12 3.8c2.6 0 4.91 1.23 6.41 3.12-4.1-1.19-8.48-1.26-12.83.01C7.08 5.03 9.4 3.8 12 3.8zm10.49 4.71c-.47-.23-.93-.44-1.4-.64C19.52 4.41 16.05 2 12 2S4.47 4.41 2.9 7.88c-.47.2-.93.41-1.4.63-.31.15-.5.48-.5.83v5.32c0 .35.19.68.51.83.47.23.93.44 1.39.64 3.55 7.83 14.65 7.82 18.2 0 .47-.2.93-.41 1.39-.63.31-.17.51-.49.51-.84V9.34a.91.91 0 00-.51-.83z\"}}]})(props);\n};\nexport function MdPanoramaVerticalSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.93 21.12c-1.1-2.94-1.64-6.03-1.64-9.12s.55-6.18 1.64-9.12c.05-.11.07-.22.07-.31 0-.34-.24-.57-.64-.57H4.62c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.7 8.91 5.7 12s-.55 6.18-1.64 9.12c-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57 0-.1-.02-.2-.07-.31z\"}}]})(props);\n};\nexport function MdPanoramaVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12 0-3.09.55-6.18 1.64-9.12a.94.94 0 00.06-.31c0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12c0 3.09-.55 6.18-1.64 9.12-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8 0-2.72-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8 0 2.72.39 5.4 1.16 8H6.54z\"}}]})(props);\n};\nexport function MdPanoramaWideAngleSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z\"}}]})(props);\n};\nexport function MdPanoramaWideAngle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c2.45 0 4.71.2 7.29.64A21 21 0 0120 12a21 21 0 01-.71 5.36c-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64A21 21 0 014 12a21 21 0 01.71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z\"}}]})(props);\n};\nexport function MdPanorama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z\"}}]})(props);\n};\nexport function MdPhotoAlbum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z\"}}]})(props);\n};\nexport function MdPhotoCameraBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h3.17L9 3h6l1.83 2H20zm0 14V7H4v12h16zm-6-7l-3 3.72L9 13l-3 4h12l-4-5z\"}}]})(props);\n};\nexport function MdPhotoCameraFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10.48l4-3.98v11l-4-3.98V18c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v4.48zm-2-.79V6H4v12h12V9.69zM10 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm0 1c1.34 0 4 .67 4 2v1H6v-1c0-1.33 2.66-2 4-2z\"}}]})(props);\n};\nexport function MdPhotoCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdPhotoFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.02 10v9H5V5h9V3H5.02c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zM17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7l2.06.94zm-3.75.75L12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12z\"}}]})(props);\n};\nexport function MdPhotoLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z\"}}]})(props);\n};\nexport function MdPhotoSizeSelectActual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3C2 3 1 4 1 5v14c0 1.1.9 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zM5 17l3.5-4.5 2.5 3.01L14.5 11l4.5 6H5z\"}}]})(props);\n};\nexport function MdPhotoSizeSelectLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15h2v2h-2v-2zm0-4h2v2h-2v-2zm2 8h-2v2c1 0 2-1 2-2zM13 3h2v2h-2V3zm8 4h2v2h-2V7zm0-4v2h2c0-1-1-2-2-2zM1 7h2v2H1V7zm16-4h2v2h-2V3zm0 16h2v2h-2v-2zM3 3C2 3 1 4 1 5h2V3zm6 0h2v2H9V3zM5 3h2v2H5V3zm-4 8v8c0 1.1.9 2 2 2h12V11H1zm2 8l2.5-3.21 1.79 2.15 2.5-3.22L13 19H3z\"}}]})(props);\n};\nexport function MdPhotoSizeSelectSmall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm24 24H0V0h24v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 15h-2v2h2v-2zm0-4h-2v2h2v-2zm0 8h-2v2c1 0 2-1 2-2zM15 3h-2v2h2V3zm8 4h-2v2h2V7zm-2-4v2h2c0-1-1-2-2-2zM3 21h8v-6H1v4c0 1.1.9 2 2 2zM3 7H1v2h2V7zm12 12h-2v2h2v-2zm4-16h-2v2h2V3zm0 16h-2v2h2v-2zM3 3C2 3 1 4 1 5h2V3zm0 8H1v2h2v-2zm8-8H9v2h2V3zM7 3H5v2h2V3z\"}}]})(props);\n};\nexport function MdPhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\"}}]})(props);\n};\nexport function MdPictureAsPdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5v1zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5v3zm4-3H19v1h1.5V11H19v2h-1.5V7h3v1.5zM9 9.5h1v-1H9v1zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5.5h1v-3h-1v3z\"}}]})(props);\n};\nexport function MdPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.25c1.24 0 2.25-1.01 2.25-2.25S13.24 7.75 12 7.75 9.75 8.76 9.75 10s1.01 2.25 2.25 2.25zm4.5 4c0-1.5-3-2.25-4.5-2.25s-4.5.75-4.5 2.25V17h9v-.75zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdRawOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.15 14.32l.59-2.36.76 3.04h1.48l1.5-6h-1.5l-.74 3-.74-3h-1.52l-.74 3-.74-3H14l.72 2.9zM1.39 4.22L6.17 9H3v6h1.5v-2h1.1l.9 2H8l-.9-2.1c.5-.3.9-.8.9-1.4v-.67l1.43 1.43L8.75 15h1.5l.38-1.5h.04l9.11 9.11 1.41-1.41L2.81 2.81 1.39 4.22zM6.5 11.5h-2v-1h2v1z\"}}]})(props);\n};\nexport function MdRawOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 9H3v6h1.5v-2h1.1l.9 2H8l-.9-2.1c.5-.3.9-.8.9-1.4v-1C8 9.7 7.3 9 6.5 9zm0 2.5h-2v-1h2v1zM10.25 9l-1.5 6h1.5l.38-1.5h1.75l.37 1.5h1.5l-1.5-6h-2.5zm.75 3l.25-1h.5l.25 1h-1zM19.98 9l-.74 3-.74-3h-1.52l-.74 3-.74-3H14l1.5 6h1.48l.76-3.04.76 3.04h1.48l1.5-6z\"}}]})(props);\n};\nexport function MdReceiptLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 3.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2v14H3v3c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V2l-1.5 1.5zM19 19c0 .55-.45 1-1 1s-1-.45-1-1v-3H8V5h11v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7h6v2H9zM16 7h2v2h-2zM9 10h6v2H9zM16 10h2v2h-2z\"}}]})(props);\n};\nexport function MdRemoveRedEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdRotate90DegreesCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.34 6.41L.86 12.9l6.49 6.48 6.49-6.48-6.5-6.49zM3.69 12.9l3.66-3.66L11 12.9l-3.66 3.66-3.65-3.66zm15.67-6.26A8.95 8.95 0 0013 4V.76L8.76 5 13 9.24V6c1.79 0 3.58.68 4.95 2.05a7.007 7.007 0 010 9.9 6.973 6.973 0 01-7.79 1.44l-1.49 1.49C10.02 21.62 11.51 22 13 22c2.3 0 4.61-.88 6.36-2.64a8.98 8.98 0 000-12.72z\"}}]})(props);\n};\nexport function MdRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.11 8.53L5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z\"}}]})(props);\n};\nexport function MdRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11a7.906 7.906 0 00-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z\"}}]})(props);\n};\nexport function MdShutterSpeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 1H9v2h6V1zm4.03 6.39l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0012 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a8.994 8.994 0 007.03-14.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-.32-5H6.35a5.992 5.992 0 003.41 3.56l-.11-.06 2.03-3.5zm5.97-4a6.012 6.012 0 00-3.34-3.54L12.26 11h5.39zm-7.04 7.83c.45.11.91.17 1.39.17 1.34 0 2.57-.45 3.57-1.19l-2.11-3.9-2.85 4.92zM7.55 8.99A5.965 5.965 0 006 13c0 .34.04.67.09 1h4.72L7.55 8.99zm8.79 8.14A5.94 5.94 0 0018 13c0-.34-.04-.67-.09-1h-4.34l2.77 5.13zm-3.01-9.98C12.9 7.06 12.46 7 12 7c-1.4 0-2.69.49-3.71 1.29l2.32 3.56 2.72-4.7z\"}}]})(props);\n};\nexport function MdSlideshow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdStraighten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z\"}}]})(props);\n};\nexport function MdStyle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.53 19.65l1.34.56v-9.03l-2.43 5.86c-.41 1.02.08 2.19 1.09 2.61zm19.5-3.7L17.07 3.98a2.013 2.013 0 00-1.81-1.23c-.26 0-.53.04-.79.15L7.1 5.95a1.999 1.999 0 00-1.08 2.6l4.96 11.97a1.998 1.998 0 002.6 1.08l7.36-3.05a1.994 1.994 0 001.09-2.6zM7.88 8.75c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2 11c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z\"}}]})(props);\n};\nexport function MdSwitchCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 11.5V13H9v2.5L5.5 12 9 8.5V11h6V8.5l3.5 3.5-3.5 3.5z\"}}]})(props);\n};\nexport function MdSwitchVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zm-5 6V13H7v2.5L3.5 12 7 8.5V11h6V8.5l3.5 3.5-3.5 3.5z\"}}]})(props);\n};\nexport function MdTagFaces (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"}}]})(props);\n};\nexport function MdTexture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.51 3.08L3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3L3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z\"}}]})(props);\n};\nexport function MdThermostatAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12V6c0-1.66-1.34-3-3-3S5 4.34 5 6v6c-1.21.91-2 2.37-2 4 0 1.12.38 2.14 1 2.97V19h.02c.91 1.21 2.35 2 3.98 2s3.06-.79 3.98-2H12v-.03c.62-.83 1-1.85 1-2.97 0-1.63-.79-3.09-2-4zm-6 4c0-.94.45-1.84 1.2-2.4L7 13V6c0-.55.45-1 1-1s1 .45 1 1v7l.8.6c.75.57 1.2 1.46 1.2 2.4H5zM18.62 4h-1.61l-3.38 9h1.56l.81-2.3h3.63l.8 2.3H22l-3.38-9zm-2.15 5.39l1.31-3.72h.08l1.31 3.72h-2.7z\"}}]})(props);\n};\nexport function MdTimelapse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76A5.974 5.974 0 0012 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0a5.99 5.99 0 00-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdTimer10 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 7.72V9.4l3-1V18h2V6h-.25L0 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 01-.87-.23 2.61 2.61 0 01-.55-.25.717.717 0 01-.28-.3.978.978 0 01.01-.8c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95a2.517 2.517 0 00-.93-1.97c-.3-.25-.66-.44-1.09-.59C21.49 9.07 21 9 20.46 9c-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 01-.59-1.11h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27-.58 0-1.11.09-1.59.27-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89.48.18 1.01.28 1.59.28.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89.34-.41.6-.94.78-1.6.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53-.08.42-.2.76-.36 1.02-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02-.09-.42-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52.09-.41.21-.74.38-1 .16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99.08.41.13.92.13 1.52v2.51z\"}}]})(props);\n};\nexport function MdTimer3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.61 12.97c-.16-.24-.36-.46-.62-.65a3.38 3.38 0 00-.93-.48c.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33.22-.08.46-.12.73-.12.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57-.17.16-.38.28-.63.37-.25.09-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36-.17-.16-.3-.34-.39-.56-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23.49-.15.91-.38 1.26-.68.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 01-.87-.23 2.61 2.61 0 01-.55-.25.717.717 0 01-.28-.3c-.05-.11-.08-.24-.08-.39a.946.946 0 01.36-.75c.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95a2.517 2.517 0 00-.93-1.97c-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.68.23.96c.15.28.37.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 01-.59-1.11h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z\"}}]})(props);\n};\nexport function MdTimerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.04 4.55l-1.42 1.42a9.012 9.012 0 00-10.57-.49l1.46 1.46C9.53 6.35 10.73 6 12 6c3.87 0 7 3.13 7 7 0 1.27-.35 2.47-.94 3.49l1.45 1.45A8.878 8.878 0 0021 13c0-2.12-.74-4.07-1.97-5.61l1.42-1.42-1.41-1.42zM15 1H9v2h6V1zm-4 8.44l2 2V8h-2v1.44zM3.02 4L1.75 5.27 4.5 8.03A8.905 8.905 0 003 13c0 4.97 4.02 9 9 9 1.84 0 3.55-.55 4.98-1.5l2.5 2.5 1.27-1.27-7.71-7.71L3.02 4zM12 20c-3.87 0-7-3.13-7-7 0-1.28.35-2.48.95-3.52l9.56 9.56c-1.03.61-2.23.96-3.51.96z\"}}]})(props);\n};\nexport function MdTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0012 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a8.994 8.994 0 007.03-14.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdTonality (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z\"}}]})(props);\n};\nexport function MdTransform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z\"}}]})(props);\n};\nexport function MdTune (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z\"}}]})(props);\n};\nexport function MdVideoCameraBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10.48V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4.48l4 3.98v-11l-4 3.98zM5 16l2.38-3.17L9 15l2.62-3.5L15 16H5z\"}}]})(props);\n};\nexport function MdVideoCameraFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10.48V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4.48l4 3.98v-11l-4 3.98zM10 8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8H6v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0114 15.43V16z\"}}]})(props);\n};\nexport function MdVideoStable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 18V6h2.95l-2.33 8.73L16.82 18H4zm16 0h-2.95l2.34-8.73L7.18 6H20v12z\"}}]})(props);\n};\nexport function MdViewComfy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h4V5H3v4zm0 5h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zM8 9h4V5H8v4zm5-4v4h4V5h-4zm5 9h4v-4h-4v4zM3 19h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zm5 0h4v-4h-4v4zm0-14v4h4V5h-4z\"}}]})(props);\n};\nexport function MdViewCompact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 19h6v-7H3v7zm7 0h12v-7H10v7zM3 5v6h19V5H3z\"}}]})(props);\n};\nexport function MdVignette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 15c-4.42 0-8-2.69-8-6s3.58-6 8-6 8 2.69 8 6-3.58 6-8 6z\"}}]})(props);\n};\nexport function MdVrpano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.69 4.05C18.66 4.73 15.86 5.5 12 5.5c-3.89 0-6.95-.84-8.69-1.43A.993.993 0 002 5.02V19c0 .68.66 1.17 1.31.95C5.36 19.26 8.1 18.5 12 18.5c3.87 0 6.66.76 8.69 1.45A.999.999 0 0022 19V5c0-.68-.66-1.16-1.31-.95zM12 15c-2.34 0-4.52.15-6.52.41l3.69-4.42 2 2.4L14 10l4.51 5.4c-1.99-.25-4.21-.4-6.51-.4z\"}}]})(props);\n};\nexport function MdWbAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.85 12.65h2.3L8 9l-1.15 3.65zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76C12.77 5.17 10.53 4 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.13 0 5.84-1.81 7.15-4.43l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-11.7 9l-.7-2H6.4l-.7 2H3.8L7 7h2l3.2 9h-1.9z\"}}]})(props);\n};\nexport function MdWbCloudy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.36 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96z\"}}]})(props);\n};\nexport function MdWbIncandescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.55 18.54l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8zM11 22.45h2V19.5h-2v2.95zM4 10.5H1v2h3v-2zm11-4.19V1.5H9v4.81C7.21 7.35 6 9.28 6 11.5c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19zm5 4.19v2h3v-2h-3zm-2.76 7.66l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4z\"}}]})(props);\n};\nexport function MdWbIridescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 14.5h14v-6H5v6zM11 .55V3.5h2V.55h-2zm8.04 2.5l-1.79 1.79 1.41 1.41 1.8-1.79-1.42-1.41zM13 22.45V19.5h-2v2.95h2zm7.45-3.91l-1.8-1.79-1.41 1.41 1.79 1.8 1.42-1.42zM3.55 4.46l1.79 1.79 1.41-1.41-1.79-1.79-1.41 1.41zm1.41 15.49l1.79-1.8-1.41-1.41-1.79 1.79 1.41 1.42z\"}}]})(props);\n};\nexport function MdWbShade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12v2.5l5.5 5.5H22zm0 8h3l-3-3zM8 4l-6 6h2v10h8V10h2L8 4zm1 10H7v-4h2v4z\"}}]})(props);\n};\nexport function MdWbSunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z\"}}]})(props);\n};\nexport function MdWbTwighlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.954 8.66l2.12-2.12 1.415 1.414-2.13 2.12zM17.9 14c-.5-2.85-2.95-5-5.9-5s-5.45 2.15-5.9 5h11.8zM2 16h20v4H2zm9-12h2v3h-2zM3.54 7.925L4.954 6.51l2.122 2.122-1.415 1.415z\"}}]})(props);\n};\nexport function MdWbTwilight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.955 8.662l2.12-2.122 1.416 1.414-2.121 2.122zM2 18h20v2H2zM11 4h2v3h-2zM3.543 7.925L4.957 6.51l2.121 2.12-1.414 1.415zM5 16h14c0-3.87-3.13-7-7-7s-7 3.13-7 7z\"}}]})(props);\n};\nexport function Md360 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7C6.48 7 2 9.24 2 12c0 2.24 2.94 4.13 7 4.77V20l4-4-4-4v2.73c-3.15-.56-5-1.9-5-2.73 0-1.06 3.04-3 8-3s8 1.94 8 3c0 .73-1.46 1.89-4 2.53v2.05c3.53-.77 6-2.53 6-4.58 0-2.76-4.48-5-10-5z\"}}]})(props);\n};\nexport function MdAddBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 17h2v-3h1v-2l-1-5H2l-1 5v2h1v6h9v-6h4v3zm-6 1H4v-4h5v4zM2 4h15v2H2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v-3h-2v3h-3v2h3v3h2v-3h3v-2z\"}}]})(props);\n};\nexport function MdAddLocationAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 1v3h3v2h-3v3h-2V6h-3V4h3V1h2zm-8 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2-9.75V7h3v3h2.92c.05.39.08.79.08 1.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 6.22 7.8 3 12 3c.68 0 1.35.08 2 .25z\"}}]})(props);\n};\nexport function MdAddLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm4 8h-3v3h-2v-3H8V8h3V5h2v3h3v2z\"}}]})(props);\n};\nexport function MdAddRoad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v-3h-2v3h-3v2h3v3h2v-3h3v-2zM18 4h2v9h-2zM4 4h2v16H4zM11 4h2v4h-2zM11 10h2v4h-2zM11 16h2v4h-2z\"}}]})(props);\n};\nexport function MdAgriculture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 12c.93 0 1.78.28 2.5.76V8c0-1.1-.9-2-2-2h-6.29l-1.06-1.06 1.41-1.41-.71-.71-3.53 3.53.71.71 1.41-1.41L13 6.71V9c0 1.1-.9 2-2 2h-.54A5.98 5.98 0 0112 15c0 .34-.04.67-.09 1h3.14c.25-2.25 2.14-4 4.45-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 13c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0 5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM4 9h5c0-1.1-.9-2-2-2H4c-.55 0-1 .45-1 1s.45 1 1 1zM9.83 13.82l-.18-.47.93-.35a4.92 4.92 0 00-2.31-2.43l-.4.89-.46-.21.4-.9C7.26 10.13 6.64 10 6 10c-.53 0-1.04.11-1.52.26l.34.91-.47.18-.35-.93a4.92 4.92 0 00-2.43 2.31l.89.4-.21.46-.9-.4C1.13 13.74 1 14.36 1 15c0 .53.11 1.04.26 1.52l.91-.34.18.47-.93.35a4.92 4.92 0 002.31 2.43l.4-.89.46.21-.4.9c.55.22 1.17.35 1.81.35.53 0 1.04-.11 1.52-.26l-.34-.91.47-.18.35.93a4.92 4.92 0 002.43-2.31l-.89-.4.21-.46.9.4c.22-.55.35-1.17.35-1.81 0-.53-.11-1.04-.26-1.52l-.91.34zm-2.68 3.95c-1.53.63-3.29-.09-3.92-1.62-.63-1.53.09-3.29 1.62-3.92 1.53-.63 3.29.09 3.92 1.62.64 1.53-.09 3.29-1.62 3.92z\"}}]})(props);\n};\nexport function MdAltRoute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.78 11.16l-1.42 1.42a7.282 7.282 0 01-1.79-2.94l1.94-.49c.32.89.77 1.5 1.27 2.01zM11 6L7 2 3 6h3.02c.02.81.08 1.54.19 2.17l1.94-.49C8.08 7.2 8.03 6.63 8.02 6H11zm10 0l-4-4-4 4h2.99c-.1 3.68-1.28 4.75-2.54 5.88-.5.44-1.01.92-1.45 1.55-.34-.49-.73-.88-1.13-1.24L9.46 13.6c.93.85 1.54 1.54 1.54 3.4v5h2v-5c0-2.02.71-2.66 1.79-3.63 1.38-1.24 3.08-2.78 3.2-7.37H21z\"}}]})(props);\n};\nexport function MdAtm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9v1.5h2.25V15h1.5v-4.5H14V9zM6 9H3c-.55 0-1 .45-1 1v5h1.5v-1.5h2V15H7v-5c0-.55-.45-1-1-1zm-.5 3h-2v-1.5h2V12zM21 9h-4.5c-.55 0-1 .45-1 1v5H17v-4.5h1V14h1.5v-3.51h1V15H22v-5c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdAttractions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.43 18.75c.37-.46.94-.75 1.57-.75.63 0 1.19.29 1.56.75.39-.09.76-.21 1.12-.36l-1.42-3.18a3.522 3.522 0 01-2.56-.02l-1.43 3.19c.38.16.76.29 1.16.37zM5.15 10a7.06 7.06 0 00.08 4c.63.05 1.22.4 1.56.99.33.57.35 1.23.11 1.79.27.27.56.53.87.76l1.52-3.39c-.47-.58-.75-1.32-.75-2.13 0-1.89 1.55-3.41 3.46-3.41s3.46 1.53 3.46 3.41c0 .82-.29 1.57-.78 2.16l1.5 3.35c.32-.24.62-.5.9-.79-.22-.55-.2-1.2.12-1.75.33-.57.9-.92 1.52-.99a7.025 7.025 0 00.09-4.02c-.64-.04-1.26-.39-1.6-1-.36-.62-.35-1.36-.03-1.95-.91-.98-2.1-1.71-3.44-2.05C13.39 5.6 12.74 6 12 6s-1.39-.41-1.74-1.01a7.053 7.053 0 00-3.44 2.03c.33.6.35 1.35-.02 1.98-.35.62-.99.97-1.65 1zm-1.3-.42c-.78-.6-1.02-1.7-.51-2.58.51-.88 1.58-1.23 2.49-.85a8.53 8.53 0 014.18-2.42C10.15 2.75 10.99 2 12 2s1.85.75 1.98 1.73c1.63.39 3.07 1.24 4.18 2.42a1.99 1.99 0 012.49.85c.51.88.27 1.98-.51 2.58.23.77.35 1.58.35 2.42s-.12 1.65-.35 2.42c.78.6 1.02 1.7.51 2.58-.51.88-1.58 1.23-2.49.85-.4.43-.85.81-1.34 1.15l1.34 3H16.3l-.97-2.17c-.43.18-.88.33-1.34.44-.14.98-.98 1.73-1.99 1.73s-1.85-.75-1.98-1.73c-.48-.12-.94-.27-1.38-.46L7.66 22H5.78l1.36-3.03a8.72 8.72 0 01-1.3-1.12c-.92.38-1.99.03-2.5-.85s-.27-1.98.51-2.58c-.23-.77-.35-1.58-.35-2.42s.12-1.65.35-2.42z\"}}]})(props);\n};\nexport function MdBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-5V4c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM9 12c.83 0 1.5.67 1.5 1.5S9.83 15 9 15s-1.5-.67-1.5-1.5S8.17 12 9 12zm3 6H6v-.75c0-1 2-1.5 3-1.5s3 .5 3 1.5V18zm1-9h-2V4h2v5zm5 7.5h-4V15h4v1.5zm0-3h-4V12h4v1.5z\"}}]})(props);\n};\nexport function MdBakeryDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M19.28 16.34L17.46 15s.32-.59.96-1.78a.944.944 0 011.6 0l.81 1.26c.19.3.21.68.06 1l-.22.47a.94.94 0 01-1.39.39zm-14.56 0a.946.946 0 01-1.39-.38l-.23-.47c-.15-.32-.13-.7.06-1l.81-1.26a.944.944 0 011.6 0c.65 1.18.97 1.77.97 1.77l-1.82 1.34zm10.64-6.97c.09-.68.73-1.06 1.27-.75l1.59.9c.46.26.63.91.36 1.41L16.5 15h-1.8l.66-5.63zm-6.73 0L9.3 15H7.5l-2.09-4.08c-.27-.5-.1-1.15.36-1.41l1.59-.9c.53-.3 1.18.08 1.27.76zM13.8 15h-3.6l-.74-6.88c-.07-.59.35-1.12.88-1.12h3.3c.53 0 .94.53.88 1.12L13.8 15z\"}}]})(props);\n};\nexport function MdBeenhere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 1H5c-1.1 0-1.99.9-1.99 2L3 15.93c0 .69.35 1.3.88 1.66L12 23l8.11-5.41c.53-.36.88-.97.88-1.66L21 3c0-1.1-.9-2-2-2zm-9 15l-5-5 1.41-1.41L10 13.17l7.59-7.59L19 7l-9 9z\"}}]})(props);\n};\nexport function MdBikeScooter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14h.74L8.82 5.56A2.009 2.009 0 006.87 4H3v2h3.87l1.42 6.25h-.01A6.008 6.008 0 004.09 17H0v2h6v-1c0-2.21 1.79-4 4-4zM19 8h-.82l-1.35-3.69A1.976 1.976 0 0014.96 3H11v2h3.96l1.1 3H10.4l.46 2H15c-.43.58-.75 1.25-.9 2h-2.79l.46 2h2.33c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5C24 10.2 21.8 8 19 8zm0 8c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.03 0 .06-.01.09-.01 1.68 0 3 1.32 3 3s-1.33 3-3.01 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdBreakfastDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 3H6C3.79 3 2 4.79 2 7c0 1.48.81 2.75 2 3.45V19c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8.55c1.19-.69 2-1.97 2-3.45 0-2.21-1.79-4-4-4zm-4 12h-4v-4h4v4z\"}}]})(props);\n};\nexport function MdBrunchDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M18 8h2V4h-2v4zm-2.49 14H2.49c-.27 0-.49-.22-.49-.5V20h14v1.5c0 .28-.22.5-.49.5zM18 15.89l-.4-.42a5.852 5.852 0 01-1.6-4V2h6v9.51c0 1.46-.54 2.87-1.53 3.94l-.47.52V20h2v2h-4v-6.11zM7 16v-2h4v2h4.5c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5h-13c-.28 0-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5H7z\"}}]})(props);\n};\nexport function MdBusAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1a7 7 0 00-5.78 3.05l.02-.03C9.84 4 9.42 4 9 4c-4.42 0-8 .5-8 4v10c0 .88.39 1.67 1 2.22V22a1 1 0 001 1h1a1 1 0 001-1v-1h8v1a1 1 0 001 1h1a1 1 0 001-1v-1.78c.61-.55 1-1.34 1-2.22v-3.08A7 7 0 0016 1zM4.5 19a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM3 13V8h6c0 1.96.81 3.73 2.11 5H3zm10.5 6a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm2.5-6a5 5 0 110-10 5 5 0 010 10zm-1-9h2v5h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function MdCarRental (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.39 9H7.61c-.43 0-.81.28-.95.68l-1.66 5v6.81c0 .29.23.51.5.51h1c.28 0 .5-.22.5-.5V20h10v1.5c0 .28.22.5.5.5h1c.28 0 .5-.22.5-.5v-6.81l-1.66-5a1.01 1.01 0 00-.95-.69zm-8.61 9c-.68 0-1.22-.54-1.22-1.22s.54-1.22 1.22-1.22S9 16.11 9 16.78 8.46 18 7.78 18zm8.44 0c-.67 0-1.22-.54-1.22-1.22s.54-1.22 1.22-1.22 1.22.54 1.22 1.22S16.9 18 16.22 18zm-9.93-4l1.33-4h8.78l1.33 4H6.29zM10.83 3A3.01 3.01 0 008 1C6.34 1 5 2.34 5 4c0 1.65 1.34 3 3 3 1.3 0 2.41-.84 2.83-2H16v2h2V5h1V3h-8.17zM8 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdCarRepair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.22 12c.68 0 1.22-.54 1.22-1.22 0-.67-.54-1.22-1.22-1.22S15 10.11 15 10.78c0 .68.55 1.22 1.22 1.22zm-9.66-1.22c0 .67.54 1.22 1.22 1.22S9 11.46 9 10.78c0-.67-.54-1.22-1.22-1.22s-1.22.55-1.22 1.22zM7.61 4L6.28 8h11.43l-1.33-4H7.61zm8.67-1s.54.01.92.54c.02.02.03.04.05.07.07.11.14.24.19.4.22.65 1.56 4.68 1.56 4.68v6.5c0 .45-.35.81-.78.81h-.44c-.43 0-.78-.36-.78-.81V14H7v1.19c0 .45-.35.81-.78.81h-.44c-.43 0-.78-.36-.78-.81v-6.5S6.34 4.67 6.55 4c.05-.16.12-.28.19-.4.03-.02.04-.04.06-.06.38-.53.92-.54.92-.54h8.56zM4 17.01h16V19h-7v3h-2v-3H4v-1.99z\"}}]})(props);\n};\nexport function MdCategory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2l-5.5 9h11z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"4.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13.5h8v8H3z\"}}]})(props);\n};\nexport function MdCelebration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22l14-5-9-9zM14.53 12.53l5.59-5.59a1.25 1.25 0 011.77 0l.59.59 1.06-1.06-.59-.59a2.758 2.758 0 00-3.89 0l-5.59 5.59 1.06 1.06zM10.06 6.88l-.59.59 1.06 1.06.59-.59a2.758 2.758 0 000-3.89l-.59-.59-1.06 1.07.59.59c.48.48.48 1.28 0 1.76zM17.06 11.88l-1.59 1.59 1.06 1.06 1.59-1.59a1.25 1.25 0 011.77 0l1.61 1.61 1.06-1.06-1.61-1.61a2.758 2.758 0 00-3.89 0zM15.06 5.88l-3.59 3.59 1.06 1.06 3.59-3.59a2.758 2.758 0 000-3.89l-1.59-1.59-1.06 1.06 1.59 1.59c.48.49.48 1.29 0 1.77z\"}}]})(props);\n};\nexport function MdCleaningServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11h-1V3c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v8H8c-2.76 0-5 2.24-5 5v7h18v-7c0-2.76-2.24-5-5-5zm3 10h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H9v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H5v-5c0-1.65 1.35-3 3-3h8c1.65 0 3 1.35 3 3v5z\"}}]})(props);\n};\nexport function MdCompassCalibration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"17\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10.07c1.95 0 3.72.79 5 2.07l5-5C19.44 4.59 15.9 3 12 3S4.56 4.59 2 7.15l5 5a7.06 7.06 0 015-2.08z\"}}]})(props);\n};\nexport function MdDeliveryDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 14H10V9H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 10.35V7zM7 17c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 6h5v2H5zM19 13c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdDepartureBoard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1c-2.4 0-4.52 1.21-5.78 3.05.01-.01.01-.02.02-.03C9.84 4 9.42 4 9 4c-4.42 0-8 .5-8 4v10c0 .88.39 1.67 1 2.22V22c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22v-3.08c3.39-.49 6-3.39 6-6.92 0-3.87-3.13-7-7-7zM4.5 19c-.83 0-1.5-.67-1.5-1.5S3.67 16 4.5 16s1.5.67 1.5 1.5S5.33 19 4.5 19zM3 13V8h6c0 1.96.81 3.73 2.11 5H3zm10.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm.5-9H15v5l3.62 2.16.75-1.23-2.87-1.68z\"}}]})(props);\n};\nexport function MdDesignServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 11.51l1.57-1.57-3.75-3.75-1.57 1.57-4.14-4.13c-.78-.78-2.05-.78-2.83 0l-1.9 1.9c-.78.78-.78 2.05 0 2.83l4.13 4.13L3 17.25V21h3.75l4.76-4.76 4.13 4.13c.95.95 2.23.6 2.83 0l1.9-1.9c.78-.78.78-2.05 0-2.83l-4.13-4.13zm-7.06-.44L5.04 6.94l1.89-1.9L8.2 6.31 7.02 7.5l1.41 1.41 1.19-1.19 1.45 1.45-1.89 1.9zm7.88 7.89l-4.13-4.13 1.9-1.9 1.45 1.45-1.19 1.19 1.41 1.41 1.19-1.19 1.27 1.27-1.9 1.9zM20.71 7.04a.996.996 0 000-1.41l-2.34-2.34c-.47-.47-1.12-.29-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"}}]})(props);\n};\nexport function MdDinnerDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19h20l-2 2H4l-2-2zM5 6h1v1H5V6zm0-2h1v1H5V4zm4 0v1H7V4h2zm0 3H7V6h2v1zm-3 8.23c-.36.11-.69.28-1 .47V8h1v7.23zm-2 1.29c-.38.44-.68.93-.84 1.48h16.82c.01-.16.03-.33.03-.5a5.497 5.497 0 00-10.58-2.1c-.59-.25-1.24-.4-1.93-.4-.17 0-.33.02-.5.04V8h2c1.03.06 1.9-.96 2-2h10V5H11c-.1-1.05-.97-1.97-2-2H3v1h1v1H3v1h1v1H3v1h1v8.52z\"}}]})(props);\n};\nexport function MdDirectionsBike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm5.8-10l2.4-2.4.8.8c1.3 1.3 3 2.1 5.1 2.1V9c-1.5 0-2.7-.6-3.6-1.5l-1.9-1.9c-.5-.4-1-.6-1.6-.6s-1.1.2-1.4.6L7.8 8.4c-.4.4-.6.9-.6 1.4 0 .6.2 1.1.6 1.4L11 14v5h2v-6.2l-2.2-2.3zM19 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z\"}}]})(props);\n};\nexport function MdDirectionsBoatFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99a8.752 8.752 0 008 0c1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.9-6.68c.11-.37.04-1.06-.66-1.28L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42c-.63.19-.81.84-.66 1.28L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z\"}}]})(props);\n};\nexport function MdDirectionsBoat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99a8.752 8.752 0 008 0c1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.89-6.68c.08-.26.06-.54-.06-.78s-.34-.42-.6-.5L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42a1.007 1.007 0 00-.66 1.28L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z\"}}]})(props);\n};\nexport function MdDirectionsBusFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5c0 .95.38 1.81 1 2.44V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-2.06c.62-.63 1-1.49 1-2.44V6c0-3.5-3.58-4-8-4zM8.5 16c-.83 0-1.5-.67-1.5-1.5S7.67 13 8.5 13s1.5.67 1.5 1.5S9.33 16 8.5 16zm7 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6H6V7h12v3z\"}}]})(props);\n};\nexport function MdDirectionsBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z\"}}]})(props);\n};\nexport function MdDirectionsCarFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM7.5 16c-.83 0-1.5-.67-1.5-1.5S6.67 13 7.5 13s1.5.67 1.5 1.5S8.33 16 7.5 16zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5.81 10l1.04-3h10.29l1.04 3H5.81z\"}}]})(props);\n};\nexport function MdDirectionsCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\"}}]})(props);\n};\nexport function MdDirectionsRailwayFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zm0 14c-.83 0-1.5-.67-1.5-1.5S11.17 13 12 13s1.5.67 1.5 1.5S12.83 16 12 16zm6-6H6V7h12v3z\"}}]})(props);\n};\nexport function MdDirectionsRailway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V5c0-3.5-3.58-4-8-4s-8 .5-8 4v10.5zm8 1.5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6-7H6V5h12v5z\"}}]})(props);\n};\nexport function MdDirectionsRun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.49 5.48c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-3.6 13.9l1-4.4 2.1 2v6h2v-7.5l-2.1-2 .6-3c1.3 1.5 3.3 2.5 5.5 2.5v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1l-5.2 2.2v4.7h2v-3.4l1.8-.7-1.6 8.1-4.9-1-.4 2 7 1.4z\"}}]})(props);\n};\nexport function MdDirectionsSubwayFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM8.5 16c-.83 0-1.5-.67-1.5-1.5S7.67 13 8.5 13s1.5.67 1.5 1.5S9.33 16 8.5 16zm2.5-6H6V7h5v3zm4.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6h-5V7h5v3z\"}}]})(props);\n};\nexport function MdDirectionsSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.42 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm5.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6h-5V6h5v5z\"}}]})(props);\n};\nexport function MdDirectionsTransitFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM8.5 16c-.83 0-1.5-.67-1.5-1.5S7.67 13 8.5 13s1.5.67 1.5 1.5S9.33 16 8.5 16zm2.5-6H6V7h5v3zm4.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm2.5-6h-5V7h5v3z\"}}]})(props);\n};\nexport function MdDirectionsTransit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.42 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm5.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6h-5V6h5v5z\"}}]})(props);\n};\nexport function MdDirectionsWalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7\"}}]})(props);\n};\nexport function MdDirections (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.71 11.29l-9-9a.996.996 0 00-1.41 0l-9 9a.996.996 0 000 1.41l9 9c.39.39 1.02.39 1.41 0l9-9a.996.996 0 000-1.41zM14 14.5V12h-4v3H8v-4c0-.55.45-1 1-1h5V7.5l3.5 3.5-3.5 3.5z\"}}]})(props);\n};\nexport function MdDryCleaning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.56 11.36L13 8.44V7c0-.55-.45-1-1-1s-1-.45-1-1 .45-1 1-1 1 .45 1 1h2c0-1.84-1.66-3.3-3.56-2.95-1.18.22-2.15 1.17-2.38 2.35-.3 1.56.6 2.94 1.94 3.42v.63l-6.56 2.92c-.88.38-1.44 1.25-1.44 2.2v.01C3 14.92 4.08 16 5.42 16H7v6h10v-6h1.58c1.34 0 2.42-1.08 2.42-2.42v-.01c0-.95-.56-1.82-1.44-2.21zM18.58 14H17v-1H7v1H5.42c-.23 0-.42-.19-.42-.43 0-.17.1-.32.25-.38l6.75-3 6.75 3a.423.423 0 01-.17.81z\"}}]})(props);\n};\nexport function MdEditAttributes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.63 7H6.37C3.96 7 2 9.24 2 12s1.96 5 4.37 5h11.26c2.41 0 4.37-2.24 4.37-5s-1.96-5-4.37-5zM7.24 14.46l-2.57-2.57.7-.7 1.87 1.87 3.52-3.52.7.7-4.22 4.22z\"}}]})(props);\n};\nexport function MdEditLocationAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.95 13H9V8.05l5.61-5.61A8.17 8.17 0 0012 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8 0-1.01-.16-1.94-.45-2.8l-5.6 5.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11h2.12l6.16-6.16-2.12-2.12L11 8.88zM20.71 2L20 1.29c-.2-.19-.45-.29-.71-.29-.13 0-.48.07-.71.29l-.72.72 2.12 2.12.72-.72c.4-.39.4-1.02.01-1.41z\"}}]})(props);\n};\nexport function MdEditLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm-1.56 10H9v-1.44l3.35-3.34 1.43 1.43L10.44 12zm4.45-4.45l-.7.7-1.44-1.44.7-.7a.38.38 0 01.54 0l.9.9c.15.15.15.39 0 .54z\"}}]})(props);\n};\nexport function MdEditRoad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4h-2v7.9l2-2zM4 4h2v16H4zM10 4h2v4h-2zM10 10h2v4h-2zM10 16h2v4h-2zM22.56 12.59l-1.15-1.15a1.49 1.49 0 00-2.12 0L14 16.73V20h3.27l5.29-5.29c.59-.59.59-1.54 0-2.12zm-5.98 5.86h-1.03v-1.03L19 13.97 20.03 15l-3.45 3.45z\"}}]})(props);\n};\nexport function MdElectricBike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7h-.82l-1.7-4.68A2.008 2.008 0 0014.6 1H12v2h2.6l1.46 4h-4.81l-.36-1H12V4H7v2h1.75l1.82 5H9.9c-.44-2.23-2.31-3.88-4.65-3.99C2.45 6.87 0 9.2 0 12c0 2.8 2.2 5 5 5 2.46 0 4.45-1.69 4.9-4h4.2c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5C24 9.2 21.8 7 19 7zM7.82 13c-.4 1.17-1.49 2-2.82 2-1.68 0-3-1.32-3-3s1.32-3 3-3c1.33 0 2.42.83 2.82 2H5v2h2.82zm6.28-2h-1.4l-.73-2H15c-.44.58-.76 1.25-.9 2zm4.9 4c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.02 0 .05-.01.08-.01 1.68 0 3 1.32 3 3s-1.32 3-3 3zM11 20H7l6 3v-2h4l-6-3z\"}}]})(props);\n};\nexport function MdElectricCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 2.01C18.72 1.42 18.16 1 17.5 1h-11c-.66 0-1.21.42-1.42 1.01L3 8v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8l-2.08-5.99zM6.5 12c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm11 0c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 7l1.5-4.5h11L19 7H5zM7 20h4v-2l6 3h-4v2z\"}}]})(props);\n};\nexport function MdElectricMoped (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 12H10V7H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 8.35V5zM7 15c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4h5v2H5zM19 11c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM7 20h4v-2l6 3h-4v2z\"}}]})(props);\n};\nexport function MdElectricRickshaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.18V9.72c0-.47-.16-.92-.46-1.28L16.6 3.72c-.38-.46-.94-.72-1.54-.72H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h.18C3.6 16.16 4.7 17 6 17s2.4-.84 2.82-2h8.37a2.996 2.996 0 005.82-1c-.01-1.3-.85-2.4-2.01-2.82zM18.4 9H16V6.12L18.4 9zM3 5h4v4H3V5zm3 10c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-2v-2h3V9H9V5h5v8H9zm11 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM7 20h4v-2l6 3h-4v2z\"}}]})(props);\n};\nexport function MdElectricScooter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.82 16H15v-1c0-2.21 1.79-4 4-4h.74l-1.9-8.44A2.009 2.009 0 0015.89 1H12v2h3.89l1.4 6.25h-.01A6.008 6.008 0 0013.09 14H7.82a2.996 2.996 0 00-3.42-1.94c-1.18.23-2.13 1.2-2.35 2.38A3.002 3.002 0 005 18c1.3 0 2.4-.84 2.82-2zM5 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM11 20H7l6 3v-2h4l-6-3z\"}}]})(props);\n};\nexport function MdElectricalServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14c0-.55-.45-1-1-1h-2v2h2c.55 0 1-.45 1-1zM20 17h-2v2h2c.55 0 1-.45 1-1s-.45-1-1-1zM12 14h-2v4h2c0 1.1.9 2 2 2h3v-8h-3c-1.1 0-2 .9-2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13c0-1.1.9-2 2-2h1.5c1.93 0 3.5-1.57 3.5-3.5S10.43 4 8.5 4H5c-.55 0-1 .45-1 1s.45 1 1 1h3.5c.83 0 1.5.67 1.5 1.5S9.33 9 8.5 9H7c-2.21 0-4 1.79-4 4s1.79 4 4 4h2v-2H7c-1.1 0-2-.9-2-2z\"}}]})(props);\n};\nexport function MdEmergency (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.79 9.23l-2-3.46L14 8.54V3h-4v5.54L5.21 5.77l-2 3.46L8 12l-4.79 2.77 2 3.46L10 15.46V21h4v-5.54l4.79 2.77 2-3.46L16 12z\"}}]})(props);\n};\nexport function MdEvStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 7.23l.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 002.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 005 0V9c0-.69-.28-1.32-.73-1.77zM18 10c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM8 18v-4.5H6L10 6v5h2l-4 7z\"}}]})(props);\n};\nexport function MdFastfood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.06 22.99h1.66c.84 0 1.53-.64 1.63-1.46L23 5.05h-5V1h-1.97v4.05h-4.97l.3 2.34c1.71.47 3.31 1.32 4.27 2.26 1.44 1.42 2.43 2.89 2.43 5.29v8.05zM1 21.99V21h15.03v.99c0 .55-.45 1-1.01 1H2.01c-.56 0-1.01-.45-1.01-1zm15.03-7c0-8-15.03-8-15.03 0h15.03zM1.02 17h15v2h-15z\"}}]})(props);\n};\nexport function MdFestival (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5.7V4h3l-1-1.49L16 1h-5v4.7L2 12v10h7v-5l3.03-2L15 17v5h7V12z\"}}]})(props);\n};\nexport function MdFlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\"}}]})(props);\n};\nexport function MdHail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5-4h2v.4c-.1 2.2-.8 3.9-2.3 5.1-.5.4-1.1.7-1.7.9V22h-2v-6h-2v6H9V10.1c-.3.1-.5.2-.6.3-.9.7-1.39 1.6-1.4 3.1v.5H5v-.5c0-2 .71-3.59 2.11-4.79C8.21 7.81 10 7 12 7s2.68-.46 3.48-1.06C16.48 5.14 17 4 17 2.5V2zM4 16h3v6H4v-6z\"}}]})(props);\n};\nexport function MdHandyman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.67 18.17l-5.3-5.3h-.99l-2.54 2.54v.99l5.3 5.3c.39.39 1.02.39 1.41 0l2.12-2.12a.996.996 0 000-1.41z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.34 10.19l1.41-1.41 2.12 2.12a3 3 0 000-4.24l-3.54-3.54-1.41 1.41V1.71l-.7-.71-3.54 3.54.71.71h2.83l-1.41 1.41 1.06 1.06-2.89 2.89-4.13-4.13V5.06L4.83 2.04 2 4.87 5.03 7.9h1.41l4.13 4.13-.85.85H7.6l-5.3 5.3a.996.996 0 000 1.41l2.12 2.12c.39.39 1.02.39 1.41 0l5.3-5.3v-2.12l5.15-5.15 1.06 1.05z\"}}]})(props);\n};\nexport function MdHardware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3l-3 3V3H9C6.24 3 4 5.24 4 8h5v3h6V8l3 3h2V3h-2zM9 13v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-7H9z\"}}]})(props);\n};\nexport function MdHomeRepairService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16h-2v-1H8v1H6v-1H2v5h20v-5h-4zM20 8h-3V6c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v4h4v-2h2v2h8v-2h2v2h4v-4c0-1.1-.9-2-2-2zm-5 0H9V6h6v2z\"}}]})(props);\n};\nexport function MdHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdHvac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c1.01 0 1.91-.39 2.62-1H9.38c.71.61 1.61 1 2.62 1zM8.56 14h6.89c.26-.45.44-.96.51-1.5h-7.9c.06.54.23 1.05.5 1.5zM12 8c-1.01 0-1.91.39-2.62 1h5.24c-.71-.61-1.61-1-2.62-1zM8.56 10c-.26.45-.44.96-.51 1.5h7.9c-.07-.54-.24-1.05-.51-1.5H8.56z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 15c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdIcecream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M8.79 12.4l3.26 6.22 3.17-6.21c-.11-.08-.21-.16-.3-.25-.84.53-1.85.84-2.92.84s-2.08-.31-2.92-.84c-.09.09-.19.17-.29.24zm-1.96.59A2.995 2.995 0 014 10a3 3 0 012.52-2.96C6.75 4.22 9.12 2 12 2s5.25 2.22 5.48 5.04A3 3 0 0120 10c0 1.59-1.24 2.9-2.81 2.99L12.07 23 6.83 12.99z\"}}]})(props);\n};\nexport function MdLayersClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.81 14.99l1.19-.92-1.43-1.43-1.19.92 1.43 1.43zm-.45-4.72L21 9l-9-7-2.91 2.27 7.87 7.88 2.4-1.88zM3.27 1L2 2.27l4.22 4.22L3 9l1.63 1.27L12 16l2.1-1.63 1.43 1.43L12 18.54l-7.37-5.73L3 14.07l9 7 4.95-3.85L20.73 21 22 19.73 3.27 1z\"}}]})(props);\n};\nexport function MdLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z\"}}]})(props);\n};\nexport function MdLiquor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14c0 1.3.84 2.4 2 2.82V20H3v2h6v-2H7v-3.18C8.16 16.4 9 15.3 9 14V6H3v8zm2-6h2v3H5V8zM20.63 8.54l-.95-.32a.991.991 0 01-.68-.94V3c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4.28c0 .43-.28.81-.68.95l-.95.32c-.82.27-1.37 1.03-1.37 1.89V20c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-9.56c0-.86-.55-1.62-1.37-1.9zM16 4h1v1h-1V4zm-3 6.44l.95-.32C15.18 9.72 16 8.57 16 7.28V7h1v.28a3 3 0 002.05 2.85l.95.31V12h-7v-1.56zM20 20h-7v-2h7v2z\"}}]})(props);\n};\nexport function MdLocalActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12c0-1.1.9-2 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2zm-4.42 4.8L12 14.5l-3.58 2.3 1.08-4.12-3.29-2.69 4.24-.25L12 5.8l1.54 3.95 4.24.25-3.29 2.69 1.09 4.11z\"}}]})(props);\n};\nexport function MdLocalAirport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-2l-8.5-5V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V9L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-5.5L22 16z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdLocalAtm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4V8h-2V7h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1zm9-13H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12z\"}}]})(props);\n};\nexport function MdLocalBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5V3H3v2l8 9v5H6v2h12v-2h-5v-5l8-9zM7.43 7L5.66 5h12.69l-1.78 2H7.43z\"}}]})(props);\n};\nexport function MdLocalCafe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 002-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z\"}}]})(props);\n};\nexport function MdLocalCarWash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zm-5 0c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zM7 5c.83 0 1.5-.67 1.5-1.5C8.5 2.5 7 .8 7 .8S5.5 2.5 5.5 3.5C5.5 4.33 6.17 5 7 5zm11.92 3.01C18.72 7.42 18.16 7 17.5 7h-11c-.66 0-1.21.42-1.42 1.01L3 14v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 18c-.83 0-1.5-.67-1.5-1.5S5.67 15 6.5 15s1.5.67 1.5 1.5S7.33 18 6.5 18zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 13l1.5-4.5h11L19 13H5z\"}}]})(props);\n};\nexport function MdLocalConvenienceStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7V4H5v3H2v13h8v-4h4v4h8V7h-3zm-8 3H9v1h2v1H8V9h2V8H8V7h3v3zm5 2h-1v-2h-2V7h1v2h1V7h1v5z\"}}]})(props);\n};\nexport function MdLocalDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.1 13.34l2.83-2.83L3.91 3.5a4.008 4.008 0 000 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z\"}}]})(props);\n};\nexport function MdLocalDrink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2l2.01 18.23C5.13 21.23 5.97 22 7 22h10c1.03 0 1.87-.77 1.99-1.77L21 2H3zm9 17c-1.66 0-3-1.34-3-3 0-2 3-5.4 3-5.4s3 3.4 3 5.4c0 1.66-1.34 3-3 3zm6.33-11H5.67l-.44-4h13.53l-.43 4z\"}}]})(props);\n};\nexport function MdLocalFireDepartment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.48 12.35c-1.57-4.08-7.16-4.3-5.81-10.23.1-.44-.37-.78-.75-.55C9.29 3.71 6.68 8 8.87 13.62c.18.46-.36.89-.75.59-1.81-1.37-2-3.34-1.84-4.75.06-.52-.62-.77-.91-.34C4.69 10.16 4 11.84 4 14.37c.38 5.6 5.11 7.32 6.81 7.54 2.43.31 5.06-.14 6.95-1.87 2.08-1.93 2.84-5.01 1.72-7.69zm-9.28 5.03c1.44-.35 2.18-1.39 2.38-2.31.33-1.43-.96-2.83-.09-5.09.33 1.87 3.27 3.04 3.27 5.08.08 2.53-2.66 4.7-5.56 2.32z\"}}]})(props);\n};\nexport function MdLocalFlorist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22a9 9 0 009-9 9 9 0 00-9 9zM5.6 10.25a2.5 2.5 0 003.92 2.06l-.02.19a2.5 2.5 0 005 0l-.02-.19c.4.28.89.44 1.42.44a2.5 2.5 0 002.5-2.5c0-1-.59-1.85-1.43-2.25.84-.4 1.43-1.25 1.43-2.25a2.5 2.5 0 00-3.92-2.06l.02-.19a2.5 2.5 0 00-5 0l.02.19c-.4-.28-.89-.44-1.42-.44a2.5 2.5 0 00-2.5 2.5c0 1 .59 1.85 1.43 2.25-.84.4-1.43 1.25-1.43 2.25zM12 5.5a2.5 2.5 0 010 5 2.5 2.5 0 010-5zM3 13a9 9 0 009 9 9 9 0 00-9-9z\"}}]})(props);\n};\nexport function MdLocalGasStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 7.23l.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 002.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 005 0V9c0-.69-.28-1.32-.73-1.77zM12 10H6V5h6v5zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdLocalGroceryStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0020 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdLocalHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z\"}}]})(props);\n};\nexport function MdLocalHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdLocalLaundryService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.17 16.83a4.008 4.008 0 005.66 0 4.008 4.008 0 000-5.66l-5.66 5.66zM18 2.01L6 2c-1.11 0-2 .89-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V4c0-1.11-.89-1.99-2-1.99zM10 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM7 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdLocalLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11.55C9.64 9.35 6.48 8 3 8v11c3.48 0 6.64 1.35 9 3.55 2.36-2.19 5.52-3.55 9-3.55V8c-3.48 0-6.64 1.35-9 3.55zM12 8c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z\"}}]})(props);\n};\nexport function MdLocalMall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6h-2c0-2.76-2.24-5-5-5S7 3.24 7 6H5c-1.1 0-1.99.9-1.99 2L3 20c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-7-3c1.66 0 3 1.34 3 3H9c0-1.66 1.34-3 3-3zm0 10c-2.76 0-5-2.24-5-5h2c0 1.66 1.34 3 3 3s3-1.34 3-3h2c0 2.76-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdLocalMovies (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z\"}}]})(props);\n};\nexport function MdLocalOffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z\"}}]})(props);\n};\nexport function MdLocalParking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3H6v18h4v-6h3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm.2 8H10V7h3.2c1.1 0 2 .9 2 2s-.9 2-2 2z\"}}]})(props);\n};\nexport function MdLocalPharmacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5h-2.64l1.14-3.14L17.15 1l-1.46 4H3v2l2 6-2 6v2h18v-2l-2-6 2-6V5zm-5 9h-3v3h-2v-3H8v-2h3V9h2v3h3v2z\"}}]})(props);\n};\nexport function MdLocalPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\"}}]})(props);\n};\nexport function MdLocalPizza (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.43 2 5.23 3.54 3.01 6L12 22l8.99-16C18.78 3.55 15.57 2 12 2zM7 7c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm5 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdLocalPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12c0-1.1.9-2 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2zm-4.42 4.8L12 14.5l-3.58 2.3 1.08-4.12-3.29-2.69 4.24-.25L12 5.8l1.54 3.95 4.24.25-3.29 2.69 1.09 4.11z\"}}]})(props);\n};\nexport function MdLocalPolice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm2.5 11.59l.9 3.88-3.4-2.05-3.4 2.05.9-3.87-3-2.59 3.96-.34L12 6.02l1.54 3.64 3.96.34-3 2.59z\"}}]})(props);\n};\nexport function MdLocalPostOffice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"}}]})(props);\n};\nexport function MdLocalPrintshop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\"}}]})(props);\n};\nexport function MdLocalSee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdLocalShipping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-3V4H3c-1.1 0-2 .9-2 2v11h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5l-3-4zM6 18.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5-9l1.96 2.5H17V9.5h2.5zm-1.5 9c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdLocalTaxi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5H15V3H9v2H6.5c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\"}}]})(props);\n};\nexport function MdLocationPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.13 2 5 5.13 5 9c0 1.74.5 3.37 1.41 4.84.95 1.54 2.2 2.86 3.16 4.4.47.75.81 1.45 1.17 2.26.26.55.47 1.5 1.26 1.5s1-.95 1.25-1.5c.37-.81.7-1.51 1.17-2.26.96-1.53 2.21-2.85 3.16-4.4C18.5 12.37 19 10.74 19 9c0-3.87-3.13-7-7-7zm0 9.75a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdLunchDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"g\",\"attr\":{\"fillRule\":\"evenodd\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10c.32-3.28-4.28-6-9.99-6S1.7 6.72 2.02 10H22zM5.35 13.5c.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64s1.73-.37 2.18-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64s1.73-.37 2.18-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.07.63 2.17.64v-1.98s-.79-.16-1.16-.38c-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.6.36-1.15.36s-.78-.14-1.15-.36c-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.59.36-1.15.36-.55 0-.78-.14-1.15-.36-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.59.36-1.15.36v2c1.11 0 1.73-.37 2.21-.64.37-.23.59-.36 1.14-.36zM2 16v2c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-2H2z\"}}]}]})(props);\n};\nexport function MdMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z\"}}]})(props);\n};\nexport function MdMapsUgc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12 2C6.48 2 2 6.48 2 12c0 1.54.36 2.98.97 4.29L1 23l6.71-1.97c1.31.61 2.75.97 4.29.97 5.52 0 10-4.48 10-10S17.52 2 12 2zm4 11h-3v3h-2v-3H8v-2h3V8h2v3h3v2z\"}}]})(props);\n};\nexport function MdMedicalServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-4V4c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM10 4h4v2h-4V4zm6 11h-3v3h-2v-3H8v-2h3v-3h2v3h3v2z\"}}]})(props);\n};\nexport function MdMenuBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5c-1.11-.35-2.33-.5-3.5-.5-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1zm0 13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 10.5c.88 0 1.73.09 2.5.26V9.24c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99zM13 12.49v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26V11.9c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.3-4.5.83zM17.5 14.33c-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26v-1.52c-.79-.16-1.64-.24-2.5-.24z\"}}]})(props);\n};\nexport function MdMiscellaneousServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.17 13.71l1.4-2.42c.09-.15.05-.34-.08-.45l-1.48-1.16c.03-.22.05-.45.05-.68s-.02-.46-.05-.69l1.48-1.16c.13-.11.17-.3.08-.45l-1.4-2.42c-.09-.15-.27-.21-.43-.15l-1.74.7c-.36-.28-.75-.51-1.18-.69l-.26-1.85a.364.364 0 00-.35-.29h-2.8c-.17 0-.32.13-.35.3L6.8 4.15c-.42.18-.82.41-1.18.69l-1.74-.7c-.16-.06-.34 0-.43.15l-1.4 2.42c-.09.15-.05.34.08.45l1.48 1.16c-.03.22-.05.45-.05.68s.02.46.05.69l-1.48 1.16c-.13.11-.17.3-.08.45l1.4 2.42c.09.15.27.21.43.15l1.74-.7c.36.28.75.51 1.18.69l.26 1.85c.03.16.18.29.35.29h2.8c.17 0 .32-.13.35-.3l.26-1.85c.42-.18.82-.41 1.18-.69l1.74.7c.16.06.34 0 .43-.15zM8.81 11c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM21.92 18.67l-.96-.74c.02-.14.04-.29.04-.44 0-.15-.01-.3-.04-.44l.95-.74c.08-.07.11-.19.05-.29l-.9-1.55c-.05-.1-.17-.13-.28-.1l-1.11.45c-.23-.18-.48-.33-.76-.44l-.17-1.18a.216.216 0 00-.21-.2h-1.79c-.11 0-.21.08-.22.19l-.17 1.18c-.27.12-.53.26-.76.44l-1.11-.45a.23.23 0 00-.28.1l-.9 1.55c-.05.1-.04.22.05.29l.95.74a3.145 3.145 0 000 .88l-.95.74c-.08.07-.11.19-.05.29l.9 1.55c.05.1.17.13.28.1l1.11-.45c.23.18.48.33.76.44l.17 1.18c.02.11.11.19.22.19h1.79c.11 0 .21-.08.22-.19l.17-1.18c.27-.12.53-.26.75-.44l1.12.45c.1.04.22 0 .28-.1l.9-1.55c.06-.09.03-.21-.05-.28zm-4.29.16a1.35 1.35 0 11.001-2.701 1.35 1.35 0 01-.001 2.701z\"}}]})(props);\n};\nexport function MdMoney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8h2v8H5zm7 0H9c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 6h-1v-4h1v4zm7-6h-3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 6h-1v-4h1v4z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M4 6h16v12H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 4v16h20V4H2zm2 14V6h16v12H4z\"}}]})(props);\n};\nexport function MdMoped (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 14H10V9H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 10.35V7zM7 17c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 6h5v2H5zM19 13c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdMoving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.71 9.71L22 12V6h-6l2.29 2.29-4.17 4.17a.996.996 0 01-1.41 0l-1.17-1.17a3 3 0 00-4.24 0L2 16.59 3.41 18l5.29-5.29a.996.996 0 011.41 0l1.17 1.17a3 3 0 004.24 0l4.19-4.17z\"}}]})(props);\n};\nexport function MdMultipleStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4l4 4-4 4V9h-4V7h4V4zm-7 3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm1 10h4v-2H7v-3l-4 4 4 4v-3zm7 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm4 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z\"}}]})(props);\n};\nexport function MdMuseum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11V9L12 2 2 9v2h2v9H2v2h20v-2h-2v-9h2zm-6 7h-2v-4l-2 3-2-3v4H8v-7h2l2 3 2-3h2v7z\"}}]})(props);\n};\nexport function MdMyLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z\"}}]})(props);\n};\nexport function MdNearMeDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.34L21 3l-3.34 9L12 6.34zm10.61 13.44L4.22 1.39 2.81 2.81l5.07 5.07L3 9.69v1.41l7.07 2.83L12.9 21h1.41l1.81-4.88 5.07 5.07 1.42-1.41z\"}}]})(props);\n};\nexport function MdNearMe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3L3 10.53v.98l6.84 2.65L12.48 21h.98L21 3z\"}}]})(props);\n};\nexport function MdNightlife (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 5h14l-6 9v4h2v2H5v-2h2v-4L1 5zm9.1 4l1.4-2H4.49l1.4 2h4.21zM17 5h5v3h-3v9c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3a3 3 0 011 .17V5z\"}}]})(props);\n};\nexport function MdNoMealsOuline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14V6c0-1.76 2.24-4 5-4v16.17l-2-2V14h-3zm4.49 9.31L10.02 12.85c-.33.09-.66.15-1.02.15v9H7v-9c-2.21 0-4-1.79-4-4V5.83L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM6.17 9L5 7.83V9h1.17zM9 2H7v2.17l2 2V2zm4 7V2h-2v6.17l1.85 1.85c.09-.33.15-.66.15-1.02z\"}}]})(props);\n};\nexport function MdNoMeals (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14V6c0-1.76 2.24-4 5-4v16.17l-2-2V14h-3zm4.49 9.31L10.02 12.85c-.33.09-.66.15-1.02.15v9H7v-9c-2.21 0-4-1.79-4-4V5.83L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM6.17 9L5 7.83V9h1.17zM9 2H7v2.17l2 2V2zm4 7V2h-2v6.17l1.85 1.85c.09-.33.15-.66.15-1.02z\"}}]})(props);\n};\nexport function MdNoTransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22 4 6.83V16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.05 0 .09-.02.14-.03l1.64 1.64 1.41-1.42zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zM6 11V8.83L8.17 11H6zm2.83-5L5.78 2.95C7.24 2.16 9.48 2 12 2c4.42 0 8 .5 8 4v10c0 .35-.08.67-.19.98L13.83 11H18V6H8.83z\"}}]})(props);\n};\nexport function MdNotListedLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm.88 13.75h-1.75V14h1.75v1.75zm0-2.87h-1.75c0-2.84 2.62-2.62 2.62-4.38 0-.96-.79-1.75-1.75-1.75s-1.75.79-1.75 1.75H8.5C8.5 6.57 10.07 5 12 5s3.5 1.57 3.5 3.5c0 2.19-2.62 2.41-2.62 4.38z\"}}]})(props);\n};\nexport function MdPark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h2L12 2 5.05 12H7l-3.9 6h6.92v4h3.96v-4H21z\"}}]})(props);\n};\nexport function MdPedalBike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.18 10l-1.7-4.68A2.008 2.008 0 0014.6 4H12v2h2.6l1.46 4h-4.81l-.36-1H12V7H7v2h1.75l1.82 5H9.9c-.44-2.23-2.31-3.88-4.65-3.99C2.45 9.87 0 12.2 0 15c0 2.8 2.2 5 5 5 2.46 0 4.45-1.69 4.9-4h4.2c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5 0-2.8-2.2-5-5-5h-.82zM7.82 16c-.4 1.17-1.49 2-2.82 2-1.68 0-3-1.32-3-3s1.32-3 3-3c1.33 0 2.42.83 2.82 2H5v2h2.82zm6.28-2h-1.4l-.73-2H15c-.44.58-.76 1.25-.9 2zm4.9 4c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.03 0 .06-.01.09-.01 1.68 0 3 1.32 3 3s-1.33 3-3.01 3z\"}}]})(props);\n};\nexport function MdPersonPinCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm0 2a2 2 0 11.001 4.001A2 2 0 0112 4zm0 10c-1.67 0-3.14-.85-4-2.15.02-1.32 2.67-2.05 4-2.05s3.98.73 4 2.05A4.783 4.783 0 0112 14z\"}}]})(props);\n};\nexport function MdPersonPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a9 9 0 00-9 9c0 4.17 2.84 7.67 6.69 8.69L12 22l2.31-2.31C18.16 18.67 21 15.17 21 11a9 9 0 00-9-9zm0 2c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.3a7.2 7.2 0 01-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 01-6 3.22z\"}}]})(props);\n};\nexport function MdPestControlRodent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.31 17.38l-2.39-2.13c.52-2.36-1.36-4.25-3.42-4.25-1.16 0-3.5.9-3.5 3.5 0 .97.39 1.84 1.03 2.47l-.71.71A4.457 4.457 0 0111 14.5c0-1.7.96-3.17 2.35-3.93a5 5 0 00-2.28-.57c-2.38 0-4.37 1.65-4.91 3.87A2.997 2.997 0 014 11c0-1.66 1.34-3 3-3h2.5a2.5 2.5 0 000-5H8c-.55 0-1 .45-1 1s.45 1 1 1h1.5c.28 0 .5.22.5.5s-.22.5-.5.5H7a5.002 5.002 0 00-1 9.9v.03C6 18.73 8.27 21 11.07 21h8.86c1.87 0 2.81-2.34 1.38-3.62zM18 19c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdPestControl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v-2h-3.07c-.05-.39-.12-.77-.22-1.14l2.58-1.49-1-1.73L16.92 10c-.28-.48-.62-.91-.99-1.29.04-.23.07-.46.07-.71 0-.8-.24-1.55-.65-2.18L17 4.17l-1.41-1.41-1.72 1.72c-1.68-.89-3.1-.33-3.73 0L8.41 2.76 7 4.17l1.65 1.65A3.99 3.99 0 008 8c0 .25.03.48.07.72-.37.38-.71.81-.99 1.28L4.71 8.63l-1 1.73 2.58 1.49c-.1.37-.17.75-.22 1.14H3v2h3.07c.05.39.12.77.22 1.14l-2.58 1.49 1 1.73L7.08 18c1.08 1.81 2.88 3 4.92 3s3.84-1.19 4.92-3l2.37 1.37 1-1.73-2.58-1.49c.1-.37.17-.75.22-1.14H21zm-8 2h-2v-6h2v6z\"}}]})(props);\n};\nexport function MdPinDrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8c0-3.31-2.69-6-6-6S6 4.69 6 8c0 4.5 6 11 6 11s6-6.5 6-11zm-8 0c0-1.1.9-2 2-2s2 .9 2 2a2 2 0 11-4 0zM5 20v2h14v-2H5z\"}}]})(props);\n};\nexport function MdPlace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdPlumbing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.28 4.93l-2.12-2.12c-.78-.78-2.05-.78-2.83 0L11.5 5.64l2.12 2.12 2.12-2.12 3.54 3.54a3.012 3.012 0 000-4.25zM5.49 13.77c.59.59 1.54.59 2.12 0l2.47-2.47-2.12-2.13-2.47 2.47c-.59.59-.59 1.54 0 2.13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.04 7.76l-.71.71-.71.71L10.44 6c-.59-.6-1.54-.6-2.12-.01a1.49 1.49 0 000 2.12l3.18 3.18-.71.71-6.36 6.36c-.78.78-.78 2.05 0 2.83.78.78 2.05.78 2.83 0L16.45 12a.996.996 0 101.41-1.41l-2.82-2.83z\"}}]})(props);\n};\nexport function MdRailwayAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 8a7 7 0 00-11.95-4.95A33.8 33.8 0 009 3c-4.42 0-8 .5-8 4v10.5A3.5 3.5 0 004.5 21L3 22.5v.5h12v-.5L13.5 21a3.5 3.5 0 003.5-3.5v-2.58A7 7 0 0023 8zM3 12V7h6.08a6.96 6.96 0 001.18 5H3zm6 7c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm7.71-6.06l-.2.03L16 13l-.47-.02-.16-.02-.29-.04-.2-.04-.22-.06a1.55 1.55 0 01-.23-.07l-.13-.05A4.99 4.99 0 0111.1 7c.04-.19.09-.37.15-.54l.05-.14.15-.38.07-.15.2-.36.07-.12.3-.42.02-.02c.24-.3.52-.57.82-.81l.01-.01.46-.32.03-.02A5.25 5.25 0 0116 3a5 5 0 01.71 9.94zM15 4h2v5h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function MdRamenDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6H8V4.65l1-.12V6zm0 6H8V7h1v5zM6 7h1v5H6V7zm0-2.12l1-.12V6H6V4.88zM22 3V2L5 4v8H2c0 3.69 2.47 6.86 6 8.25V22h8v-1.75c3.53-1.39 6-4.56 6-8.25H10V7h12V6H10V4.41L22 3z\"}}]})(props);\n};\nexport function MdRateReview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm15.35 6.41l-1.77-1.77c-.2-.2-.51-.2-.71 0L6 11.53V14h2.47l6.88-6.88c.2-.19.2-.51 0-.71z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 14v-2.47l6.88-6.88c.2-.2.51-.2.71 0l1.77 1.77c.2.2.2.51 0 .71L8.47 14H6zm12 0h-7.5l2-2H18v2z\"}}]})(props);\n};\nexport function MdRestaurantMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.1 13.34l2.83-2.83L3.91 3.5a4.008 4.008 0 000 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z\"}}]})(props);\n};\nexport function MdRestaurant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z\"}}]})(props);\n};\nexport function MdRunCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.5 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.5 6c-.7 0-2.01-.54-2.91-1.76l-.41 2.35L14 14.03V18h-1v-3.58l-1.11-1.21-.52 2.64-3.77-.77.2-.98 2.78.57.96-4.89-1.54.57V12H9V9.65l3.28-1.21c.49-.18 1.03.06 1.26.53.83 1.7 2.05 2.03 2.46 2.03v1z\"}}]})(props);\n};\nexport function MdSailing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13.5V2L3 13.5h8zm10 0C21 6.5 14.5 1 12.5 1c0 0 1 3 1 6.5s-1 6-1 6H21zm1 1.5H2a6.233 6.233 0 002.33 3.73c.65-.27 1.22-.72 1.67-1.23.73.84 1.8 1.5 3 1.5s2.27-.66 3-1.5c.73.84 1.8 1.5 3 1.5s2.26-.66 3-1.5c.45.51 1.02.96 1.67 1.23 1.17-.89 2.02-2.2 2.33-3.73zm0 8v-2h-1c-1.04 0-2.08-.35-3-1-1.83 1.3-4.17 1.3-6 0-1.83 1.3-4.17 1.3-6 0-.91.65-1.96 1-3 1H2v2h1c1.03 0 2.05-.25 3-.75 1.89 1 4.11 1 6 0 1.89 1 4.11 1 6 0 .95.5 1.97.75 3 .75h1z\"}}]})(props);\n};\nexport function MdSatellite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.99h3C8 6.65 6.66 8 5 8V4.99zM5 12v-2c2.76 0 5-2.25 5-5.01h2C12 8.86 8.87 12 5 12zm0 6l3.5-4.5 2.5 3.01L14.5 12l4.5 6H5z\"}}]})(props);\n};\nexport function MdSetMeal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.05 17.56l-17.97.94L3 17l17.98-.94.07 1.5zM21 19.48H3v1.5h18v-1.5zM22 5v7c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-2 1c-1.68 0-3.04.98-3.21 2.23-.64-.73-2.73-2.73-6.54-2.73-4.67 0-6.75 3-6.75 3s2.08 3 6.75 3c3.81 0 5.9-2 6.54-2.73C16.96 10.02 18.32 11 20 11V6z\"}}]})(props);\n};\nexport function MdSnowmobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17c0 .55-.45 1-1 1h-.17l-2.2-2.2C20.58 15.37 22 14.4 22 13c0-1-8-8-8-8h-3v2h2.25l1.45 1.3L11 11l-9.5-1L0 13l4.54 1.36-3.49 1.88C-.77 17.22-.07 20 2 20h6c2.21 0 4-1.79 4-4h4l2 2h-3v2h6c1.66 0 3-1.34 3-3h-2zM8 18H2l5.25-2.83L10 16a2 2 0 01-2 2z\"}}]})(props);\n};\nexport function MdStoreMallDirectory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z\"}}]})(props);\n};\nexport function MdStreetview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.56 14.33c-.34.27-.56.7-.56 1.17V21h7c1.1 0 2-.9 2-2v-5.98c-.94-.33-1.95-.52-3-.52-2.03 0-3.93.7-5.44 1.83z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 6c0-1.08.27-2.1.74-3H5c-1.1 0-2 .9-2 2v14c0 .55.23 1.05.59 1.41l9.82-9.82A6.435 6.435 0 0111.5 6z\"}}]})(props);\n};\nexport function MdSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0v24h24V0H0zm22 22H2V8.86C2 6.05 3.53 3.84 6.2 2.8 8 2.09 10.14 2 12 2c1.86 0 4 .09 5.8.8C20.47 3.84 22 6.05 22 8.86V22z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"16\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"16\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.01 9h10v5h-10zM17.8 2.8C16 2.09 13.86 2 12 2c-1.86 0-4 .09-5.8.8C3.53 3.84 2 6.05 2 8.86V22h20V8.86c0-2.81-1.53-5.02-4.2-6.06zm.2 13.08c0 1.45-1.18 2.62-2.63 2.62l1.13 1.12V20H15l-1.5-1.5h-2.83L9.17 20H7.5v-.38l1.12-1.12C7.18 18.5 6 17.32 6 15.88V9c0-2.63 3-3 6-3 3.32 0 6 .38 6 3v6.88z\"}}]})(props);\n};\nexport function MdTakeoutDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M5.26 11h13.48l-.67 9H5.93l-.67-9zm3.76-7h5.95L19 7.38l1.59-1.59L22 7.21 19.21 10H4.79L2 7.21 3.41 5.8 5 7.38 9.02 4z\"}}]})(props);\n};\nexport function MdTaxiAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 8A7 7 0 009.68 5H7v2H4.5a1.5 1.5 0 00-1.42 1.01L1 14v8a1 1 0 001 1h1a1 1 0 001-1v-1h12v1a1 1 0 001 1h1a1 1 0 001-1v-7.68A7.01 7.01 0 0023 8zm-18.5.5h4.53a6.93 6.93 0 002.08 4.5H3l1.5-4.5zm0 9.5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm11 0a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm2.93-5.63l-.21.11-.18.09a4.97 4.97 0 01-.42.16l-.22.07-.23.06-.2.05a5 5 0 01-5.94-4.41A4.07 4.07 0 0111 8l.02-.47.02-.17.04-.28.04-.21.05-.21.07-.24.05-.13a4.99 4.99 0 019.69 1.7 4.96 4.96 0 01-2.55 4.38zM15 4h2v5h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function MdTerrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z\"}}]})(props);\n};\nexport function MdTheaterComedy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.5C2 19.54 4.46 22 7.5 22s5.5-2.46 5.5-5.5V10H2v6.5zm5.5 2C6.12 18.5 5 17.83 5 17h5c0 .83-1.12 1.5-2.5 1.5zM10 13c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-5 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 3v6h3v2.5c0-.83 1.12-1.5 2.5-1.5s2.5.67 2.5 1.5h-5v2.89c.75.38 1.6.61 2.5.61 3.04 0 5.5-2.46 5.5-5.5V3H11zm3 5.08c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1c0 .56-.45 1-1 1zm5 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1c0 .56-.45 1-1 1z\"}}]})(props);\n};\nexport function MdTraffic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10h-3V8.86c1.72-.45 3-2 3-3.86h-3V4c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v1H4c0 1.86 1.28 3.41 3 3.86V10H4c0 1.86 1.28 3.41 3 3.86V15H4c0 1.86 1.28 3.41 3 3.86V20c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1.14c1.72-.45 3-2 3-3.86h-3v-1.14c1.72-.45 3-2 3-3.86zm-8 9a2 2 0 11-.001-3.999A2 2 0 0112 19zm0-5a2 2 0 11-.001-3.999A2 2 0 0112 14zm0-5a2 2 0 01-2-2c0-1.11.89-2 2-2a2 2 0 110 4z\"}}]})(props);\n};\nexport function MdTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-7H6V6h5v4zm2 0V6h5v4h-5zm3.5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdTram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.94V8.5c0-2.79-2.61-3.4-6.01-3.49l.76-1.51H17V2H7v1.5h4.75l-.76 1.52C7.86 5.11 5 5.73 5 8.5v8.44c0 1.45 1.19 2.66 2.59 2.97L6 21.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 20h-.08c1.69 0 2.58-1.37 2.58-3.06zm-7 1.56c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5-4.5H7V9h10v5z\"}}]})(props);\n};\nexport function MdTransferWithinAStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.49 15.5v-1.75L14 16.25l2.49 2.5V17H22v-1.5zm3.02 4.25H14v1.5h5.51V23L22 20.5 19.51 18zM9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5.75 8.9L3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6c-.25 0-.5.05-.75.15L2 8.3V13h2V9.65l1.75-.75\"}}]})(props);\n};\nexport function MdTransitEnterexit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18H6V8h3v4.77L15.98 6 18 8.03 11.15 15H16v3z\"}}]})(props);\n};\nexport function MdTripOrigin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z\"}}]})(props);\n};\nexport function MdTwoWheeler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11c-.18 0-.36.03-.53.05L17.41 9H20V6l-3.72 1.86L13.41 5H9v2h3.59l2 2H11l-4 2-2-2H0v2h4c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4l2 2h3l3.49-6.1 1.01 1.01c-.91.73-1.5 1.84-1.5 3.09 0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4zM4 17c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm16 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdVolunteerActivism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 11h4v11H1zM16 3.25C16.65 2.49 17.66 2 18.7 2 20.55 2 22 3.45 22 5.3c0 2.27-2.91 4.9-6 7.7-3.09-2.81-6-5.44-6-7.7C10 3.45 11.45 2 13.3 2c1.04 0 2.05.49 2.7 1.25zM20 17h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8.01-3c-.01-1.1-.9-2-2.01-2z\"}}]})(props);\n};\nexport function MdWineBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v6c0 2.97 2.16 5.43 5 5.91V19H8v2h8v-2h-3v-4.09c2.84-.48 5-2.94 5-5.91V3H6zm10 5H8V5h8v3z\"}}]})(props);\n};\nexport function MdWrongLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10V3.26c-.65-.17-1.32-.26-2-.26-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8 0-.41-.04-.81-.09-1.2H14zm-2 3c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 2.88l-1.42-1.42L19 3.59l-2.12-2.13-1.42 1.42L17.59 5l-2.13 2.12 1.42 1.42L19 6.41l2.12 2.13 1.42-1.42L20.41 5z\"}}]})(props);\n};\nexport function MdZoomOutMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3l2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3h-6zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3v6zm6 12l-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6zm12-6l-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6v-6z\"}}]})(props);\n};\nexport function MdAppSettingsAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.81 12.74l-.82-.63v-.22l.8-.63c.16-.12.2-.34.1-.51l-.85-1.48a.395.395 0 00-.35-.2c-.05 0-.1.01-.15.03l-.95.38c-.08-.05-.11-.07-.19-.11l-.15-1.01a.408.408 0 00-.4-.36h-1.71c-.2 0-.37.15-.4.34l-.14 1.01c-.03.02-.07.03-.1.05l-.09.06-.95-.38a.401.401 0 00-.5.17l-.85 1.48c-.1.17-.06.39.1.51l.8.63v.23l-.8.63a.39.39 0 00-.1.51l.85 1.48c.07.13.21.2.35.2.05 0 .1-.01.15-.03l.95-.37c.08.05.12.07.2.11l.15 1.01c.03.2.2.34.4.34h1.71c.2 0 .37-.15.4-.34l.15-1.01c.03-.02.07-.03.1-.05l.09-.06.95.38a.401.401 0 00.5-.17l.85-1.48a.39.39 0 00-.1-.51zM18 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM17 17h2v4c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v4h-2V6H7v12h10v-1z\"}}]})(props);\n};\nexport function MdApps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"}}]})(props);\n};\nexport function MdArrowBackIosNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.77 3.77L16 2 6 12l10 10 1.77-1.77L9.54 12z\"}}]})(props);\n};\nexport function MdArrowBackIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.67 3.87L9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z\"}}]})(props);\n};\nexport function MdArrowBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"}}]})(props);\n};\nexport function MdArrowDownward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"}}]})(props);\n};\nexport function MdArrowDropDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z\"}}]})(props);\n};\nexport function MdArrowDropDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10l5 5 5-5z\"}}]})(props);\n};\nexport function MdArrowDropUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14l5-5 5 5z\"}}]})(props);\n};\nexport function MdArrowForwardIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.23 20.23L8 22l10-10L8 2 6.23 3.77 14.46 12z\"}}]})(props);\n};\nexport function MdArrowForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"}}]})(props);\n};\nexport function MdArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7l-5 5 5 5V7z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 0v24H0V0h24z\"}}]})(props);\n};\nexport function MdArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 17l5-5-5-5v10z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 24V0h24v24H0z\"}}]})(props);\n};\nexport function MdArrowUpward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"}}]})(props);\n};\nexport function MdAssistantDirection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10H9c-.6 0-1 .4-1 1v4h2v-3h4v2.5l3.5-3.5L14 7.5V10zm-2-9C5.9 1 1 5.9 1 12s4.9 11 11 11 11-4.9 11-11S18.1 1 12 1zm7.73 11.58l-7.19 7.22c-.35.27-.79.27-1.15 0L4.2 12.58a.932.932 0 010-1.16l7.19-7.22c.35-.27.79-.27 1.15 0l7.19 7.22c.36.27.36.8 0 1.16z\"}}]})(props);\n};\nexport function MdAssistantNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm3.57 16L12 15.42 8.43 17l-.37-.37L12 7l3.95 9.63-.38.37z\"}}]})(props);\n};\nexport function MdCampaign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11v2h4v-2h-4zm-2 6.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm11.5 3c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z\"}}]})(props);\n};\nexport function MdCancel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"}}]})(props);\n};\nexport function MdCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"}}]})(props);\n};\nexport function MdChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"}}]})(props);\n};\nexport function MdChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"}}]})(props);\n};\nexport function MdClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"}}]})(props);\n};\nexport function MdDoubleArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 5H11l5 7-5 7h4.5l5-7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H4l5 7-5 7h4.5l5-7z\"}}]})(props);\n};\nexport function MdEast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5l-1.41 1.41L18.17 11H2v2h16.17l-4.59 4.59L15 19l7-7-7-7z\"}}]})(props);\n};\nexport function MdExpandLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"}}]})(props);\n};\nexport function MdExpandMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"}}]})(props);\n};\nexport function MdFirstPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}}]})(props);\n};\nexport function MdFullscreenExit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"}}]})(props);\n};\nexport function MdFullscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"}}]})(props);\n};\nexport function MdHomeWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.17 5.7L1 10.48V21h5v-8h4v8h5V10.25z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M17 7h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3v1.51l2 1.33L13.73 7H15v.85l2 1.34V11h2v2h-2v2h2v2h-2v4h6V3H10zm9 6h-2V7h2v2z\"}}]})(props);\n};\nexport function MdLastPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"}}]})(props);\n};\nexport function MdLegendToggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15H4v-2h16v2zm0 2H4v2h16v-2zm-5-6l5-3.55V5l-5 3.55L10 5 4 8.66V11l5.92-3.61L15 11z\"}}]})(props);\n};\nexport function MdMapsHomeWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 11v10h5v-6h4v6h5V11L8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3v1.97l7 5V11h2v2h-2v2h2v2h-2v4h6V3H10zm9 6h-2V7h2v2z\"}}]})(props);\n};\nexport function MdMenuOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h13v-2H3v2zm0-5h10v-2H3v2zm0-7v2h13V6H3zm18 9.59L17.42 12 21 8.41 19.59 7l-5 5 5 5L21 15.59z\"}}]})(props);\n};\nexport function MdMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"}}]})(props);\n};\nexport function MdMoreHoriz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdMoreVert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdNorthEast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z\"}}]})(props);\n};\nexport function MdNorthWest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15h2V8.41L18.59 20 20 18.59 8.41 7H15V5H5v10z\"}}]})(props);\n};\nexport function MdNorth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9l1.41 1.41L11 5.83V22h2V5.83l4.59 4.59L19 9l-7-7-7 7z\"}}]})(props);\n};\nexport function MdOfflineShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.6 10.26v1.31L17 9.33 14.6 7.1v1.28c-2.33.32-3.26 1.92-3.6 3.52.83-1.13 1.93-1.64 3.6-1.64zM16 23H6c-1.1 0-2-.9-2-2V5h2v16h10v2zm2-22h-8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 15h-8V4h8v12z\"}}]})(props);\n};\nexport function MdPayments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zm-9-1c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-6v11c0 1.1-.9 2-2 2H4v-2h17V7h2z\"}}]})(props);\n};\nexport function MdPivotTableChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8h11V5c0-1.1-.9-2-2-2h-9v5zM3 8h5V3H5c-1.1 0-2 .9-2 2v3zm2 13h3V10H3v9c0 1.1.9 2 2 2zm8 1l-4-4 4-4zm1-9l4-4 4 4zM14.58 19H13v-2h1.58c1.33 0 2.42-1.08 2.42-2.42V13h2v1.58c0 2.44-1.98 4.42-4.42 4.42z\"}}]})(props);\n};\nexport function MdRefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.65 6.35A7.958 7.958 0 0012 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0112 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"}}]})(props);\n};\nexport function MdSouthEast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h-2v6.59L5.41 4 4 5.41 15.59 17H9v2h10V9z\"}}]})(props);\n};\nexport function MdSouthWest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 19v-2H8.41L20 5.41 18.59 4 7 15.59V9H5v10h10z\"}}]})(props);\n};\nexport function MdSouth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15l-1.41-1.41L13 18.17V2h-2v16.17l-4.59-4.59L5 15l7 7 7-7z\"}}]})(props);\n};\nexport function MdSubdirectoryArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9l1.42 1.42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z\"}}]})(props);\n};\nexport function MdSubdirectoryArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z\"}}]})(props);\n};\nexport function MdSwitchLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 8.62v6.76L5.12 12 8.5 8.62M10 5l-7 7 7 7V5zm4 0v14l7-7-7-7z\"}}]})(props);\n};\nexport function MdSwitchRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 15.38V8.62L18.88 12l-3.38 3.38M14 19l7-7-7-7v14zm-4 0V5l-7 7 7 7z\"}}]})(props);\n};\nexport function MdUnfoldLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z\"}}]})(props);\n};\nexport function MdUnfoldMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z\"}}]})(props);\n};\nexport function MdWaterfallChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4h3v16h-3zM3 13h3v7H3zm11-9h3v3h-3zm-4 1h3v4h-3zm-3 5h3v4H7z\"}}]})(props);\n};\nexport function MdWest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19l1.41-1.41L5.83 13H22v-2H5.83l4.59-4.59L9 5l-7 7 7 7z\"}}]})(props);\n};\nexport function MdAccountTree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3z\"}}]})(props);\n};\nexport function MdAdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16c0 3.87 3.13 7 7 7s7-3.13 7-7v-4H5v4zM16.12 4.37l2.1-2.1-.82-.83-2.3 2.31C14.16 3.28 13.12 3 12 3s-2.16.28-3.09.75L6.6 1.44l-.82.83 2.1 2.1C6.14 5.64 5 7.68 5 10v1h14v-1c0-2.32-1.14-4.36-2.88-5.63zM9 9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdAddCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM21 6h-3V3h-2v3h-3v2h3v3h2V8h3z\"}}]})(props);\n};\nexport function MdAirlineSeatFlatAngled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.25 14.29l-.69 1.89L9.2 11.71l2.08-5.66 8.56 3.09a4 4 0 012.41 5.15zM1.5 12.14L8 14.48V19h8v-1.63L20.52 19l.69-1.89-19.02-6.86-.69 1.89zm5.8-1.94a3.01 3.01 0 001.41-4A3.005 3.005 0 004.7 4.8a2.99 2.99 0 00-1.4 4 2.99 2.99 0 004 1.4z\"}}]})(props);\n};\nexport function MdAirlineSeatFlat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11v2H9V7h9c2.21 0 4 1.79 4 4zM2 14v2h6v2h8v-2h6v-2H2zm5.14-1.9a3 3 0 00-.04-4.24 3 3 0 00-4.24.04 3 3 0 00.04 4.24 3 3 0 004.24-.04z\"}}]})(props);\n};\nexport function MdAirlineSeatIndividualSuite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 13c1.65 0 3-1.35 3-3S8.65 7 7 7s-3 1.35-3 3 1.35 3 3 3zm12-6h-8v7H3V7H1v10h22v-6c0-2.21-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdAirlineSeatLegroomExtra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12V3H2v9c0 2.76 2.24 5 5 5h6v-2H7c-1.66 0-3-1.34-3-3zm18.83 5.24c-.38-.72-1.29-.97-2.03-.63l-1.09.5-3.41-6.98a2.01 2.01 0 00-1.79-1.12L11 9V3H5v8c0 1.66 1.34 3 3 3h7l3.41 7 3.72-1.7c.77-.36 1.1-1.3.7-2.06z\"}}]})(props);\n};\nexport function MdAirlineSeatLegroomNormal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12V3H3v9c0 2.76 2.24 5 5 5h6v-2H8c-1.66 0-3-1.34-3-3zm15.5 6H19v-7c0-1.1-.9-2-2-2h-5V3H6v8c0 1.65 1.35 3 3 3h7v7h4.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdAirlineSeatLegroomReduced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.97 19.2c.18.96-.55 1.8-1.47 1.8H14v-3l1-4H9c-1.65 0-3-1.35-3-3V3h6v6h5c1.1 0 2 .9 2 2l-2 7h1.44c.73 0 1.39.49 1.53 1.2zM5 12V3H3v9c0 2.76 2.24 5 5 5h4v-2H8c-1.66 0-3-1.34-3-3z\"}}]})(props);\n};\nexport function MdAirlineSeatReclineExtra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.35 5.64c-.9-.64-1.12-1.88-.49-2.79.63-.9 1.88-1.12 2.79-.49.9.64 1.12 1.88.49 2.79-.64.9-1.88 1.12-2.79.49zM16 19H8.93c-1.48 0-2.74-1.08-2.96-2.54L4 7H2l1.99 9.76A5.01 5.01 0 008.94 21H16v-2zm.23-4h-4.88l-1.03-4.1c1.58.89 3.28 1.54 5.15 1.22V9.99c-1.63.31-3.44-.27-4.69-1.25L9.14 7.47c-.23-.18-.49-.3-.76-.38a2.21 2.21 0 00-.99-.06h-.02a2.268 2.268 0 00-1.84 2.61l1.35 5.92A3.008 3.008 0 009.83 18h6.85l3.82 3 1.5-1.5-5.77-4.5z\"}}]})(props);\n};\nexport function MdAirlineSeatReclineNormal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.59 5.41c-.78-.78-.78-2.05 0-2.83.78-.78 2.05-.78 2.83 0 .78.78.78 2.05 0 2.83-.79.79-2.05.79-2.83 0zM6 16V7H4v9c0 2.76 2.24 5 5 5h6v-2H9c-1.66 0-3-1.34-3-3zm14 4.07L14.93 15H11.5v-3.68c1.4 1.15 3.6 2.16 5.5 2.16v-2.16c-1.66.02-3.61-.87-4.67-2.04l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C8.01 7 7 8.01 7 9.25V15c0 1.66 1.34 3 3 3h5.07l3.5 3.5L20 20.07z\"}}]})(props);\n};\nexport function MdBluetoothAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2a9.936 9.936 0 001.54-5.31c-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdConfirmationNumber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10V6a2 2 0 00-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-9 7.5h-2v-2h2v2zm0-4.5h-2v-2h2v2zm0-4.5h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdDirectionsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.41 6.58L12 4l8 8-2.58 2.59L18.83 16l2.58-2.59c.78-.78.78-2.05 0-2.83l-8-8c-.78-.78-2.05-.78-2.83 0L8 5.17l1.41 1.41zM2.81 2.81L1.39 4.22 5.17 8l-2.58 2.59c-.78.78-.78 2.05 0 2.83l8 8c.78.78 2.05.78 2.83 0L16 18.83l3.78 3.78 1.41-1.41L2.81 2.81zM12 20l-8-8 2.58-2.59L8.17 11H7v2h3.17l1.5 1.5-1.08 1.09L12 17l1.09-1.09 1.5 1.5L12 20z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.916 8.087l1.09-1.089 4.999 5-1.09 1.088z\"}}]})(props);\n};\nexport function MdDiscFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16h2v-2h-2v2zm0-9v5h2V7h-2zM10 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdDoDisturbAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0112 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\"}}]})(props);\n};\nexport function MdDoDisturbOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11v2h-1.17l4.51 4.51A9.91 9.91 0 0022 12c0-5.52-4.48-10-10-10-2.04 0-3.93.61-5.51 1.66L13.83 11H17zM1.39 4.22l2.27 2.27A9.91 9.91 0 002 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.41L2.81 2.81 1.39 4.22zM7 11h1.17l2 2H7v-2z\"}}]})(props);\n};\nexport function MdDoDisturbOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z\"}}]})(props);\n};\nexport function MdDoDisturb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z\"}}]})(props);\n};\nexport function MdDoNotDisturbAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M-618-1464H782v3600H-618zM0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z\"}}]})(props);\n};\nexport function MdDoNotDisturbOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11v2h-1.46l4.68 4.68A9.92 9.92 0 0022 12c0-5.52-4.48-10-10-10-2.11 0-4.07.66-5.68 1.78L13.54 11H17zM2.27 2.27L1 3.54l2.78 2.78A9.92 9.92 0 002 12c0 5.52 4.48 10 10 10 2.11 0 4.07-.66 5.68-1.78L20.46 23l1.27-1.27L11 11 2.27 2.27zM7 13v-2h1.46l2 2H7z\"}}]})(props);\n};\nexport function MdDoNotDisturbOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z\"}}]})(props);\n};\nexport function MdDoNotDisturb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0112 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\"}}]})(props);\n};\nexport function MdDriveEta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z\"}}]})(props);\n};\nexport function MdEnhancedEncryption (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM16 16h-3v3h-2v-3H8v-2h3v-3h2v3h3v2z\"}}]})(props);\n};\nexport function MdEventAvailable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.53 11.06L15.47 10l-4.88 4.88-2.12-2.12-1.06 1.06L10.59 17l5.94-5.94zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z\"}}]})(props);\n};\nexport function MdEventBusy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.31 17l2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z\"}}]})(props);\n};\nexport function MdEventNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10H7v2h10v-2zm2-7h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zm-5-5H7v2h7v-2z\"}}]})(props);\n};\nexport function MdFolderSpecial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-2.06 11L15 15.28 12.06 17l.78-3.33-2.59-2.24 3.41-.29L15 8l1.34 3.14 3.41.29-2.59 2.24.78 3.33z\"}}]})(props);\n};\nexport function MdImagesearchRoller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2v6H6V6H4v4h10v5h2v8h-6v-8h2v-3H2V4h4V2\"}}]})(props);\n};\nexport function MdLiveTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3a2 2 0 00-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8a2 2 0 00-2-2zm0 14H3V8h18v12zM9 10v8l7-4z\"}}]})(props);\n};\nexport function MdMms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 14l3.5-4.5 2.5 3.01L14.5 8l4.5 6H5z\"}}]})(props);\n};\nexport function MdMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdNetworkCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5zM1 9l2 2c2.88-2.88 6.79-4.08 10.53-3.62l1.19-2.68C9.89 3.84 4.74 5.27 1 9zm20 2l2-2a15.367 15.367 0 00-5.59-3.57l-.53 2.82c1.5.62 2.9 1.53 4.12 2.75zm-4 4l2-2c-.8-.8-1.7-1.42-2.66-1.89l-.55 2.92c.42.27.83.59 1.21.97zM5 13l2 2a7.1 7.1 0 014.03-2l1.28-2.88c-2.63-.08-5.3.87-7.31 2.88z\"}}]})(props);\n};\nexport function MdNetworkLocked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 10c.17 0 .33.03.5.05V1L1 20h13v-3c0-.89.39-1.68 1-2.23v-.27c0-2.48 2.02-4.5 4.5-4.5zm2.5 6v-1.5a2.5 2.5 0 00-5 0V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z\"}}]})(props);\n};\nexport function MdNoEncryptionGmailerrorred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2h-4.27L20 17.17V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.21 0-4.07 1.45-4.73 3.44L8.9 6.07V6zM2.1 2.1L.69 3.51 5.3 8.13C4.55 8.42 4 9.15 4 10v10c0 1.1.9 2 2 2h12c.34 0 .65-.09.93-.24l1.56 1.56 1.41-1.41L2.1 2.1zM12 17c-1.1 0-2-.9-2-2 0-.59.27-1.12.68-1.49l2.81 2.81c-.37.41-.9.68-1.49.68z\"}}]})(props);\n};\nexport function MdNoEncryption (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21.78L4.22 5 3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12c.23 0 .45-.05.66-.12L19.78 23 21 21.78zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H9.66L20 18.34V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.56 0-4.64 1.93-4.94 4.4L8.9 7.24V6z\"}}]})(props);\n};\nexport function MdOndemandVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 00-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7z\"}}]})(props);\n};\nexport function MdPersonalVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 00-2-2zm0 14H3V5h18v12z\"}}]})(props);\n};\nexport function MdPhoneBluetoothSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.71 9.5L17 7.21V11h.5l2.85-2.85L18.21 6l2.15-2.15L17.5 1H17v3.79L14.71 2.5l-.71.71L16.79 6 14 8.79l.71.71zM18 2.91l.94.94-.94.94V2.91zm0 4.3l.94.94-.94.94V7.21zm2 8.29c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdPhoneCallback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2zm13.54-7.1l-.71-.7L13 9.29V5h-1v6h6v-1h-4.15z\"}}]})(props);\n};\nexport function MdPhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11l5-5-5-5v3h-4v4h4v3zm2 4.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdPhoneInTalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 12h2a9 9 0 00-9-9v2c3.87 0 7 3.13 7 7zm-4 0h2c0-2.76-2.24-5-5-5v2c1.66 0 3 1.34 3 3z\"}}]})(props);\n};\nexport function MdPhoneLocked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM20 4v-.5a2.5 2.5 0 00-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4z\"}}]})(props);\n};\nexport function MdPhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 5.5L12 11l7-7-1-1-6 6-4.5-4.5H11V3H5v6h1.5V5.5zm17.21 11.17A16.971 16.971 0 0012 12C7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71s.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73 1.6 0 3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.67 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z\"}}]})(props);\n};\nexport function MdPhonePaused (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3h-2v7h2V3zm3 12.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 00-1.02.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 3v7h2V3h-2z\"}}]})(props);\n};\nexport function MdPowerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 14.49V9c0-1-1.01-2.01-2-2V3h-2v4h-4V3H8v2.48l9.51 9.5.49-.49zm-1.76 1.77L7.2 7.2l-.01.01L3.98 4 2.71 5.25l3.36 3.36C6.04 8.74 6 8.87 6 9v5.48L9.5 18v3h5v-3l.48-.48L19.45 22l1.26-1.28-4.47-4.46z\"}}]})(props);\n};\nexport function MdPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.01 7L16 3h-2v4h-4V3H8v4h-.01C7 6.99 6 7.99 6 8.99v5.49L9.5 18v3h5v-3l3.5-3.51v-5.5c0-1-1-2-1.99-1.99z\"}}]})(props);\n};\nexport function MdPriorityHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3h4v12h-4z\"}}]})(props);\n};\nexport function MdRunningWithErrors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10v8h-2v-8h2zm-2 10v2h2v-2h-2zm-2-2.71A7.99 7.99 0 0112 20c-4.41 0-8-3.59-8-8s3.59-8 8-8v9l7.55-7.55A9.965 9.965 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10c2.25 0 4.33-.74 6-2v-2.71z\"}}]})(props);\n};\nexport function MdSdCardAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 15h-2v-2h2v2zm0-4h-2V8h2v5z\"}}]})(props);\n};\nexport function MdSdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z\"}}]})(props);\n};\nexport function MdSimCardAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 15h-2v-2h2v2zm0-4h-2V8h2v5z\"}}]})(props);\n};\nexport function MdSmsFailed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z\"}}]})(props);\n};\nexport function MdSms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z\"}}]})(props);\n};\nexport function MdSupportAgent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11.03A6.04 6.04 0 0012.05 6c-3.03 0-6.29 2.51-6.03 6.45a8.075 8.075 0 004.86-5.89c1.31 2.63 4 4.44 7.12 4.47z\"}}]})(props);\n};\nexport function MdSyncDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6.35V4.26c-.8.21-1.55.54-2.23.96l1.46 1.46c.25-.12.5-.24.77-.33zm-7.14-.94l2.36 2.36a7.925 7.925 0 001.14 9.87L4 20h6v-6l-2.24 2.24A6.003 6.003 0 016 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.25-.77.34v2.09c.8-.21 1.55-.54 2.23-.96l2.36 2.36 1.27-1.27L4.14 4.14 2.86 5.41zM20 4h-6v6l2.24-2.24A6.003 6.003 0 0118 12c0 1-.25 1.94-.68 2.77l1.46 1.46a7.925 7.925 0 00-1.14-9.87L20 4z\"}}]})(props);\n};\nexport function MdSyncProblem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24A6.003 6.003 0 015 12a5.99 5.99 0 014-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24A6.003 6.003 0 0119 12a5.99 5.99 0 01-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z\"}}]})(props);\n};\nexport function MdSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0020 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 004 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\"}}]})(props);\n};\nexport function MdSystemUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-1-6h-3V8h-2v5H8l4 4 4-4z\"}}]})(props);\n};\nexport function MdTapAndPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0 4v3h3c0-1.66-1.34-3-3-3zm0-8v2a9 9 0 019 9h2c0-6.08-4.92-11-11-11zM17 1.01L7 1c-1.1 0-2 .9-2 2v7.37c.69.16 1.36.37 2 .64V5h10v13h-3.03c.52 1.25.84 2.59.95 4H17c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z\"}}]})(props);\n};\nexport function MdTimeToLeave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z\"}}]})(props);\n};\nexport function MdTvOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 3.54l1.53 1.53C1.65 5.28 1 6.06 1 7v12c0 1.1.9 2 2 2h15.46l2 2 1.26-1.27L2.27 2.27 1 3.54zM3 19V7h1.46l12 12H3zM21 5h-7.58l3.29-3.3L16 1l-4 4-4-4-.7.7L10.58 5H7.52l2 2H21v11.48l1.65 1.65c.22-.32.35-.71.35-1.13V7c0-1.11-.89-2-2-2z\"}}]})(props);\n};\nexport function MdVibration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 15h2V9H0v6zm3 2h2V7H3v10zm19-8v6h2V9h-2zm-3 8h2V7h-2v10zM16.5 3h-9C6.67 3 6 3.67 6 4.5v15c0 .83.67 1.5 1.5 1.5h9c.83 0 1.5-.67 1.5-1.5v-15c0-.83-.67-1.5-1.5-1.5zM16 19H8V5h8v14z\"}}]})(props);\n};\nexport function MdVoiceChat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12l-4-3.2V14H6V6h8v3.2L18 6v8z\"}}]})(props);\n};\nexport function MdVpnLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4v-.5a2.5 2.5 0 00-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4zm-2.28 8c.04.33.08.66.08 1 0 2.08-.8 3.97-2.1 5.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55 0 1-.45 1-1V8h2c1.1 0 2-.9 2-2V3.46c-.95-.3-1.95-.46-3-.46C5.48 3 1 7.48 1 13s4.48 10 10 10 10-4.48 10-10c0-.34-.02-.67-.05-1h-2.03zM10 20.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L8 16v1c0 1.1.9 2 2 2v1.93z\"}}]})(props);\n};\nexport function MdWc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 22v-7.5H4V9c0-1.1.9-2 2-2h3c1.1 0 2 .9 2 2v5.5H9.5V22h-4zM18 22v-6h3l-2.54-7.63A2.01 2.01 0 0016.56 7h-.12a2 2 0 00-1.9 1.37L12 16h3v6h3zM7.5 6c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm9 0c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2z\"}}]})(props);\n};\nexport function MdWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4a9.793 9.793 0 00-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24A9.684 9.684 0 005 13v.01L6.99 15a7.042 7.042 0 014.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3a4.237 4.237 0 00-6 0z\"}}]})(props);\n};\nexport function MdWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3a4.237 4.237 0 00-6 0zm-4-4l2 2a7.074 7.074 0 0110 0l2-2C15.14 9.14 8.87 9.14 5 13z\"}}]})(props);\n};\nexport function MdAcUnit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11h-4.17l3.24-3.24-1.41-1.42L15 11h-2V9l4.66-4.66-1.42-1.41L13 6.17V2h-2v4.17L7.76 2.93 6.34 4.34 11 9v2H9L4.34 6.34 2.93 7.76 6.17 11H2v2h4.17l-3.24 3.24 1.41 1.42L9 13h2v2l-4.66 4.66 1.42 1.41L11 17.83V22h2v-4.17l3.24 3.24 1.42-1.41L13 15v-2h2l4.66 4.66 1.41-1.42L17.83 13H22z\"}}]})(props);\n};\nexport function MdAirportShuttle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H3a2 2 0 00-2 2v9h2c0 1.65 1.34 3 3 3s3-1.35 3-3h5.5c0 1.65 1.34 3 3 3s3-1.35 3-3H23v-5l-6-6zM3 11V7h4v4H3zm3 6.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7-6.5H9V7h4v4zm4.5 6.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM15 11V7h1l4 4h-5z\"}}]})(props);\n};\nexport function MdAllInclusive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.6 6.62c-1.44 0-2.8.56-3.77 1.53L12 10.66 10.48 12h.01L7.8 14.39c-.64.64-1.49.99-2.4.99-1.87 0-3.39-1.51-3.39-3.38S3.53 8.62 5.4 8.62c.91 0 1.76.35 2.44 1.03l1.13 1 1.51-1.34L9.22 8.2A5.37 5.37 0 005.4 6.62C2.42 6.62 0 9.04 0 12s2.42 5.38 5.4 5.38c1.44 0 2.8-.56 3.77-1.53l2.83-2.5.01.01L13.52 12h-.01l2.69-2.39c.64-.64 1.49-.99 2.4-.99 1.87 0 3.39 1.51 3.39 3.38s-1.52 3.38-3.39 3.38c-.9 0-1.76-.35-2.44-1.03l-1.14-1.01-1.51 1.34 1.27 1.12a5.386 5.386 0 003.82 1.57c2.98 0 5.4-2.41 5.4-5.38s-2.42-5.37-5.4-5.37z\"}}]})(props);\n};\nexport function MdApartment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm4 4H9v-2h2v2zm0-4H9V9h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdBabyChangingStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8v2h-3L8.31 8.82 7 12.75V22H3V12l1.58-4.63A2.003 2.003 0 017.3 6.18l4.15 1.83L14 8zM8 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm1 18h12v-2H9v2zm10.5-3c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM13 12c0-.55-.45-1-1-1H9v2h2v1c0 1.1.9 2 2 2h2c1.1 0 2-.9 2-2v-3h-2v2h-2v-1z\"}}]})(props);\n};\nexport function MdBackpack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V8c0-1.86 1.28-3.41 3-3.86V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86zM6 12v2h10v2h2v-4H6z\"}}]})(props);\n};\nexport function MdBalcony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10v2H8v-2h2zm6 2v-2h-2v2h2zm5 2v8H3v-8h1v-4c0-4.42 3.58-8 8-8s8 3.58 8 8v4h1zM7 16H5v4h2v-4zm4 0H9v4h2v-4zm0-11.92C8.16 4.56 6 7.03 6 10v4h5V4.08zM13 14h5v-4c0-2.97-2.16-5.44-5-5.92V14zm2 2h-2v4h2v-4zm4 0h-2v4h2v-4z\"}}]})(props);\n};\nexport function MdBathtub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"7\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13V4.83C20 3.27 18.73 2 17.17 2c-.75 0-1.47.3-2 .83l-1.25 1.25c-.16-.05-.33-.08-.51-.08-.4 0-.77.12-1.08.32l2.76 2.76c.2-.31.32-.68.32-1.08 0-.18-.03-.34-.07-.51l1.25-1.25a.828.828 0 011.41.59V13h-6.85c-.3-.21-.57-.45-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5A2.251 2.251 0 005 12.25V13H2v6c0 1.1.9 2 2 2 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 1.1 0 2-.9 2-2v-6h-2z\"}}]})(props);\n};\nexport function MdBeachAccess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.127 14.56l1.43-1.43 6.44 6.443L19.57 21zm4.293-5.73l2.86-2.86c-3.95-3.95-10.35-3.96-14.3-.02 3.93-1.3 8.31-.25 11.44 2.88zM5.95 5.98c-3.94 3.95-3.93 10.35.02 14.3l2.86-2.86C5.7 14.29 4.65 9.91 5.95 5.98zm.02-.02l-.01.01c-.38 3.01 1.17 6.88 4.3 10.02l5.73-5.73c-3.13-3.13-7.01-4.68-10.02-4.3z\"}}]})(props);\n};\nexport function MdBento (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11V5h4c1.1 0 2 .9 2 2v4h-6zm4 8c1.1 0 2-.9 2-2v-4h-6v6h4zM14 5v14H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h10zm-4.5 7c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5.67 1.5 1.5 1.5 1.5-.67 1.5-1.5z\"}}]})(props);\n};\nexport function MdBungalow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L4.2 15.5l1.7 1.06L7 14.8V21h4v-5h2v5h4v-6.21l1.1 1.77 1.7-1.06L12 3zm1 11h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdBusinessCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm10 5h4v2h-4zm0 0h4v2h-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16v-1H3.01L3 19c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2v-4h-7v1h-4zm10-9h-4.01V5l-2-2h-4l-2 2v2H4c-1.1 0-2 .9-2 2v3c0 1.11.89 2 2 2h6v-2h4v2h6c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-6 0h-4V5h4v2z\"}}]})(props);\n};\nexport function MdCabin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 1c0 1.66-1.34 3-3 3-.55 0-1 .45-1 1H4c0-1.66 1.34-3 3-3 .55 0 1-.45 1-1h2zm2 2L6 7.58V6H4v3.11L1 11.4l1.21 1.59L4 11.62V21h16v-9.38l1.79 1.36L23 11.4 12 3zm1.94 4h-3.89L12 5.52 13.94 7zm-6.5 2h9.12L18 10.1v.9H6v-.9L7.44 9zM18 13v2H6v-2h12zM6 19v-2h12v2H6z\"}}]})(props);\n};\nexport function MdCarpenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.73 14.23L7 1.5 3.11 5.39l8.13 11.67c-.78.78-.78 2.05 0 2.83l1.41 1.41c.78.78 2.05.78 2.83 0l4.24-4.24c.79-.78.79-2.05.01-2.83zm-5.66 5.65l-1.41-1.41 4.24-4.24 1.41 1.41-4.24 4.24z\"}}]})(props);\n};\nexport function MdCasino (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0zm21.02 19c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z\"}}]})(props);\n};\nexport function MdChalet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7.5l7.5 7.5-1.41 1.41L15 15.33V20h-4v-5H9v5H5v-4.67l-1.09 1.09L2.5 15 10 7.5zm12-1h-1.19l.75-.75-.71-.71-1.46 1.46h-.89v-.89l1.45-1.45-.71-.71-.74.74V3h-1v1.19l-.75-.75-.71.71 1.45 1.45v.9h-.89l-1.45-1.45-.71.71.75.75H14v1h1.19l-.75.75.71.71 1.45-1.45h.89v.89l-1.45 1.45.71.71.75-.75V11h1V9.81l.75.75.71-.71-1.46-1.46V7.5h.89l1.45 1.45.71-.71-.74-.74H22v-1z\"}}]})(props);\n};\nexport function MdChargingStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 11l-3 6v-4h-2l3-6v4h2zM7 1h10c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2zm0 5v12h10V6H7z\"}}]})(props);\n};\nexport function MdCheckroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.6 18.2L13 11.75v-.91a3.496 3.496 0 00-.18-6.75A3.51 3.51 0 008.5 7.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .84-.69 1.52-1.53 1.5-.54-.01-.97.45-.97.99v1.76L2.4 18.2c-.77.58-.36 1.8.6 1.8h18c.96 0 1.37-1.22.6-1.8zM6 18l6-4.5 6 4.5H6z\"}}]})(props);\n};\nexport function MdChildCare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"10.5\",\"r\":\"1.25\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.5\",\"cy\":\"10.5\",\"r\":\"1.25\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.94 12.66c.04-.21.06-.43.06-.66s-.02-.45-.06-.66a4.008 4.008 0 00-2.81-3.17 9.114 9.114 0 00-2.19-2.91C16.36 3.85 14.28 3 12 3s-4.36.85-5.94 2.26c-.92.81-1.67 1.8-2.19 2.91a3.994 3.994 0 00-2.81 3.17c-.04.21-.06.43-.06.66s.02.45.06.66a4.008 4.008 0 002.81 3.17 8.977 8.977 0 002.17 2.89C7.62 20.14 9.71 21 12 21s4.38-.86 5.97-2.28c.9-.8 1.65-1.79 2.17-2.89a3.998 3.998 0 002.8-3.17zM19 14c-.1 0-.19-.02-.29-.03-.2.67-.49 1.29-.86 1.86C16.6 17.74 14.45 19 12 19s-4.6-1.26-5.85-3.17c-.37-.57-.66-1.19-.86-1.86-.1.01-.19.03-.29.03-1.1 0-2-.9-2-2s.9-2 2-2c.1 0 .19.02.29.03.2-.67.49-1.29.86-1.86C7.4 6.26 9.55 5 12 5s4.6 1.26 5.85 3.17c.37.57.66 1.19.86 1.86.1-.01.19-.03.29-.03 1.1 0 2 .9 2 2s-.9 2-2 2zM7.5 14c.76 1.77 2.49 3 4.5 3s3.74-1.23 4.5-3h-9z\"}}]})(props);\n};\nexport function MdChildFriendly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2v8h8c0-4.42-3.58-8-8-8zm6.32 13.89A7.948 7.948 0 0021 11H6.44l-.95-2H2v2h2.22s1.89 4.07 2.12 4.42c-1.1.59-1.84 1.75-1.84 3.08C4.5 20.43 6.07 22 8 22c1.76 0 3.22-1.3 3.46-3h2.08c.24 1.7 1.7 3 3.46 3 1.93 0 3.5-1.57 3.5-3.5 0-1.04-.46-1.97-1.18-2.61zM8 20c-.83 0-1.5-.67-1.5-1.5S7.17 17 8 17s1.5.67 1.5 1.5S8.83 20 8 20zm9 0c-.83 0-1.5-.67-1.5-1.5S16.17 17 17 17s1.5.67 1.5 1.5S17.83 20 17 20z\"}}]})(props);\n};\nexport function MdCorporateFare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7V3H2v18h20V7H12zm-2 12H4v-2h6v2zm0-4H4v-2h6v2zm0-4H4V9h6v2zm0-4H4V5h6v2zm10 12h-8V9h8v10zm-2-8h-4v2h4v-2zm0 4h-4v2h4v-2z\"}}]})(props);\n};\nexport function MdCottage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L6 7.58V6H4v3.11L1 11.4l1.21 1.59L4 11.62V21h7v-6h2v6h7v-9.38l1.79 1.36L23 11.4 12 3zm-2-2c0 1.66-1.34 3-3 3-.55 0-1 .45-1 1H4c0-1.66 1.34-3 3-3 .55 0 1-.45 1-1h2z\"}}]})(props);\n};\nexport function MdCountertops (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10V7c0-1.66-1.34-3-3-3s-3 1.34-3 3h2c0-.55.45-1 1-1s1 .45 1 1v3H8c1.1 0 2-.9 2-2V4H4v4c0 1.1.9 2 2 2H2v2h2v8h16v-8h2v-2h-4zm-5 8h-2v-6h2v6z\"}}]})(props);\n};\nexport function MdCrib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9h-6V4H8C5.79 4 4 5.79 4 8v6c0 1.1.9 2 2 2h2v2.93c-.61-.35-1.16-.78-1.65-1.27l-1.42 1.42C6.74 20.88 9.24 22 12 22c2.76 0 5.26-1.12 7.07-2.93l-1.42-1.42c-.49.49-1.05.92-1.65 1.27V16h2c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm-4 10.75c-.64.16-1.31.25-2 .25s-1.36-.09-2-.25V16h4v3.75z\"}}]})(props);\n};\nexport function MdDoNotStep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.39 4.22l7.9 7.9c.18.2.18.5-.01.7a.485.485 0 01-.7 0L6.87 11.1c-.11.4-.26.78-.45 1.12l1.4 1.4c.2.2.2.51 0 .71a.485.485 0 01-.7 0l-1.27-1.27c-.24.29-.5.56-.77.8l1.28 1.28c.2.2.2.51 0 .71-.1.1-.23.15-.36.15s-.26-.05-.35-.15l-1.38-1.38c-.69.46-1.39.79-1.97 1.02-.78.31-1.3 1.04-1.3 1.88V20h9.5l3.33-3.33 5.94 5.94 1.41-1.41L2.81 2.81 1.39 4.22zm17.12 11.46l-1.41-1.41 4.48-4.48L23 11.2l-4.49 4.48zm2.37-6.6l-4.48 4.48-7.1-7.09L13.8 2l7.08 7.08z\"}}]})(props);\n};\nexport function MdDoNotTouch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10.17l-2.5-2.5V2.25a1.25 1.25 0 012.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 00-2.5 0V11h-1V3.25a1.25 1.25 0 00-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm3.5 5.92l-2.5-2.5V2.25a1.25 1.25 0 012.5 0v7.92zm7 2.58v-7.5a1.25 1.25 0 00-2.5 0V11h-1V3.25a1.25 1.25 0 00-2.5 0v7.92l6 6v-4.42zM9.5 4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67V4.25zm11.69 16.94L2.81 2.81 1.39 4.22l5.63 5.63L7 9.83v4.3c-1.11-.64-2.58-1.47-2.6-1.48-.17-.09-.34-.14-.54-.14-.26 0-.5.09-.7.26-.04.01-1.16 1.11-1.16 1.11l6.8 7.18c.57.6 1.35.94 2.18.94H17c.62 0 1.18-.19 1.65-.52l-.02-.02 1.15 1.15 1.41-1.42z\"}}]})(props);\n};\nexport function MdDry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.65 4.86l-.07-.07c-.57-.62-.82-1.41-.67-2.2L15 2h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zm4 0l-.07-.07c-.57-.62-.82-1.41-.67-2.2L19 2h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zM9.12 5l-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 000-2.5H12v-1h7.75a1.25 1.25 0 000-2.5H12v-1h8.75a1.25 1.25 0 000-2.5H12v-1h6.75a1.25 1.25 0 000-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 00-.12-1.23C10.22 6.12 9.12 5 9.12 5z\"}}]})(props);\n};\nexport function MdElevator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM8.5 6a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zm2.5 8h-1v4H7v-4H6v-2.5c0-1.1.9-2 2-2h1c1.1 0 2 .9 2 2V14zm4.5 3L13 13h5l-2.5 4zM13 11l2.5-4 2.5 4h-5z\"}}]})(props);\n};\nexport function MdEscalatorWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5S17.83 8 17 8s-1.5.67-1.5 1.5zm3 2.5h-2.84c-.58.01-1.14.32-1.45.86l-.92 1.32L9.72 8a2.02 2.02 0 00-1.71-1H5c-1.1 0-2 .9-2 2v6h1.5v7h5V11.61L12.03 16h2.2l.77-1.1V22h4v-5h1v-3.5c0-.82-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdEscalator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 6h-1.7l-5 9H7c-.83 0-1.5-.67-1.5-1.5S6.17 15 7 15h1.7l5-9H17c.83 0 1.5.67 1.5 1.5S17.83 9 17 9z\"}}]})(props);\n};\nexport function MdFamilyRestroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm4 18v-6h2.5l-2.54-7.63A2.01 2.01 0 0018.06 7h-.12a2 2 0 00-1.9 1.37l-.86 2.58c1.08.6 1.82 1.73 1.82 3.05v8h3zm-7.5-10.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5S11 9.17 11 10s.67 1.5 1.5 1.5zM5.5 6c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm2 16v-7H9V9c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v6h1.5v7h4zm6.5 0v-4h1v-4c0-.82-.68-1.5-1.5-1.5h-2c-.82 0-1.5.68-1.5 1.5v4h1v4h3z\"}}]})(props);\n};\nexport function MdFence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v-2h-2V7l-3-3-2 2-2-2-2 2-2-2-3 3v3H3v2h2v2H3v2h2v4h14v-4h2v-2h-2v-2h2zm-5-5.17l1 1V10h-2V7.83l.41-.41.59-.59zm-4 0l.59.59.41.41V10h-2V7.83l.41-.41.59-.59zM11 14v-2h2v2h-2zm2 2v2h-2v-2h2zM7 7.83l1-1 .59.59.41.41V10H7V7.83zM7 12h2v2H7v-2zm0 4h2v2H7v-2zm10 2h-2v-2h2v2zm0-4h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdFireExtinguisher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19h10v1c0 1.1-.9 2-2 2H9c-1.1 0-2-.9-2-2v-1zm0-1h10v-5H7v5zM17 3v6l-3.15-.66c-.01 0-.01.01-.02.02 1.55.62 2.72 1.98 3.07 3.64H7.1c.34-1.66 1.52-3.02 3.07-3.64-.33-.26-.6-.58-.8-.95L5 6.5v-1l4.37-.91C9.87 3.65 10.86 3 12 3c.7 0 1.34.25 1.85.66L17 3zm-4 3c-.03-.59-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1z\"}}]})(props);\n};\nexport function MdFitnessCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.57 14.86L22 13.43 20.57 12 17 15.57 8.43 7 12 3.43 10.57 2 9.14 3.43 7.71 2 5.57 4.14 4.14 2.71 2.71 4.14l1.43 1.43L2 7.71l1.43 1.43L2 10.57 3.43 12 7 8.43 15.57 17 12 20.57 13.43 22l1.43-1.43L16.29 22l2.14-2.14 1.43 1.43 1.43-1.43-1.43-1.43L22 16.29z\"}}]})(props);\n};\nexport function MdFoodBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L4 9v12h16V9l-8-6zm.5 9.5c0 .83-.67 1.5-1.5 1.5v4h-1v-4c-.83 0-1.5-.67-1.5-1.5v-3h1v3h.5v-3h1v3h.5v-3h1v3zM15 18h-1v-3.5h-1v-3c0-1.1.9-2 2-2V18z\"}}]})(props);\n};\nexport function MdFoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12h3L12 3 2 12h3v3H3v2h2v3h2v-3h4v3h2v-3h4v3h2v-3h2v-2h-2v-3zM7 15v-4.81l4-3.6V15H7zm6 0V6.59l4 3.6V15h-4z\"}}]})(props);\n};\nexport function MdFreeBreakfast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 002-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z\"}}]})(props);\n};\nexport function MdGite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6H9V4H7v2H6l-4 4v9h20v-9l-4-4zM4 12h10v5H4v-5zm16 5h-4v-6.17l2-2 2 2V17z\"}}]})(props);\n};\nexport function MdGolfCourse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5.92L9 2v18H7v-1.73c-1.79.35-3 .99-3 1.73 0 1.1 2.69 2 6 2s6-.9 6-2c0-.99-2.16-1.81-5-1.97V8.98l6-3.06z\"}}]})(props);\n};\nexport function MdGrass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20H2v-2h5.75A8.032 8.032 0 002 12.26c.64-.16 1.31-.26 2-.26 4.42 0 8 3.58 8 8zm10-7.74c-.64-.16-1.31-.26-2-.26-2.93 0-5.48 1.58-6.88 3.93a9.82 9.82 0 01.87 4.07h8v-2h-5.75A8.061 8.061 0 0122 12.26zm-6.36-1.24a10.03 10.03 0 014.09-5C15.44 6.16 12 9.67 12 14v.02c.95-1.27 2.2-2.3 3.64-3zm-4.22-2.17A8.527 8.527 0 006.7 4C8.14 5.86 9 8.18 9 10.71c0 .21-.03.41-.04.61.43.24.83.52 1.22.82a9.91 9.91 0 011.24-3.29z\"}}]})(props);\n};\nexport function MdHolidayVillage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20V8.35L13.65 4h-2.83L16 9.18V20h2zm4 0V6.69L19.31 4h-2.83L20 7.52V20h2zM8 4l-6 6v10h5v-5h2v5h5V10L8 4zm1 9H7v-2h2v2z\"}}]})(props);\n};\nexport function MdHotTub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.15 12c-.31-.22-.59-.46-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C6.01 9 5 10.01 5 11.25V12H2v8c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-8H11.15zM7 20H5v-6h2v6zm4 0H9v-6h2v6zm4 0h-2v-6h2v6zm4 0h-2v-6h2v6zm-.35-14.14l-.07-.07c-.57-.62-.82-1.41-.67-2.2L18 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zm-4 0l-.07-.07c-.57-.62-.82-1.41-.67-2.2L14 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71z\"}}]})(props);\n};\nexport function MdHouseSiding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12h3L12 3 2 12h3v8h2v-2h10v2h2v-8zM7.21 10h9.58l.21.19V12H7v-1.81l.21-.19zm7.36-2H9.43L12 5.69 14.57 8zM7 16v-2h10v2H7z\"}}]})(props);\n};\nexport function MdHouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9.3V4h-3v2.6L12 3 2 12h3v8h5v-6h4v6h5v-8h3l-3-2.7zm-9 .7c0-1.1.9-2 2-2s2 .9 2 2h-4z\"}}]})(props);\n};\nexport function MdHouseboat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c-1.95 0-2.1 1-3.34 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1 1.19 0 1.42 1 3.33 1 1.95 0 2.08-1 3.32-1s1.37 1 3.32 1c1.91 0 2.14-1 3.33-1 1.18 0 1.45 1 3.35 1v-2c-1.24 0-1.38-1-3.33-1-1.91 0-2.14 1-3.33 1-1.24 0-1.39-1-3.34-1zm8.34-4.66l-1.37 1.37c-.19.18-.45.29-.71.29H17V9.65l1.32.97L19.5 9 12 3.5 4.5 9l1.18 1.61L7 9.65V13H5.74c-.27 0-.52-.11-.71-.29l-1.37-1.37-1.41 1.41 1.37 1.37c.56.56 1.33.88 2.12.88h12.51c.8 0 1.56-.32 2.12-.88l1.37-1.37-1.4-1.41zM13 13h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdIron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6c-1.66 0-3 1.34-3 3v4c0 .55-.45 1-1 1v-4c0-1.66-1.34-3-3-3h-4c-1.66 0-3 1.34-3 3h2c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1H6c-2.21 0-4 1.79-4 4v3h15v-2c1.66 0 3-1.34 3-3V9c0-.55.45-1 1-1h1V6h-1z\"}}]})(props);\n};\nexport function MdKitchen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2.01L6 2a2 2 0 00-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.11-.9-1.99-2-1.99zM18 20H6v-9.02h12V20zm0-11H6V4h12v5zM8 5h2v3H8zm0 7h2v5H8z\"}}]})(props);\n};\nexport function MdMeetingRoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6v15H3v-2h2V3h9v1h5v15h2v2h-4V6h-3zm-4 5v2h2v-2h-2z\"}}]})(props);\n};\nexport function MdMicrowave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.8 10.61L5.37 9.19C5.73 8.79 6.59 8 7.75 8c.8 0 1.39.39 1.81.67.31.21.51.33.69.33.37 0 .8-.41.95-.61l1.42 1.42c-.36.4-1.22 1.19-2.37 1.19-.79 0-1.37-.38-1.79-.66-.33-.22-.52-.34-.71-.34-.37 0-.8.41-.95.61zM7.75 15c.19 0 .38.12.71.34.42.28 1 .66 1.79.66 1.16 0 2.01-.79 2.37-1.19l-1.42-1.42c-.15.2-.59.61-.95.61-.18 0-.38-.12-.69-.33-.42-.28-1.01-.67-1.81-.67-1.16 0-2.02.79-2.38 1.19l1.42 1.42c.16-.2.59-.61.96-.61zM22 6v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-8 0H4v12h10V6zm5 10c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0-4c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0-5h-2v2h2V7z\"}}]})(props);\n};\nexport function MdNightShelter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L4 9v12h16V9l-8-6zm-2.25 9.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zM17 18h-1v-1.5H8V18H7v-7h1v4.5h3.5V12H15c1.1 0 2 .9 2 2v4z\"}}]})(props);\n};\nexport function MdNoBackpack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22l2.76 2.76C4.06 7.31 4 7.64 4 8v12c0 1.1.9 2 2 2h12c.34 0 .65-.09.93-.24l.85.85 1.41-1.42zM6 14v-2h3.17l2 2H6zm8.83-2L6.98 4.15c.01 0 .01-.01.02-.01V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86v9.17l-2-2V12h-3.17z\"}}]})(props);\n};\nexport function MdNoCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.83 6l-3.7-3.7C5.42 1.55 6.15 1 7 1l10 .01c1.1 0 2 .89 2 1.99v13.17l-2-2V6H8.83zm10.95 16.61l-.91-.91c-.29.75-1.02 1.3-1.87 1.3H7c-1.1 0-2-.9-2-2V7.83L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM15.17 18L7 9.83V18h8.17z\"}}]})(props);\n};\nexport function MdNoDrinks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.83 3H21v2l-6.2 6.97L9.83 7h6.74l1.78-2H7.83l-2-2zm13.95 19.61L18 20.83V21H6v-2h5v-5l-1.37-1.54-8.24-8.24L2.8 2.81 3 3l18.19 18.19-1.41 1.42zM16.17 19L13 15.83V19h3.17z\"}}]})(props);\n};\nexport function MdNoFlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.93 13.93L2.45 2.45 1.04 3.87l5.3 5.3-.2.23H3.6c-.88 0-1.6.72-1.6 1.6v9.4c0 .88.72 1.6 1.6 1.6h12.8c.75 0 1.38-.52 1.55-1.22l2.18 2.18 1.41-1.41L18 18l-4.07-4.07zM10 20c-2.21 0-4-1.79-4-4 0-1.95 1.4-3.57 3.25-3.92l1.57 1.57c-.26-.09-.53-.15-.82-.15a2.5 2.5 0 000 5 2.5 2.5 0 002.5-2.5c0-.29-.06-.56-.15-.82l1.57 1.57A3.993 3.993 0 0110 20zm8-4.83L10.83 8h1.75l1.28 1.4h2.54c.88 0 1.6.72 1.6 1.6v4.17zm2.4-9.57H22L19 11V7h-1V2h4l-1.6 3.6z\"}}]})(props);\n};\nexport function MdNoFood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.35 8.52L11 5h5V1h2v4h5l-1.38 13.79L11.35 8.52zM1 21v1c0 .55.45 1 1 1h13c.55 0 1-.45 1-1v-1H1zm20.9.9L2.1 2.1.69 3.51l5.7 5.7C3.28 9.87 1 11.99 1 15h11.17l2 2H1v2h15v-.17l4.49 4.49 1.41-1.42z\"}}]})(props);\n};\nexport function MdNoMeetingRoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11h-1v2h2v-1l9.73 9.73L20.46 23 14 16.54V21H3v-2h2V7.54l-4-4 1.27-1.27L11 11zm3 .49L5.51 3H14v1h5v12.49l-2-2V6h-3v5.49z\"}}]})(props);\n};\nexport function MdNoPhotography (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.94 8.12L7.48 4.66 9 3h6l1.83 2H20c1.1 0 2 .9 2 2v12c0 .05-.01.1-.02.16l-5.1-5.1c.08-.35.12-.7.12-1.06 0-2.76-2.24-5-5-5-.36 0-.71.04-1.06.12zm9.55 15.19L18.17 21H4c-1.1 0-2-.9-2-2V7c0-.59.27-1.12.68-1.49l-2-2L2.1 2.1l19.8 19.8-1.41 1.41zm-6-5.99l-1.5-1.5c-.32.1-.64.18-.99.18-1.66 0-3-1.34-3-3 0-.35.08-.67.19-.98l-1.5-1.5A4.74 4.74 0 007 13c0 2.76 2.24 5 5 5 .91 0 1.76-.25 2.49-.68z\"}}]})(props);\n};\nexport function MdNoStroller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM18.65 3c-1.66 0-2.54 1.27-3.18 2.03l-3.5 4.11L17 14.17v-7.9c.58-.68.97-1.27 1.65-1.27.77 0 1.35.66 1.35 1.48V7h2v-.52C22 4.56 20.52 3 18.65 3zm-7.98 7.67L2.81 2.81 1.39 4.22l7.97 7.97-2.66 3.12c-.55.65-.09 1.65.76 1.65h6.66l1.17 1.17C14.54 18.42 14 19.14 14 20c0 1.1.9 2 2 2 .86 0 1.58-.54 1.87-1.3l1.91 1.91 1.41-1.41-4.8-4.8-5.72-5.73zm2.8-5.64c.27-.32.58-.72.98-1.09a9.347 9.347 0 00-7.81-.13l4.25 4.25 2.58-3.03z\"}}]})(props);\n};\nexport function MdOtherHouses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L1 11.4l1.21 1.59L4 11.62V21h16v-9.38l1.79 1.36L23 11.4 12 3zM8 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdPool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 21c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.08.64-2.19.64-1.11 0-1.73-.37-2.18-.64-.37-.23-.6-.36-1.15-.36s-.78.13-1.15.36c-.46.27-1.08.64-2.19.64v-2c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64 1.11 0 1.73.37 2.18.64.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36v2zm0-4.5c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36s-.78.13-1.15.36c-.47.27-1.09.64-2.2.64v-2c.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36v2zM8.67 12c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64 1.11 0 1.73.37 2.18.64.37.22.6.36 1.15.36s.78-.13 1.15-.36c.12-.07.26-.15.41-.23L10.48 5C8.93 3.45 7.5 2.99 5 3v2.5c1.82-.01 2.89.39 4 1.5l1 1-3.25 3.25c.31.12.56.27.77.39.37.23.59.36 1.15.36z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"5.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function MdRiceBowl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 3.69 2.47 6.86 6 8.25V22h8v-1.75c3.53-1.39 6-4.56 6-8.25zm-2 0h-4V5.08c2.39 1.39 4 3.97 4 6.92zm-6-7.74V12h-4V4.26c.64-.16 1.31-.26 2-.26s1.36.1 2 .26zM4 12c0-2.95 1.61-5.53 4-6.92V12H4z\"}}]})(props);\n};\nexport function MdRoofing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 18h-2v-2h2v2zm2-4H9v6h6v-6zm4-4.7V4h-3v2.6L12 3 2 12h3l7-6.31L19 12h3l-3-2.7z\"}}]})(props);\n};\nexport function MdRoomPreferences (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11.26V6h3v4h2V4h-5V3H5v16H3v2h9.26A6.963 6.963 0 0111 17c0-2.38 1.19-4.47 3-5.74zM10 11h2v2h-2v-2zm11.69 5.37l1.14-1-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L19 12h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1c-.08.5-.08.76 0 1.26l-1.14 1 1 1.73 1.45-.49c.32.27.68.48 1.08.63L17 22h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1c.08-.51.08-.77 0-1.27zM18 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdRoomService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17h20v2H2zm11.84-9.21A2.006 2.006 0 0012 5a2.006 2.006 0 00-1.84 2.79C6.25 8.6 3.27 11.93 3 16h18c-.27-4.07-3.25-7.4-7.16-8.21z\"}}]})(props);\n};\nexport function MdRvHookup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M14 11h4v3h-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17v-6c0-1.1-.9-2-2-2H7V7l-3 3 3 3v-2h4v3H4v3c0 1.1.9 2 2 2h2c0 1.66 1.34 3 3 3s3-1.34 3-3h8v-2h-2zm-9 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm7-6h-4v-3h4v3zM17 2v2H9v2h8v2l3-3z\"}}]})(props);\n};\nexport function MdSmokeFree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6l6.99 7H2v3h9.99l7 7 1.26-1.25-17-17zm18.5 7H22v3h-1.5zM18 13h1.5v3H18zm.85-8.12c.62-.61 1-1.45 1-2.38h-1.5c0 1.02-.83 1.85-1.85 1.85v1.5c2.24 0 4 1.83 4 4.07V12H22V9.92c0-2.23-1.28-4.15-3.15-5.04zM14.5 8.7h1.53c1.05 0 1.97.74 1.97 2.05V12h1.5v-1.59c0-1.8-1.6-3.16-3.47-3.16H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75V2a3.35 3.35 0 000 6.7zm2.5 7.23V13h-2.93z\"}}]})(props);\n};\nexport function MdSmokingRooms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16h15v3H2zm18.5 0H22v3h-1.5zM18 16h1.5v3H18zm.85-8.27c.62-.61 1-1.45 1-2.38C19.85 3.5 18.35 2 16.5 2v1.5c1.02 0 1.85.83 1.85 1.85S17.52 7.2 16.5 7.2v1.5c2.24 0 4 1.83 4 4.07V15H22v-2.24c0-2.22-1.28-4.14-3.15-5.03zm-2.82 2.47H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75v-1.5a3.35 3.35 0 000 6.7h1.53c1.05 0 1.97.74 1.97 2.05V15h1.5v-1.64c0-1.81-1.6-3.16-3.47-3.16z\"}}]})(props);\n};\nexport function MdSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.12 5l-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 000-2.5H12v-1h7.75a1.25 1.25 0 000-2.5H12v-1h8.75a1.25 1.25 0 000-2.5H12v-1h6.75a1.25 1.25 0 000-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 00-.12-1.23C10.22 6.12 9.12 5 9.12 5zM14 6.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75m0-1.5c-1.24 0-2.25 1.01-2.25 2.25S12.76 9.25 14 9.25 16.25 8.24 16.25 7 15.24 4.75 14 4.75zm5.75.75c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5m0-1.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM16.5 1c-.83 0-1.5.67-1.5 1.5S15.67 4 16.5 4 18 3.33 18 2.5 17.33 1 16.5 1z\"}}]})(props);\n};\nexport function MdSpa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm13.97 21.49c-.63.23-1.29.4-1.97.51.68-.12 1.33-.29 1.97-.51zM12 22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.55 12zm10.43-1.61zM15.49 9.63c-.18-2.79-1.31-5.51-3.43-7.63a12.188 12.188 0 00-3.55 7.63c1.28.68 2.46 1.56 3.49 2.63 1.03-1.06 2.21-1.94 3.49-2.63zm-6.5 2.65c-.14-.1-.3-.19-.45-.29.15.11.31.19.45.29zm6.42-.25c-.13.09-.27.16-.4.26.13-.1.27-.17.4-.26zM12 15.45C9.85 12.17 6.18 10 2 10c0 5.32 3.36 9.82 8.03 11.49.63.23 1.29.4 1.97.51.68-.12 1.33-.29 1.97-.51C18.64 19.82 22 15.32 22 10c-4.18 0-7.85 2.17-10 5.45z\"}}]})(props);\n};\nexport function MdSportsBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h-1.56c.35-.59.56-1.27.56-2 0-2.21-1.79-4-4-4-.34 0-.66.05-.98.13A4.707 4.707 0 0010 2.02c-1.89 0-3.51 1.11-4.27 2.71C4.15 5.26 3 6.74 3 8.5c0 1.86 1.28 3.41 3 3.86V21h11v-2h2c1.1 0 2-.9 2-2v-6c0-1.1-.9-2-2-2zM7 10.5c-1.1 0-2-.9-2-2 0-.85.55-1.6 1.37-1.88l.8-.27.36-.76C8 4.62 8.94 4.02 10 4.02c.79 0 1.39.35 1.74.65l.78.65S13.16 5 13.99 5c1.1 0 2 .9 2 2h-3C9.67 7 9.15 10.5 7 10.5zM19 17h-2v-6h2v6z\"}}]})(props);\n};\nexport function MdStairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 5h-2.42v3.33H13v3.33h-2.58V18H6v-2h2.42v-3.33H11V9.33h2.58V6H18v2z\"}}]})(props);\n};\nexport function MdStorefront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.9 8.89l-1.05-4.37c-.22-.9-1-1.52-1.91-1.52H5.05c-.9 0-1.69.63-1.9 1.52L2.1 8.89c-.24 1.02-.02 2.06.62 2.88.08.11.19.19.28.29V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6.94c.09-.09.2-.18.28-.28.64-.82.87-1.87.62-2.89zm-2.99-3.9l1.05 4.37c.1.42.01.84-.25 1.17-.14.18-.44.47-.94.47-.61 0-1.14-.49-1.21-1.14L16.98 5l1.93-.01zM13 5h1.96l.54 4.52c.05.39-.07.78-.33 1.07-.22.26-.54.41-.95.41-.67 0-1.22-.59-1.22-1.31V5zM8.49 9.52L9.04 5H11v4.69c0 .72-.55 1.31-1.29 1.31-.34 0-.65-.15-.89-.41a1.42 1.42 0 01-.33-1.07zm-4.45-.16L5.05 5h1.97l-.58 4.86c-.08.65-.6 1.14-1.21 1.14-.49 0-.8-.29-.93-.47-.27-.32-.36-.75-.26-1.17zM5 19v-6.03c.08.01.15.03.23.03.87 0 1.66-.36 2.24-.95.6.6 1.4.95 2.31.95.87 0 1.65-.36 2.23-.93.59.57 1.39.93 2.29.93.84 0 1.64-.35 2.24-.95.58.59 1.37.95 2.24.95.08 0 .15-.02.23-.03V19H5z\"}}]})(props);\n};\nexport function MdStroller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7v-.52C22 4.56 20.52 3 18.65 3c-1.66 0-2.54 1.27-3.18 2.03l-8.8 10.32C6.12 16 6.58 17 7.43 17H15c1.1 0 2-.9 2-2V6.27c.58-.68.97-1.27 1.65-1.27.77 0 1.35.66 1.35 1.48V7h2zM14.3 4.1a8.962 8.962 0 00-9.58.62l4.89 4.89L14.3 4.1z\"}}]})(props);\n};\nexport function MdTapas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10V1h-8v9c0 1.86 1.28 3.41 3 3.86V21h-2v2h6v-2h-2v-7.14c1.72-.45 3-2 3-3.86zm-2-7v3h-4V3h4zm-7.5 8.5A2.5 2.5 0 0110 14H8v9H6v-9H4a2.5 2.5 0 010-5h2V8H4a2.5 2.5 0 010-5h2V1h2v2h2a2.5 2.5 0 010 5H8v1h2a2.5 2.5 0 012.5 2.5z\"}}]})(props);\n};\nexport function MdTty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4h2v2h-2V4zm-1 3h2v2h-2V7zm-2-3h2v2h-2V4zm7 5h-2V7h2v2zm1-3h-2V4h2v2zm2 3h-2V7h2v2zm1-3h-2V4h2v2zm-7.38 8.38L12.1 16.9c-2.5-1.43-4.57-3.5-6-6l2.52-2.52c.24-.24.34-.58.28-.9L8.16 3.8c-.09-.46-.5-.8-.98-.8H3.03c-.56 0-1.03.47-1 1.03.17 2.89 1.02 5.6 2.4 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.23 7.97 2.4.56.03 1.03-.44 1.03-1v-4.15c0-.48-.34-.89-.8-.98l-3.67-.73a.99.99 0 00-.91.27zM14 10h2v2h-2v-2zm-3 0h2v2h-2v-2zm8 2h-2v-2h2v2zm3 0h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 6.92L13 5.77V3.4c0-.26.22-.48.5-.48s.5.21.5.48V4h2v-.6C16 2.07 14.88 1 13.5 1S11 2.07 11 3.4v2.37L9.5 6.92 6 6.07l5.05 15.25c.15.45.55.68.95.68s.8-.23.95-.69L18 6.07l-3.5.85zM13.28 8.5l.76.58.92-.23L13 14.8V8.29l.28.21zm-3.32.59l.76-.58.28-.22v6.51L9.03 8.86l.93.23z\"}}]})(props);\n};\nexport function MdVilla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21H3V8l13-5v7H7v11zm12-11c-1.1 0-2 .9-2 2H9v9h5v-5h2v5h5v-9c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdWash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 8A2.5 2.5 0 0021 5.5C21 3.83 18.5 1 18.5 1S16 3.83 16 5.5A2.5 2.5 0 0018.5 8zm-5 1c.83 0 1.5-.67 1.5-1.5 0-.84-1.5-2.5-1.5-2.5S12 6.66 12 7.5c0 .83.67 1.5 1.5 1.5zM9.12 5l-7.18 6.79c-.6.56-.94 1.35-.94 2.18V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 000-2.5H12v-1h7.75a1.25 1.25 0 000-2.5H12v-1h8.75a1.25 1.25 0 000-2.5H12v-1h6.75a1.25 1.25 0 000-2.5H8.86c.64-1.11 1.48-2.58 1.49-2.61a1.065 1.065 0 00-.12-1.23C10.22 6.12 9.12 5 9.12 5z\"}}]})(props);\n};\nexport function MdWaterDamage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L2 12h3v8h14v-8h3L12 3zm0 13c-1.1 0-2-.9-2-2s2-4 2-4 2 2.9 2 4-.9 2-2 2z\"}}]})(props);\n};\nexport function MdWheelchairPickup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm5.5 6.95V9c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v6h2v7h3.5v-.11c-1.24-1.26-2-2.99-2-4.89 0-2.58 1.41-4.84 3.5-6.05zM16.5 17c0 1.65-1.35 3-3 3s-3-1.35-3-3c0-1.11.61-2.06 1.5-2.58v-2.16c-2.02.64-3.5 2.51-3.5 4.74 0 2.76 2.24 5 5 5s5-2.24 5-5h-2zm3.04-3H15V8h-2v8h5.46l2.47 3.71 1.66-1.11-3.05-4.6z\"}}]})(props);\n};\nexport function MdBathroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-3H7v-1c0-2.76 2.24-5 5-5s5 2.24 5 5v1z\"}}]})(props);\n};\nexport function MdBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10.78V8c0-1.65-1.35-3-3-3h-4c-.77 0-1.47.3-2 .78-.53-.48-1.23-.78-2-.78H6C4.35 5 3 6.35 3 8v2.78c-.61.55-1 1.34-1 2.22v6h2v-2h16v2h2v-6c0-.88-.39-1.67-1-2.22zM14 7h4c.55 0 1 .45 1 1v2h-6V8c0-.55.45-1 1-1zM5 8c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v2H5V8zm-1 7v-2c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v2H4z\"}}]})(props);\n};\nexport function MdBedroomBaby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 16c-2.64 0-5.13-1.03-7-2.9l1.06-1.06c.34.34.71.65 1.1.92L8 13.5V9.51l-1.55.99-.95-1L7 7.76 6 7h3.65l1.73 3H17v1h-1v2.5l.84 1.46c.39-.28.76-.58 1.1-.92L19 15.1a9.842 9.842 0 01-7 2.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.69 14.24a7.72 7.72 0 01-5.4 0l-.81 1.41-.03.06c1.1.52 2.28.79 3.53.79s2.45-.28 3.55-.79l-.03-.06-.81-1.41z\"}}]})(props);\n};\nexport function MdBedroomChild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 8.5h6v2H9zM15.64 12H8.37a.87.87 0 00-.87.87h.01V14h9v-1.13a.87.87 0 00-.87-.87z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 15h-1.5v-1.5h-9V17H6v-4.13c0-1 .62-1.85 1.5-2.2V9c0-1.1.9-2 2-2h5c1.1 0 2 .9 2 2v1.67c.88.35 1.5 1.2 1.5 2.2V17z\"}}]})(props);\n};\nexport function MdBedroomParent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 12h-9c-.55 0-1 .45-1 1v1h11v-1c0-.55-.45-1-1-1zM7.25 8.5h4v2h-4zM12.75 8.5h4v2h-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 15h-1.5v-1.5h-11V17H5v-3.83c0-.66.25-1.26.65-1.72V9c0-1.1.9-2 2-2H11c.37 0 .72.12 1 .32.28-.2.63-.32 1-.32h3.35c1.1 0 2 .9 2 2v2.45c.4.46.65 1.06.65 1.72V17z\"}}]})(props);\n};\nexport function MdBlender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.13 15.13L18 3h-4V2h-4v1H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h2.23l.64 4.13C6.74 16.05 6 17.43 6 19v1c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-1c0-1.57-.74-2.95-1.87-3.87zM5 9V5h1.31l.62 4H5zm7 10c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2.29-5H9.72L8.33 5h7.34l-1.38 9z\"}}]})(props);\n};\nexport function MdCameraIndoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L4 9v12h16V9l-8-6zm4 13.06L14 15v1c0 .55-.45 1-1 1H9c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1l2-1.06v4.12z\"}}]})(props);\n};\nexport function MdCameraOutdoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1l2 1.06v-4.12L18 14v-1zM12 3L4 9v12h16v-2H6v-9l6-4.5 6 4.5v1h2V9l-8-6z\"}}]})(props);\n};\nexport function MdChairAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h1v2H7c-1.1 0-2 .9-2 2v7h2v-3h10v3h2v-7c0-1.1-.9-2-2-2h-1v-2h1zM7 8V5h10v3H7zm10 8H7v-2h10v2zm-3-4h-4v-2h4v2z\"}}]})(props);\n};\nexport function MdChair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11v2h10v-2c0-1.86 1.28-3.41 3-3.86V6c0-1.65-1.35-3-3-3H7C5.35 3 4 4.35 4 6v1.14c1.72.45 3 2 3 3.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9c-1.1 0-2 .9-2 2v4H5v-4c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.65 1.35 3 3 3v1c0 .55.45 1 1 1s1-.45 1-1v-1h12v1c0 .55.45 1 1 1s1-.45 1-1v-1c1.65 0 3-1.35 3-3v-5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdCoffeeMaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6V4h2V2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14v-2h-4.03A4.966 4.966 0 0018 16v-5H8v5c0 1.64.81 3.09 2.03 4H6V4h2v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"9\",\"r\":\"1\"}}]})(props);\n};\nexport function MdCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 3H6c-1.1 0-2 .9-2 2v5.71c0 3.83 2.95 7.18 6.78 7.29 3.96.12 7.22-3.06 7.22-7v-1h.5c1.93 0 3.5-1.57 3.5-3.5S20.43 3 18.5 3zM16 5v3H6V5h10zm2.5 3H18V5h.5c.83 0 1.5.67 1.5 1.5S19.33 8 18.5 8zM4 19h16v2H4v-2z\"}}]})(props);\n};\nexport function MdDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-9 8.3c0 .93-.64 1.71-1.5 1.93V19H8v-6.77c-.86-.22-1.5-1-1.5-1.93V6.5c0-.28.22-.5.5-.5s.5.22.5.5V9h.75V6.5c0-.28.22-.5.5-.5s.5.22.5.5V9H10V6.5c0-.28.23-.5.5-.5.28 0 .5.22.5.5v3.8zm4.58 2.29l-.08.03V19H14v-6.38l-.08-.04c-.97-.47-1.67-1.7-1.67-3.18 0-1.88 1.13-3.4 2.5-3.4 1.38 0 2.5 1.53 2.5 3.41 0 1.48-.7 2.71-1.67 3.18z\"}}]})(props);\n};\nexport function MdDoorBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v14H3v2h18v-2h-2zm-8-6H9v-2h2v2z\"}}]})(props);\n};\nexport function MdDoorFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v14H3v2h18v-2h-2zm-4-6h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdDoorSliding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 19V5c0-1.1-.9-2-2-2h-5.25v16h-1.5V3H6c-1.1 0-2 .9-2 2v14H3v2h18v-2h-1zm-10-6H8v-2h2v2zm6 0h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdDoorbell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L4 9v12h16V9l-8-6zm0 14.5c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1zm4-1.5H8v-1h1v-2.34c0-1.54.82-2.82 2.25-3.16v-.25c0-.41.34-.75.75-.75s.75.34.75.75v.25c1.44.34 2.25 1.62 2.25 3.16V15h1v1z\"}}]})(props);\n};\nexport function MdFeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8l-5-5zM7 7h5v2H7V7zm10 10H7v-2h10v2zm0-4H7v-2h10v2zm-2-4V5l4 4h-4z\"}}]})(props);\n};\nexport function MdFlatware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7.08c0 1.77-.84 3.25-2 3.82V21h-2V10.9c-1.16-.57-2-2.05-2-3.82C10.01 4.83 11.35 3 13 3c1.66 0 3 1.83 3 4.08zM17 3v18h2v-8h2V7c0-1.76-1.24-4-4-4zM8.28 3c-.4 0-.72.32-.72.72V7h-.84V3.72C6.72 3.32 6.4 3 6 3s-.72.32-.72.72V7h-.84V3.72c0-.4-.32-.72-.72-.72S3 3.32 3 3.72V9c0 1.1.9 2 2 2v10h2V11c1.1 0 2-.9 2-2V3.72c0-.4-.32-.72-.72-.72z\"}}]})(props);\n};\nexport function MdGarage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.33 7.5l-.66 2h8.66l-.66-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 15.69c0 .45-.35.81-.78.81h-.44c-.44 0-.78-.36-.78-.81V16.5H7v1.19c0 .45-.35.81-.78.81h-.44c-.43 0-.78-.36-.78-.81v-6.5c.82-2.47 1.34-4.03 1.56-4.69.05-.16.12-.29.19-.4.02-.02.03-.04.05-.06.38-.53.92-.54.92-.54h8.56s.54.01.92.53c.02.03.03.05.05.07.07.11.14.24.19.4.22.66.74 2.23 1.56 4.69v6.5z\"}}]})(props);\n};\nexport function MdLight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6.06V3h-2v3.06c-4.5.5-8 4.31-8 8.93C3 16.1 3.9 17 5.01 17H8c0 2.21 1.79 4 4 4s4-1.79 4-4h2.99c1.11 0 2.01-.9 2.01-2.01 0-4.62-3.5-8.43-8-8.93zM12 15H5c0-3.86 3.14-7 7-7s7 3.14 7 7h-7z\"}}]})(props);\n};\nexport function MdLiving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 11.5c-.55 0-1 .45-1 1v2h-7v-2c0-.55-.45-1-1-1s-1 .45-1 1V16c0 .28.22.5.5.5h10c.28 0 .5-.22.5-.5v-3.5c0-.55-.45-1-1-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12.5v.5h4v-.5c0-1.3.99-2.35 2.25-2.47V9c0-.83-.67-1.5-1.5-1.5h-5.5c-.83 0-1.5.67-1.5 1.5v1.03A2.48 2.48 0 0110 12.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 14c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2v-3.5c0-.92.51-1.72 1.25-2.15V9c0-1.66 1.34-3 3-3h5.5c1.66 0 3 1.34 3 3v1.35c.74.43 1.25 1.23 1.25 2.15V16z\"}}]})(props);\n};\nexport function MdManageSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9H2V7h5v2zm0 3H2v2h5v-2zm13.59 7l-3.83-3.83c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L22 17.59 20.59 19zM17 11c0-1.65-1.35-3-3-3s-3 1.35-3 3 1.35 3 3 3 3-1.35 3-3zM2 19h10v-2H2v2z\"}}]})(props);\n};\nexport function MdPodcasts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12c0 .74-.4 1.38-1 1.72V22h-2v-8.28c-.6-.35-1-.98-1-1.72 0-1.1.9-2 2-2s2 .9 2 2zm-2-6c-3.31 0-6 2.69-6 6 0 1.74.75 3.31 1.94 4.4l1.42-1.42A3.957 3.957 0 018 12c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.19-.53 2.25-1.36 2.98l1.42 1.42A5.957 5.957 0 0018 12c0-3.31-2.69-6-6-6zm0-4C6.48 2 2 6.48 2 12c0 2.85 1.2 5.41 3.11 7.24l1.42-1.42A7.987 7.987 0 014 12c0-4.41 3.59-8 8-8s8 3.59 8 8c0 2.29-.98 4.36-2.53 5.82l1.42 1.42C20.8 17.41 22 14.85 22 12c0-5.52-4.48-10-10-10z\"}}]})(props);\n};\nexport function MdShower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"17\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"17\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"17\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5.08V3h-2v2.08C7.61 5.57 5 8.47 5 12v2h14v-2c0-3.53-2.61-6.43-6-6.92z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"20\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"20\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"20\",\"r\":\"1\"}}]})(props);\n};\nexport function MdWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 9h-7V4h7v7zm-9-7v7H4V4h7zm-7 9h7v7H4v-7zm9 7v-7h7v7h-7z\"}}]})(props);\n};\nexport function MdYard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 8.22a1.562 1.562 0 012.45-1.28l-.01-.12c0-.86.7-1.56 1.56-1.56s1.56.7 1.56 1.56l-.01.12A1.562 1.562 0 0116 8.22c0 .62-.37 1.16-.89 1.4.52.25.89.79.89 1.41 0 .86-.7 1.56-1.56 1.56-.33 0-.64-.11-.89-.28l.01.12c0 .86-.7 1.56-1.56 1.56s-1.56-.7-1.56-1.56l.01-.12A1.562 1.562 0 018 11.03c0-.62.37-1.16.89-1.4C8.37 9.38 8 8.84 8 8.22zM12 19c-3.31 0-6-2.69-6-6 3.31 0 6 2.69 6 6 0-3.31 2.69-6 6-6 0 3.31-2.69 6-6 6z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"9.62\",\"r\":\"1.56\"}}]})(props);\n};\nexport function Md6FtApart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 00-5.56 0A2.01 2.01 0 002 9.43V10h8v-.57zM18 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 00-5.56 0A2.01 2.01 0 0014 9.43V10h8v-.57zM19 17v-2.01L5 15v2l-3-3 3-3v2.01L19 13v-2l3 3-3 3zm-9 2v-1H7.5c-.28 0-.5.22-.5.5v3c0 .28.22.5.5.5h2c.28 0 .5-.22.5-.5V20c0-.28-.22-.5-.5-.5H8V19h2zm-1 1.5v.5H8v-.5h1zm8.5-1.5h-1v3h-1v-3h-1v-1h3v1zm-5 0v.5h1v1h-1V22h-1v-4H14v1h-1.5z\"}}]})(props);\n};\nexport function MdAddModerator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.22 22.61c-.4.15-.8.29-1.22.39-5.16-1.26-9-6.45-9-12V5l9-4 9 4v6c0 .9-.11 1.78-.3 2.65-.81-.41-1.73-.65-2.7-.65-3.31 0-6 2.69-6 6 0 1.36.46 2.61 1.22 3.61zM19 20v2.99s-1.99.01-2 0V20h-3v-2h3v-3h2v3h3v2h-3z\"}}]})(props);\n};\nexport function MdAddReaction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9V7h-2V2.84A9.929 9.929 0 0011.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12c0-1.05-.17-2.05-.47-3H18zm-2.5-1c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm-7 0c.83 0 1.5.67 1.5 1.5S9.33 11 8.5 11 7 10.33 7 9.5 7.67 8 8.5 8zm3.5 9.5c-2.33 0-4.31-1.46-5.11-3.5h10.22c-.8 2.04-2.78 3.5-5.11 3.5zM22 3h2v2h-2v2h-2V5h-2V3h2V1h2v2z\"}}]})(props);\n};\nexport function MdArchitecture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.36 18.78L6.61 21l1.62-1.54 2.77-7.6c-.68-.17-1.28-.51-1.77-.98l-2.87 7.9zM14.77 10.88c-.49.47-1.1.81-1.77.98l2.77 7.6L17.39 21l.26-2.22-2.88-7.9zM15 8c0-1.3-.84-2.4-2-2.82V3h-2v2.18C9.84 5.6 9 6.7 9 8c0 1.66 1.34 3 3 3s3-1.34 3-3zm-3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdBackHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 24c-3.26 0-6.19-1.99-7.4-5.02l-3.03-7.61a1 1 0 011.24-1.32l.79.26c.56.18 1.02.61 1.24 1.16L7.25 15H8V3.25a1.25 1.25 0 012.5 0V12h1V1.25a1.25 1.25 0 012.5 0V12h1V2.75a1.25 1.25 0 012.5 0V12h1V5.75a1.25 1.25 0 012.5 0V16c0 4.42-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdCake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6a2 2 0 002-2c0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99l-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z\"}}]})(props);\n};\nexport function MdCatchingPokemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 12a2.5 2.5 0 01-5 0 2.5 2.5 0 015 0zm7.5 0c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2s10 4.48 10 10zm-2 0h-4c0-2.21-1.79-4-4-4s-4 1.79-4 4H4c0 4.41 3.59 8 8 8s8-3.59 8-8z\"}}]})(props);\n};\nexport function MdCleanHands (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.99 5l.63 1.37 1.37.63-1.37.63L16.99 9l-.63-1.37L14.99 7l1.37-.63.63-1.37M11 6.13V4h2c.57 0 1.1.17 1.55.45l1.43-1.43A4.899 4.899 0 0013 2H7.5v2H9v2.14A5.007 5.007 0 005.26 9.5h3.98L15 11.65v-.62a5 5 0 00-4-4.9zM1 22h4V11H1v11zm19-5h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8-3c-.01-1.1-.89-2-2-2zm0-3c1.1 0 2-.9 2-2s-2-4-2-4-2 2.9-2 4 .9 2 2 2z\"}}]})(props);\n};\nexport function MdCompost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.87 11.81A2.5 2.5 0 0115 8h1c1.51 0 2-1 2-1s.55 6-3 6c-.49 0-.94-.14-1.32-.38-.24.64-.59 1.76-.76 2.96 1.26.22 2.28.89 2.77 1.77A6.505 6.505 0 0018.5 12h3c0 5.24-4.26 9.5-9.5 9.5S2.5 17.24 2.5 12 6.76 2.5 12 2.5V0l4 4-4 4V5.5c-3.58 0-6.5 2.92-6.5 6.5 0 2.21 1.11 4.17 2.81 5.35.51-.92 1.63-1.62 2.98-1.8-.09-.69-.26-1.42-.49-2.03-.35.3-.8.48-1.3.48-1.1 0-2-.9-2-2v-.99c0-.56-.19-1.09-.5-1.51 0 0 4.45-.23 4.5 2.5 0 .29-.06.56-.17.8-.42-.32-.86-.6-1.33-.8.58.43 1.37 1.37 2 2.6.67-1.62 1.68-3.27 3-4.6-.76.52-1.47 1.12-2.13 1.81z\"}}]})(props);\n};\nexport function MdConnectWithoutContact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14H9a9 9 0 019-9v2c-3.87 0-7 3.13-7 7zm7-3V9c-2.76 0-5 2.24-5 5h2c0-1.66 1.34-3 3-3zM7 4c0-1.11-.89-2-2-2s-2 .89-2 2 .89 2 2 2 2-.89 2-2zm4.45.5h-2A2.99 2.99 0 016.5 7h-3C2.67 7 2 7.67 2 8.5V11h6V8.74a4.97 4.97 0 003.45-4.24zM19 17c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm1.5 1h-3a2.99 2.99 0 01-2.95-2.5h-2A4.97 4.97 0 0016 19.74V22h6v-2.5c0-.83-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdConstruction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.783 15.172l2.121-2.121 5.996 5.996-2.121 2.121zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49a3 3 0 00-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21z\"}}]})(props);\n};\nexport function MdCoronavirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.25 10.5c-.41 0-.75.34-.75.75h-1.54a6.978 6.978 0 00-1.52-3.65l1.09-1.09.01.01c.29.29.77.29 1.06 0s.29-.77 0-1.06L18.54 4.4a.754.754 0 00-1.06 0c-.29.29-.29.76-.01 1.05l-1.09 1.09a7.015 7.015 0 00-3.64-1.51V3.5h.01c.41 0 .75-.34.75-.75S13.16 2 12.75 2h-1.5c-.41 0-.75.34-.75.75s.33.74.74.75v1.55c-1.37.14-2.62.69-3.64 1.51L6.51 5.47l.01-.01c.29-.29.29-.77 0-1.06a.754.754 0 00-1.06 0L4.4 5.46c-.29.29-.29.77 0 1.06.29.29.76.29 1.05.01l1.09 1.09a6.89 6.89 0 00-1.5 3.63H3.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.5c0 .41.34.75.75.75s.75-.34.75-.75h1.54c.15 1.37.69 2.61 1.5 3.63l-1.09 1.09a.742.742 0 00-1.05.01c-.29.29-.29.77 0 1.06l1.06 1.06c.29.29.77.29 1.06 0 .29-.29.29-.77 0-1.06l-.01-.01 1.09-1.09c1.02.82 2.26 1.36 3.63 1.51v1.55c-.41.01-.74.34-.74.75s.34.75.75.75h1.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75h-.01v-1.54c1.37-.14 2.62-.69 3.64-1.51l1.09 1.09c-.29.29-.28.76.01 1.05.29.29.77.29 1.06 0l1.06-1.06c.29-.29.29-.77 0-1.06a.754.754 0 00-1.06 0l-.01.01-1.09-1.09a7.025 7.025 0 001.52-3.65h1.54c0 .41.34.75.75.75s.75-.34.75-.75v-1.5c.01-.4-.33-.74-.74-.74zM13.75 8c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM12 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1.75-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM8.5 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm1.75 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3.5 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm.75-4c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1z\"}}]})(props);\n};\nexport function MdCrueltyFree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.84 14.52c-.26-.19-.62-.63-.79-.84C17.24 12.01 19 8.87 19 5c0-1.95-.74-3-2-3-1.54 0-3.96 2.06-5 5.97C10.96 4.06 8.54 2 7 2 5.74 2 5 3.05 5 5c0 3.87 1.76 7.01 2.95 8.68-.17.21-.53.65-.79.84-.5.41-1.66 1.37-1.66 2.98 0 2.21 1.79 4 4 4 1.55 0 2.5-.56 2.5-.56s.95.56 2.5.56c2.21 0 4-1.79 4-4 0-1.61-1.16-2.57-1.66-2.98zM9.35 12.2C8.34 10.7 7 8.12 7 5c0-.49.06-.8.12-.97.94.31 3.24 2.71 3.38 7.64-.47.12-.84.3-1.15.53zm1.15 4.55c-.28 0-.5-.34-.5-.75s.22-.75.5-.75.5.34.5.75-.22.75-.5.75zM12 19.5c-.55 0-1-.72-1-1s.45-.5 1-.5 1 .22 1 .5-.45 1-1 1zm1.5-2.75c-.28 0-.5-.34-.5-.75s.22-.75.5-.75.5.34.5.75-.22.75-.5.75zm0-5.08c.14-4.93 2.44-7.33 3.38-7.64.06.17.12.48.12.97 0 3.12-1.34 5.7-2.35 7.2-.31-.23-.68-.41-1.15-.53z\"}}]})(props);\n};\nexport function MdDeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9L12 2 2 9h9v13h2V9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.14 12l-1.96.37.82 4.37V22h2l.02-4H7v4h2v-6H4.9zM19.1 16H15v6h2v-4h1.98l.02 4h2v-5.26l.82-4.37-1.96-.37z\"}}]})(props);\n};\nexport function MdDomain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\"}}]})(props);\n};\nexport function MdDownhillSkiing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 4.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2.72 16.4l.76.27a5.933 5.933 0 004.34-.17L22 22.13c-1.05.55-2.24.87-3.5.87-.86 0-1.68-.14-2.45-.41L2 17.47l.5-1.41 6.9 2.51 1.72-4.44-3.57-3.73c-.89-.94-.67-2.47.45-3.12l3.48-2.01c1.1-.64 2.52-.1 2.91 1.11l.33 1.08a5.017 5.017 0 002.83 3.14l.52-1.6 1.43.46-1.12 3.45A7.029 7.029 0 0113 8.59l-2.53 1.45 3.03 3.46-2.22 5.76 3.09 1.12 2.1-6.44c.46.18.94.31 1.44.41l-2.13 6.55z\"}}]})(props);\n};\nexport function MdEditNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.58 6.25l1.77 1.77L14.37 13H12.6v-1.77l4.98-4.98zm3.27-.44l-1.06-1.06c-.2-.2-.51-.2-.71 0l-.85.85L20 7.37l.85-.85c.2-.2.2-.52 0-.71zM18 12.2V17h2v2H4v-2h2v-7c0-2.79 1.91-5.14 4.5-5.8v-.7c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.7c.82.21 1.57.59 2.21 1.09L10.6 10.4V15h4.6l2.8-2.8zM10 20h4c0 1.1-.9 2-2 2s-2-.9-2-2z\"}}]})(props);\n};\nexport function MdElderly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6.5 7V23h-1V12.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5v1h-1v-.69a6.02 6.02 0 01-3.51-2.52c-.31.87-.49 1.78-.49 2.71 0 .23.02.46.03.69L15 16.5V23h-2v-5l-1.78-2.54L11 19l-3 4-1.6-1.2L9 18.33V13c0-1.15.18-2.29.5-3.39l-1.5.85V14H6V9.3l5.4-3.07v.01a2 2 0 011.94.03c.36.21.63.51.8.85l.79 1.67A3.987 3.987 0 0018.5 11c.83 0 1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdEmojiEmotions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM8.5 8c.83 0 1.5.67 1.5 1.5S9.33 11 8.5 11 7 10.33 7 9.5 7.67 8 8.5 8zM12 18c-2.28 0-4.22-1.66-5-4h10c-.78 2.34-2.72 4-5 4zm3.5-7c-.83 0-1.5-.67-1.5-1.5S14.67 8 15.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdEmojiEvents (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94A5.01 5.01 0 0011 15.9V19H7v2h10v-2h-4v-3.1a5.01 5.01 0 003.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2zM5 8V7h2v3.82C5.84 10.4 5 9.3 5 8zm14 0c0 1.3-.84 2.4-2 2.82V7h2v1z\"}}]})(props);\n};\nexport function MdEmojiFlags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9l-1-2H7V5.72c.6-.34 1-.98 1-1.72 0-1.1-.9-2-2-2s-2 .9-2 2c0 .74.4 1.38 1 1.72V21h2v-4h5l1 2h7V9h-6zm4 8h-4l-1-2H7V9h5l1 2h5v6z\"}}]})(props);\n};\nexport function MdEmojiFoodBeverage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H9v2.4l1.81 1.45c.12.09.19.24.19.39v4.26c0 .28-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5V7.24c0-.15.07-.3.19-.39L8 5.4V3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 002-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z\"}}]})(props);\n};\nexport function MdEmojiNature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.94 4.88A1.32 1.32 0 0020.68 4H19.6l-.31-.97C19.15 2.43 18.61 2 18 2s-1.15.43-1.29 1.04L16.4 4h-1.07c-.57 0-1.08.35-1.26.88-.19.56.04 1.17.56 1.48l.87.52-.4 1.24c-.23.58-.04 1.25.45 1.62.23.17.51.26.78.26.31 0 .61-.11.86-.32l.81-.7.81.7c.25.21.55.32.86.32.27 0 .55-.09.78-.26.5-.37.68-1.04.45-1.62l-.39-1.24.87-.52c.51-.31.74-.92.56-1.48zM18 7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM13.49 10.51c-.43-.43-.94-.73-1.49-.93V8h-1v1.38c-.11-.01-.23-.03-.34-.03-1.02 0-2.05.39-2.83 1.17-.16.16-.3.34-.43.53L6 10.52a3.01 3.01 0 00-3.83 1.82c-.27.75-.23 1.57.12 2.29.23.48.58.87 1 1.16-.38 1.35-.06 2.85 1 3.91a3.981 3.981 0 003.91 1c.29.42.68.77 1.16 1 .42.2.85.3 1.29.3.34 0 .68-.06 1.01-.17a3.007 3.007 0 001.82-3.85l-.52-1.37c.18-.13.36-.27.53-.43.87-.87 1.24-2.04 1.14-3.17H16v-1h-1.59c-.19-.55-.49-1.06-.92-1.5zm-8.82 3.78c-.25-.09-.45-.27-.57-.51s-.13-.51-.04-.76c.19-.52.76-.79 1.26-.61l3.16 1.19c-1.15.6-2.63 1.11-3.81.69zm6.32 5.65c-.25.09-.52.08-.76-.04a.989.989 0 01-.51-.57c-.42-1.18.09-2.65.7-3.8l1.18 3.13c.18.52-.09 1.1-.61 1.28zm1.21-5.34l-.61-1.61c0-.01-.01-.02-.02-.03l-.06-.12a.673.673 0 00-.07-.11l-.09-.09-.09-.09c-.03-.03-.07-.05-.11-.07-.04-.02-.07-.05-.12-.06-.01 0-.02-.01-.03-.02l-1.6-.6a1.966 1.966 0 012.67.13c.73.73.77 1.88.13 2.67z\"}}]})(props);\n};\nexport function MdEmojiObjects (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3c-.46 0-.93.04-1.4.14-2.76.53-4.96 2.76-5.48 5.52-.48 2.61.48 5.01 2.22 6.56.43.38.66.91.66 1.47V19c0 1.1.9 2 2 2h.28a1.98 1.98 0 003.44 0H14c1.1 0 2-.9 2-2v-2.31c0-.55.22-1.09.64-1.46A6.956 6.956 0 0019 10c0-3.87-3.13-7-7-7zm2 16h-4v-1h4v1zm0-2h-4v-1h4v1zm-1.5-5.59V14h-1v-2.59L9.67 9.59l.71-.71L12 10.5l1.62-1.62.71.71-1.83 1.82z\"}}]})(props);\n};\nexport function MdEmojiPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.89 8.11C15.5 7.72 14.83 7 13.53 7h-2.54C8.24 6.99 6 4.75 6 2H4c0 3.16 2.11 5.84 5 6.71V22h2v-6h2v6h2V10.05L18.95 14l1.41-1.41-4.47-4.48z\"}}]})(props);\n};\nexport function MdEmojiSymbols (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2h8v2H3zM6 11h2V7h3V5H3v2h3zM12.404 20.182l7.778-7.778 1.414 1.414-7.778 7.778z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 11A2.5 2.5 0 0018 8.5V4h3V2h-4v4.51c-.42-.32-.93-.51-1.5-.51a2.5 2.5 0 000 5zM9.74 15.96l-1.41 1.41-.71-.71.35-.35a2.499 2.499 0 00-1.77-4.27 2.499 2.499 0 00-1.77 4.27l.35.35-1.06 1.06c-.98.98-.98 2.56 0 3.54.5.5 1.14.74 1.78.74s1.28-.24 1.77-.73l1.06-1.06 1.41 1.41 1.41-1.41-1.41-1.41 1.41-1.41-1.41-1.43zM5.85 14.2c.12-.12.26-.15.35-.15s.23.03.35.15c.19.2.19.51 0 .71l-.35.35-.35-.36a.501.501 0 010-.7zm0 5.65c-.12.12-.26.15-.35.15s-.23-.03-.35-.15a.513.513 0 010-.71l1.06-1.06.71.71-1.07 1.06z\"}}]})(props);\n};\nexport function MdEmojiTransportation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.57 10.66c-.14-.4-.52-.66-.97-.66h-7.19c-.46 0-.83.26-.98.66L10 14.77l.01 5.51c0 .38.31.72.69.72h.62c.38 0 .68-.38.68-.76V19h8v1.24c0 .38.31.76.69.76h.61c.38 0 .69-.34.69-.72l.01-1.37v-4.14l-1.43-4.11zm-8.16.34h7.19l1.03 3h-9.25l1.03-3zM12 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9h1V3H7v5H2v13h1V9h5V4h6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 11h2v2H5zM10 5h2v2h-2zM5 15h2v2H5zM5 19h2v2H5z\"}}]})(props);\n};\nexport function MdEngineering (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zM22.1 6.84c.01-.11.02-.22.02-.34 0-.12-.01-.23-.03-.34l.74-.58c.07-.05.08-.15.04-.22l-.7-1.21c-.04-.08-.14-.1-.21-.08l-.86.35c-.18-.14-.38-.25-.59-.34l-.13-.93A.182.182 0 0020.2 3h-1.4c-.09 0-.16.06-.17.15l-.13.93c-.21.09-.41.21-.59.34l-.87-.35c-.08-.03-.17 0-.21.08l-.7 1.21c-.04.08-.03.17.04.22l.74.58a1.953 1.953 0 000 .68l-.74.58c-.07.05-.08.15-.04.22l.7 1.21c.04.08.14.1.21.08l.87-.35c.18.14.38.25.59.34l.13.93c.01.09.08.15.17.15h1.4c.09 0 .16-.06.17-.15l.13-.93c.21-.09.41-.21.59-.34l.87.35c.08.03.17 0 .21-.08l.7-1.21c.04-.08.03-.17-.04-.22l-.73-.58zm-2.6.91a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zM19.92 11.68l-.5-.87c-.03-.06-.1-.08-.15-.06l-.62.25c-.13-.1-.27-.18-.42-.24l-.09-.66A.15.15 0 0018 10h-1c-.06 0-.11.04-.12.11l-.09.66c-.15.06-.29.15-.42.24l-.62-.25c-.06-.02-.12 0-.15.06l-.5.87c-.03.06-.02.12.03.16l.53.41c-.01.08-.02.16-.02.24 0 .08.01.17.02.24l-.53.41c-.05.04-.06.11-.03.16l.5.87c.03.06.1.08.15.06l.62-.25c.13.1.27.18.42.24l.09.66c.01.07.06.11.12.11h1c.06 0 .12-.04.12-.11l.09-.66c.15-.06.29-.15.42-.24l.62.25c.06.02.12 0 .15-.06l.5-.87c.03-.06.02-.12-.03-.16l-.52-.41c.01-.08.02-.16.02-.24 0-.08-.01-.17-.02-.24l.53-.41c.05-.04.06-.11.04-.17zm-2.42 1.65c-.46 0-.83-.38-.83-.83 0-.46.38-.83.83-.83s.83.38.83.83c0 .46-.37.83-.83.83zM4.74 9h8.53c.27 0 .49-.22.49-.49v-.02a.49.49 0 00-.49-.49H13c0-1.48-.81-2.75-2-3.45v.95c0 .28-.22.5-.5.5s-.5-.22-.5-.5V4.14C9.68 4.06 9.35 4 9 4s-.68.06-1 .14V5.5c0 .28-.22.5-.5.5S7 5.78 7 5.5v-.95C5.81 5.25 5 6.52 5 8h-.26a.49.49 0 00-.49.49v.03c0 .26.22.48.49.48zM9 13c1.86 0 3.41-1.28 3.86-3H5.14c.45 1.72 2 3 3.86 3z\"}}]})(props);\n};\nexport function MdFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95z\"}}]})(props);\n};\nexport function MdFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 9.5C17.5 6.46 15.04 4 12 4S6.5 6.46 6.5 9.5c0 2.7 1.94 4.93 4.5 5.4V17H9v2h2v2h2v-2h2v-2h-2v-2.1c2.56-.47 4.5-2.7 4.5-5.4zm-9 0C8.5 7.57 10.07 6 12 6s3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5z\"}}]})(props);\n};\nexport function MdFireplace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2v20h20V2H2zm9.86 14.96c.76-.24 1.4-1.04 1.53-1.63.13-.56-.1-1.05-.2-1.6-.08-.46-.07-.85.08-1.28.54 1.21 2.15 1.64 1.98 3.18-.19 1.7-2.11 2.38-3.39 1.33zM20 20h-2v-2h-2.02A4.98 4.98 0 0017 15c0-1.89-1.09-2.85-1.85-3.37C12.2 9.61 13 7 13 7c-6.73 3.57-6.02 7.47-6 8 .03.96.49 2.07 1.23 3H6v2H4V4h16v16z\"}}]})(props);\n};\nexport function MdFollowTheSigns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5.75 8.9L3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6c-.25 0-.5.05-.75.15L2 8.3V13h2V9.65l1.75-.75M13 2v7h3.75v14h1.5V9H22V2h-9zm5.01 6V6.25H14.5v-1.5h3.51V3l2.49 2.5L18.01 8z\"}}]})(props);\n};\nexport function MdFrontHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.75 8c-.69 0-1.25.56-1.25 1.25V15H18c-1.65 0-3 1.35-3 3h-1c0-2.04 1.53-3.72 3.5-3.97V3.25a1.25 1.25 0 00-2.5 0V11h-1V1.25a1.25 1.25 0 00-2.5 0V11h-1V2.75a1.25 1.25 0 00-2.5 0V12H7V5.75a1.25 1.25 0 00-2.5 0v10c0 4.56 3.69 8.25 8.25 8.25S21 20.31 21 15.75v-6.5C21 8.56 20.44 8 19.75 8z\"}}]})(props);\n};\nexport function MdGroupAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10H5V7H3v3H0v2h3v3h2v-3h3v-2zm10 1c1.66 0 2.99-1.34 2.99-3S19.66 5 18 5c-.32 0-.63.05-.91.14.57.81.9 1.79.9 2.86s-.34 2.04-.9 2.86c.28.09.59.14.91.14zm-5 0c1.66 0 2.99-1.34 2.99-3S14.66 5 13 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm6.62 2.16c.83.73 1.38 1.66 1.38 2.84v2h3v-2c0-1.54-2.37-2.49-4.38-2.84zM13 13c-2 0-6 1-6 3v2h12v-2c0-2-4-3-6-3z\"}}]})(props);\n};\nexport function MdGroupOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8c0-1.42-.5-2.73-1.33-3.76.42-.14.86-.24 1.33-.24 2.21 0 4 1.79 4 4s-1.79 4-4 4h-.18l-.77-.77c.6-.94.95-2.05.95-3.23zm7.83 12H23v-3c0-2.18-3.58-3.47-6.34-3.87 1.1.75 1.95 1.71 2.23 2.94L22.83 20zM7.24 4.41a3.996 3.996 0 015.35 5.35L7.24 4.41zM9.17 12H9c-2.21 0-4-1.79-4-4v-.17L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41L17 19.83V20H1v-3c0-2.66 5.33-4 8-4 .37 0 .8.03 1.25.08L9.17 12z\"}}]})(props);\n};\nexport function MdGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\"}}]})(props);\n};\nexport function MdGroups (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.75c1.63 0 3.07.39 4.24.9 1.08.48 1.76 1.56 1.76 2.73V18H6v-1.61c0-1.18.68-2.26 1.76-2.73 1.17-.52 2.61-.91 4.24-.91zM4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58A2.01 2.01 0 000 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85A6.95 6.95 0 0020 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zM12 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z\"}}]})(props);\n};\nexport function MdHealthAndSafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 13H8v-3h2.5V7.5h3V10H16v3h-2.5v2.5h-3V13zM12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3z\"}}]})(props);\n};\nexport function MdHiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 5.28c-1.23-.37-2.22-1.17-2.8-2.18l-1-1.6c-.41-.65-1.11-1-1.84-1-.78 0-1.59.5-1.78 1.44S7 23 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3c1 1.15 2.41 2.01 4 2.34V23H19V9h-1.5v1.78zM7.43 13.13l-2.12-.41a.999.999 0 01-.79-1.17l.76-3.93a2 2 0 012.34-1.58l1.16.23-1.35 6.86z\"}}]})(props);\n};\nexport function MdHistoryEdu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v1.38c-.83-.33-1.72-.5-2.61-.5-1.79 0-3.58.68-4.95 2.05l3.33 3.33h1.11v1.11c.86.86 1.98 1.31 3.11 1.36V15H6v3c0 1.1.9 2 2 2h10c1.66 0 3-1.34 3-3V4H9zm-1.11 6.41V8.26H5.61L4.57 7.22a5.07 5.07 0 011.82-.34c1.34 0 2.59.52 3.54 1.46l1.41 1.41-.2.2a2.7 2.7 0 01-1.92.8c-.47 0-.93-.12-1.33-.34zM19 17c0 .55-.45 1-1 1s-1-.45-1-1v-2h-6v-2.59c.57-.23 1.1-.57 1.56-1.03l.2-.2L15.59 14H17v-1.41l-6-5.97V6h8v11z\"}}]})(props);\n};\nexport function MdIceSkating (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8.5c0-.28.22-.5.5-.5h2.52L11 7H8.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5H11V3H3v15h3v2H2v2h16c2.76 0 5-2.24 5-5h-2c0 1.66-1.34 3-3 3h-2v-2h3v-2.88c0-2.1-1.55-3.53-3.03-3.88l-2.7-.67c-.87-.22-1.57-.81-1.95-1.57H8.5c-.28 0-.5-.22-.5-.5zM14 20H8v-2h6v2z\"}}]})(props);\n};\nexport function MdIosShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6a2 2 0 01-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3a2 2 0 012 2z\"}}]})(props);\n};\nexport function MdKayaking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 23c-1.03 0-2.06-.25-3-.75-1.89 1-4.11 1-6 0-1.89 1-4.11 1-6 0-.95.5-1.97.75-3 .75H2v-2h1c1.04 0 2.08-.35 3-1 1.83 1.3 4.17 1.3 6 0 1.83 1.3 4.17 1.3 6 0 .91.65 1.96 1 3 1h1v2h-1zM12 5.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 12s-1.52.71-3.93 1.37c-.82-.23-1.53-.75-2.07-1.37-.73.84-1.8 1.5-3 1.5s-2.27-.66-3-1.5c-.73.84-1.8 1.5-3 1.5s-2.27-.66-3-1.5c-.54.61-1.25 1.13-2.07 1.37C1.52 18.21 0 17.5 0 17.5s2.93-1.36 7.13-2.08l1.35-4.17c.31-.95 1.32-1.47 2.27-1.16.09.03.19.07.27.11l2.47 1.3 2.84-1.5 1.65-3.71-.51-1.32L18.8 2 22 3.43 20.67 6.4l-1.31.5-3.72 8.34c4.85.63 8.36 2.26 8.36 2.26zm-8.98-4.54l-1.52.8-1.75-.92-.71 2.17c.32 0 .64-.01.96-.01.71 0 1.4.03 2.07.08l.95-2.12z\"}}]})(props);\n};\nexport function MdKingBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M6 7h5v3H6zM13 7h5v3h-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10V7c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v3c-1.1 0-2 .9-2 2v5h1.33L4 19h1l.67-2h12.67l.66 2h1l.67-2H22v-5c0-1.1-.9-2-2-2zm-9 0H6V7h5v3zm7 0h-5V7h5v3z\"}}]})(props);\n};\nexport function MdKitesurfing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm14.06-2h-2.12L15.5 3.44l1.06 1.06 3.5-3.5zM22 23v-2h-1c-1.04 0-2.08-.35-3-1-1.83 1.3-4.17 1.3-6 0-1.83 1.3-4.17 1.3-6 0-.91.65-1.96 1-3 1H2v2h1c1.03 0 2.05-.25 3-.75 1.89 1 4.11 1 6 0 1.89 1 4.11 1 6 0 .95.5 1.97.75 3 .75h1zm-1-9.72c0 1.44-2.19 3.62-5.04 5.58-.31.09-.63.14-.96.14-1.2 0-2.27-.66-3-1.5-.73.84-1.8 1.5-3 1.5-.94 0-1.81-.41-2.49-.99.46-.39.96-.78 1.49-1.17l-1.55-2.97A4.06 4.06 0 016 12V8c0-1.1.9-2 2-2h3c1.38 0 2.63-.56 3.54-1.46l1.41 1.41A7.018 7.018 0 0111 8H9.6v3.5h2.8l1.69 1.88c1.95-.84 3.77-1.38 5.06-1.38.84 0 1.85.25 1.85 1.28zm-8.8.99l-.7-.77-2.5.1.83 2.01c.59-.38 1.81-1.06 2.37-1.34z\"}}]})(props);\n};\nexport function MdLocationCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdLuggage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v3H7c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2 0 .55.45 1 1 1s1-.45 1-1h6c0 .55.45 1 1 1s1-.45 1-1c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM9.5 18H8V9h1.5v9zm3.25 0h-1.5V9h1.5v9zm.75-12h-3V3.5h3V6zM16 18h-1.5V9H16v9z\"}}]})(props);\n};\nexport function MdMale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 11c1.93 0 3.5 1.57 3.5 3.5S11.43 18 9.5 18 6 16.43 6 14.5 7.57 11 9.5 11zm0-2C6.46 9 4 11.46 4 14.5S6.46 20 9.5 20s5.5-2.46 5.5-5.5c0-1.16-.36-2.23-.97-3.12L18 7.42V10h2V4h-6v2h2.58l-3.97 3.97C11.73 9.36 10.66 9 9.5 9z\"}}]})(props);\n};\nexport function MdMasks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 6c-1.31 0-2.37 1.01-2.48 2.3-1.88-.5-2.84-1.8-5.02-1.8-2.19 0-3.14 1.3-5.02 1.8C6.87 7.02 5.81 6 4.5 6A2.5 2.5 0 002 8.5V9c0 6 3.6 7.81 6.52 7.98C9.53 17.62 10.72 18 12 18s2.47-.38 3.48-1.02C18.4 16.81 22 15 22 9v-.5A2.5 2.5 0 0019.5 6zm-16 3v-.5c0-.55.45-1 1-1s1 .45 1 1v3c0 1.28.38 2.47 1.01 3.48C4.99 14.27 3.5 12.65 3.5 9zm17 0c0 3.65-1.49 5.27-3.01 5.98.64-1.01 1.01-2.2 1.01-3.48v-3c0-.55.45-1 1-1s1 .45 1 1V9zm-9.81 1.48c-.44.26-.96.56-1.69.76V10.2c.48-.17.84-.38 1.18-.58C10.72 9.3 11.23 9 12 9s1.27.3 1.8.62c.34.2.71.42 1.2.59v1.04c-.75-.21-1.26-.51-1.71-.78-.46-.27-.8-.47-1.29-.47s-.84.2-1.31.48z\"}}]})(props);\n};\nexport function MdMilitaryTech (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10.43V2H7v8.43c0 .35.18.68.49.86l4.18 2.51-.99 2.34-3.41.29 2.59 2.24L9.07 22 12 20.23 14.93 22l-.78-3.33 2.59-2.24-3.41-.29-.99-2.34 4.18-2.51c.3-.18.48-.5.48-.86zm-4 1.8l-1 .6-1-.6V3h2v9.23z\"}}]})(props);\n};\nexport function MdMoodBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 3c-2.33 0-4.31 1.46-5.11 3.5h10.22c-.8-2.04-2.78-3.5-5.11-3.5z\"}}]})(props);\n};\nexport function MdMood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"}}]})(props);\n};\nexport function MdNightsStay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.1 12.08c-2.33-4.51-.5-8.48.53-10.07C6.27 2.2 1.98 6.59 1.98 12c0 .14.02.28.02.42.62-.27 1.29-.42 2-.42 1.66 0 3.18.83 4.1 2.15A4.01 4.01 0 0111 18c0 1.52-.87 2.83-2.12 3.51.98.32 2.03.5 3.11.5 3.5 0 6.58-1.8 8.37-4.52-2.36.23-6.98-.97-9.26-5.41z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16h-.18C6.4 14.84 5.3 14 4 14c-1.66 0-3 1.34-3 3s1.34 3 3 3h3c1.1 0 2-.9 2-2s-.9-2-2-2z\"}}]})(props);\n};\nexport function MdNoLuggage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.75 9v.92l1.75 1.75V9H16v4.17l3 3V8c0-1.1-.9-2-2-2h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v3h-.17l3 3h.92zM10.5 3.5h3V6h-3V3.5zm10.69 17.69L2.81 2.81 1.39 4.22l3.63 3.63c0 .05-.02.1-.02.15v11c0 1.1.9 2 2 2 0 .55.45 1 1 1s1-.45 1-1h6c0 .55.45 1 1 1s1-.45 1-1c.34 0 .65-.09.93-.24l1.85 1.85 1.41-1.42zM8 18v-7.17l1.5 1.5V18H8zm4.75 0h-1.5v-3.92l1.5 1.5V18z\"}}]})(props);\n};\nexport function MdNordicWalking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 23h-1.5v-9H19v9zM7.53 14H6l-2 9h1.53l2-9zm5.97-8.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6a2.145 2.145 0 00-2.65-.84L6 8.3V13h2V9.6l1.8-.7z\"}}]})(props);\n};\nexport function MdNotificationAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm4-11c0 2.61 1.67 4.83 4 5.66V17h2v2H4v-2h2v-7c0-2.79 1.91-5.14 4.5-5.8v-.7c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.7c.71.18 1.36.49 1.95.9A5.902 5.902 0 0014 9zm10-1h-3V5h-2v3h-3v2h3v3h2v-3h3V8z\"}}]})(props);\n};\nexport function MdNotificationsActive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.58 4.08L6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2a8.445 8.445 0 013.55-6.42zm12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43a8.495 8.495 0 013.54 6.42zM18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2v-5zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18.1-.24.15-.5.15-.78h-4c.01 1.1.9 2 2.01 2z\"}}]})(props);\n};\nexport function MdNotificationsNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z\"}}]})(props);\n};\nexport function MdNotificationsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18.69L7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z\"}}]})(props);\n};\nexport function MdNotificationsPaused (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 002 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.93 6 11v5l-2 2v1h16v-1l-2-2zm-3.5-6.2l-2.8 3.4h2.8V15h-5v-1.8l2.8-3.4H9.5V8h5v1.8z\"}}]})(props);\n};\nexport function MdNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 002 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z\"}}]})(props);\n};\nexport function MdOutdoorGrill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 22c1.66 0 3-1.34 3-3s-1.34-3-3-3c-1.3 0-2.4.84-2.82 2H9.14l1.99-3.06a6.36 6.36 0 001.74 0l1.02 1.57c.42-.53.96-.95 1.6-1.21l-.6-.93A6.992 6.992 0 0019 8H5c0 2.84 1.69 5.27 4.12 6.37l-3.95 6.08a1 1 0 00.29 1.38 1 1 0 001.38-.29l1-1.55h6.34C14.6 21.16 15.7 22 17 22zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9.41 7h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.77-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.22.24.79.67.45 2.04zM11.89 7h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.78-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.23.24.8.67.45 2.04zM14.41 7h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.77-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.22.24.79.67.45 2.04z\"}}]})(props);\n};\nexport function MdPages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v6h5L7 7l4 1V3H5c-1.1 0-2 .9-2 2zm5 8H3v6c0 1.1.9 2 2 2h6v-5l-4 1 1-4zm9 4l-4-1v5h6c1.1 0 2-.9 2-2v-6h-5l1 4zm2-14h-6v5l4-1-1 4h5V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdParagliding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm-3.48.94C8.04 17.55 7 16.76 7 14H5c0 2.7.93 4.41 2.3 5.5.5.4 1.1.7 1.7.9V24h6v-3.6c.6-.2 1.2-.5 1.7-.9 1.37-1.09 2.3-2.8 2.3-5.5h-2c0 2.76-1.04 3.55-1.52 3.94C14.68 18.54 14 19 12 19s-2.68-.46-3.48-1.06zM12 0C5.92 0 1 1.9 1 4.25v3.49c0 .81.88 1.26 1.56.83.14-.09.28-.18.44-.26L5 13h2l1.5-6.28a27.852 27.852 0 017 0L17 13h2l2-4.69c.16.09.3.17.44.26.68.43 1.56-.02 1.56-.83V4.25C23 1.9 18.08 0 12 0zM5.88 11.24L4.37 7.69c.75-.28 1.6-.52 2.53-.71l-1.02 4.26zm12.24 0L17.1 6.98c.93.19 1.78.43 2.53.71l-1.51 3.55z\"}}]})(props);\n};\nexport function MdPartyMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 3c1.63 0 3.06.79 3.98 2H12c-1.66 0-3 1.34-3 3 0 .35.07.69.18 1H7.1A5.002 5.002 0 0112 7zm0 10c-1.63 0-3.06-.79-3.98-2H12c1.66 0 3-1.34 3-3 0-.35-.07-.69-.18-1h2.08a5.002 5.002 0 01-4.9 6z\"}}]})(props);\n};\nexport function MdPeopleAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M16.67 13.13C18.04 14.06 19 15.32 19 17v3h4v-3c0-2.18-3.57-3.47-6.33-3.87z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"8\",\"r\":\"4\",\"fillRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4c-.47 0-.91.1-1.33.24a5.98 5.98 0 010 7.52c.42.14.86.24 1.33.24zM9 13c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdPeopleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 13c-1.2 0-3.07.34-4.5 1-1.43-.67-3.3-1-4.5-1C5.33 13 1 14.08 1 16.25V19h22v-2.75c0-2.17-4.33-3.25-6.5-3.25zm-4 4.5h-10v-1.25c0-.54 2.56-1.75 5-1.75s5 1.21 5 1.75v1.25zm9 0H14v-1.25c0-.46-.2-.86-.52-1.22.88-.3 1.96-.53 3.02-.53 2.44 0 5 1.21 5 1.75v1.25zM7.5 12c1.93 0 3.5-1.57 3.5-3.5S9.43 5 7.5 5 4 6.57 4 8.5 5.57 12 7.5 12zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 5.5c1.93 0 3.5-1.57 3.5-3.5S18.43 5 16.5 5 13 6.57 13 8.5s1.57 3.5 3.5 3.5zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z\"}}]})(props);\n};\nexport function MdPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\"}}]})(props);\n};\nexport function MdPersonAddAlt1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4zm2 2v2h3v3h2v-3h3v-2h-3V7h-2v3h-3zM1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4z\"}}]})(props);\n};\nexport function MdPersonAddAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4zm-2 0c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4zm2 0c.2-.71 3.3-2 6-2 2.69 0 5.78 1.28 6 2H3zm17-3v-3h3v-2h-3V7h-2v3h-3v2h3v3h2z\"}}]})(props);\n};\nexport function MdPersonAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdPersonOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.65 5.82a3.999 3.999 0 115.53 5.53L8.65 5.82zM20 17.17c-.02-1.1-.63-2.11-1.61-2.62-.54-.28-1.13-.54-1.77-.76L20 17.17zm1.19 4.02L2.81 2.81 1.39 4.22l8.89 8.89c-1.81.23-3.39.79-4.67 1.45A2.97 2.97 0 004 17.22V20h13.17l2.61 2.61 1.41-1.42z\"}}]})(props);\n};\nexport function MdPersonOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.9a2.1 2.1 0 110 4.2 2.1 2.1 0 010-4.2m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdPersonRemoveAlt1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8c0-2.21-1.79-4-4-4S6 5.79 6 8s1.79 4 4 4 4-1.79 4-4zm3 2v2h6v-2h-6zM2 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4z\"}}]})(props);\n};\nexport function MdPersonRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8c0-2.21-1.79-4-4-4S6 5.79 6 8s1.79 4 4 4 4-1.79 4-4zm3 2v2h6v-2h-6zM2 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4z\"}}]})(props);\n};\nexport function MdPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdPersonalInjury (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4-4-1.79-4-4zm9 16h1c1.1 0 2-.9 2-2v-4.78c0-1.12-.61-2.15-1.61-2.66-.43-.22-.9-.43-1.39-.62V22zm-4.66-5L15 11.33c-.93-.21-1.93-.33-3-.33-2.53 0-4.71.7-6.39 1.56A2.97 2.97 0 004 15.22V22h2.34c-.22-.45-.34-.96-.34-1.5C6 18.57 7.57 17 9.5 17h2.84zM10 22l1.41-3H9.5c-.83 0-1.5.67-1.5 1.5S8.67 22 9.5 22h.5z\"}}]})(props);\n};\nexport function MdPianoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.42zM8.25 19H5V7.83l2 2v3.67c0 .55.45 1 1 1h.25V19zm1.5 0v-4.5H10c.46 0 .82-.31.94-.73l3.31 3.31V19h-4.5zM11 8.17L5.83 3H19c1.1 0 2 .9 2 2v13.17l-2-2V5h-2v8.5c0 .19-.07.36-.16.51L13 10.17V5h-2v3.17z\"}}]})(props);\n};\nexport function MdPiano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 11.5h.25V19h-4.5v-4.5H10c.55 0 1-.45 1-1V5h2v8.5c0 .55.45 1 1 1zM5 5h2v8.5c0 .55.45 1 1 1h.25V19H5V5zm14 14h-3.25v-4.5H16c.55 0 1-.45 1-1V5h2v14z\"}}]})(props);\n};\nexport function MdPlusOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8H8v4H4v2h4v4h2v-4h4v-2h-4zm4.5-1.92V7.9l2.5-.5V18h2V5z\"}}]})(props);\n};\nexport function MdPoll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdPrecisionManufacturing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.93 8.21l-3.6 1.68L14 7.7V6.3l2.33-2.19 3.6 1.68c.38.18.82.01 1-.36.18-.38.01-.82-.36-1L16.65 2.6a.993.993 0 00-1.13.2l-1.74 1.6A.975.975 0 0013 4c-.55 0-1 .45-1 1v1H8.82C8.34 4.65 6.98 3.73 5.4 4.07c-1.16.25-2.15 1.25-2.36 2.43-.22 1.32.46 2.47 1.48 3.08L7.08 18H4v3h13v-3h-3.62L8.41 8.77c.17-.24.31-.49.41-.77H12v1c0 .55.45 1 1 1 .32 0 .6-.16.78-.4l1.74 1.6c.3.3.75.38 1.13.2l3.92-1.83c.38-.18.54-.62.36-1a.753.753 0 00-1-.36zM6 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdPsychology (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8.57a1.43 1.43 0 100 2.86 1.43 1.43 0 000-2.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3C9.25 3 6.2 5.94 6.02 9.64L4.1 12.2a.5.5 0 00.4.8H6v3c0 1.1.9 2 2 2h1v3h7v-4.68A6.999 6.999 0 0013 3zm3 7c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39a.19.19 0 01.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38a.2.2 0 01-.05.26l-.85.66c.03.12.04.25.04.39z\"}}]})(props);\n};\nexport function MdPublicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8.17L6.49 3.66A9.91 9.91 0 0112 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51l-1.46-1.46A7.842 7.842 0 0020 12c0-3.35-2.07-6.22-5-7.41V5c0 1.1-.9 2-2 2h-2v1.17zm10.19 13.02l-1.41 1.41-2.27-2.27A9.839 9.839 0 0112 22C6.48 22 2 17.52 2 12c0-2.04.61-3.93 1.66-5.51L1.39 4.22 2.8 2.81l18.39 18.38zM11 18c-1.1 0-2-.9-2-2v-1l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.08 3.05 7.44 7 7.93V18z\"}}]})(props);\n};\nexport function MdPublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"}}]})(props);\n};\nexport function MdRealEstateAgent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 22h4V11H1v11zm19-5h-7l-2.09-.73.33-.94L13 16h2.82c.65 0 1.18-.53 1.18-1.18 0-.49-.31-.93-.77-1.11L8.97 11H7v9.02L14 22l8-3c-.01-1.1-.89-2-2-2zM14 1.5l-7 5V9h2l8.14 3.26C18.26 12.71 19 13.79 19 15h2V6.5l-7-5zm-.5 8.5h-1V9h1v1zm0-2h-1V7h1v1zm2 2h-1V9h1v1zm0-2h-1V7h1v1z\"}}]})(props);\n};\nexport function MdRecommend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a10 10 0 1010 10A10 10 0 0012 2zm6 9.8a.9.9 0 01-.1.5l-2.1 4.9a1.34 1.34 0 01-1.3.8H9a2 2 0 01-2-2v-5a1.28 1.28 0 01.4-1L12 5l.69.69a1.08 1.08 0 01.3.7v.2L12.41 10H17a1 1 0 011 1z\"}}]})(props);\n};\nexport function MdRecycling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.77 7.15L7.2 4.78l1.03-1.71c.39-.65 1.33-.65 1.72 0l1.48 2.46-1.23 2.06-1 1.62-3.43-2.06zm15.95 5.82l-1.6-2.66-3.46 2L18.87 16H20a2 2 0 002-2c0-.36-.1-.71-.28-1.03zM16 21h1.5a2 2 0 001.79-1.11L20.74 17H16v-2l-4 4 4 4v-2zm-6-4H5.7l-.84 1.41c-.3.5-.32 1.12-.06 1.65.28.57.87.94 1.52.94H10v-4zm-3.88-2.65l1.73 1.04L6.48 9.9 1 11.27l1.7 1.02-.41.69c-.35.59-.38 1.31-.07 1.92l1.63 3.26 2.27-3.81zm10.9-9.21l-1.3-2.17C15.35 2.37 14.7 2 14 2h-3.53l3.12 5.2-1.72 1.03 5.49 1.37 1.37-5.49-1.71 1.03z\"}}]})(props);\n};\nexport function MdReduceCapacity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58A6.95 6.95 0 0018 7c-.67 0-1.31.1-1.92.28.58.55.92 1.32.92 2.15V10h5v-.57c0-.81-.48-1.53-1.22-1.85zM6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.92 1.28C7.31 7.1 6.67 7 6 7c-.99 0-1.93.21-2.78.58A2.01 2.01 0 002 9.43V10h5v-.57c0-.83.34-1.6.92-2.15zM10 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0116 9.43V10zm-1 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6h-8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0121 21.43V22zM5 16c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H3v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0111 21.43V22zm1.75-9v-2h-1.5v2H9l3 3 3-3h-2.25z\"}}]})(props);\n};\nexport function MdRemoveModerator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.27 21.73l-3.54-3.55L5.78 5.23 2.27 1.72 1 2.99 3.01 5H3v6c0 5.55 3.84 10.74 9 12 2.16-.53 4.08-1.76 5.6-3.41L21 23l1.27-1.27zM13 9.92l6.67 6.67C20.51 14.87 21 12.96 21 11V5l-9-4-5.48 2.44L11 7.92l2 2z\"}}]})(props);\n};\nexport function MdSafetyDivider (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 5h2v14h-2V5zm-6 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 001 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85zM19 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 0015 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85z\"}}]})(props);\n};\nexport function MdSanitizer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 6.5C15.5 5.66 17 4 17 4s1.5 1.66 1.5 2.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5zm4 8.5a2.5 2.5 0 002.5-2.5c0-1.67-2.5-4.5-2.5-4.5S17 10.83 17 12.5a2.5 2.5 0 002.5 2.5zM13 14h-2v-2H9v2H7v2h2v2h2v-2h2v-2zm3-2v10H4V12c0-2.97 2.16-5.43 5-5.91V4H7V2h6c1.13 0 2.15.39 2.99 1.01l-1.43 1.43C14.1 4.17 13.57 4 13 4h-2v2.09c2.84.48 5 2.94 5 5.91z\"}}]})(props);\n};\nexport function MdSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\"}}]})(props);\n};\nexport function MdScience (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.8 18.4L14 10.67V6.5l1.35-1.69c.26-.33.03-.81-.39-.81H9.04c-.42 0-.65.48-.39.81L10 6.5v4.17L4.2 18.4c-.49.66-.02 1.6.8 1.6h14c.82 0 1.29-.94.8-1.6z\"}}]})(props);\n};\nexport function MdSelfImprovement (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16v-2c-2.24 0-4.16-.96-5.6-2.68l-1.34-1.6A1.98 1.98 0 0012.53 9h-1.05c-.59 0-1.15.26-1.53.72l-1.34 1.6C7.16 13.04 5.24 14 3 14v2c2.77 0 5.19-1.17 7-3.25V15l-3.88 1.55c-.67.27-1.12.93-1.12 1.66C5 19.2 5.8 20 6.79 20H9v-.5a2.5 2.5 0 012.5-2.5h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.83 0-1.5.67-1.5 1.5v.5h7.21c.99 0 1.79-.8 1.79-1.79 0-.73-.45-1.39-1.12-1.66L14 15v-2.25c1.81 2.08 4.23 3.25 7 3.25z\"}}]})(props);\n};\nexport function MdSentimentDissatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-3.5c.73 0 1.39.19 1.97.53.12-.14.86-.98 1.01-1.14A5.39 5.39 0 0012 15c-1.11 0-2.13.33-2.99.88.97 1.09.01.02 1.01 1.14.59-.33 1.25-.52 1.98-.52z\"}}]})(props);\n};\nexport function MdSentimentNeutral (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15.5h6v1H9v-1z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdSentimentSatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-4c-.73 0-1.38-.18-1.96-.52-.12.14-.86.98-1.01 1.15a5.49 5.49 0 005.95-.01c-.97-1.09-.01-.02-1.01-1.15-.59.35-1.24.53-1.97.53z\"}}]})(props);\n};\nexport function MdSentimentVeryDissatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-6c-2.33 0-4.32 1.45-5.12 3.5h1.67c.69-1.19 1.97-2 3.45-2s2.75.81 3.45 2h1.67c-.8-2.05-2.79-3.5-5.12-3.5z\"}}]})(props);\n};\nexport function MdSentimentVerySatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm-5-6c.78 2.34 2.72 4 5 4s4.22-1.66 5-4H7z\"}}]})(props);\n};\nexport function MdShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z\"}}]})(props);\n};\nexport function MdSick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9c-1.1 0-2-.9-2-2s2-4 2-4 2 2.9 2 4-.9 2-2 2zm-3.5-2c0-.73.41-1.71.92-2.66A9.965 9.965 0 0011.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12c0-.55-.06-1.09-.14-1.62a3.5 3.5 0 01-.86.12c-1.93 0-3.5-1.57-3.5-3.5zm-1.88.38l1.06 1.06-1.06 1.06 1.06 1.06-1.06 1.06L13.5 9.5l2.12-2.12zm-8.3 1.06l1.06-1.06L10.5 9.5l-2.12 2.12-1.06-1.06L8.38 9.5 7.32 8.44zM15.44 17c-.69-1.19-1.97-2-3.44-2s-2.75.81-3.44 2H6.88c.3-.76.76-1.43 1.34-1.99L5.24 13.3c-.45.26-1.01.28-1.49 0a1.501 1.501 0 011.5-2.6c.48.28.74.78.74 1.29l3.58 2.07c.73-.36 1.55-.56 2.43-.56 2.33 0 4.32 1.45 5.12 3.5h-1.68z\"}}]})(props);\n};\nexport function MdSingleBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12c0-1.1-.9-2-2-2V7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3c-1.1 0-2 .9-2 2v5h1.33L6 19h1l.67-2h8.67l.66 2h1l.67-2H20v-5zm-4-2h-3V7h3v3zM8 7h3v3H8V7zm-2 5h12v3H6v-3z\"}}]})(props);\n};\nexport function MdSkateboarding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM7.25 22.5c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75zm8.5 0c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75zm3.49-3.5a.72.72 0 00-.59.3c-.55.73-1.42 1.2-2.4 1.2H16v-6l-4.32-2.67 1.8-2.89A6.507 6.507 0 0019 12v-2c-1.85 0-3.44-1.12-4.13-2.72l-.52-1.21C14.16 5.64 13.61 5 12.7 5H7L4.5 9l1.7 1.06L8.1 7h2.35l-2.4 3.84c-.31.5-.39 1.11-.21 1.67l1.34 4.15-3.12 3.76c-.7-.16-1.3-.57-1.71-1.12a.749.749 0 10-1.2.9c.82 1.1 2.13 1.8 3.6 1.8h9.5c1.47 0 2.78-.7 3.6-1.8.1-.14.15-.3.15-.45 0-.39-.32-.75-.76-.75zM14 20.5H8.6l2.9-3.5-1-3.3 3.5 2.2v4.6z\"}}]})(props);\n};\nexport function MdSledding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm8.8 15.74a4.003 4.003 0 01-5.04 2.57L1 17.36l.46-1.43 3.93 1.28.46-1.43-3.92-1.28.46-1.43L4 13.6V9.5l5.47-2.35c.39-.17.84-.21 1.28-.07.95.31 1.46 1.32 1.16 2.27l-1.05 3.24 2.14-.34c.89-.15 1.76.32 2.14 1.14l2.08 4.51 1.93.63-.46 1.43-3.32-1.08-.47 1.42 3.32 1.08c1.31.43 2.72-.29 3.15-1.61.43-1.31-.29-2.72-1.61-3.15l.46-1.43c2.11.69 3.27 2.95 2.58 5.05zM6 14.25l1.01.33c-.22-.42-.28-.92-.12-1.4L7.92 10 6 10.82v3.43zm7.94 4.16l-6.66-2.16-.46 1.43 6.66 2.16.46-1.43zm.69-1.36l-1.18-2.56-3.97.89 5.15 1.67z\"}}]})(props);\n};\nexport function MdSnowboarding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm7.4 17.09a.748.748 0 00-.64.17c-.69.6-1.64.88-2.6.67L17 20.69l-1-6.19-3.32-2.67 1.8-2.89A6.507 6.507 0 0020 12v-2c-1.85 0-3.44-1.12-4.13-2.72l-.52-1.21C15.16 5.64 14.61 5 13.7 5H8L5.5 9l1.7 1.06L9.1 7h2.35l-2.51 3.99c-.28.45-.37 1-.25 1.52L9.5 16 6 18.35l-.47-.1c-.96-.2-1.71-.85-2.1-1.67a.744.744 0 00-.51-.42c-.43-.09-.82.2-.9.58-.04.14-.02.31.05.46.58 1.24 1.71 2.2 3.15 2.51l12.63 2.69c1.44.31 2.86-.11 3.9-1.01.13-.11.21-.26.24-.41.07-.38-.16-.8-.59-.89zM8.73 18.93l3.02-2.03-.44-3.32 2.84 2.02.75 4.64-6.17-1.31z\"}}]})(props);\n};\nexport function MdSnowshoeing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 3.5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM6.32 19.03l-1.14-1.47L4 18.5l2.38 3.04c.51.65 1.16 1.15 1.88 1.41.28.1.53.04.72-.11.3-.23.42-.7.12-1.07a.84.84 0 00-.31-.22 2.97 2.97 0 01-1.14-.83l-.08-.1L11 18.2l.89-3.22 2.11 2v4.52h-2V23h3.87c.82 0 1.61-.21 2.26-.61.26-.16.37-.39.37-.64 0-.38-.3-.75-.77-.75-.13 0-.26.04-.37.1-.4.23-.87.37-1.36.4v-6.02l-2.11-2 .6-3C15.79 11.98 17.8 13 20 13v-2c-1.9 0-3.51-1.02-4.31-2.42l-1-1.58c-.4-.6-1-1-1.7-1-.75 0-1.41.34-5.99 2.28V13h2V9.58l1.79-.7L9.2 17l-2.88 2.03z\"}}]})(props);\n};\nexport function MdSocialDistance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 002 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM18 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 0014 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM22 17l-4-4v3H6v-3l-4 4 4 4v-3h12v3l4-4z\"}}]})(props);\n};\nexport function MdSportsBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.81 6.28C2.67 7.9 2 9.87 2 12s.67 4.1 1.81 5.72C6.23 16.95 8 14.68 8 12S6.23 7.05 3.81 6.28zM20.19 6.28C17.77 7.05 16 9.32 16 12s1.77 4.95 4.19 5.72C21.33 16.1 22 14.13 22 12s-.67-4.1-1.81-5.72z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12c0-3.28 1.97-6.09 4.79-7.33C17.01 3.02 14.63 2 12 2S6.99 3.02 5.21 4.67C8.03 5.91 10 8.72 10 12s-1.97 6.09-4.79 7.33C6.99 20.98 9.37 22 12 22s5.01-1.02 6.79-2.67A8.002 8.002 0 0114 12z\"}}]})(props);\n};\nexport function MdSportsBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.09 11h4.86a9.951 9.951 0 00-1.54-4.4 5.987 5.987 0 00-3.32 4.4zM6.91 11a5.987 5.987 0 00-3.32-4.4A9.951 9.951 0 002.05 11h4.86zM15.07 11a7.994 7.994 0 014.06-6A9.969 9.969 0 0013 2.05V11h2.07zM8.93 11H11V2.05A9.943 9.943 0 004.87 5a7.994 7.994 0 014.06 6zM15.07 13H13v8.95A9.943 9.943 0 0019.13 19a7.994 7.994 0 01-4.06-6zM3.59 17.4A6.029 6.029 0 006.91 13H2.05c.16 1.61.71 3.11 1.54 4.4zM17.09 13a5.987 5.987 0 003.32 4.4 9.951 9.951 0 001.54-4.4h-4.86zM8.93 13a7.994 7.994 0 01-4.06 6A9.969 9.969 0 0011 21.95V13H8.93z\"}}]})(props);\n};\nexport function MdSportsCricket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 12.81L6.56 4.32a.996.996 0 00-1.41 0L2.32 7.15a.996.996 0 000 1.41l8.49 8.49c.39.39 1.02.39 1.41 0l2.83-2.83a.996.996 0 000-1.41zM14.341 17.756l1.414-1.414 4.243 4.243-1.414 1.414z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"5.5\",\"r\":\"3.5\"}}]})(props);\n};\nexport function MdSportsEsports (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.58 16.09l-1.09-7.66A3.996 3.996 0 0016.53 5H7.47C5.48 5 3.79 6.46 3.51 8.43l-1.09 7.66C2.2 17.63 3.39 19 4.94 19c.68 0 1.32-.27 1.8-.75L9 16h6l2.25 2.25c.48.48 1.13.75 1.8.75 1.56 0 2.75-1.37 2.53-2.91zM11 11H9v2H8v-2H6v-1h2V8h1v2h2v1zm4-1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdSportsFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.02 15.62c-.08 2.42.32 4.34.67 4.69s2.28.76 4.69.67l-5.36-5.36zM13.08 3.28c-2.33.42-4.79 1.34-6.62 3.18s-2.76 4.29-3.18 6.62l7.63 7.63c2.34-.41 4.79-1.34 6.62-3.18s2.76-4.29 3.18-6.62l-7.63-7.63zM9.9 15.5l-1.4-1.4 5.6-5.6 1.4 1.4-5.6 5.6zM20.98 8.38c.08-2.42-.32-4.34-.67-4.69s-2.28-.76-4.69-.67l5.36 5.36z\"}}]})(props);\n};\nexport function MdSportsGolf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c3.87 0 7-3.13 7-7s-3.13-7-7-7-7 3.13-7 7 3.13 7 7 7zm0-12c2.76 0 5 2.24 5 5s-2.24 5-5 5-5-2.24-5-5 2.24-5 5-5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"8\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"8\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19h2c1.1 0 2 .9 2 2v1h2v-1c0-1.1.9-2 2-2h2v-2H7v2z\"}}]})(props);\n};\nexport function MdSportsHandball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.27 6c-.55.95-.22 2.18.73 2.73.95.55 2.18.22 2.73-.73.55-.95.22-2.18-.73-2.73-.95-.55-2.18-.22-2.73.73z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.84 10.41l-2.6-1.5c-2.38-1.38-3.2-4.44-1.82-6.82l-1.73-1C8.1 3.83 8.6 7.21 10.66 9.4l-5.15 8.92 1.73 1 1.5-2.6 1.73 1-3 5.2 1.73 1 6.29-10.89a5.002 5.002 0 01.31 5.46l1.73 1c1.6-2.75 1.28-6.58-1.69-9.08zM12.75 3.8c.72.41 1.63.17 2.05-.55.41-.72.17-1.63-.55-2.05a1.501 1.501 0 00-1.5 2.6z\"}}]})(props);\n};\nexport function MdSportsHockey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17v3h2v-4H3c-.55 0-1 .45-1 1zM9 16H5v4l4.69-.01c.38 0 .72-.21.89-.55l.87-1.9-1.59-3.48L9 16zM21.71 16.29A.997.997 0 0021 16h-1v4h2v-3c0-.28-.11-.53-.29-.71zM13.6 12.84L17.65 4H14.3l-1.76 3.97-.49 1.1-.05.14L9.7 4H6.35l4.05 8.84 1.52 3.32.08.18 1.42 3.1c.17.34.51.55.89.55L19 20v-4h-4l-1.4-3.16z\"}}]})(props);\n};\nexport function MdSportsKabaddi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"2.38\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 11.88v-4.7l-5.05-2.14c-.97-.41-2.09-.06-2.65.84l-1 1.6c-.67 1.18-1.91 2.06-3.41 2.32l.06.06c.69.69 1.52 1.07 2.46 1.17.8-.42 1.52-.98 2.09-1.64l.6 3-1.16 1.1-.94.89v7.5h2v-6l2.1-2 1.8 8H23l-2.18-11-.62-3.1 1.8.7v3.4h2zM10.29 8.09c.22.15.47.24.72.29.13.02.25.04.38.04s.26-.01.38-.04c.13-.02.25-.06.37-.11.24-.1.47-.24.66-.44.49-.49.67-1.17.55-1.8-.07-.37-.25-.74-.55-1.03-.19-.19-.42-.34-.66-.44-.12-.05-.24-.09-.37-.11s-.25-.04-.38-.04c-.12 0-.23.01-.35.03-.14.02-.28.06-.41.11-.23.11-.46.26-.65.45-.3.29-.48.66-.55 1.03-.12.63.06 1.31.55 1.8.09.1.2.18.31.26z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.24 10.56l-2-2c-.1-.1-.2-.18-.31-.26a1.93 1.93 0 00-.72-.28c-.13-.03-.25-.04-.38-.04-.51 0-1.02.2-1.41.59l-3.34 3.34c-.41.41-.62.98-.58 1.54 0 .18.04.37.11.55l1.07 2.95-3.63 3.63L1.46 22l4.24-4.24v-2.22L7 16.75v5.13h2v-6l-2.12-2.12 2.36-2.36.71.71c1.29 1.26 2.97 2.04 5.03 2.04l-.14-2.07c-1.5-.02-2.7-.62-3.6-1.52z\"}}]})(props);\n};\nexport function MdSportsMma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-3H7v3zM18 7c-.55 0-1 .45-1 1V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v5.8c0 .13.01.26.04.39l.8 4c.09.47.5.8.98.8h10.36c.45 0 .89-.36.98-.8l.8-4c.03-.13.04-.26.04-.39V8c0-.55-.45-1-1-1zm-3 3H7V7h8v3z\"}}]})(props);\n};\nexport function MdSportsMotorsports (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11.39c0-.65-.39-1.23-.98-1.48L5.44 7.55c-1.48 1.68-2.32 3.7-2.8 5.45h7.75c.89 0 1.61-.72 1.61-1.61z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.96 11.22c-.41-4.41-4.56-7.49-8.98-7.2-2.51.16-4.44.94-5.93 2.04l4.74 2.01c1.33.57 2.2 1.87 2.2 3.32 0 1.99-1.62 3.61-3.61 3.61H2.21C2 16.31 2 17.2 2 17.2v.8c0 1.1.9 2 2 2h10c4.67 0 8.41-4.01 7.96-8.78z\"}}]})(props);\n};\nexport function MdSportsRugby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 3.51c-.56-.56-2.15-.97-4.16-.97-3.08 0-7.15.96-9.98 3.79-4.69 4.7-4.25 12.74-2.84 14.16.56.56 2.15.97 4.16.97 3.08 0 7.15-.96 9.98-3.79 4.69-4.7 4.25-12.74 2.84-14.16zM7.76 7.76c2.64-2.64 6.35-3.12 8.03-3.19-2.05.94-4.46 2.45-6.61 4.61a23.462 23.462 0 00-4.62 6.63c.1-2.48.88-5.74 3.2-8.05zm8.48 8.48c-2.64 2.64-6.35 3.12-8.03 3.19 2.05-.94 4.46-2.45 6.61-4.61 2.16-2.16 3.67-4.58 4.62-6.63-.1 2.48-.88 5.74-3.2 8.05z\"}}]})(props);\n};\nexport function MdSportsSoccer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 3.3l1.35-.95a8.01 8.01 0 014.38 3.34l-.39 1.34-1.35.46L13 6.7V5.3zm-3.35-.95L11 5.3v1.4L7.01 9.49l-1.35-.46-.39-1.34a8.103 8.103 0 014.38-3.34zM7.08 17.11l-1.14.1A7.938 7.938 0 014 12c0-.12.01-.23.02-.35l1-.73 1.38.48 1.46 4.34-.78 1.37zm7.42 2.48c-.79.26-1.63.41-2.5.41s-1.71-.15-2.5-.41l-.69-1.49.64-1.1h5.11l.64 1.11-.7 1.48zM14.27 15H9.73l-1.35-4.02L12 8.44l3.63 2.54L14.27 15zm3.79 2.21l-1.14-.1-.79-1.37 1.46-4.34 1.39-.47 1 .73c.01.11.02.22.02.34 0 1.99-.73 3.81-1.94 5.21z\"}}]})(props);\n};\nexport function MdSportsTennis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.52 2.49C17.18.15 12.9.62 9.97 3.55c-1.6 1.6-2.52 3.87-2.54 5.46-.02 1.58.26 3.89-1.35 5.5l-4.24 4.24 1.42 1.42 4.24-4.24c1.61-1.61 3.92-1.33 5.5-1.35s3.86-.94 5.46-2.54c2.92-2.93 3.4-7.21 1.06-9.55zm-9.2 9.19c-1.53-1.53-1.05-4.61 1.06-6.72s5.18-2.59 6.72-1.06c1.53 1.53 1.05 4.61-1.06 6.72s-5.18 2.59-6.72 1.06zM18 17c.53 0 1.04.21 1.41.59.78.78.78 2.05 0 2.83-.37.37-.88.58-1.41.58s-1.04-.21-1.41-.59c-.78-.78-.78-2.05 0-2.83.37-.37.88-.58 1.41-.58m0-2a3.998 3.998 0 00-2.83 6.83c.78.78 1.81 1.17 2.83 1.17a3.998 3.998 0 002.83-6.83A3.998 3.998 0 0018 15z\"}}]})(props);\n};\nexport function MdSportsVolleyball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4.01C3.58 5.84 2 8.73 2 12c0 1.46.32 2.85.89 4.11L6 14.31V4.01zM11 11.42V2.05c-1.06.11-2.07.38-3 .79v10.32l3-1.74zM12 13.15l-8.11 4.68c.61.84 1.34 1.59 2.18 2.2L15 14.89l-3-1.74zM13 7.96v3.46l8.11 4.68c.42-.93.7-1.93.82-2.98L13 7.96zM8.07 21.2c1.21.51 2.53.8 3.93.8 3.34 0 6.29-1.65 8.11-4.16L17 16.04 8.07 21.2zM21.92 10.81c-.55-4.63-4.26-8.3-8.92-8.76v3.6l8.92 5.16z\"}}]})(props);\n};\nexport function MdSports (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.23 6c-1.66 0-3.22.66-4.36 1.73C6.54 6.73 5.61 6 4.5 6a2.5 2.5 0 000 5c.21 0 .41-.03.61-.08-.05.25-.09.51-.1.78a6.006 6.006 0 006.68 6.27c2.55-.28 4.68-2.26 5.19-4.77.15-.71.15-1.4.06-2.06-.09-.6.38-1.13.99-1.13H22V6H11.23zM4.5 9c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zm6.5 6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function MdSurfing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 23c-1.03 0-2.06-.25-3-.75-1.89 1-4.11 1-6 0-1.89 1-4.11 1-6 0-.95.5-1.97.75-3 .75H2v-2h1c1.04 0 2.08-.35 3-1 1.83 1.3 4.17 1.3 6 0 1.83 1.3 4.17 1.3 6 0 .91.65 1.96 1 3 1h1v2h-1zM17 1.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-2.57 6.98L12.18 10 16 13v3.84c.53.38 1.03.78 1.49 1.17-.68.58-1.55.99-2.49.99-1.2 0-2.27-.66-3-1.5-.73.84-1.8 1.5-3 1.5-.33 0-.65-.05-.96-.14C5.19 16.9 3 14.72 3 13.28 3 12.25 4.01 12 4.85 12c.98 0 2.28.31 3.7.83l-.53-3.1c-.11-.67.18-1.38.78-1.79l2.15-1.45-2-.37-2.82 1.93L5 6.4 8.5 4l5.55 1.03c.45.09.93.37 1.22.89l.88 1.55A5.007 5.007 0 0020.5 10v2a7.01 7.01 0 01-6.07-3.52zM10.3 11.1l.44 2.65c.92.42 2.48 1.27 3.26 1.75V14l-3.7-2.9z\"}}]})(props);\n};\nexport function MdSwitchAccount (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 2c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H8v-1.5c0-1.99 4-3 6-3s6 1.01 6 3V16z\"}}]})(props);\n};\nexport function MdThumbDownAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2V4zM2.17 11.12c-.11.25-.17.52-.17.8V13c0 1.1.9 2 2 2h5.5l-.92 4.65c-.05.22-.02.46.08.66.23.45.52.86.88 1.22L10 22l6.41-6.41c.38-.38.59-.89.59-1.42V6.34C17 5.05 15.95 4 14.66 4h-8.1c-.71 0-1.36.37-1.72.97l-2.67 6.15z\"}}]})(props);\n};\nexport function MdThumbUpAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h2c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1H2v11zm19.83-7.12c.11-.25.17-.52.17-.8V11c0-1.1-.9-2-2-2h-5.5l.92-4.65c.05-.22.02-.46-.08-.66a4.8 4.8 0 00-.88-1.22L14 2 7.59 8.41C7.21 8.79 7 9.3 7 9.83v7.84A2.34 2.34 0 009.34 20h8.11c.7 0 1.36-.37 1.72-.97l2.66-6.15z\"}}]})(props);\n};\nexport function MdTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c1.93 0 3.5 1.57 3.5 3.5S13.93 15 12 15s-3.5-1.57-3.5-3.5S10.07 8 12 8zm4.53.38l3.97-3.96V7h2V1h-6v2h2.58l-3.97 3.97C14.23 6.36 13.16 6 12 6s-2.23.36-3.11.97l-.65-.65 1.41-1.41-1.41-1.42L6.82 4.9 4.92 3H7.5V1h-6v6h2V4.42l1.91 1.9-1.42 1.42L5.4 9.15l1.41-1.41.65.65c-.6.88-.96 1.95-.96 3.11a5.5 5.5 0 004.5 5.41V19H9v2h2v2h2v-2h2v-2h-2v-2.09a5.5 5.5 0 003.53-8.53z\"}}]})(props);\n};\nexport function MdTravelExplore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.3 16.9c.4-.7.7-1.5.7-2.4 0-2.5-2-4.5-4.5-4.5S11 12 11 14.5s2 4.5 4.5 4.5c.9 0 1.7-.3 2.4-.7l3.2 3.2 1.4-1.4-3.2-3.2zm-3.8.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zM12 20v2C6.48 22 2 17.52 2 12S6.48 2 12 2c4.84 0 8.87 3.44 9.8 8h-2.07A8 8 0 0015 4.59V5c0 1.1-.9 2-2 2h-2v2c0 .55-.45 1-1 1H8v2h2v3H9l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.41 3.59 8 8 8z\"}}]})(props);\n};\nexport function MdWaterDrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-5.33 4.55-8 8.48-8 11.8 0 4.98 3.8 8.2 8 8.2s8-3.22 8-8.2c0-3.32-2.67-7.25-8-11.8zM7.83 14c.37 0 .67.26.74.62.41 2.22 2.28 2.98 3.64 2.87.43-.02.79.32.79.75 0 .4-.32.73-.72.75-2.13.13-4.62-1.09-5.19-4.12a.75.75 0 01.74-.87z\"}}]})(props);\n};\nexport function MdWavingHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 17c0 3.31-2.69 6-6 6v-1.5c2.48 0 4.5-2.02 4.5-4.5H23zM1 7c0-3.31 2.69-6 6-6v1.5C4.52 2.5 2.5 4.52 2.5 7H1zm7.01-2.68l-4.6 4.6c-3.22 3.22-3.22 8.45 0 11.67s8.45 3.22 11.67 0l7.07-7.07c.49-.49.49-1.28 0-1.77a1.25 1.25 0 00-1.77 0l-4.42 4.42-.71-.71 6.54-6.54c.49-.49.49-1.28 0-1.77s-1.28-.49-1.77 0l-5.83 5.83-.71-.71 6.89-6.89c.49-.49.49-1.28 0-1.77s-1.28-.49-1.77 0l-6.89 6.89-.69-.7 5.48-5.48c.49-.49.49-1.28 0-1.77s-1.28-.49-1.77 0l-7.62 7.62a4.003 4.003 0 01-.33 5.28l-.71-.71a3 3 0 000-4.24l-.35-.35 4.07-4.07c.49-.49.49-1.28 0-1.77a1.27 1.27 0 00-1.78.01z\"}}]})(props);\n};\nexport function MdWhatshot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z\"}}]})(props);\n};\nexport function MdCheckBoxOutlineBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdCheckBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"}}]})(props);\n};\nexport function MdIndeterminateCheckBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"}}]})(props);\n};\nexport function MdRadioButtonChecked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdRadioButtonUnchecked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdStarBorderPurple500 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.89l.94 3.11h2.82l-2.27 1.62.93 3.01L12 14.79l-2.42 1.84.93-3.01L8.24 12h2.82L12 8.89M12 2l-2.42 8H2l6.17 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10h-7.58L12 2z\"}}]})(props);\n};\nexport function MdStarBorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"}}]})(props);\n};\nexport function MdStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"}}]})(props);\n};\nexport function MdStarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"}}]})(props);\n};\nexport function MdStarPurple500 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.89l.94 3.11h2.82l-2.27 1.62.93 3.01L12 14.79l-2.42 1.84.93-3.01L8.24 12h2.82L12 8.89M12 2l-2.42 8H2l6.17 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10h-7.58L12 2z\"}}]})(props);\n};\nexport function MdStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\"}}]})(props);\n};\nexport function MdToggleOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zM7 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdToggleOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h10c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdFaceUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.25 13a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zM15 11.75a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm7 .25c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2s10 4.48 10 10zM10.66 4.12C12.06 6.44 14.6 8 17.5 8c.46 0 .91-.05 1.34-.12C17.44 5.56 14.9 4 12 4c-.46 0-.91.05-1.34.12zM4.42 9.47a8.046 8.046 0 003.66-4.44 8.046 8.046 0 00-3.66 4.44zM20 12c0-.78-.12-1.53-.33-2.24-.7.15-1.42.24-2.17.24a10 10 0 01-7.76-3.69A10.016 10.016 0 014 11.86c.01.04 0 .09 0 .14 0 4.41 3.59 8 8 8s8-3.59 8-8z\"}}]})(props);\n};\nexport function MdBattery20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 17v3.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V17H7z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h10V5.33z\"}}]})(props);\n};\nexport function MdBattery30 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V15h10V5.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15v5.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V15H7z\"}}]})(props);\n};\nexport function MdBattery50 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V13h10V5.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 13v7.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V13H7z\"}}]})(props);\n};\nexport function MdBattery60 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V11h10V5.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11H7z\"}}]})(props);\n};\nexport function MdBattery80 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V9h10V5.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9H7z\"}}]})(props);\n};\nexport function MdBattery90 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V8h10V5.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 8v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8H7z\"}}]})(props);\n};\nexport function MdBatteryCharging20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20v-3H7v3.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V17h-4.4L11 20z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h4v-2.5H9L13 7v5.5h2L12.6 17H17V5.33C17 4.6 16.4 4 15.67 4z\"}}]})(props);\n};\nexport function MdBatteryCharging30 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v9.17h2L13 7v5.5h2l-1.07 2H17V5.33C17 4.6 16.4 4 15.67 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 20v-5.5H7v6.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V14.5h-3.07L11 20z\"}}]})(props);\n};\nexport function MdBatteryCharging50 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.47 13.5L11 20v-5.5H9l.53-1H7v7.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V13.5h-2.53z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v8.17h2.53L13 7v5.5h2l-.53 1H17V5.33C17 4.6 16.4 4 15.67 4z\"}}]})(props);\n};\nexport function MdBatteryCharging60 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V11h3.87L13 7v4h4V5.33C17 4.6 16.4 4 15.67 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12.5h2L11 20v-5.5H9l1.87-3.5H7v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11h-4v1.5z\"}}]})(props);\n};\nexport function MdBatteryCharging80 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V9h4.93L13 7v2h4V5.33C17 4.6 16.4 4 15.67 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12.5h2L11 20v-5.5H9L11.93 9H7v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9h-4v3.5z\"}}]})(props);\n};\nexport function MdBatteryCharging90 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V8h5.47L13 7v1h4V5.33C17 4.6 16.4 4 15.67 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12.5h2L11 20v-5.5H9L12.47 8H7v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8h-4v4.5z\"}}]})(props);\n};\nexport function MdSignalCellular1Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M2 22h20V2L2 22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12L2 22h10V12z\"}}]})(props);\n};\nexport function MdSignalCellular2Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M2 22h20V2L2 22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10L2 22h12V10z\"}}]})(props);\n};\nexport function MdSignalCellular3Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M2 22h20V2L2 22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7L2 22h15V7z\"}}]})(props);\n};\nexport function MdSignalCellularConnectedNoInternet1Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M22 8V2L2 22h16V8h4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10v8h2v-8h-2zm-8 12V12L2 22h10zm8 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdSignalCellularConnectedNoInternet2Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M22 8V2L2 22h16V8h4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 22V10L2 22h12zm6-12v8h2v-8h-2zm0 12h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdSignalCellularConnectedNoInternet3Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M22 8V2L2 22h16V8h4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 22V6L2 22h16zm2-12v8h2v-8h-2zm0 12h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdSignalWifi1BarLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.5 14.5c0-2.8 2.2-5 5-5 .36 0 .71.04 1.05.11L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7L12 21.5l3.5-4.36V14.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14.5c0-.23.04-.46.07-.68-.92-.43-2.14-.82-3.57-.82-3 0-5.1 1.7-5.3 1.9l5.3 6.6 3.5-4.36V14.5zM23 16v-1.5c0-1.4-1.1-2.5-2.5-2.5S18 13.1 18 14.5V16c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-4c0-.5-.5-1-1-1zm-1 0h-3v-1.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5V16z\"}}]})(props);\n};\nexport function MdSignalWifi1Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.67 14.86L12 21.49v.01l.01-.01 5.33-6.63C17.06 14.65 15.03 13 12 13s-5.06 1.65-5.33 1.86z\"}}]})(props);\n};\nexport function MdSignalWifi2BarLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.5 14.5c0-2.8 2.2-5 5-5 .36 0 .71.04 1.05.11L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7L12 21.5l3.5-4.36V14.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14.5c0-1.34.51-2.53 1.34-3.42C15.62 10.51 13.98 10 12 10c-4.1 0-6.8 2.2-7.2 2.5l7.2 9 3.5-4.38V14.5zM23 16v-1.5c0-1.4-1.1-2.5-2.5-2.5S18 13.1 18 14.5V16c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-4c0-.5-.5-1-1-1zm-1 0h-3v-1.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5V16z\"}}]})(props);\n};\nexport function MdSignalWifi2Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7L12 21.5 23.64 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.79 12.52L12 21.5l7.21-8.99C18.85 12.24 16.1 10 12 10s-6.85 2.24-7.21 2.52z\"}}]})(props);\n};\nexport function MdSignalWifi3BarLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M15.5 14.5c0-2.8 2.2-5 5-5 .36 0 .71.04 1.05.11L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7L12 21.5l3.5-4.36V14.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 16v-1.5c0-1.4-1.1-2.5-2.5-2.5S18 13.1 18 14.5V16c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h5c.5 0 1-.5 1-1v-4c0-.5-.5-1-1-1zm-1 0h-3v-1.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5V16zm-6.5-1.5a4.92 4.92 0 013.27-4.68C17.29 8.98 14.94 8 12 8c-4.81 0-8.04 2.62-8.47 2.95L12 21.5l3.5-4.36V14.5z\"}}]})(props);\n};\nexport function MdSignalWifi3Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7L12 21.5 23.64 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.53 10.95L12 21.5l8.47-10.55C20.04 10.62 16.81 8 12 8s-8.04 2.62-8.47 2.95z\"}}]})(props);\n};\nexport function MdSignalWifiConnectedNoInternet0 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.59 14l-2.09 2.09-.3-.3L15.41 14 14 15.41l1.79 1.79.3.3L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41z\"}}]})(props);\n};\nexport function MdSignalWifiConnectedNoInternet1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M12 12h8.99L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36A7.932 7.932 0 0112 13v-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21v-8c-2.21 0-4.2.89-5.65 2.34L12 21zm9-5.59L19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41z\"}}]})(props);\n};\nexport function MdSignalWifiConnectedNoInternet2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M18.31 12h2.67L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l4.23 4.24A10.96 10.96 0 0112 10c2.35 0 4.52.74 6.31 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c-3.03 0-5.78 1.23-7.77 3.22L12 21v-9h6.32c-1.8-1.26-3.97-2-6.32-2zm9 5.41L19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41z\"}}]})(props);\n};\nexport function MdSignalWifiConnectedNoInternet3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M21.18 11.8L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l2.82 2.82C5.17 9.45 8.41 8 12 8s6.83 1.45 9.18 3.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.18 11.8C18.83 9.45 15.59 8 12 8s-6.83 1.45-9.18 3.8L12 21v-9h8.99l.19-.2zM19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbar1Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17.65 15.34L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36C7.8 13.89 9.79 13 12 13s4.2.89 5.65 2.34z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.65 15.34C16.2 13.89 14.21 13 12 13s-4.2.89-5.65 2.34L12 21l5.65-5.66z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbar2Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M19.77 13.22L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l4.23 4.24C6.22 11.23 8.97 10 12 10s5.78 1.23 7.77 3.22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 13.22C17.78 11.23 15.03 10 12 10s-5.78 1.23-7.77 3.22L12 21l7.77-7.78z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbar3Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M21.18 11.8L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l2.82 2.82C5.17 9.45 8.41 8 12 8s6.83 1.45 9.18 3.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.18 11.8C18.83 9.45 15.59 8 12 8s-6.83 1.45-9.18 3.8L12 21l9.18-9.2z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbarConnectedNoInternet1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 14.76V8h5.92C19.97 5.51 16.16 4 12 4 7.31 4 3.07 5.9 0 8.98l6.35 6.36A7.95 7.95 0 0112 13c1.89 0 3.63.66 5 1.76z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.35 15.34L12 21l5-5.01v-1.23A7.963 7.963 0 0012 13c-2.21 0-4.2.89-5.65 2.34zM19 18h2v2h-2zM19 10h2v6h-2z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbarConnectedNoInternet2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 11.21V8h5.92C19.97 5.51 16.16 4 12 4 7.31 4 3.07 5.9 0 8.98l4.23 4.24A10.96 10.96 0 0117 11.21z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.23 13.22L12 21l5-5.01v-4.78a10.96 10.96 0 00-12.77 2.01zM19 18h2v2h-2zM19 10h2v6h-2z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbarConnectedNoInternet3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M17 9V8h5.92C19.97 5.51 16.16 4 12 4 7.31 4 3.07 5.9 0 8.98l2.82 2.82A12.93 12.93 0 0112 8c1.77 0 3.46.36 5 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.82 11.8L12 21l5-5.01V9c-1.54-.64-3.23-1-5-1-3.59 0-6.83 1.45-9.18 3.8zM19 18h2v2h-2zM19 10h2v6h-2z\"}}]})(props);\n};\nexport function MdSignalWifiStatusbarConnectedNoInternet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 18h2v2h-2zM19 10h2v6h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8h5.92C19.97 5.51 16.16 4 12 4 7.31 4 3.07 5.9 0 8.98L12 21l5-5.01V8z\",\"opacity\":\".3\"}}]})(props);\n};\nexport function MdSignalWifiStatusbarNotConnected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.52 15.16c.41-.73 1.18-1.16 1.63-1.8.48-.68.21-1.94-1.14-1.94-.88 0-1.32.67-1.5 1.23l-1.37-.57C16.51 10.96 17.52 10 19 10c1.23 0 2.08.56 2.51 1.26.37.6.58 1.73.01 2.57-.63.93-1.23 1.21-1.56 1.81-.13.24-.18.4-.18 1.18h-1.52c0-.41-.07-1.08.26-1.66zm-.57 3.79c0-.59.47-1.04 1.05-1.04.59 0 1.04.45 1.04 1.04 0 .58-.44 1.05-1.04 1.05-.58 0-1.05-.47-1.05-1.05z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M14 13c0-2.76 2.24-5 5-5 1.63 0 3.07.79 3.98 2L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98L12 21l4.01-4.02C14.8 16.07 14 14.63 14 13z\"}}]})(props);\n};\nexport function MdWifiCalling1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M16.49 4.5c1.79 0 3.42.73 4.59 1.91l1.06-1.06A7.94 7.94 0 0016.49 3c-2.21 0-4.21.9-5.66 2.34l1.06 1.06a6.545 6.545 0 014.6-1.9z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M16.49 6c-1.38 0-2.63.56-3.54 1.46l1.06 1.06c.63-.63 1.51-1.03 2.47-1.03s1.84.39 2.47 1.03l1.06-1.06A4.94 4.94 0 0016.49 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.49 9c-.55 0-1.05.22-1.41.59L16.49 11l1.41-1.41c-.36-.37-.86-.59-1.41-.59z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 17.83c1.29.54 2.63.89 4 1.07v-2.23l-2.35-.47L15 17.83zM7.33 5H5.1c.18 1.37.53 2.7 1.07 4L7.8 7.35 7.33 5z\",\"opacity\":\".3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.2 14.87l-3.67-.73c-.5-.1-.83.2-.9.27l-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.55.03 1.03-.43 1.03-1v-4.15c0-.48-.34-.89-.8-.98zM5.1 5h2.23l.47 2.35L6.17 9c-.54-1.3-.9-2.63-1.07-4zM19 18.9c-1.37-.18-2.7-.53-4-1.07l1.65-1.63 2.35.47v2.23z\"}}]})(props);\n};\nexport function MdWifiCalling2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"fillOpacity\":\".3\",\"d\":\"M16.49 4.5c1.79 0 3.42.73 4.59 1.91l1.06-1.06A7.94 7.94 0 0016.49 3c-2.21 0-4.21.9-5.66 2.34l1.06 1.06a6.545 6.545 0 014.6-1.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.49 6c-1.38 0-2.63.56-3.54 1.46l1.06 1.06c.63-.63 1.51-1.03 2.47-1.03s1.84.39 2.47 1.03l1.06-1.06A4.94 4.94 0 0016.49 6zM16.49 9c-.55 0-1.05.22-1.41.59L16.49 11l1.41-1.41c-.36-.37-.86-.59-1.41-.59z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 17.83c1.29.54 2.63.89 4 1.07v-2.23l-2.35-.47L15 17.83zM7.33 5H5.1c.18 1.37.53 2.7 1.07 4L7.8 7.35 7.33 5z\",\"opacity\":\".3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.2 14.87l-3.67-.73c-.5-.1-.83.2-.9.27l-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.55.03 1.03-.43 1.03-1v-4.15c0-.48-.34-.89-.8-.98zM5.1 5h2.23l.47 2.35L6.17 9c-.54-1.3-.9-2.63-1.07-4zM19 18.9c-1.37-.18-2.7-.53-4-1.07l1.65-1.63 2.35.47v2.23z\"}}]})(props);\n};\nexport function MdOutline3DRotation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.53 21.48A10.487 10.487 0 011.56 13H.06c.51 6.16 5.66 11 11.95 11l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08a1.07 1.07 0 01-.4-.24c-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72.2-.61.2-.97c0-.19-.02-.38-.07-.56a1.67 1.67 0 00-.23-.51c-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31a2.098 2.098 0 00.89-.75c.1-.15.17-.3.22-.46s.07-.32.07-.48c0-.36-.06-.68-.18-.96s-.29-.51-.51-.69c-.2-.19-.47-.33-.77-.43C9.11 8.05 8.77 8 8.4 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34.23-.17.38-.22.3-.08.48-.08c.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49s-.14.27-.25.37c-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09h-.77v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4s.1.35.1.57c0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.44-.18-.93-.27-1.47-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27s.84-.43 1.16-.76c.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57s-.42-.87-.74-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12.01 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.45 4.84 18.3 0 12.01 0z\"}}]})(props);\n};\nexport function MdOutlineAccessibilityNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"}}]})(props);\n};\nexport function MdOutlineAccessibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z\"}}]})(props);\n};\nexport function MdOutlineAccessibleForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"4.54\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 17h-2c0 1.65-1.35 3-3 3s-3-1.35-3-3 1.35-3 3-3v-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5zm3-3.5h-1.86l1.67-3.67C18.42 8.5 17.44 7 15.96 7h-5.2c-.81 0-1.54.47-1.87 1.2L8.22 10l1.92.53.65-1.53H13l-1.83 4.1c-.6 1.33.39 2.9 1.85 2.9H18v5h2v-5.5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineAccessible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.45-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-9 7c-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1a5 5 0 105.9 5.9h-2.07c-.41 1.16-1.52 2-2.83 2z\"}}]})(props);\n};\nexport function MdOutlineAccountBalanceWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7.28V5c0-1.1-.9-2-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2v-2.28A2 2 0 0022 15V9a2 2 0 00-1-1.72zM20 9v6h-7V9h7zM5 19V5h14v2h-6c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h6v2H5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineAccountBalance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 10h-2v7h2v-7zm6 0h-2v7h2v-7zm8.5 9H2v2h19v-2zm-2.5-9h-2v7h2v-7zm-7-6.74L16.71 6H6.29l5.21-2.74m0-2.26L2 6v2h19V6l-9.5-5z\"}}]})(props);\n};\nexport function MdOutlineAccountBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z\"}}]})(props);\n};\nexport function MdOutlineAccountCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7.07 18.28c.43-.9 3.05-1.78 4.93-1.78s4.51.88 4.93 1.78C15.57 19.36 13.86 20 12 20s-3.57-.64-4.93-1.72zm11.29-1.45c-1.43-1.74-4.9-2.33-6.36-2.33s-4.93.59-6.36 2.33A7.95 7.95 0 014 12c0-4.41 3.59-8 8-8s8 3.59 8 8c0 1.82-.62 3.49-1.64 4.83zM12 6c-1.94 0-3.5 1.56-3.5 3.5S10.06 13 12 13s3.5-1.56 3.5-3.5S13.94 6 12 6zm0 5c-.83 0-1.5-.67-1.5-1.5S11.17 8 12 8s1.5.67 1.5 1.5S12.83 11 12 11z\"}}]})(props);\n};\nexport function MdOutlineAddShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-8.9-5h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4l-3.87 7H8.53L4.27 2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2z\"}}]})(props);\n};\nexport function MdOutlineAddTask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.18L10.59 16.6l-4.24-4.24 1.41-1.41 2.83 2.83 10-10L22 5.18zM12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8c1.57 0 3.04.46 4.28 1.25l1.45-1.45A10.02 10.02 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10c1.73 0 3.36-.44 4.78-1.22l-1.5-1.5c-1 .46-2.11.72-3.28.72zm7-5h-3v2h3v3h2v-3h3v-2h-3v-3h-2v3z\"}}]})(props);\n};\nexport function MdOutlineAddToDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 11c.17 0 .33.01.49.02L15 3H9l5.68 9.84A5.986 5.986 0 0119 11zM8.15 4.52L2 15.5 5 21l6.33-10.97zM13.2 15.5H9.9L6.73 21h7.81A5.93 5.93 0 0113 17c0-.52.07-1.02.2-1.5zM20 16v-3h-2v3h-3v2h3v3h2v-3h3v-2z\"}}]})(props);\n};\nexport function MdOutlineAddchart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5v2h-3v3h-2V7h-3V5h3V2h2v3h3zm-3 14H5V5h6V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6h-2v6zm-4-6v4h2v-4h-2zm-4 4h2V9h-2v8zm-2 0v-6H7v6h2z\"}}]})(props);\n};\nexport function MdOutlineAdminPanelSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"g\",\"attr\":{\"fillRule\":\"evenodd\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"15.5\",\"r\":\"1.12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17.5c-.73 0-2.19.36-2.24 1.08.5.71 1.32 1.17 2.24 1.17s1.74-.46 2.24-1.17c-.05-.72-1.51-1.08-2.24-1.08z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11.09V6.27L10.5 3 3 6.27v4.91c0 4.54 3.2 8.79 7.5 9.82.55-.13 1.08-.32 1.6-.55A5.973 5.973 0 0017 23c3.31 0 6-2.69 6-6 0-2.97-2.16-5.43-5-5.91zM11 17c0 .56.08 1.11.23 1.62-.24.11-.48.22-.73.3-3.17-1-5.5-4.24-5.5-7.74v-3.6l5.5-2.4 5.5 2.4v3.51c-2.84.48-5 2.94-5 5.91zm6 4c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"}}]}]})(props);\n};\nexport function MdOutlineAdsClick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.71 17.99A5.993 5.993 0 016 12c0-3.31 2.69-6 6-6 3.22 0 5.84 2.53 5.99 5.71l-2.1-.63a3.999 3.999 0 10-4.81 4.81l.63 2.1zM22 12c0 .3-.01.6-.04.9l-1.97-.59c.01-.1.01-.21.01-.31 0-4.42-3.58-8-8-8s-8 3.58-8 8 3.58 8 8 8c.1 0 .21 0 .31-.01l.59 1.97c-.3.03-.6.04-.9.04-5.52 0-10-4.48-10-10S6.48 2 12 2s10 4.48 10 10zm-3.77 4.26L22 15l-10-3 3 10 1.26-3.77 4.27 4.27 1.98-1.98-4.28-4.26z\"}}]})(props);\n};\nexport function MdOutlineAlarmAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.337 1.81l4.607 3.845-1.28 1.535-4.61-3.843zm-10.674 0l1.282 1.536L3.337 7.19l-1.28-1.536zM12 4a9 9 0 10.001 18.001A9 9 0 0012 4zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdOutlineAlarmOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.04 6.29C10.66 6.11 11.32 6 12 6c3.86 0 7 3.14 7 7 0 .68-.11 1.34-.29 1.96l1.56 1.56c.47-1.08.73-2.27.73-3.52A9 9 0 008.47 4.72l1.57 1.57zm7.297-4.48l4.607 3.845-1.28 1.535-4.61-3.843zM3.02 2.1L1.61 3.51l1.37 1.37-.92.77 1.28 1.54 1.06-.88.8.8A8.964 8.964 0 003 13a9 9 0 009 9c2.25 0 4.31-.83 5.89-2.2l2.1 2.1 1.41-1.41L3.02 2.1zM12 20c-3.86 0-7-3.14-7-7 0-1.7.61-3.26 1.62-4.47l9.85 9.85A6.956 6.956 0 0112 20zM7.48 3.73l.46-.38-1.28-1.54-.6.5z\"}}]})(props);\n};\nexport function MdOutlineAlarmOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.54 14.53L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06zm6.797-12.72l4.607 3.845-1.28 1.535-4.61-3.843zm-10.674 0l1.282 1.536L3.337 7.19l-1.28-1.536zM12 4a9 9 0 10.001 18.001A9 9 0 0012 4zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 8H11v6l4.75 2.85.75-1.23-4-2.37zm4.837-6.19l4.607 3.845-1.28 1.535-4.61-3.843zm-10.674 0l1.282 1.536L3.337 7.19l-1.28-1.536zM12 4a9 9 0 10.001 18.001A9 9 0 0012 4zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineAllInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 10h3.13c.21.78.67 1.47 1.27 2H5v-2zm14 2h-4.4c.6-.53 1.06-1.22 1.27-2H19v2zm0-4h-5v1c0 1.07-.93 2-2 2s-2-.93-2-2V8H5V5h14v3zm-2 7h-3v1c0 .47-.19.9-.48 1.25-.37.45-.92.75-1.52.75s-1.15-.3-1.52-.75c-.29-.35-.48-.78-.48-1.25v-1H3v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4h-4zM5 17h3.13c.02.09.06.17.09.25.24.68.65 1.28 1.18 1.75H5v-2zm14 2h-4.4c.54-.47.95-1.07 1.18-1.75.03-.08.07-.16.09-.25H19v2z\"}}]})(props);\n};\nexport function MdOutlineAllOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v4l4-4zm12 0l4 4V4zm4 16v-4l-4 4zM4 20h4l-4-4zm15-8c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7 7-3.13 7-7zm-7 5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdOutlineAnalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h2v5H7zM15 7h2v10h-2zM11 14h2v3h-2zM11 10h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 15l1.55 1.55c-.96 1.69-3.33 3.04-5.55 3.37V11h3V9h-3V7.82C14.16 7.4 15 6.3 15 5c0-1.65-1.35-3-3-3S9 3.35 9 5c0 1.3.84 2.4 2 2.82V9H8v2h3v8.92c-2.22-.33-4.59-1.68-5.55-3.37L7 15l-4-3v3c0 3.88 4.92 7 9 7s9-3.12 9-7v-3l-4 3zM12 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}}]})(props);\n};\nexport function MdOutlineAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.6 9.48l1.84-3.18c.16-.31.04-.69-.26-.85a.637.637 0 00-.83.22l-1.88 3.24a11.463 11.463 0 00-8.94 0L5.65 5.67a.643.643 0 00-.87-.2c-.28.18-.37.54-.22.83L6.4 9.48A10.78 10.78 0 001 18h22a10.78 10.78 0 00-5.4-8.52zM7 15.25a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zm10 0a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5z\"}}]})(props);\n};\nexport function MdOutlineAnnouncement (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zM11 5h2v6h-2zm0 8h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineApi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12l-2 2-2-2 2-2 2 2zm-2-6l2.12 2.12 2.5-2.5L12 1 7.38 5.62l2.5 2.5L12 6zm-6 6l2.12-2.12-2.5-2.5L1 12l4.62 4.62 2.5-2.5L6 12zm12 0l-2.12 2.12 2.5 2.5L23 12l-4.62-4.62-2.5 2.5L18 12zm-6 6l-2.12-2.12-2.5 2.5L12 23l4.62-4.62-2.5-2.5L12 18z\"}}]})(props);\n};\nexport function MdOutlineAppBlocking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-2.5 4A2.5 2.5 0 0118 9.5c.42 0 .8.11 1.15.29l-3.36 3.36c-.18-.35-.29-.73-.29-1.15zm2.5 2.5c-.42 0-.8-.11-1.15-.29l3.36-3.36c.18.35.29.73.29 1.15a2.5 2.5 0 01-2.5 2.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18H7V6h10v1h2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v1zM7 3h10v1H7V3zm10 18H7v-1h10v1z\"}}]})(props);\n};\nexport function MdOutlineArrowCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 10V8h-2v4H8l4 4 4-4h-3z\"}}]})(props);\n};\nexport function MdOutlineArrowCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0 2c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm-1-10v4h2v-4h3l-4-4-4 4h3z\"}}]})(props);\n};\nexport function MdOutlineArrowRightAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.01 11H4v2h12.01v3L20 12l-3.99-4v3z\"}}]})(props);\n};\nexport function MdOutlineArticle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"}}]})(props);\n};\nexport function MdOutlineAspectRatio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\"}}]})(props);\n};\nexport function MdOutlineAssessment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7 10h2v7H7zm4-3h2v10h-2zm4 6h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineAssignmentInd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.22 0 .41.1.55.25.12.13.2.31.2.5 0 .41-.34.75-.75.75s-.75-.34-.75-.75c0-.19.08-.37.2-.5.14-.15.33-.25.55-.25zM19 19H5V5h14v14zM12 6c-1.65 0-3 1.35-3 3s1.35 3 3 3 3-1.35 3-3-1.35-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-6 6.47V18h12v-1.53c0-2.5-3.97-3.58-6-3.58s-6 1.07-6 3.58zM8.31 16c.69-.56 2.38-1.12 3.69-1.12s3.01.56 3.69 1.12H8.31z\"}}]})(props);\n};\nexport function MdOutlineAssignmentLate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2zm0-8h2v6h-2zm8-4h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 00-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM19 19H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineAssignmentReturn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14h4v-4h-4V7l-5 5 5 5zm7-11h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 00-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM19 19H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineAssignmentReturned (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h-3V8h-4v4H7l5 5zm2-9h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 00-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM19 19H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineAssignmentTurnedIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9l-1.41-1.42L10 14.17l-2.59-2.58L6 13l4 4zm1-6h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 00-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM19 19H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineAssignment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15h7v2H7zm0-4h10v2H7zm0-4h10v2H7zm12-4h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 00-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM19 19H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineAutorenew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 016 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z\"}}]})(props);\n};\nexport function MdOutlineBackupTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6v14H6v2h14c1.1 0 2-.9 2-2V6h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 16H4v-5h5v5zm7 0h-5v-5h5v5zm0-7H4V4h12v5z\"}}]})(props);\n};\nexport function MdOutlineBackup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95A5.469 5.469 0 0112 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11A2.98 2.98 0 0122 15c0 1.65-1.35 3-3 3zM8 13h2.55v3h2.9v-3H16l-4-4z\"}}]})(props);\n};\nexport function MdOutlineBatchPrediction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8H7c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-4 12.5h-2V19h2v1.5zm0-2.5h-2c0-1.5-2.5-3-2.5-5 0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5c0 2-2.5 3.5-2.5 5zm5-11.5H6C6 5.67 6.67 5 7.5 5h9c.83 0 1.5.67 1.5 1.5zm-1-3H7C7 2.67 7.67 2 8.5 2h7c.83 0 1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineBookOnline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4H7V3h10v1zm0 17H7v-1h10v1zm0-20H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 6h10v12H7V6zm9 5V9.14C16 8.51 15.55 8 15 8H9c-.55 0-1 .51-1 1.14v1.96c.55 0 1 .45 1 1s-.45 1-1 1v1.76c0 .63.45 1.14 1 1.14h6c.55 0 1-.51 1-1.14V13c-.55 0-1-.45-1-1s.45-1 1-1zm-3.5 3.5h-1v-1h1v1zm0-2h-1v-1h1v1zm0-2h-1v-1h1v1z\"}}]})(props);\n};\nexport function MdOutlineBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 4h2v5l-1-.75L9 9V4zm9 16H6V4h1v9l3-2.25L13 13V4h5v16z\"}}]})(props);\n};\nexport function MdOutlineBookmarkAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11v6.97l-5-2.14-5 2.14V5h6V3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V11h-2zm4-4h-2v2h-2V7h-2V5h2V3h2v2h2v2z\"}}]})(props);\n};\nexport function MdOutlineBookmarkAdded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11v6.97l-5-2.14-5 2.14V5h6V3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V11h-2zm.83-2L15 6.17l1.41-1.41 1.41 1.41 3.54-3.54 1.41 1.41L17.83 9z\"}}]})(props);\n};\nexport function MdOutlineBookmarkBorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z\"}}]})(props);\n};\nexport function MdOutlineBookmarkRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11v6.97l-5-2.14-5 2.14V5h6V3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V11h-2zm4-4h-6V5h6v2z\"}}]})(props);\n};\nexport function MdOutlineBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-2 .9-2 2v16l7-3 7 3V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineBookmarks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7v12.97l-4.21-1.81-.79-.34-.79.34L5 19.97V7h10m4-6H8.99C7.89 1 7 1.9 7 3h10c1.1 0 2 .9 2 2v13l2 1V3c0-1.1-.9-2-2-2zm-4 4H5c-1.1 0-2 .9-2 2v16l7-3 7 3V7c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineBugReport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-2.81a5.985 5.985 0 00-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5s-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-4 4v3c0 .22-.03.47-.07.7l-.1.65-.37.65c-.72 1.24-2.04 2-3.46 2s-2.74-.77-3.46-2l-.37-.64-.1-.65A4.27 4.27 0 018 15v-4c0-.23.03-.48.07-.7l.1-.65.37-.65c.3-.52.72-.97 1.21-1.31l.57-.39.74-.18a3.787 3.787 0 011.89 0l.68.16.61.42c.5.34.91.78 1.21 1.31l.38.65.1.65c.04.22.07.47.07.69v1zm-6 2h4v2h-4zm0-4h4v2h-4z\"}}]})(props);\n};\nexport function MdOutlineBuildCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"g\",\"attr\":{\"fillRule\":\"evenodd\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.49 11.38c.43-1.22.17-2.64-.81-3.62a3.468 3.468 0 00-4.1-.59l2.35 2.35-1.41 1.41-2.35-2.35c-.71 1.32-.52 2.99.59 4.1.98.98 2.4 1.24 3.62.81l3.41 3.41c.2.2.51.2.71 0l1.4-1.4c.2-.2.2-.51 0-.71l-3.41-3.41z\"}}]}]})(props);\n};\nexport function MdOutlineBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 18.99l-9.08-9.08c.93-2.34.45-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11 6.08 7.52 2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.4-.38.4-1.01 0-1.41zm-3 1.6l-9.46-9.46c-.61.45-1.29.72-2 .82-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09 4.24-4.24-3.09-3.09c1.24-.07 2.49.37 3.44 1.31a4.469 4.469 0 011.24 3.96 4.35 4.35 0 01-.88 1.96l9.45 9.45-.88.89z\"}}]})(props);\n};\nexport function MdOutlineCached (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8l-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 01-2.8-.7l-1.46 1.46A7.93 7.93 0 0012 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0012 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z\"}}]})(props);\n};\nexport function MdOutlineCalendarToday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V10h16v11zm0-13H4V5h16v3z\"}}]})(props);\n};\nexport function MdOutlineCalendarViewDay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z\"}}]})(props);\n};\nexport function MdOutlineCalendarViewMonth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8 11H4V6h4v5zm6 0h-4V6h4v5zm6 0h-4V6h4v5zM8 18H4v-5h4v5zm6 0h-4v-5h4v5zm6 0h-4v-5h4v5z\"}}]})(props);\n};\nexport function MdOutlineCalendarViewWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 2h2.5v12H13V6zm-2 12H8.5V6H11v12zM4 6h2.5v12H4V6zm16 12h-2.5V6H20v12z\"}}]})(props);\n};\nexport function MdOutlineCameraEnhance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10l-.94 2.06L9 13l2.06.94L12 16l.94-2.06L15 13l-2.06-.94zm8-5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14H4V7h4.05l.59-.65L9.88 5h4.24l1.24 1.35.59.65H20v12zM12 8c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"}}]})(props);\n};\nexport function MdOutlineCancelScheduleSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 9c-.42 0-.83.04-1.24.11L1.01 3 1 10l10.06 1.34c-.42.44-.78.93-1.09 1.46L1 14l.01 7 8.07-3.46C9.59 21.19 12.71 24 16.5 24c4.14 0 7.5-3.36 7.5-7.5S20.64 9 16.5 9zM3 8.25l.01-2.22 7.51 3.22-7.52-1zm6.1 7.11L3 17.97v-2.22l6.17-.82c-.03.14-.05.28-.07.43zM16.5 22c-3.03 0-5.5-2.47-5.5-5.5s2.47-5.5 5.5-5.5 5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.27 14.03l-1.77 1.76-1.77-1.76-.7.7 1.76 1.77-1.76 1.77.7.7 1.77-1.76 1.77 1.76.7-.7-1.76-1.77 1.76-1.77z\"}}]})(props);\n};\nexport function MdOutlineCardGiftcard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 00-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 12 7.4l3.38 4.6L17 10.83 14.92 8H20v6z\"}}]})(props);\n};\nexport function MdOutlineCardMembership (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z\"}}]})(props);\n};\nexport function MdOutlineCardTravel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11 15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z\"}}]})(props);\n};\nexport function MdOutlineChangeHistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z\"}}]})(props);\n};\nexport function MdOutlineCheckCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z\"}}]})(props);\n};\nexport function MdOutlineCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z\"}}]})(props);\n};\nexport function MdOutlineChromeReaderMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM3 19V6h8v13H3zm18 0h-8V6h8v13zm-7-9.5h6V11h-6zm0 2.5h6v1.5h-6zm0 2.5h6V16h-6z\"}}]})(props);\n};\nexport function MdOutlineCircleNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18.5c.83 0 1.5-.67 1.5-1.5h-3c0 .83.67 1.5 1.5 1.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4-8.61c0-2.11-1.03-3.92-3-4.39v-.5c0-.57-.43-1-1-1s-1 .43-1 1V7c-1.97.47-3 2.27-3 4.39V14H7v2h10v-2h-1v-2.61zM14 14h-4v-3c0-1.1.9-2 2-2s2 .9 2 2v3z\"}}]})(props);\n};\nexport function MdOutlineClass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 4h2v5l-1-.75L9 9V4zm9 16H6V4h1v9l3-2.25L13 13V4h5v16z\"}}]})(props);\n};\nexport function MdOutlineCloseFullscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3.41L16.71 8.7 20 12h-8V4l3.29 3.29L20.59 2 22 3.41zM3.41 22l5.29-5.29L12 20v-8H4l3.29 3.29L2 20.59 3.41 22z\"}}]})(props);\n};\nexport function MdOutlineCodeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.17 12l-4.58-4.59L16 6l6 6-3.59 3.59L17 14.17 19.17 12zM1.39 4.22l4.19 4.19L2 12l6 6 1.41-1.41L4.83 12 7 9.83l12.78 12.78 1.41-1.41L2.81 2.81 1.39 4.22z\"}}]})(props);\n};\nexport function MdOutlineCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\"}}]})(props);\n};\nexport function MdOutlineCommentBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 14V6h-5v8l2.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z\"}}]})(props);\n};\nexport function MdOutlineCommute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4H5C3.34 4 2 5.34 2 7v8c0 1.66 1.34 3 3 3l-1 1v1h1l2-2h2v-5H4V6h9v2h2V7c0-1.66-1.34-3-3-3zM5 14c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm15.57-4.34c-.14-.4-.52-.66-.97-.66h-7.19c-.46 0-.83.26-.98.66l-1.42 4.11v5.51c0 .38.31.72.69.72h.62c.38 0 .68-.38.68-.76V18h8v1.24c0 .38.31.76.69.76h.61c.38 0 .69-.34.69-.72l.01-1.37v-4.14l-1.43-4.11zm-8.16.34h7.19l1.03 3h-9.25l1.03-3zM12 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineCompareArrows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z\"}}]})(props);\n};\nexport function MdOutlineCompress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9v2h16V9H4zm12-5l-1.41-1.41L13 4.17V1h-2v3.19L9.39 2.61 8 4l4 4 4-4zM4 14h16v-2H4v2zm4 5l1.39 1.39L11 18.81V22h2v-3.17l1.59 1.59L16 19l-4-4-4 4z\"}}]})(props);\n};\nexport function MdOutlineContactPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.17 4L18 8.83V20H6V4h7.17M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm-2 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 00-5.56 0A2.01 2.01 0 008 17.43V18h8v-.57z\"}}]})(props);\n};\nexport function MdOutlineContactSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 23.59v-3.6c-5.01-.26-9-4.42-9-9.49C2 5.26 6.26 1 11.5 1S21 5.26 21 10.5c0 4.95-3.44 9.93-8.57 12.4l-1.43.69zM11.5 3C7.36 3 4 6.36 4 10.5S7.36 18 11.5 18H13v2.3c3.64-2.3 6-6.08 6-9.8C19 6.36 15.64 3 11.5 3zm-1 11.5h2v2h-2zm2-1.5h-2c0-3.25 3-3 3-5 0-1.1-.9-2-2-2s-2 .9-2 2h-2c0-2.21 1.79-4 4-4s4 1.79 4 4c0 2.5-3 2.75-3 5z\"}}]})(props);\n};\nexport function MdOutlineContactless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.1 10.18a4.384 4.384 0 010 3.66l1.37.62c.37-.81.55-1.65.54-2.5-.01-.84-.19-1.65-.54-2.4l-1.37.62zM13.33 7.33c.78 1.57 1.18 3.14 1.18 4.64 0 1.51-.4 3.09-1.18 4.69l1.35.66c.88-1.81 1.33-3.61 1.33-5.35 0-1.74-.45-3.53-1.33-5.31l-1.35.67zM10.2 8.72c.53 1.07.8 2.21.8 3.4 0 1.17-.26 2.23-.78 3.15l1.3.74c.65-1.15.98-2.45.98-3.89 0-1.42-.32-2.79-.96-4.07l-1.34.67z\"}}]})(props);\n};\nexport function MdOutlineCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.08 10.86c.05-.33.16-.62.3-.87s.34-.46.59-.62c.24-.15.54-.22.91-.23.23.01.44.05.63.13.2.09.38.21.52.36s.25.33.34.53.13.42.14.64h1.79c-.02-.47-.11-.9-.28-1.29s-.4-.73-.7-1.01-.66-.5-1.08-.66-.88-.23-1.39-.23c-.65 0-1.22.11-1.7.34s-.88.53-1.2.92-.56.84-.71 1.36S8 11.29 8 11.87v.27c0 .58.08 1.12.23 1.64s.39.97.71 1.35.72.69 1.2.91c.48.22 1.05.34 1.7.34.47 0 .91-.08 1.32-.23s.77-.36 1.08-.63.56-.58.74-.94.29-.74.3-1.15h-1.79c-.01.21-.06.4-.15.58s-.21.33-.36.46-.32.23-.52.3c-.19.07-.39.09-.6.1-.36-.01-.66-.08-.89-.23-.25-.16-.45-.37-.59-.62s-.25-.55-.3-.88-.08-.67-.08-1v-.27c0-.35.03-.68.08-1.01zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineCreditCardOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.83 4H20c1.11 0 2 .89 2 2v12c0 .34-.08.66-.23.94L20 17.17V12h-5.17l-4-4H20V6H8.83l-2-2zm13.66 19.31L17.17 20H4c-1.11 0-2-.89-2-2l.01-12c0-.34.08-.66.23-.93L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM4 6.83V8h1.17L4 6.83zM15.17 18l-6-6H4v6h11.17z\"}}]})(props);\n};\nexport function MdOutlineCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z\"}}]})(props);\n};\nexport function MdOutlineDangerous (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM19 14.9L14.9 19H9.1L5 14.9V9.1L9.1 5h5.8L19 9.1v5.8zm-4.17-7.14L12 10.59 9.17 7.76 7.76 9.17 10.59 12l-2.83 2.83 1.41 1.41L12 13.41l2.83 2.83 1.41-1.41L13.41 12l2.83-2.83-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineDashboardCustomize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11h8V3H3v8zm2-6h4v4H5V5zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM18 13h-2v3h-3v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdOutlineDashboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z\"}}]})(props);\n};\nexport function MdOutlineDataExploration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.52-4.48-10-10-10zm0 18c-2.89 0-5.43-1.54-6.83-3.84l2.95-2.95L11.41 16 16 11.42V13h2V8h-5v2h1.58l-3.28 3.28L8 10.5l-3.69 3.7C4.11 13.5 4 12.76 4 12c0-4.41 3.59-8 8-8s8 3.59 8 8-3.59 8-8 8zm7.5.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineDateRange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11h2v2H7v-2zm14-5v14c0 1.1-.9 2-2 2H5a2 2 0 01-2-2l.01-14c0-1.1.88-2 1.99-2h1V2h2v2h8V2h2v2h1c1.1 0 2 .9 2 2zM5 8h14V6H5v2zm14 12V10H5v10h14zm-4-7h2v-2h-2v2zm-4 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineDeleteForever (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.12 10.47L12 12.59l-2.13-2.12-1.41 1.41L10.59 14l-2.12 2.12 1.41 1.41L12 15.41l2.12 2.12 1.41-1.41L13.41 14l2.12-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4zM6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9z\"}}]})(props);\n};\nexport function MdOutlineDeleteOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4h-3.5z\"}}]})(props);\n};\nexport function MdOutlineDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9v10H8V9h8m-1.5-6h-5l-1 1H5v2h14V4h-3.5l-1-1zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7z\"}}]})(props);\n};\nexport function MdOutlineDescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16h8v2H8zm0-4h8v2H8zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z\"}}]})(props);\n};\nexport function MdOutlineDisabledByDefault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19H5V5h14v14zM3 3v18h18V3H3zm14 12.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"}}]})(props);\n};\nexport function MdOutlineDisabledVisible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 15c1.95 0 3.76.98 4.75 2.5-.99 1.52-2.8 2.5-4.75 2.5s-3.76-.98-4.75-2.5c.99-1.52 2.8-2.5 4.75-2.5zm0-2c-3.18 0-5.9 1.87-7 4.5 1.1 2.63 3.82 4.5 7 4.5s5.9-1.87 7-4.5c-1.1-2.63-3.82-4.5-7-4.5zm0 6c-.83 0-1.5-.67-1.5-1.5S16.17 16 17 16s1.5.67 1.5 1.5S17.83 19 17 19zm4.99-6.66c.01-.11.01-.23.01-.34 0-5.52-4.48-10-10-10S2 6.48 2 12c0 5.17 3.93 9.43 8.96 9.95a9.343 9.343 0 01-2.32-2.68A8.01 8.01 0 014 12c0-1.85.63-3.55 1.69-4.9l5.66 5.66c.56-.4 1.17-.73 1.82-1L7.1 5.69A7.902 7.902 0 0112 4c4.24 0 7.7 3.29 7.98 7.45.71.22 1.39.52 2.01.89z\"}}]})(props);\n};\nexport function MdOutlineDns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15v4H5v-4h14m1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 18.5c-.82 0-1.5-.67-1.5-1.5s.68-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM19 5v4H5V5h14m1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 8.5c-.82 0-1.5-.67-1.5-1.5S6.18 5.5 7 5.5s1.5.68 1.5 1.5S7.83 8.5 7 8.5z\"}}]})(props);\n};\nexport function MdOutlineDoneAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z\"}}]})(props);\n};\nexport function MdOutlineDoneOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 4.93l1.4 1.4L8.43 19.07l-5.6-5.6 1.4-1.4 4.2 4.2L19.77 4.93m0-2.83L8.43 13.44l-4.2-4.2L0 13.47l8.43 8.43L24 6.33 19.77 2.1z\"}}]})(props);\n};\nexport function MdOutlineDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"}}]})(props);\n};\nexport function MdOutlineDonutLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5.08A7 7 0 0118.92 11h3.03c-.47-4.72-4.23-8.48-8.95-8.95v3.03zM18.92 13A7 7 0 0113 18.92v3.03c4.72-.47 8.48-4.23 8.95-8.95h-3.03zM11 18.92c-3.39-.49-6-3.4-6-6.92s2.61-6.43 6-6.92V2.05c-5.05.5-9 4.76-9 9.95 0 5.19 3.95 9.45 9 9.95v-3.03z\"}}]})(props);\n};\nexport function MdOutlineDonutSmall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.82 11h7.13c-.47-4.72-4.23-8.48-8.95-8.95v7.13c.85.31 1.51.97 1.82 1.82zM15 4.58C17 5.4 18.6 7 19.42 9h-3.43c-.28-.37-.62-.71-.99-.99V4.58zM2 12c0 5.19 3.95 9.45 9 9.95v-7.13C9.84 14.4 9 13.3 9 12c0-1.3.84-2.4 2-2.82V2.05c-5.05.5-9 4.76-9 9.95zm7-7.42v3.44c-1.23.92-2 2.39-2 3.98 0 1.59.77 3.06 2 3.99v3.44C6.04 18.24 4 15.35 4 12c0-3.35 2.04-6.24 5-7.42zm4 10.24v7.13c4.72-.47 8.48-4.23 8.95-8.95h-7.13c-.31.85-.97 1.51-1.82 1.82zm2 1.17c.37-.28.71-.61.99-.99h3.43C18.6 17 17 18.6 15 19.42v-3.43z\"}}]})(props);\n};\nexport function MdOutlineDragIndicator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineDynamicForm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h9v7zM4 9h7V6H4v3zm11 11H4c-1.1 0-2-.9-2-2v-3c0-1.1.9-2 2-2h11v7zM4 18h9v-3H4v3zm18-9h-2l2-5h-7v7h2v9l5-11zM4.75 17.25h1.5v-1.5h-1.5v1.5zm0-9h1.5v-1.5h-1.5v1.5z\"}}]})(props);\n};\nexport function MdOutlineEco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.05 8.05a7.007 7.007 0 000 9.9C7.42 19.32 9.21 20 11 20s3.58-.68 4.95-2.05C19.43 14.47 20 4 20 4S9.53 4.57 6.05 8.05zm8.49 8.49c-.95.94-2.2 1.46-3.54 1.46-.89 0-1.73-.25-2.48-.68.92-2.88 2.62-5.41 4.88-7.32-2.63 1.36-4.84 3.46-6.37 6-1.48-1.96-1.35-4.75.44-6.54C9.21 7.72 14.04 6.65 17.8 6.2c-.45 3.76-1.52 8.59-3.26 10.34z\"}}]})(props);\n};\nexport function MdOutlineEditCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 10h14v2h2V6c0-1.1-.9-2-2-2h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 002 2h7v-2H5V10zm0-4h14v2H5V6zm17.84 10.28l-.71.71-2.12-2.12.71-.71a.996.996 0 011.41 0l.71.71c.39.39.39 1.02 0 1.41zm-3.54-.7l2.12 2.12-5.3 5.3H14v-2.12l5.3-5.3z\"}}]})(props);\n};\nexport function MdOutlineEditOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.06 9.02l.92.92-1.11 1.11 1.41 1.41 2.52-2.52-3.75-3.75-2.52 2.52 1.41 1.41 1.12-1.1zm6.65-1.98a.996.996 0 000-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29s-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83zM2.81 2.81L1.39 4.22l7.32 7.32L3 17.25V21h3.75l5.71-5.71 7.32 7.32 1.41-1.41L2.81 2.81zM5.92 19H5v-.92l5.13-5.13.92.92L5.92 19z\"}}]})(props);\n};\nexport function MdOutlineEject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17h14v2H5zm7-12L5.33 15h13.34L12 5zm0 3.6l2.93 4.4H9.07L12 8.6z\"}}]})(props);\n};\nexport function MdOutlineEuroSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 18.5A6.48 6.48 0 019.24 15H15v-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15V9H9.24A6.491 6.491 0 0115 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3A8.955 8.955 0 0015 3c-3.92 0-7.24 2.51-8.48 6H3v2h3.06a8.262 8.262 0 000 2H3v2h3.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z\"}}]})(props);\n};\nexport function MdOutlineEventSeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5v7H9V5h6m0-2H9c-1.1 0-2 .9-2 2v9h10V5c0-1.1-.9-2-2-2zm7 7h-3v3h3v-3zM5 10H2v3h3v-3zm15 5H4v6h2v-4h12v4h2v-6z\"}}]})(props);\n};\nexport function MdOutlineEvent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2zm-7 5h5v5h-5z\"}}]})(props);\n};\nexport function MdOutlineExitToApp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5a2 2 0 00-2 2v4h2V5h14v14H5v-4H3v4a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h16v2H4zM4 2h16v2H4zM9.41 13.59L8 15l4 4 4-4-1.41-1.41L13 15.17V8.83l1.59 1.58L16 9l-4-4-4 4 1.41 1.41L11 8.83v6.34z\"}}]})(props);\n};\nexport function MdOutlineExploreOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8 0 1.48-.41 2.86-1.12 4.06l1.46 1.46A9.967 9.967 0 0022 12c0-5.52-4.48-10-10-10-2.04 0-3.93.61-5.51 1.66l1.46 1.46A7.869 7.869 0 0112 4zm2.91 8.08L17.5 6.5l-5.58 2.59 2.99 2.99zM2.1 4.93l1.56 1.56A9.91 9.91 0 002 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l1.56 1.56 1.41-1.41L3.51 3.51 2.1 4.93zm3.02 3.01l3.98 3.98-2.6 5.58 5.58-2.59 3.98 3.98c-1.2.7-2.58 1.11-4.06 1.11-4.41 0-8-3.59-8-8 0-1.48.41-2.86 1.12-4.06z\"}}]})(props);\n};\nexport function MdOutlineExplore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"}}]})(props);\n};\nexport function MdOutlineExtensionOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.39 4.22l1.62 1.62c0 .05-.01.1-.01.16v3.8c2.7 0 3 2.16 3 2.7s-.29 2.7-3 2.7V19c0 1.1.9 2 2 2h3.8c0-2.71 2.16-3 2.7-3s2.7.29 2.7 3H18c.06 0 .11 0 .16-.01l1.61 1.61 1.41-1.41L2.81 2.81 1.39 4.22zM11.5 16c-1.5 0-3.57.83-4.37 3H5v-2.13c2.17-.8 3-2.87 3-4.37 0-.69-.18-1.5-.58-2.25l6.33 6.33A4.89 4.89 0 0011.5 16zM8.83 6l-2-2H9a2.5 2.5 0 015 0h4c1.1 0 2 .9 2 2v4a2.5 2.5 0 010 5v2.17l-2-2V13h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2V6h-6V4c0-.28-.22-.5-.5-.5s-.5.22-.5.5v2H8.83z\"}}]})(props);\n};\nexport function MdOutlineExtension (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 4.5c.28 0 .5.22.5.5v2h6v6h2c.28 0 .5.22.5.5s-.22.5-.5.5h-2v6h-2.12c-.68-1.75-2.39-3-4.38-3s-3.7 1.25-4.38 3H4v-2.12c1.75-.68 3-2.39 3-4.38 0-1.99-1.24-3.7-2.99-4.38L4 7h6V5c0-.28.22-.5.5-.5m0-2A2.5 2.5 0 008 5H4c-1.1 0-1.99.9-1.99 2v3.8h.29c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-.3c0-1.49 1.21-2.7 2.7-2.7s2.7 1.21 2.7 2.7v.3H17c1.1 0 2-.9 2-2v-4a2.5 2.5 0 000-5V7c0-1.1-.9-2-2-2h-4a2.5 2.5 0 00-2.5-2.5z\"}}]})(props);\n};\nexport function MdOutlineFaceUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.25 13a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zM15 11.75a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm7 .25c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2s10 4.48 10 10zM10.66 4.12C12.06 6.44 14.6 8 17.5 8c.46 0 .91-.05 1.34-.12C17.44 5.56 14.9 4 12 4c-.46 0-.91.05-1.34.12zM4.42 9.47a8.046 8.046 0 003.66-4.44 8.046 8.046 0 00-3.66 4.44zM20 12c0-.78-.12-1.53-.33-2.24-.7.15-1.42.24-2.17.24a10 10 0 01-7.76-3.69A10.016 10.016 0 014 11.86c.01.04 0 .09 0 .14 0 4.41 3.59 8 8 8s8-3.59 8-8z\"}}]})(props);\n};\nexport function MdOutlineFace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.25 13a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zM15 11.75a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5zm7 .25c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2s10 4.48 10 10zM10.66 4.12C12.06 6.44 14.6 8 17.5 8c.46 0 .91-.05 1.34-.12C17.44 5.56 14.9 4 12 4c-.46 0-.91.05-1.34.12zM4.42 9.47a8.046 8.046 0 003.66-4.44 8.046 8.046 0 00-3.66 4.44zM20 12c0-.78-.12-1.53-.33-2.24-.7.15-1.42.24-2.17.24a10 10 0 01-7.76-3.69A10.016 10.016 0 014 11.86c.01.04 0 .09 0 .14 0 4.41 3.59 8 8 8s8-3.59 8-8z\"}}]})(props);\n};\nexport function MdOutlineFactCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"g\",\"attr\":{\"fillRule\":\"evenodd\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H4V5h16v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.41 10.42L17.99 9l-3.17 3.17-1.41-1.42L12 12.16 14.82 15zM5 7h5v2H5zM5 11h5v2H5zM5 15h5v2H5z\"}}]}]})(props);\n};\nexport function MdOutlineFavoriteBorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z\"}}]})(props);\n};\nexport function MdOutlineFavorite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z\"}}]})(props);\n};\nexport function MdOutlineFeedback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17l-.59.59-.58.58V4h16v12zm-9-4h2v2h-2zm0-6h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineFilePresent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h8v4h4v12zm-6-3c-1.1 0-2-.9-2-2V9.5c0-.28.22-.5.5-.5s.5.22.5.5V15h2V9.5a2.5 2.5 0 00-5 0V15c0 2.21 1.79 4 4 4s4-1.79 4-4v-4h-2v4c0 1.1-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineFilterAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24m0 24H0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 6h10l-5.01 6.3L7 6zm-2.75-.39C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0018.95 4H5.04c-.83 0-1.3.95-.79 1.61z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdOutlineFindInPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 4h7l5 5v8.58l-1.84-1.84a4.992 4.992 0 00-.64-6.28A4.96 4.96 0 0012 8a5 5 0 00-3.53 1.46 4.98 4.98 0 000 7.05 4.982 4.982 0 006.28.63L17.6 20H6V4zm8.11 11.1c-.56.56-1.31.88-2.11.88s-1.55-.31-2.11-.88c-.56-.56-.88-1.31-.88-2.11s.31-1.55.88-2.11c.56-.57 1.31-.88 2.11-.88s1.55.31 2.11.88c.56.56.88 1.31.88 2.11s-.31 1.55-.88 2.11z\"}}]})(props);\n};\nexport function MdOutlineFindReplace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05A6.976 6.976 0 0011 4c-3.53 0-6.43 2.61-6.92 6H6.1A5 5 0 0111 6zm5.64 9.14A6.89 6.89 0 0017.92 12H15.9a5 5 0 01-4.9 4c-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05A6.976 6.976 0 0011 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z\"}}]})(props);\n};\nexport function MdOutlineFingerprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2a.506.506 0 01.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67a.49.49 0 01-.44.28zM3.5 9.72a.499.499 0 01-.41-.79c.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25a.5.5 0 01-.12.7c-.23.16-.54.11-.7-.12a9.388 9.388 0 00-3.39-2.94c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07a.47.47 0 01-.35-.15c-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39s-4.66 1.97-4.66 4.39c0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1a7.297 7.297 0 01-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94s3.08 1.32 3.08 2.94c0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29a11.14 11.14 0 01-.73-3.96c0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z\"}}]})(props);\n};\nexport function MdOutlineFitScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 16h12V8H6v8zm2-6h8v4H8v-4zm-4 5H2v3c0 1.1.9 2 2 2h3v-2H4v-3zm0-9h3V4H4c-1.1 0-2 .9-2 2v3h2V6zm16-2h-3v2h3v3h2V6c0-1.1-.9-2-2-2zm0 14h-3v2h3c1.1 0 2-.9 2-2v-3h-2v3z\"}}]})(props);\n};\nexport function MdOutlineFlaky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M14.05 17.58l-.01.01-2.4-2.4 1.06-1.06 1.35 1.35L16.54 13l1.06 1.06-3.54 3.54-.01-.02zM12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM7.34 6.28l1.41 1.41 1.41-1.41 1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.41-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.41 1.06-1.06zM12 20c-2.2 0-4.2-.9-5.7-2.3L17.7 6.3C19.1 7.8 20 9.8 20 12c0 4.4-3.6 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineFlightLand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 19h19v2h-19v-2zm16.84-3.15c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.06-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l16.57 4.44z\"}}]})(props);\n};\nexport function MdOutlineFlightTakeoff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 19h19v2h-19v-2zm19.57-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.33-1.97-1.54-1.45.39 2.59 4.49L21 11.49c.81-.23 1.28-1.05 1.07-1.85z\"}}]})(props);\n};\nexport function MdOutlineFlipToBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7H7v2h2V7zm0 4H7v2h2v-2zm0-8a2 2 0 00-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2V3zM9 17v-2H7a2 2 0 002 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zM5 7H3v12a2 2 0 002 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineFlipToFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3a2 2 0 002 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9a2 2 0 00-2 2v10a2 2 0 002 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z\"}}]})(props);\n};\nexport function MdOutlineFlutterDash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.07 11.7c.29-.39.81-.56 1.27-.37.17.07.32.18.43.33.22.28.25.59.22.85-.05.33-.25.63-.54.79 0 0-4.87 2.95-5.07 2.69s3.69-4.29 3.69-4.29zM22 10c0 2.5-1 3-1.5 3-.23 0-.44-.1-.62-.26-.48 3.32-2.36 5.31-5.33 5.99.11.44.48.77.95.77h.58c.22 0 .41.15.48.36.17.52.66 1.02 1.02 1.32.25.21.24.59-.03.78-.34.24-.9.49-1.79.53a.501.501 0 01-.45-.22c-.13-.2-.31-.56-.31-1.01 0-.3.04-.57.09-.8-.78-.16-1.39-.78-1.55-1.56-.49.06-1 .1-1.54.1-.88 0-1.7-.09-2.45-.25-.02.08-.05.16-.05.25 0 .55.45 1 1 1h.58c.22 0 .41.15.48.36.17.52.66 1.02 1.02 1.32.25.21.24.59-.03.78-.34.24-.9.49-1.79.53a.501.501 0 01-.45-.22c-.13-.2-.31-.56-.31-1.01 0-.3.04-.57.09-.8-.9-.19-1.59-1-1.59-1.96 0-.18.03-.36.08-.53-2.46-.86-4.03-2.78-4.46-5.74-.18.17-.38.27-.62.27C3 13 2 12.5 2 10c0-2.27 1.7-4.5 3-4.5.43 0 .49.49.5.85a7.989 7.989 0 015.55-3.29c.2-.96 1.08-1.56 1.95-1.56v1s.33-.5 1-.5c.67 0 1 .5 1 .5-.49 0-.85.35-.96.77 1.82.48 3.39 1.59 4.46 3.08.01-.36.07-.85.5-.85 1.3 0 3 2.23 3 4.5zM5 11c0 .81.1 1.53.25 2.21.18-.69.46-1.33.83-1.92a3.77 3.77 0 01-.34-1.54A3.766 3.766 0 019.5 6c.96 0 1.84.37 2.5.97.66-.6 1.54-.97 2.5-.97 2.07 0 3.75 1.68 3.75 3.75 0 .55-.12 1.07-.34 1.54.37.59.66 1.24.84 1.94.15-.68.25-1.41.25-2.23 0-3.86-3.14-7-7-7s-7 3.14-7 7zm12.98 4.29c0-.1.02-.19.02-.29 0-1.01-.26-1.95-.7-2.78-.69.78-1.68 1.28-2.8 1.28-.27 0-.54-.03-.79-.09.14-.23.23-.49.27-.77.01-.07.01-.13.02-.19.17.03.33.05.5.05 1.52 0 2.75-1.23 2.75-2.75S16.02 7 14.5 7c-.67 0-1.32.25-1.83.72l-.67.6-.67-.6C10.82 7.25 10.17 7 9.5 7 7.98 7 6.75 8.23 6.75 9.75c0 1.34.96 2.46 2.23 2.7l-.76.83c-.6-.22-1.12-.59-1.53-1.05A6.01 6.01 0 006 15c0 .08.01.15.01.24C7.13 17.06 9.14 18 12 18c2.88 0 4.88-.91 5.98-2.71zM16 9.75c0 .97-.67 1.75-1.5 1.75S13 10.72 13 9.75 13.67 8 14.5 8s1.5.78 1.5 1.75zm-.75-.87c0-.21-.17-.38-.38-.38s-.37.17-.37.38.17.38.38.38.37-.18.37-.38zM11 9.75c0 .97-.67 1.75-1.5 1.75S8 10.72 8 9.75 8.67 8 9.5 8s1.5.78 1.5 1.75zm-.75-.87c0-.21-.17-.38-.38-.38s-.37.17-.37.38.17.38.38.38.37-.18.37-.38z\"}}]})(props);\n};\nexport function MdOutlineFreeCancellation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.21 20H5V10h14v4.38l2-2V6c0-1.1-.9-2-2-2h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 002 2h8.21l-2-2zM5 6h14v2H5V6zm11.54 16.5L13 18.96l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41-5.64 5.66zM10.41 14L12 15.59 10.59 17 9 15.41 7.41 17 6 15.59 7.59 14 6 12.41 7.41 11 9 12.59 10.59 11 12 12.41 10.41 14z\"}}]})(props);\n};\nexport function MdOutlineGTranslate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-9.12L10 2H4c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h7l1 3h8c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zM7.17 14.59c-2.25 0-4.09-1.83-4.09-4.09s1.83-4.09 4.09-4.09c1.04 0 1.99.37 2.74 1.07l.07.06-1.23 1.18-.06-.05c-.29-.27-.78-.59-1.52-.59-1.31 0-2.38 1.09-2.38 2.42s1.07 2.42 2.38 2.42c1.37 0 1.96-.87 2.12-1.46H7.08V9.91h3.95l.01.07c.04.21.05.4.05.61 0 2.35-1.61 4-3.92 4zm6.03-1.71c.33.6.74 1.18 1.19 1.7l-.54.53-.65-2.23zm.77-.76h-.99l-.31-1.04h3.99s-.34 1.31-1.56 2.74c-.52-.62-.89-1.23-1.13-1.7zM21 20c0 .55-.45 1-1 1h-7l2-2-.81-2.77.92-.92L17.79 18l.73-.73-2.71-2.68c.9-1.03 1.6-2.25 1.92-3.51H19v-1.04h-3.64V9h-1.04v1.04h-1.96L11.18 6H20c.55 0 1 .45 1 1v13z\"}}]})(props);\n};\nexport function MdOutlineGavel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 21h12v2H1v-2zM5.24 8.07l2.83-2.83 14.14 14.14-2.83 2.83L5.24 8.07zM12.32 1l5.66 5.66-2.83 2.83-5.66-5.66L12.32 1zM3.83 9.48l5.66 5.66-2.83 2.83L1 12.31l2.83-2.83z\"}}]})(props);\n};\nexport function MdOutlineGeneratingTokens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm3-7.5h-2v5H8v-5H6V9h6v1.5zm8.25-6.75L23 5l-2.75 1.25L19 9l-1.25-2.75L15 5l2.75-1.25L19 1l1.25 2.75zm0 14L23 19l-2.75 1.25L19 23l-1.25-2.75L15 19l2.75-1.25L19 15l1.25 2.75z\"}}]})(props);\n};\nexport function MdOutlineGetApp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5v6h1.17L12 13.17 9.83 11H11V5h2m2-2H9v6H5l7 7 7-7h-4V3zm4 15H5v2h14v-2z\"}}]})(props);\n};\nexport function MdOutlineGif (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 9H13v6h-1.5V9zM9 9H6c-.6 0-1 .5-1 1v4c0 .5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zm10 1.5V9h-4.5v6H16v-2h2v-1.5h-2v-1h3z\"}}]})(props);\n};\nexport function MdOutlineGrade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.13l.97 2.29.47 1.11 1.2.1 2.47.21-1.88 1.63-.91.79.27 1.18.56 2.41-2.12-1.28-1.03-.64-1.03.62-2.12 1.28.56-2.41.27-1.18-.91-.79-1.88-1.63 2.47-.21 1.2-.1.47-1.11.97-2.27M12 2L9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2z\"}}]})(props);\n};\nexport function MdOutlineGrading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h16v2H4V7zm0 6h16v-2H4v2zm0 4h7v-2H4v2zm0 4h7v-2H4v2zm11.41-2.83L14 16.75l-1.41 1.41L15.41 21 20 16.42 18.58 15l-3.17 3.17zM4 3v2h16V3H4z\"}}]})(props);\n};\nexport function MdOutlineGroupWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"14\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"14\",\"r\":\"2\"}}]})(props);\n};\nexport function MdOutlineHelpCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.25 16.74c0 .69-.53 1.26-1.25 1.26-.7 0-1.26-.56-1.26-1.26 0-.71.56-1.25 1.26-1.25.71 0 1.25.55 1.25 1.25zM11.99 6c-1.77 0-2.98 1.15-3.43 2.49l1.64.69c.22-.67.74-1.48 1.8-1.48 1.62 0 1.94 1.52 1.37 2.33-.54.77-1.47 1.29-1.96 2.16-.39.69-.31 1.49-.31 1.98h1.82c0-.93.07-1.12.22-1.41.39-.72 1.11-1.06 1.87-2.17.68-1 .42-2.36-.02-3.08-.51-.84-1.52-1.51-3-1.51zM19 5H5v14h14V5m0-2c1.1 0 2 .9 2 2v14c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14z\"}}]})(props);\n};\nexport function MdOutlineHelpOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdOutlineHelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"}}]})(props);\n};\nexport function MdOutlineHideSource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.81 2.81L1.39 4.22l2.27 2.27A9.91 9.91 0 002 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.41L2.81 2.81zM12 20c-4.41 0-8-3.59-8-8 0-1.48.41-2.86 1.12-4.06l10.94 10.94C14.86 19.59 13.48 20 12 20zM7.94 5.12L6.49 3.66A9.91 9.91 0 0112 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51l-1.46-1.46A7.869 7.869 0 0020 12c0-4.41-3.59-8-8-8-1.48 0-2.86.41-4.06 1.12z\"}}]})(props);\n};\nexport function MdOutlineHighlightAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5h-2V3h2v2zm-2 10v6l2.29-2.29 2.3 2.29L21 19.59l-2.29-2.29L21 15h-6zm4-6h2V7h-2v2zm0 4h2v-2h-2v2zm-8 8h2v-2h-2v2zM7 5h2V3H7v2zM3 17h2v-2H3v2zm2 4v-2H3c0 1.1.9 2 2 2zM19 3v2h2c0-1.1-.9-2-2-2zm-8 2h2V3h-2v2zM3 9h2V7H3v2zm4 12h2v-2H7v2zm-4-8h2v-2H3v2zm0-8h2V3c-1.1 0-2 .9-2 2z\"}}]})(props);\n};\nexport function MdOutlineHighlightOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineHistoryToggleOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.1 19.37l1 1.74c-.96.44-2.01.73-3.1.84v-2.02c.74-.09 1.44-.28 2.1-.56zM4.07 13H2.05c.11 1.1.4 2.14.84 3.1l1.74-1c-.28-.66-.47-1.36-.56-2.1zM15.1 4.63l1-1.74c-.96-.44-2-.73-3.1-.84v2.02c.74.09 1.44.28 2.1.56zM19.93 11h2.02c-.11-1.1-.4-2.14-.84-3.1l-1.74 1c.28.66.47 1.36.56 2.1zM8.9 19.37l-1 1.74c.96.44 2.01.73 3.1.84v-2.02c-.74-.09-1.44-.28-2.1-.56zM11 4.07V2.05c-1.1.11-2.14.4-3.1.84l1 1.74c.66-.28 1.36-.47 2.1-.56zm7.36 3.1l1.74-1.01c-.63-.87-1.4-1.64-2.27-2.27l-1.01 1.74c.59.45 1.1.96 1.54 1.54zM4.63 8.9l-1.74-1c-.44.96-.73 2-.84 3.1h2.02c.09-.74.28-1.44.56-2.1zm15.3 4.1c-.09.74-.28 1.44-.56 2.1l1.74 1c.44-.96.73-2.01.84-3.1h-2.02zm-3.1 5.36l1.01 1.74c.87-.63 1.64-1.4 2.27-2.27l-1.74-1.01c-.45.59-.96 1.1-1.54 1.54zM7.17 5.64l-1-1.75c-.88.64-1.64 1.4-2.27 2.28l1.74 1.01a7.7 7.7 0 011.53-1.54zM5.64 16.83l-1.74 1c.63.87 1.4 1.64 2.27 2.27l1.01-1.74a7.7 7.7 0 01-1.54-1.53zM13 7h-2v5.41l4.29 4.29 1.41-1.41-3.7-3.7V7z\"}}]})(props);\n};\nexport function MdOutlineHistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3a9 9 0 00-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0013 21a9 9 0 000-18zm-1 5v5l4.25 2.52.77-1.28-3.52-2.09V8z\"}}]})(props);\n};\nexport function MdOutlineHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.69l5 4.5V18h-2v-6H9v6H7v-7.81l5-4.5M12 3L2 12h3v8h6v-6h2v6h6v-8h3L12 3z\"}}]})(props);\n};\nexport function MdOutlineHorizontalSplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15v2H5v-2h14m2-10H3v2h18V5zm0 4H3v2h18V9zm0 4H3v6h18v-6z\"}}]})(props);\n};\nexport function MdOutlineHotelClass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8.89l.94 3.11h2.82l-2.27 1.62.93 3.01L11 14.79l-2.42 1.84.93-3.01L7.24 12h2.82L11 8.89zM8.58 10H1l6.17 4.41L4.83 22 11 17.31 17.18 22l-2.35-7.59L21 10h-7.58L11 2l-2.42 8zm12.78 12l-1.86-6.01L23.68 13h-3.44l-3.08 2.2 1.46 4.72L21.36 22zM17 8l-1.82-6-1.04 3.45.77 2.55H17z\"}}]})(props);\n};\nexport function MdOutlineHourglassDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4h8v3.5l-2.84 2.84 1.25 1.25L18 8.01 17.99 8H18V2H6v1.17l2 2zM2.1 2.1L.69 3.51l8.9 8.9L6 16l.01.01H6V22h12v-1.17l2.49 2.49 1.41-1.41L2.1 2.1zM16 20H8v-3.5l2.84-2.84L16 18.83V20z\"}}]})(props);\n};\nexport function MdOutlineHourglassEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z\"}}]})(props);\n};\nexport function MdOutlineHourglassFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6z\"}}]})(props);\n};\nexport function MdOutlineHttp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z\"}}]})(props);\n};\nexport function MdOutlineHttps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"}}]})(props);\n};\nexport function MdOutlineImportantDevices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12a2 2 0 002 2h7v2H7v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4a2 2 0 00-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z\"}}]})(props);\n};\nexport function MdOutlineInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineInput (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 00-2-2zM11 16l4-4-4-4v3H1v2h10v3zM21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 00-2-2zM11 16l4-4-4-4v3H1v2h10v3z\"}}]})(props);\n};\nexport function MdOutlineIntegrationInstructions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"3.5\",\"r\":\".75\",\"fill\":\"none\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"3.5\",\"r\":\".75\",\"fill\":\"none\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M5 15v4h14V5H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14.17L8.83 12 11 9.83 9.59 8.41 6 12l3.59 3.59zM14.41 15.59L18 12l-3.59-3.59L13 9.83 15.17 12 13 14.17z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-.14 0-.27.01-.4.04a2.008 2.008 0 00-1.44 1.19c-.1.23-.16.49-.16.77v14c0 .27.06.54.16.78s.25.45.43.64c.27.27.62.47 1.01.55.13.02.26.03.4.03h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM19 15v4H5V5h14v10z\"}}]})(props);\n};\nexport function MdOutlineInvertColors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.81V19c-3.31 0-6-2.63-6-5.87 0-1.56.62-3.03 1.75-4.14L12 4.81M12 2L6.35 7.56C4.9 8.99 4 10.96 4 13.13 4 17.48 7.58 21 12 21s8-3.52 8-7.87c0-2.17-.9-4.14-2.35-5.57L12 2z\"}}]})(props);\n};\nexport function MdOutlineLabelImportant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18.99h11c.67 0 1.27-.32 1.63-.83L21 12l-4.37-6.16C16.27 5.33 15.67 5 15 5H4l5 7-5 6.99z\"}}]})(props);\n};\nexport function MdOutlineLabelOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7l3.55 5-1.63 2.29 1.43 1.43L22 12l-4.37-6.16C17.27 5.33 16.67 5 16 5l-7.37.01 2 1.99H16zM2 4.03l1.58 1.58C3.22 5.96 3 6.46 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.28 0 .55-.07.79-.18L18.97 21l1.41-1.41L3.41 2.62 2 4.03zM14.97 17H5V7.03L14.97 17z\"}}]})(props);\n};\nexport function MdOutlineLabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z\"}}]})(props);\n};\nexport function MdOutlineLanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 00-1.38-3.56A8.03 8.03 0 0118.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 015.08 16zm2.95-8H5.08a7.987 7.987 0 014.33-3.56A15.65 15.65 0 008.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 01-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"}}]})(props);\n};\nexport function MdOutlineLaunch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19H5V5h7V3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"}}]})(props);\n};\nexport function MdOutlineLeaderboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11V3H8v6H2v12h20V11h-6zm-6-6h4v14h-4V5zm-6 6h4v8H4v-8zm16 8h-4v-6h4v6z\"}}]})(props);\n};\nexport function MdOutlineLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6A4.997 4.997 0 017 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z\"}}]})(props);\n};\nexport function MdOutlineLineStyle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 16h5v-2H3v2zm6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z\"}}]})(props);\n};\nexport function MdOutlineLineWeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3zm0-9v4h18V4H3z\"}}]})(props);\n};\nexport function MdOutlineList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7zm-4 6h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"}}]})(props);\n};\nexport function MdOutlineLockClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 20V10h12v1c.7 0 1.37.1 2 .29V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h6.26c-.42-.6-.75-1.28-.97-2H6zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L17.5 18.2V15h1v2.79l1.85 1.85-.7.71z\"}}]})(props);\n};\nexport function MdOutlineLockOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h2c0-1.66 1.34-3 3-3s3 1.34 3 3v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"}}]})(props);\n};\nexport function MdOutlineLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"}}]})(props);\n};\nexport function MdOutlineLogin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7L9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5-5-5zm9 12h-8v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8v14z\"}}]})(props);\n};\nexport function MdOutlineLogout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8l-1.41 1.41L17.17 11H9v2h8.17l-1.58 1.58L17 16l4-4-4-4zM5 5h7V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h7v-2H5V5z\"}}]})(props);\n};\nexport function MdOutlineLoyalty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58s1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41s-.23-1.06-.59-1.42zM13 20.01L4 11V4h7v-.01l9 9-7 7.02z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.9 12.55c0 .57.23 1.07.6 1.45l3.5 3.5 3.5-3.5a2.053 2.053 0 00-2.9-2.9l-.6.6-.6-.59c-.37-.38-.89-.61-1.45-.61-1.13 0-2.05.92-2.05 2.05z\"}}]})(props);\n};\nexport function MdOutlineManageAccounts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18v-.65c0-.34.16-.66.41-.81C6.1 15.53 8.03 15 10 15c.03 0 .05 0 .08.01.1-.7.3-1.37.59-1.98-.22-.02-.44-.03-.67-.03-2.42 0-4.68.67-6.61 1.82-.88.52-1.39 1.5-1.39 2.53V20h9.26c-.42-.6-.75-1.28-.97-2H4zM10 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM20.75 16c0-.22-.03-.42-.06-.63l1.14-1.01-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L18 11h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1.01c-.03.21-.06.41-.06.63s.03.42.06.63l-1.14 1.01 1 1.73 1.45-.49c.32.27.68.48 1.08.63L16 21h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1.01c.03-.21.06-.41.06-.63zM17 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineMarkAsUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.23 7h2.6c-.06-.47-.36-.94-.79-1.17L10.5 2 2.8 5.83c-.48.26-.8.81-.8 1.34V15c0 1.1.9 2 2 2V7.4L10.5 4l5.73 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8H7c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm0 11H7v-7l6.5 3.33L20 12v7zm-6.5-5.67L7 10h13l-6.5 3.33z\"}}]})(props);\n};\nexport function MdOutlineMarkunreadMailbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6H10v2h10v12H4V8h2v4h2V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3h18v2H3V3z\"}}]})(props);\n};\nexport function MdOutlineMediation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16l4-4-4-4v3h-5.06A8.974 8.974 0 008 3.95 3.005 3.005 0 005 1C3.34 1 2 2.34 2 4s1.34 3 3 3c.95 0 1.78-.45 2.33-1.14C9.23 6.9 10.6 8.77 10.92 11h-3.1C7.4 9.84 6.3 9 5 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c1.3 0 2.4-.84 2.82-2h3.1c-.32 2.23-1.69 4.1-3.58 5.14C6.78 17.45 5.95 17 5 17c-1.66 0-3 1.34-3 3s1.34 3 3 3a2.99 2.99 0 002.99-2.95A8.974 8.974 0 0012.93 13H18v3z\"}}]})(props);\n};\nexport function MdOutlineMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19h12v2H6v-2z\"}}]})(props);\n};\nexport function MdOutlineModelTraining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 13.5c0 2-2.5 3.5-2.5 5h-2c0-1.5-2.5-3-2.5-5 0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5zm-2.5 6h-2V21h2v-1.5zm6-6.5c0 1.68-.59 3.21-1.58 4.42l1.42 1.42a8.978 8.978 0 00-1-12.68l-1.42 1.42A6.993 6.993 0 0119 13zm-3-8l-4-4v3a9 9 0 00-9 9c0 2.23.82 4.27 2.16 5.84l1.42-1.42A6.938 6.938 0 015 13c0-3.86 3.14-7 7-7v3l4-4z\"}}]})(props);\n};\nexport function MdOutlineNewLabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12l-4.37 6.16c-.37.52-.98.84-1.63.84h-3v-2h3l3.55-5L15 7H5v3H3V7c0-1.1.9-2 2-2h10c.65 0 1.26.31 1.63.84L21 12zm-11 3H7v-3H5v3H2v2h3v3h2v-3h3v-2z\"}}]})(props);\n};\nexport function MdOutlineNextPlan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.97 11.03C14.87 9.79 13.28 9 11.5 9c-2.82 0-5.18 1.95-5.82 4.56l.96.32C7.15 11.66 9.13 10 11.5 10c1.51 0 2.85.68 3.76 1.74L13 14h5V9l-2.03 2.03z\"}}]})(props);\n};\nexport function MdOutlineNightlightRound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 22c1.05 0 2.05-.16 3-.46-4.06-1.27-7-5.06-7-9.54s2.94-8.27 7-9.54c-.95-.3-1.95-.46-3-.46-5.52 0-10 4.48-10 10s4.48 10 10 10z\"}}]})(props);\n};\nexport function MdOutlineNoAccounts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.18 10.94c.2-.44.32-.92.32-1.44C15.5 7.57 13.93 6 12 6c-.52 0-1 .12-1.44.32l4.62 4.62z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-1.85.63-3.55 1.69-4.9l2.86 2.86a3.47 3.47 0 002.99 2.99l2.2 2.2c-.57-.1-1.15-.15-1.74-.15-2.32 0-4.45.8-6.14 2.12A7.957 7.957 0 014 12zm8 8c-1.74 0-3.34-.56-4.65-1.5C8.66 17.56 10.26 17 12 17s3.34.56 4.65 1.5c-1.31.94-2.91 1.5-4.65 1.5zm6.31-3.1L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.54-1.69 4.9z\"}}]})(props);\n};\nexport function MdOutlineNotAccessible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm9 9v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.24-.24-.44-.36-.63-.46-.36-.19-.72-.3-1.2-.26-.49.04-.91.27-1.23.61L14 11.05c1.29 1.07 3.25 1.94 5 1.95zm-9 7c-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1a5 5 0 105.9 5.9h-2.07c-.41 1.16-1.52 2-2.83 2zM2.81 2.81L1.39 4.22 10 12.83V15c0 1.1.9 2 2 2h2.17l5.61 5.61 1.41-1.41L2.81 2.81z\"}}]})(props);\n};\nexport function MdOutlineNotStarted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 6H9v8h2V8zm6 4l-5-4v8l5-4z\"}}]})(props);\n};\nexport function MdOutlineNoteAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11h-2v3H8v2h3v3h2v-3h3v-2h-3zm1-9H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z\"}}]})(props);\n};\nexport function MdOutlineOfflineBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.02c-5.51 0-9.98 4.47-9.98 9.98s4.47 9.98 9.98 9.98 9.98-4.47 9.98-9.98S17.51 2.02 12 2.02zm0 17.96c-4.4 0-7.98-3.58-7.98-7.98S7.6 4.02 12 4.02 19.98 7.6 19.98 12 16.4 19.98 12 19.98zM12.75 5l-4.5 8.5h3.14V19l4.36-8.5h-3z\"}}]})(props);\n};\nexport function MdOutlineOfflinePin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-5h10v2H7zm3.3-3.8L8.4 9.3 7 10.7l3.3 3.3L17 7.3l-1.4-1.4z\"}}]})(props);\n};\nexport function MdOutlineOnlinePrediction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 11.5c0 2-2.5 3.5-2.5 5h-2c0-1.5-2.5-3-2.5-5C8.5 9.57 10.07 8 12 8s3.5 1.57 3.5 3.5zm-2.5 6h-2V19h2v-1.5zm9-5.5c0-2.76-1.12-5.26-2.93-7.07l-1.06 1.06A8.481 8.481 0 0120.5 12c0 2.34-.95 4.47-2.49 6.01l1.06 1.06A9.969 9.969 0 0022 12zM3.5 12c0-2.34.95-4.47 2.49-6.01L4.93 4.93A9.969 9.969 0 002 12c0 2.76 1.12 5.26 2.93 7.07l1.06-1.06A8.481 8.481 0 013.5 12zm14 0c0 1.52-.62 2.89-1.61 3.89l1.06 1.06A6.976 6.976 0 0019 12c0-1.93-.78-3.68-2.05-4.95l-1.06 1.06c.99 1 1.61 2.37 1.61 3.89zM7.05 16.95l1.06-1.06c-1-1-1.61-2.37-1.61-3.89s.62-2.89 1.61-3.89L7.05 7.05A6.976 6.976 0 005 12c0 1.93.78 3.68 2.05 4.95z\"}}]})(props);\n};\nexport function MdOutlineOpacity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 0H0v24h24V0zm0 0H0v24h24V0zM0 24h24V0H0v24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.66 8L12 2.35 6.34 8A8.02 8.02 0 004 13.64c0 2 .78 4.11 2.34 5.67a7.99 7.99 0 0011.32 0c1.56-1.56 2.34-3.67 2.34-5.67S19.22 9.56 17.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14H6z\"}}]})(props);\n};\nexport function MdOutlineOpenInBrowser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6a2 2 0 00-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z\"}}]})(props);\n};\nexport function MdOutlineOpenInFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11V3h-8l3.29 3.29-10 10L3 13v8h8l-3.29-3.29 10-10z\"}}]})(props);\n};\nexport function MdOutlineOpenInNewOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.79 5.8L14 3h7v7l-2.79-2.8-4.09 4.09-1.41-1.41 4.08-4.08zM19 12v4.17l2 2V12h-2zm.78 10.61L18.17 21H5a2 2 0 01-2-2V5.83L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM16.17 19l-4.88-4.88-1.59 1.59-1.41-1.41 1.59-1.59L5 7.83V19h11.17zM7.83 5H12V3H5.83l2 2z\"}}]})(props);\n};\nexport function MdOutlineOpenInNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19H5V5h7V3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"}}]})(props);\n};\nexport function MdOutlineOpenWith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\"}}]})(props);\n};\nexport function MdOutlineOutbond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.88 9.54L8.92 16.5l-1.41-1.41 4.96-4.96L10.34 8l5.65.01.01 5.65-2.12-2.12z\"}}]})(props);\n};\nexport function MdOutlineOutbound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.88 9.54L8.92 16.5l-1.41-1.41 4.96-4.96L10.34 8l5.65.01.01 5.65-2.12-2.12z\"}}]})(props);\n};\nexport function MdOutlineOutbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9.83V14h2V9.83l1.59 1.58L16 10l-4-4-4 4 1.41 1.41z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5v-3h3.02c.91 1.21 2.35 2 3.98 2s3.06-.79 3.98-2H19v3zm0-5h-4.18c-.41 1.16-1.51 2-2.82 2s-2.4-.84-2.82-2H5V5h14v9z\"}}]})(props);\n};\nexport function MdOutlineOutlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 9V8c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1s1-.45 1-1zm6 0V8c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1s1-.45 1-1zm-2 5c0-1.1-.9-2-2-2s-2 .9-2 2v2h4v-2z\"}}]})(props);\n};\nexport function MdOutlinePageview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.49 16c.88 0 1.7-.26 2.39-.7l2.44 2.44 1.42-1.42-2.44-2.43c.44-.7.7-1.51.7-2.39C16 9.01 13.99 7 11.5 7S7 9.01 7 11.5 9.01 16 11.49 16zm.01-7a2.5 2.5 0 010 5 2.5 2.5 0 010-5zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z\"}}]})(props);\n};\nexport function MdOutlinePaid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.89-8.9c-1.78-.59-2.64-.96-2.64-1.9 0-1.02 1.11-1.39 1.81-1.39 1.31 0 1.79.99 1.9 1.34l1.58-.67c-.15-.44-.82-1.91-2.66-2.23V5h-1.75v1.26c-2.6.56-2.62 2.85-2.62 2.96 0 2.27 2.25 2.91 3.35 3.31 1.58.56 2.28 1.07 2.28 2.03 0 1.13-1.05 1.61-1.98 1.61-1.82 0-2.34-1.87-2.4-2.09l-1.66.67c.63 2.19 2.28 2.78 3.02 2.96V19h1.75v-1.24c.52-.09 3.02-.59 3.02-3.22.01-1.39-.6-2.61-3-3.44z\"}}]})(props);\n};\nexport function MdOutlinePanTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 24h-6.55c-1.08 0-2.14-.45-2.89-1.23l-7.3-7.61 2.07-1.83c.62-.55 1.53-.66 2.26-.27L8 14.34V4.79a2.5 2.5 0 013.01-2.45C11.1 1.04 12.18.01 13.5.01c.86 0 1.61.43 2.06 1.09.29-.12.61-.18.94-.18a2.5 2.5 0 012.5 2.5v.28a2.5 2.5 0 013 2.45V20c0 2.21-1.79 4-4 4zM4.14 15.28l5.86 6.1c.38.39.9.62 1.44.62H18c1.1 0 2-.9 2-2V6.15c0-.28-.22-.5-.5-.5s-.5.22-.5.5V12h-2V3.42c0-.28-.22-.5-.5-.5s-.5.22-.5.5V12h-2V2.51c0-.28-.22-.5-.5-.5s-.5.22-.5.5V12h-2V4.79c0-.28-.22-.5-.5-.5s-.5.23-.5.5v12.87l-5.35-2.83-.51.45z\"}}]})(props);\n};\nexport function MdOutlinePayment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z\"}}]})(props);\n};\nexport function MdOutlinePendingActions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71zM18 3h-3.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H6c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h6.11a6.743 6.743 0 01-1.42-2H6V5h2v3h8V5h2v5.08c.71.1 1.38.31 2 .6V5c0-1.1-.9-2-2-2zm-6 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlinePending (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"12\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlinePermCameraMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2s2-.9 2-2V8c0-1.1-.9-2-2-2zm8-1h-3.17l-1.86-2H8.96L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-7v-1.09c2.83-.48 5-2.94 5-5.91h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6c0 2.97 2.17 5.43 5 5.91V19H4V7h4.21l.59-.65L10.04 5h4.24l1.24 1.35.59.65H20v12z\"}}]})(props);\n};\nexport function MdOutlinePermContactCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.22c-.05-.12-.11-.23-.18-.34-.14-.21-.33-.4-.54-.54-.11-.07-.22-.13-.34-.18-.24-.1-.5-.16-.78-.16h-1V1h-2v2H8V1H6v2H5c-.42 0-.8.13-1.12.34-.21.14-.4.33-.54.54-.07.11-.13.22-.18.34-.1.24-.16.5-.16.78v14a2 2 0 002 2h14c.28 0 .54-.06.78-.16.12-.05.23-.11.34-.18.21-.14.4-.33.54-.54.21-.32.34-.71.34-1.12V5c0-.28-.06-.54-.16-.78zM5 19V5h14v14H5zm7-6.12c-2.03 0-6 1.08-6 3.58V18h12v-1.53c0-2.51-3.97-3.59-6-3.59zM8.31 16c.69-.56 2.38-1.12 3.69-1.12s3.01.56 3.69 1.12H8.31zM12 12c1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3 1.35 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}}]})(props);\n};\nexport function MdOutlinePermDataSetting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.99 11.57H20V0L0 20h11.56v-2H4.83L17.99 4.83v6.74zm5.78 8.75l-1.07-.83c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83a.26.26 0 00.06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83a3.908 3.908 0 000 .98l-1.06.83a.26.26 0 00-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73a.26.26 0 00-.06-.32zm-4.78.18c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlinePermDeviceInformation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm6-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zM7 4V3h10v1H7z\"}}]})(props);\n};\nexport function MdOutlinePermIdentity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 9c2.7 0 5.8 1.29 6 2v1H6v-.99c.2-.72 3.3-2.01 6-2.01m0-11C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdOutlinePermMedia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm5 9h14l-3.5-4.5-2.5 3.01L11.5 9zM22 4h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 12H6V4h5.17l1.41 1.41.59.59H22v10z\"}}]})(props);\n};\nexport function MdOutlinePermPhoneMsg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.074 15.074 0 01-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 5h1.5c.07.88.22 1.75.46 2.59L5.79 8.8c-.41-1.21-.67-2.48-.76-3.8zM19 18.97c-1.32-.09-2.6-.35-3.8-.76l1.2-1.2c.85.24 1.72.39 2.6.45v1.51zM12 3v10l3-3h6V3h-9zm7 5h-5V5h5v3z\"}}]})(props);\n};\nexport function MdOutlinePermScanWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zM2.92 7.65C5.8 5.85 8.74 5 12 5c3.25 0 6.18.85 9.08 2.67L12 18.83 2.92 7.65zM11 10h2v6h-2zm0-4h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlinePets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4.5\",\"cy\":\"9.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"5.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"5.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.5\",\"cy\":\"9.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z\"}}]})(props);\n};\nexport function MdOutlinePictureInPictureAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 11h-8v6h8v-6zm-2 4h-4v-2h4v2zm4-12H3c-1.1 0-2 .88-2 1.98V19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V4.98C23 3.88 22.1 3 21 3zm0 16.02H3V4.97h18v14.05z\"}}]})(props);\n};\nexport function MdOutlinePictureInPicture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7h-8v6h8V7zm-2 4h-4V9h4v2zm4-8H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z\"}}]})(props);\n};\nexport function MdOutlinePinEnd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12V6H4v12h10v2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2v6h-2zm-1 2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm-4.34-6H9v5.66h2v-2.24l2.95 2.95 1.41-1.41L12.41 10h2.24V8z\"}}]})(props);\n};\nexport function MdOutlinePinInvoke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10v2H4v12h16v-6h2zm0-5c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zM9.34 12h2.24l-2.95 2.95 1.41 1.41L13 13.42v2.24h2V10H9.34v2z\"}}]})(props);\n};\nexport function MdOutlinePlagiarism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.03 11.03a3.495 3.495 0 000 4.95 3.48 3.48 0 004.13.59l1.88 1.88 1.41-1.41-1.88-1.88c.71-1.33.53-3.01-.59-4.13a3.495 3.495 0 00-4.95 0zm3.53 3.53c-.59.59-1.54.59-2.12 0a1.49 1.49 0 010-2.12 1.49 1.49 0 012.12 0c.59.59.59 1.53 0 2.12z\"}}]})(props);\n};\nexport function MdOutlinePlayForWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z\"}}]})(props);\n};\nexport function MdOutlinePolymer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15 20h4l4.5-8L19 4z\"}}]})(props);\n};\nexport function MdOutlinePowerSettingsNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3h-2v10h2V3zm4.83 2.17l-1.42 1.42A6.92 6.92 0 0119 12c0 3.87-3.13 7-7 7A6.995 6.995 0 017.58 6.58L6.17 5.17A8.932 8.932 0 003 12a9 9 0 0018 0c0-2.74-1.23-5.18-3.17-6.83z\"}}]})(props);\n};\nexport function MdOutlinePregnantWoman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9a3.285 3.285 0 00-2-3c0-1.66-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z\"}}]})(props);\n};\nexport function MdOutlinePreview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 16H5V7h14v12zm-7-8.5c1.84 0 3.48.96 4.34 2.5-.86 1.54-2.5 2.5-4.34 2.5s-3.48-.96-4.34-2.5c.86-1.54 2.5-2.5 4.34-2.5M12 9c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4zm0 5.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlinePrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8h-1V3H6v5H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zM8 5h8v3H8V5zm8 12v2H8v-4h8v2zm2-2v-2H6v2H4v-4c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v4h-2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"11.5\",\"r\":\"1\"}}]})(props);\n};\nexport function MdOutlinePrivacyTip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3.19l7 3.11V11c0 4.52-2.98 8.69-7 9.93-4.02-1.24-7-5.41-7-9.93V6.3l7-3.11M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-1 6h2v2h-2V7zm0 4h2v6h-2v-6z\"}}]})(props);\n};\nexport function MdOutlinePrivateConnectivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7c2.76 0 5 2.24 5 5s-2.24 5-5 5-5-2.24-5-5 2.24-5 5-5zm-6.93 6c.49 3.39 3.4 6 6.93 6s6.44-2.61 6.93-6H22v-2h-3.07c-.49-3.39-3.4-6-6.93-6s-6.44 2.61-6.93 6H2v2h3.07zM14 10.5v-.89c0-1-.68-1.92-1.66-2.08A2 2 0 0010 9.5v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-2 3.25c-.41 0-.75-.34-.75-.75s.34-.75.75-.75.75.34.75.75-.34.75-.75.75zm1-3.25h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z\"}}]})(props);\n};\nexport function MdOutlineProductionQuantityLimits (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10h-2V8h2v2zm0-4h-2V1h2v5zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-8.9-5h7.45c.75 0 1.41-.41 1.75-1.03L21 4.96 19.25 4l-3.7 7H8.53L4.27 2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2z\"}}]})(props);\n};\nexport function MdOutlinePublishedWithChanges (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.6 19.5H21v2h-6v-6h2v2.73c1.83-1.47 3-3.71 3-6.23 0-4.07-3.06-7.44-7-7.93V2.05c5.05.5 9 4.76 9 9.95 0 2.99-1.32 5.67-3.4 7.5zM4 12c0-2.52 1.17-4.77 3-6.23V8.5h2v-6H3v2h2.4A9.966 9.966 0 002 12c0 5.19 3.95 9.45 9 9.95v-2.02c-3.94-.49-7-3.86-7-7.93zm12.24-3.89l-5.66 5.66-2.83-2.83-1.41 1.41 4.24 4.24 7.07-7.07-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineQueryBuilder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z\"}}]})(props);\n};\nexport function MdOutlineQuestionAnswer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4v7H5.17l-.59.59-.58.58V4h11m1-2H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm5 4h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineQuickreply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 17.17V4h16v6h2V4c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h9v-2H5.17L4 17.17z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.5 16h-2.2l1.7-4h-5v6h2v5z\"}}]})(props);\n};\nexport function MdOutlineReceipt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 3.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5zM19 19.09H5V4.91h14v14.18zM6 15h12v2H6zm0-4h12v2H6zm0-4h12v2H6z\"}}]})(props);\n};\nexport function MdOutlineRecordVoiceOver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 8c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm-6 4c.22-.72 3.31-2 6-2 2.7 0 5.8 1.29 6 2H3zM15.08 7.05c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27l-1.68 1.69zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z\"}}]})(props);\n};\nexport function MdOutlineRedeem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 00-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z\"}}]})(props);\n};\nexport function MdOutlineRemoveDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.84 1.98L3.43 3.39l10.38 10.38-1.41 1.41-4.24-4.24-1.41 1.41 5.66 5.66 2.83-2.83 6.6 6.6 1.41-1.41L4.84 1.98zm13.21 10.38L23 7.4 21.57 6l-4.94 4.94 1.42 1.42zm-.71-4.96l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM1.08 12.35l5.66 5.66 1.41-1.41-5.66-5.66-1.41 1.41z\"}}]})(props);\n};\nexport function MdOutlineRemoveShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.41 1.13L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38A1.997 1.997 0 0017 22c.67 0 1.26-.33 1.62-.84L21.46 24l1.41-1.41L1.41 1.13zM7 15l1.1-2h2.36l2 2H7zM20 4H7.12l2 2h9.19l-2.76 5h-1.44l1.94 1.94c.54-.14.99-.49 1.25-.97l3.58-6.49C21.25 4.82 20.76 4 20 4zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineReorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z\"}}]})(props);\n};\nexport function MdOutlineReportProblem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"}}]})(props);\n};\nexport function MdOutlineRequestPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.17 4L18 8.83V20H6V4h7.17M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm1 9h-4v1h3c.55 0 1 .45 1 1v3c0 .55-.45 1-1 1h-1v1h-2v-1H9v-2h4v-1h-3c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1h1V8h2v1h2v2z\"}}]})(props);\n};\nexport function MdOutlineRestoreFromTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 4l-1-1h-5l-1 1H5v2h14V4zM6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2-5V9h8v10H8v-5zm2 4h4v-4h2l-4-4-4 4h2z\"}}]})(props);\n};\nexport function MdOutlineRestorePage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7.17L18 8.83V20zm-9.55-9.43L7.28 9.4V13h3.6l-1.44-1.44a3.15 3.15 0 012.79-1.71 3.15 3.15 0 110 6.3 3.14 3.14 0 01-2.58-1.35H8.1a4.51 4.51 0 004.12 2.7c2.48 0 4.5-2.02 4.5-4.5s-2.02-4.5-4.5-4.5c-1.59 0-2.97.83-3.77 2.07z\"}}]})(props);\n};\nexport function MdOutlineRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3a9 9 0 00-9 9H1l4 3.99L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0013 21a9 9 0 000-18zm-1 5v5l4.25 2.52.77-1.28-3.52-2.09V8z\"}}]})(props);\n};\nexport function MdOutlineRoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"9\",\"r\":\"2.5\"}}]})(props);\n};\nexport function MdOutlineRoundedCorner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19h2v2h-2v-2zm0-2h2v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8 16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z\"}}]})(props);\n};\nexport function MdOutlineRowing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 14.5L4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.19-.21.43-.38.69-.5.29-.14.62-.23.96-.23h.03C15.99 6.01 17 7.02 17 8.26v5.75c0 .84-.35 1.61-.92 2.16l-3.58-3.58v-2.27c-.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z\"}}]})(props);\n};\nexport function MdOutlineRule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.54 11L13 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L16.54 11zM11 7H2v2h9V7zm10 6.41L19.59 12 17 14.59 14.41 12 13 13.41 15.59 16 13 18.59 14.41 20 17 17.41 19.59 20 21 18.59 18.41 16 21 13.41zM11 15H2v2h9v-2z\"}}]})(props);\n};\nexport function MdOutlineSavedSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.73 13.31A6.388 6.388 0 0016 9.5 6.5 6.5 0 109.5 16c1.43 0 2.74-.48 3.81-1.27L19.59 21 21 19.59l-6.27-6.28zM9.5 14C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 8.44L9.5 6l-.79 2.44H6.25l2.01 1.59-.77 2.47 2.01-1.53 2.01 1.53-.77-2.47 2.01-1.59z\"}}]})(props);\n};\nexport function MdOutlineSavings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 10c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zM8 9h5V7H8v2zm14-1.5v6.97l-2.82.94L17.5 21H12v-2h-2v2H4.5S2 12.54 2 9.5 4.46 4 7.5 4h5c.91-1.21 2.36-2 4-2a1.498 1.498 0 011.38 2.08c-.14.34-.26.73-.32 1.15l2.27 2.27H22zm-2 2h-1L15.5 6c0-.65.09-1.29.26-1.91-.97.25-1.76.97-2.09 1.91H7.5C5.57 6 4 7.57 4 9.5c0 1.88 1.22 6.65 2.01 9.5H8v-2h6v2h2.01l1.55-5.15 2.44-.82V9.5z\"}}]})(props);\n};\nexport function MdOutlineScheduleSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm1.65 7.35L16.5 17.2V14h1v2.79l1.85 1.85-.7.71z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12l-6-1.5V7.01l8.87 3.74c.94-.47 2-.75 3.13-.75.1 0 .19.01.28.01L3 4v16l7-2.95V17c0-.8.14-1.56.39-2.28L5 16.99V13.5l6-1.5z\"}}]})(props);\n};\nexport function MdOutlineSchedule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z\"}}]})(props);\n};\nexport function MdOutlineSearchOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 009.5 3C6.08 3 3.28 5.64 3.03 9h2.02C5.3 6.75 7.18 5 9.5 5 11.99 5 14 7.01 14 9.5S11.99 14 9.5 14c-.17 0-.33-.03-.5-.05v2.02c.17.02.33.03.5.03 1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.47 10.82L4 13.29l-2.47-2.47-.71.71L3.29 14 .82 16.47l.71.71L4 14.71l2.47 2.47.71-.71L4.71 14l2.47-2.47z\"}}]})(props);\n};\nexport function MdOutlineSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"}}]})(props);\n};\nexport function MdOutlineSegment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18h12v-2H9v2zM3 6v2h18V6H3zm6 7h12v-2H9v2z\"}}]})(props);\n};\nexport function MdOutlineSendAndArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12l-6-1.5V7.01l8.87 3.73c.94-.47 2-.75 3.13-.75.1 0 .19.01.28.01L3 4v16l7-2.95V17c0-.8.14-1.56.39-2.28L5 16.99V13.5l6-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8l-3-3 .71-.71 1.79 1.79V14h1v4.09l1.79-1.79.71.7-3 3z\"}}]})(props);\n};\nexport function MdOutlineSensorsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.14 10.96c-.09.33-.14.68-.14 1.04 0 1.1.45 2.1 1.17 2.83l-1.42 1.42A6.018 6.018 0 016 12c0-.93.21-1.8.58-2.59L5.11 7.94A7.897 7.897 0 004 12c0 2.21.9 4.21 2.35 5.65l-1.42 1.42A9.969 9.969 0 012 12c0-2.04.61-3.93 1.66-5.51L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41L8.14 10.96zm9.28 3.63c.37-.79.58-1.66.58-2.59 0-1.66-.67-3.16-1.76-4.24l-1.42 1.42a3.951 3.951 0 011.04 3.86l1.56 1.55zM20 12c0 1.48-.4 2.87-1.11 4.06l1.45 1.45A9.91 9.91 0 0022 12c0-2.76-1.12-5.26-2.93-7.07l-1.42 1.42A7.94 7.94 0 0120 12z\"}}]})(props);\n};\nexport function MdOutlineSensors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.76 16.24C6.67 15.16 6 13.66 6 12s.67-3.16 1.76-4.24l1.42 1.42C8.45 9.9 8 10.9 8 12c0 1.1.45 2.1 1.17 2.83l-1.41 1.41zm8.48 0C17.33 15.16 18 13.66 18 12s-.67-3.16-1.76-4.24l-1.42 1.42C15.55 9.9 16 10.9 16 12c0 1.1-.45 2.1-1.17 2.83l1.41 1.41zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8 2c0 2.21-.9 4.21-2.35 5.65l1.42 1.42C20.88 17.26 22 14.76 22 12s-1.12-5.26-2.93-7.07l-1.42 1.42A7.94 7.94 0 0120 12zM6.35 6.35L4.93 4.93C3.12 6.74 2 9.24 2 12s1.12 5.26 2.93 7.07l1.42-1.42C4.9 16.21 4 14.21 4 12s.9-4.21 2.35-5.65z\"}}]})(props);\n};\nexport function MdOutlineSettingsAccessibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 4c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 6c1.86.5 4 .83 6 1v12h2v-6h2v6h2V7c2-.17 4.14-.5 6-1l-.5-2zM12 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineSettingsApplications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.21 13.97l1.2 2.07c.08.13.23.18.37.13l1.49-.6c.31.24.64.44 1.01.59l.22 1.59c.03.14.15.25.3.25h2.4c.15 0 .27-.11.3-.26l.22-1.59c.36-.15.7-.35 1.01-.59l1.49.6c.14.05.29 0 .37-.13l1.2-2.07c.08-.13.04-.29-.07-.39l-1.27-.99c.03-.19.04-.39.04-.58 0-.2-.02-.39-.04-.59l1.27-.99c.11-.09.15-.26.07-.39l-1.2-2.07a.306.306 0 00-.37-.13l-1.49.6c-.31-.24-.64-.44-1.01-.59l-.22-1.59a.31.31 0 00-.3-.25h-2.4a.31.31 0 00-.3.26l-.22 1.59c-.36.15-.71.34-1.01.58l-1.49-.6c-.14-.05-.29 0-.37.13l-1.2 2.07c-.08.13-.04.29.07.39l1.27.99c-.03.2-.05.39-.05.59 0 .2.02.39.04.59l-1.27.99c-.11.1-.14.26-.06.39zM12 10.29c.94 0 1.71.77 1.71 1.71s-.77 1.71-1.71 1.71-1.71-.77-1.71-1.71.77-1.71 1.71-1.71zM19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineSettingsBackupRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9a9 9 0 00-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7a6.995 6.995 0 01-11.06 5.7l-1.42 1.44A9 9 0 1012 3z\"}}]})(props);\n};\nexport function MdOutlineSettingsBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 24h2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 10.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88 1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdOutlineSettingsBrightness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3V9z\"}}]})(props);\n};\nexport function MdOutlineSettingsCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 18H8v-1h8v1zm0-3H8V5h8v10zm0-12H8V2h8v1z\"}}]})(props);\n};\nexport function MdOutlineSettingsEthernet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z\"}}]})(props);\n};\nexport function MdOutlineSettingsInputAntenna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29a2.5 2.5 0 00-5 0c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2a9 9 0 0118 0h2c0-6.07-4.93-11-11-11z\"}}]})(props);\n};\nexport function MdOutlineSettingsInputComponent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v10c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16V6H5V2zM4 17c-.55 0-1-.45-1-1v-2h2v2c0 .55-.45 1-1 1zm-1-5V8h2v4H3zM13 2c0-.55-.45-1-1-1s-1 .45-1 1v4H9v10c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.42 2-1.52 2-2.82V6h-2V2zm-1 15c-.55 0-1-.45-1-1v-2h2v2c0 .55-.45 1-1 1zm-1-5V8h2v4h-2zm10-6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v10c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.42 2-1.52 2-2.82V6h-2zm-1 11c-.55 0-1-.45-1-1v-2h2v2c0 .55-.45 1-1 1zm-1-5V8h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineSettingsInputComposite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v10c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16V6H5V2zM4 17c-.55 0-1-.45-1-1v-2h2v2c0 .55-.45 1-1 1zm-1-5V8h2v4H3zM13 2c0-.55-.45-1-1-1s-1 .45-1 1v4H9v10c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.42 2-1.52 2-2.82V6h-2V2zm-1 15c-.55 0-1-.45-1-1v-2h2v2c0 .55-.45 1-1 1zm-1-5V8h2v4h-2zm10-6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v10c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.42 2-1.52 2-2.82V6h-2zm-1 11c-.55 0-1-.45-1-1v-2h2v2c0 .55-.45 1-1 1zm-1-5V8h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineSettingsInputHdmi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2.01V5h-1v2H11V5h-1v2H8V4zm9 8.53l-3 6V20h-4v-1.47l-3-6V9h10v3.53z\"}}]})(props);\n};\nexport function MdOutlineSettingsInputSvideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.67 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67 18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdOutlineSettingsOverscan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 5.5L10 8h4l-1.99-2.5zM18 10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\"}}]})(props);\n};\nexport function MdOutlineSettingsPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2v2h-2zm4 0h2v2h-2zm5 6.5c-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.074 15.074 0 01-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 5h1.5c.07.88.22 1.75.46 2.59L5.79 8.8c-.41-1.21-.67-2.48-.76-3.8zM19 18.97c-1.32-.09-2.6-.35-3.8-.76l1.2-1.2c.85.24 1.72.39 2.6.45v1.51zM19 9h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineSettingsPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45A5.969 5.969 0 0118 11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44A7.961 7.961 0 004 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineSettingsRemote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-1 12h-4V11h4v10z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.05 6.05l1.41 1.41a5.022 5.022 0 017.08 0l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0z\"}}]})(props);\n};\nexport function MdOutlineSettingsVoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22h2v2H7zm5-9c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3zm-1-9c0-.55.45-1 1-1s1 .45 1 1v6c0 .56-.44 1-1 1-.55 0-1-.45-1-1V4zm0 18h2v2h-2zm4 0h2v2h-2zm4-12h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z\"}}]})(props);\n};\nexport function MdOutlineSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46a.5.5 0 00-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0014 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1a.566.566 0 00-.18-.03c-.17 0-.34.09-.43.25l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46a.5.5 0 00.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.06.02.12.03.18.03.17 0 .34-.09.43-.25l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-1.98-1.71c.04.31.05.52.05.73 0 .21-.02.43-.05.73l-.14 1.13.89.7 1.08.84-.7 1.21-1.27-.51-1.04-.42-.9.68c-.43.32-.84.56-1.25.73l-1.06.43-.16 1.13-.2 1.35h-1.4l-.19-1.35-.16-1.13-1.06-.43c-.43-.18-.83-.41-1.23-.71l-.91-.7-1.06.43-1.27.51-.7-1.21 1.08-.84.89-.7-.14-1.13c-.03-.31-.05-.54-.05-.74s.02-.43.05-.73l.14-1.13-.89-.7-1.08-.84.7-1.21 1.27.51 1.04.42.9-.68c.43-.32.84-.56 1.25-.73l1.06-.43.16-1.13.2-1.35h1.39l.19 1.35.16 1.13 1.06.43c.43.18.83.41 1.23.71l.91.7 1.06-.43 1.27-.51.7 1.21-1.07.85-.89.7.14 1.13zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineShop2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9H1v11c0 1.11.89 2 2 2h16v-2H3V9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm9 13H7V7h14v9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v7l5.5-3.5z\"}}]})(props);\n};\nexport function MdOutlineShopTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm9 13H7V7h14v9zm-9-1l5.5-4L12 8z\"}}]})(props);\n};\nexport function MdOutlineShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zm10 15H4V8h16v11zM9 18l7.5-5L9 9z\"}}]})(props);\n};\nexport function MdOutlineShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6h-2c0-2.21-1.79-4-4-4S8 3.79 8 6H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6-2c1.1 0 2 .9 2 2h-4c0-1.1.9-2 2-2zm6 16H6V8h2v2c0 .55.45 1 1 1s1-.45 1-1V8h4v2c0 .55.45 1 1 1s1-.45 1-1V8h2v12z\"}}]})(props);\n};\nexport function MdOutlineShoppingBasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9h-4.79l-4.38-6.56c-.19-.28-.51-.42-.83-.42s-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1zM12 4.8L14.8 9H9.2L12 4.8zM18.5 19l-12.99.01L3.31 11H20.7l-2.2 8zM12 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.55 13c.75 0 1.41-.41 1.75-1.03l3.58-6.49A.996.996 0 0020.01 4H5.21l-.94-2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2h7.45zM6.16 6h12.15l-2.76 5H8.53L6.16 6zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineSmartButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9v6c0 1.1-.9 2-2 2h-1v-2h1V9H4v6h6v2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-7.5 10l1.09-2.41L18 15.5l-2.41-1.09L14.5 12l-1.09 2.41L11 15.5l2.41 1.09L14.5 19zm2.5-5l.62-1.38L19 12l-1.38-.62L17 10l-.62 1.38L15 12l1.38.62L17 14zm-2.5 5l1.09-2.41L18 15.5l-2.41-1.09L14.5 12l-1.09 2.41L11 15.5l2.41 1.09L14.5 19zm2.5-5l.62-1.38L19 12l-1.38-.62L17 10l-.62 1.38L15 12l1.38.62L17 14z\"}}]})(props);\n};\nexport function MdOutlineSource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10zm-2-6H6v-2h12v2zm-4 4H6v-2h8v2z\"}}]})(props);\n};\nexport function MdOutlineSpaceDashboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 19V5h6v14H5zm14 0h-6v-7h6v7zm0-9h-6V5h6v5z\"}}]})(props);\n};\nexport function MdOutlineSpeakerNotesOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v12h-1.34l1.91 1.91A2.01 2.01 0 0022 16V4c0-1.1-.9-2-2-2H4.66l2 2H20zM6 12h2v2H6zm12-3h-6.34l2 2H18zm0-3h-8v1.34l.66.66H18zM1.41 1.59L0 3l2.01 2.01L2 22l4-4h9l5.73 5.73 1.41-1.41L1.41 1.59zM5.17 16L4 17.17V7l2 2v2h2l5 5H5.17z\"}}]})(props);\n};\nexport function MdOutlineSpeakerNotes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17l-.59.59-.58.58V4h16v12zM6 12h2v2H6zm0-3h2v2H6zm0-3h2v2H6zm4 6h5v2h-5zm0-3h8v2h-8zm0-3h8v2h-8z\"}}]})(props);\n};\nexport function MdOutlineSpellcheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineStarRate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.89l.94 3.11h2.82l-2.27 1.62.93 3.01L12 14.79l-2.42 1.84.93-3.01L8.24 12h2.82L12 8.89M12 2l-2.42 8H2l6.17 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10h-7.58L12 2z\"}}]})(props);\n};\nexport function MdOutlineStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm7.48 7.16l-5.01-.43-2-4.71c3.21.19 5.91 2.27 7.01 5.14zm-5.07 6.26L12 13.98l-2.39 1.44.63-2.72-2.11-1.83 2.78-.24L12 8.06l1.09 2.56 2.78.24-2.11 1.83.64 2.73zm-2.86-11.4l-2 4.72-5.02.43c1.1-2.88 3.8-4.97 7.02-5.15zM4 12c0-.64.08-1.26.23-1.86l3.79 3.28-1.11 4.75A7.982 7.982 0 014 12zm3.84 6.82L12 16.31l4.16 2.5A7.924 7.924 0 0111.99 20c-1.52 0-2.94-.44-4.15-1.18zm9.25-.65l-1.11-4.75 3.79-3.28c.14.59.23 1.22.23 1.86 0 2.48-1.14 4.7-2.91 6.17z\"}}]})(props);\n};\nexport function MdOutlineStickyNote2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v9h-5v5H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10l6-6V5c0-1.1-.9-2-2-2zm-7 11H7v-2h5v2zm5-4H7V8h10v2z\"}}]})(props);\n};\nexport function MdOutlineStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 9l.6 3H5.04l.6-3h12.72M20 4H4v2h16V4zm0 3H4l-1 5v2h1v6h10v-6h4v6h2v-6h1v-2l-1-5zM6 18v-4h6v4H6z\"}}]})(props);\n};\nexport function MdOutlineSubject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z\"}}]})(props);\n};\nexport function MdOutlineSubtitlesOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H6.83l2 2H20v11.17l1.76 1.76c.15-.28.24-.59.24-.93V6c0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-5.17l2 2H18zM1.04 3.87l1.2 1.2C2.09 5.35 2 5.66 2 6v12c0 1.1.9 2 2 2h13.17l2.96 2.96 1.41-1.41L2.45 2.45 1.04 3.87zM4 6.83L7.17 10H6v2h2v-1.17L11.17 14H6v2h7.17l2 2H4V6.83z\"}}]})(props);\n};\nexport function MdOutlineSupervisedUserCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 10c0-1.65-1.35-3-3-3s-3 1.35-3 3 1.35 3 3 3 3-1.35 3-3zm-3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6.5 2c1.11 0 2-.89 2-2 0-1.11-.89-2-2-2-1.11 0-2.01.89-2 2 0 1.11.89 2 2 2zM11.99 2.01c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zM5.84 17.12c.68-.54 2.27-1.11 3.66-1.11.07 0 .15.01.23.01.24-.64.67-1.29 1.3-1.86A9.05 9.05 0 009.5 14c-1.3 0-3.39.45-4.73 1.43-.5-1.04-.78-2.2-.78-3.43 0-4.41 3.59-8 8-8s8 3.59 8 8c0 1.2-.27 2.34-.75 3.37-1-.59-2.36-.87-3.24-.87-1.52 0-4.5.81-4.5 2.7v2.78a7.935 7.935 0 01-5.66-2.86z\"}}]})(props);\n};\nexport function MdOutlineSupervisorAccount (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12c1.93 0 3.5-1.57 3.5-3.5S10.93 5 9 5 5.5 6.57 5.5 8.5 7.07 12 9 12zm0-5c.83 0 1.5.67 1.5 1.5S9.83 10 9 10s-1.5-.67-1.5-1.5S8.17 7 9 7zm.05 10H4.77c.99-.5 2.7-1 4.23-1 .11 0 .23.01.34.01.34-.73.93-1.33 1.64-1.81-.73-.13-1.42-.2-1.98-.2-2.34 0-7 1.17-7 3.5V19h7v-1.5c0-.17.02-.34.05-.5zm7.45-2.5c-1.84 0-5.5 1.01-5.5 3V19h11v-1.5c0-1.99-3.66-3-5.5-3zm1.21-1.82c.76-.43 1.29-1.24 1.29-2.18a2.5 2.5 0 00-5 0c0 .94.53 1.75 1.29 2.18.36.2.77.32 1.21.32s.85-.12 1.21-.32z\"}}]})(props);\n};\nexport function MdOutlineSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm7.46 7.12l-2.78 1.15a4.982 4.982 0 00-2.95-2.94l1.15-2.78c2.1.8 3.77 2.47 4.58 4.57zM12 15c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zM9.13 4.54l1.17 2.78a5 5 0 00-2.98 2.97L4.54 9.13a7.984 7.984 0 014.59-4.59zM4.54 14.87l2.78-1.15a4.968 4.968 0 002.97 2.96l-1.17 2.78a7.996 7.996 0 01-4.58-4.59zm10.34 4.59l-1.15-2.78a4.978 4.978 0 002.95-2.97l2.78 1.17a8.007 8.007 0 01-4.58 4.58z\"}}]})(props);\n};\nexport function MdOutlineSwapHoriz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z\"}}]})(props);\n};\nexport function MdOutlineSwapHorizontalCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-13.5V9h-4v2h4v2.5l3.5-3.5zm-6 4L5.5 14 9 17.5V15h4v-2H9z\"}}]})(props);\n};\nexport function MdOutlineSwapVert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z\"}}]})(props);\n};\nexport function MdOutlineSwapVerticalCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM6.5 9L10 5.5 13.5 9H11v4H9V9zm11 6L14 18.5 10.5 15H13v-4h2v4z\"}}]})(props);\n};\nexport function MdOutlineSwipe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 2v2.02C18.18 2.13 15.22 1 12 1S5.82 2.13 3.5 4.02V2H2v5h5V5.5H4.09c2.11-1.86 4.88-3 7.91-3s5.79 1.14 7.91 3H17V7h5V2h-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.89 13.77l-3.8-1.67c-.13-.06-.28-.1-.44-.1H14V7.63c0-1.32-.96-2.5-2.27-2.62A2.508 2.508 0 009 7.5v8.15l-1.87-.4c-.19-.03-1.02-.15-1.73.56L4 17.22l5.12 5.19c.37.38.88.59 1.41.59h6.55c.98 0 1.81-.7 1.97-1.67l.92-5.44a2 2 0 00-1.08-2.12zM18 15.56L17.08 21h-6.55l-3.7-3.78 4.17.89V7.5c0-.28.22-.5.5-.5s.5.22.5.5v6.18h1.76L18 15.56z\"}}]})(props);\n};\nexport function MdOutlineSyncAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8l-4-4v3H3v2h15v3l4-4zM2 16l4 4v-3h15v-2H6v-3l-4 4z\"}}]})(props);\n};\nexport function MdOutlineSystemUpdateAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16l4-4h-3V3h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V4.99h6V3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 13l4-4h-3V3h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V4.99h6V3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineTabUnselected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineTab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z\"}}]})(props);\n};\nexport function MdOutlineTableView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7H9c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 2v2H9V9h10zm-6 6v-2h2v2h-2zm2 2v2h-2v-2h2zm-4-2H9v-2h2v2zm6-2h2v2h-2v-2zm-8 4h2v2H9v-2zm8 2v-2h2v2h-2zM6 17H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v1h-2V5H5v10h1v2z\"}}]})(props);\n};\nexport function MdOutlineTaskAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.18L10.59 16.6l-4.24-4.24 1.41-1.41 2.83 2.83 10-10L22 5.18zm-2.21 5.04c.13.57.21 1.17.21 1.78 0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c1.58 0 3.04.46 4.28 1.25l1.44-1.44A9.9 9.9 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-1.19-.22-2.33-.6-3.39l-1.61 1.61z\"}}]})(props);\n};\nexport function MdOutlineTextRotateUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4l-3 3h2v13h2V7h2l-3-3zm-6.2 11.5v-5l2.2-.9V7.5L3 12.25v1.5l11 4.75v-2.1l-2.2-.9zM4.98 13L10 11.13v3.74L4.98 13z\"}}]})(props);\n};\nexport function MdOutlineTextRotateVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.75 5h-1.5L9.5 16h2.1l.9-2.2h5l.9 2.2h2.1L15.75 5zm-2.62 7L15 6.98 16.87 12h-3.74zM6 20l3-3H7V4H5v13H3l3 3z\"}}]})(props);\n};\nexport function MdOutlineTextRotationAngledown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21v-4.24l-1.41 1.41-9.2-9.19-1.41 1.41 9.19 9.19L10.76 21H15zM11.25 8.48l3.54 3.54-.92 2.19 1.48 1.48 4.42-11.14-1.06-1.05L7.57 7.92 9.06 9.4l2.19-.92zm6.59-3.05l-2.23 4.87-2.64-2.64 4.87-2.23z\"}}]})(props);\n};\nexport function MdOutlineTextRotationAngleup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.76 9l1.41 1.41-9.19 9.19 1.41 1.41 9.19-9.19L21 13.24V9h-4.24zm-8.28 3.75l3.54-3.54 2.19.92 1.48-1.48L4.56 4.23 3.5 5.29l4.42 11.14 1.48-1.48-.92-2.2zm-.82-1.72L5.43 6.16l4.87 2.23-2.64 2.64z\"}}]})(props);\n};\nexport function MdOutlineTextRotationDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 20l3-3H7V4H5v13H3l3 3zm6.2-11.5v5l-2.2.9v2.1l11-4.75v-1.5L10 5.5v2.1l2.2.9zm6.82 2.5L14 12.87V9.13L19.02 11z\"}}]})(props);\n};\nexport function MdOutlineTextRotationNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18l-3-3v2H5v2h13v2l3-3zM9.5 11.8h5l.9 2.2h2.1L12.75 3h-1.5L6.5 14h2.1l.9-2.2zM12 4.98L13.87 10h-3.74L12 4.98z\"}}]})(props);\n};\nexport function MdOutlineTheaters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm6 10h-4V5h4v14zm4-2h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z\"}}]})(props);\n};\nexport function MdOutlineThumbDownOffAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm0 12l-4.34 4.34L12 14H3v-2l3-7h9v10zm4-12h4v12h-4V3z\"}}]})(props);\n};\nexport function MdOutlineThumbDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm0 12l-4.34 4.34L12 14H3v-2l3-7h9v10zm4-12h4v12h-4z\"}}]})(props);\n};\nexport function MdOutlineThumbUpOffAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1V9z\"}}]})(props);\n};\nexport function MdOutlineThumbUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1z\"}}]})(props);\n};\nexport function MdOutlineThumbsUpDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17 5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55V6zm-2 1.13L7.92 12H2V6.21l1.93-1.93L3.36 7H10v.13zM22.5 10h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55V18c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5zm-.5 7.79l-1.93 1.93.57-2.72H14v-.13L16.08 12H22v5.79z\"}}]})(props);\n};\nexport function MdOutlineTimeline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 8c0 1.1-.9 2-2 2a1.7 1.7 0 01-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56A1.7 1.7 0 0119 8c0-1.1.9-2 2-2s2 .9 2 2z\"}}]})(props);\n};\nexport function MdOutlineTipsAndUpdates (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm-2-1h8v-2H5v2zm11.5-9.5c0 3.82-2.66 5.86-3.77 6.5H5.27c-1.11-.64-3.77-2.68-3.77-6.5C1.5 5.36 4.86 2 9 2s7.5 3.36 7.5 7.5zm-2 0C14.5 6.47 12.03 4 9 4S3.5 6.47 3.5 9.5c0 2.47 1.49 3.89 2.35 4.5h6.3c.86-.61 2.35-2.03 2.35-4.5zm6.87-2.13L20 8l1.37.63L22 10l.63-1.37L24 8l-1.37-.63L22 6l-.63 1.37zM19 6l.94-2.06L22 3l-2.06-.94L19 0l-.94 2.06L16 3l2.06.94L19 6z\"}}]})(props);\n};\nexport function MdOutlineToc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineToday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-1V1h-2v2H8V1H6v2H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z\"}}]})(props);\n};\nexport function MdOutlineToll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zM3 12a5.99 5.99 0 014-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6 7.74v-2.09A5.99 5.99 0 013 12z\"}}]})(props);\n};\nexport function MdOutlineTouchApp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.19 12.44l-3.24-1.62c1.29-1 2.12-2.56 2.12-4.32 0-3.03-2.47-5.5-5.5-5.5s-5.5 2.47-5.5 5.5c0 2.13 1.22 3.98 3 4.89v3.26c-2.15-.46-2.02-.44-2.26-.44-.53 0-1.03.21-1.41.59L4 16.22l5.09 5.09c.43.44 1.03.69 1.65.69h6.3c.98 0 1.81-.7 1.97-1.67l.8-4.71c.22-1.3-.43-2.58-1.62-3.18zm-.35 2.85l-.8 4.71h-6.3c-.09 0-.17-.04-.24-.1l-3.68-3.68 4.25.89V6.5c0-.28.22-.5.5-.5s.5.22.5.5v6h1.76l3.46 1.73c.4.2.62.63.55 1.06zM8.07 6.5c0-1.93 1.57-3.5 3.5-3.5s3.5 1.57 3.5 3.5c0 .95-.38 1.81-1 2.44V6.5a2.5 2.5 0 00-5 0v2.44c-.62-.63-1-1.49-1-2.44z\"}}]})(props);\n};\nexport function MdOutlineTour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H7V2H5v20h2v-8h14l-2-5 2-5zm-3.86 5.74l.9 2.26H7V6h11.05l-.9 2.26-.3.74.29.74zM14 9c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z\"}}]})(props);\n};\nexport function MdOutlineTrackChanges (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93l-1.41 1.41A8.014 8.014 0 0120 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z\"}}]})(props);\n};\nexport function MdOutlineTranslate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.87 15.07l-2.54-2.51.03-.03A17.52 17.52 0 0014.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z\"}}]})(props);\n};\nexport function MdOutlineTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18l2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6h-6z\"}}]})(props);\n};\nexport function MdOutlineTrendingFlat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12l-4-4v3H3v2h15v3l4-4z\"}}]})(props);\n};\nexport function MdOutlineTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6h-6z\"}}]})(props);\n};\nexport function MdOutlineTry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15l1.57-3.43L17 10l-3.43-1.57L12 5l-1.57 3.43L7 10l3.43 1.57z\"}}]})(props);\n};\nexport function MdOutlineTurnedInNot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z\"}}]})(props);\n};\nexport function MdOutlineTurnedIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineUnpublished (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.94 5.12L6.49 3.66A9.91 9.91 0 0112 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51l-1.46-1.46A7.869 7.869 0 0020 12c0-4.41-3.59-8-8-8-1.48 0-2.86.41-4.06 1.12zm9.72 4.41l-1.41-1.41-2.65 2.65 1.41 1.41 2.65-2.65zm2.12 13.08l-2.27-2.27A9.91 9.91 0 0112 22C6.48 22 2 17.52 2 12c0-2.04.61-3.93 1.66-5.51L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zm-3.72-3.73L12.18 15l-1.59 1.59-4.24-4.24 1.41-1.41 2.83 2.83.18-.18-5.65-5.65A7.932 7.932 0 004 12c0 4.41 3.59 8 8 8 1.48 0 2.86-.41 4.06-1.12z\"}}]})(props);\n};\nexport function MdOutlineUpdateDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 13a8.865 8.865 0 01-1.33 3.79l-1.47-1.47c.38-.71.65-1.49.77-2.32h2.03zM8.67 5.84A7.06 7.06 0 0112 5a7.01 7.01 0 015.74 3H15v2h6V4h-2v2.36C17.35 4.32 14.83 3 12 3c-1.76 0-3.4.51-4.78 1.39l1.45 1.45zM11 7v1.17l2 2V7h-2zm8.78 15.61l-3-3A8.973 8.973 0 0112 21a9 9 0 01-9-9c0-1.76.51-3.4 1.39-4.78l-3-3L2.8 2.81l18.38 18.38-1.4 1.42zm-4.46-4.46L5.84 8.67A7.06 7.06 0 005 12c0 3.86 3.14 7 7 7 1.2 0 2.34-.31 3.32-.85z\"}}]})(props);\n};\nexport function MdOutlineUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8v5l4.25 2.52.77-1.28-3.52-2.09V8H11zm10 2V3l-2.64 2.64A8.937 8.937 0 0012 3a9 9 0 109 9h-2c0 3.86-3.14 7-7 7s-7-3.14-7-7 3.14-7 7-7c1.93 0 3.68.79 4.95 2.05L14 10h7z\"}}]})(props);\n};\nexport function MdOutlineUpgrade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18v2H8v-2h8zM11 7.99V16h2V7.99h3L12 4 8 7.99h3z\"}}]})(props);\n};\nexport function MdOutlineVerifiedUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm7 10c0 4.52-2.98 8.69-7 9.93-4.02-1.24-7-5.41-7-9.93V6.3l7-3.11 7 3.11V11zm-11.59.59L6 13l4 4 8-8-1.41-1.42L10 14.17z\"}}]})(props);\n};\nexport function MdOutlineVerified (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 11.99L20.56 9.2l.34-3.69-3.61-.82L15.4 1.5 12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 11.99l2.44 2.79-.34 3.7 3.61.82 1.89 3.2 3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69 2.44-2.8zm-3.95 1.48l-.56.65.08.85.18 1.95-1.9.43-.84.19-.44.74-.99 1.68-1.78-.77-.8-.34-.79.34-1.78.77-.99-1.67-.44-.74-.84-.19-1.9-.43.18-1.96.08-.85-.56-.65L3.67 12l1.29-1.48.56-.65-.09-.86-.18-1.94 1.9-.43.84-.19.44-.74.99-1.68 1.78.77.8.34.79-.34 1.78-.77.99 1.68.44.74.84.19 1.9.43-.18 1.95-.08.85.56.65 1.29 1.47-1.28 1.48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.09 13.75l-2.32-2.33-1.48 1.49 3.8 3.81 7.34-7.36-1.48-1.49z\"}}]})(props);\n};\nexport function MdOutlineVerticalSplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h8v2H3zm0 4h8v2H3zm0-8h8v2H3zm0-4h8v2H3zm16 2v10h-4V7h4m2-2h-8v14h8V5z\"}}]})(props);\n};\nexport function MdOutlineViewAgenda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v4H4V5h15m0 10v4H4v-4h15m1-12H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm0 10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineViewArray (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7v10H9V7h6zm6-2h-3v14h3V5zm-4 0H7v14h10V5zM6 5H3v14h3V5z\"}}]})(props);\n};\nexport function MdOutlineViewCarousel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7h4v10H2V7zm5 12h10V5H7v14zM9 7h6v10H9V7zm9 0h4v10h-4V7z\"}}]})(props);\n};\nexport function MdOutlineViewColumn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14h18V5H3zm5.33 12H5V7h3.33v10zm5.34 0h-3.33V7h3.33v10zM19 17h-3.33V7H19v10z\"}}]})(props);\n};\nexport function MdOutlineViewDay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 18H2v2h19v-2zm-2-8v4H4v-4h15m1-2H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm1-4H2v2h19V4z\"}}]})(props);\n};\nexport function MdOutlineViewHeadline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"}}]})(props);\n};\nexport function MdOutlineViewInAr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 4c0-.55.45-1 1-1h2V1H4C2.34 1 1 2.34 1 4v2h2V4zM3 20v-2H1v2c0 1.66 1.34 3 3 3h2v-2H4c-.55 0-1-.45-1-1zM20 1h-2v2h2c.55 0 1 .45 1 1v2h2V4c0-1.66-1.34-3-3-3zM21 20c0 .55-.45 1-1 1h-2v2h2c1.66 0 3-1.34 3-3v-2h-2v2zM19 14.87V9.13c0-.72-.38-1.38-1-1.73l-5-2.88c-.31-.18-.65-.27-1-.27s-.69.09-1 .27L6 7.39c-.62.36-1 1.02-1 1.74v5.74c0 .72.38 1.38 1 1.73l5 2.88c.31.18.65.27 1 .27s.69-.09 1-.27l5-2.88c.62-.35 1-1.01 1-1.73zm-8 2.3l-4-2.3v-4.63l4 2.33v4.6zm1-6.33L8.04 8.53 12 6.25l3.96 2.28L12 10.84zm5 4.03l-4 2.3v-4.6l4-2.33v4.63z\"}}]})(props);\n};\nexport function MdOutlineViewList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14h18V5H3zm4 2v2H5V7h2zm-2 6v-2h2v2H5zm0 2h2v2H5v-2zm14 2H9v-2h10v2zm0-4H9v-2h10v2zm0-4H9V7h10v2z\"}}]})(props);\n};\nexport function MdOutlineViewModule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14h18V5H3zm16 6h-3.33V7H19v4zm-5.33 0h-3.33V7h3.33v4zM8.33 7v4H5V7h3.33zM5 17v-4h3.33v4H5zm5.33 0v-4h3.33v4h-3.33zm5.34 0v-4H19v4h-3.33z\"}}]})(props);\n};\nexport function MdOutlineViewQuilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14h18V5H3zm5.33 12H5V7h3.33v10zm5.34 0h-3.33v-4h3.33v4zM19 17h-3.33v-4H19v4zm0-6h-8.67V7H19v4z\"}}]})(props);\n};\nexport function MdOutlineViewSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 4v16h20V4H2zm18 4.67h-2.5V6H20v2.67zm-2.5 2H20v2.67h-2.5v-2.67zM4 6h11.5v12H4V6zm13.5 12v-2.67H20V18h-2.5z\"}}]})(props);\n};\nexport function MdOutlineViewStream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2zm16 10H5v-4h14v4zM5 11V7h14v4H5z\"}}]})(props);\n};\nexport function MdOutlineViewWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8 18H4V6h4v12zm6 0h-4V6h4v12zm6 0h-4V6h4v12z\"}}]})(props);\n};\nexport function MdOutlineVisibilityOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6a9.77 9.77 0 018.82 5.5 9.647 9.647 0 01-2.41 3.12l1.41 1.41c1.39-1.23 2.49-2.77 3.18-4.53C21.27 7.11 17 4 12 4c-1.27 0-2.49.2-3.64.57l1.65 1.65C10.66 6.09 11.32 6 12 6zm-1.07 1.14L13 9.21c.57.25 1.03.71 1.28 1.28l2.07 2.07c.08-.34.14-.7.14-1.07C16.5 9.01 14.48 7 12 7c-.37 0-.72.05-1.07.14zM2.01 3.87l2.68 2.68A11.738 11.738 0 001 11.5C2.73 15.89 7 19 12 19c1.52 0 2.98-.29 4.32-.82l3.42 3.42 1.41-1.41L3.42 2.45 2.01 3.87zm7.5 7.5l2.61 2.61c-.04.01-.08.02-.12.02a2.5 2.5 0 01-2.5-2.5c0-.05.01-.08.01-.13zm-3.4-3.4l1.75 1.75a4.6 4.6 0 00-.36 1.78 4.507 4.507 0 006.27 4.14l.98.98c-.88.24-1.8.38-2.75.38a9.77 9.77 0 01-8.82-5.5c.7-1.43 1.72-2.61 2.93-3.53z\"}}]})(props);\n};\nexport function MdOutlineVisibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6a9.77 9.77 0 018.82 5.5C19.17 14.87 15.79 17 12 17s-7.17-2.13-8.82-5.5A9.77 9.77 0 0112 6m0-2C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 5a2.5 2.5 0 010 5 2.5 2.5 0 010-5m0-2c-2.48 0-4.5 2.02-4.5 4.5S9.52 16 12 16s4.5-2.02 4.5-4.5S14.48 7 12 7z\"}}]})(props);\n};\nexport function MdOutlineVoiceOverOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.76 5.36l-1.68 1.69c.8 1.13.83 2.58.09 3.74l1.7 1.7c1.9-2.02 1.87-4.98-.11-7.13zM20.07 2l-1.63 1.63c2.72 2.97 2.76 7.39.14 10.56l1.64 1.64c3.74-3.89 3.71-9.84-.15-13.83zM9.43 5.04l3.53 3.53a3.979 3.979 0 00-3.53-3.53zM4.41 2.86L3 4.27l2.62 2.62C5.23 7.5 5 8.22 5 9c0 2.21 1.79 4 4 4 .78 0 1.5-.23 2.11-.62l4.4 4.4C13.74 15.6 10.78 15 9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-.37-.11-.7-.29-1.02L19.73 21l1.41-1.41L4.41 2.86zM3 19c.22-.72 3.31-2 6-2 2.7 0 5.8 1.29 6 2H3zm6-8c-1.1 0-2-.9-2-2 0-.22.04-.42.11-.62l2.51 2.51c-.2.07-.4.11-.62.11z\"}}]})(props);\n};\nexport function MdOutlineWatchLater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z\"}}]})(props);\n};\nexport function MdOutlineWifiProtectedSetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.71 5.29L19 3h-8v8l2.3-2.3c1.97 1.46 3.25 3.78 3.25 6.42 0 1.31-.32 2.54-.88 3.63 2.33-1.52 3.88-4.14 3.88-7.13 0-2.52-1.11-4.77-2.84-6.33z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.46 8.88c0-1.31.32-2.54.88-3.63a8.479 8.479 0 00-3.88 7.13c0 2.52 1.1 4.77 2.84 6.33L5 21h8v-8l-2.3 2.3c-1.96-1.46-3.24-3.78-3.24-6.42z\"}}]})(props);\n};\nexport function MdOutlineWorkOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4h4v2h-3.6l2 2H20v7.6l2 2V8c0-1.11-.89-2-2-2h-4V4c0-1.11-.89-2-2-2h-4c-.99 0-1.8.7-1.96 1.64L10 5.6V4zM3.4 1.84L1.99 3.25 4.74 6H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h15.74l2 2 1.41-1.41L3.4 1.84zM4 19V8h2.74l11 11H4z\"}}]})(props);\n};\nexport function MdOutlineWorkOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6V4h-4v2h4zM4 8v11h16V8H4zm16-2c1.11 0 2 .89 2 2v11c0 1.11-.89 2-2 2H4c-1.11 0-2-.89-2-2l.01-11c0-1.11.88-2 1.99-2h4V4c0-1.11.89-2 2-2h4c1.11 0 2 .89 2 2v2h4z\"}}]})(props);\n};\nexport function MdOutlineWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z\"}}]})(props);\n};\nexport function MdOutlineWysiwyg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 16H5V7h14v12zm-2-7H7v-2h10v2zm-4 4H7v-2h6v2z\"}}]})(props);\n};\nexport function MdOutlineYoutubeSearchedFor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.01 14h-.8l-.27-.27a6.451 6.451 0 001.57-4.23c0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51a4.5 4.5 0 019 0 4.507 4.507 0 01-6.32 4.12L7.71 15.1a6.474 6.474 0 007.52-.67l.27.27v.79l5.01 4.99L22 19l-4.99-5z\"}}]})(props);\n};\nexport function MdOutlineZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm.5-7H9v2H7v1h2v2h1v-2h2V9h-2z\"}}]})(props);\n};\nexport function MdOutlineZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\"}}]})(props);\n};\nexport function MdOutlineAddAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zM12 6c2.76 0 5 2.24 5 5v7H7v-7c0-2.76 2.24-5 5-5zm0-4.5c-.83 0-1.5.67-1.5 1.5v1.17C7.36 4.85 5 7.65 5 11v6l-2 2v1h18v-1l-2-2v-6c0-3.35-2.36-6.15-5.5-6.83V3c0-.83-.67-1.5-1.5-1.5zM13 8h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdOutlineAutoDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2h-3.5l-1-1h-5l-1 1H1v2h14zM16 9c-.7 0-1.37.1-2 .29V5H2v12c0 1.1.9 2 2 2h5.68A6.999 6.999 0 0023 16c0-3.87-3.13-7-7-7zm-7 7c0 .34.03.67.08 1H4V7h8v3.26c-1.81 1.27-3 3.36-3 5.74zm7 5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 12H15v5l3.6 2.1.8-1.2-2.9-1.7z\"}}]})(props);\n};\nexport function MdOutlineErrorOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2v-2zm0-8h2v6h-2V7zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"}}]})(props);\n};\nexport function MdOutlineNotificationImportant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zM12 6c2.76 0 5 2.24 5 5v7H7v-7c0-2.76 2.24-5 5-5zm0-4.5c-.83 0-1.5.67-1.5 1.5v1.17C7.36 4.85 5 7.65 5 11v6l-2 2v1h18v-1l-2-2v-6c0-3.35-2.36-6.15-5.5-6.83V3c0-.83-.67-1.5-1.5-1.5zM11 8h2v4h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineWarningAmber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"}}]})(props);\n};\nexport function MdOutlineWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdOutline10K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 6v10H5v-8.5h1V15h1.5V9H5V5h14v4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 11.25V9H14v6h1.5v-2.25L17.25 15H19l-2.25-3L19 9h-1.75zM9.5 15H12c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H9.5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-4.5h1.5v3H10v-3z\"}}]})(props);\n};\nexport function MdOutline1KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 15H9V9H6v1.5h1.5zM12 12.75L13.75 15h1.75l-2.25-3 2.25-3h-1.75L12 11.25V9h-1.5v6H12z\"}}]})(props);\n};\nexport function MdOutline1K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 15H10V9H7v1.5h1.5zM13.5 12.75L15.25 15H17l-2.25-3L17 9h-1.75l-1.75 2.25V9H12v6h1.5z\"}}]})(props);\n};\nexport function MdOutline2KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13.5H7.5v-1H9c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1H6v1.5h2.5v1H7c-.55 0-1 .45-1 1V15h4v-1.5zM12.5 12.75L14.25 15H16l-2.25-3L16 9h-1.75l-1.75 2.25V9H11v6h1.5z\"}}]})(props);\n};\nexport function MdOutline2K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13.5H8v-1h2c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1H6.5v1.5h3v1h-2c-.55 0-1 .45-1 1V15H11v-1.5zM14.5 12.75L16.25 15H18l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5z\"}}]})(props);\n};\nexport function MdOutline3KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14v-4c0-.55-.45-1-1-1H5.5v1.5h3v1h-2v1h2v1h-3V15H9c.55 0 1-.45 1-1zM12.5 12.75L14.25 15H16l-2.25-3L16 9h-1.75l-1.75 2.25V9H11v6h1.5z\"}}]})(props);\n};\nexport function MdOutline3K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14v-4c0-.55-.45-1-1-1H6.5v1.5h3v1h-2v1h2v1h-3V15H10c.55 0 1-.45 1-1zM14.5 12.75L16.25 15H18l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5z\"}}]})(props);\n};\nexport function MdOutline4KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 15H10v-1.5h1V12h-1V9H8.5v3H7V9H5.5v4.5h3zM13 12.75L14.75 15h1.75l-2.25-3 2.25-3h-1.75L13 11.25V9h-1.5v6H13z\"}}]})(props);\n};\nexport function MdOutline4K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 16H5V5h14v14zm-9.5-4H11v-1.49h1V12h-1V9H9.5v3H8V9H6.5v4.5h3zm8.7 0l-2-3 2-3h-1.7l-2 3 2 3zm-3.7-3V9H13v6h1.5z\"}}]})(props);\n};\nexport function MdOutline5G (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 13H19v2h-5V9h7c0-1.1-.9-2-2-2h-5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4.5v2zM3 13h5v2H3v2h5c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2H5V9h5V7H3v6z\"}}]})(props);\n};\nexport function MdOutline5KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14v-1.5c0-.55-.45-1-1-1H7.5v-1H10V9H6v3.5h2.5v1H6V15h3c.55 0 1-.45 1-1zM12.5 12.75L14.25 15H16l-2.25-3L16 9h-1.75l-1.75 2.25V9H11v6h1.5z\"}}]})(props);\n};\nexport function MdOutline5K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14v-1.5c0-.55-.45-1-1-1H8v-1h3V9H6.5v3.5h3v1h-3V15H10c.55 0 1-.45 1-1zM14.5 12.75L16.25 15H18l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5z\"}}]})(props);\n};\nexport function MdOutline6KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 12.75L14.25 15H16l-2.25-3L16 9h-1.75l-1.75 2.25V9H11v6h1.5zM7 15h2c.55 0 1-.45 1-1v-1.5c0-.55-.45-1-1-1H7.5v-1H10V9H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-2.5h1V14h-1v-1.5z\"}}]})(props);\n};\nexport function MdOutline6K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 12.75L16.25 15H18l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5zM7.5 15H10c.55 0 1-.45 1-1v-1.5c0-.55-.45-1-1-1H8v-1h3V9H7.5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-2.5h1.5V14H8v-1.5z\"}}]})(props);\n};\nexport function MdOutline7KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.75 15H8.5l1.46-4.71C10.15 9.65 9.67 9 9 9H5.5v1.5h2.63L6.75 15zM12.5 12.75L14.25 15H16l-2.25-3L16 9h-1.75l-1.75 2.25V9H11v6h1.5z\"}}]})(props);\n};\nexport function MdOutline7K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.75 15H9.5l1.46-4.71C11.15 9.65 10.67 9 10 9H6.5v1.5h2.63L7.75 15zM14.5 12.75L16.25 15H18l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5z\"}}]})(props);\n};\nexport function MdOutline8KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15h2c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-5h1v1.5h-1V10zm0 2.5h1V14h-1v-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 12.75L14.25 15H16l-2.25-3L16 9h-1.75l-1.75 2.25V9H11v6h1.5z\"}}]})(props);\n};\nexport function MdOutline8K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 15H10c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H7.5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-5h1.5v1.5H8V10zm0 2.5h1.5V14H8v-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 12.75L16.25 15H18l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5z\"}}]})(props);\n};\nexport function MdOutline9KPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14v-4c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v1.5c0 .55.45 1 1 1h1.5v1H6V15h3c.55 0 1-.45 1-1zm-1.5-2.5h-1V10h1v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8.5h-1.5V10h-1v1.5H15v1h1.5V14h1v-1.5H19V19H5V5h14v6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 12.75L14.25 15H16l-2.25-3L16 9h-1.75l-1.75 2.25V9H11v6h1.5z\"}}]})(props);\n};\nexport function MdOutline9K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14v-4c0-.55-.45-1-1-1H7.5c-.55 0-1 .45-1 1v1.5c0 .55.45 1 1 1h2v1h-3V15H10c.55 0 1-.45 1-1zm-1.5-2.5H8V10h1.5v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 12.75L16.25 15H18l-2.25-3L18 9h-1.75l-1.75 2.25V9H13v6h1.5z\"}}]})(props);\n};\nexport function MdOutlineAddToQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v-3h3v-2h-3V7h-2v3H8v2h3zM21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h5c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 14H3V5h18v12z\"}}]})(props);\n};\nexport function MdOutlineAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 22h12l-6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V5h18v12h-4v2h4c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineAlbum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-12.5c-2.49 0-4.5 2.01-4.5 4.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5-2.01-4.5-4.5-4.5zm0 5.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineArtTrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 13h-8v-2h8v2zm0-6h-8v2h8V7zm-8 10h8v-2h-8v2zm-2-8v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-1.5 6l-2.25-3-1.75 2.26-1.25-1.51L3.5 15h7z\"}}]})(props);\n};\nexport function MdOutlineAvTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm0-14v4h2V5.08c3.39.49 6 3.39 6 6.92 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-1.68.59-3.22 1.58-4.42L12 13l1.41-1.41-6.8-6.8v.02C4.42 6.45 3 9.05 3 12c0 4.97 4.02 9 9 9a9 9 0 000-18h-1zm7 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zM6 12c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z\"}}]})(props);\n};\nexport function MdOutlineBrandingWatermark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zm-10-7h9v6h-9z\"}}]})(props);\n};\nexport function MdOutlineCallToAction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM5 15h14v3H5z\"}}]})(props);\n};\nexport function MdOutlineClosedCaptionDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1h-1.5v-.5h-2v1L13 10zm3.5 3.5l1.21 1.21c.18-.19.29-.44.29-.71v-1h-1.5v.5zM8.83 6H19v10.17l1.98 1.98c0-.05.02-.1.02-.16V6c0-1.1-.9-2-2-2H6.83l2 2zm10.95 16.61L17.17 20H5a2 2 0 01-2-2V6c0-.05.02-.1.02-.15L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM7.5 13.5h2V13h.67l-2.5-2.5H7.5v3zm7.67 4.5L11 13.83V14c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.32.16-.59.4-.78L5 7.83V18h10.17z\"}}]})(props);\n};\nexport function MdOutlineClosedCaptionOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15h3c.55 0 1-.45 1-1v-1H9.5v.5h-2v-3h2v.5H11v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zM14 15h3c.55 0 1-.45 1-1v-1h-1.5v.5h-2v-3h2v.5H18v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z\"}}]})(props);\n};\nexport function MdOutlineClosedCaption (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12zM7 15h3c.55 0 1-.45 1-1v-1H9.5v.5h-2v-3h2v.5H11v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7 0h3c.55 0 1-.45 1-1v-1h-1.5v.5h-2v-3h2v.5H18v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z\"}}]})(props);\n};\nexport function MdOutlineControlCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.54 8.46L2 12l3.54 3.54 1.76-1.77L5.54 12l1.76-1.77zm6.46 10l-1.77-1.76-1.77 1.76L12 22l3.54-3.54-1.77-1.76zm6.46-10l-1.76 1.77L18.46 12l-1.76 1.77 1.76 1.77L22 12zm-10-2.92l1.77 1.76L12 5.54l1.77 1.76 1.77-1.76L12 2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function MdOutlineEqualizer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z\"}}]})(props);\n};\nexport function MdOutlineExplicit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h4v-2h-4V9h4V7H9v10h6z\"}}]})(props);\n};\nexport function MdOutlineFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9.86L18.03 12 15 14.14V9.86m-9 0L9.03 12 6 14.14V9.86M13 6v12l8.5-6L13 6zM4 6v12l8.5-6L4 6z\"}}]})(props);\n};\nexport function MdOutlineFastRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9.86v4.28L14.97 12 18 9.86m-9 0v4.28L5.97 12 9 9.86M20 6l-8.5 6 8.5 6V6zm-9 0l-8.5 6 8.5 6V6z\"}}]})(props);\n};\nexport function MdOutlineFeaturedPlayList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM5 10h9v2H5zm0-3h9v2H5z\"}}]})(props);\n};\nexport function MdOutlineFeaturedVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM4 6h9v7H4z\"}}]})(props);\n};\nexport function MdOutlineFiberDvr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.87 12.43l-1-3.43h-1.5l1.75 6h1.5l1.75-6h-1.5zM21 11.5v-1c0-.85-.65-1.5-1.5-1.5H16v6h1.5v-2h1.15l.85 2H21l-.9-2.1c.5-.25.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zM6.5 9H3v6h3.5c.85 0 1.5-.65 1.5-1.5v-3C8 9.65 7.35 9 6.5 9zm0 4.5h-2v-3h2v3z\"}}]})(props);\n};\nexport function MdOutlineFiberManualRecord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6m0-2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8z\"}}]})(props);\n};\nexport function MdOutlineFiberNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.25 12.5L4.75 9H3.5v6h1.25v-3.5L7.3 15h1.2V9H7.25zM9.5 15h4v-1.25H11v-1.11h2.5v-1.26H11v-1.12h2.5V9h-4zm9.75-6v4.5h-1.12V9.99h-1.25v3.52h-1.13V9H14.5v5c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V9h-1.25z\"}}]})(props);\n};\nexport function MdOutlineFiberPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h1.5V9H11v6zm7.75-6v3.5L16.25 9H15v6h1.25v-3.5L18.8 15H20V9h-1.25zM7.5 9H4v6h1.5v-2h2c.85 0 1.5-.65 1.5-1.5v-1C9 9.65 8.35 9 7.5 9zm0 2.5h-2v-1h2v1z\"}}]})(props);\n};\nexport function MdOutlineFiberSmartRecord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm8-13.74v2.09a5.99 5.99 0 010 11.3v2.09c3.45-.89 6-4.01 6-7.74 0-3.73-2.55-6.85-6-7.74z\"}}]})(props);\n};\nexport function MdOutlineForward10 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.9 16v-4.27h-.09l-1.77.63v.69l1.01-.31V16zM14.32 11.78c-.18-.07-.37-.1-.59-.1s-.41.03-.59.1-.33.18-.45.33-.23.34-.29.57-.1.5-.1.82v.74c0 .32.04.6.11.82s.17.42.3.57.28.26.46.33.37.1.59.1.41-.03.59-.1.33-.18.45-.33.22-.34.29-.57.1-.5.1-.82v-.74c0-.32-.04-.6-.11-.82s-.17-.42-.3-.57-.29-.26-.46-.33zm.01 2.57c0 .19-.01.35-.04.48s-.06.24-.11.32-.11.14-.19.17-.16.05-.25.05-.18-.02-.25-.05-.14-.09-.19-.17-.09-.19-.12-.32-.04-.29-.04-.48v-.97c0-.19.01-.35.04-.48s.06-.23.12-.31.11-.14.19-.17.16-.05.25-.05.18.02.25.05.14.09.19.17.09.18.12.31.04.29.04.48v.97z\"}}]})(props);\n};\nexport function MdOutlineForward30 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2zm-7.46 2.22c-.06.05-.12.09-.2.12s-.17.04-.27.04a.69.69 0 01-.45-.15c-.06-.05-.1-.1-.13-.17s-.05-.14-.05-.22h-.85c0 .21.04.39.12.55s.19.28.33.38.29.18.46.23.35.07.53.07c.21 0 .41-.03.6-.08s.34-.14.48-.24.24-.24.32-.39.12-.33.12-.53c0-.23-.06-.44-.18-.61s-.3-.3-.54-.39c.1-.05.2-.1.28-.17s.15-.14.2-.22.1-.16.13-.25.04-.18.04-.27c0-.2-.04-.37-.11-.53s-.17-.28-.3-.38-.28-.18-.46-.23-.37-.08-.59-.08c-.19 0-.38.03-.54.08s-.32.13-.44.23-.23.22-.3.37-.11.3-.11.48h.85a.455.455 0 01.17-.35c.05-.04.11-.07.18-.1s.14-.03.22-.03c.1 0 .18.01.25.04s.13.06.18.11.08.11.11.17.04.14.04.22c0 .18-.05.32-.16.43s-.26.16-.48.16h-.43v.66h.45c.11 0 .2.01.29.04s.16.06.22.11.11.12.14.2.05.18.05.29c0 .09-.01.17-.04.24s-.08.11-.13.17zm3.9-3.44c-.18-.07-.37-.1-.59-.1s-.41.03-.59.1-.33.18-.45.33-.23.34-.29.57-.1.5-.1.82v.74c0 .32.04.6.11.82s.17.42.3.57.28.26.46.33.37.1.59.1.41-.03.59-.1.33-.18.45-.33.22-.34.29-.57.1-.5.1-.82v-.74c0-.32-.04-.6-.11-.82s-.17-.42-.3-.57-.28-.26-.46-.33zm.01 2.57c0 .19-.01.35-.04.48s-.06.24-.11.32-.11.14-.19.17-.16.05-.25.05-.18-.02-.25-.05-.14-.09-.19-.17-.09-.19-.12-.32-.04-.29-.04-.48v-.97c0-.19.01-.35.04-.48s.06-.23.12-.31.11-.14.19-.17.16-.05.25-.05.18.02.25.05.14.09.19.17.09.18.12.31.04.29.04.48v.97z\"}}]})(props);\n};\nexport function MdOutlineForward5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.95 13c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6v4l5-5-5-5v4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8h-2zm-5.52 2.15c-.05.07-.11.13-.18.17s-.17.06-.27.06c-.17 0-.31-.05-.42-.15s-.17-.24-.19-.41h-.84c.01.2.05.37.13.53s.19.28.32.39.29.19.46.24.35.08.53.08c.24 0 .46-.04.64-.12s.33-.18.45-.31.21-.28.27-.45.09-.35.09-.54c0-.22-.03-.43-.09-.6s-.14-.33-.25-.45-.25-.22-.41-.28-.34-.1-.55-.1c-.07 0-.14.01-.2.02s-.13.02-.18.04-.1.03-.15.05-.08.04-.11.05l.11-.92h1.7v-.71H10.9l-.25 2.17.67.17c.03-.03.06-.06.1-.09s.07-.05.12-.07.1-.04.15-.05.13-.02.2-.02c.12 0 .22.02.3.05s.16.09.21.15.1.14.13.24.04.19.04.31-.01.22-.03.31-.06.17-.11.24z\"}}]})(props);\n};\nexport function MdOutlineGames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4v2.67l-1 1-1-1V4h2m7 7v2h-2.67l-1-1 1-1H20M6.67 11l1 1-1 1H4v-2h2.67M12 16.33l1 1V20h-2v-2.67l1-1M15 2H9v5.5l3 3 3-3V2zm7 7h-5.5l-3 3 3 3H22V9zM7.5 9H2v6h5.5l3-3-3-3zm4.5 4.5l-3 3V22h6v-5.5l-3-3z\"}}]})(props);\n};\nexport function MdOutlineHd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7.5 13h2v2H11V9H9.5v2.5h-2V9H6v6h1.5zM18 14v-4c0-.55-.45-1-1-1h-4v6h4c.55 0 1-.45 1-1zm-1.5-.5h-2v-3h2v3z\"}}]})(props);\n};\nexport function MdOutlineHearingDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.03 3.2C7.15 2.44 8.51 2 10 2c3.93 0 7 3.07 7 7 0 1.26-.38 2.65-1.07 3.9-.02.04-.05.08-.08.13l-1.48-1.48c.4-.86.63-1.75.63-2.55 0-2.8-2.2-5-5-5-.92 0-1.76.26-2.5.67L6.03 3.2zm11.18 11.18l1.43 1.43C20.11 13.93 21 11.57 21 9c0-3.04-1.23-5.79-3.22-7.78l-1.42 1.42A8.937 8.937 0 0119 9c0 2.02-.67 3.88-1.79 5.38zM10 6.5c-.21 0-.4.03-.59.08l3.01 3.01c.05-.19.08-.38.08-.59A2.5 2.5 0 0010 6.5zm11.19 14.69L2.81 2.81 1.39 4.22l2.13 2.13C3.19 7.16 3 8.05 3 9h2c0-.36.05-.71.12-1.05l6.61 6.61c-.88.68-1.78 1.41-2.27 2.9-.5 1.5-1 2.01-1.71 2.38-.19.1-.46.16-.75.16-1.1 0-2-.9-2-2H3a3.999 3.999 0 005.64 3.65c1.36-.71 2.13-1.73 2.73-3.55.32-.98.9-1.43 1.71-2.05.03-.02.05-.04.08-.06l6.62 6.62 1.41-1.42z\"}}]})(props);\n};\nexport function MdOutlineHearing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55A3.999 3.999 0 0021 18h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9a2.5 2.5 0 005 0 2.5 2.5 0 00-5 0z\"}}]})(props);\n};\nexport function MdOutlineHighQuality (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12zM7.5 13h2v2H11V9H9.5v2.5h-2V9H6v6h1.5zm6.5 2h.75v1.5h1.5V15H17c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-4.5h2v3h-2v-3z\"}}]})(props);\n};\nexport function MdOutlineLibraryAddCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v12H8V4h12m0-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41 12.47 14zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdOutlineLibraryAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-7-2h2v-3h3V9h-3V6h-2v3h-3v2h3z\"}}]})(props);\n};\nexport function MdOutlineLibraryBooks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zM10 9h8v2h-8zm0 3h4v2h-4zm0-6h8v2h-8z\"}}]})(props);\n};\nexport function MdOutlineLibraryMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-7.5-1a2.5 2.5 0 002.5-2.5V7h3V5h-4v5.51c-.42-.32-.93-.51-1.5-.51a2.5 2.5 0 000 5zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\"}}]})(props);\n};\nexport function MdOutlineLoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0020 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 004 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\"}}]})(props);\n};\nexport function MdOutlineMicNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm-1-9c0-.55.45-1 1-1s1 .45 1 1v6c0 .55-.45 1-1 1s-1-.45-1-1V5zm6 6c0 2.76-2.24 5-5 5s-5-2.24-5-5H5c0 3.53 2.61 6.43 6 6.92V21h2v-3.08c3.39-.49 6-3.39 6-6.92h-2z\"}}]})(props);\n};\nexport function MdOutlineMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.8 4.9c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2l-.01 3.91L15 10.6V5c0-1.66-1.34-3-3-3-1.54 0-2.79 1.16-2.96 2.65l1.76 1.76V4.9zM19 11h-1.7c0 .58-.1 1.13-.27 1.64l1.27 1.27c.44-.88.7-1.87.7-2.91zM4.41 2.86L3 4.27l6 6V11c0 1.66 1.34 3 3 3 .23 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28a7.13 7.13 0 002.55-.9l4.2 4.2 1.41-1.41L4.41 2.86z\"}}]})(props);\n};\nexport function MdOutlineMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11c0 2.76-2.24 5-5 5s-5-2.24-5-5H5c0 3.53 2.61 6.43 6 6.92V21h2v-3.08c3.39-.49 6-3.39 6-6.92h-2z\"}}]})(props);\n};\nexport function MdOutlineMissedVideoCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4zm-2-1.83V16H5V8h10v.67zm-7.89 2.44L11 15l3.77-3.79-.78-.79L11 13.43l-3.11-3.1h2.55V9.22H6v4.44h1.11z\"}}]})(props);\n};\nexport function MdOutlineMovie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6.47L5.76 10H20v8H4V6.47M22 4h-4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4z\"}}]})(props);\n};\nexport function MdOutlineMusicVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM8 15c0-1.66 1.34-3 3-3 .35 0 .69.07 1 .18V6h5v2h-3v7.03A3.003 3.003 0 0111 18c-1.66 0-3-1.34-3-3z\"}}]})(props);\n};\nexport function MdOutlineNewReleases (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-4.51 2.11l.26 2.79-2.74.62-1.43 2.41L12 18.82l-2.58 1.11-1.43-2.41-2.74-.62.26-2.8L3.66 12l1.85-2.12-.26-2.78 2.74-.61 1.43-2.41L12 5.18l2.58-1.11 1.43 2.41 2.74.62-.26 2.79L20.34 12l-1.85 2.11zM11 15h2v2h-2zm0-8h2v6h-2z\"}}]})(props);\n};\nexport function MdOutlineNotInterested (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0112 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\"}}]})(props);\n};\nexport function MdOutlineNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4H4c-1.1 0-2 .9-2 2v12.01c0 1.1.9 1.99 2 1.99h16c1.1 0 2-.9 2-2v-8l-6-6zM4 18.01V6h11v5h5v7.01H4z\"}}]})(props);\n};\nexport function MdOutlinePauseCircleFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z\"}}]})(props);\n};\nexport function MdOutlinePauseCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z\"}}]})(props);\n};\nexport function MdOutlinePauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z\"}}]})(props);\n};\nexport function MdOutlinePause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"}}]})(props);\n};\nexport function MdOutlinePlayArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8.64L15.27 12 10 15.36V8.64M8 5v14l11-7L8 5z\"}}]})(props);\n};\nexport function MdOutlinePlayCircleFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z\"}}]})(props);\n};\nexport function MdOutlinePlayCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16.5l6-4.5-6-4.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlinePlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-2.5-3.5l7-4.5-7-4.5v9z\"}}]})(props);\n};\nexport function MdOutlinePlayDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.45 13.62L19 12 8 5v.17zM2.81 2.81L1.39 4.22 8 10.83V19l4.99-3.18 6.78 6.78 1.41-1.41L2.81 2.81zM10 15.36v-2.53l1.55 1.55-1.55.98z\"}}]})(props);\n};\nexport function MdOutlinePlaylistAddCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h11v2H3zM3 6h11v2H3zM3 14h7v2H3zM20.59 11.93l-4.25 4.24-2.12-2.12-1.41 1.41L16.34 19 22 13.34z\"}}]})(props);\n};\nexport function MdOutlinePlaylistAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10H3v2h11v-2zm0-4H3v2h11V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM3 16h7v-2H3v2z\"}}]})(props);\n};\nexport function MdOutlinePlaylistPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h11v2H3zM3 6h11v2H3zM3 14h7v2H3zM16 13v8l6-4z\"}}]})(props);\n};\nexport function MdOutlineQueueMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6h-5v8.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6zm-7 0H3v2h12V6zm0 4H3v2h12v-2zm-4 4H3v2h8v-2z\"}}]})(props);\n};\nexport function MdOutlineQueuePlayNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h2v-2H3V5h18v8h2V5a2 2 0 00-2-2zm-8 7V7h-2v3H8v2h3v3h2v-3h3v-2h-3zm11 8l-4.5 4.5L18 21l3-3-3-3 1.5-1.5L24 18z\"}}]})(props);\n};\nexport function MdOutlineQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-7-1h2v-4h4V9h-4V5h-2v4H9v2h4z\"}}]})(props);\n};\nexport function MdOutlineRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6H8.3l8.26-3.34L15.88 1 3.24 6.15C2.51 6.43 2 7.17 2 8v12a2 2 0 002 2h16a2 2 0 002-2V8c0-1.11-.89-2-2-2zm0 2v3h-2V9h-2v2H4V8h16zM4 20v-7h16v7H4z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16.48\",\"r\":\"2.5\"}}]})(props);\n};\nexport function MdOutlineRecentActors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5h2v14h-2zm-4 0h2v14h-2zm-3 0H2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 12H3V7h10v10z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"9.94\",\"r\":\"1.95\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.89 15.35c0-1.3-2.59-1.95-3.89-1.95s-3.89.65-3.89 1.95V16h7.78v-.65z\"}}]})(props);\n};\nexport function MdOutlineRemoveFromQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h5c1.1 0 2-.9 2-2V5a2 2 0 00-2-2zm0 14H3V5h18v12zm-5-7v2H8v-2h8z\"}}]})(props);\n};\nexport function MdOutlineRepeatOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-2 18H6.83l1.58 1.58L7 22l-4-4 4-4 1.41 1.42L6.83 17H17v-4h2v6zm-2-9l-1.41-1.42L17.17 7H7v4H5V5h12.17l-1.58-1.58L17 2l4 4-4 4z\"}}]})(props);\n};\nexport function MdOutlineRepeatOneOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-2 18H6.83l1.58 1.58L7 22l-4-4 4-4 1.41 1.42L6.83 17H17v-4h2v6zm-9-8.5V9h3v6h-1.5v-4.5H10zm7-.5l-1.41-1.42L17.17 7H7v4H5V5h12.17l-1.58-1.58L17 2l4 4-4 4z\"}}]})(props);\n};\nexport function MdOutlineRepeatOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z\"}}]})(props);\n};\nexport function MdOutlineRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z\"}}]})(props);\n};\nexport function MdOutlineReplay10 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 5V1l-5 5 5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6h-2c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8zm-1.1 11h-.85v-3.26l-1.01.31v-.69l1.77-.63h.09V16zm4.28-1.76c0 .32-.03.6-.1.82s-.17.42-.29.57-.28.26-.45.33-.37.1-.59.1-.41-.03-.59-.1-.33-.18-.46-.33-.23-.34-.3-.57-.11-.5-.11-.82v-.74c0-.32.03-.6.1-.82s.17-.42.29-.57.28-.26.45-.33.37-.1.59-.1.41.03.59.1.33.18.46.33.23.34.3.57.11.5.11.82v.74zm-.85-.86c0-.19-.01-.35-.04-.48s-.07-.23-.12-.31-.11-.14-.19-.17-.16-.05-.25-.05-.18.02-.25.05-.14.09-.19.17-.09.18-.12.31-.04.29-.04.48v.97c0 .19.01.35.04.48s.07.24.12.32.11.14.19.17.16.05.25.05.18-.02.25-.05.14-.09.19-.17.09-.19.11-.32.04-.29.04-.48v-.97z\"}}]})(props);\n};\nexport function MdOutlineReplay30 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8zm-2.44 8.49h.45c.21 0 .37-.05.48-.16s.16-.25.16-.43a.538.538 0 00-.15-.39c-.05-.05-.11-.09-.18-.11s-.16-.04-.25-.04c-.08 0-.15.01-.22.03s-.13.05-.18.1-.09.09-.12.15-.05.13-.05.2h-.85a1.06 1.06 0 01.41-.85c.13-.1.27-.18.44-.23s.35-.08.54-.08c.21 0 .41.03.59.08s.33.13.46.23.23.23.3.38.11.33.11.53a.842.842 0 01-.17.52 1.1 1.1 0 01-.48.39c.24.09.42.21.54.39s.18.38.18.61c0 .2-.04.38-.12.53s-.18.29-.32.39-.29.19-.48.24-.38.08-.6.08c-.18 0-.36-.02-.53-.07s-.33-.12-.46-.23-.25-.23-.33-.38-.12-.34-.12-.55h.85c0 .08.02.15.05.22s.07.12.13.17.12.09.2.11.16.04.25.04c.1 0 .19-.01.27-.04s.15-.07.2-.12.1-.11.13-.18.04-.15.04-.24c0-.11-.02-.21-.05-.29s-.08-.15-.14-.2-.13-.09-.22-.11-.18-.04-.29-.04h-.47v-.65zm5.74.75c0 .32-.03.6-.1.82s-.17.42-.29.57-.28.26-.45.33-.37.1-.59.1-.41-.03-.59-.1-.33-.18-.46-.33-.23-.34-.3-.57-.11-.5-.11-.82v-.74c0-.32.03-.6.1-.82s.17-.42.29-.57.28-.26.45-.33.37-.1.59-.1.41.03.59.1.33.18.46.33.23.34.3.57.11.5.11.82v.74zm-.85-.86c0-.19-.01-.35-.04-.48s-.07-.23-.12-.31-.11-.14-.19-.17-.16-.05-.25-.05-.18.02-.25.05-.14.09-.19.17-.09.18-.12.31-.04.29-.04.48v.97c0 .19.01.35.04.48s.07.24.12.32.11.14.19.17.16.05.25.05.18-.02.25-.05.14-.09.19-.17.09-.19.11-.32c.03-.13.04-.29.04-.48v-.97z\"}}]})(props);\n};\nexport function MdOutlineReplay5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8zm-1.31 8.9l.25-2.17h2.39v.71h-1.7l-.11.92c.03-.02.07-.03.11-.05s.09-.04.15-.05.12-.03.18-.04.13-.02.2-.02c.21 0 .39.03.55.1s.3.16.41.28.2.27.25.45.09.38.09.6c0 .19-.03.37-.09.54s-.15.32-.27.45-.27.24-.45.31-.39.12-.64.12c-.18 0-.36-.03-.53-.08s-.32-.14-.46-.24-.24-.24-.32-.39-.13-.33-.13-.53h.84c.02.18.08.32.19.41s.25.15.42.15a.49.49 0 00.45-.23c.04-.07.08-.15.11-.25s.03-.2.03-.31-.01-.21-.04-.31-.07-.17-.13-.24-.13-.12-.21-.15-.19-.05-.3-.05c-.08 0-.15.01-.2.02s-.11.03-.15.05-.08.05-.12.07-.07.06-.1.09l-.67-.16z\"}}]})(props);\n};\nexport function MdOutlineReplayCircleFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 16.5c-3.31 0-6-2.69-6-6h2c0 2.21 1.79 4 4 4s4-1.79 4-4c0-2.24-1.85-4.09-4.16-3.99l1.57 1.57L12 11.5l-4-4 4-4 1.41 1.41-1.6 1.6C15.28 6.4 18 9.18 18 12.5c0 3.31-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdOutlineReplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z\"}}]})(props);\n};\nexport function MdOutlineSd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15h3c.55 0 1-.45 1-1v-1.5c0-.55-.45-1-1-1H7.5v-1h2v.5H11v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v1.5c0 .55.45 1 1 1h2.5v1h-2V13H6v1c0 .55.45 1 1 1zM18 14v-4c0-.55-.45-1-1-1h-4v6h4c.55 0 1-.45 1-1zm-1.5-.5h-2v-3h2v3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z\"}}]})(props);\n};\nexport function MdOutlineShuffleOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1H3c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM5.41 4l5.18 5.17-1.41 1.42L4 5.42 5.41 4zM20 20h-6v-2h2.61l-3.2-3.2 1.42-1.42 3.13 3.13.04.04V14h2v6zm0-10h-2V7.42L5.41 20 4 18.59 16.58 6H14V4h6v6z\"}}]})(props);\n};\nexport function MdOutlineShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z\"}}]})(props);\n};\nexport function MdOutlineSkipNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18l8.5-6L6 6v12zm2-8.14L11.03 12 8 14.14V9.86zM16 6h2v12h-2z\"}}]})(props);\n};\nexport function MdOutlineSkipPrevious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6h2v12H6zm3.5 6l8.5 6V6l-8.5 6zm6.5 2.14L12.97 12 16 9.86v4.28z\"}}]})(props);\n};\nexport function MdOutlineSlowMotionVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.05 9.79L10 7.5v9l3.05-2.29L16 12l-2.95-2.21zm0 0L10 7.5v9l3.05-2.29L16 12l-2.95-2.21zm0 0L10 7.5v9l3.05-2.29L16 12l-2.95-2.21zM11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.941 7.941 0 0111 4.07zM5.69 7.1L4.26 5.68A9.949 9.949 0 002.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 014.07 13zm1.61 6.74A9.981 9.981 0 0011 21.95v-2.02a7.941 7.941 0 01-3.9-1.62l-1.42 1.43zM22 12c0 5.16-3.92 9.42-8.95 9.95v-2.02C16.97 19.41 20 16.05 20 12s-3.03-7.41-6.95-7.93V2.05C18.08 2.58 22 6.84 22 12z\"}}]})(props);\n};\nexport function MdOutlineSnooze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11h3.63L9 15.2V17h6v-2h-3.63L15 10.8V9H9v2zm7.056-7.654l1.282-1.535 4.607 3.85-1.28 1.54zM3.336 7.19l-1.28-1.536L6.662 1.81l1.28 1.536zM12 6c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.14-7-7 3.14-7 7-7m0-2a9 9 0 10.001 18.001A9 9 0 0012 4z\"}}]})(props);\n};\nexport function MdOutlineSortByAlpha (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.94 4.66h-4.72l2.36-2.36 2.36 2.36zm-4.69 14.71h4.66l-2.33 2.33-2.33-2.33zM6.1 6.27L1.6 17.73h1.84l.92-2.45h5.11l.92 2.45h1.84L7.74 6.27H6.1zm-1.13 7.37l1.94-5.18 1.94 5.18H4.97zm10.76 2.5h6.12v1.59h-8.53v-1.29l5.92-8.56h-5.88v-1.6h8.3v1.26l-5.93 8.6z\"}}]})(props);\n};\nexport function MdOutlineSpeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.38 8.57l-1.23 1.85a8 8 0 01-.22 7.58H5.07A8 8 0 0115.58 6.85l1.85-1.23A10 10 0 003.35 19a2 2 0 001.72 1h13.85a2 2 0 001.74-1 10 10 0 00-.27-10.44z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.59 15.41a2 2 0 002.83 0l5.66-8.49-8.49 5.66a2 2 0 000 2.83z\"}}]})(props);\n};\nexport function MdOutlineStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8h8v8H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v8H8V8h8m2-2H6v12h12V6z\"}}]})(props);\n};\nexport function MdOutlineSubscriptions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h16v2H4zm2-4h12v2H6zm14 8H4c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm0 10H4v-8h16v8zm-10-7.27v6.53L16 16z\"}}]})(props);\n};\nexport function MdOutlineSubtitles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12zM6 10h2v2H6zm0 4h8v2H6zm10 0h2v2h-2zm-6-4h8v2h-8z\"}}]})(props);\n};\nexport function MdOutlineSurroundSound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.29 15.71A5.233 5.233 0 016.75 12c0-1.35.52-2.69 1.53-3.72L7.05 7.05C5.68 8.41 5 10.21 5 12s.68 3.59 2.06 4.94l1.23-1.23zM12 15.5c1.93 0 3.5-1.57 3.5-3.5S13.93 8.5 12 8.5 8.5 10.07 8.5 12s1.57 3.5 3.5 3.5zm0-5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zM15.72 15.72l1.23 1.23C18.32 15.59 19 13.79 19 12s-.68-3.59-2.06-4.94l-1.23 1.23A5.233 5.233 0 0117.25 12c0 1.35-.52 2.69-1.53 3.72z\"}}]})(props);\n};\nexport function MdOutlineVideoCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4zM15 16H5V8h10v8zm-6-1h2v-2h2v-2h-2V9H9v2H7v2h2z\"}}]})(props);\n};\nexport function MdOutlineVideoLabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 13H3V5h18v11z\"}}]})(props);\n};\nexport function MdOutlineVideoLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zM12 5.5v9l6-4.5z\"}}]})(props);\n};\nexport function MdOutlineVideoSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18v5h2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9v-2H3V6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12L9 8v8zM22.71 18.43c.03-.29.04-.58.01-.86l1.07-.85c.1-.08.12-.21.06-.32l-1.03-1.79c-.06-.11-.19-.15-.31-.11l-1.28.5a3.44 3.44 0 00-.75-.42l-.2-1.36a.249.249 0 00-.25-.22h-2.07c-.12 0-.23.09-.25.21l-.2 1.36c-.26.11-.51.26-.74.42l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.79c-.06.11-.04.24.06.32l1.07.86c-.03.29-.04.58-.01.86l-1.07.85c-.1.08-.12.21-.06.32l1.03 1.79c.06.11.19.15.31.11l1.27-.5c.23.17.48.31.75.42l.2 1.36c.02.12.12.21.25.21h2.07c.12 0 .23-.09.25-.21l.2-1.36c.26-.11.51-.26.74-.42l1.28.5c.12.05.25 0 .31-.11l1.03-1.79c.06-.11.04-.24-.06-.32l-1.06-.85zM19 19.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineVideocamOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.56 8l-2-2-4.15-4.14L2 3.27 4.73 6H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.21 0 .39-.08.55-.18L19.73 21l1.41-1.41-8.86-8.86L9.56 8zM5 16V8h1.73l8 8H5zm10-8v2.61l6 6V6.5l-4 4V7c0-.55-.45-1-1-1h-5.61l2 2H15z\"}}]})(props);\n};\nexport function MdOutlineVideocam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8v8H5V8h10m1-2H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4V7c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineVolumeDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02A4.5 4.5 0 0016 7.97zM5 9v6h4l5 5V4L9 9H5zm7-.17v6.34L9.83 13H7v-2h2.83L12 8.83z\"}}]})(props);\n};\nexport function MdOutlineVolumeMute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8.83v6.34L11.83 13H9v-2h2.83L14 8.83M16 4l-5 5H7v6h4l5 5V4z\"}}]})(props);\n};\nexport function MdOutlineVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.34 2.93L2.93 4.34 7.29 8.7 7 9H3v6h4l5 5v-6.59l4.18 4.18c-.65.49-1.38.88-2.18 1.11v2.06a8.94 8.94 0 003.61-1.75l2.05 2.05 1.41-1.41L4.34 2.93zM10 15.17L7.83 13H5v-2h2.83l.88-.88L10 11.41v3.76zM19 12c0 .82-.15 1.61-.41 2.34l1.53 1.53c.56-1.17.88-2.48.88-3.87 0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zm-7-8l-1.88 1.88L12 7.76zm4.5 8A4.5 4.5 0 0014 7.97v1.79l2.48 2.48c.01-.08.02-.16.02-.24z\"}}]})(props);\n};\nexport function MdOutlineVolumeUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9v6h4l5 5V4L7 9H3zm7-.17v6.34L7.83 13H5v-2h2.83L10 8.83zM16.5 12A4.5 4.5 0 0014 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77 0-4.28-2.99-7.86-7-8.77z\"}}]})(props);\n};\nexport function MdOutlineWebAssetOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.83 4H20a2 2 0 012 2v12c0 .34-.09.66-.23.94L20 17.17V8h-9.17l-4-4zm13.66 19.31L17.17 20H4a2 2 0 01-2-2V6c0-.34.08-.66.23-.94L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM15.17 18l-10-10H4v10h11.17z\"}}]})(props);\n};\nexport function MdOutlineWebAsset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6a2 2 0 00-2-2zm0 14H5V8h14v10z\"}}]})(props);\n};\nexport function MdOutlineWeb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 9h10.5v3.5H4V9zm0 5.5h10.5V18H4v-3.5zM20 18h-3.5V9H20v9z\"}}]})(props);\n};\nexport function MdOutline3P (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4.01c-1.1 0-2 .9-2 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zm-8-6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 00-5.56 0A2.01 2.01 0 008 13.43V14h8v-.57z\"}}]})(props);\n};\nexport function MdOutlineAddIcCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.45c-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1 11.36 11.36 0 01-.57-3.57c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 4.95h1.5c.07.88.22 1.75.45 2.58l-1.2 1.21c-.4-1.21-.66-2.47-.75-3.79zM19 18.92c-1.32-.09-2.6-.35-3.8-.76l1.2-1.2c.85.24 1.72.39 2.6.45v1.51zM18 5.95v-3h-2v3h-3v2h3v3h2v-3h3v-2z\"}}]})(props);\n};\nexport function MdOutlineAlternateEmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1.95c-5.52 0-10 4.48-10 10s4.48 10 10 10h5v-2h-5c-4.34 0-8-3.66-8-8s3.66-8 8-8 8 3.66 8 8v1.43c0 .79-.71 1.57-1.5 1.57s-1.5-.78-1.5-1.57v-1.43c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.38 0 2.64-.56 3.54-1.47.65.89 1.77 1.47 2.96 1.47 1.97 0 3.5-1.6 3.5-3.57v-1.43c0-5.52-4.48-10-10-10zm0 13c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdOutlineAppRegistration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4h4v4h-4zM4 16h4v4H4zM4 10h4v4H4zM4 4h4v4H4zM16 4h4v4h-4zM11 17.86V20h2.1l5.98-5.97-2.12-2.12zM14 12.03V10h-4v4h2.03zM20.85 11.56l-1.41-1.41c-.2-.2-.51-.2-.71 0l-1.06 1.06 2.12 2.12 1.06-1.06c.2-.2.2-.51 0-.71z\"}}]})(props);\n};\nexport function MdOutlineBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineCallEnd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.59 10.52c1.05.51 2.04 1.15 2.96 1.91l-1.07 1.07c-.58-.47-1.21-.89-1.88-1.27v-1.71m-13.2 0v1.7c-.65.37-1.28.79-1.87 1.27l-1.07-1.07c.91-.75 1.9-1.38 2.94-1.9M12 7C7.46 7 3.34 8.78.29 11.67c-.18.18-.29.43-.29.71s.11.53.29.7l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.1.7-.28.79-.73 1.68-1.36 2.66-1.85.33-.16.56-.51.56-.9v-3.1C8.85 9.25 10.4 9 12 9s3.15.25 4.59.73v3.1c0 .4.23.74.56.9.98.49 1.88 1.11 2.67 1.85.18.17.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71s-.11-.53-.29-.71A16.971 16.971 0 0012 7z\"}}]})(props);\n};\nexport function MdOutlineCallMade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z\"}}]})(props);\n};\nexport function MdOutlineCallMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\"}}]})(props);\n};\nexport function MdOutlineCallMissedOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8.41l9 9 7-7V15h2V7h-8v2h4.59L12 14.59 4.41 7 3 8.41z\"}}]})(props);\n};\nexport function MdOutlineCallMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.59 7L12 14.59 6.41 9H11V7H3v8h2v-4.59l7 7 9-9L19.59 7z\"}}]})(props);\n};\nexport function MdOutlineCallReceived (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5.41L18.59 4 7 15.59V9H5v10h10v-2H8.41L20 5.41z\"}}]})(props);\n};\nexport function MdOutlineCallSplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4l2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4h-6zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3L10 4z\"}}]})(props);\n};\nexport function MdOutlineCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57a.84.84 0 00-.31-.05c-.26 0-.51.1-.71.29l-2.2 2.2a15.149 15.149 0 01-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineCancelPresentation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM9.41 15.95L12 13.36l2.59 2.59L16 14.54l-2.59-2.59L16 9.36l-1.41-1.41L12 10.54 9.41 7.95 8 9.36l2.59 2.59L8 14.54z\"}}]})(props);\n};\nexport function MdOutlineCellWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 22h16V5.97L6 22zm14-2h-2v-7.22l2-2V20zM5.22 7.22L3.93 5.93c3.9-3.91 10.24-3.91 14.15 0l-1.29 1.29c-3.19-3.19-8.38-3.19-11.57 0zm7.71 3.85L11 13l-1.93-1.93a2.74 2.74 0 013.86 0zm1.29-1.28c-1.78-1.77-4.66-1.77-6.43 0L6.5 8.5a6.374 6.374 0 019 0l-1.28 1.29z\"}}]})(props);\n};\nexport function MdOutlineChatBubbleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z\"}}]})(props);\n};\nexport function MdOutlineChatBubble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineChat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16v12H5.17L4 17.17V4m0-2c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H4zm2 10h8v2H6v-2zm0-3h12v2H6V9zm0-3h12v2H6V6z\"}}]})(props);\n};\nexport function MdOutlineClearAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z\"}}]})(props);\n};\nexport function MdOutlineComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM20 4v13.17L18.83 16H4V4h16zM6 12h12v2H6zm0-3h12v2H6zm0-3h12v2H6z\"}}]})(props);\n};\nexport function MdOutlineContactMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zm0 16H2V5h20v14zM21 6h-7v5h7V6zm-1 2l-2.5 1.75L15 8V7l2.5 1.75L20 7v1zM9 12c1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3 1.35 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm6 8.59c0-2.5-3.97-3.58-6-3.58s-6 1.08-6 3.58V18h12v-1.41zM5.48 16c.74-.5 2.22-1 3.52-1s2.77.49 3.52 1H5.48z\"}}]})(props);\n};\nexport function MdOutlineContactPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zm0 16H2V5h20v14zm-2.99-1.01L21 16l-1.51-2h-1.64c-.22-.63-.35-1.3-.35-2s.13-1.37.35-2h1.64L21 8l-1.99-1.99A7.474 7.474 0 0016.28 10c-.18.64-.28 1.31-.28 2s.1 1.36.28 2a7.512 7.512 0 002.73 3.99zM9 12c1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3 1.35 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm6 8.59c0-2.5-3.97-3.58-6-3.58s-6 1.08-6 3.58V18h12v-1.41zM5.48 16c.74-.5 2.22-1 3.52-1s2.77.49 3.52 1H5.48z\"}}]})(props);\n};\nexport function MdOutlineContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12zM4 0h16v2H4zm0 22h16v2H4zm8-10a2.5 2.5 0 000-5 2.5 2.5 0 000 5zm0-3.5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5 7.49C17 13.9 13.69 13 12 13s-5 .9-5 2.99V17h10v-1.01zm-8.19-.49c.61-.52 2.03-1 3.19-1 1.17 0 2.59.48 3.2 1H8.81z\"}}]})(props);\n};\nexport function MdOutlineDesktopAccessDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.41 1.69L0 3.1l1 .99V16c0 1.1.89 2 1.99 2H10v2H8v2h8v-2h-2v-2h.9l6 6 1.41-1.41-20.9-20.9zM2.99 16V6.09L12.9 16H2.99zM4.55 2l2 2H21v12h-2.45l2 2h.44c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H4.55z\"}}]})(props);\n};\nexport function MdOutlineDialerSip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3h1v5h-1zm-1 2h-2V4h2V3h-3v3h2v1h-2v1h3zm3-2v5h1V6h2V3h-3zm2 2h-1V4h1v1zm0 10.5c-1.25 0-2.45-.2-3.57-.57a.984.984 0 00-1.01.24l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21c.27-.26.35-.65.24-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 5h1.5c.07.88.22 1.75.46 2.59L5.79 8.8c-.41-1.21-.67-2.48-.76-3.8zM19 18.97c-1.32-.09-2.59-.35-3.8-.75l1.2-1.2c.85.24 1.71.39 2.59.45v1.5z\"}}]})(props);\n};\nexport function MdOutlineDialpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineDocumentScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3H4v3H2V1h5v2zm15 3V1h-5v2h3v3h2zM7 21H4v-3H2v5h5v-2zm13-3v3h-3v2h5v-5h-2zM17 6H7v12h10V6zm2 12c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v12zM15 8H9v2h6V8zm0 3H9v2h6v-2zm0 3H9v2h6v-2z\"}}]})(props);\n};\nexport function MdOutlineDomainDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.41 1.69L0 3.1l2 2V21h15.9l3 3 1.41-1.41-20.9-20.9zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm-2-4V9h2v2H4zm6 8H8v-2h2v2zm-2-4v-2h2v2H8zm4 4v-2h1.9l2 2H12zM8 5h2v2h-.45L12 9.45V9h8v8.45l2 2V7H12V3H5.55L8 5.45zm8 6h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineDomainVerification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.6 10.88l-1.42-1.42-4.24 4.25-2.12-2.13L7.4 13l3.54 3.54z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5a2 2 0 00-2 2v12a2 2 0 002 2h14c1.1 0 2-.9 2-2V6a2 2 0 00-2-2zm0 14H5V8h14v10z\"}}]})(props);\n};\nexport function MdOutlineDuo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2h-8C6.38 2 2 6.66 2 12.28 2 17.5 6.49 22 11.72 22 17.39 22 22 17.62 22 12V4c0-1.1-.9-2-2-2zm-3 13l-3-2v2H7V9h7v2l3-2v6z\"}}]})(props);\n};\nexport function MdOutlineEmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z\"}}]})(props);\n};\nexport function MdOutlineForum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4v7H5.17L4 12.17V4h11m1-2H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm5 4h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineForwardToInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9v-2H4V8l8 5 8-5v5h2V6c0-1.1-.9-2-2-2zm-8 7L4 6h16l-8 5zm7 4l4 4-4 4v-3h-4v-2h4v-3z\"}}]})(props);\n};\nexport function MdOutlineHourglassBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 22l-.01-6L14 12l3.99-4.01L18 2H6v6l4 4-4 3.99V22h12zM8 7.5V4h8v3.5l-4 4-4-4z\"}}]})(props);\n};\nexport function MdOutlineHourglassTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2l.01 6L10 12l-3.99 4.01L6 22h12v-6l-4-4 4-3.99V2H6zm10 14.5V20H8v-3.5l4-4 4 4z\"}}]})(props);\n};\nexport function MdOutlineImportContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5c-1.11-.35-2.33-.5-3.5-.5-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1zm0 13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z\"}}]})(props);\n};\nexport function MdOutlineImportExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z\"}}]})(props);\n};\nexport function MdOutlineInvertColorsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22l4.2 4.2a7.73 7.73 0 00-1.6 4.7C4 17.48 7.58 21 12 21c1.75 0 3.36-.56 4.67-1.5l3.1 3.1 1.42-1.41zM12 19c-3.31 0-6-2.63-6-5.87 0-1.19.36-2.32 1.02-3.28L12 14.83V19zM8.38 5.56L12 2l5.65 5.56C19.1 8.99 20 10.96 20 13.13c0 1.18-.27 2.29-.74 3.3L12 9.17V4.81L9.8 6.97 8.38 5.56z\"}}]})(props);\n};\nexport function MdOutlineListAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h6v2h-6zm0 4h6v2h-6zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7zM20.1 3H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9zM19 19H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineLiveHelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5a2 2 0 00-2 2v14a2 2 0 002 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 16h-4.83l-.59.59L12 20.17l-1.59-1.59-.58-.58H5V4h14v14zm-8-3h2v2h-2zm1-8c1.1 0 2 .9 2 2 0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4S8 6.79 8 9h2c0-1.1.9-2 2-2z\"}}]})(props);\n};\nexport function MdOutlineLocationOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c2.76 0 5 2.24 5 5 0 1.06-.39 2.32-1 3.62l1.49 1.49C18.37 12.36 19 10.57 19 9c0-3.87-3.13-7-7-7-1.84 0-3.5.71-4.75 1.86l1.43 1.43C9.56 4.5 10.72 4 12 4zm0 2.5c-.59 0-1.13.21-1.56.56l3.5 3.5c.35-.43.56-.97.56-1.56A2.5 2.5 0 0012 6.5zM3.41 2.86L2 4.27l3.18 3.18C5.07 7.95 5 8.47 5 9c0 5.25 7 13 7 13s1.67-1.85 3.38-4.35L18.73 21l1.41-1.41L3.41 2.86zM12 18.88c-2.01-2.58-4.8-6.74-4.98-9.59l6.92 6.92c-.65.98-1.33 1.89-1.94 2.67z\"}}]})(props);\n};\nexport function MdOutlineLocationOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"9\",\"r\":\"2.5\"}}]})(props);\n};\nexport function MdOutlineMailOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z\"}}]})(props);\n};\nexport function MdOutlineMarkChatRead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18H6l-4 4V4c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2v7h-2V4H4v12h8v2zm11-3.66l-1.41-1.41-4.24 4.24-2.12-2.12-1.41 1.41L17.34 20 23 14.34z\"}}]})(props);\n};\nexport function MdOutlineMarkChatUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6.98V16c0 1.1-.9 2-2 2H6l-4 4V4c0-1.1.9-2 2-2h10.1c-.06.32-.1.66-.1 1s.04.68.1 1H4v12h16V7.9c.74-.15 1.42-.48 2-.92zM16 3c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\"}}]})(props);\n};\nexport function MdOutlineMarkEmailRead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h8v-2H4V8l8 5 8-5v5h2V6c0-1.1-.9-2-2-2zm-8 7L4 6h16l-8 5zm5.34 11l-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L23 16.34 17.34 22z\"}}]})(props);\n};\nexport function MdOutlineMarkEmailUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8.98V18c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2l.01-12c0-1.1.89-2 1.99-2h10.1c-.06.32-.1.66-.1 1s.04.68.1 1H4l8 5 3.67-2.29c.47.43 1.02.76 1.63.98L12 13 4 8v10h16V9.9c.74-.15 1.42-.48 2-.92zM16 5c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\"}}]})(props);\n};\nexport function MdOutlineMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16v12H5.17L4 17.17V4m0-2c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H4zm2 10h12v2H6v-2zm0-3h12v2H6V9zm0-3h12v2H6V6z\"}}]})(props);\n};\nexport function MdOutlineMobileScreenShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-1.99.85-1.99 1.95v18C5.01 22.05 5.9 23 7 23h10c1.1 0 2-.95 2-2.05v-18C19 1.85 18.1 1 17 1zm0 18H7V5h10v14zm-4.2-5.76v1.75L16 12l-3.2-2.98v1.7c-3.11.43-4.35 2.56-4.8 4.7 1.11-1.5 2.58-2.18 4.8-2.18z\"}}]})(props);\n};\nexport function MdOutlineMoreTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8v6l4.7 2.9.8-1.2-4-2.4V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.92 12A6.957 6.957 0 0111 20c-3.9 0-7-3.1-7-7s3.1-7 7-7c.7 0 1.37.1 2 .29V4.23c-.64-.15-1.31-.23-2-.23-5 0-9 4-9 9s4 9 9 9a8.963 8.963 0 008.94-10h-2.02z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5V2h-2v3h-3v2h3v3h2V7h3V5z\"}}]})(props);\n};\nexport function MdOutlineNat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.82 13H11v-2H6.82C6.4 9.84 5.3 9 4 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c1.3 0 2.4-.84 2.82-2zM4 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12l-4-3v2h-4.05c-.5-5.05-4.76-9-9.95-9v2c4.42 0 8 3.58 8 8s-3.58 8-8 8v2c5.19 0 9.45-3.95 9.95-9H19v2l4-3z\"}}]})(props);\n};\nexport function MdOutlineNoSim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.26 21.21L3.79 3.74 2.38 5.15l2.74 2.74-.12.12V19c0 1.1.9 2 2 2h10c.35 0 .68-.1.97-.26l1.88 1.88 1.41-1.41zM7 19V9.77L16.23 19H7zm3.84-14H17v9.11l2 2V5c0-1.1-.9-2-2-2h-6.99L7.95 5.06l1.41 1.41L10.84 5z\"}}]})(props);\n};\nexport function MdOutlinePausePresentation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .85-2 1.95v14c0 1.1.9 2.05 2 2.05h18c1.1 0 2-.95 2-2.05v-14C23 3.85 22.1 3 21 3zm0 16H3V5h18v14zM9 8h2v8H9zm4 0h2v8h-2z\"}}]})(props);\n};\nexport function MdOutlinePersonAddDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 6c1.1 0 2 .9 2 2a2 2 0 01-1.67 1.97l-2.31-2.31C13.19 6.72 14.01 6 15 6m0-2c-2.21 0-4 1.79-4 4 0 .18.03.35.05.52l3.43 3.43c.17.02.34.05.52.05 2.21 0 4-1.79 4-4s-1.79-4-4-4zm1.69 10.16L22.53 20H23v-2c0-2.14-3.56-3.5-6.31-3.84zm-3.68 1.97L14.88 18H9c.08-.24.88-1.01 2.91-1.57l1.1-.3M1.41 1.71L0 3.12l4 4V10H1v2h3v3h2v-3h2.88l2.51 2.51C9.19 15.11 7 16.3 7 18v2h9.88l4 4 1.41-1.41L1.41 1.71zM6 10v-.88l.88.88H6z\"}}]})(props);\n};\nexport function MdOutlinePersonSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM4 18c.22-.72 3.31-2 6-2 0-.7.13-1.37.35-1.99C7.62 13.91 2 15.27 2 18v2h9.54c-.52-.58-.93-1.25-1.19-2H4zM19.43 18.02c.36-.59.57-1.28.57-2.02 0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4c.74 0 1.43-.22 2.02-.57L20.59 22 22 20.59c-1.5-1.5-.79-.8-2.57-2.57zM16 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlinePhoneDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.34 14.54l-1.43-1.43c.56-.73 1.05-1.5 1.47-2.32l-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1H20c.55 0 1 .45 1 1 0 3.98-1.37 7.64-3.66 10.54zm-2.82 2.81A16.884 16.884 0 014 21c-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.1-.04.21-.05.31-.05.26 0 .51.1.71.29l2.2 2.2c.81-.42 1.58-.9 2.3-1.46L1.39 4.22l1.42-1.41L21.19 21.2l-1.41 1.41-5.26-5.26zm-6.92-.33c-.85.24-1.72.39-2.6.45v1.49c1.32-.09 2.59-.35 3.8-.75l-1.2-1.19zM17.46 5c-.06.89-.21 1.76-.45 2.59l1.2 1.2c.41-1.2.67-2.47.76-3.79h-1.51z\"}}]})(props);\n};\nexport function MdOutlinePhoneEnabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.46 5c-.06.89-.21 1.76-.45 2.59l1.2 1.2c.41-1.2.67-2.47.76-3.79h-1.51zM7.6 17.02c-.85.24-1.72.39-2.6.45v1.49c1.32-.09 2.59-.35 3.8-.75l-1.2-1.19zM16.5 3H20c.55 0 1 .45 1 1 0 9.39-7.61 17-17 17-.55 0-1-.45-1-1v-3.49c0-.55.45-1 1-1 1.24 0 2.45-.2 3.57-.57.1-.04.21-.05.31-.05.26 0 .51.1.71.29l2.2 2.2c2.83-1.45 5.15-3.76 6.59-6.59l-2.2-2.2c-.28-.28-.36-.67-.25-1.02.37-1.12.57-2.32.57-3.57 0-.55.45-1 1-1z\"}}]})(props);\n};\nexport function MdOutlinePhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57a.84.84 0 00-.31-.05c-.26 0-.51.1-.71.29l-2.2 2.2a15.149 15.149 0 01-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlinePhonelinkErase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8.2l-1-1-4 4-4-4-1 1 4 4-4 4 1 1 4-4 4 4 1-1-4-4 4-4zM19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlinePhonelinkLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-8.2 10V9.5C10.8 8.1 9.4 7 8 7S5.2 8.1 5.2 9.5V11c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3zm-1.3 0h-3V9.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3V11z\"}}]})(props);\n};\nexport function MdOutlinePhonelinkRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.1 7.7l-1 1c1.8 1.8 1.8 4.6 0 6.5l1 1c2.5-2.3 2.5-6.1 0-8.5zM18 9.8l-1 1c.5.7.5 1.6 0 2.3l1 1c1.2-1.2 1.2-3 0-4.3zM14 1H4c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 19H4V4h10v16z\"}}]})(props);\n};\nexport function MdOutlinePhonelinkSetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2zm2.5 12.5c.29-.12.55-.29.8-.48l-.02.03 1.01.39c.23.09.49 0 .61-.22l.84-1.46c.12-.21.07-.49-.12-.64l-.85-.68-.02.03c.02-.16.05-.32.05-.48s-.03-.32-.05-.48l.02.03.85-.68c.19-.15.24-.43.12-.64l-.84-1.46a.499.499 0 00-.61-.22l-1.01.39.02.03c-.25-.17-.51-.34-.8-.46l-.17-1.08A.488.488 0 008.84 7H7.16c-.25 0-.46.18-.49.42L6.5 8.5c-.29.12-.55.29-.8.48l.02-.03-1.02-.39c-.23-.09-.49 0-.61.22l-.84 1.46c-.12.21-.07.49.12.64l.85.68.02-.03c-.02.15-.05.31-.05.47s.03.32.05.48l-.02-.03-.85.68c-.19.15-.24.43-.12.64l.84 1.46c.12.21.38.31.61.22l1.01-.39-.01-.04c.25.19.51.36.8.48l.17 1.07c.03.25.24.43.49.43h1.68c.25 0 .46-.18.49-.42l.17-1.08zM6 12c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2z\"}}]})(props);\n};\nexport function MdOutlinePortableWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.42 2.36L2.01 3.78 4.1 5.87C2.79 7.57 2 9.69 2 12c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 17.53 4 14.96 4 12c0-1.76.57-3.38 1.53-4.69l1.43 1.44C6.36 9.68 6 10.8 6 12c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-.65.17-1.25.44-1.79l1.58 1.58L10 12c0 1.1.9 2 2 2l.21-.02 7.52 7.52 1.41-1.41L3.42 2.36zm14.29 11.46c.18-.57.29-1.19.29-1.82 0-3.31-2.69-6-6-6-.63 0-1.25.11-1.82.29l1.72 1.72c.03 0 .06-.01.1-.01 2.21 0 4 1.79 4 4 0 .04-.01.07-.01.11l1.72 1.71zM12 4c4.42 0 8 3.58 8 8 0 1.2-.29 2.32-.77 3.35l1.49 1.49A9.82 9.82 0 0022 12c0-5.52-4.48-10-10-10-1.76 0-3.4.48-4.84 1.28l1.48 1.48C9.66 4.28 10.8 4 12 4z\"}}]})(props);\n};\nexport function MdOutlinePresentToAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h18c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 16.02H3V4.98h18v14.04zM10 12H8l4-4 4 4h-2v4h-4v-4z\"}}]})(props);\n};\nexport function MdOutlinePrintDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.41 1.6L0 3.01 5 8c-1.66 0-3 1.34-3 3v6h4v4h12l2.95 2.96 1.41-1.41L1.41 1.6zM6 15H4v-4c0-.55.45-1 1-1h2l3 3H6v2zm2 4v-4h4l4 4H8zM8 5h8v3h-5.34l2 2H19c.55 0 1 .45 1 1v4l-2 .01V13h-2.34l4 4H22v-6c0-1.66-1.34-3-3-3h-1V3H6v.36l2 2V5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"11.51\",\"r\":\"1\"}}]})(props);\n};\nexport function MdOutlineQrCode2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21h-2v-2h2v2zm-2-7h-2v5h2v-5zm8-2h-2v4h2v-4zm-2-2h-2v2h2v-2zM7 12H5v2h2v-2zm-2-2H3v2h2v-2zm7-5h2V3h-2v2zm-7.5-.5v3h3v-3h-3zM9 9H3V3h6v6zm-4.5 7.5v3h3v-3h-3zM9 21H3v-6h6v6zm7.5-16.5v3h3v-3h-3zM21 9h-6V3h6v6zm-2 10v-3h-4v2h2v3h4v-2h-2zm-2-7h-4v2h4v-2zm-4-2H7v2h2v2h2v-2h2v-2zm1-1V7h-2V5h-2v4h4zM6.75 5.25h-1.5v1.5h1.5v-1.5zm0 12h-1.5v1.5h1.5v-1.5zm12-12h-1.5v1.5h1.5v-1.5z\"}}]})(props);\n};\nexport function MdOutlineQrCodeScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 6.5v3h-3v-3h3M11 5H5v6h6V5zm-1.5 9.5v3h-3v-3h3M11 13H5v6h6v-6zm6.5-6.5v3h-3v-3h3M19 5h-6v6h6V5zm-6 8h1.5v1.5H13V13zm1.5 1.5H16V16h-1.5v-1.5zM16 13h1.5v1.5H16V13zm-3 3h1.5v1.5H13V16zm1.5 1.5H16V19h-1.5v-1.5zM16 16h1.5v1.5H16V16zm1.5-1.5H19V16h-1.5v-1.5zm0 3H19V19h-1.5v-1.5zM22 7h-2V4h-3V2h5v5zm0 15v-5h-2v3h-3v2h5zM2 22h5v-2H4v-3H2v5zM2 2v5h2V4h3V2H2z\"}}]})(props);\n};\nexport function MdOutlineQrCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM19 19h2v2h-2zM13 13h2v2h-2zM15 15h2v2h-2zM13 17h2v2h-2zM15 19h2v2h-2zM17 17h2v2h-2zM17 13h2v2h-2zM19 15h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineReadMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h9v2h-9zM13 15h9v2h-9zM16 11h6v2h-6zM13 12L8 7v4H2v2h6v4z\"}}]})(props);\n};\nexport function MdOutlineRingVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23.71 16.67A16.971 16.971 0 0012 12C7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73 1.6 0 3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71a.99.99 0 00-.29-.7zm-18.31.56c-.66.37-1.29.8-1.87 1.27l-1.07-1.07c.91-.75 1.9-1.39 2.95-1.9v1.7zm15.07 1.26c-.59-.48-1.21-.9-1.87-1.27v-1.7c1.04.51 2.03 1.15 2.94 1.9l-1.07 1.07zm.69-12.23l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM11 2h2v5h-2zM6.4 9.81L7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z\"}}]})(props);\n};\nexport function MdOutlineRssFeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.18\",\"cy\":\"17.82\",\"r\":\"2.18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z\"}}]})(props);\n};\nexport function MdOutlineRtt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.03 3l-1.11 7.07h2.62l.7-4.5h2.58L11.8 18.43H9.47L9.06 21h7.27l.4-2.57h-2.35l2-12.86h2.58l-.71 4.5h2.65L22 3H9.03zM8 5H4l-.31 2h4L8 5zm-.61 4h-4l-.31 2h4l.31-2zm.92 8h-6L2 19h6l.31-2zm.62-4h-6l-.31 2h6.01l.3-2z\"}}]})(props);\n};\nexport function MdOutlineScreenShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 6a2 2 0 00-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 002 2H0v2h24v-2h-4zM4 16V6h16v10.01L4 16zm9-6.87c-3.89.54-5.44 3.2-6 5.87 1.39-1.87 3.22-2.72 6-2.72v2.19l4-3.74L13 7v2.13z\"}}]})(props);\n};\nexport function MdOutlineSentimentSatisfiedAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c-1.48 0-2.75-.81-3.45-2H6.88a5.495 5.495 0 0010.24 0h-1.67c-.69 1.19-1.97 2-3.45 2zm-.01-14C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineSip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2zm0 2v12h16V6H4zm7 3h2v6h-2V9zm3 0h4c.55 0 1 .45 1 1v2c0 .55-.45 1-1 1h-2.5v2H14V9zm3.5 1.5h-2v1h2v-1zm-11 .75H9c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H5v-1.5h3.5v-.75H6c-.55 0-1-.45-1-1V10c0-.55.45-1 1-1h4v1.5H6.5v.75z\"}}]})(props);\n};\nexport function MdOutlineSpeakerPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7.07L8.43 8.5c.91-.91 2.18-1.48 3.57-1.48s2.66.57 3.57 1.48L17 7.07C15.72 5.79 13.95 5 12 5s-3.72.79-5 2.07zM12 1C8.98 1 6.24 2.23 4.25 4.21l1.41 1.41C7.28 4 9.53 3 12 3s4.72 1 6.34 2.62l1.41-1.41A10.963 10.963 0 0012 1zm2.86 9.01L9.14 10C8.51 10 8 10.51 8 11.14v9.71c0 .63.51 1.14 1.14 1.14h5.71c.63 0 1.14-.51 1.14-1.14v-9.71c.01-.63-.5-1.13-1.13-1.13zM15 20H9v-8h6v8z\"}}]})(props);\n};\nexport function MdOutlineStayCurrentLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z\"}}]})(props);\n};\nexport function MdOutlineStayCurrentPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"}}]})(props);\n};\nexport function MdOutlineStayPrimaryLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z\"}}]})(props);\n};\nexport function MdOutlineStayPrimaryPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"}}]})(props);\n};\nexport function MdOutlineStopScreenShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.79 18l2 2H24v-2h-2.21zM1.11 2.98l1.55 1.56c-.41.37-.66.89-.66 1.48V16c0 1.1.9 2 2.01 2H0v2h18.13l2.71 2.71 1.41-1.41L2.52 1.57 1.11 2.98zM4 6.02h.13l4.95 4.93C7.94 12.07 7.31 13.52 7 15c.96-1.29 2.13-2.08 3.67-2.46l3.46 3.48H4v-10zm16 0v10.19l1.3 1.3c.42-.37.7-.89.7-1.49v-10a2 2 0 00-2-2H7.8l2 2H20zm-7.07 3.13l2.79 2.78 1.28-1.2L13 7v2.13l-.07.02z\"}}]})(props);\n};\nexport function MdOutlineSwapCalls (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4l-4 4h3v7c0 1.1-.9 2-2 2s-2-.9-2-2V8c0-2.21-1.79-4-4-4S5 5.79 5 8v7H2l4 4 4-4H7V8c0-1.1.9-2 2-2s2 .9 2 2v7c0 2.21 1.79 4 4 4s4-1.79 4-4V8h3l-4-4z\"}}]})(props);\n};\nexport function MdOutlineTextsms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12zM7 9h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineUnsubscribe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.99 14.04V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h10.05c.28 1.92 2.1 3.35 4.18 2.93 1.34-.27 2.43-1.37 2.7-2.71.25-1.24-.16-2.39-.94-3.18zm-2-9.04L12 8.5 5 5h13.99zm-3.64 10H5V7l7 3.5L19 7v6.05c-.16-.02-.33-.05-.5-.05-1.39 0-2.59.82-3.15 2zm5.15 2h-4v-1h4v1z\"}}]})(props);\n};\nexport function MdOutlineVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 6C15.46 6 13 8.46 13 11.5c0 1.33.47 2.55 1.26 3.5H9.74c.79-.95 1.26-2.17 1.26-3.5C11 8.46 8.54 6 5.5 6S0 8.46 0 11.5 2.46 17 5.5 17h13c3.04 0 5.5-2.46 5.5-5.5S21.54 6 18.5 6zm-13 9C3.57 15 2 13.43 2 11.5S3.57 8 5.5 8 9 9.57 9 11.5 7.43 15 5.5 15zm13 0c-1.93 0-3.5-1.57-3.5-3.5S16.57 8 18.5 8 22 9.57 22 11.5 20.43 15 18.5 15z\"}}]})(props);\n};\nexport function MdOutlineVpnKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19h-6v-4h-2.68c-1.14 2.42-3.6 4-6.32 4-3.86 0-7-3.14-7-7s3.14-7 7-7c2.72 0 5.17 1.58 6.32 4H24v6h-2v4zm-4-2h2v-4h2v-2H11.94l-.23-.67C11.01 8.34 9.11 7 7 7c-2.76 0-5 2.24-5 5s2.24 5 5 5c2.11 0 4.01-1.34 4.71-3.33l.23-.67H18v4zM7 15c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineWifiCalling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.51c-1.24 0-2.45-.2-3.57-.57a.84.84 0 00-.31-.05c-.26 0-.51.1-.71.29l-2.2 2.2a15.149 15.149 0 01-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1zM5.03 5h1.5a13 13 0 00.46 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79zM19 18.97c-1.32-.09-2.59-.35-3.8-.75l1.19-1.19c.85.24 1.72.39 2.6.45v1.49z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4.95C21.79 4.78 19.67 3 16.5 3c-3.18 0-5.29 1.78-5.5 1.95L16.5 12 22 4.95z\"}}]})(props);\n};\nexport function MdOutlineAddBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-8-2h2v-4h4v-2h-4V7h-2v4H7v2h4z\"}}]})(props);\n};\nexport function MdOutlineAddCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineAddCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\"}}]})(props);\n};\nexport function MdOutlineAddLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h8v2H8v-2zm12.1 1H22c0-2.76-2.24-5-5-5h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1zM3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM19 12h-2v3h-3v2h3v3h2v-3h3v-2h-3v-3z\"}}]})(props);\n};\nexport function MdOutlineAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"}}]})(props);\n};\nexport function MdOutlineAmpStories (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19h10V4H7v15zM9 6h6v11H9V6zM3 6h2v11H3zM19 6h2v11h-2z\"}}]})(props);\n};\nexport function MdOutlineArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM6.24 5h11.52l.81.97H5.44l.8-.97zM5 19V8h14v11H5zm8.45-9h-2.9v3H8l4 4 4-4h-2.55z\"}}]})(props);\n};\nexport function MdOutlineAttribution (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.5c-.91 0-2.75.46-2.75 1.38v4.62h1.5V19h2.5v-4.5h1.5V9.88c0-.91-1.84-1.38-2.75-1.38zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7.07L2.4 12l4.66-7H22v14zm-11.59-2L14 13.41 17.59 17 19 15.59 15.41 12 19 8.41 17.59 7 14 10.59 10.41 7 9 8.41 12.59 12 9 15.59z\"}}]})(props);\n};\nexport function MdOutlineBallot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z\"}}]})(props);\n};\nexport function MdOutlineBiotech (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19c-1.1 0-2 .9-2 2h14c0-1.1-.9-2-2-2h-4v-2h3c1.1 0 2-.9 2-2h-8c-1.66 0-3-1.34-3-3a3 3 0 011.47-2.57c.41.59 1.06 1 1.83 1.06.7.06 1.36-.19 1.85-.62l.59 1.61.94-.34.34.94 1.88-.68-.34-.94.94-.34-2.74-7.52-.94.34-.34-.94-1.88.68.34.94-.94.35.56 1.55c-1.17-.04-2.19.75-2.48 1.86A5.01 5.01 0 005 12c0 2.76 2.24 5 5 5v2H7zm5.86-14.48l1.71 4.7-.94.34-1.71-4.7.94-.34zM10.5 7c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}}]})(props);\n};\nexport function MdOutlineBlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9A7.902 7.902 0 014 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1A7.902 7.902 0 0120 12c0 4.42-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 21h-1l1-7H7.5c-.88 0-.33-.75-.31-.78C8.48 10.94 10.42 7.54 13.01 3h1l-1 7h3.51c.4 0 .62.19.4.66C12.97 17.55 11 21 11 21z\"}}]})(props);\n};\nexport function MdOutlineCalculate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.25 7.72h5v1.5h-5zM13 15.75h5v1.5h-5zM13 13.25h5v1.5h-5zM8 18h1.5v-2h2v-1.5h-2v-2H8v2H6V16h2zM14.09 10.95l1.41-1.41 1.41 1.41 1.06-1.06-1.41-1.42 1.41-1.41L16.91 6 15.5 7.41 14.09 6l-1.06 1.06 1.41 1.41-1.41 1.42z\"}}]})(props);\n};\nexport function MdOutlineChangeCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.17-5.24l-1.1-1.1c.71-1.33.53-3.01-.59-4.13A3.482 3.482 0 0012 8.5c-.03 0-.06.01-.09.01L13 9.6l-1.06 1.06-2.83-2.83L11.94 5 13 6.06l-.96.96c1.27.01 2.53.48 3.5 1.44 1.7 1.71 1.91 4.36.63 6.3zm-1.28 1.41L12.06 19 11 17.94l.95-.95a4.97 4.97 0 01-3.48-1.46 5.006 5.006 0 01-.64-6.29l1.1 1.1c-.71 1.33-.53 3.01.59 4.13.7.7 1.63 1.04 2.56 1.01L11 14.4l1.06-1.06 2.83 2.83z\"}}]})(props);\n};\nexport function MdOutlineClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"}}]})(props);\n};\nexport function MdOutlineContentCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\"}}]})(props);\n};\nexport function MdOutlineContentCut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3h-3z\"}}]})(props);\n};\nexport function MdOutlineContentPasteOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.42zM5 19V7.83L16.17 19H5zM17 8V5h2v11.17l2 2V5c0-1.1-.9-2-2-2h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5.83l5 5H17zm-5-5c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}}]})(props);\n};\nexport function MdOutlineContentPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2h-4.18C14.4.84 13.3 0 12 0S9.6.84 9.18 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z\"}}]})(props);\n};\nexport function MdOutlineCopyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H9c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H9V4h9v12zM3 15v-2h2v2H3zm0-5.5h2v2H3v-2zM10 20h2v2h-2v-2zm-7-1.5v-2h2v2H3zM5 22c-1.1 0-2-.9-2-2h2v2zm3.5 0h-2v-2h2v2zm5 0v-2h2c0 1.1-.9 2-2 2zM5 6v2H3c0-1.1.9-2 2-2z\"}}]})(props);\n};\nexport function MdOutlineCreate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM5.92 19H5v-.92l9.06-9.06.92.92L5.92 19zM20.71 5.63l-2.34-2.34c-.2-.2-.45-.29-.71-.29s-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 000-1.41z\"}}]})(props);\n};\nexport function MdOutlineDeleteSweep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3v10zm2-8h6v8H5v-8zm5-6H6L5 5H2v2h12V5h-3z\"}}]})(props);\n};\nexport function MdOutlineDrafts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zm-2 0v.01L12 13 4 8l8-4.68L19.99 8zM4 18v-7.66l8 5.02 7.99-4.99L20 18H4z\"}}]})(props);\n};\nexport function MdOutlineDynamicFeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 8H6v7c0 1.1.9 2 2 2h9v-2H8V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3h-8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 8h-8V7h8v4zM4 12H2v7c0 1.1.9 2 2 2h9v-2H4v-7z\"}}]})(props);\n};\nexport function MdOutlineFileCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4H8c-1.1 0-1.99.9-1.99 2L6 21c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V11l-6-6zM8 21V7h6v5h5v9H8z\"}}]})(props);\n};\nexport function MdOutlineFilterList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\"}}]})(props);\n};\nexport function MdOutlineFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.36 6l.4 2H18v6h-3.36l-.4-2H7V6h5.36M14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6L14 4z\"}}]})(props);\n};\nexport function MdOutlineFontDownloadOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.83 2H20c1.1 0 2 .9 2 2v15.17l-2-2V4H6.83l-2-2zm6.09 4l-.57 1.52 1.36 1.36.23-.66h.1l.54 1.52 3.04 3.04L13.07 6h-2.15zm9.57 17.31L19.17 22H4c-1.1 0-2-.9-2-2V4.83L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM17.17 20l-5.07-5.07H9.58L8.49 18H6.41l2.39-6.37L4 6.83V20h13.17z\"}}]})(props);\n};\nexport function MdOutlineFontDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.17 15.5h5.64l1.14 3h2.09l-5.11-13h-1.86l-5.11 13h2.09l1.12-3zM12 7.98l2.07 5.52H9.93L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16z\"}}]})(props);\n};\nexport function MdOutlineForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8.83L17.17 12 14 15.17V14H6v-4h8V8.83M12 4v4H4v8h8v4l8-8-8-8z\"}}]})(props);\n};\nexport function MdOutlineGesture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z\"}}]})(props);\n};\nexport function MdOutlineHowToReg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM5 18c.2-.63 2.57-1.68 4.96-1.94l2.04-2a9.34 9.34 0 00-1-.06c-2.67 0-8 1.34-8 4v2h9l-2-2H5zm15.6-5.5l-5.13 5.17-2.07-2.08L12 17l3.47 3.5L22 13.91z\"}}]})(props);\n};\nexport function MdOutlineHowToVote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13h-.68l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2H6l-3 3v4c0 1.1.89 2 1.99 2H19a2 2 0 002-2v-4l-3-3zm1 7H5v-1h14v1zm-7.66-4.98c.39.39 1.02.39 1.41 0l6.36-6.36a.996.996 0 000-1.41L14.16 2.3a.975.975 0 00-1.4-.01L6.39 8.66a.996.996 0 000 1.41l4.95 4.95zm2.12-10.61L17 7.95l-4.95 4.95-3.54-3.54 4.95-4.95z\"}}]})(props);\n};\nexport function MdOutlineInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5v-3h3.56c.69 1.19 1.97 2 3.45 2s2.75-.81 3.45-2H19v3zm0-5h-4.99c0 1.1-.9 2-2 2s-2-.9-2-2H5V5h14v9z\"}}]})(props);\n};\nexport function MdOutlineInsights (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8c-1.45 0-2.26 1.44-1.93 2.51l-3.55 3.56c-.3-.09-.74-.09-1.04 0l-2.55-2.55C12.27 10.45 11.46 9 10 9c-1.45 0-2.27 1.44-1.93 2.52l-4.56 4.55C2.44 15.74 1 16.55 1 18c0 1.1.9 2 2 2 1.45 0 2.26-1.44 1.93-2.51l4.55-4.56c.3.09.74.09 1.04 0l2.55 2.55C12.73 16.55 13.54 18 15 18c1.45 0 2.27-1.44 1.93-2.52l3.56-3.55c1.07.33 2.51-.48 2.51-1.93 0-1.1-.9-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9l.94-2.07L18 6l-2.06-.93L15 3l-.92 2.07L12 6l2.08.93zM3.5 11L4 9l2-.5L4 8l-.5-2L3 8l-2 .5L3 9z\"}}]})(props);\n};\nexport function MdOutlineInventory2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-1 18H5V9h14v11zm1-13H4V4h16v3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12h6v2H9z\"}}]})(props);\n};\nexport function MdOutlineInventory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5h2v3h10V5h2v5h2V5c0-1.1-.9-2-2-2h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h6v-2H5V5zm7-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5L15.51 17l-3.01-3-1.5 1.5 4.51 4.5 6.99-7z\"}}]})(props);\n};\nexport function MdOutlineLinkOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.39 11L16 12.61V11zM17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.27-.77 2.37-1.87 2.84l1.4 1.4A4.986 4.986 0 0022 12c0-2.76-2.24-5-5-5zM2 4.27l3.11 3.11A4.991 4.991 0 002 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4.01 1.41-1.41L3.41 2.86 2 4.27z\"}}]})(props);\n};\nexport function MdOutlineLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z\"}}]})(props);\n};\nexport function MdOutlineLowPriority (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 5h8v2h-8V5zm0 5.5h8v2h-8v-2zm0 5.5h8v2h-8v-2zM2 11.5C2 15.08 4.92 18 8.5 18H9v2l3-3-3-3v2h-.5C6.02 16 4 13.98 4 11.5S6.02 7 8.5 7H12V5H8.5C4.92 5 2 7.92 2 11.5z\"}}]})(props);\n};\nexport function MdOutlineMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 4.99L4 6h16zm0 12H4V8l8 5 8-5v10z\"}}]})(props);\n};\nexport function MdOutlineMarkunread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z\"}}]})(props);\n};\nexport function MdOutlineMoveToInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9h-2.55V6h-2.9v3H8l4 4zm3-6H4.99C3.88 3 3 3.9 3 5v14c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5v-3h3.56c.69 1.19 1.97 2 3.45 2s2.75-.81 3.45-2H19v3zm0-5h-4.99c0 1.1-.9 2-2 2s-2-.9-2-2H5l-.01-9H19v9z\"}}]})(props);\n};\nexport function MdOutlineNextWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18.5l4-4-4-4-1 1 3 3-3 3zM20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-4V5zm10 15H4V9h16v11z\"}}]})(props);\n};\nexport function MdOutlineOutlinedFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-1-2H5v17h2v-7h5l1 2h7V6h-6zm4 8h-4l-1-2H7V6h5l1 2h5v6z\"}}]})(props);\n};\nexport function MdOutlinePolicy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm7 10c0 1.85-.51 3.65-1.38 5.21l-1.45-1.45a4.994 4.994 0 00-.64-6.29 5.003 5.003 0 00-7.07 0 5.003 5.003 0 000 7.07 5.006 5.006 0 006.29.64l1.72 1.72c-1.19 1.42-2.73 2.51-4.47 3.04-4.02-1.25-7-5.42-7-9.94V6.3l7-3.11 7 3.11V11zm-7 4c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdOutlinePushPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4v5c0 1.12.37 2.16 1 3H9c.65-.86 1-1.9 1-3V4h4m3-2H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3V4h1c.55 0 1-.45 1-1s-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16a8.002 8.002 0 017.6-5.5c1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\"}}]})(props);\n};\nexport function MdOutlineRemoveCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineRemoveCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z\"}}]})(props);\n};\nexport function MdOutlineRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13H5v-2h14v2z\"}}]})(props);\n};\nexport function MdOutlineReplyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6 1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z\"}}]})(props);\n};\nexport function MdOutlineReply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z\"}}]})(props);\n};\nexport function MdOutlineReportGmailerrorred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM19 14.9L14.9 19H9.1L5 14.9V9.1L9.1 5h5.8L19 9.1v5.8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"16\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v7h-2z\"}}]})(props);\n};\nexport function MdOutlineReportOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.1 5h5.8L19 9.1v5.8l-.22.22 1.42 1.41.8-.8V8.27L15.73 3H8.27l-.8.8 1.41 1.42z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"16\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 9.33V7h-2v.33zM2.41 1.58L1 2.99l3.64 3.64L3 8.27v7.46L8.27 21h7.46l1.64-1.64L21.01 23l1.41-1.41L2.41 1.58zM14.9 19H9.1L5 14.9V9.1l1.05-1.05 9.9 9.9L14.9 19z\"}}]})(props);\n};\nexport function MdOutlineReport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM19 14.9L14.9 19H9.1L5 14.9V9.1L9.1 5h5.8L19 9.1v5.8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"16\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v7h-2z\"}}]})(props);\n};\nexport function MdOutlineSaveAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67l2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2v9.67z\"}}]})(props);\n};\nexport function MdOutlineSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z\"}}]})(props);\n};\nexport function MdOutlineSelectAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z\"}}]})(props);\n};\nexport function MdOutlineSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.01 6.03l7.51 3.22-7.52-1 .01-2.22m7.5 8.72L4 17.97v-2.22l7.51-1M2.01 3L2 10l15 2-15 2 .01 7L23 12 2.01 3z\"}}]})(props);\n};\nexport function MdOutlineShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm6 9.09c0 4-2.55 7.7-6 8.83-3.45-1.13-6-4.82-6-8.83v-4.7l6-2.25 6 2.25v4.7z\"}}]})(props);\n};\nexport function MdOutlineSort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z\"}}]})(props);\n};\nexport function MdOutlineSquareFoot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.66 17.66l-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06L9.7 9.7l-1.06 1.06-.71-.71 1.06-1.06-1.94-1.94-1.06 1.06-.71-.71 1.06-1.06L4 4v14c0 1.1.9 2 2 2h14l-2.34-2.34zM7 17v-5.76L12.76 17H7z\"}}]})(props);\n};\nexport function MdOutlineStackedBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10h3v10H6V10zm0-5h3v4H6V5zm10 11h3v4h-3v-4zm0-3h3v2h-3v-2zm-5 0h3v7h-3v-7zm0-4h3v3h-3V9z\"}}]})(props);\n};\nexport function MdOutlineStream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.943 8.619l4.404-4.392 1.413 1.416-4.405 4.392zM8.32 9.68l.31.32 1.42-1.41-4.02-4.04h-.01l-.31-.32-1.42 1.41 4.02 4.05zM15.41 13.94L14 15.35l3.99 4.01.35.35 1.42-1.41-3.99-4.01zM8.59 13.95l-4.03 4.01-.32.33 1.41 1.41 4.03-4.02.33-.32z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}}]})(props);\n};\nexport function MdOutlineTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10V8h-4V4h-2v4h-4V4H8v4H4v2h4v4H4v2h4v4h2v-4h4v4h2v-4h4v-2h-4v-4h4zm-6 4h-4v-4h4v4z\"}}]})(props);\n};\nexport function MdOutlineTextFormat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z\"}}]})(props);\n};\nexport function MdOutlineUnarchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM6.24 5h11.52l.83 1H5.42l.82-1zM5 19V8h14v11H5zm3-5h2.55v3h2.9v-3H16l-4-4z\"}}]})(props);\n};\nexport function MdOutlineUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\"}}]})(props);\n};\nexport function MdOutlineUpcoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.6 10.81L16.19 9.4l3.56-3.55 1.41 1.41c-.11.03-3.56 3.55-3.56 3.55zM13 3h-2v5h2V3zm-6.6 7.81L7.81 9.4 4.26 5.84 2.84 7.26c.11.03 3.56 3.55 3.56 3.55zM20 14h-3.42c-.77 1.76-2.54 3-4.58 3s-3.81-1.24-4.58-3H4v5h16v-5m0-2c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-5c0-1.1.9-2 2-2h5c0 1.66 1.34 3 3 3s3-1.34 3-3h5z\"}}]})(props);\n};\nexport function MdOutlineWaves (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.99c-1.35 0-2.2.42-2.95.8-.65.33-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.38-1.57-.8-2.95-.8s-2.2.42-2.95.8c-.65.33-1.17.6-2.05.6v1.95c1.35 0 2.2-.42 2.95-.8.65-.33 1.17-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.42 2.95-.8c.65-.33 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8v-1.95c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8zm0-4.45c-1.35 0-2.2.43-2.95.8-.65.32-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.38-1.57-.8-2.95-.8s-2.2.43-2.95.8c-.65.32-1.17.6-2.05.6v1.95c1.35 0 2.2-.43 2.95-.8.65-.35 1.15-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.35 1.15-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.58.8 2.95.8v-1.95c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8zm2.95-8.08c-.75-.38-1.58-.8-2.95-.8s-2.2.42-2.95.8c-.65.32-1.18.6-2.05.6-.9 0-1.4-.25-2.05-.6-.75-.37-1.57-.8-2.95-.8s-2.2.42-2.95.8c-.65.33-1.17.6-2.05.6v1.93c1.35 0 2.2-.43 2.95-.8.65-.33 1.17-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.32 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8V5.04c-.9 0-1.4-.25-2.05-.58zM17 8.09c-1.35 0-2.2.43-2.95.8-.65.35-1.15.6-2.05.6s-1.4-.25-2.05-.6c-.75-.38-1.57-.8-2.95-.8s-2.2.43-2.95.8c-.65.35-1.15.6-2.05.6v1.95c1.35 0 2.2-.43 2.95-.8.65-.32 1.18-.6 2.05-.6s1.4.25 2.05.6c.75.38 1.57.8 2.95.8s2.2-.43 2.95-.8c.65-.32 1.18-.6 2.05-.6.9 0 1.4.25 2.05.6.75.38 1.58.8 2.95.8V9.49c-.9 0-1.4-.25-2.05-.6-.75-.38-1.6-.8-2.95-.8z\"}}]})(props);\n};\nexport function MdOutlineWeekend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9V7c0-1.65-1.35-3-3-3H6C4.35 4 3 5.35 3 7v2c-1.65 0-3 1.35-3 3v5c0 1.65 1.35 3 3 3h18c1.65 0 3-1.35 3-3v-5c0-1.65-1.35-3-3-3zM5 7c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v2.78c-.61.55-1 1.34-1 2.22v2H6v-2c0-.88-.39-1.67-1-2.22V7zm17 10c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1v-5c0-.55.45-1 1-1s1 .45 1 1v4h16v-4c0-.55.45-1 1-1s1 .45 1 1v5z\"}}]})(props);\n};\nexport function MdOutlineWhereToVote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1C7.59 1 4 4.59 4 9c0 5.57 6.96 13.34 7.26 13.67l.74.82.74-.82C13.04 22.34 20 14.57 20 9c0-4.41-3.59-8-8-8zm0 19.47C9.82 17.86 6 12.54 6 9c0-3.31 2.69-6 6-6s6 2.69 6 6c0 3.83-4.25 9.36-6 11.47zm-1.53-9.3L8.71 9.4l-1.42 1.42L10.47 14l6.01-6.01-1.41-1.42z\"}}]})(props);\n};\nexport function MdOutline1XMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h4v10H6V9H4V7zm11.83 4.72L18.66 7h-2.33l-1.66 2.77L13 7h-2.33l2.83 4.72L10.33 17h2.33l2-3.34 2 3.34H19l-3.17-5.28z\"}}]})(props);\n};\nexport function MdOutline30Fps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 5v3h6v2.5H3v3h5V16H2v3h6c1.66 0 3-1.34 3-3v-1.9A2.1 2.1 0 008.9 12 2.1 2.1 0 0011 9.9V8c0-1.66-1.34-3-3-3H2zm17 3v8h-4V8h4m0-3h-4c-1.66 0-3 1.34-3 3v8c0 1.66 1.34 3 3 3h4c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdOutline3GMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7v2h5v2H4v2h4v2H3v2h5c1.1 0 2-.9 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.1-.9-2-2-2H3zm18 4v4c0 1.1-.9 2-2 2h-5c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h5c1.1 0 2 .9 2 2h-7v6h5v-2h-2.5v-2H21z\"}}]})(props);\n};\nexport function MdOutline4GMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7H7v5H5V7H3v7h4v3h2v-3h2v-2H9V7zm8 4v2h2v2h-5V9h7c0-1.1-.9-2-2-2h-5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4z\"}}]})(props);\n};\nexport function MdOutline4GPlusMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11v2h2v2h-4V9h6c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h4c1.1 0 2-.9 2-2v-4h-4zm11 0h-2V9h-2v2h-2v2h2v2h2v-2h2v-2zM7 7H5v5H3V7H1v7h4v3h2v-3h1v-2H7V7z\"}}]})(props);\n};\nexport function MdOutline60Fps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8v8h-4V8h4m0-3h-4c-1.66 0-3 1.34-3 3v8c0 1.66 1.34 3 3 3h4c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3zm-9 3V5H5C3.34 5 2 6.34 2 8v8c0 1.66 1.34 3 3 3h3c1.66 0 3-1.34 3-3v-3c0-1.66-1.34-3-3-3H5V8h5zm-2 5v3H5v-3h3z\"}}]})(props);\n};\nexport function MdOutlineAccessAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineAccessAlarms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5.7l-4.6-3.9-1.3 1.5 4.6 3.9L22 5.7zM7.9 3.4L6.6 1.9 2 5.7l1.3 1.5 4.6-3.8zM12.5 8H11v6l4.7 2.9.8-1.2-4-2.4V8zM12 4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineAccessTimeFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm3.3 14.71L11 12.41V7h2v4.59l3.71 3.71-1.42 1.41z\"}}]})(props);\n};\nexport function MdOutlineAccessTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z\"}}]})(props);\n};\nexport function MdOutlineAdUnits (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7 4V3h10v1H7zm0 14V6h10v12H7zm0 3v-1h10v1H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7H8v2h8V7z\"}}]})(props);\n};\nexport function MdOutlineAddAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 000-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z\"}}]})(props);\n};\nexport function MdOutlineAddToHomeScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 1.01L8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM10 15h2V8H5v2h3.59L3 15.59 4.41 17 10 11.41V15z\"}}]})(props);\n};\nexport function MdOutlineAir (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 17c0 1.65-1.35 3-3 3s-3-1.35-3-3h2c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1H2v-2h9.5c1.65 0 3 1.35 3 3zM19 6.5C19 4.57 17.43 3 15.5 3S12 4.57 12 6.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S16.33 8 15.5 8H2v2h13.5c1.93 0 3.5-1.57 3.5-3.5zm-.5 4.5H2v2h16.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5v2c1.93 0 3.5-1.57 3.5-3.5S20.43 11 18.5 11z\"}}]})(props);\n};\nexport function MdOutlineAirplaneTicket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.19 4H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.81-2-1.81-2zM20 18H4v-2.54c1.19-.69 2-1.99 2-3.46 0-1.48-.8-2.77-1.99-3.46L4 6h16v12zM8.87 15.66l-1.66-2.88.93-.25 1.26.99 2.39-.64-2.4-4.16 1.4-.38 4.01 3.74 2.44-.65a.967.967 0 011.18.68.988.988 0 01-.69 1.19l-8.86 2.36z\"}}]})(props);\n};\nexport function MdOutlineAirplanemodeActive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-2l-8.5-5V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V9L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-5.5L22 16z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdOutlineAirplanemodeInactive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 7.67V3.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V9l8.5 5v2l-4.49-1.32-7.01-7.01zm9.28 14.94l1.41-1.41-7.69-7.7-3.94-3.94-6.75-6.75-1.42 1.41 6.38 6.38L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-2.67l6.28 6.28z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdOutlineAod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zm0-14H7V3h10v1zm-9 6h8v1.5H8V10zm1 3h6v1.5H9V13z\"}}]})(props);\n};\nexport function MdOutlineBatteryAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z\"}}]})(props);\n};\nexport function MdOutlineBatteryChargingFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM11 20v-5.5H9L13 7v5.5h2L11 20z\"}}]})(props);\n};\nexport function MdOutlineBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z\"}}]})(props);\n};\nexport function MdOutlineBatterySaver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h-2V2h-4v2H8c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10h-2v2h-2v-2H9v-2h2v-2h2v2h2v2z\"}}]})(props);\n};\nexport function MdOutlineBatteryStd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z\"}}]})(props);\n};\nexport function MdOutlineBatteryUnknown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm1.3-5.31s-.38.42-.67.71c-.48.48-.83 1.15-.83 1.6h-1.6c0-.83.46-1.52.93-2l.93-.94A1.498 1.498 0 0012 9.5c-.83 0-1.5.67-1.5 1.5H9c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .66-.27 1.26-.7 1.69z\"}}]})(props);\n};\nexport function MdOutlineBloodtype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h6v2H9zM13 9h-2v2H9v2h2v2h2v-2h2v-2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-5.33 4.55-8 8.48-8 11.8 0 4.98 3.8 8.2 8 8.2s8-3.22 8-8.2c0-3.32-2.67-7.25-8-11.8zm0 18c-3.35 0-6-2.57-6-6.2 0-2.34 1.95-5.44 6-9.14 4.05 3.7 6 6.79 6 9.14 0 3.63-2.65 6.2-6 6.2z\"}}]})(props);\n};\nexport function MdOutlineBluetoothConnected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12l-2-2-2 2 2 2 2-2zm10.71-4.29L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88zM19 10l-2 2 2 2 2-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineBluetoothDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5.83l1.88 1.88-1.6 1.6 1.41 1.41 3.02-3.02L12 2h-1v5.03l2 2v-3.2zM5.41 4L4 5.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l4.29-4.29 2.3 2.29L20 18.59 5.41 4zM13 18.17v-3.76l1.88 1.88L13 18.17z\"}}]})(props);\n};\nexport function MdOutlineBluetoothDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17H4v-5h11v-2H4.81l1.04-3H15V5H5.5c-.66 0-1.21.42-1.42 1.01L2 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8h-2v5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3.85L19.15 1h-.5v3.79l-2.3-2.29-.7.7L18.44 6l-2.79 2.79.7.71 2.3-2.3V11h.5L22 8.14 19.85 6 22 3.85zm-2.35-.94l.94.94-.94.94V2.91zm.94 5.23l-.94.94V7.2l.94.94z\"}}]})(props);\n};\nexport function MdOutlineBluetoothSearching (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33s-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2a9.936 9.936 0 001.54-5.31c-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdOutlineBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.71 7.71L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdOutlineBrightnessAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L13 7h-2zm-.15 5.65L12 9l1.15 3.65h-2.3zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48z\"}}]})(props);\n};\nexport function MdOutlineBrightnessHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48zM12 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2.5\"}}]})(props);\n};\nexport function MdOutlineBrightnessLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48zM12 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"}}]})(props);\n};\nexport function MdOutlineBrightnessMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48zM12 6v12c3.31 0 6-2.69 6-6s-2.69-6-6-6z\"}}]})(props);\n};\nexport function MdOutlineCable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z\"}}]})(props);\n};\nexport function MdOutlineCameraswitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7h-1l-1-1h-4L9 7H8c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H8V9h1.83l1-1h2.34l1 1H16v6z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.57.52L13.05 5l1.41-1.41-1.54-1.54C17.7 2.46 21.53 6.24 22 11h2C23.36 3.3 15.79-1.67 8.57.52zM9.54 20.41l1.54 1.54C6.3 21.54 2.47 17.76 2 13H0c.64 7.7 8.21 12.67 15.43 10.48L10.95 19l-1.41 1.41z\"}}]})(props);\n};\nexport function MdOutlineCreditScore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h5v-2H4v-6h18V6c0-1.11-.89-2-2-2zm0 4H4V6h16v2zm-5.07 11.17l-2.83-2.83-1.41 1.41L14.93 22 22 14.93l-1.41-1.41-5.66 5.65z\"}}]})(props);\n};\nexport function MdOutlineDarkMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.37 5.51A7.35 7.35 0 009.1 7.5c0 4.08 3.32 7.4 7.4 7.4.68 0 1.35-.09 1.99-.27A7.014 7.014 0 0112 19c-3.86 0-7-3.14-7-7 0-2.93 1.81-5.45 4.37-6.49zM12 3a9 9 0 109 9c0-.46-.04-.92-.1-1.36a5.389 5.389 0 01-4.4 2.26 5.403 5.403 0 01-3.14-9.8c-.44-.06-.9-.1-1.36-.1z\"}}]})(props);\n};\nexport function MdOutlineDataSaverOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0112 19z\"}}]})(props);\n};\nexport function MdOutlineDataSaverOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8v3H8v2h3v3h2v-3h3v-2h-3V8h-2zm2-5.95v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0112 19z\"}}]})(props);\n};\nexport function MdOutlineDataUsage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53A6.95 6.95 0 0112 19z\"}}]})(props);\n};\nexport function MdOutlineDeveloperMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17L6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z\"}}]})(props);\n};\nexport function MdOutlineDeviceThermostat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-2V5c0-.55.45-1 1-1s1 .45 1 1v1h-1v1h1v2h-1v1h1v1h-2z\"}}]})(props);\n};\nexport function MdOutlineDevices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z\"}}]})(props);\n};\nexport function MdOutlineDoNotDisturbOnTotalSilence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-3.3 0-6 2.7-6 6s2.7 6 6 6 6-2.7 6-6-2.6-6-6-6zm3 7H9v-2h6v2z\"}}]})(props);\n};\nexport function MdOutlineDvr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zm-2-9H8v2h11V8zm0 4H8v2h11v-2zM7 8H5v2h2V8zm0 4H5v2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineEMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9V7H8v10h8v-2h-6v-2h6v-2h-6V9h6z\"}}]})(props);\n};\nexport function MdOutlineEdgesensorHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7h2v7H3V7zm-3 3h2v7H0v-7zm22-3h2v7h-2V7zm-3 3h2v7h-2v-7zm-3-7.99L8 2c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-1.99-2-1.99zM16 20H8v-1h8v1zm0-3H8V7h8v10zM8 5V4h8v1H8z\"}}]})(props);\n};\nexport function MdOutlineEdgesensorLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 7h2v7H2V7zm18 3h2v7h-2v-7zm-4-7.99L8 2c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-1.99-2-1.99zM16 20H8v-1h8v1zm0-3H8V7h8v10zM8 5V4h8v1H8z\"}}]})(props);\n};\nexport function MdOutlineFlashlightOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.81 2.81L1.39 4.22 8 10.83V22h8v-3.17l3.78 3.78 1.41-1.41L2.81 2.81zM14 20h-4v-7.17l4 4V20zM16 4v1H7.83l2 2H16v.39l-2 3.01v.77l2 2V11l2-3V2H6v1.17l.83.83z\"}}]})(props);\n};\nexport function MdOutlineFlashlightOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6v6l2 3v11h8V11l2-3V2zm-2 2v1H8V4h8zm-2 6.4V20h-4v-9.61l-2-3V7h8v.39l-2 3.01z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineFlourescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15h14V9H5v6zm2-4h10v2H7v-2zM11 2h2v3h-2zM17.286 6.399l1.79-1.803 1.42 1.41-1.79 1.802zM11 19h2v3h-2zM17.29 17.71l1.79 1.8 1.42-1.42-1.8-1.79zM3.495 6.01l1.407-1.408L6.69 6.391 5.284 7.798zM3.492 18.076l1.803-1.79 1.409 1.42-1.803 1.79z\"}}]})(props);\n};\nexport function MdOutlineFmdBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8C20 5.22 16.2 2 12 2zm0 17.33c-4.05-3.7-6-6.79-6-9.14C6 6.57 8.65 4 12 4s6 2.57 6 6.2c0 2.34-1.95 5.44-6 9.13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v5h-2zM11 13h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineFmdGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6-1.8C18 6.57 15.35 4 12 4s-6 2.57-6 6.2c0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.8 6-9.14zM12 2c4.2 0 8 3.22 8 8.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 5.22 7.8 2 12 2z\"}}]})(props);\n};\nexport function MdOutlineGMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11v2h2v2H9V9h7c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h5c1.1 0 2-.9 2-2v-4h-4z\"}}]})(props);\n};\nexport function MdOutlineGppBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm6 9.09c0 4-2.55 7.7-6 8.83-3.45-1.13-6-4.82-6-8.83v-4.7l6-2.25 6 2.25v4.7zM9.91 8.5L8.5 9.91 10.59 12 8.5 14.09l1.41 1.41L12 13.42l2.09 2.08 1.41-1.41L13.42 12l2.08-2.09-1.41-1.41L12 10.59 9.91 8.5z\"}}]})(props);\n};\nexport function MdOutlineGppGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm6 9.09c0 4-2.55 7.7-6 8.83-3.45-1.13-6-4.82-6-8.83V6.31l6-2.12 6 2.12v4.78zm-9.18-.5L7.4 12l3.54 3.54 5.66-5.66-1.41-1.41-4.24 4.24-2.13-2.12z\"}}]})(props);\n};\nexport function MdOutlineGppMaybe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm6 9.09c0 4-2.55 7.7-6 8.83-3.45-1.13-6-4.82-6-8.83v-4.7l6-2.25 6 2.25v4.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14h2v2h-2zM11 7h2v5h-2z\"}}]})(props);\n};\nexport function MdOutlineGpsFixed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineGpsNotFixed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 11A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineGpsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 11A8.994 8.994 0 0013 3.06V1h-2v2.06c-.98.11-1.91.38-2.77.78l1.53 1.53a6.995 6.995 0 018.87 8.87l1.53 1.53c.4-.86.67-1.79.78-2.77H23v-2h-2.06zM3 4.27l2.04 2.04A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21l1.41-1.41L4.41 2.86 3 4.27zm13.27 13.27a6.995 6.995 0 01-9.81-9.81l9.81 9.81z\"}}]})(props);\n};\nexport function MdOutlineGraphicEq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18h2V6H7v12zm4 4h2V2h-2v20zm-8-8h2v-4H3v4zm12 4h2V6h-2v12zm4-8v4h2v-4h-2z\"}}]})(props);\n};\nexport function MdOutlineGrid3X3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10V8h-4V4h-2v4h-4V4H8v4H4v2h4v4H4v2h4v4h2v-4h4v4h2v-4h4v-2h-4v-4h4zm-6 4h-4v-4h4v4z\"}}]})(props);\n};\nexport function MdOutlineGrid4X4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7V5h-3V2h-2v3h-4V2h-2v3H7V2H5v3H2v2h3v4H2v2h3v4H2v2h3v3h2v-3h4v3h2v-3h4v3h2v-3h3v-2h-3v-4h3v-2h-3V7h3zM7 7h4v4H7V7zm0 10v-4h4v4H7zm10 0h-4v-4h4v4zm0-6h-4V7h4v4z\"}}]})(props);\n};\nexport function MdOutlineGridGoldenratio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11V9h-7V2h-2v7h-2V2H9v7H2v2h7v2H2v2h7v7h2v-7h2v7h2v-7h7v-2h-7v-2h7zm-9 2h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdOutlineHMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11H9V7H7v10h2v-4h6v4h2V7h-2v4z\"}}]})(props);\n};\nexport function MdOutlineHPlusMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11H6V7H4v10h2v-4h6v4h2V7h-2v4zm10 0h-2V9h-2v2h-2v2h2v2h2v-2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineHdrAutoSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zM3.5 18h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5zM22 18.5v-2h-1.5v2h-2V20h2v2H22v-2h2v-1.5zM16.5 16H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1zM11.97 5.3l-1.02 2.89h2.1L12.03 5.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.69 2 6 4.69 6 8s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm2.04 9l-.63-1.79h-2.83L9.96 11H8.74l2.63-7h1.25l2.63 7h-1.21z\"}}]})(props);\n};\nexport function MdOutlineHdrAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-.99-14L6.88 17h1.9l1-2.81h4.44l.99 2.81h1.9L12.98 6h-1.97zm-.66 6.59l1.6-4.55h.09l1.6 4.55h-3.29z\"}}]})(props);\n};\nexport function MdOutlineHdrOffSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 18.5v-1c0-.8-.7-1.5-1.5-1.5H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5v2zm6.5-2H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zm14-.5h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zM10.98 4.15L9.42 2.59c5.1-2.42 10.41 2.89 7.99 7.99l-1.56-1.56c.81-2.96-1.91-5.68-4.87-4.87zM6.34 2.34L4.93 3.76l1.66 1.66c-2.42 5.1 2.89 10.41 7.99 7.99l1.66 1.66 1.41-1.41L6.34 2.34zm1.81 4.64l4.87 4.87c-2.96.81-5.68-1.91-4.87-4.87z\"}}]})(props);\n};\nexport function MdOutlineHdrOnSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 18.5v-1c0-.8-.7-1.5-1.5-1.5H13v6h1.5v-2h1.1l.9 2H18l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2v-2H0v6h1.5v-2.5h2V22H5v-6H3.5v2zm6.5-2H6.5v6H10c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5H8v-3h2v3zm14-.5h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zM12 4c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4m0-2C8.69 2 6 4.69 6 8s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6z\"}}]})(props);\n};\nexport function MdOutlineLensBlur (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdOutlineLightMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58a.996.996 0 00-1.41 0 .996.996 0 000 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37a.996.996 0 00-1.41 0 .996.996 0 000 1.41l1.06 1.06c.39.39 1.03.39 1.41 0a.996.996 0 000-1.41l-1.06-1.06zm1.06-10.96a.996.996 0 000-1.41.996.996 0 00-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36a.996.996 0 000-1.41.996.996 0 00-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z\"}}]})(props);\n};\nexport function MdOutlineLocationDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 13v-2h-2.06A8.994 8.994 0 0013 3.06V1h-2v2.06c-.98.11-1.91.38-2.77.78l1.53 1.53a6.995 6.995 0 018.87 8.87l1.53 1.53c.4-.86.67-1.79.78-2.77H23zM4.41 2.86L3 4.27l2.04 2.04A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21l1.41-1.41L4.41 2.86zM12 19A6.995 6.995 0 016.46 7.73l9.81 9.81A6.972 6.972 0 0112 19z\"}}]})(props);\n};\nexport function MdOutlineLocationSearching (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.94 11A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineLteMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14h3v2H4V8h2v6zm3-4h2v6h2v-6h2V8H9v2zm12 0V8h-5v8h5v-2h-3v-1h3v-2h-3v-1h3z\"}}]})(props);\n};\nexport function MdOutlineLtePlusMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14h3v2H1V8h2v6zm2-4h2v6h2v-6h2V8H5v2zm7 6h5v-2h-3v-1h3v-2h-3v-1h3V8h-5v8zm12-5h-2V9h-2v2h-2v2h2v2h2v-2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineMediaBluetoothOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6.17V3h6v4h-4v1.17l-2-2zM19.42 15L22 17.57l-.8.8-6.78-6.78.8-.8 2.75 2.75V9h.6L22 12.43 19.42 15zm-.25-1.45l1.13-1.13-1.13-1.13v2.26zm2.02 7.64l-1.41 1.41-3.98-3.98-.58.58-.85-.85.58-.58L11 13.83V17c0 2.21-1.78 4-3.99 4S3 19.21 3 17s1.79-4 4.01-4c.73 0 1.41.21 2 .55v-1.72L1.39 4.22 2.8 2.81l18.39 18.38z\"}}]})(props);\n};\nexport function MdOutlineMediaBluetoothOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3l.01 10.55c-.6-.34-1.28-.55-2-.55a4.001 4.001 0 100 8C9.23 21 11 19.21 11 17V7h4V3H9zm12 9.43L17.57 9h-.6v4.55l-2.75-2.75-.85.85L16.73 15l-3.35 3.35.85.85 2.75-2.75V21h.6L21 17.57 18.42 15 21 12.43zm-2.83-1.13l1.13 1.13-1.13 1.13V11.3zm1.13 6.27l-1.13 1.13v-2.26l1.13 1.13z\"}}]})(props);\n};\nexport function MdOutlineMedication (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 15H8v-3h2.5V9.5h3V12H16v3h-2.5v2.5h-3V15zM19 8v11c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V8c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2zm-2 0H7v11h10V8zm1-5H6v2h12V3z\"}}]})(props);\n};\nexport function MdOutlineMobileFriendly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zM7.01 13.47l-2.55-2.55-1.27 1.27L7 16l7.19-7.19-1.27-1.27-5.91 5.93z\"}}]})(props);\n};\nexport function MdOutlineMobileOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5v8.61l2 2V3c0-1.1-.9-2-2-2H7c-.71 0-1.33.37-1.68.93L8.39 5H17zM1.49 3.76L5 7.27V21c0 1.1.9 2 2 2h10c1.02 0 1.85-.77 1.98-1.75l1.72 1.72 1.41-1.41L2.9 2.35 1.49 3.76zM7 9.27L16.73 19H7V9.27z\"}}]})(props);\n};\nexport function MdOutlineMobiledataOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6.82l1.59 1.59L19 7l-4-4-4 4 1.41 1.41L14 6.82v4.35l2 2zM1.39 4.22L8 10.83v6.35l-1.59-1.59L5 17l4 4 4-4-1.41-1.41L10 17.18v-4.35l9.78 9.78 1.41-1.42L2.81 2.81z\"}}]})(props);\n};\nexport function MdOutlineModeNight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 4c4.41 0 8 3.59 8 8s-3.59 8-8 8c-.34 0-.68-.02-1.01-.07 1.91-2.16 3.01-4.98 3.01-7.93s-1.1-5.77-3.01-7.93C8.82 4.02 9.16 4 9.5 4m0-2c-1.82 0-3.53.5-5 1.35 2.99 1.73 5 4.95 5 8.65s-2.01 6.92-5 8.65c1.47.85 3.18 1.35 5 1.35 5.52 0 10-4.48 10-10S15.02 2 9.5 2z\"}}]})(props);\n};\nexport function MdOutlineModeStandby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z\"}}]})(props);\n};\nexport function MdOutlineMonitorWeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM12 6c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm-1 3.5h-1v-1h1v1zm1.5 0h-1v-1h1v1zm1.5 0h-1v-1h1v1z\"}}]})(props);\n};\nexport function MdOutlineNearbyError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.57l4.42 4.42L12 16.41l-4.42-4.42L12 7.57zm0 11.62l-7.2-7.2 7.2-7.2 6 6V7.16l-4.58-4.58c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0L18 16.82v-3.63l-6 6zm8 .81h2v2h-2v-2zm2-10h-2v8h2v-8\"}}]})(props);\n};\nexport function MdOutlineNearbyOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 13.42L18.83 16l-1.81-1.81L19.2 12 12 4.8 9.81 6.99 8 5.17l2.58-2.58c.78-.78 2.05-.78 2.83 0l8 8c.79.78.79 2.04 0 2.83zm-.22 7.77l-1.41 1.41L16 18.83l-2.58 2.58c-.78.78-2.05.78-2.83 0l-8-8c-.78-.78-.78-2.05 0-2.83L5.17 8 1.39 4.22 2.8 2.81l18.39 18.38zm-7-4.17l-1.39-1.39-.8.8L7.58 12l.8-.8-1.4-1.39L4.8 12l7.2 7.2 2.19-2.18zM16.42 12L12 7.58l-.8.8 4.42 4.42.8-.8z\"}}]})(props);\n};\nexport function MdOutlineNetworkCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20V2L2 22zm18-2h-3V9.83l3-3V20z\"}}]})(props);\n};\nexport function MdOutlineNetworkWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0012 4zm0 4c-2.86 0-5.5.94-7.65 2.51L2.92 9.07C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07l-1.43 1.43A12.99 12.99 0 0012 8z\"}}]})(props);\n};\nexport function MdOutlineNfc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16zM18 6h-5c-1.1 0-2 .9-2 2v2.28c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V8h3v8H8V8h2V6H6v12h12V6z\"}}]})(props);\n};\nexport function MdOutlineNightlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4c.34 0 .68.02 1.01.07C13.1 6.23 12 9.05 12 12s1.1 5.77 3.01 7.93c-.33.05-.67.07-1.01.07-4.41 0-8-3.59-8-8s3.59-8 8-8m0-2C8.48 2 4 6.48 4 12s4.48 10 10 10c1.82 0 3.53-.5 5-1.35-2.99-1.73-5-4.95-5-8.65s2.01-6.92 5-8.65A9.973 9.973 0 0014 2z\"}}]})(props);\n};\nexport function MdOutlineNoteAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7-.25c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75zM19 19H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.08 11.03l-2.12-2.12L7 14.86V17h2.1zM16.85 9.27c.2-.2.2-.51 0-.71l-1.41-1.41c-.2-.2-.51-.2-.71 0l-1.06 1.06 2.12 2.12 1.06-1.06z\"}}]})(props);\n};\nexport function MdOutlinePassword (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17h20v2H2v-2zm1.15-4.05L4 11.47l.85 1.48 1.3-.75-.85-1.48H7v-1.5H5.3l.85-1.47L4.85 7 4 8.47 3.15 7l-1.3.75.85 1.47H1v1.5h1.7l-.85 1.48 1.3.75zm6.7-.75l1.3.75.85-1.48.85 1.48 1.3-.75-.85-1.48H15v-1.5h-1.7l.85-1.47-1.3-.75L12 8.47 11.15 7l-1.3.75.85 1.47H9v1.5h1.7l-.85 1.48zM23 9.22h-1.7l.85-1.47-1.3-.75L20 8.47 19.15 7l-1.3.75.85 1.47H17v1.5h1.7l-.85 1.48 1.3.75.85-1.48.85 1.48 1.3-.75-.85-1.48H23v-1.5z\"}}]})(props);\n};\nexport function MdOutlinePattern (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm2 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-.02 6c-.74 0-1.37.4-1.72 1h-2.54a1.98 1.98 0 00-3.44 0H8.41l3.07-3.07c.17.04.34.07.52.07 1.1 0 2-.9 2-2 0-.18-.03-.35-.07-.51l3.56-3.56c.16.04.33.07.51.07 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .18.03.35.07.51l-3.56 3.56c-.16-.04-.33-.07-.51-.07-1.1 0-2 .9-2 2 0 .18.03.35.07.51l-3.56 3.56C6.35 16.03 6.18 16 6 16c-1.1 0-2 .9-2 2s.9 2 2 2c.74 0 1.37-.4 1.72-1h2.57a1.98 1.98 0 003.44 0h2.55c.34.6.98 1 1.72 1 1.1 0 2-.9 2-2-.02-1.1-.92-2-2.02-2z\"}}]})(props);\n};\nexport function MdOutlinePin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.49 10.5V15h1.15V9h-.87l-1.76 1.27.58.89zM11.47 10.05c.5 0 .81.32.81.72 0 .37-.14.64-.54 1.06-.36.38-1.06 1.08-2.13 2.15V15h3.89v-.99h-2.37l-.03-.05c.68-.68 1.15-1.14 1.4-1.39.61-.6.92-1.22.92-1.86 0-.24-.05-1.04-.91-1.48-.47-.23-1.26-.36-1.95-.03-.82.39-.99 1.13-1 1.15l1.01.42c.1-.33.38-.72.9-.72zM16.99 13.94c-.83 0-.99-.76-1.02-.86l-1.03.41c.45 1.59 2.01 1.51 2.05 1.51 1.2 0 1.68-.72 1.76-.85.32-.49.36-1.24-.01-1.76-.17-.24-.4-.41-.68-.52v-.07c.2-.1.37-.26.52-.48.26-.41.31-1.07-.02-1.57-.08-.11-.53-.75-1.62-.75-1.26 0-1.74.9-1.85 1.24l.99.41c.11-.32.35-.64.85-.64.44 0 .75.26.75.65 0 .58-.55.72-.88.72h-.46v1h.5c.56 0 1.04.24 1.04.79 0 .49-.48.77-.89.77z\"}}]})(props);\n};\nexport function MdOutlinePlayLesson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20V4h2v7l2.5-1.5L12 11V4h5v7.08c.33-.05.66-.08 1-.08s.67.03 1 .08V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h7.26c-.42-.6-.75-1.28-.97-2H5zm13-7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm-1.25 7.5v-5l4 2.5-4 2.5z\"}}]})(props);\n};\nexport function MdOutlinePriceChange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1H8v-1h4V8h-2V7H8v1H7c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H6v2h2v1zM20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12zm-6-8l2-2 2 2m0 4.25l-2 2-2-2\"}}]})(props);\n};\nexport function MdOutlinePriceCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13V9c0-.55-.45-1-1-1H6V6h5V4H8.5V3h-2v1H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h4v2H4v2h2.5v1h2v-1H10c.55 0 1-.45 1-1zM19.59 12.52l-5.66 5.65-2.83-2.83-1.41 1.42L13.93 21 21 13.93z\"}}]})(props);\n};\nexport function MdOutlineQuiz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-6.49-5.84c.41-.73 1.18-1.16 1.63-1.8.48-.68.21-1.94-1.14-1.94-.88 0-1.32.67-1.5 1.23l-1.37-.57C11.51 5.96 12.52 5 13.99 5c1.23 0 2.08.56 2.51 1.26.37.6.58 1.73.01 2.57-.63.93-1.23 1.21-1.56 1.81-.13.24-.18.4-.18 1.18h-1.52c.01-.41-.06-1.08.26-1.66zm-.56 3.79c0-.59.47-1.04 1.05-1.04.59 0 1.04.45 1.04 1.04 0 .58-.44 1.05-1.04 1.05-.58 0-1.05-.47-1.05-1.05z\"}}]})(props);\n};\nexport function MdOutlineRMobiledata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8 7.2L9 10H7L5.87 7.33H4V10H2V2h5c1.13 0 2 .87 2 2v1.33c0 .8-.53 1.54-1.2 1.87zM7 4H4v1.33h3V4z\"}}]})(props);\n};\nexport function MdOutlineRadar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.74 18.33A9.984 9.984 0 0022 12c0-5.52-4.48-10-10-10S2 6.48 2 12s4.48 10 10 10a9.984 9.984 0 007.11-2.97c.03-.03.05-.06.07-.08.2-.2.39-.41.56-.62zM12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8c0 1.85-.63 3.54-1.69 4.9l-1.43-1.43c.69-.98 1.1-2.17 1.1-3.46 0-3.31-2.69-6-6-6s-6 2.69-6 6 2.69 6 6 6c1.3 0 2.51-.42 3.49-1.13l1.42 1.42A7.822 7.822 0 0112 20zm1.92-7.49c.17-.66.02-1.38-.49-1.9l-.02-.02c-.77-.77-2-.78-2.78-.04-.01.01-.03.02-.05.04-.78.78-.78 2.05 0 2.83l.02.02c.52.51 1.25.67 1.91.49l1.51 1.51c-.6.36-1.29.58-2.04.58-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4c0 .73-.21 1.41-.56 2l-1.5-1.51z\"}}]})(props);\n};\nexport function MdOutlineRememberMe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 20H7v-1h10v1zm0-3H7v-.48c1.47-.99 3.22-1.52 5-1.52s3.53.53 5 1.52V18zm0-2.79c-1.5-.77-3.2-1.21-5-1.21s-3.5.44-5 1.21V6h10v9.21zM17 4H7V3h10v1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z\"}}]})(props);\n};\nexport function MdOutlineResetTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v2h8v-2h4c1.1 0 1.99-.9 1.99-2v-5H22c0-1.1-.9-2-2-2h-7.17l1.83-1.83-1.41-1.41C9.69 10.31 10.88 9.12 9 11l4.24 4.24 1.41-1.41L12.83 12H20v5H4V5h16v3h2z\"}}]})(props);\n};\nexport function MdOutlineRestartAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13c0-1.65.67-3.15 1.76-4.24L6.34 7.34A8.014 8.014 0 004 13c0 4.08 3.05 7.44 7 7.93v-2.02c-2.83-.48-5-2.94-5-5.91zm14 0c0-4.42-3.58-8-8-8-.06 0-.12.01-.18.01l1.09-1.09L11.5 2.5 8 6l3.5 3.5 1.41-1.41-1.08-1.08c.06 0 .12-.01.17-.01 3.31 0 6 2.69 6 6 0 2.97-2.17 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93z\"}}]})(props);\n};\nexport function MdOutlineReviews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15l1.57-3.43L17 10l-3.43-1.57L12 5l-1.57 3.43L7 10l3.43 1.57z\"}}]})(props);\n};\nexport function MdOutlineRsvp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9h1.5l-1.75 6h-1.5L12.5 9H14l1 3.43L16 9zM5.1 12.9L6 15H4.5l-.85-2H2.5v2H1V9h3.5c.85 0 1.5.65 1.5 1.5v1c0 .6-.4 1.15-.9 1.4zm-.6-2.4h-2v1h2v-1zm17 2.5h-2v2H18V9h3.5c.83 0 1.5.67 1.5 1.5v1c0 .83-.67 1.5-1.5 1.5zm0-2.5h-2v1h2v-1zM11.5 9v1.5h-3v.75h2c.55 0 1 .45 1 1V14c0 .55-.45 1-1 1H7v-1.5h3v-.75H7.75c-.41 0-.75-.34-.75-.75v-2c0-.55.45-1 1-1h3.5z\"}}]})(props);\n};\nexport function MdOutlineScreenLockLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-2 12H5V7h14v10zm-9-1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1a2 2 0 10-4 0v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v1h-2.4v-1z\"}}]})(props);\n};\nexport function MdOutlineScreenLockPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 16h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1a2 2 0 10-4 0v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v1h-2.4v-1zM17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14z\"}}]})(props);\n};\nexport function MdOutlineScreenLockRotation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.3 13.77l-2.57-2.57-1.41 1.41 2.22 2.22-5.66 5.66L3.56 9.17l5.66-5.66 2.1 2.1 1.41-1.41-2.45-2.45a1.49 1.49 0 00-2.12 0L1.8 8.11a1.49 1.49 0 000 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12zM7.52 21.48A10.487 10.487 0 011.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.82-1.33 1.33zM15.05 10h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1v-.5a2.5 2.5 0 00-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.8-6.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4h-3.4v-.5z\"}}]})(props);\n};\nexport function MdOutlineScreenRotation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.48 2.52c3.27 1.55 5.61 4.72 5.97 8.48h1.5C23.44 4.84 18.29 0 12 0l-.66.03 3.81 3.81 1.33-1.32zm-6.25-.77a1.49 1.49 0 00-2.12 0L1.75 8.11a1.49 1.49 0 000 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12L10.23 1.75zm4.6 19.44L2.81 9.17l6.36-6.36 12.02 12.02-6.36 6.36zm-7.31.29A10.487 10.487 0 011.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32z\"}}]})(props);\n};\nexport function MdOutlineScreenSearchDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18h16c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2zM4 5h16v11H4V5zM1 19h22v2H1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.97 7.53c-1.37-1.37-3.58-1.37-4.95 0s-1.37 3.58 0 4.95c1.18 1.18 3 1.34 4.36.47l2.09 2.09 1.06-1.06-2.09-2.09c.87-1.36.72-3.18-.47-4.36zm-1.06 3.88c-.78.78-2.05.78-2.83 0-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0c.78.79.78 2.05 0 2.83z\"}}]})(props);\n};\nexport function MdOutlineScreenshot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zm0-14H7V3h10v1zM9.5 8.5H12V7H8v4h1.5V8.5zM12 17h4v-4h-1.5v2.5H12V17z\"}}]})(props);\n};\nexport function MdOutlineSdStorage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4v16H6V8.83L10.83 4H18m0-2h-8L4 8v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 7h2v4H9zm3 0h2v4h-2zm3 0h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineSecurityUpdateGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zm0-14H7V3h10v1zm-1 6.05l-1.41-1.41-3.54 3.54-1.41-1.41-1.41 1.41L11.05 15 16 10.05z\"}}]})(props);\n};\nexport function MdOutlineSecurityUpdateWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2zM11 7h2v6h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zm0-14H7V3h10v1z\"}}]})(props);\n};\nexport function MdOutlineSecurityUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zM7 4V3h10v1H7zm9 8l-4 4-4-4 1.41-1.41L11 12.17V8h2v4.17l1.59-1.59L16 12z\"}}]})(props);\n};\nexport function MdOutlineSell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 11.41l-8.83-8.83c-.37-.37-.88-.58-1.41-.58H4c-1.1 0-2 .9-2 2v7.17c0 .53.21 1.04.59 1.41l8.83 8.83c.78.78 2.05.78 2.83 0l7.17-7.17c.78-.78.78-2.04-.01-2.83zM12.83 20L4 11.17V4h7.17L20 12.83 12.83 20z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineSendToMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8l4 4-4 4-1.41-1.41L18.17 13H13v-2h5.17l-1.59-1.59L18 8zM7 1.01L17 1c1.1 0 2 .9 2 2v4h-2V6H7v12h10v-1h2v4c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-1.99 2-1.99zM7 21h10v-1H7v1zM7 4h10V3H7v1z\"}}]})(props);\n};\nexport function MdOutlineSettingsSuggest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1m0-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm8.5-2l1.09-2.41L22 5.5l-2.41-1.09L18.5 2l-1.09 2.41L15 5.5l2.41 1.09L18.5 9zm2.78 3.72L20.5 11l-.78 1.72-1.72.78 1.72.78.78 1.72.78-1.72L23 13.5l-1.72-.78zM16.25 14c0-.12 0-.25-.01-.37l1.94-1.47-2.5-4.33-2.24.94c-.2-.13-.42-.26-.64-.37L12.5 6h-5l-.3 2.41c-.22.11-.43.24-.64.37l-2.24-.95-2.5 4.33 1.94 1.47c-.01.12-.01.25-.01.37s0 .25.01.37l-1.94 1.47 2.5 4.33 2.24-.94c.2.13.42.26.64.37l.3 2.4h5l.3-2.41c.22-.11.43-.23.64-.37l2.24.94 2.5-4.33-1.94-1.47c.01-.11.01-.24.01-.36zm-1.42 3.64l-1.73-.73c-.56.6-1.3 1.04-2.13 1.23L10.73 20H9.27l-.23-1.86c-.83-.19-1.57-.63-2.13-1.23l-1.73.73-.73-1.27 1.49-1.13c-.12-.39-.18-.8-.18-1.23 0-.43.06-.84.18-1.23l-1.49-1.13.73-1.27 1.73.73c.56-.6 1.3-1.04 2.13-1.23L9.27 8h1.47l.23 1.86c.83.19 1.57.63 2.13 1.23l1.73-.73.73 1.27-1.49 1.13c.12.39.18.8.18 1.23 0 .43-.06.84-.18 1.23l1.49 1.13-.73 1.29z\"}}]})(props);\n};\nexport function MdOutlineSettingsSystemDaydream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 17H9c-2.21 0-4-1.79-4-4a3.98 3.98 0 013.22-3.92A4.514 4.514 0 0112 7c1.95 0 3.66 1.28 4.26 3.09 1.58.36 2.74 1.75 2.74 3.41 0 1.93-1.57 3.5-3.5 3.5zm-6.76-5.98C7.74 11.15 7 11.99 7 13c0 1.1.9 2 2 2h6.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5h-.87l-.17-.86A2.496 2.496 0 0012 9c-.96 0-1.84.57-2.26 1.45l-.27.57h-.73zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\"}}]})(props);\n};\nexport function MdOutlineShareLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.02 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.42-1.43a7.941 7.941 0 01-3.9 1.62zM4.03 12c0-4.05 3.03-7.41 6.95-7.93V2.05C5.95 2.58 2.03 6.84 2.03 12c0 5.16 3.92 9.42 8.95 9.95v-2.02c-3.92-.52-6.95-3.88-6.95-7.93zM19.95 11h2.02c-.2-2.01-1-3.84-2.21-5.32l-1.43 1.43c.86 1.1 1.44 2.43 1.62 3.89zM18.34 4.26a9.981 9.981 0 00-5.32-2.21v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM18.33 16.9l1.43 1.42A9.949 9.949 0 0021.97 13h-2.02a7.941 7.941 0 01-1.62 3.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.1C16 8.61 14.1 7 12 7s-4 1.61-4 4.1c0 1.66 1.33 3.63 4 5.9 2.67-2.27 4-4.24 4-5.9zm-4 .9a1.071 1.071 0 010-2.14A1.071 1.071 0 0112 12z\"}}]})(props);\n};\nexport function MdOutlineShortcut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5l-1.41 1.41L15 7.83 17.17 10H8c-2.76 0-5 2.24-5 5v4h2v-4c0-1.65 1.35-3 3-3h9.17L15 14.17l-1.41 1.41L15 17l6-6-6-6z\"}}]})(props);\n};\nexport function MdOutlineSignalCellular0Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20V2L2 22zm18-2H6.83L20 6.83V20z\"}}]})(props);\n};\nexport function MdOutlineSignalCellular4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22h20V2L2 22z\"}}]})(props);\n};\nexport function MdOutlineSignalCellularAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4h3v16h-3V4zM5 14h3v6H5v-6zm6-5h3v11h-3V9z\"}}]})(props);\n};\nexport function MdOutlineSignalCellularConnectedNoInternet0Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zm-2-2v2H2L22 2v6h-2V6.83L6.83 20H18z\"}}]})(props);\n};\nexport function MdOutlineSignalCellularConnectedNoInternet4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zM2 22h16V8h4V2L2 22z\"}}]})(props);\n};\nexport function MdOutlineSignalCellularNoSim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.83 5H17v9.11l2 2V5c0-1.1-.9-2-2-2h-7L7.94 5.06l1.42 1.42L10.83 5zm10.43 16.21L3.79 3.74 2.38 5.15 5 7.77V19a2 2 0 002 2h11.23l1.62 1.62 1.41-1.41zM7 19V9.79L16.23 19H7z\"}}]})(props);\n};\nexport function MdOutlineSignalCellularNodata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 13h-9v9H2L22 2v11zm-1 2.41L19.59 14l-2.09 2.09L15.41 14 14 15.41l2.09 2.09L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41z\"}}]})(props);\n};\nexport function MdOutlineSignalCellularNull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6.83V20H6.83L20 6.83M22 2L2 22h20V2z\"}}]})(props);\n};\nexport function MdOutlineSignalCellularOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1l-8.31 8.31 8.31 8.3zM4.91 4.36L3.5 5.77l6.36 6.37L1 21h17.73l2 2 1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineSignalWifi0Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0012 4zM2.92 9.07C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07L12 18.17l-9.08-9.1z\"}}]})(props);\n};\nexport function MdOutlineSignalWifi4BarLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.98 11L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36L12 21l3.05-3.05V15c0-.45.09-.88.23-1.29.54-1.57 2.01-2.71 3.77-2.71h2.93z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z\"}}]})(props);\n};\nexport function MdOutlineSignalWifi4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z\"}}]})(props);\n};\nexport function MdOutlineSignalWifiBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09-.3-.3L15.41 14 14 15.41l1.79 1.79.3.3L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z\"}}]})(props);\n};\nexport function MdOutlineSignalWifiConnectedNoInternet4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98L12 21v-9h8.99L24 8.98zM19.59 14l-2.09 2.09-.3-.3L15.41 14 14 15.41l1.79 1.79.3.3L14 19.59 15.41 21l2.09-2.08L19.59 21 21 19.59l-2.08-2.09L21 15.41 19.59 14z\"}}]})(props);\n};\nexport function MdOutlineSignalWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23.64 7c-.45-.34-4.93-4-11.64-4-1.32 0-2.55.14-3.69.38L18.43 13.5 23.64 7zM3.41 1.31L2 2.72l2.05 2.05C1.91 5.76.59 6.82.36 7L12 21.5l3.91-4.87 3.32 3.32 1.41-1.41L3.41 1.31z\"}}]})(props);\n};\nexport function MdOutlineSignalWifiStatusbar4Bar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0012 4z\"}}]})(props);\n};\nexport function MdOutlineSignalWifiStatusbarConnectedNoInternet4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21l5-5.01V8h5.92C19.97 5.51 16.16 4 12 4zM19 18h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10h2v6h-2z\"}}]})(props);\n};\nexport function MdOutlineSignalWifiStatusbarNull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C7.31 4 3.07 5.9 0 8.98L12 21 24 8.98A16.88 16.88 0 0012 4zM2.92 9.07C5.51 7.08 8.67 6 12 6s6.49 1.08 9.08 3.07L12 18.17l-9.08-9.1z\"}}]})(props);\n};\nexport function MdOutlineSimCardDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4 8v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 2v16H6V8.83L10.83 4H18z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13l-4 4-4-4 1.41-1.41L11 13.17V9.02L13 9v4.17l1.59-1.59L16 13z\"}}]})(props);\n};\nexport function MdOutlineSplitscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4v5H6V4h12m0-2H6c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 13v5H6v-5h12m0-2H6c-1.1 0-2 .9-2 2v5c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineSportsScore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6H9V4h2v2zm4-2h-2v2h2V4zM9 14h2v-2H9v2zm10-4V8h-2v2h2zm0 4v-2h-2v2h2zm-6 0h2v-2h-2v2zm6-10h-2v2h2V4zm-6 4V6h-2v2h2zm-6 2V8h2V6H7V4H5v16h2v-8h2v-2H7zm8 2h2v-2h-2v2zm-4-2v2h2v-2h-2zM9 8v2h2V8H9zm4 2h2V8h-2v2zm2-4v2h2V6h-2z\"}}]})(props);\n};\nexport function MdOutlineStorage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z\"}}]})(props);\n};\nexport function MdOutlineStorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.93 8C16.72 4.18 11.82 2.87 8 5.07c-1.41.82-2.48 2-3.16 3.37-.13-2.2.22-4.4 1.02-6.44H3.74C2.2 6.49 2.52 11.58 5.07 16a7.96 7.96 0 004.86 3.72c1.98.53 4.16.31 6.07-.79 1.41-.82 2.48-2 3.16-3.37.13 2.2-.21 4.4-1.01 6.44h2.11c1.53-4.49 1.22-9.58-1.33-14zM15 17.2A6.012 6.012 0 016.8 15c-.11-.2-.21-.4-.3-.6-1.2-2.76-.17-6.06 2.5-7.6 2.86-1.65 6.54-.67 8.2 2.2.11.2.21.4.3.6 1.2 2.76.17 6.06-2.5 7.6zM12 10c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdOutlineSummarize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V9l-6-6zM5 19V5h9v5h5v9H5zM9 8c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1zm0 4c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1zm0 4c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1z\"}}]})(props);\n};\nexport function MdOutlineSystemSecurityUpdateGood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zm0-14H7V3h10v1zm-1 6.05l-1.41-1.41-3.54 3.54-1.41-1.41-1.41 1.41L11.05 15 16 10.05z\"}}]})(props);\n};\nexport function MdOutlineSystemSecurityUpdateWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2zM11 7h2v6h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zm0-14H7V3h10v1z\"}}]})(props);\n};\nexport function MdOutlineSystemSecurityUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 21H7v-1h10v1zm0-3H7V6h10v12zM7 4V3h10v1H7zm9 8l-4 4-4-4 1.41-1.41L11 12.17V8h2v4.17l1.59-1.59L16 12z\"}}]})(props);\n};\nexport function MdOutlineTask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zm-9.18-6.95L7.4 14.46 10.94 18l5.66-5.66-1.41-1.41-4.24 4.24-2.13-2.12z\"}}]})(props);\n};\nexport function MdOutlineThermostat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-8c0-.55.45-1 1-1s1 .45 1 1h-1v1h1v2h-1v1h1v2h-2V5z\"}}]})(props);\n};\nexport function MdOutlineTimer10Select (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8v8h-3V8h3m0-3h-3C8.34 5 7 6.34 7 8v8c0 1.66 1.34 3 3 3h3c1.66 0 3-1.34 3-3V8c0-1.66-1.34-3-3-3zM1 8h2v11h3V5H1v3zm17.5 3c-.83 0-1.5.68-1.5 1.5v2c0 .82.67 1.5 1.5 1.5H21v1h-4v2h4.5c.83 0 1.5-.67 1.5-1.5v-2c0-.83-.67-1.5-1.5-1.5H19v-1h4v-2h-4.5z\"}}]})(props);\n};\nexport function MdOutlineTimer3Select (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11v2h-4v1h2.5c.83 0 1.5.68 1.5 1.5v2c0 .83-.67 1.5-1.5 1.5H15v-2h4v-1h-2.5c-.82 0-1.5-.68-1.5-1.5v-2c0-.82.68-1.5 1.5-1.5H21zM4 5v3h6v2.5H4v3h6V16H4v3h6c1.66 0 3-1.34 3-3v-1.9a2.1 2.1 0 00-2.1-2.1A2.1 2.1 0 0013 9.9V8c0-1.66-1.34-3-3-3H4z\"}}]})(props);\n};\nexport function MdOutlineTungsten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 19h2v3h-2zM2 11h3v2H2zM19 11h3v2h-3zM15.894 17.801l1.407-1.407 2.122 2.122-1.408 1.407zM4.584 18.509l2.121-2.122 1.408 1.407-2.122 2.122zM15 8.02V3H9v5.02c-1.21.92-2 2.35-2 3.98 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.06-2-3.98zM11 5h2v2.1c-.32-.06-.66-.1-1-.1s-.68.04-1 .1V5zm1 10c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"}}]})(props);\n};\nexport function MdOutlineUsbOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8h4v4h-1v2c0 .34-.08.66-.23.94L16 13.17V12h-1V8zm-4 .17l2 2V6h2l-3-4-3 4h2v2.17zM13 16v2.28c.6.34 1 .98 1 1.72 0 1.1-.9 2-2 2s-2-.9-2-2c0-.74.4-1.37 1-1.72V16H8c-1.11 0-2-.89-2-2v-2.28c-.6-.34-1-.98-1-1.72 0-.59.26-1.13.68-1.49L1.39 4.22 2.8 2.81l18.38 18.38-1.41 1.41-6.6-6.6H13zm-2-2v-.17l-2.51-2.51c-.14.16-.31.29-.49.4V14h3z\"}}]})(props);\n};\nexport function MdOutlineUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7v4h1v2h-3V5h2l-3-4-3 4h2v8H8v-2.07c.7-.37 1.2-1.08 1.2-1.93 0-1.21-.99-2.2-2.2-2.2S4.8 7.79 4.8 9c0 .85.5 1.56 1.2 1.93V13c0 1.11.89 2 2 2h3v3.05c-.71.37-1.2 1.1-1.2 1.95a2.2 2.2 0 004.4 0c0-.85-.49-1.58-1.2-1.95V15h3c1.11 0 2-.89 2-2v-2h1V7h-4z\"}}]})(props);\n};\nexport function MdOutlineWallpaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9l-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z\"}}]})(props);\n};\nexport function MdOutlineWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.98 14H22h-.02zM5.35 13c1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.31 1v-2c-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1zm13.32 2c-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.1 1-3.34 1-1.24 0-1.38-1-3.33-1-1.95 0-2.1 1-3.34 1v2c1.95 0 2.11-1 3.34-1 1.24 0 1.38 1 3.33 1 1.95 0 2.1-1 3.34-1 1.19 0 1.42 1 3.33 1 1.94 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1v-2c-1.24 0-1.38-1-3.33-1zM5.35 9c1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.31 1V8c-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1C3.38 7 3.24 8 2 8v2c1.9 0 2.17-1 3.35-1z\"}}]})(props);\n};\nexport function MdOutlineWidgets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.66 4.52l2.83 2.83-2.83 2.83-2.83-2.83 2.83-2.83M9 5v4H5V5h4m10 10v4h-4v-4h4M9 15v4H5v-4h4m7.66-13.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65zM11 3H3v8h8V3zm10 10h-8v8h8v-8zm-10 0H3v8h8v-8z\"}}]})(props);\n};\nexport function MdOutlineWifiCalling3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.49 4.5c1.79 0 3.42.73 4.59 1.91l1.06-1.06A7.94 7.94 0 0016.49 3c-2.21 0-4.21.9-5.66 2.34l1.06 1.06a6.545 6.545 0 014.6-1.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.49 6c-1.38 0-2.63.56-3.54 1.46l1.06 1.06c.63-.63 1.51-1.03 2.47-1.03s1.84.39 2.47 1.03l1.06-1.06A4.94 4.94 0 0016.49 6zM16.49 9c-.55 0-1.05.22-1.41.59L16.49 11l1.41-1.41c-.36-.37-.86-.59-1.41-.59z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.2 14.87l-3.67-.73c-.5-.1-.83.2-.9.27l-2.52 2.5c-2.5-1.43-4.57-3.5-6-6l2.5-2.52c.23-.24.33-.57.27-.9L9.13 3.8c-.09-.46-.5-.8-.98-.8H4c-.56 0-1.03.47-1 1.03.17 2.89 1.05 5.6 2.43 7.97 1.58 2.73 3.85 4.99 6.57 6.57 2.37 1.37 5.08 2.26 7.97 2.43.55.03 1.03-.43 1.03-1v-4.15c0-.48-.34-.89-.8-.98zM5.1 5h2.23l.47 2.35L6.17 9c-.54-1.3-.9-2.63-1.07-4zM19 18.9c-1.37-.18-2.7-.53-4-1.07l1.65-1.63 2.35.47v2.23z\"}}]})(props);\n};\nexport function MdOutlineWifiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.98 11L24 8.98A16.88 16.88 0 0012 4C7.31 4 3.07 5.9 0 8.98l6.35 6.36L12 21l3.05-3.05V15c0-.45.09-.88.23-1.29.54-1.57 2.01-2.71 3.77-2.71h2.93z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-1c0-1.1-.9-2-2-2s-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-1 0h-2v-1c0-.55.45-1 1-1s1 .45 1 1v1z\"}}]})(props);\n};\nexport function MdOutlineWifiTetheringErrorRounded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7c-3.31 0-6 2.69-6 6 0 1.66.68 3.15 1.76 4.24l1.42-1.42A3.934 3.934 0 018 13c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.11-.45 2.1-1.18 2.82l1.42 1.42A6.003 6.003 0 0018 13c0-3.31-2.69-6-6-6zm0-4C6.48 3 2 7.48 2 13c0 2.76 1.12 5.26 2.93 7.07l1.42-1.42A7.94 7.94 0 014 13c0-4.42 3.58-8 8-8 2.53 0 4.78 1.17 6.24 3h2.42C18.93 5.01 15.7 3 12 3zm0 8c-1.1 0-2 .9-2 2 0 .55.23 1.05.59 1.41.36.36.86.59 1.41.59s1.05-.23 1.41-.59c.36-.36.59-.86.59-1.41 0-1.1-.9-2-2-2zm8-1h2v6h-2v-6zm0 8h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdOutlineWifiTetheringOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.81 2.81L1.39 4.22l2.69 2.69A9.958 9.958 0 002 13c0 2.76 1.12 5.26 2.93 7.07l1.42-1.42a7.957 7.957 0 01-.84-10.31l1.43 1.43a6.003 6.003 0 00.82 7.47l1.42-1.42A3.934 3.934 0 018 13c0-.63.15-1.23.41-1.76l1.61 1.61c0 .05-.02.1-.02.15 0 .55.23 1.05.59 1.41.36.36.86.59 1.41.59.05 0 .1-.01.16-.02l7.62 7.62 1.41-1.41L2.81 2.81zM17.7 14.87c.19-.59.3-1.22.3-1.87 0-3.31-2.69-6-6-6-.65 0-1.28.1-1.87.3l1.71 1.71C11.89 9 11.95 9 12 9c2.21 0 4 1.79 4 4 0 .05 0 .11-.01.16l1.71 1.71zM12 5c4.42 0 8 3.58 8 8 0 1.22-.27 2.37-.77 3.4l1.49 1.49A9.953 9.953 0 0022 13c0-5.52-4.48-10-10-10-1.78 0-3.44.46-4.89 1.28l1.48 1.48C9.63 5.27 10.78 5 12 5z\"}}]})(props);\n};\nexport function MdOutlineWifiTethering (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 2c0-3.31-2.69-6-6-6s-6 2.69-6 6c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.48-.81 2.75-2 3.45l1 1.74c1.79-1.04 3-2.97 3-5.19zM12 3C6.48 3 2 7.48 2 13c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 18.53 4 15.96 4 13c0-4.42 3.58-8 8-8s8 3.58 8 8c0 2.96-1.61 5.53-4 6.92l1 1.73c2.99-1.73 5-4.95 5-8.65 0-5.52-4.48-10-10-10z\"}}]})(props);\n};\nexport function MdOutlineAddChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19H5V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2v9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 13h2v4h-2zM7 10h2v7H7zM11 7h2v10h-2zM19 5V3h-2v2h-2v2h2v2h2V7h2V5z\"}}]})(props);\n};\nexport function MdOutlineAddComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 4c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4zm-2 13.17L18.83 16H4V4h16v13.17zM13 5h-2v4H7v2h4v4h2v-4h4V9h-4z\"}}]})(props);\n};\nexport function MdOutlineAlignHorizontalCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 2h2v5h8v3h-8v4h5v3h-5v5h-2v-5H6v-3h5v-4H3V7h8z\"}}]})(props);\n};\nexport function MdOutlineAlignHorizontalLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22H2V2h2v20zM22 7H6v3h16V7zm-6 7H6v3h10v-3z\"}}]})(props);\n};\nexport function MdOutlineAlignHorizontalRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2h2v20h-2V2zM2 10h16V7H2v3zm6 7h10v-3H8v3z\"}}]})(props);\n};\nexport function MdOutlineAlignVerticalBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22H2v-2h20v2zM10 2H7v16h3V2zm7 6h-3v10h3V8z\"}}]})(props);\n};\nexport function MdOutlineAlignVerticalCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11h-5V6h-3v5h-4V3H7v8H1.84v2H7v8h3v-8h4v5h3v-5h5z\"}}]})(props);\n};\nexport function MdOutlineAlignVerticalTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2v2H2V2h20zM7 22h3V6H7v16zm7-6h3V6h-3v10z\"}}]})(props);\n};\nexport function MdOutlineAreaChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7l-5-4-5 7-4-3v13h18V7h-4zm2 9.95l-7-5.45L8 17l-3-2.4V11l2.44 1.83 4.96-6.95L16.3 9H19v7.95z\"}}]})(props);\n};\nexport function MdOutlineAttachFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5a2.5 2.5 0 015 0v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5a2.5 2.5 0 005 0V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"}}]})(props);\n};\nexport function MdOutlineAttachMoney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z\"}}]})(props);\n};\nexport function MdOutlineAutoGraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.06 9.94L12 9l2.06-.94L15 6l.94 2.06L18 9l-2.06.94L15 12l-.94-2.06zM4 14l.94-2.06L7 11l-2.06-.94L4 8l-.94 2.06L1 11l2.06.94L4 14zm4.5-5l1.09-2.41L12 5.5 9.59 4.41 8.5 2 7.41 4.41 5 5.5l2.41 1.09L8.5 9zm-4 11.5l6-6.01 4 4L23 8.93l-1.41-1.41-7.09 7.97-4-4L3 19l1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9.2h3V19H5V9.2zM10.6 5h2.8v14h-2.8V5zm5.6 8H19v6h-2.8v-6z\"}}]})(props);\n};\nexport function MdOutlineBorderAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z\"}}]})(props);\n};\nexport function MdOutlineBorderBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11H7v2h2v-2zm4 4h-2v2h2v-2zM9 3H7v2h2V3zm4 8h-2v2h2v-2zM5 3H3v2h2V3zm8 4h-2v2h2V7zm4 4h-2v2h2v-2zm-4-8h-2v2h2V3zm4 0h-2v2h2V3zm2 10h2v-2h-2v2zm0 4h2v-2h-2v2zM5 7H3v2h2V7zm14-4v2h2V3h-2zm0 6h2V7h-2v2zM5 11H3v2h2v-2zM3 21h18v-2H3v2zm2-6H3v2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineBorderClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5h2V3H7v2zm0 8h2v-2H7v2zm0 8h2v-2H7v2zm4-4h2v-2h-2v2zm0 4h2v-2h-2v2zm-8 0h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2V7H3v2zm0-4h2V3H3v2zm8 8h2v-2h-2v2zm8 4h2v-2h-2v2zm0-4h2v-2h-2v2zm0 8h2v-2h-2v2zm0-12h2V7h-2v2zm-8 0h2V7h-2v2zm8-6v2h2V3h-2zm-8 2h2V3h-2v2zm4 16h2v-2h-2v2zm0-8h2v-2h-2v2zm0-8h2V3h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBorderColor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.81 8.94l-3.75-3.75L4 14.25V18h3.75l9.06-9.06zM6 16v-.92l7.06-7.06.92.92L6.92 16H6zM19.71 6.04a.996.996 0 000-1.41l-2.34-2.34a1.001 1.001 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83zM2 20h20v4H2z\"}}]})(props);\n};\nexport function MdOutlineBorderHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h2v-2H3v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zm4 4h2v-2H7v2zM5 3H3v2h2V3zm4 0H7v2h2V3zm8 0h-2v2h2V3zm-4 4h-2v2h2V7zm0-4h-2v2h2V3zm6 14h2v-2h-2v2zm-8 4h2v-2h-2v2zm-8-8h18v-2H3v2zM19 3v2h2V3h-2zm0 6h2V7h-2v2zm-8 8h2v-2h-2v2zm4 4h2v-2h-2v2zm4 0h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBorderInner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h2v-2H3v2zm4 0h2v-2H7v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zM9 3H7v2h2V3zM5 3H3v2h2V3zm12 0h-2v2h2V3zm2 6h2V7h-2v2zm0-6v2h2V3h-2zm-4 18h2v-2h-2v2zM13 3h-2v8H3v2h8v8h2v-8h8v-2h-8V3zm6 18h2v-2h-2v2zm0-4h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBorderLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 21h2v-2h-2v2zm0-4h2v-2h-2v2zm0-12h2V3h-2v2zm0 4h2V7h-2v2zm0 4h2v-2h-2v2zm-4 8h2v-2H7v2zM7 5h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2V3H3v18zM19 9h2V7h-2v2zm-4 12h2v-2h-2v2zm4-4h2v-2h-2v2zm0-14v2h2V3h-2zm0 10h2v-2h-2v2zm0 8h2v-2h-2v2zm-4-8h2v-2h-2v2zm0-8h2V3h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBorderOuter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v2h2V7zm0 4h-2v2h2v-2zm4 0h-2v2h2v-2zM3 3v18h18V3H3zm16 16H5V5h14v14zm-6-4h-2v2h2v-2zm-4-4H7v2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineBorderRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h2v-2H7v2zM3 5h2V3H3v2zm4 0h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2v-2H3v2zm8 0h2v-2h-2v2zm-8-8h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm8 8h2v-2h-2v2zm4-4h2v-2h-2v2zm4-10v18h2V3h-2zm-4 18h2v-2h-2v2zm0-16h2V3h-2v2zm-4 8h2v-2h-2v2zm0-8h2V3h-2v2zm0 4h2V7h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBorderStyle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21h2v-2h-2v2zm4 0h2v-2h-2v2zM7 21h2v-2H7v2zm4 0h2v-2h-2v2zm8-4h2v-2h-2v2zm0-4h2v-2h-2v2zM3 3v18h2V5h16V3H3zm16 6h2V7h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBorderTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21h2v-2H7v2zm0-8h2v-2H7v2zm4 0h2v-2h-2v2zm0 8h2v-2h-2v2zm-8-4h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2v-2H3v2zm0-4h2V7H3v2zm8 8h2v-2h-2v2zm8-8h2V7h-2v2zm0 4h2v-2h-2v2zM3 3v2h18V3H3zm16 14h2v-2h-2v2zm-4 4h2v-2h-2v2zM11 9h2V7h-2v2zm8 12h2v-2h-2v2zm-4-8h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBorderVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9h2V7H3v2zm0-4h2V3H3v2zm4 16h2v-2H7v2zm0-8h2v-2H7v2zm-4 0h2v-2H3v2zm0 8h2v-2H3v2zm0-4h2v-2H3v2zM7 5h2V3H7v2zm12 12h2v-2h-2v2zm-8 4h2V3h-2v18zm8 0h2v-2h-2v2zm0-8h2v-2h-2v2zm0-10v2h2V3h-2zm0 6h2V7h-2v2zm-4-4h2V3h-2v2zm0 16h2v-2h-2v2zm0-8h2v-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineBubbleChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm8.01-1c-1.65 0-3 1.35-3 3s1.35 3 3 3 3-1.35 3-3-1.35-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM16.5 3C13.47 3 11 5.47 11 8.5s2.47 5.5 5.5 5.5S22 11.53 22 8.5 19.53 3 16.5 3zm0 9c-1.93 0-3.5-1.57-3.5-3.5S14.57 5 16.5 5 20 6.57 20 8.5 18.43 12 16.5 12z\"}}]})(props);\n};\nexport function MdOutlineChecklistRtl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7H2v2h9V7zm0 8H2v2h9v-2zm5.34-4L12.8 7.46l1.41-1.41 2.12 2.12 4.24-4.24L22 5.34 16.34 11zm0 8l-3.54-3.54 1.41-1.41 2.12 2.12 4.24-4.24L22 13.34 16.34 19z\"}}]})(props);\n};\nexport function MdOutlineChecklist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7h-9v2h9V7zm0 8h-9v2h9v-2zM5.54 11L2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 11zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 19z\"}}]})(props);\n};\nexport function MdOutlineDragHandle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9H4v2h16V9zM4 15h16v-2H4v2z\"}}]})(props);\n};\nexport function MdOutlineDraw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.85 10.39l1.06-1.06c.78-.78.78-2.05 0-2.83L18.5 5.09c-.78-.78-2.05-.78-2.83 0l-1.06 1.06 4.24 4.24zm-4.24 1.42L7.41 19H6v-1.41l7.19-7.19 1.42 1.41zm-1.42-4.25L4 16.76V21h4.24l9.19-9.19-4.24-4.25zM19 17.5c0 2.19-2.54 3.5-5 3.5-.55 0-1-.45-1-1s.45-1 1-1c1.54 0 3-.73 3-1.5 0-.47-.48-.87-1.23-1.2l1.48-1.48c1.07.63 1.75 1.47 1.75 2.68zM4.58 13.35C3.61 12.79 3 12.06 3 11c0-1.8 1.89-2.63 3.56-3.36C7.59 7.18 9 6.56 9 6c0-.41-.78-1-2-1-1.26 0-1.8.61-1.83.64-.35.41-.98.46-1.4.12a.992.992 0 01-.15-1.38C3.73 4.24 4.76 3 7 3s4 1.32 4 3c0 1.87-1.93 2.72-3.64 3.47C6.42 9.88 5 10.5 5 11c0 .31.43.6 1.07.86l-1.49 1.49z\"}}]})(props);\n};\nexport function MdOutlineEditNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 10h11v2H3v-2zm0-2h11V6H3v2zm0 8h7v-2H3v2zm15.01-3.13l.71-.71a.996.996 0 011.41 0l.71.71c.39.39.39 1.02 0 1.41l-.71.71-2.12-2.12zm-.71.71l-5.3 5.3V21h2.12l5.3-5.3-2.12-2.12z\"}}]})(props);\n};\nexport function MdOutlineFormatAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z\"}}]})(props);\n};\nexport function MdOutlineFormatAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zm0-6v2h18V3H3z\"}}]})(props);\n};\nexport function MdOutlineFormatAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z\"}}]})(props);\n};\nexport function MdOutlineFormatAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z\"}}]})(props);\n};\nexport function MdOutlineFormatBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineFormatClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8V5H6.39l3 3h1.83l-.55 1.28 2.09 2.1L14.21 8zM3.41 4.86L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21l1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineFormatColorFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15a1.49 1.49 0 000 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5zM2 20h20v4H2v-4z\"}}]})(props);\n};\nexport function MdOutlineFormatColorReset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.36c1.53 2 3.08 4.43 3.71 6.24l2.23 2.23c.03-.27.06-.55.06-.83 0-3.98-6-10.8-6-10.8s-1.18 1.35-2.5 3.19l1.44 1.44c.34-.51.7-1 1.06-1.47zM5.41 5.14L4 6.55l3.32 3.32C6.55 11.33 6 12.79 6 14c0 3.31 2.69 6 6 6 1.52 0 2.9-.57 3.95-1.5l2.63 2.63L20 19.72 5.41 5.14zM12 18c-2.21 0-4-1.79-4-4 0-.69.32-1.62.81-2.64l5.72 5.72c-.7.56-1.57.92-2.53.92z\"}}]})(props);\n};\nexport function MdOutlineFormatColorText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 20h20v4H2v-4zm3.49-3h2.42l1.27-3.58h5.65L16.09 17h2.42L13.25 3h-2.5L5.49 17zm4.42-5.61l2.03-5.79h.12l2.03 5.79H9.91z\"}}]})(props);\n};\nexport function MdOutlineFormatIndentDecrease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17h10v-2H11v2zm-8-5l4 4V8l-4 4zm0 9h18v-2H3v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\"}}]})(props);\n};\nexport function MdOutlineFormatIndentIncrease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h18v-2H3v2zM3 8v8l4-4-4-4zm8 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\"}}]})(props);\n};\nexport function MdOutlineFormatItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4h-8z\"}}]})(props);\n};\nexport function MdOutlineFormatLineSpacing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm4-2v2h12V5H10zm0 14h12v-2H10v2zm0-6h12v-2H10v2z\"}}]})(props);\n};\nexport function MdOutlineFormatListBulleted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\"}}]})(props);\n};\nexport function MdOutlineFormatListNumberedRtl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 17h2v.5h-1v1h1v.5h-2v1h3v-4h-3v1zm1-9h1V4h-2v1h1v3zm-1 3h1.8L18 13.1v.9h3v-1h-1.8l1.8-2.1V10h-3v1zM2 5h14v2H2V5zm0 12h14v2H2v-2zm0-6h14v2H2v-2z\"}}]})(props);\n};\nexport function MdOutlineFormatListNumbered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\"}}]})(props);\n};\nexport function MdOutlineFormatPaint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4V3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6h1v4H9v11c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-9h8V4h-3zm-2 2H6V4h10v2z\"}}]})(props);\n};\nexport function MdOutlineFormatQuote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.62 18h-5.24l2-4H13V6h8v7.24L18.62 18zm-2-2h.76L19 12.76V8h-4v4h3.62l-2 4zm-8 2H3.38l2-4H3V6h8v7.24L8.62 18zm-2-2h.76L9 12.76V8H5v4h3.62l-2 4z\"}}]})(props);\n};\nexport function MdOutlineFormatShapes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 7V1h-6v2H7V1H1v6h2v10H1v6h6v-2h10v2h6v-6h-2V7h2zM3 3h2v2H3V3zm2 18H3v-2h2v2zm12-2H7v-2H5V7h2V5h10v2h2v10h-2v2zm4 2h-2v-2h2v2zM19 5V3h2v2h-2zm-5.27 9h-3.49l-.73 2H7.89l3.4-9h1.4l3.41 9h-1.63l-.74-2zm-3.04-1.26h2.61L12 8.91l-1.31 3.83z\"}}]})(props);\n};\nexport function MdOutlineFormatSize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v3h5v12h3V7h5V4H9zm-6 8h3v7h3v-7h3V9H3v3z\"}}]})(props);\n};\nexport function MdOutlineFormatStrikethrough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z\"}}]})(props);\n};\nexport function MdOutlineFormatTextdirectionLToR (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v4c-1.1 0-2-.9-2-2s.9-2 2-2m8-2H9C6.79 2 5 3.79 5 6s1.79 4 4 4v5h2V4h2v11h2V4h2V2zm0 12v3H5v2h12v3l4-4-4-4z\"}}]})(props);\n};\nexport function MdOutlineFormatTextdirectionRToL (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4v4c-1.1 0-2-.9-2-2s.9-2 2-2m8-2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4v5h2V4h2v11h2V4h2V2zM8 14l-4 4 4 4v-3h12v-2H8v-3z\"}}]})(props);\n};\nexport function MdOutlineFormatUnderlined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\"}}]})(props);\n};\nexport function MdOutlineFunctions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7V4z\"}}]})(props);\n};\nexport function MdOutlineHeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6.99h3L12 3 8 6.99h3v10.02H8L12 21l4-3.99h-3z\"}}]})(props);\n};\nexport function MdOutlineHighlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14l3 3v5h6v-5l3-3V9H6v5zm2-3h8v2.17l-3 3V20h-2v-3.83l-3-3V11zm3-9h2v3h-2zM3.502 5.874L4.916 4.46l2.122 2.12-1.414 1.415zm13.458.708l2.123-2.12 1.413 1.416-2.123 2.12z\"}}]})(props);\n};\nexport function MdOutlineHorizontalDistribute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22H2V2h2v20zM22 2h-2v20h2V2zm-8.5 5h-3v10h3V7z\"}}]})(props);\n};\nexport function MdOutlineHorizontalRule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M4 11h16v2H4z\"}}]})(props);\n};\nexport function MdOutlineInsertChartOutlined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4zm2 2H5V5h14v14zm0-16H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineInsertChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7 10h2v7H7zm4-3h2v10h-2zm4 6h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineInsertComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v13.17L18.83 16H4V4h16m0-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4c0-1.1-.9-2-2-2zm-2 10H6v2h12v-2zm0-3H6v2h12V9zm0-3H6v2h12V6z\"}}]})(props);\n};\nexport function MdOutlineInsertDriveFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\"}}]})(props);\n};\nexport function MdOutlineInsertEmoticon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"}}]})(props);\n};\nexport function MdOutlineInsertInvitation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zm-2 5h-5v5h5v-5z\"}}]})(props);\n};\nexport function MdOutlineInsertLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"}}]})(props);\n};\nexport function MdOutlineInsertPhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z\"}}]})(props);\n};\nexport function MdOutlineLinearScale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 9.5c-1.03 0-1.9.62-2.29 1.5h-2.92c-.39-.88-1.26-1.5-2.29-1.5s-1.9.62-2.29 1.5H6.79c-.39-.88-1.26-1.5-2.29-1.5a2.5 2.5 0 000 5c1.03 0 1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5s1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5a2.5 2.5 0 000-5z\"}}]})(props);\n};\nexport function MdOutlineMargin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v18h18V3H3zm16 16H5V5h14v14zM11 7h2v2h-2V7zM7 7h2v2H7V7zm8 0h2v2h-2V7zm-8 4h2v2H7v-2zm4 0h2v2h-2v-2zm4 0h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdOutlineMergeType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\"}}]})(props);\n};\nexport function MdOutlineModeComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.17L18.83 16H4V4h16v13.17zM20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineModeEditOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h3.75L17.81 9.94l-3.75-3.75L3 17.25V21zm2-2.92l9.06-9.06.92.92L5.92 19H5v-.92zM18.37 3.29a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 000-1.41l-2.34-2.34z\"}}]})(props);\n};\nexport function MdOutlineModeEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 21h3.75L17.81 9.94l-3.75-3.75L3 17.25V21zm2-2.92l9.06-9.06.92.92L5.92 19H5v-.92zM18.37 3.29a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 000-1.41l-2.34-2.34z\"}}]})(props);\n};\nexport function MdOutlineMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 000-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z\"}}]})(props);\n};\nexport function MdOutlineMonetizationOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.31-8.86c-1.77-.45-2.34-.94-2.34-1.67 0-.84.79-1.43 2.1-1.43 1.38 0 1.9.66 1.94 1.64h1.71c-.05-1.34-.87-2.57-2.49-2.97V5H10.9v1.69c-1.51.32-2.72 1.3-2.72 2.81 0 1.79 1.49 2.69 3.66 3.21 1.95.46 2.34 1.15 2.34 1.87 0 .53-.39 1.39-2.1 1.39-1.6 0-2.23-.72-2.32-1.64H8.04c.1 1.7 1.36 2.66 2.86 2.97V19h2.34v-1.67c1.52-.29 2.72-1.16 2.73-2.77-.01-2.2-1.9-2.96-3.66-3.42z\"}}]})(props);\n};\nexport function MdOutlineMoneyOffCsred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 6.9c1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-.39.08-.75.21-1.1.36l1.51 1.51c.32-.08.69-.13 1.09-.13zM5.47 3.92L4.06 5.33 7.5 8.77c0 2.08 1.56 3.22 3.91 3.91l3.51 3.51c-.34.49-1.05.91-2.42.91-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c.96-.18 1.83-.55 2.46-1.12l2.22 2.22 1.41-1.41L5.47 3.92z\"}}]})(props);\n};\nexport function MdOutlineMoneyOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 6.9c1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-.39.08-.75.21-1.1.36l1.51 1.51c.32-.08.69-.13 1.09-.13zM5.47 3.92L4.06 5.33 7.5 8.77c0 2.08 1.56 3.22 3.91 3.91l3.51 3.51c-.34.49-1.05.91-2.42.91-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c.96-.18 1.83-.55 2.46-1.12l2.22 2.22 1.41-1.41L5.47 3.92z\"}}]})(props);\n};\nexport function MdOutlineMultilineChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6.92l-1.41-1.41-2.85 3.21C15.68 6.4 12.83 5 9.61 5 6.72 5 4.07 6.16 2 8l1.42 1.42C5.12 7.93 7.27 7 9.61 7c2.74 0 5.09 1.26 6.77 3.24l-2.88 3.24-4-4L2 16.99l1.5 1.5 6-6.01 4 4 4.05-4.55c.75 1.35 1.25 2.9 1.44 4.55H21c-.22-2.3-.95-4.39-2.04-6.14L22 6.92z\"}}]})(props);\n};\nexport function MdOutlineNotes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z\"}}]})(props);\n};\nexport function MdOutlinePadding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2zm16 14H5V5h14v14zM11 7h2v2h-2V7zM7 7h2v2H7V7zm8 0h2v2h-2V7z\"}}]})(props);\n};\nexport function MdOutlinePieChartOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 2.07c3.61.45 6.48 3.33 6.93 6.93H13V4.07zM4 12c0-4.06 3.07-7.44 7-7.93v15.87c-3.93-.5-7-3.88-7-7.94zm9 7.93V13h6.93A8.002 8.002 0 0113 19.93z\"}}]})(props);\n};\nexport function MdOutlinePieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm7.93 9H13V4.07c3.61.45 6.48 3.32 6.93 6.93zM4 12c0-4.07 3.06-7.44 7-7.93v15.86c-3.94-.49-7-3.86-7-7.93zm9 7.93V13h6.93A8.002 8.002 0 0113 19.93z\"}}]})(props);\n};\nexport function MdOutlinePostAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 19.22H5V7h7V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-7h-2v7.22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2h-2v3h-3c.01.01 0 2 0 2h3v2.99c.01.01 2 0 2 0V7h3V5h-3V2zM7 9h8v2H7zM7 12v2h8v-2h-3zM7 15h8v2H7z\"}}]})(props);\n};\nexport function MdOutlinePublish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4h14v2H5zm0 10h4v6h6v-6h4l-7-7-7 7zm8-2v6h-2v-6H9.83L12 9.83 14.17 12H13z\"}}]})(props);\n};\nexport function MdOutlineQueryStats (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.88 18.47c.44-.7.7-1.51.7-2.39 0-2.49-2.01-4.5-4.5-4.5s-4.5 2.01-4.5 4.5 2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21.58 23 23 21.58l-3.12-3.11zm-3.8.11a2.5 2.5 0 010-5 2.5 2.5 0 010 5zm-.36-8.5c-.74.02-1.45.18-2.1.45l-.55-.83-3.8 6.18-3.01-3.52-3.63 5.81L1 17l5-8 3 3.5L13 6l2.72 4.08zm2.59.5c-.64-.28-1.33-.45-2.05-.49L21.38 2 23 3.18l-4.69 7.4z\"}}]})(props);\n};\nexport function MdOutlineScatterPlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-2c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5.6 17.6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineSchema (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9v2h-3V9H8.5V7H11V1H4v6h2.5v2H4v6h2.5v2H4v6h7v-6H8.5v-2H11v-2h3v2h7V9h-7zM6 3h3v2H6V3zm3 18H6v-2h3v2zm0-8H6v-2h3v2zm10 0h-3v-2h3v2z\"}}]})(props);\n};\nexport function MdOutlineScore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5l4-4 4 4 6-6v6zm0-8.5l-6 6-4-4-4 4V5h14v5.5zM13.5 9V6H12v6h1.5zm3.7 3l-2-3 2-3h-1.7l-2 3 2 3zM11 10.5H8.5v-.75H11V6H7v1.5h2.5v.75H7V12h4z\"}}]})(props);\n};\nexport function MdOutlineShortText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9h16v2H4V9zm0 4h10v2H4v-2z\"}}]})(props);\n};\nexport function MdOutlineShowChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99l1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineSpaceBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9v4H6V9H4v6h16V9h-2z\"}}]})(props);\n};\nexport function MdOutlineStackedLineChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19.99l7.5-7.51 4 4 7.09-7.97L22 9.92l-8.5 9.56-4-4-6 6.01-1.5-1.5zm1.5-4.5l6-6.01 4 4L22 3.92l-1.41-1.41-7.09 7.97-4-4L2 13.99l1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineStrikethroughS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.24 8.75c-.26-.48-.39-1.03-.39-1.67 0-.61.13-1.16.4-1.67.26-.5.63-.93 1.11-1.29a5.73 5.73 0 011.7-.83c.66-.19 1.39-.29 2.18-.29.81 0 1.54.11 2.21.34.66.22 1.23.54 1.69.94.47.4.83.88 1.08 1.43s.38 1.15.38 1.81h-3.01c0-.31-.05-.59-.15-.85-.09-.27-.24-.49-.44-.68-.2-.19-.45-.33-.75-.44-.3-.1-.66-.16-1.06-.16-.39 0-.74.04-1.03.13s-.53.21-.72.36c-.19.16-.34.34-.44.55-.1.21-.15.43-.15.66 0 .48.25.88.74 1.21.38.25.77.48 1.41.7H7.39c-.05-.08-.11-.17-.15-.25zM21 12v-2H3v2h9.62c.18.07.4.14.55.2.37.17.66.34.87.51s.35.36.43.57c.07.2.11.43.11.69 0 .23-.05.45-.14.66-.09.2-.23.38-.42.53-.19.15-.42.26-.71.35-.29.08-.63.13-1.01.13-.43 0-.83-.04-1.18-.13s-.66-.23-.91-.42c-.25-.19-.45-.44-.59-.75s-.25-.76-.25-1.21H6.4c0 .55.08 1.13.24 1.58s.37.85.65 1.21c.28.35.6.66.98.92.37.26.78.48 1.22.65.44.17.9.3 1.38.39.48.08.96.13 1.44.13.8 0 1.53-.09 2.18-.28s1.21-.45 1.67-.79c.46-.34.82-.77 1.07-1.27s.38-1.07.38-1.71c0-.6-.1-1.14-.31-1.61-.05-.11-.11-.23-.17-.33H21V12z\"}}]})(props);\n};\nexport function MdOutlineSubscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18h-2v1h3v1h-4v-2c0-.55.45-1 1-1h2v-1h-3v-1h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 18h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 4h-2.68l-3.07 4.99h-.12L8.85 4H6.19l4.32 6.73L5.88 18z\"}}]})(props);\n};\nexport function MdOutlineSuperscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7h-2v1h3v1h-4V7c0-.55.45-1 1-1h2V5h-3V4h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM5.88 20h2.66l3.4-5.42h.12l3.4 5.42h2.66l-4.65-7.27L17.81 6h-2.68l-3.07 4.99h-.12L8.85 6H6.19l4.32 6.73L5.88 20z\"}}]})(props);\n};\nexport function MdOutlineTableChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 2v3H5V5h15zm-5 14h-5v-9h5v9zM5 10h3v9H5v-9zm12 9v-9h3v9h-3z\"}}]})(props);\n};\nexport function MdOutlineTableRows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 2v3H5V5h14zm0 5v4H5v-4h14zM5 19v-3h14v3H5z\"}}]})(props);\n};\nexport function MdOutlineTextFields (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z\"}}]})(props);\n};\nexport function MdOutlineTitle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4v3h5.5v12h3V7H19V4H5z\"}}]})(props);\n};\nexport function MdOutlineVerticalAlignBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z\"}}]})(props);\n};\nexport function MdOutlineVerticalAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 19h3v4h2v-4h3l-4-4-4 4zm8-14h-3V1h-2v4H8l4 4 4-4zM4 11v2h16v-2H4z\"}}]})(props);\n};\nexport function MdOutlineVerticalAlignTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z\"}}]})(props);\n};\nexport function MdOutlineVerticalDistribute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 2v2H2V2h20zM7 10.5v3h10v-3H7zM2 20v2h20v-2H2z\"}}]})(props);\n};\nexport function MdOutlineWrapText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\"}}]})(props);\n};\nexport function MdOutlineApproval (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 16v6h16v-6c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2zm14 2H6v-2h12v2zM12 2C9.24 2 7 4.24 7 7l5 7 5-7c0-2.76-2.24-5-5-5zm0 9L9 7c0-1.66 1.34-3 3-3s3 1.34 3 3l-3 4z\"}}]})(props);\n};\nexport function MdOutlineAttachEmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6l8 5 8-5v3h2V4c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2L1 16c0 1.1.9 2 2 2h10v-2H3V6zm16-2l-8 5-8-5h16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14v4c0 1.1-.9 2-2 2s-2-.9-2-2v-4.5c0-.28.22-.5.5-.5s.5.22.5.5V18h2v-4.5a2.5 2.5 0 00-5 0V18c0 2.21 1.79 4 4 4s4-1.79 4-4v-4h-2z\"}}]})(props);\n};\nexport function MdOutlineAttachment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 16H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h12.5a2.5 2.5 0 010 5H9c-.55 0-1-.45-1-1s.45-1 1-1h9.5V9.5H9a2.5 2.5 0 000 5h10.5c2.21 0 4-1.79 4-4s-1.79-4-4-4H7c-3.04 0-5.5 2.46-5.5 5.5s2.46 5.5 5.5 5.5h11.5V16z\"}}]})(props);\n};\nexport function MdOutlineCloudCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.29-9.81a4.373 4.373 0 00-8.17-1.16A3.483 3.483 0 005 12.5C5 14.43 6.57 16 8.5 16h7.58c1.61 0 2.92-1.31 2.92-2.92 0-1.54-1.2-2.79-2.71-2.89zM16 14H8.5c-.83 0-1.5-.67-1.5-1.5S7.67 11 8.5 11h.9l.49-1.05a2.377 2.377 0 014.44.63l.28 1.42H16c.55 0 1 .45 1 1s-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineCloudDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95A5.469 5.469 0 0112 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11A2.98 2.98 0 0122 15c0 1.65-1.35 3-3 3zm-9-3.82l-2.09-2.09L6.5 13.5 10 17l6.01-6.01-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineCloudDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95A5.469 5.469 0 0112 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11A2.98 2.98 0 0122 15c0 1.65-1.35 3-3 3zm-5.55-8h-2.9v3H8l4 4 4-4h-2.55z\"}}]})(props);\n};\nexport function MdOutlineCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 15c0-2.64-2.05-4.78-4.65-4.96A7.49 7.49 0 0012 4c-1.33 0-2.57.36-3.65.97l1.49 1.49C10.51 6.17 11.23 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19a2.996 2.996 0 011.79 5.4l1.41 1.41c1.09-.92 1.8-2.27 1.8-3.81zM4.41 3.86L3 5.27l2.77 2.77h-.42A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h11.73l2 2 1.41-1.41L4.41 3.86zM6 18c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73l8 8H6z\"}}]})(props);\n};\nexport function MdOutlineCloudQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdOutlineCloudUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95A5.469 5.469 0 0112 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11A2.98 2.98 0 0122 15c0 1.65-1.35 3-3 3zM8 13h2.55v3h2.9v-3H16l-4-4z\"}}]})(props);\n};\nexport function MdOutlineCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11A2.98 2.98 0 0122 15c0 1.65-1.35 3-3 3H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95A5.469 5.469 0 0112 6m0-2C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96A7.49 7.49 0 0012 4z\"}}]})(props);\n};\nexport function MdOutlineCreateNewFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm0 12H4V6h5.17l2 2H20v10zm-8-4h2v2h2v-2h2v-2h-2v-2h-2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineDownloadDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18h14v2H5v-2zm4.6-2.7L5 10.7l2-1.9 2.6 2.6L17 4l2 2-9.4 9.3z\"}}]})(props);\n};\nexport function MdOutlineDownloadForOffline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm2.59-11.41L16 10l-4 4-4-4 1.41-1.41L11 10.17V6h2v4.17l1.59-1.58zM17 17H7v-2h10v2z\"}}]})(props);\n};\nexport function MdOutlineDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h-4V3H9v6H5l7 7 7-7zm-8 2V5h2v6h1.17L12 13.17 9.83 11H11zm-6 7h14v2H5z\"}}]})(props);\n};\nexport function MdOutlineDownloading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.32 4.26A9.949 9.949 0 0013 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1a7.941 7.941 0 011.62 3.9zm-1.62 5.9l1.43 1.43a9.981 9.981 0 002.21-5.32h-2.02a7.945 7.945 0 01-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm2.59-9.34L13 13.17V7h-2v6.17l-2.59-2.59L7 12l5 5 5-5-1.41-1.41zM11 19.93v2.02c-5.05-.5-9-4.76-9-9.95s3.95-9.45 9-9.95v2.02C7.05 4.56 4 7.92 4 12s3.05 7.44 7 7.93z\"}}]})(props);\n};\nexport function MdOutlineDriveFileMoveRtl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10zm-6.59-2.41L12 17l-4-4 4-4 1.41 1.41L11.83 12H16v2h-4.17l1.58 1.59z\"}}]})(props);\n};\nexport function MdOutlineDriveFileMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l1.41 1.41.59.59H20v10zm-7.84-6H8v2h4.16l-1.59 1.59L11.99 17 16 13.01 11.99 9l-1.41 1.41L12.16 12z\"}}]})(props);\n};\nexport function MdOutlineDriveFileRenameOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 16l-4 4h10v-4zM12.06 7.19L3 16.25V20h3.75l9.06-9.06-3.75-3.75zM5.92 18H5v-.92l7.06-7.06.92.92L5.92 18zM18.71 8.04a.996.996 0 000-1.41l-2.34-2.34a1.001 1.001 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"}}]})(props);\n};\nexport function MdOutlineDriveFolderUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10zM9.41 14.42L11 12.84V17h2v-4.16l1.59 1.59L16 13.01 12.01 9 8 13.01l1.41 1.41z\"}}]})(props);\n};\nexport function MdOutlineFileDownloadDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.13 5.41L18.72 4l-9.19 9.19-4.25-4.24-1.41 1.41 5.66 5.66zM5 18h14v2H5z\"}}]})(props);\n};\nexport function MdOutlineFileDownloadOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 15.17V15h2v2.17l-2-2zm-2.59-2.58L17 11l-1.41-1.41L14 11.17l1.41 1.42zM13 10.17V4h-2v4.17l2 2zm8.19 11.02l-1.78-1.78-16.6-16.6-1.42 1.41 6.19 6.19L7 11l5 5 .59-.59L15.17 18H6v-3H4v3c0 1.1.9 2 2 2h11.17l2.61 2.61 1.41-1.42z\"}}]})(props);\n};\nexport function MdOutlineFileDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3h-2zm-1-4l-1.41-1.41L13 12.17V4h-2v8.17L8.41 9.59 7 11l5 5 5-5z\"}}]})(props);\n};\nexport function MdOutlineFileUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3h-2zM7 9l1.41 1.41L11 7.83V16h2V7.83l2.59 2.58L17 9l-5-5-5 5z\"}}]})(props);\n};\nexport function MdOutlineFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\"}}]})(props);\n};\nexport function MdOutlineFolderShared (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10zm-5-5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 4h8v-1c0-1.33-2.67-2-4-2s-4 .67-4 2v1z\"}}]})(props);\n};\nexport function MdOutlineFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.17 6l2 2H20v10H4V6h5.17M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z\"}}]})(props);\n};\nexport function MdOutlineGridView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v8h8V3H3zm6 6H5V5h4v4zm-6 4v8h8v-8H3zm6 6H5v-4h4v4zm4-16v8h8V3h-8zm6 6h-4V5h4v4zm-6 4v8h8v-8h-8zm6 6h-4v-4h4v4z\"}}]})(props);\n};\nexport function MdOutlineRequestQuote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v4h5v12H6zm5-1h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4v-2h-2V9h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1z\"}}]})(props);\n};\nexport function MdOutlineRuleFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.83 16L5 13.17l1.41-1.41 1.41 1.41 3.54-3.54 1.41 1.41L7.83 16zm9.58-3L19 14.59 17.59 16 16 14.41 14.41 16 13 14.59 14.59 13 13 11.41 14.41 10 16 11.59 17.59 10 19 11.41 17.41 13zM20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10z\"}}]})(props);\n};\nexport function MdOutlineSnippetFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10zm-2.5-5.88v3.38h-3v-5h1.38l1.62 1.62zM13 9v8h6v-5.5L16.5 9H13z\"}}]})(props);\n};\nexport function MdOutlineTextSnippet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.17 5L19 9.83V19H5V5h9.17m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9.83c0-.53-.21-1.04-.59-1.41l-4.83-4.83c-.37-.38-.88-.59-1.41-.59zM7 15h10v2H7v-2zm0-4h10v2H7v-2zm0-4h7v2H7V7z\"}}]})(props);\n};\nexport function MdOutlineTopic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16.77c.68 0 1.23-.56 1.23-1.23V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10zm-2-6H6v-2h12v2zm-4 4H6v-2h8v2z\"}}]})(props);\n};\nexport function MdOutlineUploadFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11 8 15.01z\"}}]})(props);\n};\nexport function MdOutlineUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h6v-6h4l-7-7-7 7h4v6zm3-10.17L14.17 8H13v6h-2V8H9.83L12 5.83zM5 18h14v2H5z\"}}]})(props);\n};\nexport function MdOutlineWorkspaces (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 15c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-8c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 12c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0-2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z\"}}]})(props);\n};\nexport function MdOutlineBrowserNotSupported (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v10.5l1.95 1.95c.03-.15.05-.3.05-.45V6c0-1.1-.9-2-2-2H6.5l2 2H19zM3.22 3.32L1.95 4.59 3 5.64V18c0 1.1.9 2 2 2h12.36l2.06 2.06 1.27-1.27L3.22 3.32zM15 18H5V7.64L15.36 18H15z\"}}]})(props);\n};\nexport function MdOutlineCastConnected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 019 9h2c0-6.08-4.93-11-11-11zm20-7H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 7v2h12v6h-3v2h5V7z\"}}]})(props);\n};\nexport function MdOutlineCastForEducation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 019 9h2c0-6.08-4.93-11-11-11zm10 1.09v2L14.5 15l3.5-1.91v-2L14.5 13 11 11.09zM14.5 6L9 9l5.5 3L20 9l-5.5-3z\"}}]})(props);\n};\nexport function MdOutlineCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 019 9h2c0-6.08-4.93-11-11-11z\"}}]})(props);\n};\nexport function MdOutlineComputer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z\"}}]})(props);\n};\nexport function MdOutlineConnectedTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v2h8v-2h4c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2zm0 14H4V5h16v12zM5 14v2h2c0-1.11-.89-2-2-2zm0-3v1.43c1.97 0 3.57 1.6 3.57 3.57H10c0-2.76-2.24-5-5-5zm0-3v1.45c3.61 0 6.55 2.93 6.55 6.55H13c0-4.42-3.59-8-8-8z\"}}]})(props);\n};\nexport function MdOutlineDesktopMac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7l-2 3v1h8v-1l-2-3h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 12H3V4h18v10z\"}}]})(props);\n};\nexport function MdOutlineDesktopWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z\"}}]})(props);\n};\nexport function MdOutlineDeveloperBoardOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.83 5H18v10.17L19.83 17H22v-2h-2v-2h2v-2h-2V9h2V7h-2V5c0-1.1-.9-2-2-2H5.83l2 2zM12 9.17V7h4v3h-3.17L12 9.17zM9.83 7H11v1.17L9.83 7zm4 4H16v2.17L13.83 11zM18 21c.06 0 .11 0 .16-.01l2.32 2.32 1.41-1.41L2.1 2.1.69 3.51l1.32 1.32C2 4.89 2 4.94 2 5v14c0 1.1.9 2 2 2h14zM4 19V6.83l2 2V12h3.17l1 1H6v4h5v-3.17l1 1V17h2.17l2 2H4z\"}}]})(props);\n};\nexport function MdOutlineDeveloperBoard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9V7h-2V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2v-2h-2V9h2zm-4 10H4V5h14v14zM6 13h5v4H6v-4zm6-6h4v3h-4V7zM6 7h5v5H6V7zm6 4h4v6h-4v-6z\"}}]})(props);\n};\nexport function MdOutlineDeviceHub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z\"}}]})(props);\n};\nexport function MdOutlineDeviceUnknown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14zM12 6.72c-1.96 0-3.5 1.52-3.5 3.47h1.75c0-.93.82-1.75 1.75-1.75s1.75.82 1.75 1.75c0 1.75-2.63 1.57-2.63 4.45h1.76c0-1.96 2.62-2.19 2.62-4.45 0-1.96-1.54-3.47-3.5-3.47zM11 16h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdOutlineDevicesOther (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6h18V4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V6zm10 6H9v1.78c-.61.55-1 1.33-1 2.22 0 .89.39 1.67 1 2.22V20h4v-1.78c.61-.55 1-1.34 1-2.22s-.39-1.67-1-2.22V12zm-2 5.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM22 8h-6c-.5 0-1 .5-1 1v10c0 .5.5 1 1 1h6c.5 0 1-.5 1-1V9c0-.5-.5-1-1-1zm-1 10h-4v-8h4v8z\"}}]})(props);\n};\nexport function MdOutlineDock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 23h8v-2H8v2zm8-21.99L8 1c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM16 15H8V5h8v10z\"}}]})(props);\n};\nexport function MdOutlineEarbudsBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7h-1V6h-2v1h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 9h-2V9h2v7zm-6-6.62C14 7.51 12.49 6 10.62 6S7.25 7.51 7.25 9.38v5.25c0 1.04-.84 1.88-1.88 1.88s-1.87-.85-1.87-1.89v-4.7c.16.05.33.08.5.08 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2v6.62C2 16.49 3.51 18 5.38 18s3.38-1.51 3.38-3.38V9.38c0-1.04.84-1.88 1.88-1.88s1.88.84 1.88 1.88v4.7c-.18-.05-.35-.08-.52-.08-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2V9.38z\"}}]})(props);\n};\nexport function MdOutlineEarbuds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3c-2.76 0-5 2.24-5 5v8c0 1.66-1.34 3-3 3s-3-1.34-3-3V9h.83C7.44 9 8.89 7.82 9 6.21A3 3 0 006.2 3C4.44 2.89 3 4.42 3 6.19V16c0 2.76 2.24 5 5 5s5-2.24 5-5V8c0-1.66 1.34-3 3-3s3 1.34 3 3v7h-.83c-1.61 0-3.06 1.18-3.17 2.79A3 3 0 0017.8 21c1.76.12 3.2-1.42 3.2-3.18V8c0-2.76-2.24-5-5-5zM5 6c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1H5V6zm14 12c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1h1v1z\"}}]})(props);\n};\nexport function MdOutlineGamepad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4v2.67l-1 1-1-1V4h2m7 7v2h-2.67l-1-1 1-1H20M6.67 11l1 1-1 1H4v-2h2.67M12 16.33l1 1V20h-2v-2.67l1-1M15 2H9v5.5l3 3 3-3V2zm7 7h-5.5l-3 3 3 3H22V9zM7.5 9H2v6h5.5l3-3-3-3zm4.5 4.5l-3 3V22h6v-5.5l-3-3z\"}}]})(props);\n};\nexport function MdOutlineHeadphonesBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7h-1V6h-2v1h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 9h-2V9h2v7zM8 6c-3.31 0-6 2.69-6 6v4c0 1.1.9 2 2 2h2v-5H3.5v-1c0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5v1H10v5h2c1.1 0 2-.9 2-2v-4c0-3.31-2.69-6-6-6z\"}}]})(props);\n};\nexport function MdOutlineHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3a9 9 0 00-9 9v7c0 1.1.9 2 2 2h4v-8H5v-1c0-3.87 3.13-7 7-7s7 3.13 7 7v1h-4v8h4c1.1 0 2-.9 2-2v-7a9 9 0 00-9-9zM7 15v4H5v-4h2zm12 4h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdOutlineHeadsetMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14v4h-2v-4h2M7 14v4H6c-.55 0-1-.45-1-1v-3h2m5-13a9 9 0 00-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10a9 9 0 00-9-9z\"}}]})(props);\n};\nexport function MdOutlineHeadsetOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c3.87 0 7 3.13 7 7v1h-4v.17L16.83 14H19v2.17l2 2V11a9 9 0 00-9-9c-2.02 0-3.88.67-5.38 1.8l1.43 1.43A6.878 6.878 0 0112 4zM2.1 2.1L.69 3.51l3.33 3.33A8.98 8.98 0 003 11v7c0 1.1.9 2 2 2h4v-8H5v-1c0-.94.19-1.83.52-2.65L15 17.83V20h2.17l1 1H12v2h7c.34 0 .65-.09.93-.24l.55.55 1.41-1.41L2.1 2.1zM7 14v4H5v-4h2z\"}}]})(props);\n};\nexport function MdOutlineHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14v3c0 .55-.45 1-1 1h-1v-4h2M7 14v4H6c-.55 0-1-.45-1-1v-3h2m5-13a9 9 0 00-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7a9 9 0 00-9-9z\"}}]})(props);\n};\nexport function MdOutlineHomeMax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5H5C2.79 5 1 6.79 1 9v5c0 2.21 1.79 4 4 4h2v1h10v-1h2c2.21 0 4-1.79 4-4V9c0-2.21-1.79-4-4-4zm2 9c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v5z\"}}]})(props);\n};\nexport function MdOutlineHomeMini (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5C4.19 5 2 9.48 2 12c0 3.86 3.13 7 6.99 7h6.02C17.7 19 22 16.92 22 12c0 0 0-7-10-7zm0 2c7.64 0 7.99 4.51 8 5H4c0-.2.09-5 8-5zm2.86 10H9.14c-2.1 0-3.92-1.24-4.71-3h15.15c-.8 1.76-2.62 3-4.72 3z\"}}]})(props);\n};\nexport function MdOutlineKeyboardAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 15H3V6h18v13zM9 8h2v2H9V8zM5 8h2v2H5V8zm3 8h8v1H8v-1zm5-8h2v2h-2V8zm-4 4h2v2H9v-2zm-4 0h2v2H5v-2zm8 0h2v2h-2v-2zm4-4h2v2h-2V8zm0 4h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdOutlineKeyboardArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineKeyboardArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineKeyboardArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineKeyboardArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z\"}}]})(props);\n};\nexport function MdOutlineKeyboardBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21v-2z\"}}]})(props);\n};\nexport function MdOutlineKeyboardCapslock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.41L16.59 13 18 11.59l-6-6-6 6L7.41 13 12 8.41zM6 18h12v-2H6v2z\"}}]})(props);\n};\nexport function MdOutlineKeyboardHide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.1 0-1.99.9-1.99 2L2 15c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H4V5h16v10zm-9-9h2v2h-2zm0 3h2v2h-2zM8 6h2v2H8zm0 3h2v2H8zM5 9h2v2H5zm0-3h2v2H5zm3 6h8v2H8zm6-3h2v2h-2zm0-3h2v2h-2zm3 3h2v2h-2zm0-3h2v2h-2zm-5 17l4-4H8z\"}}]})(props);\n};\nexport function MdOutlineKeyboardReturn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7h-2z\"}}]})(props);\n};\nexport function MdOutlineKeyboardTab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.59 7.41L15.17 11H1v2h14.17l-3.59 3.59L13 18l6-6-6-6-1.41 1.41zM20 6v12h2V6h-2z\"}}]})(props);\n};\nexport function MdOutlineKeyboardVoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm-1.2-9.1c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2s-1.2-.54-1.2-1.2V5.9zm6.5 6.1c0 3-2.54 5.1-5.3 5.1S6.7 15 6.7 12H5c0 3.41 2.72 6.23 6 6.72V22h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z\"}}]})(props);\n};\nexport function MdOutlineKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7v10H4V7h16m0-2H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2zm0 3h2v2h-2zM8 8h2v2H8zm0 3h2v2H8zm-3 0h2v2H5zm0-3h2v2H5zm3 6h8v2H8zm6-3h2v2h-2zm0-3h2v2h-2zm3 3h2v2h-2zm0-3h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineLaptopChromebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18V3H2v15H0v2h24v-2h-2zm-8 0h-4v-1h4v1zm6-3H4V5h16v10z\"}}]})(props);\n};\nexport function MdOutlineLaptopMac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineLaptopWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v-1c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2v1H0v2h24v-2h-4zM4 5h16v10H4V5z\"}}]})(props);\n};\nexport function MdOutlineLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z\"}}]})(props);\n};\nexport function MdOutlineMemory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 9H9v6h6V9zm-2 4h-2v-2h2v2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2zm-4 6H7V7h10v10z\"}}]})(props);\n};\nexport function MdOutlineMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h3l-1 1v2h12v-2l-1-1h3c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 13H4V5h16v11z\"}}]})(props);\n};\nexport function MdOutlineMouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9c-.04-4.39-3.6-7.93-8-7.93S4.04 4.61 4 9v6c0 4.42 3.58 8 8 8s8-3.58 8-8V9zm-2 0h-5V3.16c2.81.47 4.96 2.9 5 5.84zm-7-5.84V9H6a6.005 6.005 0 015-5.84zM18 15c0 3.31-2.69 6-6 6s-6-2.69-6-6v-4h12v4z\"}}]})(props);\n};\nexport function MdOutlinePhoneAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm1 17H7V4h10v14zm-3 3h-4v-1h4v1z\"}}]})(props);\n};\nexport function MdOutlinePhoneIphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 1h-8A2.5 2.5 0 005 3.5v17A2.5 2.5 0 007.5 23h8a2.5 2.5 0 002.5-2.5v-17A2.5 2.5 0 0015.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z\"}}]})(props);\n};\nexport function MdOutlinePhonelinkOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6V4H7.39l2 2zm2 13V9c0-.55-.45-1-1-1h-6c-.55 0-1 .45-1 1v3.61l2 2V10h4v7h-1.61l2.93 2.93c.39-.13.68-.49.68-.93zM2.06 1.51L.65 2.92l1.82 1.82C2.18 5.08 2 5.52 2 6v11H0v3h17.73l2.35 2.35 1.41-1.41L2.06 1.51zM4 17V6.27L14.73 17H4z\"}}]})(props);\n};\nexport function MdOutlinePhonelink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z\"}}]})(props);\n};\nexport function MdOutlinePointOfSale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 2H7c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 4H7V4h10v2zm3 16H4c-1.1 0-2-.9-2-2v-1h20v1c0 1.1-.9 2-2 2zm-1.47-11.81A2.008 2.008 0 0016.7 9H7.3c-.79 0-1.51.47-1.83 1.19L2 18h20l-3.47-7.81zM9.5 16h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm3 4h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm3 4h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5zm0-2h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5s-.22.5-.5.5z\"}}]})(props);\n};\nexport function MdOutlinePowerInput (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 9v2h19V9H2zm0 6h5v-2H2v2zm7 0h5v-2H9v2zm7 0h5v-2h-5v2z\"}}]})(props);\n};\nexport function MdOutlineRouter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4.2c1.5 0 3 .6 4.2 1.7l.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2zm-3.3 2.5l.8.8c.7-.7 1.6-1 2.5-1s1.8.3 2.5 1l.8-.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm0 6H5v-4h14v4zM6 16h2v2H6zm3.5 0h2v2h-2zm3.5 0h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.8 10.7L4.2 5l-.7 1.9L17.6 12H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5.5c0-.8-.5-1.6-1.2-1.8zM19 18H5v-4h14v4zM6 15h2v2H6zm4 0h8v2h-8z\"}}]})(props);\n};\nexport function MdOutlineSecurity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\"}}]})(props);\n};\nexport function MdOutlineSimCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4 8v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 2v16H6V8.83L10.83 4H18zM7 17h2v2H7zm8 0h2v2h-2zm-8-6h2v4H7zm4 4h2v4h-2zm0-4h2v2h-2zm4 0h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineSmartDisplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 7.5v9l7-4.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14.01H4V5.99h16v12.02z\"}}]})(props);\n};\nexport function MdOutlineSmartScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 11.25H14v1.5h-1.5zM15 11.25h1.5v1.5H15zM10 11.25h1.5v1.5H10zM7.5 11.25H9v1.5H7.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zM4 17H3V7h1v10zm14 0H6V7h12v10zm3 0h-1V7h1v10z\"}}]})(props);\n};\nexport function MdOutlineSmartToy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9V7c0-1.1-.9-2-2-2h-3c0-1.66-1.34-3-3-3S9 3.34 9 5H6c-1.1 0-2 .9-2 2v2c-1.66 0-3 1.34-3 3s1.34 3 3 3v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c1.66 0 3-1.34 3-3s-1.34-3-3-3zm-2 10H6V7h12v12zm-9-6c-.83 0-1.5-.67-1.5-1.5S8.17 10 9 10s1.5.67 1.5 1.5S9.83 13 9 13zm7.5-1.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5zM8 15h8v2H8v-2z\"}}]})(props);\n};\nexport function MdOutlineSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\"}}]})(props);\n};\nexport function MdOutlineSpeakerGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.2 1H9.8C8.81 1 8 1.81 8 2.8v14.4c0 .99.81 1.79 1.8 1.79l8.4.01c.99 0 1.8-.81 1.8-1.8V2.8c0-.99-.81-1.8-1.8-1.8zM18 17l-8-.01V3h8v14zm-4-9c1.1 0 2-.89 2-2s-.9-2-2-2-2 .89-2 2 .9 2 2 2zm0 8c1.93 0 3.5-1.57 3.5-3.5S15.93 9 14 9s-3.5 1.57-3.5 3.5S12.07 16 14 16zm0-5c.83 0 1.5.67 1.5 1.5S14.83 14 14 14s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zM6 5H4v16a2 2 0 002 2h10v-2H6V5z\"}}]})(props);\n};\nexport function MdOutlineSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 2H7c-1.1 0-2 .9-2 2v16c0 1.1.9 1.99 2 1.99L17 22c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM7 20V4h10v16H7zm5-11c1.1 0 2-.9 2-2s-.9-2-2-2a2 2 0 100 4zm0 2c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineTabletAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z\"}}]})(props);\n};\nexport function MdOutlineTabletMac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 0h-14A2.5 2.5 0 002 2.5v19A2.5 2.5 0 004.5 24h14a2.5 2.5 0 002.5-2.5v-19A2.5 2.5 0 0018.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z\"}}]})(props);\n};\nexport function MdOutlineTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z\"}}]})(props);\n};\nexport function MdOutlineToys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.75 10.08L17.4 6.05A2.978 2.978 0 0014.56 4H9.44C8.15 4 7 4.82 6.6 6.05L5.81 8.4 4.41 7l.29-.29A.996.996 0 103.29 5.3l-2 2A.996.996 0 102.7 8.71l.3-.3 1.79 1.79C3.18 10.72 2 12.22 2 14c0 1.49.83 2.78 2.05 3.47A2.991 2.991 0 007 20c1.3 0 2.4-.84 2.82-2h4.37c.41 1.16 1.51 2 2.82 2 1.49 0 2.73-1.1 2.95-2.53C21.17 16.78 22 15.49 22 14c0-1.95-1.4-3.57-3.25-3.92zM13 6h1.56a1 1 0 01.95.68l1.1 3.32H13V6zm-4.51.68A1 1 0 019.44 6H11v4H7.41l-.02-.02 1.1-3.3zM7 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2.49-2.68A3.028 3.028 0 0017 14c-1.3 0-2.4.84-2.82 2H9.82C9.4 14.84 8.3 14 7 14c-1.03 0-1.95.53-2.49 1.32C4.2 14.97 4 14.51 4 14c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2 0 .51-.2.97-.51 1.32z\"}}]})(props);\n};\nexport function MdOutlineTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z\"}}]})(props);\n};\nexport function MdOutlineVideogameAssetOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 9c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm-6.67-1H20v8h-1.17l1.87 1.87c.75-.29 1.3-1.02 1.3-1.87V8c0-1.1-.9-2-2-2H8.83l2 2zm8.95 14.61L15.17 18H4c-1.1 0-2-.9-2-2V8c0-.85.55-1.58 1.3-1.87L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM13.17 16l-3-3H9v2H7v-2H5v-2h2V9.83L5.17 8H4v8h9.17z\"}}]})(props);\n};\nexport function MdOutlineVideogameAsset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h18v8zM6 15h2v-2h2v-2H8V9H6v2H4v2h2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.31 2l.41 2.48C13.87 4.17 12.96 4 12 4c-.95 0-1.87.17-2.71.47L9.7 2h4.61m.41 17.52L14.31 22H9.7l-.41-2.47c.84.3 1.76.47 2.71.47.96 0 1.87-.17 2.72-.48M16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73C18.81 16.81 20 14.54 20 12s-1.19-4.81-3.04-6.27L16 0zm-4 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdOutlineSensorDoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4v16H6V4h12m0-2H6c-1.1 0-2 .9-2 2v18h16V4c0-1.1-.9-2-2-2zm-2.5 8.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5S17 12.83 17 12s-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdOutlineSensorWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 2v7h-4v-1h-4v1H6V4h12zM6 20v-7h12v7H6z\"}}]})(props);\n};\nexport function MdOutline10Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11.5h2.5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H13c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-4.5H15v3h-1.5V7zM7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM8.5 11.5H10v-6H7V7h1.5zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutline11Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 11.5H11v-6H8V7h1.5zM14.5 11.5H16v-6h-3V7h1.5z\"}}]})(props);\n};\nexport function MdOutline12Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 11.5H10v-6H7V7h1.5zM16.5 10h-3V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H12V7h3v1h-2c-.55 0-1 .45-1 1v2.5h4.5V10z\"}}]})(props);\n};\nexport function MdOutline13Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 11.5H10v-6H7V7h1.5zM16.5 10.5v-4c0-.55-.45-1-1-1H12V7h3v1h-2v1h2v1h-3v1.5h3.5c.55 0 1-.45 1-1zM7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutline14Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 12.5v6H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5zm3 3H15V14h1.5v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 11.5H10v-6H7V7h1.5zM15 11.5h1.5V10h1V8.5h-1v-3H15v3h-1.5v-3H12V10h3z\"}}]})(props);\n};\nexport function MdOutline15Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 11.5H10v-6H7V7h1.5zM16.5 10.5V9c0-.55-.45-1-1-1h-2V7h3V5.5H12V9h3v1h-3v1.5h3.5c.55 0 1-.45 1-1z\"}}]})(props);\n};\nexport function MdOutline16Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11.5h2.5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1h-2V7h3V5.5H13c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-2.5H15v1.5h-1.5V9zM8.5 11.5H10v-6H7V7h1.5z\"}}]})(props);\n};\nexport function MdOutline17Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 11.5H10v-6H7V7h1.5zM13.25 11.5H15l1.46-4.71c.19-.64-.29-1.29-.96-1.29H12V7h2.62l-1.37 4.5z\"}}]})(props);\n};\nexport function MdOutline18Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 11.5H10v-6H7V7h1.5zM13 11.5h2.5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H13c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-5H15V8h-1.5V6.5zm0 2.5H15v1.5h-1.5V9z\"}}]})(props);\n};\nexport function MdOutline19Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 11.5H10v-6H7V7h1.5zM16.5 10.5v-4c0-.55-.45-1-1-1H13c-.55 0-1 .45-1 1V8c0 .55.45 1 1 1h2v1h-3v1.5h3.5c.55 0 1-.45 1-1zM15 8h-1.5V6.5H15V8z\"}}]})(props);\n};\nexport function MdOutline20Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 12.5v6H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5zm3 3H15V14h1.5v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11.5h2.5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H14c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-4.5H16v3h-1.5V7zM11 10H8V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H6.5V7h3v1h-2c-.55 0-1 .45-1 1v2.5H11V10z\"}}]})(props);\n};\nexport function MdOutline21Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 11.5H16v-6h-3V7h1.5zM12 10H9V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H7.5V7h3v1h-2c-.55 0-1 .45-1 1v2.5H12V10zM7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM15 17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6H15V17zm0-3h1.5v1.5H15V14z\"}}]})(props);\n};\nexport function MdOutline22Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 12.5v6H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5zm3 3H15V14h1.5v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10H8V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H6.5V7h3v1h-2c-.55 0-1 .45-1 1v2.5H11V10zM17.5 10h-3V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H13V7h3v1h-2c-.55 0-1 .45-1 1v2.5h4.5V10z\"}}]})(props);\n};\nexport function MdOutline23Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 12.5v6H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5zm3 3H15V14h1.5v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10H8V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H6.5V7h3v1h-2c-.55 0-1 .45-1 1v2.5H11V10zM17.5 10.5v-4c0-.55-.45-1-1-1H13V7h3v1h-2v1h2v1h-3v1.5h3.5c.55 0 1-.45 1-1z\"}}]})(props);\n};\nexport function MdOutline24Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM17 12.5h-3.5v6H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1zm-.5 3H15V14h1.5v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10H8V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H6.5V7h3v1h-2c-.55 0-1 .45-1 1v2.5H11V10zM16 11.5h1.5V10h1V8.5h-1v-3H16v3h-1.5v-3H13V10h3z\"}}]})(props);\n};\nexport function MdOutline2Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10h-3V9h2c.55 0 1-.45 1-1V6.5c0-.55-.45-1-1-1H10V7h3v1h-2c-.55 0-1 .45-1 1v2.5h4.5V10z\"}}]})(props);\n};\nexport function MdOutline30FpsSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v2h5v2H5v2h4v2H4v2h5c1.1 0 2-.9 2-2v-1.5c0-.83-.17-1.5-1-1.5.83 0 1-.67 1-1.5V6c0-1.1-.9-2-2-2H4zm14 0c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-3c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h3zm0 2h-3v6h3V6zM5 22H3v-5h2v5zm4 0H7v-5h2v5zm4 0h-2v-5h2v5zm8 0h-6v-5h6v5z\"}}]})(props);\n};\nexport function MdOutline3Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 12.5v6H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5zm3 3H15V14h1.5v1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10.5v-4c0-.55-.45-1-1-1H10V7h3v1h-2v1h2v1h-3v1.5h3.5c.55 0 1-.45 1-1z\"}}]})(props);\n};\nexport function MdOutline4Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 11.5H14V10h1V8.5h-1v-3h-1.5v3H11v-3H9.5V10h3z\"}}]})(props);\n};\nexport function MdOutline5Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10.5V9c0-.55-.45-1-1-1h-2V7h3V5.5H10V9h3v1h-3v1.5h3.5c.55 0 1-.45 1-1z\"}}]})(props);\n};\nexport function MdOutline60FpsSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6v6h-3V6h3zm0-2h-3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 2V4H6c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2H6V6h5zm-2 4v2H6v-2h3zM5 22H3v-5h2v5zm4 0H7v-5h2v5zm4 0h-2v-5h2v5zm8 0h-6v-5h6v5z\"}}]})(props);\n};\nexport function MdOutline6Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11.5h2.5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1h-2V7h3V5.5H11c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-2.5H13v1.5h-1.5V9z\"}}]})(props);\n};\nexport function MdOutline7Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.25 11.5H13l1.46-4.71c.19-.64-.29-1.29-.96-1.29H10V7h2.62l-1.37 4.5z\"}}]})(props);\n};\nexport function MdOutline8Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11.5h2.5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H11c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.5-5H13V8h-1.5V6.5zm0 2.5H13v1.5h-1.5V9z\"}}]})(props);\n};\nexport function MdOutline9Mp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14h1v3H10v-3h1v4.5h1.5v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5h1.5V14zM13.5 18.5H15V17h2c.55 0 1-.45 1-1v-2.5c0-.55-.45-1-1-1h-3.5v6zM15 14h1.5v1.5H15V14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10.5v-4c0-.55-.45-1-1-1H11c-.55 0-1 .45-1 1V8c0 .55.45 1 1 1h2v1h-3v1.5h3.5c.55 0 1-.45 1-1zM13 8h-1.5V6.5H13V8z\"}}]})(props);\n};\nexport function MdOutlineAddAPhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6h-3.17L16 4h-6v2h5.12l1.83 2H21v12H5v-9H3v9c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM8 14c0 2.76 2.24 5 5 5s5-2.24 5-5-2.24-5-5-5-5 2.24-5 5zm5-3c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3zM5 6h3V4H5V1H3v3H0v2h3v3h2z\"}}]})(props);\n};\nexport function MdOutlineAddPhotoAlternate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20H4V6h9V4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2v9zm-7.79-3.17l-1.96-2.36L5.5 18h11l-3.54-4.71zM20 4V1h-2v3h-3c.01.01 0 2 0 2h3v2.99c.01.01 2 0 2 0V6h3V4h-3z\"}}]})(props);\n};\nexport function MdOutlineAddToPhotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zm-7-1h2v-4h4V9h-4V5h-2v4H9v2h4z\"}}]})(props);\n};\nexport function MdOutlineAdjust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z\"}}]})(props);\n};\nexport function MdOutlineAnimation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2c-2.71 0-5.05 1.54-6.22 3.78a7.062 7.062 0 00-3 3A7.014 7.014 0 002 15c0 3.87 3.13 7 7 7 2.71 0 5.05-1.54 6.22-3.78a7.062 7.062 0 003-3A7.014 7.014 0 0022 9c0-3.87-3.13-7-7-7zM9 20a5.002 5.002 0 01-4-8c0 3.87 3.13 7 7 7-.84.63-1.88 1-3 1zm3-3a5.002 5.002 0 01-4-8c0 3.86 3.13 6.99 7 7-.84.63-1.88 1-3 1zm4.7-3.3c-.53.19-1.1.3-1.7.3-2.76 0-5-2.24-5-5 0-.6.11-1.17.3-1.7.53-.19 1.1-.3 1.7-.3 2.76 0 5 2.24 5 5 0 .6-.11 1.17-.3 1.7zM19 12c0-3.86-3.13-6.99-7-7a5.002 5.002 0 017 7z\"}}]})(props);\n};\nexport function MdOutlineAssistantPhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.36 6l.08.39.32 1.61H18v6h-3.36l-.08-.39-.32-1.61H7V6h5.36M14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6L14 4z\"}}]})(props);\n};\nexport function MdOutlineAssistant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 16h-4.83l-.59.59L12 20.17l-1.59-1.59-.58-.58H5V4h14v14zm-7-1l1.88-4.12L18 11l-4.12-1.88L12 5l-1.88 4.12L6 11l4.12 1.88z\"}}]})(props);\n};\nexport function MdOutlineAudiotrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6zm-2 16c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineAutoAwesomeMosaic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14a2 2 0 002 2h6V3H5a2 2 0 00-2 2zm6 14H5V5h4v14zM19 3h-6v8h8V5c0-1.1-.9-2-2-2zm0 6h-4V5h4v4zM13 21h6c1.1 0 2-.9 2-2v-6h-8v8zm2-6h4v4h-4v-4z\"}}]})(props);\n};\nexport function MdOutlineAutoAwesomeMotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H4c-1.1 0-2 .9-2 2v10h2V4h10V2zm4 4H8c-1.1 0-2 .9-2 2v10h2V8h10V6zm2 4h-8c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm0 10h-8v-8h8v8z\"}}]})(props);\n};\nexport function MdOutlineAutoAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9l1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25zM11.5 9.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zm-1.51 3.49L9 15.17l-.99-2.18L5.83 12l2.18-.99L9 8.83l.99 2.18 2.18.99-2.18.99z\"}}]})(props);\n};\nexport function MdOutlineAutoFixHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7l.94-2.06L23 4l-2.06-.94L20 1l-.94 2.06L17 4l2.06.94zM8.5 7l.94-2.06L11.5 4l-2.06-.94L8.5 1l-.94 2.06L5.5 4l2.06.94zM20 12.5l-.94 2.06-2.06.94 2.06.94.94 2.06.94-2.06L23 15.5l-2.06-.94zM17.71 9.12l-2.83-2.83c-.2-.19-.45-.29-.71-.29-.26 0-.51.1-.71.29L2.29 17.46a.996.996 0 000 1.41l2.83 2.83c.2.2.45.3.71.3s.51-.1.71-.29l11.17-11.17c.39-.39.39-1.03 0-1.42zm-3.54-.7l1.41 1.41L14.41 11 13 9.59l1.17-1.17zM5.83 19.59l-1.41-1.41L11.59 11 13 12.41l-7.17 7.18z\"}}]})(props);\n};\nexport function MdOutlineAutoFixNormal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7l.94-2.06L23 4l-2.06-.94L20 1l-.94 2.06L17 4l2.06.94zM17.71 9.12l-2.83-2.83c-.2-.19-.45-.29-.71-.29-.26 0-.51.1-.71.29L2.29 17.46a.996.996 0 000 1.41l2.83 2.83c.2.2.45.3.71.3s.51-.1.71-.29l11.17-11.17c.39-.39.39-1.03 0-1.42zm-3.54-.7l1.41 1.41L14.41 11 13 9.59l1.17-1.17zM5.83 19.59l-1.41-1.41L11.59 11 13 12.41l-7.17 7.18z\"}}]})(props);\n};\nexport function MdOutlineAutoFixOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7l.94-2.06L23 4l-2.06-.94L20 1l-.94 2.06L17 4l2.06.94zM14.17 8.42l1.41 1.41-1.46 1.46 1.41 1.41 2.17-2.17a.996.996 0 000-1.41l-2.83-2.83a.984.984 0 00-.7-.29c-.26 0-.51.1-.71.29l-2.17 2.17 1.41 1.41 1.47-1.45zM1.39 4.22l7.07 7.07-6.17 6.17a.996.996 0 000 1.41l2.83 2.83c.2.2.45.3.71.3s.51-.1.71-.29l6.17-6.17 7.07 7.07 1.41-1.41L2.81 2.81 1.39 4.22zm9.9 9.9l-5.46 5.46-1.41-1.41 5.46-5.46 1.41 1.41z\"}}]})(props);\n};\nexport function MdOutlineAutoStories (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.47 5.2c-.47-.24-.96-.44-1.47-.61v12.03c-1.14-.41-2.31-.62-3.5-.62-1.9 0-3.78.54-5.5 1.58V5.48C10.38 4.55 8.51 4 6.5 4c-1.79 0-3.48.44-4.97 1.2-.33.16-.53.51-.53.88v12.08c0 .58.47.99 1 .99.16 0 .32-.04.48-.12C3.69 18.4 5.05 18 6.5 18c2.07 0 3.98.82 5.5 2 1.52-1.18 3.43-2 5.5-2 1.45 0 2.81.4 4.02 1.04.16.08.32.12.48.12.52 0 1-.41 1-.99V6.08c0-.37-.2-.72-.53-.88zM10 16.62C8.86 16.21 7.69 16 6.5 16s-2.36.21-3.5.62V6.71C4.11 6.24 5.28 6 6.5 6c1.2 0 2.39.25 3.5.72v9.9zM19 .5l-5 5V15l5-4.5V.5z\"}}]})(props);\n};\nexport function MdOutlineAutofpsSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.03 6.3h-.06l-1.02 2.89h2.1zM3 17h2v5H3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 15c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm-.63-10h1.25l2.63 7h-1.21l-.63-1.79h-2.83L9.96 12H8.74l2.63-7zM7 17h2v5H7zM11 17h2v5h-2zM15 17h6v5h-6z\"}}]})(props);\n};\nexport function MdOutlineBedtime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.27 4.49c-1.63 7.54 3.75 12.41 7.66 13.8A7.993 7.993 0 0112 20c-4.41 0-8-3.59-8-8 0-3.45 2.2-6.4 5.27-7.51m2.72-2.48C6.4 2.01 2 6.54 2 12c0 5.52 4.48 10 10 10 3.71 0 6.93-2.02 8.66-5.02-7.51-.25-12.09-8.43-8.32-14.97h-.35z\"}}]})(props);\n};\nexport function MdOutlineBlurCircular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineBlurLinear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z\"}}]})(props);\n};\nexport function MdOutlineBlurOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.8 11.48l.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"10\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"14\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 20.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7-7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-18 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"18\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"14\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 5.27L6 8.77l.28.28L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81A.875.875 0 0014 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78h.01l1.41-1.41L3.91 3.86 2.5 5.27z\"}}]})(props);\n};\nexport function MdOutlineBlurOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdOutlineBrightness1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\"}}]})(props);\n};\nexport function MdOutlineBrightness2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4c4.41 0 8 3.59 8 8s-3.59 8-8 8c-.34 0-.68-.02-1.01-.07C10.9 17.77 12 14.95 12 12s-1.1-5.77-3.01-7.93C9.32 4.02 9.66 4 10 4m0-2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z\"}}]})(props);\n};\nexport function MdOutlineBrightness3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.7 4.91A8 8 0 0117 12a8 8 0 01-4.3 7.09c1.46-2 2.3-4.46 2.3-7.09s-.84-5.09-2.3-7.09M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54s-2.94 8.27-7 9.54c.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z\"}}]})(props);\n};\nexport function MdOutlineBrightness4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48zM12.29 7c-.74 0-1.45.17-2.08.46 1.72.79 2.92 2.53 2.92 4.54s-1.2 3.75-2.92 4.54c.63.29 1.34.46 2.08.46 2.76 0 5-2.24 5-5s-2.24-5-5-5z\"}}]})(props);\n};\nexport function MdOutlineBrightness5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48zM12 6.5c-3.03 0-5.5 2.47-5.5 5.5s2.47 5.5 5.5 5.5 5.5-2.47 5.5-5.5-2.47-5.5-5.5-5.5zm0 9c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\"}}]})(props);\n};\nexport function MdOutlineBrightness6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48zM12 6.5v11c3.03 0 5.5-2.47 5.5-5.5S15.03 6.5 12 6.5z\"}}]})(props);\n};\nexport function MdOutlineBrightness7 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zm-2 5.79V18h-3.52L12 20.48 9.52 18H6v-3.52L3.52 12 6 9.52V6h3.52L12 3.52 14.48 6H18v3.52L20.48 12 18 14.48zM12 6.5c-3.03 0-5.5 2.47-5.5 5.5s2.47 5.5 5.5 5.5 5.5-2.47 5.5-5.5-2.47-5.5-5.5-5.5zm0 9c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function MdOutlineBrokenImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5v-4.58l.99.99 4-4 4 4 4-3.99L19 12.43V19zm0-9.41l-1.01-1.01-4 4.01-4-4-4 4-.99-1V5h14v4.59z\"}}]})(props);\n};\nexport function MdOutlineBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16c.55 0 1 .45 1 1 0 1.1-.9 2-2 2-.17 0-.33-.02-.5-.05.31-.55.5-1.21.5-1.95 0-.55.45-1 1-1M18.67 3c-.26 0-.51.1-.71.29L9 12.25 11.75 15l8.96-8.96a.996.996 0 000-1.41l-1.34-1.34c-.2-.2-.45-.29-.7-.29zM7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdOutlineBurstMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 12H11V7h10v10zm-3.57-4.38l-2 2.57L14 13.47l-2 2.52h8z\"}}]})(props);\n};\nexport function MdOutlineCameraAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h4.05l1.83-2h4.24l1.83 2H20v12zM12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"}}]})(props);\n};\nexport function MdOutlineCameraFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20v2h5v2l3-3-3-3v2zm9 0h5v2h-5zM11.99 8C13.1 8 14 7.1 14 6s-.9-2-2.01-2S10 4.9 10 6s.89 2 1.99 2zM17 0H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 16H7v-2h10v2zm0-3.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2h10v10.5z\"}}]})(props);\n};\nexport function MdOutlineCameraRear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20v2h5v2l3-3-3-3v2zm9 0h5v2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm0 16H7V2h10v14zm-5-9c1.1 0 2-.9 1.99-2 0-1.1-.9-2-2-2S10 3.9 10 5s.89 2 2 2z\"}}]})(props);\n};\nexport function MdOutlineCameraRoll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm6 13h-8v2H4V5h3V3h2v2h3v2h8v11zM9 15h2v2H9zm0-7h2v2H9zm4 7h2v2h-2zm0-7h2v2h-2zm4 7h2v2h-2zm0-7h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.25 2.26l-.08-.04-.01.02C13.46 2.09 12.74 2 12 2 6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-4.75-3.31-8.72-7.75-9.74zM19.41 9h-7.99l2.71-4.7c2.4.66 4.35 2.42 5.28 4.7zM13.1 4.08L10.27 9l-1.15 2L6.4 6.3A7.958 7.958 0 0112 4c.37 0 .74.03 1.1.08zM5.7 7.09L8.54 12l1.15 2H4.26C4.1 13.36 4 12.69 4 12c0-1.85.64-3.55 1.7-4.91zM4.59 15h7.98l-2.71 4.7A8.033 8.033 0 014.59 15zm6.31 4.91L14.89 13l2.72 4.7A8 8 0 0112 20c-.38 0-.74-.04-1.1-.09zm7.4-3l-4-6.91h5.43c.17.64.27 1.31.27 2 0 1.85-.64 3.55-1.7 4.91z\"}}]})(props);\n};\nexport function MdOutlineCases (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9H1v11c0 1.11.89 2 2 2h17v-2H3V9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5V3c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v2H5v11c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5h-5zm-6-2h4v2h-4V3zm9 13H7V7h14v9z\"}}]})(props);\n};\nexport function MdOutlineCenterFocusStrong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5 5-2.24 5-5zm-5 3c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm-7 0H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z\"}}]})(props);\n};\nexport function MdOutlineCenterFocusWeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm7 3c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm7-11h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z\"}}]})(props);\n};\nexport function MdOutlineCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineCollectionsBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-3 2v5l-1-.75L15 9V4h2zm3 12H8V4h5v9l3-2.25L19 13V4h1v12z\"}}]})(props);\n};\nexport function MdOutlineCollections (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v12H8V4h12m0-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 9.67l1.69 2.26 2.48-3.1L19 15H9zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z\"}}]})(props);\n};\nexport function MdOutlineColorLens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67A2.5 2.5 0 0112 22zm0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5a.54.54 0 00-.14-.35c-.41-.46-.63-1.05-.63-1.65a2.5 2.5 0 012.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineColorize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z\"}}]})(props);\n};\nexport function MdOutlineCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineControlPointDuplicate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3V8zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16A6.99 6.99 0 012 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineControlPoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineCrop169 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z\"}}]})(props);\n};\nexport function MdOutlineCrop32 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z\"}}]})(props);\n};\nexport function MdOutlineCrop54 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z\"}}]})(props);\n};\nexport function MdOutlineCrop75 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z\"}}]})(props);\n};\nexport function MdOutlineCropDin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineCropFree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineCropLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z\"}}]})(props);\n};\nexport function MdOutlineCropOriginal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71l-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z\"}}]})(props);\n};\nexport function MdOutlineCropPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z\"}}]})(props);\n};\nexport function MdOutlineCropRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.47 21.49C4.2 19.93 1.86 16.76 1.5 13H0c.51 6.16 5.66 11 11.95 11 .23 0 .44-.02.66-.03L8.8 20.15l-1.33 1.34zM12.05 0c-.23 0-.44.02-.66.04l3.81 3.81 1.33-1.33C19.8 4.07 22.14 7.24 22.5 11H24c-.51-6.16-5.66-11-11.95-11zM16 14h2V8a2 2 0 00-2-2h-6v2h6v6zm-8 2V4H6v2H4v2h2v8a2 2 0 002 2h8v2h2v-2h2v-2H8z\"}}]})(props);\n};\nexport function MdOutlineCropSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z\"}}]})(props);\n};\nexport function MdOutlineCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z\"}}]})(props);\n};\nexport function MdOutlineDehaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20V6H2z\"}}]})(props);\n};\nexport function MdOutlineDetails (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L2 21h20L12 3zm1 5.92L18.6 19H13V8.92zm-2 0V19H5.4L11 8.92z\"}}]})(props);\n};\nexport function MdOutlineDirtyLens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-7.02c-.22-.84-.52-1.76-.13-2.33.81-1.12 2.67 1.77 3.81-.09.77-1.57-1.58-1.29-1.64-2.12-.05-.84 3.68.17 3.04-1.66-.61-1.73-2.42.48-2.76-.53-.58-1.74 4.7-1.68 2.85-4.01-1.76-2.22-2.47 2.85-4.41 2.33-1.34-.36-1.01-2.88-2.65-2.44-1.88.51 1.03 2.2 0 2.86-.96.63-1.72-.92-2.51-1.19-.2-.07-.69-.05-.91.19-.78.86.28 1.16.25 1.91-.02.75-1.59.49-1.51 1.49.12 1.6 2.18.45 2.4 1.24.55 1.98-1.89 2.15-.5 3.27 1.53.71 1.91-1.94 2.8-1.35.58.38.3 1.45.16 2.43H4V7h4.05l1.83-2h4.24l1.83 2H20v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.28 17.15c0 .48.39.86.86.86.48 0 .86-.38.86-.86s-.39-.86-.86-.86c-.48 0-.86.38-.86.86z\"}}]})(props);\n};\nexport function MdOutlineEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 000-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z\"}}]})(props);\n};\nexport function MdOutlineEuro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 18.5A6.48 6.48 0 019.24 15H15l1-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15l1-2H9.24A6.491 6.491 0 0115 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3A8.955 8.955 0 0015 3c-3.92 0-7.24 2.51-8.48 6H3l-1 2h4.06a8.262 8.262 0 000 2H3l-1 2h4.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z\"}}]})(props);\n};\nexport function MdOutlineExposureNeg1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z\"}}]})(props);\n};\nexport function MdOutlineExposureNeg2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17s.41-.78.54-1.17.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46s-.44-.81-.78-1.11c-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0016.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49s.6-.18.96-.18c.31 0 .58.05.81.15s.43.25.59.43.28.4.37.65c.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z\"}}]})(props);\n};\nexport function MdOutlineExposurePlus1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z\"}}]})(props);\n};\nexport function MdOutlineExposurePlus2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17s.41-.78.54-1.17c.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46s-.44-.81-.78-1.11c-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0017.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49s.6-.18.96-.18c.31 0 .58.05.81.15s.43.25.59.43.28.4.37.65c.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z\"}}]})(props);\n};\nexport function MdOutlineExposureZero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.14 12.5c0 1-.1 1.85-.3 2.55s-.48 1.27-.83 1.7c-.36.44-.79.75-1.3.95s-1.07.3-1.7.3c-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95s-.65-1.01-.85-1.7c-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04h-.01zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19s-.61.06-.86.18-.47.31-.64.58-.31.62-.4 1.06-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19.62-.06.87-.19.46-.33.63-.61.3-.64.39-1.09.13-.99.13-1.62v-2.66h-.01z\"}}]})(props);\n};\nexport function MdOutlineExposure (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1.41 2L5 17.59V5h12.59zM6.41 19L19 6.41V19H6.41zM6 7h5v1.5H6zm10 5.5h-1.5v2h-2V16h2v2H16v-2h2v-1.5h-2z\"}}]})(props);\n};\nexport function MdOutlineFaceRetouchingNatural (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.89 10.75c.07.41.11.82.11 1.25 0 4.41-3.59 8-8 8s-8-3.59-8-8c0-.05.01-.1 0-.14 2.6-.98 4.69-2.99 5.74-5.55 3.38 4.14 7.97 3.73 8.99 3.61l-.89-1.93c-.13.01-4.62.38-7.18-3.86 1.01-.16 1.71-.15 2.59-.01 2.52-1.15 1.93-.89 2.76-1.26A9.62 9.62 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-1.43-.3-2.78-.84-4.01l-1.27 2.76zM8.08 5.03a8.046 8.046 0 01-3.66 4.44 8.046 8.046 0 013.66-4.44z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"13\",\"r\":\"1.25\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1.25\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 4.5l-2.4-1.1L19.5 1l-1.1 2.4L16 4.5l2.4 1.1L19.5 8l1.1-2.4z\"}}]})(props);\n};\nexport function MdOutlineFaceRetouchingOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1.25\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 10c.75 0 1.47-.09 2.17-.24.21.71.33 1.46.33 2.24 0 1.22-.28 2.37-.77 3.4l1.49 1.49A9.981 9.981 0 0022 12c0-5.52-4.48-10-10-10-1.78 0-3.44.47-4.89 1.28l5.33 5.33c1.49.88 3.21 1.39 5.06 1.39zm-6.84-5.88c.43-.07.88-.12 1.34-.12 2.9 0 5.44 1.56 6.84 3.88-.43.07-.88.12-1.34.12-2.9 0-5.44-1.56-6.84-3.88zM1.89 3.72l2.19 2.19A9.958 9.958 0 002 12c0 5.52 4.48 10 10 10 2.29 0 4.4-.78 6.09-2.08l2.19 2.19 1.41-1.41L3.31 2.31 1.89 3.72zm14.77 14.77A7.91 7.91 0 0112 20c-4.41 0-8-3.59-8-8 0-.05.01-.1 0-.14a9.946 9.946 0 003.64-2.39l9.02 9.02zM6.23 8.06c-.53.55-1.14 1.03-1.81 1.41.26-.77.63-1.48 1.09-2.13l.72.72z\"}}]})(props);\n};\nexport function MdOutlineFilter1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdOutlineFilter2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2a2 2 0 002-2V7a2 2 0 00-2-2h-4v2h4v2h-2a2 2 0 00-2 2v4h6v-2z\"}}]})(props);\n};\nexport function MdOutlineFilter3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 00-2-2h-4v2h4v2h-2v2h2v2h-4v2h4a2 2 0 002-2z\"}}]})(props);\n};\nexport function MdOutlineFilter4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdOutlineFilter5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2a2 2 0 00-2-2h-2V7h4V5h-6v6h4v2h-4v2h4a2 2 0 002-2z\"}}]})(props);\n};\nexport function MdOutlineFilter6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 002-2v-2a2 2 0 00-2-2h-2V7h4V5h-4a2 2 0 00-2 2v6a2 2 0 002 2zm0-4h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdOutlineFilter7 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2l4-8V5h-6v2h4l-4 8h2z\"}}]})(props);\n};\nexport function MdOutlineFilter8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 002-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 00-2-2h-2a2 2 0 00-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13a2 2 0 002 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdOutlineFilter9Plus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8a2 2 0 00-2-2h-1a2 2 0 00-2 2v1a2 2 0 002 2h1v1H9v2h3a2 2 0 002-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z\"}}]})(props);\n};\nexport function MdOutlineFilter9 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2a2 2 0 00-2 2v2a2 2 0 002 2h2v2h-4v2h4a2 2 0 002-2V7a2 2 0 00-2-2zm0 4h-2V7h2v2z\"}}]})(props);\n};\nexport function MdOutlineFilterBAndW (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16l-7-8v8H5l7-8V5h7v14z\"}}]})(props);\n};\nexport function MdOutlineFilterCenterFocus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdOutlineFilterDrama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 10.04A7.49 7.49 0 0012 4a7.48 7.48 0 00-6.64 4.04A5.996 5.996 0 000 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z\"}}]})(props);\n};\nexport function MdOutlineFilterFrames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM6 18h12V8H6v10zm2-8h8v6H8v-6z\"}}]})(props);\n};\nexport function MdOutlineFilterHdr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-4.22 5.63 1.25 1.67L14 9.33 19 16h-8.46l-4.01-5.37L1 18h22L14 6zM5 16l1.52-2.03L8.04 16H5z\"}}]})(props);\n};\nexport function MdOutlineFilterNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdOutlineFilterTiltShift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.941 7.941 0 0111 4.07zm7.32.19A9.949 9.949 0 0013 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1a7.941 7.941 0 011.62 3.9zM5.69 7.1L4.26 5.68A9.949 9.949 0 002.05 11h2.02c.18-1.46.76-2.79 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 014.07 13zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9l1.43 1.43a9.981 9.981 0 002.21-5.32h-2.02a7.945 7.945 0 01-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19A9.981 9.981 0 0011 21.95v-2.02a7.941 7.941 0 01-3.9-1.62l-1.42 1.43z\"}}]})(props);\n};\nexport function MdOutlineFilterVintage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.7 12.4a6.06 6.06 0 00-.86-.4c.29-.11.58-.24.86-.4a6.012 6.012 0 003-5.19c-.91-.52-1.95-.8-3.01-.8-1.02 0-2.05.26-2.99.8-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55-.94-.54-1.97-.8-2.99-.8-1.05 0-2.1.28-3.01.8a5.97 5.97 0 003 5.19c.28.16.57.29.86.4-.29.11-.58.24-.86.4a6.012 6.012 0 00-3 5.19c.91.52 1.95.8 3.01.8 1.02 0 2.05-.26 2.99-.8.28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54.94.54 1.97.8 2.99.8 1.05 0 2.1-.28 3.01-.8a6.012 6.012 0 00-3-5.19zm-2.54-3.88c.21-.17.38-.29.54-.37.61-.35 1.3-.54 2-.54.27 0 .53.03.79.08-.31.91-.94 1.69-1.78 2.18-.17.1-.36.18-.58.27l-1.38.52c-.17-.46-.41-.87-.72-1.24l1.13-.9zM12 3.37c.63.72 1 1.66 1 2.63 0 .19-.02.41-.05.63l-.23 1.44C12.48 8.03 12.24 8 12 8s-.48.03-.71.07l-.23-1.44C11.02 6.41 11 6.19 11 6c0-.98.37-1.91 1-2.63zM4.51 7.68c.26-.06.53-.08.8-.08.69 0 1.38.18 1.99.54.15.09.32.2.49.35l1.15.96c-.3.36-.53.76-.7 1.2l-1.38-.52c-.21-.09-.4-.18-.56-.27-.87-.5-1.49-1.27-1.79-2.18zm3.33 7.79c-.21.17-.38.29-.54.37-.61.35-1.3.54-2 .54-.27 0-.53-.03-.79-.08.31-.91.94-1.69 1.78-2.18.17-.1.36-.18.58-.27l1.38-.52c.16.46.41.88.72 1.24l-1.13.9zM12 20.63c-.63-.72-1-1.66-1-2.63 0-.2.02-.41.06-.65l.22-1.42c.23.04.47.07.72.07.24 0 .48-.03.71-.07l.23 1.44c.04.22.06.44.06.63 0 .98-.37 1.91-1 2.63zm6.69-4.24a3.916 3.916 0 01-2.48-.88l-1.15-.96c.3-.36.54-.76.7-1.21l1.38.52c.22.08.41.17.57.26.85.49 1.47 1.27 1.78 2.18-.27.07-.54.09-.8.09z\"}}]})(props);\n};\nexport function MdOutlineFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.96 10.29l-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\"}}]})(props);\n};\nexport function MdOutlineFlare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z\"}}]})(props);\n};\nexport function MdOutlineFlashAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z\"}}]})(props);\n};\nexport function MdOutlineFlashOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10h-3.61l2.28 2.28zm0-8H7v1.61l6.13 6.13zm-13.59.86L2 4.27l5 5V13h3v9l3.58-6.15L17.73 20l1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineFlashOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 2v11h3v9l7-12h-4l3-8z\"}}]})(props);\n};\nexport function MdOutlineFlipCameraAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3zm4 0c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 10V8H5.09C6.47 5.61 9.05 4 12 4c3.72 0 6.85 2.56 7.74 6h2.06c-.93-4.56-4.96-8-9.8-8-3.27 0-6.18 1.58-8 4.01V4H2v6h6zM16 14v2h2.91c-1.38 2.39-3.96 4-6.91 4-3.72 0-6.85-2.56-7.74-6H2.2c.93 4.56 4.96 8 9.8 8 3.27 0 6.18-1.58 8-4.01V20h2v-6h-6z\"}}]})(props);\n};\nexport function MdOutlineFlipCameraIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14H4V7h4.05l.59-.65L9.88 5h4.24l1.24 1.35.59.65H20v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c-2.21 0-4-1.79-4-4h2l-2.5-2.5L5 13h2c0 2.76 2.24 5 5 5 .86 0 1.65-.24 2.36-.62l-.74-.74c-.49.23-1.04.36-1.62.36zM12 8c-.86 0-1.65.24-2.36.62l.74.73C10.87 9.13 11.42 9 12 9c2.21 0 4 1.79 4 4h-2l2.5 2.5L19 13h-2c0-2.76-2.24-5-5-5z\"}}]})(props);\n};\nexport function MdOutlineFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z\"}}]})(props);\n};\nexport function MdOutlineGradient (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2v2h-2V9zm-2 2h2v2H9v-2zm4 0h2v2h-2v-2zm2-2h2v2h-2V9zM7 9h2v2H7V9zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z\"}}]})(props);\n};\nexport function MdOutlineGrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineGridOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4v.89l2 2V4h4v4h-2.89l2 2H14v.89l2 2V10h4v4h-2.89l2 2H20v.89l2 2V4c0-1.1-.9-2-2-2H5.11l2 2H8zm8 0h4v4h-4V4zM1.41 1.14L0 2.55l2 2V20c0 1.1.9 2 2 2h15.45l2.01 2.01 1.41-1.41L1.41 1.14zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.55V20zm2 0v-1.45L17.45 20H16z\"}}]})(props);\n};\nexport function MdOutlineGridOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"}}]})(props);\n};\nexport function MdOutlineHdrEnhancedSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6 2.69-6 6-6zm0 2C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm1 7h-2V9H9V7h2V5h2v2h2v2h-2v2zm11 9h-2v2h-1.5v-2h-2v-1.5h2v-2H22v2h2V20zm-6-1.5c0 .6-.4 1.1-.9 1.4L18 22h-1.5l-.9-2h-1.1v2H13v-6h3.5c.8 0 1.5.7 1.5 1.5v1zm-1.5 0v-1h-2v1h2zm-13-.5v-2H5v6H3.5v-2.5h-2V22H0v-6h1.5v2h2zm6.5-2c.8 0 1.5.7 1.5 1.5v3c0 .8-.7 1.5-1.5 1.5H6.5v-6H10zm0 4.5v-3H8v3h2z\"}}]})(props);\n};\nexport function MdOutlineHdrOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 15v-2h1.1l.9 2H21l-.9-2.1c.5-.3.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5H16v4.86L17.14 15h.36zm0-4.5h2v1h-2v-1zm-4.5 0v.36l1.5 1.5V10.5c0-.8-.7-1.5-1.5-1.5h-1.86l1.5 1.5H13zM2.51 2.49L1.45 3.55 6.9 9h-.4v2h-2V9H3v6h1.5v-2.5h2V15H8v-4.9l1.5 1.5V15h3.4l7.6 7.6 1.06-1.06z\"}}]})(props);\n};\nexport function MdOutlineHdrOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5v-1c0-.8-.7-1.5-1.5-1.5H16v6h1.5v-2h1.1l.9 2H21l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2V9H3v6h1.5v-2.5h2V15H8V9H6.5v2zM13 9H9.5v6H13c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5h-2v-3h2v3z\"}}]})(props);\n};\nexport function MdOutlineHdrPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.13 19c1.15.64 2.47 1 3.87 1 4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8c0 2.52 1.17 4.77 3 6.24V13h3.5c.8 0 1.5.7 1.5 1.5v1c0 .6-.4 1.1-.9 1.4L12 19h-1.5l-.9-2H8.5v2h-.37zM12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2zm5.5 14H16v1.5h-1.5V16H13v-1.5h1.5V13H16v1.49h1.5V16zm-7-.5v-1h-2v1h2zm0-7.5V6H12v6h-1.5V9.5h-2V12H7V6h1.5v2h2zM16 6c.8 0 1.5.7 1.5 1.5v3c0 .8-.7 1.5-1.5 1.5h-3V6h3zm0 4.5v-3h-1.5v3H16z\"}}]})(props);\n};\nexport function MdOutlineHdrStrong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineHdrWeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\"}}]})(props);\n};\nexport function MdOutlineHealing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.73 12.02l3.98-3.98a.996.996 0 000-1.41l-4.34-4.34a.996.996 0 00-1.41 0l-3.98 3.98L8 2.29a1.001 1.001 0 00-1.41 0L2.25 6.63a.996.996 0 000 1.41l3.98 3.98L2.25 16a.996.996 0 000 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34a.996.996 0 000-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34l-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z\"}}]})(props);\n};\nexport function MdOutlineHevc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 11h-1V9H3v6h1.5v-2.5h1V15H7V9H5.5zM21 11v-1c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h-1.5v.5h-1v-3h1v.5H21zM14.25 13.5L13.5 9H12l1 6h2.5l1-6H15zM8 9v6h3.5v-1.5h-2v-1h2V11h-2v-.5h2V9z\"}}]})(props);\n};\nexport function MdOutlineHideImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v11.17l2 2V5c0-1.1-.9-2-2-2H5.83l2 2H19zM2.81 2.81L1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.41L2.81 2.81zM5 19V7.83l7.07 7.07-.82 1.1L9 13l-3 4h8.17l2 2H5z\"}}]})(props);\n};\nexport function MdOutlineImageAspectRatio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z\"}}]})(props);\n};\nexport function MdOutlineImageNotSupported (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.9 21.9l-6.1-6.1-2.69-2.69L5 5 3.59 3.59 2.1 2.1.69 3.51 3 5.83V19c0 1.1.9 2 2 2h13.17l2.31 2.31 1.42-1.41zM5 19V7.83l6.84 6.84-.84 1.05L9 13l-3 4h8.17l2 2H5zM7.83 5l-2-2H19c1.1 0 2 .9 2 2v13.17l-2-2V5H7.83z\"}}]})(props);\n};\nexport function MdOutlineImageSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9a2.5 2.5 0 010-5 2.5 2.5 0 010 5z\"}}]})(props);\n};\nexport function MdOutlineImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z\"}}]})(props);\n};\nexport function MdOutlineIncompleteCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0 5.52-4.48 10-10 10S2 17.52 2 12c0-2.76 1.12-5.26 2.93-7.07L12 12V2c5.52 0 10 4.48 10 10z\"}}]})(props);\n};\nexport function MdOutlineIso (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z\"}}]})(props);\n};\nexport function MdOutlineLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-4.22 5.63 1.25 1.67L14 9.33 19 16h-8.46l-4.01-5.37L1 18h22L14 6zM5 16l1.52-2.03L8.04 16H5z\"}}]})(props);\n};\nexport function MdOutlineLeakAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2a9 9 0 01-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2a9 9 0 019-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z\"}}]})(props);\n};\nexport function MdOutlineLeakRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3h-2c0 1.35-.31 2.63-.84 3.77l1.49 1.49C13.51 6.7 14 4.91 14 3zm7 9v-2c-1.91 0-3.7.49-5.27 1.35l1.49 1.49c1.15-.53 2.43-.84 3.78-.84zm0 4v-2c-.79 0-1.54.13-2.24.37l1.68 1.68c.19-.01.37-.05.56-.05zM10 3H8c0 .19-.04.37-.06.56l1.68 1.68c.25-.7.38-1.46.38-2.24zm-5.59-.14L3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97A8.99 8.99 0 013 12v2c2.72 0 5.2-.99 7.11-2.62l2.51 2.51C10.99 15.81 10 18.29 10 21h2c0-2.16.76-4.14 2.03-5.7l1.43 1.43A6.972 6.972 0 0014 21h2c0-1.06.33-2.03.89-2.84L19.73 21l1.41-1.41L4.41 2.86z\"}}]})(props);\n};\nexport function MdOutlineLens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\"}}]})(props);\n};\nexport function MdOutlineLinkedCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9v11H4V8h4.05l1.83-2H15V4H9L7.17 6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9h-2zm.67-1.01H22A6.003 6.003 0 0016 2v1.33c2.58 0 4.66 2.08 4.67 4.66zm-2.67 0h1.33A3.327 3.327 0 0016 4.67V6c1.11 0 1.99.89 2 1.99zM7 14c0 2.76 2.24 5 5 5s5-2.24 5-5-2.24-5-5-5-5 2.24-5 5zm8 0c0 1.65-1.35 3-3 3s-3-1.35-3-3 1.35-3 3-3 3 1.34 3 3z\"}}]})(props);\n};\nexport function MdOutlineLooks3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9a2 2 0 00-2-2H9v2h4v2h-2v2h2v2H9v2h4a2 2 0 002-2z\"}}]})(props);\n};\nexport function MdOutlineLooks4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M.04 0h24v24h-24V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z\"}}]})(props);\n};\nexport function MdOutlineLooks5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-2a2 2 0 00-2-2h-2V9h4V7H9v6h4v2H9v2h4a2 2 0 002-2z\"}}]})(props);\n};\nexport function MdOutlineLooks6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17h2a2 2 0 002-2v-2a2 2 0 00-2-2h-2V9h4V7h-4a2 2 0 00-2 2v6a2 2 0 002 2zm0-4h2v2h-2v-2zm8-10H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineLooksOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z\"}}]})(props);\n};\nexport function MdOutlineLooksTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2a2 2 0 002-2V9a2 2 0 00-2-2H9v2h4v2h-2a2 2 0 00-2 2v4h6v-2z\"}}]})(props);\n};\nexport function MdOutlineLooks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z\"}}]})(props);\n};\nexport function MdOutlineLoupe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineMicExternalOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 5c0-1.66-1.34-3-3-3-.62 0-1.19.19-1.67.5l4.15 4.15C9.8 6.18 10 5.61 10 5zM14 6c0-1.1.9-2 2-2s2 .9 2 2v9.17l2 2V6c0-2.21-1.79-4-4-4s-4 1.79-4 4v3.17l2 2V6zM2.1 2.1L.69 3.51 5.17 8H4l1 10h1c0 2.21 1.79 4 4 4s4-1.79 4-4v-1.17l6.49 6.49 1.41-1.41L2.1 2.1zM7.19 16h-.38l-.6-6h.96l.56.56L7.19 16zM12 18c0 1.1-.9 2-2 2s-2-.9-2-2h1l.56-5.61L12 14.83V18z\"}}]})(props);\n};\nexport function MdOutlineMicExternalOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.22 7c.48-.53.78-1.23.78-2 0-1.66-1.34-3-3-3S4 3.34 4 5c0 .77.3 1.47.78 2h4.44z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2c-2.21 0-4 1.79-4 4v12c0 1.1-.9 2-2 2s-2-.9-2-2h1l1-10H4l1 10h1c0 2.21 1.79 4 4 4s4-1.79 4-4V6c0-1.1.9-2 2-2s2 .9 2 2v16h2V6c0-2.21-1.79-4-4-4zM7.19 16h-.38l-.6-6h1.58l-.6 6z\"}}]})(props);\n};\nexport function MdOutlineMonochromePhotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.2L15 3H9L7.2 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-8v-1c-2.8 0-5-2.2-5-5s2.2-5 5-5V7h8v12zm-3-6c0-2.8-2.2-5-5-5v1.8c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2V18c2.8 0 5-2.2 5-5zm-8.2 0c0 1.8 1.4 3.2 3.2 3.2V9.8c-1.8 0-3.2 1.4-3.2 3.2z\"}}]})(props);\n};\nexport function MdOutlineMotionPhotosAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 7.88l1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM7 5.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5zm5.03 3.49h-.07L10.8 12.3h2.39l-1.16-3.31zm-.74-1.49h1.43l3.01 8h-1.39l-.72-2.04h-3.23l-.73 2.04H8.28l3.01-8z\"}}]})(props);\n};\nexport function MdOutlineMotionPhotosOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.81 2.81L1.39 4.22l2.27 2.27A9.91 9.91 0 002 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.42L2.81 2.81zM12 20c-4.41 0-8-3.59-8-8 0-1.48.41-2.86 1.12-4.06l10.93 10.94A7.869 7.869 0 0112 20zM12 4c4.41 0 8 3.59 8 8 0 1.48-.41 2.86-1.12 4.05l1.45 1.45A9.782 9.782 0 0022 12c0-5.52-4.48-10-10-10-2.04 0-3.93.61-5.51 1.66l1.45 1.45C9.14 4.41 10.52 4 12 4z\"}}]})(props);\n};\nexport function MdOutlineMotionPhotosOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 7.88l1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM7 5.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5z\"}}]})(props);\n};\nexport function MdOutlineMotionPhotosPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 7.88l1.54 1.54C4.15 10.23 4 11.1 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.9 0-1.77.15-2.58.42L7.89 2.89C9.15 2.32 10.54 2 12 2c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12c0-1.47.32-2.86.88-4.12zM7 5.5C7 6.33 6.33 7 5.5 7S4 6.33 4 5.5 4.67 4 5.5 4 7 4.67 7 5.5zm4 9.5H9V9h2v6zm4 0h-2V9h2v6z\"}}]})(props);\n};\nexport function MdOutlineMotionPhotosPaused (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0 5.52-4.48 10-10 10S2 17.52 2 12c0-1.19.22-2.32.6-3.38l1.88.68C4.17 10.14 4 11.05 4 12c0 4.41 3.59 8 8 8s8-3.59 8-8-3.59-8-8-8c-.95 0-1.85.17-2.69.48l-.68-1.89C9.69 2.22 10.82 2 12 2c5.52 0 10 4.48 10 10zM5.5 4C4.67 4 4 4.67 4 5.5S4.67 7 5.5 7 7 6.33 7 5.5 6.33 4 5.5 4zM11 16V8H9v8h2zm4 0V8h-2v8h2z\"}}]})(props);\n};\nexport function MdOutlineMovieCreation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.76 10H20v8H4V6.47M22 4h-4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4z\"}}]})(props);\n};\nexport function MdOutlineMovieFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 11l-.94 2.06L7 14l2.06.94L10 17l.94-2.06L13 14l-2.06-.94zm8.01-7l2 4h-3l-2-4h-2l2 4h-3l-2-4h-2l2 4h-3l-2-4h-1c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 1.99-.9 1.99-2V4h-3.99zm2 14h-16V6.47L5.77 10H16l-.63 1.37L14 12l1.37.63L16 14l.63-1.37L18 12l-1.37-.63L16 10h4.01v8z\"}}]})(props);\n};\nexport function MdOutlineMp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 9h-3.5v6H15v-1.5h2c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-.5 3H15v-1.5h1.5V12zM11.5 9H7c-.55 0-1 .45-1 1v5h1.5v-4.5h1v3H10v-3h1V15h1.5v-5c0-.55-.45-1-1-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 19V5h14v14H5z\"}}]})(props);\n};\nexport function MdOutlineMusicNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3l.01 10.55c-.59-.34-1.27-.55-2-.55a4.001 4.001 0 100 8c2.22 0 3.99-1.79 3.99-4V7h4V3h-6zm-1.99 16c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineMusicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7h4V3h-6v4.61l2 2zm-2 3.44L4.41 2.86 3 4.27l9 9v.28c-.94-.54-2.1-.75-3.33-.32-1.34.48-2.37 1.67-2.61 3.07a4.007 4.007 0 004.59 4.65c1.96-.31 3.35-2.11 3.35-4.1v-1.58L19.73 21l1.41-1.41L12 10.44zM10 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineNaturePeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0014 16.06V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88a7 7 0 006.17-6.95zm-7 5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\"}}]})(props);\n};\nexport function MdOutlineNature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 16.12h-.03c3.49-.4 6.2-3.36 6.2-6.95 0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0011 16.06V20H5v2h14v-2h-6v-3.88zM7.17 9.17c0-2.76 2.24-5 5-5s5 2.24 5 5-2.24 5-5 5-5-2.24-5-5z\"}}]})(props);\n};\nexport function MdOutlineNavigateBefore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.61 7.41L14.2 6l-6 6 6 6 1.41-1.41L11.03 12l4.58-4.59z\"}}]})(props);\n};\nexport function MdOutlineNavigateNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.02 6L8.61 7.41 13.19 12l-4.58 4.59L10.02 18l6-6-6-6z\"}}]})(props);\n};\nexport function MdOutlinePalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67A2.5 2.5 0 0112 22zm0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5a.54.54 0 00-.14-.35c-.41-.46-.63-1.05-.63-1.65a2.5 2.5 0 012.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlinePanoramaFishEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlinePanoramaHorizontalSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.5c-3.89 0-6.95-.84-8.69-1.43A.993.993 0 002 5.02V19c0 .68.66 1.17 1.31.95C5.36 19.26 8.1 18.5 12 18.5c3.87 0 6.66.76 8.69 1.45A.999.999 0 0022 19V5c0-.68-.66-1.17-1.31-.95-2.03.68-4.83 1.45-8.69 1.45z\"}}]})(props);\n};\nexport function MdOutlinePanoramaHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16s-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7s-6.18-.55-9.12-1.64A.94.94 0 002.57 4c-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64s6.18.55 9.12 1.64c.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z\"}}]})(props);\n};\nexport function MdOutlinePanoramaPhotosphereSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.95 8.15c-.29-.16-.61-.31-.93-.46C19.4 4.33 15.98 2 12 2 8.02 2 4.6 4.33 2.99 7.68c-.33.15-.64.3-.93.46C1.41 8.5 1 9.17 1 9.91v4.18c0 .74.41 1.41 1.05 1.77.29.16.61.31.93.46C4.6 19.67 8.02 22 12 22c3.98 0 7.4-2.33 9.01-5.68.33-.15.64-.3.93-.46.65-.36 1.06-1.03 1.06-1.77V9.91c0-.74-.41-1.41-1.05-1.76zM12 4c2.37 0 4.49 1.04 5.95 2.68C16.17 6.25 14.15 6 12 6c-2.15 0-4.17.25-5.95.68A7.943 7.943 0 0112 4zm0 16c-2.37 0-4.49-1.04-5.95-2.68 1.78.43 3.8.68 5.95.68s4.17-.25 5.95-.68A7.943 7.943 0 0112 20z\"}}]})(props);\n};\nexport function MdOutlinePanoramaPhotosphere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.95 8.15c-.29-.16-.61-.31-.93-.46C19.4 4.33 15.98 2 12 2 8.02 2 4.6 4.33 2.99 7.68c-.33.15-.64.3-.93.46C1.41 8.5 1 9.17 1 9.91v4.18c0 .74.41 1.41 1.05 1.77.29.16.61.31.93.46C4.6 19.67 8.02 22 12 22c3.98 0 7.4-2.33 9.01-5.68.33-.15.64-.3.93-.46.65-.36 1.06-1.03 1.06-1.77V9.91c0-.74-.41-1.41-1.05-1.76zM21 9.91v4.19c-2.19 1.21-5.47 1.9-9 1.9-3.53 0-6.81-.7-9-1.91V9.91C5.2 8.69 8.47 8 12 8c3.53 0 6.81.7 9 1.91zM12 4c2.37 0 4.49 1.04 5.95 2.68C16.17 6.25 14.15 6 12 6c-2.15 0-4.17.25-5.95.68A7.943 7.943 0 0112 4zm0 16c-2.37 0-4.49-1.04-5.95-2.68 1.78.43 3.8.68 5.95.68s4.17-.25 5.95-.68A7.943 7.943 0 0112 20z\"}}]})(props);\n};\nexport function MdOutlinePanoramaVerticalSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 12c0-3.89.84-6.95 1.43-8.69A.993.993 0 0018.98 2H5c-.68 0-1.16.66-.95 1.31C4.74 5.36 5.5 8.1 5.5 12c0 3.87-.76 6.66-1.45 8.69-.21.65.27 1.31.95 1.31h14c.68 0 1.17-.66.95-1.31-.68-2.03-1.45-4.83-1.45-8.69z\"}}]})(props);\n};\nexport function MdOutlinePanoramaVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12s.55-6.18 1.64-9.12a.94.94 0 00.06-.31c0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12s-.55 6.18-1.64 9.12c-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8s-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8s.39 5.4 1.16 8H6.54z\"}}]})(props);\n};\nexport function MdOutlinePanoramaWideAngleSelect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c-3.97 0-6.85.63-9 1-.55 1.97-1 3.92-1 7 0 3.03.45 5.05 1 7 2.15.37 4.98 1 9 1 3.97 0 6.85-.63 9-1 .57-2.02 1-3.99 1-7 0-3.03-.45-5.05-1-7-2.15-.37-4.98-1-9-1z\"}}]})(props);\n};\nexport function MdOutlinePanoramaWideAngle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c2.45 0 4.71.2 7.29.64.47 1.78.71 3.58.71 5.36s-.24 3.58-.71 5.36c-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64C4.24 15.58 4 13.78 4 12s.24-3.58.71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z\"}}]})(props);\n};\nexport function MdOutlinePanorama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H3V6h18v12zm-6.5-7L11 15.51 8.5 12.5 5 17h14z\"}}]})(props);\n};\nexport function MdOutlinePhotoAlbum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 2v5l-1-.75L9 9V4h2zm7 16H6V4h1v9l3-2.25L13 13V4h5v16zm-6.72-2.04L9.5 15.81 7 19h10l-3.22-4.26z\"}}]})(props);\n};\nexport function MdOutlinePhotoCameraBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14H4V7h4.05l1.83-2h4.24l1.83 2H20v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.25 16L9 13l-3 4h12l-3.75-5z\"}}]})(props);\n};\nexport function MdOutlinePhotoCameraFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14H4V7h4.05l1.83-2h4.24l1.83 2H20v12z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"11\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.78 14.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 008 16.43V17h8v-.57c0-.81-.48-1.53-1.22-1.85z\"}}]})(props);\n};\nexport function MdOutlinePhotoCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.12 4l1.83 2H20v12H4V6h4.05l1.83-2h4.24M15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2zm-3 7c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5z\"}}]})(props);\n};\nexport function MdOutlinePhotoFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z\"}}]})(props);\n};\nexport function MdOutlinePhotoLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v12H8V4h12m0-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 9.67l1.69 2.26 2.48-3.1L19 15H9zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z\"}}]})(props);\n};\nexport function MdOutlinePhotoSizeSelectActual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3C2 3 1 4 1 5v14c0 1.1.9 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zm0 15.92c-.02.03-.06.06-.08.08H3V5.08L3.08 5h17.83c.03.02.06.06.08.08v13.84zm-10-3.41L8.5 12.5 5 17h14l-4.5-6z\"}}]})(props);\n};\nexport function MdOutlinePhotoSizeSelectLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15h2v2h-2v-2zm0-4h2v2h-2v-2zm2 8h-2v2c1 0 2-1 2-2zM13 3h2v2h-2V3zm8 4h2v2h-2V7zm0-4v2h2c0-1-1-2-2-2zM1 7h2v2H1V7zm16-4h2v2h-2V3zm0 16h2v2h-2v-2zM3 3C2 3 1 4 1 5h2V3zm6 0h2v2H9V3zM5 3h2v2H5V3zm-4 8v8c0 1.1.9 2 2 2h12V11H1zm2 8l2.5-3.21 1.79 2.15 2.5-3.22L13 19H3z\"}}]})(props);\n};\nexport function MdOutlinePhotoSizeSelectSmall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 15h-2v2h2v-2zm0-4h-2v2h2v-2zm0 8h-2v2c1 0 2-1 2-2zM15 3h-2v2h2V3zm8 4h-2v2h2V7zm-2-4v2h2c0-1-1-2-2-2zM3 21h8v-6H1v4c0 1.1.9 2 2 2zM3 7H1v2h2V7zm12 12h-2v2h2v-2zm4-16h-2v2h2V3zm0 16h-2v2h2v-2zM3 3C2 3 1 4 1 5h2V3zm0 8H1v2h2v-2zm8-8H9v2h2V3zM7 3H5v2h2V3z\"}}]})(props);\n};\nexport function MdOutlinePhoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z\"}}]})(props);\n};\nexport function MdOutlinePictureAsPdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm12 6V9c0-.55-.45-1-1-1h-2v5h2c.55 0 1-.45 1-1zm-2-3h1v3h-1V9zm4 2h1v-1h-1V9h1V8h-2v5h1zm-8 0h1c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H9v5h1v-2zm0-2h1v1h-1V9z\"}}]})(props);\n};\nexport function MdOutlinePortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12c1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3 1.35 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm6 8.58c0-2.5-3.97-3.58-6-3.58s-6 1.08-6 3.58V18h12v-1.42zM8.48 16c.74-.51 2.23-1 3.52-1s2.78.49 3.52 1H8.48zM19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineRawOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.15 14.32l.59-2.36.76 3.04h1.48l1.5-6h-1.5l-.74 3-.74-3h-1.52l-.74 3-.74-3H14l.72 2.9zM1.39 4.22L6.17 9H3v6h1.5v-2h1.1l.9 2H8l-.9-2.1c.5-.3.9-.8.9-1.4v-.67l1.43 1.43L8.75 15h1.5l.38-1.5h.04l9.11 9.11 1.41-1.41L2.81 2.81 1.39 4.22zM6.5 11.5h-2v-1h2v1z\"}}]})(props);\n};\nexport function MdOutlineRawOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 9H3v6h1.5v-2h1.1l.9 2H8l-.9-2.1c.5-.3.9-.8.9-1.4v-1C8 9.7 7.3 9 6.5 9zm0 2.5h-2v-1h2v1zM10.25 9l-1.5 6h1.5l.38-1.5h1.75l.37 1.5h1.5l-1.5-6h-2.5zm.75 3l.25-1h.5l.25 1h-1zM19.98 9l-.74 3-.74-3h-1.52l-.74 3-.74-3H14l1.5 6h1.48l.76-3.04.76 3.04h1.48l1.5-6z\"}}]})(props);\n};\nexport function MdOutlineReceiptLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 3.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2v14H3v3c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V2l-1.5 1.5zM15 20H6c-.55 0-1-.45-1-1v-1h10v2zm4-1c0 .55-.45 1-1 1s-1-.45-1-1v-3H8V5h11v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7h6v2H9zM16 7h2v2h-2zM9 10h6v2H9zM16 10h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineRemoveRedEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.5a9.77 9.77 0 018.82 5.5c-1.65 3.37-5.02 5.5-8.82 5.5S4.83 15.37 3.18 12A9.77 9.77 0 0112 6.5m0-2C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zm0 5a2.5 2.5 0 010 5 2.5 2.5 0 010-5m0-2c-2.48 0-4.5 2.02-4.5 4.5s2.02 4.5 4.5 4.5 4.5-2.02 4.5-4.5-2.02-4.5-4.5-4.5z\"}}]})(props);\n};\nexport function MdOutlineRotate90DegreesCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.34 6.41L.86 12.9l6.49 6.48 6.49-6.48-6.5-6.49zM3.69 12.9l3.66-3.66L11 12.9l-3.66 3.66-3.65-3.66zm15.67-6.26A8.95 8.95 0 0013 4V.76L8.76 5 13 9.24V6c1.79 0 3.58.68 4.95 2.05a7.007 7.007 0 010 9.9 6.973 6.973 0 01-7.79 1.44l-1.49 1.49C10.02 21.62 11.51 22 13 22c2.3 0 4.61-.88 6.36-2.64a8.98 8.98 0 000-12.72z\"}}]})(props);\n};\nexport function MdOutlineRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.11 8.53L5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z\"}}]})(props);\n};\nexport function MdOutlineRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11a7.906 7.906 0 00-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z\"}}]})(props);\n};\nexport function MdOutlineShutterSpeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 1H9v2h6V1zm4.03 6.39l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0012 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a8.994 8.994 0 007.03-14.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-.32-5H6.35a5.992 5.992 0 003.41 3.56l-.11-.06 2.03-3.5zm5.97-4a6.012 6.012 0 00-3.34-3.54L12.26 11h5.39zm-7.04 7.83c.45.11.91.17 1.39.17 1.34 0 2.57-.45 3.57-1.19l-2.11-3.9-2.85 4.92zM7.55 8.99A5.965 5.965 0 006 13c0 .34.04.67.09 1h4.72L7.55 8.99zm8.79 8.14A5.94 5.94 0 0018 13c0-.34-.04-.67-.09-1h-4.34l2.77 5.13zm-3.01-9.98C12.9 7.06 12.46 7 12 7c-1.4 0-2.69.49-3.71 1.29l2.32 3.56 2.72-4.7z\"}}]})(props);\n};\nexport function MdOutlineSlideshow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}}]})(props);\n};\nexport function MdOutlineStraighten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z\"}}]})(props);\n};\nexport function MdOutlineStyle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.53 19.65l1.34.56v-9.03l-2.43 5.86c-.41 1.02.08 2.19 1.09 2.61zm19.5-3.7L17.07 3.98a2.013 2.013 0 00-1.81-1.23c-.26 0-.53.04-.79.15L7.1 5.95a1.999 1.999 0 00-1.08 2.6l4.96 11.97a1.998 1.998 0 002.6 1.08l7.36-3.05a1.994 1.994 0 001.09-2.6zm-9.2 3.8L7.87 7.79l7.35-3.04h.01l4.95 11.95-7.35 3.05z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"9\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.88 19.75c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z\"}}]})(props);\n};\nexport function MdOutlineSwitchCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM9.88 4h4.24l1.83 2H20v12H4V6h4.05\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11H9V8.5L5.5 12 9 15.5V13h6v2.5l3.5-3.5L15 8.5z\"}}]})(props);\n};\nexport function MdOutlineSwitchVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13h4v2l3-3-3-3v2H8V9l-3 3 3 3zm10-3.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zM16 17H4V7h12v10z\"}}]})(props);\n};\nexport function MdOutlineTagFaces (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"}}]})(props);\n};\nexport function MdOutlineTexture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.51 3.08L3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3L3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z\"}}]})(props);\n};\nexport function MdOutlineThermostatAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12V6c0-1.66-1.34-3-3-3S5 4.34 5 6v6c-1.21.91-2 2.37-2 4 0 1.12.38 2.14 1 2.97V19h.02c.91 1.21 2.35 2 3.98 2s3.06-.79 3.98-2H12v-.03c.62-.83 1-1.85 1-2.97 0-1.63-.79-3.09-2-4zm-6 4c0-.94.45-1.84 1.2-2.4L7 13V6c0-.55.45-1 1-1s1 .45 1 1v7l.8.6c.75.57 1.2 1.46 1.2 2.4H5zM18.62 4h-1.61l-3.38 9h1.56l.81-2.3h3.63l.8 2.3H22l-3.38-9zm-2.15 5.39l1.31-3.72h.08l1.31 3.72h-2.7z\"}}]})(props);\n};\nexport function MdOutlineTimelapse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.75A5.974 5.974 0 0012 5.99v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0a5.99 5.99 0 00-.01-8.48zM12 1.99c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineTimer10 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M-.01 7.72V9.4l3-1V18h2V6h-.25L-.01 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 01-.87-.23c-.23-.08-.41-.16-.55-.25s-.23-.19-.28-.3a.978.978 0 01.01-.8c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11s.35.17.48.29.22.26.29.42c.06.16.1.32.1.49h1.95A2.517 2.517 0 0023 9.81c-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21s-.77.33-1.06.57c-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77s-.66.29-1.17.29c-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 01-.59-1.11h-1.89c0 .36.08.71.24 1.05s.39.65.7.93c.31.27.69.49 1.15.66s.98.25 1.58.25c.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27s-1.11.09-1.59.27c-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89s1.01.28 1.59.28c.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89s.6-.94.78-1.6c.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53s-.2.76-.36 1.02c-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02s-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52s.21-.74.38-1c.16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99s.13.92.13 1.52v2.51h-.01z\"}}]})(props);\n};\nexport function MdOutlineTimer3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.61 12.97c-.16-.24-.36-.46-.62-.65a3.38 3.38 0 00-.93-.48c.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33s.46-.12.73-.12c.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57s-.38.28-.63.37-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36s-.3-.34-.39-.56c-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23s.91-.38 1.26-.68c.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 01-.87-.23c-.23-.08-.41-.16-.55-.25s-.23-.19-.28-.3c-.05-.11-.08-.24-.08-.39s.03-.28.09-.41.15-.25.27-.34c.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11s.35.17.48.29.22.26.29.42c.06.16.1.32.1.49h1.95a2.517 2.517 0 00-.93-1.97c-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21s-.77.33-1.06.57c-.29.24-.51.52-.67.84s-.23.65-.23 1.01.08.68.23.96.37.52.64.73c.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77s-.66.29-1.17.29c-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 01-.59-1.11h-1.89c0 .36.08.71.24 1.05s.39.65.7.93c.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z\"}}]})(props);\n};\nexport function MdOutlineTimerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8v.86l2 2V8zM9 1h6v2H9zm3 5c3.87 0 7 3.13 7 7 0 1.12-.27 2.18-.74 3.12l1.47 1.47C20.53 16.25 21 14.68 21 13c0-2.12-.74-4.07-1.97-5.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0012 4c-1.68 0-3.25.47-4.59 1.27l1.47 1.47c.94-.47 2-.74 3.12-.74zM3.16 3.86L1.75 5.27 4.5 8.02A9.043 9.043 0 003 13c0 4.97 4.02 9 9 9 1.84 0 3.55-.55 4.98-1.5l2.5 2.5 1.41-1.41L3.16 3.86zM12 20c-3.87 0-7-3.13-7-7 0-1.29.35-2.49.96-3.52l9.57 9.57c-1.04.6-2.24.95-3.53.95z\"}}]})(props);\n};\nexport function MdOutlineTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.07 1.01h-6v2h6v-2zm-4 13h2v-6h-2v6zm8.03-6.62l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0012.07 4c-4.97 0-9 4.03-9 9s4.02 9 9 9 9-4.03 9-9c0-2.11-.74-4.06-1.97-5.61zm-7.03 12.62c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineTonality (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z\"}}]})(props);\n};\nexport function MdOutlineTransform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z\"}}]})(props);\n};\nexport function MdOutlineTune (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z\"}}]})(props);\n};\nexport function MdOutlineVideoCameraBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10.48V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4.48l4 3.98v-11l-4 3.98zM16 18H4V6h12v12zm-4.38-6.5L9 15l-1.62-2.17L5 16h10l-3.38-4.5z\"}}]})(props);\n};\nexport function MdOutlineVideoCameraFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10.48V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4.48l4 3.98v-11l-4 3.98zm-2-.79V18H4V6h12v3.69z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 15.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 00-5.56 0A2.01 2.01 0 006 15.43V16h8v-.57z\"}}]})(props);\n};\nexport function MdOutlineVideoStable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 18V6h2.95l-2.33 8.73L16.82 18H4zm11.62-2.39l-8.55-2.29L8.38 8.4l8.56 2.29-1.32 4.92zM20 18h-2.95l2.34-8.73L7.18 6H20v12z\"}}]})(props);\n};\nexport function MdOutlineViewComfy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14h19V5H3zm17 4h-2.25V7H20v2zM9.25 11h2.25v2H9.25v-2zm-2 2H5v-2h2.25v2zm4.25-4H9.25V7h2.25v2zm2-2h2.25v2H13.5V7zm-2 8v2H9.25v-2h2.25zm2 0h2.25v2H13.5v-2zm0-2v-2h2.25v2H13.5zm4.25-2H20v2h-2.25v-2zM7.25 7v2H5V7h2.25zM5 15h2.25v2H5v-2zm12.75 2v-2H20v2h-2.25z\"}}]})(props);\n};\nexport function MdOutlineViewCompact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14h19V5H3zm2 2h15v4H5V7zm0 10v-4h4v4H5zm6 0v-4h9v4h-9z\"}}]})(props);\n};\nexport function MdOutlineVignette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5v14H3V5h18m0-2H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 5c3.25 0 6 1.83 6 4s-2.75 4-6 4-6-1.83-6-4 2.75-4 6-4m0-2c-4.42 0-8 2.69-8 6s3.58 6 8 6 8-2.69 8-6-3.58-6-8-6z\"}}]})(props);\n};\nexport function MdOutlineVrpano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.01 4C20.45 4 17.4 5.5 12 5.5c-5.31 0-8.49-1.49-9.01-1.49-.53 0-.99.44-.99 1.01V19c0 .57.46 1 .99 1 .57 0 3.55-1.5 9.01-1.5 5.42 0 8.44 1.5 9.01 1.5.53 0 .99-.43.99-1V5c0-.57-.46-1-.99-1zM20 17.63c-2.01-.59-4.62-1.13-8-1.13-3.39 0-5.99.54-8 1.13V6.38c2.58.73 5.32 1.12 8 1.12 3.38 0 5.99-.54 8-1.13v11.26z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.17 10.99l-3.69 4.42c2-.26 4.18-.41 6.52-.41 2.3 0 4.52.15 6.51.4L14 10l-2.83 3.39-2-2.4z\"}}]})(props);\n};\nexport function MdOutlineWbAuto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L9 7H7zm-.15 5.65L8 9l1.15 3.65h-2.3zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76l-.01.01C12.76 5.18 10.53 4 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c2.96 0 5.55-1.61 6.93-4 .03-.06.05-.12.08-.18.05-.08.09-.17.14-.25l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-8.63 7.67C12.38 16.64 10.35 18 8 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6c0 .96-.23 1.86-.63 2.67z\"}}]})(props);\n};\nexport function MdOutlineWbCloudy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 6c2.61 0 4.89 1.86 5.4 4.43l.3 1.5 1.52.11c1.56.11 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3h-13c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95A5.457 5.457 0 0112.01 6m0-2C9.12 4 6.6 5.64 5.35 8.04 2.35 8.36.01 10.91.01 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96C18.68 6.59 15.65 4 12.01 4z\"}}]})(props);\n};\nexport function MdOutlineWbIncandescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.55 19.09l1.41 1.41 1.79-1.8-1.41-1.41zM11 20h2v3h-2zM1 11h3v2H1zm12-6.95v3.96l1 .58c1.24.72 2 2.04 2 3.46 0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.42.77-2.74 2-3.46l1-.58V4.05h2m2-2H9v4.81C7.21 7.9 6 9.83 6 12.05c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19V2.05zM20 11h3v2h-3zm-2.76 7.71l1.79 1.8 1.41-1.41-1.8-1.79z\"}}]})(props);\n};\nexport function MdOutlineWbIridescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15h14V9H5v6zm2-4h10v2H7v-2zm4-10h2v3h-2zm9.46 4.01L19.04 3.6l-1.79 1.79 1.41 1.41zM11 20h2v3h-2zm6.24-1.29l1.79 1.8 1.42-1.42-1.8-1.79zM4.96 3.595l1.788 1.79L5.34 6.79 3.553 5.003zM3.55 19.08l1.41 1.42 1.79-1.8-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineWbShade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12v2.5l5.5 5.5H22l-8-8zm0 8h3l-3-3v3zM8 4l-6 6h2v10h8V10h2L8 4zm1 10H7v-4h2v4z\"}}]})(props);\n};\nexport function MdOutlineWbSunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79zM1 10.5h3v2H1zM11 .55h2V3.5h-2zm8.04 2.495l1.408 1.407-1.79 1.79-1.407-1.408zm-1.8 15.115l1.79 1.8 1.41-1.41-1.8-1.79zM20 10.5h3v2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm-1 4h2v2.95h-2zm-7.45-.96l1.41 1.41 1.79-1.8-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineWbTwilight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.955 8.662l2.12-2.122 1.416 1.414-2.121 2.122zM2 18h20v2H2zM11 4h2v3h-2zM3.543 7.925L4.957 6.51l2.121 2.12-1.414 1.415zM5 16h14c0-3.87-3.13-7-7-7s-7 3.13-7 7z\"}}]})(props);\n};\nexport function MdOutline360 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7C6.48 7 2 9.24 2 12c0 2.24 2.94 4.13 7 4.77V20l4-4-4-4v2.73c-3.15-.56-5-1.9-5-2.73 0-1.06 3.04-3 8-3s8 1.94 8 3c0 .73-1.46 1.89-4 2.53v2.05c3.53-.77 6-2.53 6-4.58 0-2.76-4.48-5-10-5z\"}}]})(props);\n};\nexport function MdOutlineAddBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 4h15v2H2zM15 17h2v-3h1v-2l-1-5H2l-1 5v2h1v6h9v-6h4v3zm-6 1H4v-4h5v4zm-5.96-6l.6-3h11.72l.6 3H3.04z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3z\"}}]})(props);\n};\nexport function MdOutlineAddLocationAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 1v3h3v2h-3v3h-2V6h-3V4h3V1h2zm-8 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm1-9.94v2.02A6.53 6.53 0 0012 5c-3.35 0-6 2.57-6 6.2 0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.79 6-9.14V11h2v.2c0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 6.22 7.8 3 12 3c.34 0 .67.02 1 .06z\"}}]})(props);\n};\nexport function MdOutlineAddLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6v3h3v2h-3v3h-2v-3H8V9h3V6h2zm5 4.2C18 6.57 15.35 4 12 4s-6 2.57-6 6.2c0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.8 6-9.14zM12 2c4.2 0 8 3.22 8 8.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 5.22 7.8 2 12 2z\"}}]})(props);\n};\nexport function MdOutlineAddRoad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v-3h-2v3h-3v2h3v3h2v-3h3v-2zM18 4h2v9h-2zM4 4h2v16H4zM11 4h2v4h-2zM11 10h2v4h-2zM11 16h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineAgriculture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 9h5c0-1.1-.9-2-2-2H4c-.55 0-1 .45-1 1s.45 1 1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 14.06V8c0-1.1-.9-2-2-2h-6.29l-1.06-1.06 1.41-1.41-.71-.71-3.53 3.53.71.71 1.41-1.41L13 6.71V9c0 1.1-.9 2-2 2H8.96c-.22-.16-.45-.3-.69-.43l-.4.89-.46-.21.4-.9C7.26 10.13 6.64 10 6 10c-.53 0-1.04.11-1.52.26l.34.91-.47.18-.35-.93a4.92 4.92 0 00-2.43 2.31l.89.4-.21.46-.9-.4C1.13 13.74 1 14.36 1 15c0 .53.11 1.04.26 1.52l.91-.34.18.47-.93.35a4.92 4.92 0 002.31 2.43l.4-.89.46.21-.4.9c.55.22 1.17.35 1.81.35.53 0 1.04-.11 1.52-.26l-.34-.91.47-.18.35.93a4.92 4.92 0 002.43-2.31l-.89-.4.21-.46.9.4c.1-.26.18-.54.24-.82h5.16c-.02.17-.05.34-.05.51 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-.95-.38-1.81-1-2.44zM6 18c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm4.87-4c-.04-.18-.08-.35-.13-.52l-.91.34-.18-.47.93-.35H11c2.21 0 4-1.79 4-4V8h5v5.05c-.16-.02-.33-.05-.5-.05-.95 0-1.81.38-2.44 1h-6.19zm8.63 4c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineAltRoute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.78 11.16l-1.42 1.42a7.282 7.282 0 01-1.79-2.94l1.94-.49c.32.89.77 1.5 1.27 2.01zM11 6L7 2 3 6h3.02c.02.81.08 1.54.19 2.17l1.94-.49C8.08 7.2 8.03 6.63 8.02 6H11zm10 0l-4-4-4 4h2.99c-.1 3.68-1.28 4.75-2.54 5.88-.5.44-1.01.92-1.45 1.55-.34-.49-.73-.88-1.13-1.24L9.46 13.6c.93.85 1.54 1.54 1.54 3.4v5h2v-5c0-2.02.71-2.66 1.79-3.63 1.38-1.24 3.08-2.78 3.2-7.37H21z\"}}]})(props);\n};\nexport function MdOutlineAtm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9v1.5h2.25V15h1.5v-4.5H14V9H8zM6 9H3c-.55 0-1 .45-1 1v5h1.5v-1.5h2V15H7v-5c0-.55-.45-1-1-1zm-.5 3h-2v-1.5h2V12zM21 9h-4.5c-.55 0-1 .45-1 1v5H17v-4.5h1V14h1.5v-3.51h1V15H22v-5c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineAttractions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.15 14.42c.23-.77.35-1.58.35-2.42s-.12-1.65-.35-2.42c.78-.6 1.02-1.7.51-2.58s-1.58-1.23-2.49-.85a8.53 8.53 0 00-4.18-2.42C13.85 2.75 13.01 2 12 2s-1.85.75-1.98 1.73a8.561 8.561 0 00-4.19 2.42c-.91-.38-1.98-.03-2.49.85s-.27 1.98.51 2.58c-.23.77-.35 1.58-.35 2.42s.12 1.65.35 2.42c-.78.6-1.02 1.7-.51 2.58s1.58 1.23 2.49.85c.4.42.83.79 1.3 1.12L5.78 22h1.88l.98-2.19c.44.19.9.34 1.38.46.13.98.97 1.73 1.98 1.73s1.85-.75 1.98-1.73c.46-.11.91-.26 1.34-.44L16.3 22h1.88l-1.34-3c.48-.34.93-.72 1.34-1.15.91.38 1.99.03 2.49-.85.5-.88.26-1.98-.52-2.58zm-6.59 4.33c-.37-.46-.93-.75-1.56-.75s-1.2.29-1.57.75c-.4-.09-.79-.21-1.16-.37l1.43-3.19a3.522 3.522 0 002.56.02l1.42 3.18c-.36.15-.73.27-1.12.36zm-3.08-6.73c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5zm8.23 1.99c-.61.07-1.18.41-1.52.99-.32.56-.34 1.2-.12 1.75-.28.29-.58.55-.9.79l-1.5-3.35c.49-.59.78-1.34.78-2.16 0-1.89-1.55-3.41-3.46-3.41s-3.46 1.53-3.46 3.41c0 .8.28 1.54.75 2.13l-1.52 3.39c-.31-.23-.6-.48-.87-.76.26-.56.24-1.22-.09-1.79-.34-.59-.93-.94-1.56-.99-.22-.68-.33-1.4-.33-2.15 0-.64.09-1.26.25-1.85.66-.03 1.3-.38 1.65-1 .37-.63.35-1.38.01-1.98.92-.98 2.11-1.69 3.45-2.03.34.59.99 1 1.73 1s1.39-.4 1.73-1c1.34.34 2.53 1.07 3.44 2.05-.32.59-.33 1.33.03 1.95.35.6.96.95 1.6 1 .16.59.25 1.21.25 1.86 0 .75-.12 1.47-.34 2.15z\"}}]})(props);\n};\nexport function MdOutlineBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12h4v1.5h-4zM14 15h4v1.5h-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-5V4c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v3H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-9 0V4h2v5h-2V7zm9 13H4V9h5c0 1.1.9 2 2 2h2c1.1 0 2-.9 2-2h5v11z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.08 16.18c-.64-.28-1.34-.43-2.08-.43s-1.44.15-2.08.43c-.56.24-.92.78-.92 1.39V18h6v-.43c0-.61-.36-1.15-.92-1.39z\"}}]})(props);\n};\nexport function MdOutlineBakeryDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10.94c.13-.32.1-.23.15-.39.3-1.21-.34-2.47-1.5-2.93l-2.01-.8c-.46-.18-.95-.21-1.41-.12-.11-.33-.29-.63-.52-.89-.48-.52-1.15-.81-1.85-.81h-2.71c-.71 0-1.38.29-1.85.81-.24.26-.42.56-.53.88-.46-.09-.95-.06-1.41.12l-2.01.8c-1.16.46-1.8 1.72-1.5 2.93l.15.38C1.1 15.55 1 15.55 1 16.38c0 .91.46 1.74 1.24 2.22 1.42.88 2.49.14 4-.61h11.53c1.52.76 1.86 1.01 2.63 1.01 1 0 2.61-.77 2.61-2.61-.01-.85-.13-.88-2.51-5.45zm-.38 5.99l-1.68-.84 1.08-2.7 1.41 2.71c.28.53-.29 1.09-.81.83zm-5.03-.94l.62-6.9c.03-.33.37-.54.68-.42l2.01.8c.22.09.34.31.31.54l-2.4 5.98h-1.22zm-7.41 0l-2.4-5.98c-.03-.23.09-.45.31-.54l2.01-.8c.31-.12.65.08.68.42l.62 6.9H7.68zm-4.61.11l1.41-2.72 1.08 2.71-1.68.84c-.52.26-1.09-.3-.81-.83zm7.08-8.56a.5.5 0 01.5-.54h2.71a.5.5 0 01.5.54l-.77 8.45h-2.17l-.77-8.45z\"}}]})(props);\n};\nexport function MdOutlineBeenhere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 1H5c-1.1 0-1.99.9-1.99 2L3 15.93c0 .69.35 1.3.88 1.66L12 23l8.11-5.41c.53-.36.88-.97.88-1.66L21 3c0-1.1-.9-2-2-2zm-7 19.6l-7-4.66V3h14v12.93l-7 4.67zm-2.01-7.42l-2.58-2.59L6 12l4 4 8-8-1.42-1.42z\"}}]})(props);\n};\nexport function MdOutlineBikeScooter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14h.74L8.82 5.56A2.009 2.009 0 006.87 4H3v2h3.87l1.42 6.25h-.01A6.008 6.008 0 004.09 17H0v2h6v-1c0-2.21 1.79-4 4-4zM19 8h-.82l-1.35-3.69A1.976 1.976 0 0014.96 3H11v2h3.96l1.1 3H10.4l.46 2H15c-.43.58-.75 1.25-.9 2h-2.79l.46 2h2.33c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5C24 10.2 21.8 8 19 8zm0 8c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.03 0 .06-.01.09-.01 1.68 0 3 1.32 3 3s-1.33 3-3.01 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineBreakfastDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3H6C3.79 3 2 4.79 2 7c0 1.48.81 2.75 2 3.45V19c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8.55c1.19-.69 2-1.97 2-3.45 0-2.21-1.79-4-4-4zm1 5.72l-1 .58V19H6V9.31l-.99-.58C4.38 8.35 4 7.71 4 7c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2 0 .71-.38 1.36-1 1.72z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.71 9.29C12.51 9.1 12.26 9 12 9s-.51.1-.71.29l-3 3a.996.996 0 000 1.41l3 3c.2.2.45.3.71.3s.51-.1.71-.29l3-3a.996.996 0 000-1.41l-3-3.01zM12 14.58L10.41 13 12 11.41 13.59 13 12 14.58z\"}}]})(props);\n};\nexport function MdOutlineBrunchDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 21.5c0 .28.22.5.49.5h13.02c.27 0 .49-.22.49-.5V20H2v1.5zM15.5 16H11v-2H7v2H2.5c-.28 0-.5.22-.5.5V18h14v-1.5c0-.28-.22-.5-.5-.5zM20.47 15.45A5.796 5.796 0 0022 11.51V2h-6v9.47c0 1.48.58 2.92 1.6 4l.4.42V22h4v-2h-2v-4.03l.47-.52zM18 4h2v4h-2V4zm1.03 10.07a3.893 3.893 0 01-1.03-2.6V10h2v1.51c0 .95-.34 1.85-.97 2.56z\"}}]})(props);\n};\nexport function MdOutlineBusAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11V8h7.29C11.1 7.37 11 6.7 11 6H4.43c.83-.71 2.98-1.09 6.65-.98.1-.7.3-1.37.59-1.99C2.97 2.67 2 5.02 2 7v9.5c0 .95.38 1.81 1 2.44V21c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-2.06c.62-.63 1-1.49 1-2.44V13c-1.91 0-3.63-.76-4.89-2H4zm12 5c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2v-3h12v3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 1c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm.5 8h-1V8h1v1zm0-2h-1V3h1v4z\"}}]})(props);\n};\nexport function MdOutlineCarRental (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"16.5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"16.5\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.25 9.6c-.02-.02-.03-.04-.05-.07-.38-.52-.92-.53-.92-.53H7.72s-.54.01-.92.54c-.02.02-.03.04-.05.06-.07.11-.14.24-.19.4-.22.66-.74 2.22-1.56 4.69v6.5c0 .45.35.81.78.81h.44c.43 0 .78-.36.78-.81V20h10v1.19c0 .45.34.81.78.81h.44c.43 0 .78-.36.78-.81v-6.5c-.82-2.46-1.34-4.03-1.56-4.69-.05-.16-.12-.29-.19-.4zM8.33 11h7.34l.23.69.43 1.31H7.67l.66-2zM17 18H7v-3h10v3zM10.83 3A3.01 3.01 0 008 1C6.34 1 5 2.34 5 4c0 1.65 1.34 3 3 3 1.3 0 2.41-.84 2.83-2H16v2h2V5h1V3h-8.17zM8 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineCarRepair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"10.5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10.5\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.78 16h.44c.43 0 .78-.36.78-.81V14h10v1.19c0 .45.34.81.78.81h.44c.43 0 .78-.36.78-.81v-6.5L17.44 4c-.05-.16-.12-.29-.19-.4-.02-.02-.03-.04-.05-.07-.38-.52-.92-.53-.92-.53H7.72s-.54.01-.92.54c-.02.02-.03.04-.05.06-.07.11-.14.24-.19.4L5 8.69v6.5c0 .45.35.81.78.81zM8.33 5h7.34l.23.69.43 1.31H7.67l.66-2zM7 9.01V9h10v3H7V9.01zM4 17.01V19h7v3h2v-3h7v-1.99z\"}}]})(props);\n};\nexport function MdOutlineCategory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2l-5.5 9h11L12 2zm0 3.84L13.93 9h-3.87L12 5.84zM17.5 13c-2.49 0-4.5 2.01-4.5 4.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5-2.01-4.5-4.5-4.5zm0 7a2.5 2.5 0 010-5 2.5 2.5 0 010 5zM3 21.5h8v-8H3v8zm2-6h4v4H5v-4z\"}}]})(props);\n};\nexport function MdOutlineCelebration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 22l14-5-9-9-5 14zm10.35-5.82L5.3 18.7l2.52-7.05 4.53 4.53zM14.53 12.53l5.59-5.59a1.25 1.25 0 011.77 0l.59.59 1.06-1.06-.59-.59a2.758 2.758 0 00-3.89 0l-5.59 5.59 1.06 1.06zM10.06 6.88l-.59.59 1.06 1.06.59-.59a2.758 2.758 0 000-3.89l-.59-.59-1.06 1.07.59.59c.48.48.48 1.28 0 1.76zM17.06 11.88l-1.59 1.59 1.06 1.06 1.59-1.59a1.25 1.25 0 011.77 0l1.61 1.61 1.06-1.06-1.61-1.61a2.758 2.758 0 00-3.89 0zM15.06 5.88l-3.59 3.59 1.06 1.06 3.59-3.59a2.758 2.758 0 000-3.89l-1.59-1.59-1.06 1.06 1.59 1.59c.48.49.48 1.29 0 1.77z\"}}]})(props);\n};\nexport function MdOutlineCleaningServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11h-1V3c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v8H8c-2.76 0-5 2.24-5 5v7h18v-7c0-2.76-2.24-5-5-5zm-5-8h2v8h-2V3zm8 18h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H9v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H5v-5c0-1.65 1.35-3 3-3h8c1.65 0 3 1.35 3 3v5z\"}}]})(props);\n};\nexport function MdOutlineCompassCalibration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-17C8.1 3 4.56 4.59 2 7.15l5 5a7.06 7.06 0 0110-.01l5-5C19.44 4.59 15.9 3 12 3zm4.84 6.47c-1.44-.91-3.1-1.4-4.84-1.4-1.74 0-3.41.49-4.85 1.41L4.94 7.26C6.99 5.79 9.44 5 12 5c2.56 0 5 .79 7.05 2.26l-2.21 2.21z\"}}]})(props);\n};\nexport function MdOutlineDeliveryDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 14H10V9H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 10.35V7zM4 14v-1c0-1.1.9-2 2-2h2v3H4zm3 3c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 6h5v2H5zM19 13c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineDepartureBoard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"16.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12.5\",\"cy\":\"16.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 1a6.98 6.98 0 00-5.75 3.02C9.84 4.01 9.43 4 9 4c-4.42 0-8 .5-8 4v10c0 .88.39 1.67 1 2.22V22c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22v-3.08c3.39-.49 6-3.39 6-6.92 0-3.87-3.13-7-7-7zM9 6h.29c-.09.32-.16.66-.21.99H3.34C3.89 6.46 5.31 6 9 6zM3 8.99h6.08c.16 1.11.57 2.13 1.18 3.01H3V8.99zM15 18c0 .37-.21.62-.34.73l-.29.27H3.63l-.29-.27A.968.968 0 013 18v-4h9.41c.78.47 1.65.79 2.59.92V18zm1-5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm.5-9H15v5l3.62 2.16.75-1.23-2.87-1.68z\"}}]})(props);\n};\nexport function MdOutlineDesignServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.97 7.27a.996.996 0 000-1.41l-2.83-2.83a.996.996 0 00-1.41 0l-4.49 4.49-3.89-3.89c-.78-.78-2.05-.78-2.83 0l-1.9 1.9c-.78.78-.78 2.05 0 2.83l3.89 3.89L3 16.76V21h4.24l4.52-4.52 3.89 3.89c.95.95 2.23.6 2.83 0l1.9-1.9c.78-.78.78-2.05 0-2.83l-3.89-3.89 4.48-4.48zM5.04 6.94l1.89-1.9L8.2 6.31 7.02 7.5l1.41 1.41 1.19-1.19 1.2 1.2-1.9 1.9-3.88-3.88zm11.23 7.44l-1.19 1.19 1.41 1.41 1.19-1.19 1.27 1.27-1.9 1.9-3.89-3.89 1.9-1.9 1.21 1.21zM6.41 19H5v-1.41l9.61-9.61 1.3 1.3.11.11L6.41 19zm9.61-12.44l1.41-1.41 1.41 1.41-1.41 1.41-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineDinnerDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19l2 2h16l2-2zM3 18h16.97c.29-3.26-2.28-6-5.48-6-2.35 0-4.35 1.48-5.14 3.55-.41-.23-.87-.38-1.35-.47V9h1.75C10.99 9 12 7.99 12 6.75h9v-1.5h-9C12 4.01 10.99 3 9.75 3H3v1.5h1v.75H3v1.5h1v.75H3V9h1v7.39c-.44.46-.78 1-1 1.61zm11.5-4c.99 0 1.91.4 2.58 1.14.24.26.44.55.58.86h-6.32c.58-1.21 1.81-2 3.16-2zM8 4.5h2v.75H8V4.5zm0 2.25h2v.75H8v-.75zM5.5 4.5h1v.75h-1V4.5zm0 2.25h1v.75h-1v-.75zM5.5 9h1v6.06c-.35.06-.68.17-1 .3V9z\"}}]})(props);\n};\nexport function MdOutlineDirectionsBike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm5.8-10l2.4-2.4.8.8c1.3 1.3 3 2.1 5.1 2.1V9c-1.5 0-2.7-.6-3.6-1.5l-1.9-1.9c-.5-.4-1-.6-1.6-.6s-1.1.2-1.4.6L7.8 8.4c-.4.4-.6.9-.6 1.4 0 .6.2 1.1.6 1.4L11 14v5h2v-6.2l-2.2-2.3zM19 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z\"}}]})(props);\n};\nexport function MdOutlineDirectionsBoatFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 12.66l-1.12 3.97c-.78-.43-1.07-.86-2.65-2.67-1.6 1.82-2.43 3.04-4 3.04-1.53 0-2.34-1.15-4-3.04-1.6 1.82-1.87 2.21-2.65 2.65l-1.13-3.96L12 10.11l7.77 2.55zM15 1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42c-.63.19-.81.84-.66 1.28L3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.91-6.68c.11-.37.04-1.06-.66-1.28l-1.3-.42V6c0-1.1-.9-2-2-2h-3V1zM6 9.97V6h12v3.97L12 8 6 9.97zm10 9.71c-1.22.85-2.61 1.28-4 1.28s-2.78-.43-4-1.28C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99 1.26.64 2.63.97 4 .97s2.74-.32 4-.97c1.26.65 2.62.99 4 .99h2v-2h-2c-1.39 0-2.78-.47-4-1.32z\"}}]})(props);\n};\nexport function MdOutlineDirectionsBoat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3v1h-2V3h2m-1 7.11l5.38 1.77 2.39.78-1.12 3.97c-.54-.3-.94-.71-1.14-.94L16 13.96l-1.51 1.72c-.34.4-1.28 1.32-2.49 1.32s-2.15-.92-2.49-1.32L8 13.96l-1.51 1.72c-.2.23-.6.63-1.14.93l-1.13-3.96 2.4-.79L12 10.11M15 1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42a1.007 1.007 0 00-.66 1.28L3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.89-6.68c.08-.26.06-.54-.06-.78s-.34-.42-.6-.5L20 10.62V6c0-1.1-.9-2-2-2h-3V1zM6 9.97V6h12v3.97L12 8 6 9.97zm10 9.71c-1.22.85-2.61 1.28-4 1.28s-2.78-.43-4-1.28C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99 1.26.64 2.63.97 4 .97s2.74-.32 4-.97c1.26.65 2.62.99 4 .99h2v-2h-2c-1.39 0-2.78-.47-4-1.32z\"}}]})(props);\n};\nexport function MdOutlineDirectionsBusFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5c0 .95.38 1.81 1 2.44V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-2.06c.62-.63 1-1.49 1-2.44V6c0-3.5-3.58-4-8-4zm0 2c3.71 0 5.13.46 5.67 1H6.43c.6-.52 2.05-1 5.57-1zm6 11c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2v-3h12v3zm0-5H6V7h12v3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.42 0-8 .5-8 4v10c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4zm5.66 2.99H6.34C6.89 4.46 8.31 4 12 4s5.11.46 5.66.99zm.34 2V10H6V6.99h12zm-.34 9.74l-.29.27H6.63l-.29-.27A.968.968 0 016 16v-4h12v4c0 .37-.21.62-.34.73z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsCarFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 7h10.29l1.04 3H5.81l1.04-3zM19 17H5v-5h14v5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 7h10.29l1.08 3.11H5.77L6.85 7zM19 17H5v-5h14v5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsRailwayFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zm0 2c3.71 0 5.13.46 5.67 1H6.43c.6-.52 2.05-1 5.57-1zm6 11.5c0 .83-.67 1.5-1.5 1.5h-9c-.83 0-1.5-.67-1.5-1.5V12h12v3.5zm0-5.5H6V7h12v3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsRailway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1c-4.42 0-8 .5-8 4v10.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V5c0-3.5-3.58-4-8-4zm0 2c6 0 6 1.2 6 2H6c0-.8 0-2 6-2zm6 4v3H6V7h12zm-1.5 10h-9c-.83 0-1.5-.67-1.5-1.5V12h12v3.5c0 .83-.67 1.5-1.5 1.5zM12 12.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineDirectionsRun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.49 5.48c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-3.6 13.9l1-4.4 2.1 2v6h2v-7.5l-2.1-2 .6-3c1.3 1.5 3.3 2.5 5.5 2.5v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1l-5.2 2.2v4.7h2v-3.4l1.8-.7-1.6 8.1-4.9-1-.4 2 7 1.4z\"}}]})(props);\n};\nexport function MdOutlineDirectionsSubwayFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zm0 2c3.71 0 5.13.46 5.67 1H6.43c.6-.52 2.05-1 5.57-1zM6 7h5v3H6V7zm12 8.5c0 .83-.67 1.5-1.5 1.5h-9c-.83 0-1.5-.67-1.5-1.5V12h12v3.5zm0-5.5h-5V7h5v3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zm5.66 3H6.43c.61-.52 2.06-1 5.57-1 3.71 0 5.12.46 5.66 1zM11 7v3H6V7h5zm2 0h5v3h-5V7zm3.5 10h-9c-.83 0-1.5-.67-1.5-1.5V12h12v3.5c0 .83-.67 1.5-1.5 1.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsTransitFilled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zm0 2c3.71 0 5.13.46 5.67 1H6.43c.6-.52 2.05-1 5.57-1zM6 7h5v3H6V7zm12 8.5c0 .83-.67 1.5-1.5 1.5h-9c-.83 0-1.5-.67-1.5-1.5V12h12v3.5zm0-5.5h-5V7h5v3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsTransit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zm5.66 3H6.43c.61-.52 2.06-1 5.57-1 3.71 0 5.12.46 5.66 1zM11 7v3H6V7h5zm2 0h5v3h-5V7zm3.5 10h-9c-.83 0-1.5-.67-1.5-1.5V12h12v3.5c0 .83-.67 1.5-1.5 1.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineDirectionsWalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6a2.145 2.145 0 00-2.65-.84L6 8.3V13h2V9.6l1.8-.7\"}}]})(props);\n};\nexport function MdOutlineDirections (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.43 10.59l-9.01-9.01c-.75-.75-2.07-.76-2.83 0l-9 9c-.78.78-.78 2.04 0 2.82l9 9c.39.39.9.58 1.41.58.51 0 1.02-.19 1.41-.58l8.99-8.99c.79-.76.8-2.02.03-2.82zm-10.42 10.4l-9-9 9-9 9 9-9 9zM8 11v4h2v-3h4v2.5l3.5-3.5L14 7.5V10H9c-.55 0-1 .45-1 1z\"}}]})(props);\n};\nexport function MdOutlineDryCleaning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.56 11.36L13 8.44V7c0-.55-.45-1-1-1s-1-.45-1-1 .45-1 1-1 1 .45 1 1h2c0-1.84-1.66-3.3-3.56-2.95-1.18.22-2.15 1.17-2.38 2.35-.3 1.56.6 2.94 1.94 3.42v.63l-6.56 2.92c-.88.38-1.44 1.25-1.44 2.2v.01C3 14.92 4.08 16 5.42 16H7v6h10v-6h1.58c1.34 0 2.42-1.08 2.42-2.42v-.01c0-.95-.56-1.82-1.44-2.21zM15 20H9v-5h6v5zm3.58-6H17v-1H7v1H5.42c-.46 0-.58-.65-.17-.81l6.75-3 6.75 3c.42.19.28.81-.17.81z\"}}]})(props);\n};\nexport function MdOutlineEditAttributes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.63 7H6.37C3.96 7 2 9.24 2 12s1.96 5 4.37 5h11.26c2.41 0 4.37-2.24 4.37-5s-1.96-5-4.37-5zm0 8H6.37C5.09 15 4 13.63 4 12s1.09-3 2.37-3h11.26C18.91 9 20 10.37 20 12s-1.09 3-2.37 3zM7.24 13.06l-1.87-1.87-.7.7 2.57 2.57 4.22-4.22-.7-.7z\"}}]})(props);\n};\nexport function MdOutlineEditLocationAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11h2.12l6.16-6.16-2.12-2.12L11 8.88V11zm9.71-9L20 1.29a.996.996 0 00-1.41 0l-.72.72 2.12 2.12.72-.72a.996.996 0 000-1.41zM17.9 9.05c.06.36.1.74.1 1.15 0 1.71-1.08 4.64-6 9.14-4.92-4.49-6-7.43-6-9.14C6 6.17 9.09 4 12 4c.32 0 .65.03.97.08l1.65-1.65A8.56 8.56 0 0012 2c-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8 0-1.01-.16-1.94-.45-2.8L17.9 9.05z\"}}]})(props);\n};\nexport function MdOutlineEditLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.17 4.91L17.1 3.84l-5.55 5.55v1.08h1.08l5.54-5.56zM16 2.74l1.29-1.29a1.49 1.49 0 012.12 0l1.15 1.15c.59.59.59 1.54 0 2.12l-.68.68-.02.02-.58.58-6 6H10V8.74l6-6zm-2.28-.55l-.55.55-1.27 1.27c-3.3.05-5.9 2.6-5.9 6.2 0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.79 6-9.14v-.1l1.8-1.8c.13.6.2 1.24.2 1.9 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8 0-4.98 3.8-8.2 8-8.2.58 0 1.16.06 1.72.18z\"}}]})(props);\n};\nexport function MdOutlineEditRoad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4h-2v7.9l2-2zM4 4h2v16H4zM10 4h2v4h-2zM10 10h2v4h-2zM10 16h2v4h-2zM22.56 12.59l-1.15-1.15a1.49 1.49 0 00-2.12 0L14 16.73V20h3.27l5.29-5.29c.59-.59.59-1.54 0-2.12zm-5.98 5.86h-1.03v-1.03L19 13.97 20.03 15l-3.45 3.45z\"}}]})(props);\n};\nexport function MdOutlineElectricBike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7h-.82l-1.7-4.68A2.008 2.008 0 0014.6 1H12v2h2.6l1.46 4h-4.81l-.36-1H12V4H7v2h1.75l1.82 5H9.9c-.44-2.23-2.31-3.88-4.65-3.99C2.45 6.87 0 9.2 0 12c0 2.8 2.2 5 5 5 2.46 0 4.45-1.69 4.9-4h4.2c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5C24 9.2 21.8 7 19 7zM7.82 13c-.4 1.17-1.49 2-2.82 2-1.68 0-3-1.32-3-3s1.32-3 3-3c1.33 0 2.42.83 2.82 2H5v2h2.82zm6.28-2h-1.4l-.73-2H15c-.44.58-.76 1.25-.9 2zm4.9 4c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.02 0 .05-.01.08-.01 1.68 0 3 1.32 3 3s-1.32 3-3 3zM11 20H7l6 3v-2h4l-6-3z\"}}]})(props);\n};\nexport function MdOutlineElectricCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 2.01C18.72 1.42 18.16 1 17.5 1h-11c-.66 0-1.21.42-1.42 1.01L3 8v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8l-2.08-5.99zM6.85 3h10.29l1.08 3.11H5.77L6.85 3zM19 13H5V8h14v5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20h4v-2l6 3h-4v2z\"}}]})(props);\n};\nexport function MdOutlineElectricMoped (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 12H10V7H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 8.35V5zM4 12v-1c0-1.1.9-2 2-2h2v3H4zm3 3c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 4h5v2H5zM19 11c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM7 20h4v-2l6 3h-4v2z\"}}]})(props);\n};\nexport function MdOutlineElectricRickshaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.18V9.72c0-.47-.16-.92-.46-1.28L16.6 3.72c-.38-.46-.94-.72-1.54-.72H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h.18C3.6 16.16 4.7 17 6 17s2.4-.84 2.82-2h8.37a2.996 2.996 0 005.82-1c-.01-1.3-.85-2.4-2.01-2.82zM6 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm1-3.83A3.014 3.014 0 003.17 13H3v-3h4v1.17zM7 8H3V5h4v3zm7 5H9v-3h3V8H9V5h5v8zm2-6.88L18.4 9H16V6.12zM17.17 13H16v-2h3v.17c-.85.3-1.53.98-1.83 1.83zM20 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM7 20h4v-2l6 3h-4v2z\"}}]})(props);\n};\nexport function MdOutlineElectricScooter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.82 16H15v-1c0-2.21 1.79-4 4-4h.74l-1.9-8.44A2.009 2.009 0 0015.89 1H12v2h3.89l1.4 6.25h-.01A6.008 6.008 0 0013.09 14H7.82a2.996 2.996 0 00-3.42-1.94c-1.18.23-2.13 1.2-2.35 2.38A3.002 3.002 0 005 18c1.3 0 2.4-.84 2.82-2zM5 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM11 20H7l6 3v-2h4l-6-3z\"}}]})(props);\n};\nexport function MdOutlineElectricalServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 14c0-.55-.45-1-1-1h-2v2h2c.55 0 1-.45 1-1zM20 17h-2v2h2c.55 0 1-.45 1-1s-.45-1-1-1zM12 14h-2v4h2c0 1.1.9 2 2 2h3v-8h-3c-1.1 0-2 .9-2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13c0-1.1.9-2 2-2h1.5c1.93 0 3.5-1.57 3.5-3.5S10.43 4 8.5 4H5c-.55 0-1 .45-1 1s.45 1 1 1h3.5c.83 0 1.5.67 1.5 1.5S9.33 9 8.5 9H7c-2.21 0-4 1.79-4 4s1.79 4 4 4h2v-2H7c-1.1 0-2-.9-2-2z\"}}]})(props);\n};\nexport function MdOutlineEmergency (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.29 13.9L18 12l3.29-1.9c.48-.28.64-.89.37-1.37l-2-3.46a1.01 1.01 0 00-1.37-.37L15 6.8V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v3.8L5.71 4.9a1.01 1.01 0 00-1.37.37l-2 3.46c-.28.48-.11 1.09.37 1.37L6 12l-3.29 1.9c-.48.28-.64.89-.37 1.37l2 3.46c.28.48.89.64 1.37.37L9 17.2V21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3.8l3.29 1.9c.48.28 1.09.11 1.37-.37l2-3.46c.28-.48.11-1.09-.37-1.37zm-2.86 2.97l-4.68-2.7c-.33-.2-.75.04-.75.43V20h-2v-5.4c0-.38-.42-.63-.75-.43l-4.68 2.7-1-1.73 4.68-2.7c.33-.19.33-.67 0-.87l-4.68-2.7 1-1.73 4.68 2.7c.33.19.75-.05.75-.44V4h2v5.4c0 .38.42.63.75.43l4.68-2.7 1 1.73-4.68 2.7c-.33.19-.33.67 0 .87l4.68 2.7-1 1.74z\"}}]})(props);\n};\nexport function MdOutlineEvStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 7.23l.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 002.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 005 0V9c0-.69-.28-1.32-.73-1.77zM12 11v8H6V5h6v6zm6-1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-8-4l-4 7.5h2V18l4-7h-2z\"}}]})(props);\n};\nexport function MdOutlineFastfood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 21.98c0 .56.45 1.01 1.01 1.01H15c.56 0 1.01-.45 1.01-1.01V21H1v.98zM8.5 8.99C4.75 8.99 1 11 1 15h15c0-4-3.75-6.01-7.5-6.01zM3.62 13c1.11-1.55 3.47-2.01 4.88-2.01s3.77.46 4.88 2.01H3.62zM1 17h15v2H1zM18 5V1h-2v4h-5l.23 2h9.56l-1.4 14H18v2h1.72c.84 0 1.53-.65 1.63-1.47L23 5h-5z\"}}]})(props);\n};\nexport function MdOutlineFestival (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 11V9c-6-2-11-7-11-7S7 7 1 9v2c0 1.49.93 2.75 2.24 3.26C3.2 16.76 2.92 19.69 2 22h20c-.92-2.31-1.2-5.24-1.24-7.74A3.496 3.496 0 0023 11zM12 4.71c1.33 1.14 3.49 2.84 6.11 4.29H5.89C8.51 7.55 10.67 5.85 12 4.71zM13 11h3c0 .83-.67 1.5-1.5 1.5S13 11.83 13 11zm-3.5 1.5c-.83 0-1.5-.67-1.5-1.5h3c0 .83-.67 1.5-1.5 1.5zM6 11c0 .83-.67 1.5-1.5 1.5S3 11.83 3 11h3zm-1.34 9c.39-1.86.54-3.82.57-5.58.68-.15 1.29-.49 1.76-.98.25.25.54.45.85.62-.1 1.87-.26 4-.52 5.93H4.66zm4.69 0c.24-1.83.39-3.78.48-5.53.84-.08 1.61-.45 2.17-1.02.56.57 1.32.94 2.17 1.02.1 1.75.24 3.7.48 5.53h-5.3zm7.32 0c-.27-1.94-.43-4.07-.52-5.93.31-.17.61-.37.85-.62.47.48 1.08.83 1.76.98.03 1.76.18 3.72.57 5.58h-2.66zm2.83-7.5c-.83 0-1.5-.67-1.5-1.5h3c0 .83-.67 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineFlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\"}}]})(props);\n};\nexport function MdOutlineHail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5-4h2c0 2.7-.93 4.41-2.3 5.5-.5.4-1.1.7-1.7.9V22h-2v-6h-2v6H9V10.1c-.3.1-.5.2-.6.3-.53.41-1.4 1.03-1.4 3.6H5c0-2.06.35-3.78 2.11-5.29C8.21 7.81 10 7 12 7s2.68-.46 3.48-1.06C15.96 5.55 17 4.76 17 2zM4 16h3v6H4v-6z\"}}]})(props);\n};\nexport function MdOutlineHandyman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.67 18.17l-5.3-5.3h-.99l-2.54 2.54v.99l5.3 5.3c.39.39 1.02.39 1.41 0l2.12-2.12a.996.996 0 000-1.41zm-2.83 1.42l-4.24-4.24.71-.71 4.24 4.24-.71.71z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.34 10.19l1.41-1.41 2.12 2.12a3 3 0 000-4.24l-3.54-3.54-1.41 1.41V1.71l-.7-.71-3.54 3.54.71.71h2.83l-1.41 1.41 1.06 1.06-2.89 2.89-4.13-4.13V5.06L4.83 2.04 2 4.87 5.03 7.9h1.41l4.13 4.13-.85.85H7.6l-5.3 5.3a.996.996 0 000 1.41l2.12 2.12c.39.39 1.02.39 1.41 0l5.3-5.3v-2.12l5.15-5.15 1.06 1.05zm-7.98 5.15l-4.24 4.24-.71-.71 4.24-4.24.71.71z\"}}]})(props);\n};\nexport function MdOutlineHardware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3l-3 3V3H9C6.24 3 4 5.24 4 8h5v12c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8l3 3h2V3h-2zm-5 16h-2v-6h2v6zm-2-8V6H6.77C7.32 5.39 8.11 5 9 5h4v6h-2z\"}}]})(props);\n};\nexport function MdOutlineHomeRepairService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-3V6c0-1.1-.9-2-2-2H9c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v10h20V10c0-1.1-.9-2-2-2zM9 6h6v2H9V6zm11 12H4v-3h2v1h2v-1h8v1h2v-1h2v3zm-2-5v-1h-2v1H8v-1H6v1H4v-3h16v3h-2z\"}}]})(props);\n};\nexport function MdOutlineHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14c1.66 0 3-1.34 3-3S8.66 8 7 8s-3 1.34-3 3 1.34 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm12-3h-8v8H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4zm2 8h-8V9h6c1.1 0 2 .9 2 2v4z\"}}]})(props);\n};\nexport function MdOutlineHvac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm3.44-8c.26.45.44.96.51 1.5h-7.9c.07-.54.24-1.05.51-1.5h6.88zm.51 2.5c-.07.54-.24 1.05-.51 1.5H8.56c-.26-.45-.44-.96-.51-1.5h7.9zM9.38 15h5.24c-.7.61-1.61 1-2.62 1s-1.91-.39-2.62-1zm5.24-6H9.38c.7-.61 1.61-1 2.62-1s1.91.39 2.62 1z\"}}]})(props);\n};\nexport function MdOutlineIcecream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.38 6.24C17.79 3.24 15.14 1 12 1S6.21 3.24 5.62 6.24A4.014 4.014 0 003 10c0 2.21 1.79 4 4 4 .12 0 .23-.02.34-.02L12.07 23l4.61-9.03c.11.01.21.03.32.03 2.21 0 4-1.79 4-4 0-1.71-1.08-3.19-2.62-3.76zm-6.33 12.39l-2.73-5.21a6.468 6.468 0 005.4-.02l-2.67 5.23zM17 12c-.52 0-1.01-.2-1.39-.56l-.56-.54-.66.42a4.52 4.52 0 01-4.78-.01l-.66-.41-.56.54c-.38.35-.87.56-1.39.56a1.999 1.999 0 01-.32-3.97l.77-.13.06-.78C7.71 4.8 9.66 3 12 3s4.29 1.8 4.48 4.12l.06.78.77.12c.97.16 1.69.99 1.69 1.98 0 1.1-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineLayersClear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.53L17.74 9l-1.89 1.47 1.43 1.42L21 9l-9-7-2.59 2.02 1.42 1.42zm9 9.54l-1.63-1.27-.67.52 1.43 1.43zM3.41.86L2 2.27l4.22 4.22L3 9l9 7 2.1-1.63 1.42 1.42-3.53 2.75-7.37-5.73L3 14.07l9 7 4.95-3.85L20.73 21l1.41-1.41L3.41.86zM12 13.47L6.26 9l1.39-1.08 5.02 5.02-.67.53z\"}}]})(props);\n};\nexport function MdOutlineLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16zm0-11.47L17.74 9 12 13.47 6.26 9 12 4.53z\"}}]})(props);\n};\nexport function MdOutlineLiquor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 14c0 1.3.84 2.4 2 2.82V20H3v2h6v-2H7v-3.18C8.16 16.4 9 15.3 9 14V6H3v8zm2-6h2v3H5V8zm0 5h2v1c0 .55-.45 1-1 1s-1-.45-1-1v-1zM20.64 8.54l-.96-.32a1 1 0 01-.68-.95V3c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4.28a1 1 0 01-.68.95l-.96.32c-.81.28-1.36 1.04-1.36 1.9V20c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-9.56c0-.86-.55-1.62-1.36-1.9zM16 4h1v1h-1V4zm4 16h-7v-2h7v2zm0-4h-7v-2h7v2zm0-4h-7v-1.56l.95-.32C15.18 9.72 16 8.57 16 7.28V7h1v.28a3 3 0 002.05 2.85l.95.31V12z\"}}]})(props);\n};\nexport function MdOutlineLocalActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-2-1.46c-1.19.69-2 1.99-2 3.46s.81 2.77 2 3.46V18H4v-2.54c1.19-.69 2-1.99 2-3.46 0-1.48-.8-2.77-1.99-3.46L4 6h16v2.54zM9.07 16L12 14.12 14.93 16l-.89-3.36 2.69-2.2-3.47-.21L12 7l-1.27 3.22-3.47.21 2.69 2.2z\"}}]})(props);\n};\nexport function MdOutlineLocalAirport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-2l-8.5-5V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V9L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-5.5L22 16z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdOutlineLocalAtm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4V8h-2V7h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1zm9-13H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12z\"}}]})(props);\n};\nexport function MdOutlineLocalBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.77 9L12 12.11 9.23 9h5.54M21 3H3v2l8 9v5H6v2h12v-2h-5v-5l8-9V3zM7.43 7L5.66 5h12.69l-1.78 2H7.43z\"}}]})(props);\n};\nexport function MdOutlineLocalCafe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 5v8c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V5h10m4-2H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm-2 5V5h2v3h-2zm2 11H2v2h18v-2z\"}}]})(props);\n};\nexport function MdOutlineLocalCarWash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zm-5 0c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zM7 5c.83 0 1.5-.67 1.5-1.5C8.5 2.5 7 .8 7 .8S5.5 2.5 5.5 3.5C5.5 4.33 6.17 5 7 5zm11.92 3.01C18.72 7.42 18.16 7 17.5 7h-11c-.66 0-1.21.42-1.42 1.01L3 14v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 9h10.29l1.04 3H5.81l1.04-3zM19 19H5v-4.66l.12-.34h13.77l.11.34V19z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"16.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"16.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineLocalConvenienceStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7V4H5v3H2v13h8v-4h4v4h8V7h-3zm1 11h-4v-4H8v4H4V9h3V6h10v3h3v9zM8 8h2v1H8v3h3v-1H9v-1h2V7H8zm7 1h-1V7h-1v3h2v2h1V7h-1z\"}}]})(props);\n};\nexport function MdOutlineLocalDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.1 13.34l2.83-2.83L3.91 3.5a4.008 4.008 0 000 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z\"}}]})(props);\n};\nexport function MdOutlineLocalDrink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2l2.01 18.23C5.13 21.23 5.97 22 7 22h10c1.03 0 1.87-.77 1.99-1.77L21 2H3zm14 18l-10 .01L5.89 10H18.1L17 20zm1.33-12H5.67l-.44-4h13.53l-.43 4zM12 19c1.66 0 3-1.34 3-3 0-2-3-5.4-3-5.4S9 14 9 16c0 1.66 1.34 3 3 3zm0-5.09c.59.91 1 1.73 1 2.09 0 .55-.45 1-1 1s-1-.45-1-1c0-.37.41-1.19 1-2.09z\"}}]})(props);\n};\nexport function MdOutlineLocalFireDepartment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.48 12.35c-1.57-4.08-7.16-4.3-5.81-10.23.1-.44-.37-.78-.75-.55C9.29 3.71 6.68 8 8.87 13.62c.18.46-.36.89-.75.59-1.81-1.37-2-3.34-1.84-4.75.06-.52-.62-.77-.91-.34C4.69 10.16 4 11.84 4 14.37c.38 5.6 5.11 7.32 6.81 7.54 2.43.31 5.06-.14 6.95-1.87 2.08-1.93 2.84-5.01 1.72-7.69zm-9.28 5.03c1.44-.35 2.18-1.39 2.38-2.31.33-1.43-.96-2.83-.09-5.09.33 1.87 3.27 3.04 3.27 5.08.08 2.53-2.66 4.7-5.56 2.32z\"}}]})(props);\n};\nexport function MdOutlineLocalFlorist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.66 13.07c.15 0 .29-.01.43-.03C9.56 14.19 10.69 15 12 15s2.44-.81 2.91-1.96a3.145 3.145 0 003.57-3.11c0-.71-.25-1.39-.67-1.93.43-.54.67-1.22.67-1.93a3.145 3.145 0 00-3.57-3.11C14.44 1.81 13.31 1 12 1s-2.44.81-2.91 1.96a3.145 3.145 0 00-3.57 3.11c0 .71.25 1.39.67 1.93-.43.54-.68 1.22-.68 1.93 0 1.73 1.41 3.14 3.15 3.14zM12 13c-.62 0-1.12-.49-1.14-1.1l.12-1.09c.32.12.66.19 1.02.19s.71-.07 1.03-.19l.11 1.09c-.02.61-.52 1.1-1.14 1.1zm3.34-1.93c-.24 0-.46-.07-.64-.2l-.81-.57c.55-.45.94-1.09 1.06-1.83l.88.42c.4.19.66.59.66 1.03 0 .64-.52 1.15-1.15 1.15zm-.65-5.94c.2-.13.42-.2.65-.2.63 0 1.14.51 1.14 1.14 0 .44-.25.83-.66 1.03l-.88.42c-.12-.74-.51-1.38-1.07-1.83l.82-.56zM12 3c.62 0 1.12.49 1.14 1.1l-.11 1.09C12.71 5.07 12.36 5 12 5s-.7.07-1.02.19l-.12-1.09c.02-.61.52-1.1 1.14-1.1zM8.66 4.93c.24 0 .46.07.64.2l.81.56c-.55.45-.94 1.09-1.06 1.83l-.88-.42c-.4-.2-.66-.59-.66-1.03 0-.63.52-1.14 1.15-1.14zM8.17 8.9l.88-.42c.12.74.51 1.38 1.07 1.83l-.81.55c-.2.13-.42.2-.65.2-.63 0-1.14-.51-1.14-1.14-.01-.43.25-.82.65-1.02zM12 22a9 9 0 009-9 9 9 0 00-9 9zm2.44-2.44c.71-1.9 2.22-3.42 4.12-4.12a7.04 7.04 0 01-4.12 4.12zM3 13a9 9 0 009 9 9 9 0 00-9-9zm2.44 2.44c1.9.71 3.42 2.22 4.12 4.12a7.04 7.04 0 01-4.12-4.12z\"}}]})(props);\n};\nexport function MdOutlineLocalGasStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.77 7.23l.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 002.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 005 0V9c0-.69-.28-1.32-.73-1.77zM12 13.5V19H6v-7h6v1.5zm0-3.5H6V5h6v5zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineLocalGroceryStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-1.45-5c.75 0 1.41-.41 1.75-1.03l3.58-6.49A.996.996 0 0020.01 4H5.21l-.94-2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2h7.45zM6.16 6h12.15l-2.76 5H8.53L6.16 6z\"}}]})(props);\n};\nexport function MdOutlineLocalHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-8.5-2h3v-3.5H17v-3h-3.5V7h-3v3.5H7v3h3.5z\"}}]})(props);\n};\nexport function MdOutlineLocalHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14c1.66 0 3-1.34 3-3S8.66 8 7 8s-3 1.34-3 3 1.34 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm12-3h-8v8H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4zm2 8h-8V9h6c1.1 0 2 .9 2 2v4z\"}}]})(props);\n};\nexport function MdOutlineLocalLaundryService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2.01L6 2c-1.11 0-2 .89-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V4c0-1.11-.89-1.99-2-1.99zM18 20H6L5.99 4H18v16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm2.36-7.36c1.3 1.3 1.3 3.42 0 4.72-1.3 1.3-3.42 1.3-4.72 0l4.72-4.72z\"}}]})(props);\n};\nexport function MdOutlineLocalLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 8.55C9.64 9.35 6.48 8 3 8v11c3.48 0 6.64 1.35 9 3.55 2.36-2.19 5.52-3.55 9-3.55V8c-3.48 0-6.64 1.35-9 3.55zm7 5.58c-2.53.34-4.93 1.3-7 2.82a15.2 15.2 0 00-7-2.83v-6.95c2.1.38 4.05 1.35 5.64 2.83L12 14.28l1.36-1.27A11.18 11.18 0 0119 10.18v6.95z\"}}]})(props);\n};\nexport function MdOutlineLocalMall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6h-2c0-2.76-2.24-5-5-5S7 3.24 7 6H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-7-3c1.66 0 3 1.34 3 3H9c0-1.66 1.34-3 3-3zm7 17H5V8h14v12zm-7-8c-1.66 0-3-1.34-3-3H7c0 2.76 2.24 5 5 5s5-2.24 5-5h-2c0 1.66-1.34 3-3 3z\"}}]})(props);\n};\nexport function MdOutlineLocalMovies (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 5v14h-4V5h4m6-2h-2v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3zm-4 6V7h2v2h-2zM6 9V7h2v2H6zm10 4v-2h2v2h-2zM6 13v-2h2v2H6zm10 4v-2h2v2h-2zM6 17v-2h2v2H6z\"}}]})(props);\n};\nexport function MdOutlineLocalOffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58s1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41s-.23-1.06-.59-1.42zM13 20.01L4 11V4h7v-.01l9 9-7 7.02z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineLocalParking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3H6v18h4v-6h3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm.2 8H10V7h3.2c1.1 0 2 .9 2 2s-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineLocalPharmacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5h-2.64l1.14-3.14L17.15 1l-1.46 4H3v2l2 6-2 6v2h18v-2l-2-6 2-6V5zm-3.9 8.63L18.89 19H5.11l1.79-5.37.21-.63-.21-.63L5.11 7h13.78l-1.79 5.37-.21.63.21.63zM13 9h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdOutlineLocalPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57a.84.84 0 00-.31-.05c-.26 0-.51.1-.71.29l-2.2 2.2a15.149 15.149 0 01-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineLocalPizza (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.43 2 5.23 3.54 3.01 6L12 22l8.99-16C18.78 3.55 15.57 2 12 2zm0 15.92L5.51 6.36C7.32 4.85 9.62 4 12 4s4.68.85 6.49 2.36L12 17.92zM9 5.5c-.83 0-1.5.67-1.5 1.5S8.17 8.5 9 8.5s1.5-.67 1.5-1.5S9.82 5.5 9 5.5zm1.5 7.5c0 .83.67 1.5 1.5 1.5.82 0 1.5-.67 1.5-1.5s-.68-1.5-1.5-1.5-1.5.67-1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineLocalPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-2-1.46c-1.19.69-2 1.99-2 3.46s.81 2.77 2 3.46V18H4v-2.54c1.19-.69 2-1.99 2-3.46 0-1.48-.8-2.77-1.99-3.46L4 6h16v2.54zM9.07 16L12 14.12 14.93 16l-.89-3.36 2.69-2.2-3.47-.21L12 7l-1.27 3.22-3.47.21 2.69 2.2z\"}}]})(props);\n};\nexport function MdOutlineLocalPolice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 12.59l.9 3.88-3.4-2.05-3.4 2.05.9-3.87-3-2.59 3.96-.34L12 6.02l1.54 3.64 3.96.34-3 2.59zM12 3.19l7 3.11V11c0 4.52-2.98 8.69-7 9.93-4.02-1.24-7-5.41-7-9.93V6.3l7-3.11M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z\"}}]})(props);\n};\nexport function MdOutlineLocalPostOffice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z\"}}]})(props);\n};\nexport function MdOutlineLocalPrintshop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8h-1V3H6v5H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zM8 5h8v3H8V5zm8 14H8v-4h8v4zm2-4v-2H6v2H4v-4c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v4h-2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"11.5\",\"r\":\"1\"}}]})(props);\n};\nexport function MdOutlineLocalSee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h4.05l.59-.65L9.88 4h4.24l1.24 1.35.59.65H20v12zM12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8.2c-1.77 0-3.2-1.43-3.2-3.2 0-1.77 1.43-3.2 3.2-3.2s3.2 1.43 3.2 3.2c0 1.77-1.43 3.2-3.2 3.2z\"}}]})(props);\n};\nexport function MdOutlineLocalShipping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-3V4H3c-1.1 0-2 .9-2 2v11h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5l-3-4zm-.5 1.5l1.96 2.5H17V9.5h2.5zM6 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2.22-3c-.55-.61-1.33-1-2.22-1s-1.67.39-2.22 1H3V6h12v9H8.22zM18 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineLocalTaxi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5H15V3H9v2H6.5c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 7h10.29l1.04 3H5.81l1.04-3zM19 17H5v-4.66l.12-.34h13.77l.11.34V17z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineLunchDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-3H2v3zm2-1h16v1H4v-1zM18.66 11.5c-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.42 1 3.33 1 1.95 0 2.09-1 3.33-1 1.19 0 1.4.98 3.32 1l-.01-1.98c-1.61-.33-1.62-1.02-3.33-1.02zM22 9c.02-4-4.28-6-10-6C6.29 3 2 5 2 9v1h20V9zM4.18 8C5.01 5.81 8.61 5 12 5c3.31 0 5.93.73 7.19 1.99.3.31.52.64.65 1.01H4.18z\"}}]})(props);\n};\nexport function MdOutlineMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z\"}}]})(props);\n};\nexport function MdOutlineMapsUgc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8c-1.18 0-2.34-.26-3.43-.78-.27-.13-.56-.19-.86-.19-.19 0-.38.03-.56.08l-3.2.94.94-3.2c.14-.47.1-.98-.11-1.42A7.925 7.925 0 014 12c0-4.41 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12c0 1.54.36 2.98.97 4.29L1 23l6.71-1.97c1.31.61 2.75.97 4.29.97 5.52 0 10-4.48 10-10S17.52 2 12 2z\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M13 8h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdOutlineMedicalServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-4V4c0-1.1-.9-2-2-2h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM10 4h4v2h-4V4zm10 16H4V8h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdOutlineMenuBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5c-1.11-.35-2.33-.5-3.5-.5-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1zm0 13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 10.5c.88 0 1.73.09 2.5.26V9.24c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99zM13 12.49v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26V11.9c-.79-.15-1.64-.24-2.5-.24-1.7 0-3.24.3-4.5.83zM17.5 14.33c-1.7 0-3.24.29-4.5.83v1.66c1.13-.64 2.7-.99 4.5-.99.88 0 1.73.09 2.5.26v-1.52c-.79-.16-1.64-.24-2.5-.24z\"}}]})(props);\n};\nexport function MdOutlineMiscellaneousServices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.17 13.71l1.4-2.42c.09-.15.05-.34-.08-.45l-1.48-1.16c.03-.22.05-.45.05-.68s-.02-.46-.05-.69l1.48-1.16c.13-.11.17-.3.08-.45l-1.4-2.42c-.09-.15-.27-.21-.43-.15l-1.74.7c-.36-.28-.75-.51-1.18-.69l-.26-1.85a.364.364 0 00-.35-.29h-2.8c-.17 0-.32.13-.35.3L6.8 4.15c-.42.18-.82.41-1.18.69l-1.74-.7c-.16-.06-.34 0-.43.15l-1.4 2.42c-.09.15-.05.34.08.45l1.48 1.16c-.03.22-.05.45-.05.68s.02.46.05.69l-1.48 1.16c-.13.11-.17.3-.08.45l1.4 2.42c.09.15.27.21.43.15l1.74-.7c.36.28.75.51 1.18.69l.26 1.85c.03.16.18.29.35.29h2.8c.17 0 .32-.13.35-.3l.26-1.85c.42-.18.82-.41 1.18-.69l1.74.7c.16.06.34 0 .43-.15zM8.81 11c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM21.92 18.67l-.96-.74c.02-.14.04-.29.04-.44 0-.15-.01-.3-.04-.44l.95-.74c.08-.07.11-.19.05-.29l-.9-1.55c-.05-.1-.17-.13-.28-.1l-1.11.45c-.23-.18-.48-.33-.76-.44l-.17-1.18a.216.216 0 00-.21-.2h-1.79c-.11 0-.21.08-.22.19l-.17 1.18c-.27.12-.53.26-.76.44l-1.11-.45a.23.23 0 00-.28.1l-.9 1.55c-.05.1-.04.22.05.29l.95.74a3.145 3.145 0 000 .88l-.95.74c-.08.07-.11.19-.05.29l.9 1.55c.05.1.17.13.28.1l1.11-.45c.23.18.48.33.76.44l.17 1.18c.02.11.11.19.22.19h1.79c.11 0 .21-.08.22-.19l.17-1.18c.27-.12.53-.26.75-.44l1.12.45c.1.04.22 0 .28-.1l.9-1.55c.06-.09.03-.21-.05-.28zm-4.29.16a1.35 1.35 0 11.001-2.701 1.35 1.35 0 01-.001 2.701z\"}}]})(props);\n};\nexport function MdOutlineMoney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 16h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1zm1-6h1v4h-1v-4zm-7 6h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1zm1-6h1v4h-1v-4zM5 8h2v8H5zM2 4v16h20V4H2zm18 14H4V6h16v12z\"}}]})(props);\n};\nexport function MdOutlineMoped (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7c0-1.1-.9-2-2-2h-3v2h3v2.65L13.52 14H10V9H6c-2.21 0-4 1.79-4 4v3h2c0 1.66 1.34 3 3 3s3-1.34 3-3h4.48L19 10.35V7zM4 14v-1c0-1.1.9-2 2-2h2v3H4zm3 3c-.55 0-1-.45-1-1h2c0 .55-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 6h5v2H5zM19 13c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineMoving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9.42V12h2V6h-6v2h2.58l-4.46 4.46a.996.996 0 01-1.41 0l-1.17-1.17a3 3 0 00-4.24 0L2 16.59 3.41 18l5.29-5.29a.996.996 0 011.41 0l1.17 1.17a3 3 0 004.24 0L20 9.42z\"}}]})(props);\n};\nexport function MdOutlineMultipleStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4l4 4-4 4V9h-4V7h4V4zm-7 3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm1 10h4v-2H7v-3l-4 4 4 4v-3zm7 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm4 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z\"}}]})(props);\n};\nexport function MdOutlineMuseum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11V9L12 2 2 9v2h2v9H2v2h20v-2h-2v-9h2zm-4 9H6V9h12v11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 14l2 3 2-3v4h2v-7h-2l-2 3-2-3H8v7h2z\"}}]})(props);\n};\nexport function MdOutlineMyLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0013 3.06V1h-2v2.06A8.994 8.994 0 003.06 11H1v2h2.06A8.994 8.994 0 0011 20.94V23h2v-2.06A8.994 8.994 0 0020.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"}}]})(props);\n};\nexport function MdOutlineNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.27l4.28 10.43-3.47-1.53-.81-.36-.81.36-3.47 1.53L12 7.27M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71L12 2z\"}}]})(props);\n};\nexport function MdOutlineNearMeDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.34L21 3l-3.34 9-1.56-1.56 1.5-4.05-4.05 1.5L12 6.34zm9.19 14.85l-5.07-5.07L14.31 21H12.9l-2.83-7.07L3 11.1V9.69l4.88-1.81-5.07-5.07L4.22 1.4 22.6 19.78l-1.41 1.41zm-6.62-6.62L9.43 9.43l-2.71 1.01 4.89 1.95 1.95 4.89 1.01-2.71z\"}}]})(props);\n};\nexport function MdOutlineNearMe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.27 6.73l-4.24 10.13-1.32-3.42-.32-.83-.82-.32-3.43-1.33 10.13-4.23M21 3L3 10.53v.98l6.84 2.65L12.48 21h.98L21 3z\"}}]})(props);\n};\nexport function MdOutlineNightlife (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 5h14l-6 9v4h2v2H5v-2h2v-4L1 5zm9.1 4l1.4-2H4.49l1.4 2h4.21zM17 5h5v3h-3v9c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3a3 3 0 011 .17V5z\"}}]})(props);\n};\nexport function MdOutlineNoMeals (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14V6c0-1.76 2.24-4 5-4v16.17l-2-2V14h-3zm4.49 9.31L10.02 12.85c-.33.09-.66.15-1.02.15v9H7v-9c-2.21 0-4-1.79-4-4V5.83L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41zM6.17 9L5 7.83V9h1.17zM9 2H7v2.17l2 2V2zm4 7V2h-2v6.17l1.85 1.85c.09-.33.15-.66.15-1.02z\"}}]})(props);\n};\nexport function MdOutlineNoTransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 13c.83 0 1.5.67 1.5 1.5S9.33 16 8.5 16 7 15.33 7 14.5 7.67 13 8.5 13zm11.28 9.61l-1.64-1.64c-.05.01-.09.03-.14.03h-1c-.55 0-1-.45-1-1v-1H8v1c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1v-1.78c-.61-.55-1-1.34-1-2.22V6.83L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM6 8.83V10h1.17L6 8.83zM14.17 17l-5-5H6v4c0 .37.21.62.34.73l.29.27h7.54zM12 4c3.69 0 5.11.46 5.66.99H7.82l2 2H18V10h-5.17l2 2H18v3.17l1.81 1.81c.11-.31.19-.63.19-.98V6c0-3.5-3.58-4-8-4-2.52 0-4.76.16-6.22.95l1.53 1.53C8.17 4.2 9.6 4 12 4z\"}}]})(props);\n};\nexport function MdOutlineNotListedLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 16a.99.99 0 01-.71-.29.95.95 0 01-.29-.71c-.01-.55.43-.99.98-1h.02c.28 0 .51.1.71.29.18.19.28.43.28.7s-.1.51-.29.71-.43.3-.7.3zm-.88-3.66c0-.45.1-.84.29-1.16.19-.33.53-.7 1-1.12.28-.25.48-.47.61-.66s.19-.4.19-.64c0-.29-.11-.53-.32-.74-.21-.2-.5-.3-.85-.3-.37 0-.74.1-.96.3-.21.2-.4.45-.4.98H9c0-1.01.46-1.73.97-2.21C10.53 6.28 11.25 6 12 6c.59 0 1.11.12 1.57.35s.79.55 1.05.96.38.86.38 1.35-.1.9-.31 1.25-.48.71-.89 1.09c-.32.3-.53.56-.65.77s-.18.49-.18.81V13h-1.85v-.66h.01zM18 10.2C18 6.57 15.35 4 12 4s-6 2.57-6 6.2c0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.8 6-9.14zM12 2c4.2 0 8 3.22 8 8.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 5.22 7.8 2 12 2z\"}}]})(props);\n};\nexport function MdOutlinePark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12h2L12 2 5.05 12H7l-3.9 6h6.92v4h3.95v-4H21l-4-6zM6.79 16l3.9-6H8.88l3.13-4.5 3.15 4.5h-1.9l4 6H6.79z\"}}]})(props);\n};\nexport function MdOutlinePedalBike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.18 10l-1.7-4.68A2.008 2.008 0 0014.6 4H12v2h2.6l1.46 4h-4.81l-.36-1H12V7H7v2h1.75l1.82 5H9.9c-.44-2.23-2.31-3.88-4.65-3.99C2.45 9.87 0 12.2 0 15c0 2.8 2.2 5 5 5 2.46 0 4.45-1.69 4.9-4h4.2c.44 2.23 2.31 3.88 4.65 3.99 2.8.13 5.25-2.19 5.25-5 0-2.8-2.2-5-5-5h-.82zM7.82 16c-.4 1.17-1.49 2-2.82 2-1.68 0-3-1.32-3-3s1.32-3 3-3c1.33 0 2.42.83 2.82 2H5v2h2.82zm6.28-2h-1.4l-.73-2H15c-.44.58-.76 1.25-.9 2zm4.9 4c-1.68 0-3-1.32-3-3 0-.93.41-1.73 1.05-2.28l.96 2.64 1.88-.68-.97-2.67c.03 0 .06-.01.09-.01 1.68 0 3 1.32 3 3s-1.33 3-3.01 3z\"}}]})(props);\n};\nexport function MdOutlinePersonPinCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11c1.33 0 4 .67 4 2v.16c-.97 1.12-2.4 1.84-4 1.84s-3.03-.72-4-1.84V13c0-1.33 2.67-2 4-2zm0-1c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 .2C18 6.57 15.35 4 12 4s-6 2.57-6 6.2c0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.8 6-9.14zM12 2c4.2 0 8 3.22 8 8.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 5.22 7.8 2 12 2z\"}}]})(props);\n};\nexport function MdOutlinePersonPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5a2 2 0 00-2 2v14a2 2 0 002 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 16h-4.83l-.59.59L12 20.17l-1.59-1.59-.58-.58H5V4h14v14zm-7-7c1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3 1.35 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm6 8.58c0-2.5-3.97-3.58-6-3.58s-6 1.08-6 3.58V17h12v-1.42zM8.48 15c.74-.51 2.23-1 3.52-1s2.78.49 3.52 1H8.48z\"}}]})(props);\n};\nexport function MdOutlinePestControlRodent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"17\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.86 14.97l-.93-.84c.48-3.45-2.87-6.04-6.05-4.82A5.79 5.79 0 0012 9c-4.26 0-5.65 3.58-5.89 4.85A2.983 2.983 0 014 11c0-1.66 1.34-3 3-3h2.5a2.5 2.5 0 000-5H8c-.55 0-1 .45-1 1s.45 1 1 1h1.5c.28 0 .5.22.5.5s-.22.5-.5.5H7c-2.76 0-5 2.24-5 5 0 2.44 1.76 4.47 4.07 4.91A5.998 5.998 0 0012 21h6.53c3.11 0 4.7-3.89 2.33-6.03zM18.53 19H12c-1.21 0-2.34-.54-3.11-1.48-.78-.95-1.06-2.16-.8-3.41a3.95 3.95 0 012.99-3.01c.22-.05.45-.06.67-.07-.47.71-.75 1.55-.75 2.47 0 1.24.5 2.37 1.32 3.18l1.41-1.41c-.45-.45-.73-1.08-.73-1.77 0-1.42 1.2-2.5 2.5-2.5a2.5 2.5 0 012.5 2.5c0 .46-.13.88-.35 1.25l1.87 1.7c.31.28.48.67.48 1.09 0 .8-.66 1.46-1.47 1.46z\"}}]})(props);\n};\nexport function MdOutlinePestControl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v-2h-3.07c-.05-.39-.12-.77-.22-1.14l2.58-1.49-1-1.73L16.92 10c-.28-.48-.62-.91-.99-1.29.1-.56.2-1.69-.58-2.89L17 4.17l-1.41-1.41-1.72 1.72c-1.68-.89-3.1-.33-3.73 0L8.41 2.76 7 4.17l1.65 1.65c-.78 1.2-.68 2.34-.58 2.89-.37.39-.71.82-.99 1.29L4.71 8.63l-1 1.73 2.58 1.49c-.1.37-.17.75-.22 1.14H3v2h3.07c.05.39.12.77.22 1.14l-2.58 1.49 1 1.73L7.08 18c1.08 1.81 2.88 3 4.92 3s3.84-1.19 4.92-3l2.37 1.37 1-1.73-2.58-1.49c.1-.37.17-.75.22-1.14H21zm-9-9c.88 0 1.62.57 1.88 1.36C13.29 7.13 12.66 7 12 7s-1.29.13-1.88.36C10.38 6.57 11.12 6 12 6zm0 13c-2.21 0-4-2.24-4-5s1.79-5 4-5 4 2.24 4 5-1.79 5-4 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11h2v6h-2z\"}}]})(props);\n};\nexport function MdOutlinePinDrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c1.93 0 5 1.4 5 5.15 0 2.16-1.72 4.67-5 7.32-3.28-2.65-5-5.17-5-7.32C7 5.4 10.07 4 12 4m0-2C8.73 2 5 4.46 5 9.15c0 3.12 2.33 6.41 7 9.85 4.67-3.44 7-6.73 7-9.85C19 4.46 15.27 2 12 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7c-1.1 0-2 .9-2 2s.9 2 2 2a2 2 0 100-4zM5 20h14v2H5v-2z\"}}]})(props);\n};\nexport function MdOutlinePlace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6-1.8C18 6.57 15.35 4 12 4s-6 2.57-6 6.2c0 2.34 1.95 5.44 6 9.14 4.05-3.7 6-6.8 6-9.14zM12 2c4.2 0 8 3.22 8 8.2 0 3.32-2.67 7.25-8 11.8-5.33-4.55-8-8.48-8-11.8C4 5.22 7.8 2 12 2z\"}}]})(props);\n};\nexport function MdOutlinePlumbing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.28 4.93l-2.12-2.12c-.78-.78-2.05-.78-2.83 0L11.5 5.64l2.12 2.12 2.12-2.12 3.54 3.54a3.012 3.012 0 000-4.25zM5.49 13.77c.59.59 1.54.59 2.12 0l2.47-2.47-2.12-2.13-2.47 2.47c-.59.59-.59 1.54 0 2.13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.04 7.76l-.71.71-.71.71L10.44 6c-.59-.6-1.54-.6-2.12-.01a1.49 1.49 0 000 2.12l3.18 3.18-.71.71-6.36 6.36c-.78.78-.78 2.05 0 2.83.78.78 2.05.78 2.83 0L16.45 12a.996.996 0 101.41-1.41l-2.82-2.83z\"}}]})(props);\n};\nexport function MdOutlineRailwayAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11V8h7.29C11.1 7.37 11 6.7 11 6H4.43c.9-.77 3.28-1.08 6.65-.98.1-.7.3-1.37.59-1.99C2.97 2.67 2 5.02 2 7v9.5C2 18.43 3.57 20 5.5 20L4 21v1h12v-1l-1.5-1c1.93 0 3.5-1.57 3.5-3.5V13c-1.91 0-3.63-.76-4.89-2H4zm12 5.5c0 .83-.67 1.5-1.5 1.5h-9c-.83 0-1.5-.67-1.5-1.5V13h12v3.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 1c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm.5 8h-1V8h1v1zm0-2h-1V3h1v4z\"}}]})(props);\n};\nexport function MdOutlineRamenDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.66 14c-.66 1.92-2.24 3.54-4.4 4.39l-1.26.5V20h-4v-1.11l-1.27-.5c-2.16-.85-3.74-2.47-4.4-4.39h15.33M22 2L4 3.99V12H2c0 3.69 2.47 6.86 6 8.25V22h8v-1.75c3.53-1.39 6-4.56 6-8.25H10.5V8H22V6.5H10.5V4.78L22 3.51V2zM8 6.5V5.06l1-.11V6.5H8zm-2.5 0V5.34l1-.11V6.5h-1zM8 12V8h1v4H8zm-2.5 0V8h1v4h-1z\"}}]})(props);\n};\nexport function MdOutlineRateReview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17l-.59.59-.58.58V4h16v12zm-9.5-2H18v-2h-5.5zm3.86-5.87c.2-.2.2-.51 0-.71l-1.77-1.77c-.2-.2-.51-.2-.71 0L6 11.53V14h2.47l5.89-5.87z\"}}]})(props);\n};\nexport function MdOutlineRestaurantMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.1 13.34l2.83-2.83L3.91 3.5a4.008 4.008 0 000 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z\"}}]})(props);\n};\nexport function MdOutlineRestaurant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6v8h3v8h2V2c-2.76 0-5 2.24-5 4zm-5 3H9V2H7v7H5V2H3v7c0 2.21 1.79 4 4 4v9h2v-9c2.21 0 4-1.79 4-4V2h-2v7z\"}}]})(props);\n};\nexport function MdOutlineRunCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.54 8.97c-.23-.47-.76-.71-1.26-.53L9 9.65V12h1v-1.65l1.54-.57-.96 4.89-2.78-.57-.2.98 3.76.77.52-2.64L13 14.42V18h1v-3.97l-1.32-1.44.41-2.35C13.99 11.46 15.3 12 16 12v-1c-.41 0-1.63-.33-2.46-2.03z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13.5\",\"cy\":\"7\",\"r\":\"1\"}}]})(props);\n};\nexport function MdOutlineSailing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13.5V2L3 13.5h8zm-2-2H6.83L9 8.38v3.12zm12 2C21 6.5 14.5 1 12.5 1c0 0 1 3 1 6.5s-1 6-1 6H21zm-5.62-8.26c1.42 1.52 2.88 3.72 3.41 6.26h-3.68c.21-1.1.39-2.46.39-4 0-.79-.05-1.55-.12-2.26zM22 15H2a6.233 6.233 0 002.33 3.73c.65-.27 1.22-.72 1.67-1.23.73.84 1.8 1.5 3 1.5s2.27-.66 3-1.5c.73.84 1.8 1.5 3 1.5s2.26-.66 3-1.5c.45.51 1.02.96 1.67 1.23 1.17-.89 2.02-2.2 2.33-3.73zm0 8v-2h-1c-1.04 0-2.08-.35-3-1-1.83 1.3-4.17 1.3-6 0-1.83 1.3-4.17 1.3-6 0-.91.65-1.96 1-3 1H2v2h1c1.03 0 2.05-.25 3-.75 1.89 1 4.11 1 6 0 1.89 1 4.11 1 6 0 .95.5 1.97.75 3 .75h1z\"}}]})(props);\n};\nexport function MdOutlineSatellite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM8.57 6H6v2.58c1.42 0 2.57-1.16 2.57-2.58zM12 6h-1.71c0 2.36-1.92 4.29-4.29 4.29V12c3.32 0 6-2.69 6-6zm2.14 5.86l-3 3.87L9 13.15 6 17h12z\"}}]})(props);\n};\nexport function MdOutlineSetMeal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.05 17.56l-17.97.94L3 17l17.98-.94.07 1.5zM21 19.48H3v1.5h18v-1.5zM23 13V4c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 0H3V4h18v9zm-1-7c-1.68 0-3.04.98-3.21 2.23-.64-.73-2.73-2.73-6.54-2.73-4.67 0-6.75 3-6.75 3s2.08 3 6.75 3c3.81 0 5.9-2 6.54-2.73C16.96 10.02 18.32 11 20 11V6z\"}}]})(props);\n};\nexport function MdOutlineSnowmobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 17c0 .55-.45 1-1 1h-.17l-2.2-2.2C20.58 15.37 22 14.4 22 13c0-1-8-8-8-8h-3v2h2.25l.8.72L11 10 2 9l-2 4 4.54 1.36-3.49 1.88C-.77 17.22-.07 20 2 20h6c2.21 0 4-1.79 4-4h4l2 2h-3v2h6c1.66 0 3-1.34 3-3h-2zM8 18H2l5.25-2.83L10 16a2 2 0 01-2 2zm9-4h-6.7l-7.45-2.23.31-.62 8.44.85 3.93-2.94s3.77 3.44 4.27 4.14c0 0-1.1.8-2.8.8z\"}}]})(props);\n};\nexport function MdOutlineStoreMallDirectory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 9l.6 3H5.04l.6-3h12.72M20 4H4v2h16V4zm0 3H4l-1 5v2h1v6h10v-6h4v6h2v-6h1v-2l-1-5zM6 18v-4h6v4H6z\"}}]})(props);\n};\nexport function MdOutlineStreetview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.56 14.33c-.34.27-.56.7-.56 1.17V21h7c1.1 0 2-.9 2-2v-5.98c-.94-.33-1.95-.52-3-.52-2.03 0-3.93.7-5.44 1.83z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 6c0-1.08.27-2.1.74-3H5c-1.1 0-2 .9-2 2v14c0 .55.23 1.05.59 1.41l9.82-9.82A6.435 6.435 0 0111.5 6z\"}}]})(props);\n};\nexport function MdOutlineSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.8 2.8C16 2.09 13.86 2 12 2s-4 .09-5.8.8C3.53 3.84 2 6.05 2 8.86V22h20V8.86c0-2.81-1.53-5.02-4.2-6.06zM9.17 20l1.5-1.5h2.66l1.5 1.5H9.17zm-2.16-6V9h10v5h-10zm9.49 2c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1zm-8-1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM20 20h-3.5v-.38l-1.15-1.16A2.979 2.979 0 0018 15.5V9c0-2.63-3-3-6-3s-6 .37-6 3v6.5c0 1.54 1.16 2.79 2.65 2.96L7.5 19.62V20H4V8.86c0-2 1.01-3.45 2.93-4.2C8.41 4.08 10.32 4 12 4s3.59.08 5.07.66c1.92.75 2.93 2.2 2.93 4.2V20z\"}}]})(props);\n};\nexport function MdOutlineTakeoutDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.79 18l-.51-7h9.46l-.51 7H7.79zM9.83 5h4.33l2.8 2.73L16.87 9H7.12l-.09-1.27L9.83 5zM22 7.46l-1.41-1.41L19 7.63l.03-.56L14.98 3H9.02L4.97 7.07l.03.5-1.59-1.56L2 7.44l3.23 3.11.7 9.45h12.14l.7-9.44L22 7.46z\"}}]})(props);\n};\nexport function MdOutlineTaxiAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v5H4v-5h14c-1.91 0-3.63-.76-4.89-2h-8.3l1.04-3h5.44C11.1 7.37 11 6.7 11 6s.1-1.37.29-2H8v2H5.5c-.66 0-1.21.42-1.42 1.01L2 13v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-.09-.27c-.61.17-1.25.27-1.91.27z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 1c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm.5 8h-1V8h1v1zm0-2h-1V3h1v4z\"}}]})(props);\n};\nexport function MdOutlineTerrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6l-4.22 5.63 1.25 1.67L14 9.33 19 16h-8.46l-4.01-5.37L1 18h22L14 6zM5 16l1.52-2.03L8.04 16H5z\"}}]})(props);\n};\nexport function MdOutlineTheaterComedy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"6.5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"6.5\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.99 9c-1.38 0-2.5.84-2.5 1.88h5c0-1.04-1.12-1.88-2.5-1.88zM1 16c0 3.31 2.69 6 6 6s6-2.69 6-6V9H1v7zm2-5h8v5c0 2.21-1.79 4-4 4s-4-1.79-4-4v-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 2v5.5h2V4h8v5c0 2.21-1.79 4-4 4-.95 0-1.81-.35-2.5-.9v2.35c.76.35 1.61.55 2.5.55 3.31 0 6-2.69 6-6V2H11z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"13.5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13.5\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 17.88c1.38 0 2.5-.84 2.5-1.88h-5c0 1.04 1.12 1.88 2.5 1.88z\"}}]})(props);\n};\nexport function MdOutlineTraffic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 10h-3V8.86c1.72-.45 3-2 3-3.86h-3V4c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v1H4c0 1.86 1.28 3.41 3 3.86V10H4c0 1.86 1.28 3.41 3 3.86V15H4c0 1.86 1.28 3.41 3 3.86V20c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1.14c1.72-.45 3-2 3-3.86h-3v-1.14c1.72-.45 3-2 3-3.86zm-5 9H9V5h6v14zm-3-1c.83 0 1.5-.67 1.5-1.5S12.83 15 12 15s-1.5.67-1.5 1.5.67 1.5 1.5 1.5zm0-4.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM12 9c.83 0 1.5-.67 1.5-1.5S12.83 6 12 6s-1.5.67-1.5 1.5S11.17 9 12 9z\"}}]})(props);\n};\nexport function MdOutlineTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h2l2-2h4l2 2h2v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-4-4-8-4zm0 2c3.51 0 4.96.48 5.57 1H6.43c.61-.52 2.06-1 5.57-1zM6 7h5v3H6V7zm12 8.5c0 .83-.67 1.5-1.5 1.5h-9c-.83 0-1.5-.67-1.5-1.5V12h12v3.5zm0-5.5h-5V7h5v3z\"}}]})(props);\n};\nexport function MdOutlineTram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5l.75-1.5H17V2H7v1.5h4.75L11 5c-3.13.09-6 .73-6 3.5V17c0 1.5 1.11 2.73 2.55 2.95L6 21.5v.5h2l2-2h4l2 2h2v-.5l-1.55-1.55h-.01.01C17.89 19.73 19 18.5 19 17V8.5c0-2.77-2.87-3.41-6-3.5zm-1.97 2h1.94c2.75.08 3.62.58 3.9 1H7.13c.28-.42 1.15-.92 3.9-1zm-.18 10.95H7.74A.974.974 0 017 17v-1h3.89c-.24.27-.39.61-.39 1 0 .36.13.69.35.95zM17 17c0 .45-.3.84-.74.95h-3.11c.22-.26.35-.59.35-.95 0-.39-.15-.73-.39-1H17v1zm0-3H7v-4h10v4z\"}}]})(props);\n};\nexport function MdOutlineTransferWithinAStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.49 15.5v-1.75L14 16.25l2.49 2.5V17H22v-1.5h-5.51zm3.02 4.25H14v1.5h5.51V23L22 20.5 19.51 18v1.75zM9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5.75 8.9L3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6c-.25 0-.5.05-.75.15L2 8.3V13h2V9.65l1.75-.75\"}}]})(props);\n};\nexport function MdOutlineTransitEnterexit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 18H6V8h3v4.77L15.98 6 18 8.03 11.15 15H16v3z\"}}]})(props);\n};\nexport function MdOutlineTripOrigin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm10 6c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6z\"}}]})(props);\n};\nexport function MdOutlineTwoWheeler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.17 11H4h.17m9.24-6H9v2h3.59l2 2H11l-4 2-2-2H0v2h4c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4l2 2h3l3.49-6.1 1.01 1.01c-.91.73-1.5 1.84-1.5 3.09 0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4c-.18 0-.36.03-.53.05L17.41 9H20V6l-3.72 1.86L13.41 5zM20 17c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM4 17c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\"}}]})(props);\n};\nexport function MdOutlineVolunteerActivism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13c3.09-2.81 6-5.44 6-7.7C22 3.45 20.55 2 18.7 2c-1.04 0-2.05.49-2.7 1.25C15.34 2.49 14.34 2 13.3 2 11.45 2 10 3.45 10 5.3c0 2.26 2.91 4.89 6 7.7zm-2.7-9c.44 0 .89.21 1.18.55L16 6.34l1.52-1.79c.29-.34.74-.55 1.18-.55.74 0 1.3.56 1.3 1.3 0 1.12-2.04 3.17-4 4.99-1.96-1.82-4-3.88-4-4.99 0-.74.56-1.3 1.3-1.3zM19 16h-2c0-1.2-.75-2.28-1.87-2.7L8.97 11H1v11h6v-1.44l7 1.94 8-2.5v-1c0-1.66-1.34-3-3-3zM3 20v-7h2v7H3zm10.97.41L7 18.48V13h1.61l5.82 2.17c.34.13.57.46.57.83 0 0-1.99-.05-2.3-.15l-2.38-.79-.63 1.9 2.38.79c.51.17 1.04.26 1.58.26H19c.39 0 .74.23.9.56l-5.93 1.84z\"}}]})(props);\n};\nexport function MdOutlineWineBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v6c0 2.97 2.16 5.43 5 5.91V19H8v2h8v-2h-3v-4.09c2.84-.48 5-2.94 5-5.91V3H6zm6 10c-1.86 0-3.41-1.28-3.86-3h7.72c-.45 1.72-2 3-3.86 3zm4-5H8V5h8v3z\"}}]})(props);\n};\nexport function MdOutlineWrongLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11v.2c0 2.34-1.95 5.44-6 9.14-4.05-3.7-6-6.79-6-9.14C6 7.57 8.65 5 12 5c.34 0 .68.03 1 .08V3.06c-.33-.04-.66-.06-1-.06-4.2 0-8 3.22-8 8.2 0 3.32 2.67 7.25 8 11.8 5.33-4.55 8-8.48 8-11.8V11h-2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"11\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 2.88l-1.42-1.42L19 3.59l-2.12-2.13-1.42 1.42L17.59 5l-2.13 2.12 1.42 1.42L19 6.41l2.12 2.13 1.42-1.42L20.41 5z\"}}]})(props);\n};\nexport function MdOutlineZoomOutMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3l2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3h-6zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3v6zm6 12l-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6zm12-6l-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6v-6z\"}}]})(props);\n};\nexport function MdOutlineAppSettingsAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M7 20h10v1H7zM7 3h10v1H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.81 12.74l-.82-.63v-.22l.8-.63c.16-.12.2-.34.1-.51l-.85-1.48a.395.395 0 00-.35-.2c-.05 0-.1.01-.15.03l-.95.38c-.08-.05-.11-.07-.19-.11l-.15-1.01a.408.408 0 00-.4-.36h-1.71c-.2 0-.37.15-.4.34l-.14 1.01c-.03.02-.07.03-.1.05l-.09.06-.95-.38a.401.401 0 00-.5.17l-.85 1.48c-.1.17-.06.39.1.51l.8.63v.23l-.8.63a.39.39 0 00-.1.51l.85 1.48c.07.13.21.2.35.2.05 0 .1-.01.15-.03l.95-.37c.08.05.12.07.2.11l.15 1.01c.03.2.2.34.4.34h1.71c.2 0 .37-.15.4-.34l.15-1.01c.03-.02.07-.03.1-.05l.09-.06.95.38a.401.401 0 00.5-.17l.85-1.48a.39.39 0 00-.1-.51zM18 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM17 18H7V6h10v1h2V3c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v1zM7 3h10v1H7V3zm10 18H7v-1h10v1z\"}}]})(props);\n};\nexport function MdOutlineApps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\"}}]})(props);\n};\nexport function MdOutlineArrowBackIosNew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.77 3.77L16 2 6 12l10 10 1.77-1.77L9.54 12z\"}}]})(props);\n};\nexport function MdOutlineArrowBackIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.51 3.87L15.73 2.1 5.84 12l9.9 9.9 1.77-1.77L9.38 12l8.13-8.13z\"}}]})(props);\n};\nexport function MdOutlineArrowBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"}}]})(props);\n};\nexport function MdOutlineArrowDownward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"}}]})(props);\n};\nexport function MdOutlineArrowDropDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 13l-4-4h8z\"}}]})(props);\n};\nexport function MdOutlineArrowDropDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10l5 5 5-5H7z\"}}]})(props);\n};\nexport function MdOutlineArrowDropUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14l5-5 5 5H7z\"}}]})(props);\n};\nexport function MdOutlineArrowForwardIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.23 20.23L8 22l10-10L8 2 6.23 3.77 14.46 12z\"}}]})(props);\n};\nexport function MdOutlineArrowForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z\"}}]})(props);\n};\nexport function MdOutlineArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 0v24H0V0h24z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7l-5 5 5 5V7z\"}}]})(props);\n};\nexport function MdOutlineArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 17l5-5-5-5v10z\"}}]})(props);\n};\nexport function MdOutlineArrowUpward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"}}]})(props);\n};\nexport function MdOutlineAssistantDirection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1C5.9 1 1 5.9 1 12s4.9 11 11 11 11-4.9 11-11S18.1 1 12 1zm0 20c-4.99 0-9-4.01-9-9s4.01-9 9-9 9 4.01 9 9-4.01 9-9 9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.73 11.42L12.54 4.2c-.36-.27-.8-.27-1.15 0L4.2 11.42c-.27.36-.27.8 0 1.16l7.19 7.22c.36.27.8.27 1.15 0l7.19-7.22c.36-.36.36-.89 0-1.16zM13.5 14.5l-1.41-1.41L13.17 12H10v3H8v-4c0-.6.4-1 1-1h4.17l-1.09-1.09L13.5 7.5 17 11l-3.5 3.5z\"}}]})(props);\n};\nexport function MdOutlineCampaign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11v2h4v-2h-4zM16 17.61c.96.71 2.21 1.65 3.2 2.39.4-.53.8-1.07 1.2-1.6-.99-.74-2.24-1.68-3.2-2.4-.4.54-.8 1.08-1.2 1.61zM20.4 5.6c-.4-.53-.8-1.07-1.2-1.6-.99.74-2.24 1.68-3.2 2.4.4.53.8 1.07 1.2 1.6.96-.72 2.21-1.65 3.2-2.4zM4 9c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1v4h2v-4h1l5 3V6L8 9H4zm5.03 1.71L11 9.53v4.94l-1.97-1.18-.48-.29H4v-2h4.55l.48-.29zM15.5 12c0-1.33-.58-2.53-1.5-3.35v6.69c.92-.81 1.5-2.01 1.5-3.34z\"}}]})(props);\n};\nexport function MdOutlineCancel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z\"}}]})(props);\n};\nexport function MdOutlineCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"}}]})(props);\n};\nexport function MdOutlineChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12l4.58-4.59z\"}}]})(props);\n};\nexport function MdOutlineChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6-6-6z\"}}]})(props);\n};\nexport function MdOutlineClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"}}]})(props);\n};\nexport function MdOutlineDoubleArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 5H11l5 7-5 7h4.5l5-7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H4l5 7-5 7h4.5l5-7z\"}}]})(props);\n};\nexport function MdOutlineEast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5l-1.41 1.41L18.17 11H2v2h16.17l-4.59 4.59L15 19l7-7-7-7z\"}}]})(props);\n};\nexport function MdOutlineExpandLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14l-6-6z\"}}]})(props);\n};\nexport function MdOutlineExpandMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6-1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineFirstPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 0v24H0V0h24z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6 1.41-1.41zM6 6h2v12H6V6z\"}}]})(props);\n};\nexport function MdOutlineFullscreenExit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\"}}]})(props);\n};\nexport function MdOutlineFullscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"}}]})(props);\n};\nexport function MdOutlineHomeWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 15h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm-3.26 0l1.26.84V7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3v1.51l2 1.33V5h9v14h-4v2h6V3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.17 5.7L15 10.25V21H1V10.48L8.17 5.7zM10 19h3v-7.84L8.17 8.09 3 11.38V19h3v-6h4v6z\"}}]})(props);\n};\nexport function MdOutlineLastPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6-1.41 1.41zM16 6h2v12h-2V6z\"}}]})(props);\n};\nexport function MdOutlineLegendToggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15H4v-2h16v2zm0 2H4v2h16v-2zm-5-6l5-3.55V5l-5 3.55L10 5 4 8.66V11l5.92-3.61L15 11z\"}}]})(props);\n};\nexport function MdOutlineMapsHomeWork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7h2v2h-2zM17 11h2v2h-2zM17 15h2v2h-2zM1 11v10h6v-5h2v5h6V11L8 6l-7 5zm12 8h-2v-5H5v5H3v-7l5-3.5 5 3.5v7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3v1.97l2 1.43V5h9v14h-4v2h6V3z\"}}]})(props);\n};\nexport function MdOutlineMenuOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h13v-2H3v2zm0-5h10v-2H3v2zm0-7v2h13V6H3zm18 9.59L17.42 12 21 8.41 19.59 7l-5 5 5 5L21 15.59z\"}}]})(props);\n};\nexport function MdOutlineMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"}}]})(props);\n};\nexport function MdOutlineMoreHoriz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineMoreVert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineNorthEast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z\"}}]})(props);\n};\nexport function MdOutlineNorthWest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15h2V8.41L18.59 20 20 18.59 8.41 7H15V5H5v10z\"}}]})(props);\n};\nexport function MdOutlineNorth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9l1.41 1.41L11 5.83V22h2V5.83l4.59 4.59L19 9l-7-7-7 7z\"}}]})(props);\n};\nexport function MdOutlineOfflineShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 5H4v16c0 1.1.9 2 2 2h10v-2H6V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 1h-8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16h-8v-1h8v1zm0-3h-8V6h8v8zm0-10h-8V3h8v1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 10.25h1.63l-.69.69L14.5 12 17 9.5 14.5 7l-1.06 1.06.69.69H12c-.55 0-1 .45-1 1V12h1.5v-1.75z\"}}]})(props);\n};\nexport function MdOutlinePayments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zm-2 0H3V6h14v8zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm13 0v11c0 1.1-.9 2-2 2H4v-2h17V7h2z\"}}]})(props);\n};\nexport function MdOutlinePivotTableChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5c0-1.1-.9-2-2-2h-9v5h11V5zM3 19c0 1.1.9 2 2 2h3V10H3v9zM3 5v3h5V3H5c-1.1 0-2 .9-2 2zm15 3.99L14 13l1.41 1.41 1.59-1.6V15c0 1.1-.9 2-2 2h-2.17l1.59-1.59L13 14l-4 4 4 4 1.41-1.41L12.83 19H15c2.21 0 4-1.79 4-4v-2.18l1.59 1.6L22 13l-4-4.01z\"}}]})(props);\n};\nexport function MdOutlineRefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.65 6.35A7.958 7.958 0 0012 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0112 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"}}]})(props);\n};\nexport function MdOutlineSouthEast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h-2v6.59L5.41 4 4 5.41 15.59 17H9v2h10V9z\"}}]})(props);\n};\nexport function MdOutlineSouthWest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 19v-2H8.41L20 5.41 18.59 4 7 15.59V9H5v10h10z\"}}]})(props);\n};\nexport function MdOutlineSouth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15l-1.41-1.41L13 18.17V2h-2v16.17l-4.59-4.59L5 15l7 7 7-7z\"}}]})(props);\n};\nexport function MdOutlineSubdirectoryArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9l1.42 1.42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z\"}}]})(props);\n};\nexport function MdOutlineSubdirectoryArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24v24z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z\"}}]})(props);\n};\nexport function MdOutlineSwitchLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 8.62v6.76L5.12 12 8.5 8.62M10 5l-7 7 7 7V5zm4 0v14l7-7-7-7z\"}}]})(props);\n};\nexport function MdOutlineSwitchRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 24H0V0h24z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 15.38V8.62L18.88 12l-3.38 3.38M14 19l7-7-7-7v14zm-4 0V5l-7 7 7 7z\"}}]})(props);\n};\nexport function MdOutlineUnfoldLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M24 0v24H0V0h24z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z\"}}]})(props);\n};\nexport function MdOutlineUnfoldMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z\"}}]})(props);\n};\nexport function MdOutlineWaterfallChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 4h3v16h-3V4zM3 13h3v7H3v-7zm11-9h3v3h-3V4zm-4 1h3v4h-3V5zm-3 5h3v4H7v-4z\"}}]})(props);\n};\nexport function MdOutlineWest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19l1.41-1.41L5.83 13H22v-2H5.83l4.59-4.59L9 5l-7 7 7 7z\"}}]})(props);\n};\nexport function MdOutlineAccountTree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3h7zM7 9H4V5h3v4zm10 6h3v4h-3v-4zm0-10h3v4h-3V5z\"}}]})(props);\n};\nexport function MdOutlineAdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16c0 3.87 3.13 7 7 7s7-3.13 7-7v-4H5v4zM16.12 4.37l2.1-2.1-.82-.83-2.3 2.31C14.16 3.28 13.12 3 12 3s-2.16.28-3.09.75L6.6 1.44l-.82.83 2.1 2.1C6.14 5.64 5 7.68 5 10v1h14v-1c0-2.32-1.14-4.36-2.88-5.63zM9 9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatFlatAngled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6.5c.31 0 .7.15.9.56.24.5.02 1.1-.47 1.34a.979.979 0 01-1.32-.46.986.986 0 01.46-1.34c.14-.06.28-.1.43-.1m6.47 2.11l6.69 2.41c.52.19.93.56 1.15 1.05.22.48.25 1.03.06 1.53l-.01.02-8.59-3.11.7-1.9M10 15.19l4 1.44V17h-4v-1.81M6 4.5c-.44 0-.88.1-1.3.3a2.99 2.99 0 00-1.4 4 2.988 2.988 0 004 1.4 3.01 3.01 0 001.41-4A3.013 3.013 0 006 4.5zm5.28 1.55L9.2 11.71l12.36 4.47.69-1.89a4 4 0 00-2.41-5.15l-8.56-3.09zm-9.09 4.2l-.69 1.89L8 14.48V19h8v-1.63L20.52 19l.69-1.89-19.02-6.86z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatFlat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13a3 3 0 002.1-5.14C6.51 7.29 5.75 7 5 7a3 3 0 00-2.1 5.14c.59.57 1.35.86 2.1.86zm-.71-3.7a1 1 0 011.41-.02c.4.39.4 1.01.02 1.41-.2.2-.45.31-.72.31-.26 0-.51-.1-.7-.28-.4-.4-.4-1.02-.01-1.42zM18 7H9v6h13v-2c0-2.21-1.79-4-4-4zm-7 4V9h7c1.1 0 2 .9 2 2h-9zm-9 5h6v2h8v-2h6v-2H2z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatIndividualSuite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14c1.66 0 3-1.34 3-3S8.66 8 7 8s-3 1.34-3 3 1.34 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm12-3h-8v8H3V7H1v10h22v-6c0-2.21-1.79-4-4-4zm2 8h-8V9h6c1.1 0 2 .9 2 2v4z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatLegroomExtra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12V3H2v9c0 2.76 2.24 5 5 5h6v-2H7c-1.66 0-3-1.34-3-3zm18.83 5.24c-.38-.72-1.29-.97-2.03-.63l-1.09.5-3.41-6.98A2.019 2.019 0 0014.51 9H11V3H5v8c0 1.66 1.34 3 3 3h7l3.41 7 3.72-1.7c.77-.36 1.1-1.3.7-2.06z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatLegroomNormal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12V3H3v9c0 2.76 2.24 5 5 5h6v-2H8c-1.66 0-3-1.34-3-3zm15.5 6H19v-7c0-1.1-.9-2-2-2h-5V3H6v8c0 1.65 1.35 3 3 3h7v7h4.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatLegroomReduced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.97 19.2c.18.96-.55 1.8-1.47 1.8H14v-3l1-4H9c-1.65 0-3-1.35-3-3V3h6v6h5c1.1 0 2 .9 2 2l-2 7h1.44c.73 0 1.39.49 1.53 1.2zM5 12V3H3v9c0 2.76 2.24 5 5 5h4v-2H8c-1.66 0-3-1.34-3-3z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatReclineExtra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.35 5.64c-.9-.64-1.12-1.88-.49-2.79.63-.9 1.88-1.12 2.79-.49.9.64 1.12 1.88.49 2.79-.64.9-1.88 1.12-2.79.49zM16 19H8.93c-1.48 0-2.74-1.08-2.96-2.54L4 7H2l1.99 9.76A5.01 5.01 0 008.94 21H16v-2zm.23-4h-4.88l-1.03-4.1c1.58.89 3.28 1.54 5.15 1.22V9.99c-1.63.31-3.44-.27-4.69-1.25L9.14 7.47c-.23-.18-.49-.3-.76-.38a2.21 2.21 0 00-.99-.06h-.02a2.268 2.268 0 00-1.84 2.61l1.35 5.92A3.008 3.008 0 009.83 18h6.85l3.82 3 1.5-1.5-5.77-4.5z\"}}]})(props);\n};\nexport function MdOutlineAirlineSeatReclineNormal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.59 5.41c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0 .78 2.05 0 2.83c-.79.79-2.05.79-2.83 0zM6 16V7H4v9c0 2.76 2.24 5 5 5h6v-2H9c-1.66 0-3-1.34-3-3zm14 4.07L14.93 15H11.5v-3.68c1.4 1.15 3.6 2.16 5.5 2.16v-2.16c-1.66.02-3.61-.87-4.67-2.04l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C8.01 7 7 8.01 7 9.25V15c0 1.66 1.34 3 3 3h5.07l3.5 3.5L20 20.07z\"}}]})(props);\n};\nexport function MdOutlineBluetoothAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33s-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2a9.936 9.936 0 001.54-5.31c-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z\"}}]})(props);\n};\nexport function MdOutlineConfirmationNumber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10V6a2 2 0 00-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-2-1.46c-1.19.69-2 1.99-2 3.46s.81 2.77 2 3.46V18H4v-2.54c1.19-.69 2-1.99 2-3.46 0-1.48-.8-2.77-1.99-3.46L4 6h16v2.54zM11 15h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineDirectionsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.71 11.29l-9-9a.996.996 0 00-1.41 0L8.21 5.38l1.41 1.41L12 4.42 19.58 12l-2.38 2.38 1.41 1.41 3.09-3.09c.4-.37.4-1 .01-1.41z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7.5v2.67l2.17 2.17L16.5 11zM1.39 4.22l3.99 3.99-3.09 3.09a.996.996 0 000 1.41l9 9c.39.39 1.02.39 1.41 0l3.09-3.09 3.99 3.99 1.41-1.41L2.81 2.81 1.39 4.22zm6.64 6.63c-.01.05-.04.1-.04.15v4h2v-2.18l4.38 4.38L12 19.58 4.42 12 6.8 9.62l1.23 1.23z\"}}]})(props);\n};\nexport function MdOutlineDiscFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h2v5h-2zM10 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm10-4h2v2h-2zm-10-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineDoDisturbAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineDoDisturbOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c4.41 0 8 3.59 8 8 0 1.41-.37 2.73-1.01 3.88l1.46 1.46A9.96 9.96 0 0022 12c0-5.52-4.48-10-10-10a9.9 9.9 0 00-5.33 1.55l1.46 1.46A7.883 7.883 0 0112 4zm5 7h-2.88l2 2H17zM2.41 2.13L1 3.54l2.78 2.78A9.92 9.92 0 002 12c0 5.52 4.48 10 10 10 2.11 0 4.07-.66 5.68-1.78L20.46 23l1.41-1.41L2.41 2.13zM12 20c-4.41 0-8-3.59-8-8 0-1.56.45-3 1.23-4.23L8.46 11H7v2h3.46l5.77 5.77A7.846 7.846 0 0112 20z\"}}]})(props);\n};\nexport function MdOutlineDoDisturbOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5-9h10v2H7z\"}}]})(props);\n};\nexport function MdOutlineDoDisturb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0112 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\"}}]})(props);\n};\nexport function MdOutlineDoNotDisturbAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9C4.6 15.5 4 13.8 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineDoNotDisturbOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.94 5.12C9.14 4.41 10.52 4 12 4c4.41 0 8 3.59 8 8 0 1.48-.41 2.86-1.12 4.06l1.46 1.46A9.967 9.967 0 0022 12c0-5.52-4.48-10-10-10-2.04 0-3.93.61-5.51 1.66l1.45 1.46zM2.81 2.81L1.39 4.22l2.27 2.27A9.91 9.91 0 002 12c0 5.52 4.48 10 10 10 2.04 0 3.93-.61 5.51-1.66l2.27 2.27 1.41-1.41L2.81 2.81zM12 20c-4.41 0-8-3.59-8-8 0-1.48.41-2.86 1.12-4.06L8.17 11H7v2h3.17l5.88 5.88A7.869 7.869 0 0112 20z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.83 11l2 2H17v-2z\"}}]})(props);\n};\nexport function MdOutlineDoNotDisturbOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineDoNotDisturb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0112 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0112 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\"}}]})(props);\n};\nexport function MdOutlineDriveEta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 6h10.29l1.04 3H5.81l1.04-3zM19 16H5v-4.66l.12-.34h13.77l.11.34V16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineEnhancedEncryption (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10zm-5-9h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function MdOutlineEventAvailable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zM5 7V5h14v2H5zm5.56 10.46l5.93-5.93-1.06-1.06-4.87 4.87-2.11-2.11-1.06 1.06z\"}}]})(props);\n};\nexport function MdOutlineEventBusy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zM5 7V5h14v2H5zm3.23 9.41l1.06 1.06 2.44-2.44 2.44 2.44 1.06-1.06-2.44-2.44 2.44-2.44-1.06-1.06-2.44 2.44-2.44-2.44-1.06 1.06 2.44 2.44z\"}}]})(props);\n};\nexport function MdOutlineEventNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zM5 7V5h14v2H5zm2 4h10v2H7zm0 4h7v2H7z\"}}]})(props);\n};\nexport function MdOutlineFolderSpecial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10zm-6.92-3.96L12.39 17 15 15.47 17.61 17l-.69-2.96 2.3-1.99-3.03-.26L15 9l-1.19 2.79-3.03.26z\"}}]})(props);\n};\nexport function MdOutlineImagesearchRoller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7V3c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h8v3h-1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1h-1v-3c0-1.1-.9-2-2-2H4V6h2v1c0 .55.45 1 1 1h12c.55 0 1-.45 1-1zM8 4h10v2H8V4zm6 17h-2v-4h2v4z\"}}]})(props);\n};\nexport function MdOutlineLiveTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10v8l7-4zm12-4h-7.58l3.29-3.29L16 2l-4 4h-.03l-4-4-.69.71L10.56 6H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 14H3V8h18v12z\"}}]})(props);\n};\nexport function MdOutlineMms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zm-5.5-8L11 12.51 8.5 9.5 5 14h14z\"}}]})(props);\n};\nexport function MdOutlineMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7.07L2.4 12l4.66-7H22v14z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineNetworkCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5zM1 9l2 2c2.88-2.88 6.79-4.08 10.53-3.62l1.19-2.68C9.89 3.84 4.74 5.27 1 9zm20 2l2-2a15.367 15.367 0 00-5.59-3.57l-.53 2.82c1.5.62 2.9 1.53 4.12 2.75zm-4 4l2-2c-.8-.8-1.7-1.42-2.66-1.89l-.55 2.92c.42.27.83.59 1.21.97zM5 13l2 2a7.1 7.1 0 014.03-2l1.28-2.88c-2.63-.08-5.3.87-7.31 2.88z\"}}]})(props);\n};\nexport function MdOutlineNetworkLocked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16v-.5a2.5 2.5 0 00-5 0v.5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5zM18 5.83v5.43c.47-.16.97-.26 1.5-.26.17 0 .33.03.5.05V1L1 20h13v-2H5.83L18 5.83z\"}}]})(props);\n};\nexport function MdOutlineNoEncryptionGmailerrorred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2h-4.66l2 2H18v5.56l2 2V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.32 0-4.26 1.59-4.82 3.74L8.9 6.46V6zM4.41 4.81L3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12.78l1 1 1.41-1.41L4.41 4.81zM6 20V10h.78l10 10H6z\"}}]})(props);\n};\nexport function MdOutlineNoEncryption (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2h-4.66l2 2H18v5.56l2 2V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.32 0-4.26 1.59-4.82 3.74L8.9 6.46V6zM4.41 4.81L3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12.78l1 1 1.41-1.41L4.41 4.81zM6 20V10h.78l10 10H6z\"}}]})(props);\n};\nexport function MdOutlineOndemandVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 7v8l7-4zm12-4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z\"}}]})(props);\n};\nexport function MdOutlinePersonalVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 002 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 00-2-2zm0 14H3V5h18v12z\"}}]})(props);\n};\nexport function MdOutlinePhoneBluetoothSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 5h1.5c.07.88.22 1.75.45 2.58l-1.2 1.21c-.4-1.21-.66-2.47-.75-3.79zM19 18.97c-1.32-.09-2.6-.35-3.8-.76l1.2-1.2c.85.24 1.72.39 2.6.45v1.51zM14.71 9.5L17 7.21V11h.5l2.85-2.85L18.21 6l2.15-2.15L17.5 1H17v3.79L14.71 2.5l-.71.71L16.79 6 14 8.79l.71.71zM18 2.91l.94.94-.94.94V2.91zm0 4.3l.94.94-.94.94V7.21z\"}}]})(props);\n};\nexport function MdOutlinePhoneCallback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.51c-1.24 0-2.45-.2-3.57-.57a.84.84 0 00-.31-.05c-.26 0-.51.1-.71.29l-2.2 2.2a15.149 15.149 0 01-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1zM5.03 5h1.5a13 13 0 00.46 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79zM19 18.97c-1.32-.09-2.59-.35-3.8-.75l1.19-1.19c.85.24 1.72.39 2.6.45v1.49zM18 9h-2.59l5.02-5.02-1.41-1.41L14 7.59V5h-2v6h6z\"}}]})(props);\n};\nexport function MdOutlinePhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 5h1.5c.07.88.22 1.75.45 2.58l-1.2 1.21c-.4-1.21-.66-2.47-.75-3.79zM19 18.97c-1.32-.09-2.6-.35-3.8-.76l1.2-1.2c.85.24 1.72.39 2.6.45v1.51zM18 11l5-5-5-5v3h-4v4h4z\"}}]})(props);\n};\nexport function MdOutlinePhoneInTalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12h2c0-2.76-2.24-5-5-5v2c1.66 0 3 1.34 3 3zm4 0h2a9 9 0 00-9-9v2c3.87 0 7 3.13 7 7zm1 3.5c-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 5h1.5c.07.88.22 1.75.45 2.58l-1.2 1.21c-.4-1.21-.66-2.47-.75-3.79zM19 18.97c-1.32-.09-2.6-.35-3.8-.76l1.2-1.2c.85.24 1.72.39 2.6.45v1.51z\"}}]})(props);\n};\nexport function MdOutlinePhoneLocked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM5.03 5h1.5c.07.88.22 1.75.45 2.58l-1.2 1.21c-.4-1.21-.66-2.47-.75-3.79zM19 18.97c-1.32-.09-2.6-.35-3.8-.76l1.2-1.2c.85.24 1.72.39 2.6.45v1.51zM20 4v-.5a2.5 2.5 0 00-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 0h-3v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V4z\"}}]})(props);\n};\nexport function MdOutlinePhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23.71 16.67C20.66 13.78 16.54 12 12 12S3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.67 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71 0-.28-.12-.52-.3-.7zm-18.31.56c-.66.37-1.29.8-1.87 1.27l-1.07-1.07c.91-.75 1.9-1.39 2.95-1.9v1.7zm15.08 1.26c-.6-.48-1.22-.9-1.88-1.27v-1.7c1.05.51 2.03 1.15 2.95 1.9l-1.07 1.07zM7 6.43l4.94 4.94 7.07-7.07-1.41-1.42-5.66 5.66L8.4 5H11V3H5v6h2z\"}}]})(props);\n};\nexport function MdOutlinePhonePaused (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.54 5c.06.88.21 1.75.44 2.58l-1.2 1.21c-.4-1.21-.66-2.47-.75-3.79h1.51m9.86 12.01c.85.24 1.72.39 2.6.45v1.5c-1.32-.09-2.6-.35-3.8-.76l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1-1.25 0-2.45-.2-3.57-.57-.1-.03-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2a15.045 15.045 0 01-6.59-6.59l2.2-2.21a.96.96 0 00.25-1A11.36 11.36 0 018.5 4c0-.55-.45-1-1-1zM15 3h2v7h-2zm4 0h2v7h-2z\"}}]})(props);\n};\nexport function MdOutlinePowerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3H8v1.88l2 2zm6 6v3.88l1.8 1.8.2-.2V9c0-1.1-.9-2-2-2V3h-2v4h-3.88l2 2H16zM4.12 3.84L2.71 5.25 6 8.54v5.96L9.5 18v3h5v-3l.48-.48 4.47 4.47 1.41-1.41L4.12 3.84zm8.38 13.33V19h-1v-1.83L8 13.65v-3.11l5.57 5.57-1.07 1.06z\"}}]})(props);\n};\nexport function MdOutlinePower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9v4.66l-3.5 3.51V19h-1v-1.83L8 13.65V9h8m0-6h-2v4h-4V3H8v4h-.01C6.9 6.99 6 7.89 6 8.98v5.52L9.5 18v3h5v-3l3.5-3.51V9c0-1.1-.9-2-2-2V3z\"}}]})(props);\n};\nexport function MdOutlinePriorityHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3h4v12h-4z\"}}]})(props);\n};\nexport function MdOutlineRunningWithErrors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10v8h-2v-8h2zm-2 10v2h2v-2h-2zm-2-2.71A7.99 7.99 0 0112 20c-4.41 0-8-3.59-8-8s3.59-8 8-8v9l7.55-7.55A9.965 9.965 0 0012 2C6.48 2 2 6.48 2 12s4.48 10 10 10c2.25 0 4.33-.74 6-2v-2.71z\"}}]})(props);\n};\nexport function MdOutlineSdCardAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H6V8.83L10.83 4H18v16zm-7-5h2v2h-2zm0-7h2v5h-2z\"}}]})(props);\n};\nexport function MdOutlineSdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4 8v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H6V8.83L10.83 4H18v16zM9 7h2v4H9zm3 0h2v4h-2zm3 0h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineSimCardAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H6V8.83L10.83 4H18v16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2v2h-2zM11 8h2v5h-2z\"}}]})(props);\n};\nexport function MdOutlineSmsFailed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zm-9-4h2v2h-2zm0-6h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlineSms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zM7 9h2v2H7zm8 0h2v2h-2zm-4 0h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineSupportAgent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11.03A6.04 6.04 0 0012.05 6c-3.03 0-6.29 2.51-6.03 6.45a8.075 8.075 0 004.86-5.89c1.31 2.63 4 4.44 7.12 4.47z\"}}]})(props);\n};\nexport function MdOutlineSyncDisabled (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6.35V4.26c-.66.17-1.29.43-1.88.75l1.5 1.5c.13-.05.25-.11.38-.16zM20 12c0-2.21-.91-4.2-2.36-5.64L20 4h-6v6l2.24-2.24A6.003 6.003 0 0118 12c0 .85-.19 1.65-.51 2.38l1.5 1.5A7.921 7.921 0 0020 12zM4.27 4L2.86 5.41l2.36 2.36a7.925 7.925 0 001.14 9.87L4 20h6v-6l-2.24 2.24A6.003 6.003 0 016 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.24-.76.34v2.09c.8-.21 1.55-.54 2.23-.96l2.58 2.58 1.41-1.41L4.27 4z\"}}]})(props);\n};\nexport function MdOutlineSyncProblem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24A6.003 6.003 0 015 12a5.99 5.99 0 014-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24A6.003 6.003 0 0119 12a5.99 5.99 0 01-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z\"}}]})(props);\n};\nexport function MdOutlineSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M.01 0h24v24h-24V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0020 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 004 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\"}}]})(props);\n};\nexport function MdOutlineSystemUpdate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-1-6h-3V8h-2v5H8l4 4 4-4z\"}}]})(props);\n};\nexport function MdOutlineTapAndPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0 4v3h3c0-1.66-1.34-3-3-3zm0-8v2a9 9 0 019 9h2c0-6.08-4.92-11-11-11zM17 1.01L7 1c-1.1 0-2 .9-2 2v7.37c.69.16 1.36.37 2 .64V5h10v13h-3.03c.52 1.25.84 2.59.95 4H17c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z\"}}]})(props);\n};\nexport function MdOutlineTimeToLeave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.85 6h10.29l1.04 3H5.81l1.04-3zM19 16H5v-4.66l.12-.34h13.77l.11.34V16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineTvOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7v10.88l1.85 1.85c.09-.23.15-.47.15-.73V7c0-1.11-.89-2-2-2h-7.58l3.29-3.3L16 1l-4 4-4-4-.7.7L10.58 5H8.12l2 2H21zm-.54 16l1.26-1.27-1.26 1.26zM2.41 2.13l-.14.14L1 3.54l1.53 1.53C1.65 5.28 1 6.06 1 7v12c0 1.1.9 2 2 2h15.46l1.99 1.99 1.26-1.26.15-.15L2.41 2.13zM3 19V7h1.46l12 12H3z\"}}]})(props);\n};\nexport function MdOutlineVibration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 15h2V9H0v6zm3 2h2V7H3v10zm19-8v6h2V9h-2zm-3 8h2V7h-2v10zM16.5 3h-9C6.67 3 6 3.67 6 4.5v15c0 .83.67 1.5 1.5 1.5h9c.83 0 1.5-.67 1.5-1.5v-15c0-.83-.67-1.5-1.5-1.5zM16 19H8V5h8v14z\"}}]})(props);\n};\nexport function MdOutlineVoiceChat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zm-6-5.4l3 2.4V7l-3 2.4V7H7v6h7z\"}}]})(props);\n};\nexport function MdOutlineVpnLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.92 12c.04.33.08.66.08 1 0 2.08-.8 3.97-2.1 5.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55 0 1-.45 1-1V8h2c1.1 0 2-.9 2-2V3.46c-.95-.3-1.95-.46-3-.46C5.48 3 1 7.48 1 13s4.48 10 10 10 10-4.48 10-10c0-.34-.02-.67-.05-1h-2.03zM10 20.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L8 16v1c0 1.1.9 2 2 2v1.93zM22 4v-.5a2.5 2.5 0 00-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 0h-3v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V4z\"}}]})(props);\n};\nexport function MdOutlineWc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M.01 0h24v24h-24V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 22v-7.5H4V9c0-1.1.9-2 2-2h3c1.1 0 2 .9 2 2v5.5H9.5V22h-4zM18 22v-6h3l-2.54-7.63A2.01 2.01 0 0016.56 7h-.12a2 2 0 00-1.9 1.37L12 16h3v6h3zM7.5 6c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm9 0c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2z\"}}]})(props);\n};\nexport function MdOutlineWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11l2-2c-3.73-3.73-8.87-5.15-13.7-4.31l2.58 2.58c3.3-.02 6.61 1.22 9.12 3.73zm-2 2a9.895 9.895 0 00-3.72-2.33l3.02 3.02.7-.69zM9 17l3 3 3-3a4.237 4.237 0 00-6 0zM3.41 1.64L2 3.05 5.05 6.1C3.59 6.83 2.22 7.79 1 9l2 2c1.23-1.23 2.65-2.16 4.17-2.78l2.24 2.24A9.823 9.823 0 005 13l2 2a6.999 6.999 0 014.89-2.06l7.08 7.08 1.41-1.41L3.41 1.64z\"}}]})(props);\n};\nexport function MdOutlineWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3a4.237 4.237 0 00-6 0zm-4-4l2 2a7.074 7.074 0 0110 0l2-2C15.14 9.14 8.87 9.14 5 13z\"}}]})(props);\n};\nexport function MdOutlineAcUnit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11h-4.17l3.24-3.24-1.41-1.42L15 11h-2V9l4.66-4.66-1.42-1.41L13 6.17V2h-2v4.17L7.76 2.93 6.34 4.34 11 9v2H9L4.34 6.34 2.93 7.76 6.17 11H2v2h4.17l-3.24 3.24 1.41 1.42L9 13h2v2l-4.66 4.66 1.42 1.41L11 17.83V22h2v-4.17l3.24 3.24 1.42-1.41L13 15v-2h2l4.66 4.66 1.41-1.42L17.83 13H22v-2z\"}}]})(props);\n};\nexport function MdOutlineAirportShuttle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H3a2 2 0 00-2 2v9h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5l-6-6zm-2 2h1l3 3h-4V7zM9 7h4v3H9V7zM3 7h4v3H3V7zm3 10.25a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zm12 0a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zM21 14h-.78c-.55-.61-1.34-1-2.22-1s-1.67.39-2.22 1H8.22c-.55-.61-1.33-1-2.22-1s-1.67.39-2.22 1H3v-2h18v2z\"}}]})(props);\n};\nexport function MdOutlineAllInclusive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.6 6.62c-1.44 0-2.8.56-3.77 1.53L7.8 14.39c-.64.64-1.49.99-2.4.99-1.87 0-3.39-1.51-3.39-3.38S3.53 8.62 5.4 8.62c.91 0 1.76.35 2.44 1.03l1.13 1 1.51-1.34L9.22 8.2A5.37 5.37 0 005.4 6.62C2.42 6.62 0 9.04 0 12s2.42 5.38 5.4 5.38c1.44 0 2.8-.56 3.77-1.53l7.03-6.24c.64-.64 1.49-.99 2.4-.99 1.87 0 3.39 1.51 3.39 3.38s-1.52 3.38-3.39 3.38c-.9 0-1.76-.35-2.44-1.03l-1.14-1.01-1.51 1.34 1.27 1.12a5.386 5.386 0 003.82 1.57c2.98 0 5.4-2.41 5.4-5.38s-2.42-5.37-5.4-5.37z\"}}]})(props);\n};\nexport function MdOutlineApartment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm4 4H9v-2h2v2zm0-4H9V9h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdOutlineBabyChangingStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8v2h-3L8.31 8.82 7 12.75V22H3V12l1.58-4.63A2.003 2.003 0 017.3 6.18l4.15 1.83L14 8zM8 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm1 18h12v-2H9v2zm10.5-3c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM13 12c0-.55-.45-1-1-1H9v2h2v1c0 1.1.9 2 2 2h2c1.1 0 2-.9 2-2v-3h-2v2h-2v-1z\"}}]})(props);\n};\nexport function MdOutlineBackpack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 4.14V2h-3v2h-4V2H7v2.14c-1.72.45-3 2-3 3.86v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8c0-1.86-1.28-3.41-3-3.86zM18 20H6V8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v12zm-1.5-8v4h-2v-2h-7v-2h9z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0v24h24V0H0z\"}}]})(props);\n};\nexport function MdOutlineBalcony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10v2H8v-2h2zm6 2v-2h-2v2h2zm5 2v8H3v-8h1v-4c0-4.42 3.58-8 8-8s8 3.58 8 8v4h1zM7 16H5v4h2v-4zm4 0H9v4h2v-4zm0-11.92C8.16 4.56 6 7.03 6 10v4h5V4.08zM13 14h5v-4c0-2.97-2.16-5.44-5-5.92V14zm2 2h-2v4h2v-4zm4 0h-2v4h2v-4z\"}}]})(props);\n};\nexport function MdOutlineBathtub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"7\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13V4.83C20 3.27 18.73 2 17.17 2c-.75 0-1.47.3-2 .83l-1.25 1.25c-.16-.05-.33-.08-.51-.08-.4 0-.77.12-1.08.32l2.76 2.76c.2-.31.32-.68.32-1.08 0-.18-.03-.34-.07-.51l1.25-1.25a.828.828 0 011.41.59V13h-6.85c-.3-.21-.57-.45-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5A2.251 2.251 0 005 12.25V13H2v6c0 1.1.9 2 2 2 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 1.1 0 2-.9 2-2v-6h-2zm0 6H4v-4h16v4z\"}}]})(props);\n};\nexport function MdOutlineBeachAccess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19.57l-1.427 1.428-6.442-6.442 1.43-1.428zM13.12 3c-2.58 0-5.16.98-7.14 2.95l-.01.01c-3.95 3.95-3.95 10.36 0 14.31l14.3-14.31A10.086 10.086 0 0013.12 3zM6.14 17.27a8.063 8.063 0 01-.68-6.82c.19 1.91.89 3.79 2.07 5.44l-1.39 1.38zm2.84-2.84C7.63 12.38 7.12 9.93 7.6 7.6c.58-.12 1.16-.18 1.75-.18 1.8 0 3.55.55 5.08 1.56l-5.45 5.45zm1.47-8.97a8.063 8.063 0 016.82.68l-1.39 1.39a11.25 11.25 0 00-5.43-2.07z\"}}]})(props);\n};\nexport function MdOutlineBento (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 6h-6V7h6v4zM4 7h8v10H4V7zm10 10v-4h6v4h-6zm-4.5-5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5.67-1.5 1.5-1.5 1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineBungalow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 14h-2v-2h2v2zm5.1 2.56L17 14.79V21H7v-6.2l-1.1 1.76-1.7-1.06L12 3l7.8 12.5-1.7 1.06zM15 11.59l-3-4.8-3 4.8V19h2v-3h2v3h2v-7.41z\"}}]})(props);\n};\nexport function MdOutlineBusinessCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-4V5l-2-2h-4L8 5v2H4c-1.1 0-2 .9-2 2v5c0 .75.4 1.38 1 1.73V19c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2v-3.28c.59-.35 1-.99 1-1.72V9c0-1.1-.9-2-2-2zM10 5h4v2h-4V5zM4 9h16v5h-5v-3H9v3H4V9zm9 6h-2v-2h2v2zm6 4H5v-3h4v1h6v-1h4v3z\"}}]})(props);\n};\nexport function MdOutlineCabin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 1c0 1.66-1.34 3-3 3-.55 0-1 .45-1 1H4c0-1.66 1.34-3 3-3 .55 0 1-.45 1-1h2zm2 2L6 7.58V6H4v3.11L1 11.4l1.21 1.59L4 11.62V21h16v-9.38l1.79 1.36L23 11.4 12 3zm1.94 4h-3.89L12 5.52 13.94 7zm-6.5 2h9.12L18 10.1v.9H6v-.9L7.44 9zM18 13v2H6v-2h12zM6 19v-2h12v2H6z\"}}]})(props);\n};\nexport function MdOutlineCarpenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.73 14.23L7 1.5 3.11 5.39l8.13 11.67c-.78.78-.78 2.05 0 2.83l1.41 1.41c.78.78 2.05.78 2.83 0l4.24-4.24c.79-.78.79-2.05.01-2.83zM5.71 5.62L7 4.33l8.49 8.49-2.81 2.81L5.71 5.62zm8.36 14.26l-1.41-1.41 4.24-4.24 1.41 1.41-4.24 4.24z\"}}]})(props);\n};\nexport function MdOutlineCasino (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"16.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"16.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function MdOutlineChalet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 15L10 7.5 2.5 15l1.41 1.41L5 15.33V20h10v-4.67l1.09 1.09L17.5 15zM13 18h-2v-3H9v3H7v-4.67l3-3 3 3V18zm9-10.5h-1.19l.75.75-.71.71-1.46-1.46h-.89v.89l1.45 1.45-.71.71-.74-.74V11h-1V9.81l-.75.75-.71-.71 1.45-1.45v-.9h-.89l-1.45 1.45-.71-.71.75-.75H14v-1h1.19l-.75-.75.71-.71 1.45 1.45h.89v-.87l-1.45-1.45.71-.71.75.75V3h1v1.19l.75-.75.71.71-1.46 1.46v.89h.89l1.45-1.45.71.71-.74.74H22v1z\"}}]})(props);\n};\nexport function MdOutlineChargingStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 11l-3 6v-4h-2l3-6v4h2zM17 3H7v1h10V3m0 17H7v1h10v-1m0-19c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h10zM7 18h10V6H7v12z\"}}]})(props);\n};\nexport function MdOutlineCheckroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.6 18.2L13 11.75v-.91a3.496 3.496 0 00-.18-6.75A3.51 3.51 0 008.5 7.5h2c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .84-.69 1.52-1.53 1.5-.54-.01-.97.45-.97.99v1.76L2.4 18.2c-.77.58-.36 1.8.6 1.8h18c.96 0 1.37-1.22.6-1.8zM6 18l6-4.5 6 4.5H6z\"}}]})(props);\n};\nexport function MdOutlineChildCare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"10.5\",\"r\":\"1.25\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.5\",\"cy\":\"10.5\",\"r\":\"1.25\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22.94 11.34a4.008 4.008 0 00-2.81-3.17 9.114 9.114 0 00-2.19-2.91C16.36 3.85 14.28 3 12 3s-4.36.85-5.94 2.26c-.92.81-1.67 1.8-2.19 2.91a3.994 3.994 0 00-2.81 3.17c-.04.21-.06.43-.06.66 0 .23.02.45.06.66a4.008 4.008 0 002.81 3.17 8.977 8.977 0 002.17 2.89C7.62 20.14 9.71 21 12 21s4.38-.86 5.97-2.28c.9-.8 1.65-1.79 2.17-2.89a3.998 3.998 0 002.8-3.17c.04-.21.06-.43.06-.66 0-.23-.02-.45-.06-.66zM19 14c-.1 0-.19-.02-.29-.03-.2.67-.49 1.29-.86 1.86C16.6 17.74 14.45 19 12 19s-4.6-1.26-5.85-3.17c-.37-.57-.66-1.19-.86-1.86-.1.01-.19.03-.29.03-1.1 0-2-.9-2-2s.9-2 2-2c.1 0 .19.02.29.03.2-.67.49-1.29.86-1.86C7.4 6.26 9.55 5 12 5s4.6 1.26 5.85 3.17c.37.57.66 1.19.86 1.86.1-.01.19-.03.29-.03 1.1 0 2 .9 2 2s-.9 2-2 2zm-7 3c2.01 0 3.74-1.23 4.5-3h-9c.76 1.77 2.49 3 4.5 3z\"}}]})(props);\n};\nexport function MdOutlineChildFriendly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2v8h8c0-4.42-3.58-8-8-8zm2 6V4.34c1.7.6 3.05 1.95 3.66 3.66H15zm-8.56 3l-.95-2H2v2h2.22s1.89 4.07 2.12 4.42c-1.1.59-1.84 1.75-1.84 3.08C4.5 20.43 6.07 22 8 22c1.76 0 3.22-1.3 3.46-3h2.08c.24 1.7 1.7 3 3.46 3 1.93 0 3.5-1.57 3.5-3.5 0-1.04-.46-1.97-1.18-2.61A7.948 7.948 0 0021 11H6.44zM8 20c-.83 0-1.5-.67-1.5-1.5S7.17 17 8 17s1.5.67 1.5 1.5S8.83 20 8 20zm9 0c-.83 0-1.5-.67-1.5-1.5S16.17 17 17 17s1.5.67 1.5 1.5S17.83 20 17 20zm.74-5.34l-.29.37A3.505 3.505 0 0013.84 17h-2.68c-.5-1.04-1.5-1.8-2.68-1.97l-.44-.67c-.1-.17-.34-.69-.67-1.36h11.29c-.21.59-.52 1.15-.92 1.66z\"}}]})(props);\n};\nexport function MdOutlineCorporateFare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7V3H2v18h20V7H12zm-2 12H4v-2h6v2zm0-4H4v-2h6v2zm0-4H4V9h6v2zm0-4H4V5h6v2zm10 12h-8V9h8v10zm-2-8h-4v2h4v-2zm0 4h-4v2h4v-2z\"}}]})(props);\n};\nexport function MdOutlineCottage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L6 7.58V6H4v3.11L1 11.4l1.21 1.59L4 11.62V21h16v-9.38l1.79 1.36L23 11.4 12 3zm6 16h-5v-4h-2v4H6v-8.9l6-4.58 6 4.58V19zM10 1c0 1.66-1.34 3-3 3-.55 0-1 .45-1 1H4c0-1.66 1.34-3 3-3 .55 0 1-.45 1-1h2z\"}}]})(props);\n};\nexport function MdOutlineCountertops (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10h-4V7c0-1.66-1.34-3-3-3s-3 1.34-3 3h2c0-.55.45-1 1-1s1 .45 1 1v3H8c1.1 0 2-.9 2-2V4H4v4c0 1.1.9 2 2 2H2v2h2v8h16v-8h2v-2zM6 6h2v2H6V6zm0 12v-6h5v6H6zm12 0h-5v-6h5v6z\"}}]})(props);\n};\nexport function MdOutlineCrib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9h-6V4H8C5.79 4 4 5.79 4 8v6c0 1.1.9 2 2 2h2v2.93c-.61-.35-1.16-.78-1.65-1.27l-1.42 1.42C6.74 20.88 9.24 22 12 22c2.76 0 5.26-1.12 7.07-2.93l-1.42-1.42c-.49.49-1.05.92-1.65 1.27V16h2c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm-4 10.75c-.64.16-1.31.25-2 .25s-1.36-.09-2-.25V16h4v3.75zM18 14H6V8c0-1.1.9-2 2-2h2v5h8v3z\"}}]})(props);\n};\nexport function MdOutlineDoNotStep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.51 15.68l-1.41-1.41 4.48-4.48L23 11.2l-4.49 4.48zm-3.53-3.53l3.07-3.07-4.25-4.26-3.08 3.07L9.3 6.47 13.8 2l7.08 7.08-4.48 4.48-1.42-1.41zm6.2 9.05l-1.41 1.41-5.94-5.94L10.5 20H1v-2.63c0-.84.52-1.57 1.3-1.88.58-.23 1.28-.56 1.97-1.02l1.38 1.38c.09.1.22.15.35.15s.26-.05.36-.15c.2-.2.2-.51 0-.71l-1.28-1.28c.27-.24.53-.51.77-.8l1.27 1.27a.485.485 0 00.7 0c.2-.2.2-.51 0-.71l-1.4-1.4c.19-.34.34-.72.45-1.12l1.71 1.72a.485.485 0 00.7 0c.19-.2.19-.5.01-.7l-7.9-7.9 1.42-1.41L21.18 21.2zm-8.76-5.94l-1.67-1.68-3.33 3.32c-.78.78-2.05.78-2.83-.01l-.19-.17-.47.24c-.29.14-.59.27-.89.39l-.01.65h6.64l2.75-2.74z\"}}]})(props);\n};\nexport function MdOutlineDoNotTouch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2.81 2.81L1.39 4.22 7 9.83v4.3l-2.6-1.48c-.17-.09-.34-.14-.54-.14-.26 0-.5.09-.7.26L2 13.88l6.8 7.18c.57.6 1.35.94 2.18.94H17c.62 0 1.18-.19 1.66-.52l1.12 1.12 1.41-1.41L2.81 2.81zM17 20h-6c-.39 0-.64-.23-.75-.36L6.87 16H9v-4.17l8.14 8.14c-.05.01-.09.03-.14.03zm-3.17-9H14V3.25a1.25 1.25 0 012.5 0V11h1V5.25a1.25 1.25 0 012.5 0v11.92l-2-2V13h-2.17l-2-2zm-.83-.83V2.25a1.25 1.25 0 00-2.5 0v5.42l2.5 2.5zm-3.5-3.5V4.25C9.5 3.56 8.94 3 8.25 3c-.67 0-1.2.53-1.24 1.18L9.5 6.67z\"}}]})(props);\n};\nexport function MdOutlineDry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.75 16a1.25 1.25 0 000-2.5H12v-1h6.75c.69 0 1.25-.56 1.25-1.25 0-.67-.53-1.2-1.18-1.24L8.87 10l1.48-2.6c.09-.17.14-.34.14-.54 0-.26-.09-.5-.26-.7L9.12 5l-7.18 6.8c-.6.56-.94 1.35-.94 2.17V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 000-2.5H12v-1h7.75a1.25 1.25 0 000-2.5H12v-1h8.75zM10 21H4c-.55 0-1-.45-1-1v-6c0-.39.23-.64.36-.75L7 9.87V12h3v9zm5.65-16.14l-.07-.07c-.57-.62-.82-1.41-.67-2.2L15 2h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zm4 0l-.07-.07c-.57-.62-.82-1.41-.67-2.2L19 2h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71z\"}}]})(props);\n};\nexport function MdOutlineElevator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 15v-4h1v-2.5c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2V14h1v4h3zM8.5 8.5a1.25 1.25 0 100-2.5 1.25 1.25 0 000 2.5zM18 11l-2.5-4-2.5 4h5zm-5 2l2.5 4 2.5-4h-5z\"}}]})(props);\n};\nexport function MdOutlineEscalatorWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5S17.83 8 17 8s-1.5.67-1.5 1.5zm3 2.5h-2.84c-.58.01-1.14.32-1.45.86l-.92 1.32L9.72 8a2.02 2.02 0 00-1.71-1H5c-1.1 0-2 .9-2 2v6h1.5v7h5V11.61L12.03 16h2.2l.77-1.1V22h4v-5h1v-3.5c0-.82-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdOutlineEscalator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 3h-3.3l-5 9H7c-.83 0-1.5.67-1.5 1.5S6.17 18 7 18h3.3l5-9H17c.83 0 1.5-.67 1.5-1.5S17.83 6 17 6z\"}}]})(props);\n};\nexport function MdOutlineFamilyRestroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm4 18v-6h2.5l-2.54-7.63A2.01 2.01 0 0018.06 7h-.12a2 2 0 00-1.9 1.37l-.86 2.58c1.08.6 1.82 1.73 1.82 3.05v8h3zm-7.5-10.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5S11 9.17 11 10s.67 1.5 1.5 1.5zM5.5 6c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm2 16v-7H9V9c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v6h1.5v7h4zm6.5 0v-4h1v-4c0-.82-.68-1.5-1.5-1.5h-2c-.82 0-1.5.68-1.5 1.5v4h1v4h3z\"}}]})(props);\n};\nexport function MdOutlineFence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v-2h-2V7l-3-3-2 2-2-2-2 2-2-2-3 3v3H3v2h2v2H3v2h2v4h14v-4h2v-2h-2v-2h2zm-5-5.17l1 1V10h-2V7.83l.41-.41.59-.59zm-4 0l.59.59.41.41V10h-2V7.83l.41-.41.59-.59zM11 14v-2h2v2h-2zm2 2v2h-2v-2h2zM7 7.83l1-1 .59.59.41.41V10H7V7.83zM7 12h2v2H7v-2zm0 4h2v2H7v-2zm10 2h-2v-2h2v2zm0-4h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdOutlineFireExtinguisher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19h10v1c0 1.1-.9 2-2 2H9c-1.1 0-2-.9-2-2v-1zm0-1h10v-5H7v5zM17 3v6l-3.15-.66c-.01 0-.01.01-.02.02 1.55.62 2.72 1.98 3.07 3.64H7.1c.34-1.66 1.52-3.02 3.07-3.64-.33-.26-.6-.58-.8-.95L5 6.5v-1l4.37-.91C9.87 3.65 10.86 3 12 3c.7 0 1.34.25 1.85.66L17 3zm-4 3c-.03-.59-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1z\"}}]})(props);\n};\nexport function MdOutlineFitnessCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.57 14.86L22 13.43 20.57 12 17 15.57 8.43 7 12 3.43 10.57 2 9.14 3.43 7.71 2 5.57 4.14 4.14 2.71 2.71 4.14l1.43 1.43L2 7.71l1.43 1.43L2 10.57 3.43 12 7 8.43 15.57 17 12 20.57 13.43 22l1.43-1.43L16.29 22l2.14-2.14 1.43 1.43 1.43-1.43-1.43-1.43L22 16.29l-1.43-1.43z\"}}]})(props);\n};\nexport function MdOutlineFoodBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.5l6 4.5v9H6v-9l6-4.5M12 3L4 9v12h16V9l-8-6zm-.5 6.5v3H11v-3h-1v3h-.5v-3h-1v3c0 .83.67 1.5 1.5 1.5v4h1v-4c.83 0 1.5-.67 1.5-1.5v-3h-1zm1.5 2v3h1V18h1V9.5c-1.1 0-2 .9-2 2z\"}}]})(props);\n};\nexport function MdOutlineFoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12h3L12 3 2 12h3v3H3v2h2v3h2v-3h4v3h2v-3h4v3h2v-3h2v-2h-2v-3zM7 15v-4.81l4-3.6V15H7zm6 0V6.59l4 3.6V15h-4z\"}}]})(props);\n};\nexport function MdOutlineFreeBreakfast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19h16v2H4zM20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2a2 2 0 002-2V5c0-1.11-.89-2-2-2zm-4 10c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V5h10v8zm4-5h-2V5h2v3z\"}}]})(props);\n};\nexport function MdOutlineGite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6H9V4H7v2H6l-4 4v9h20v-9l-4-4zM4 12h10v5H4v-5zm16 5h-4v-6.17l2-2 2 2V17z\"}}]})(props);\n};\nexport function MdOutlineGolfCourse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5.92L9 2v18H7v-1.73c-1.79.35-3 .99-3 1.73 0 1.1 2.69 2 6 2s6-.9 6-2c0-.99-2.16-1.81-5-1.97V8.98l6-3.06z\"}}]})(props);\n};\nexport function MdOutlineGrass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20H2v-2h5.75A8.032 8.032 0 002 12.26c.64-.16 1.31-.26 2-.26 4.42 0 8 3.58 8 8zm10-7.74c-.64-.16-1.31-.26-2-.26-2.93 0-5.48 1.58-6.88 3.93a9.82 9.82 0 01.87 4.07h8v-2h-5.75A8.061 8.061 0 0122 12.26zm-6.36-1.24a10.03 10.03 0 014.09-5C15.44 6.16 12 9.67 12 14v.02c.95-1.27 2.2-2.3 3.64-3zm-4.22-2.17A8.527 8.527 0 006.7 4C8.14 5.86 9 8.18 9 10.71c0 .21-.03.41-.04.61.43.24.83.52 1.22.82a9.91 9.91 0 011.24-3.29z\"}}]})(props);\n};\nexport function MdOutlineHolidayVillage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 4l-6 6v10h12V10L8 4zm4 14H9v-3H7v3H4v-7.17l4-4 4 4V18zm-3-5H7v-2h2v2zm9 7V8.35L13.65 4h-2.83L16 9.18V20h2zm4 0V6.69L19.31 4h-2.83L20 7.52V20h2z\"}}]})(props);\n};\nexport function MdOutlineHotTub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.15 12c-.31-.22-.59-.46-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C6.01 9 5 10.01 5 11.25V12H2v8c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-8H11.15zM7 20H5v-6h2v6zm4 0H9v-6h2v6zm4 0h-2v-6h2v6zm4 0h-2v-6h2v6zM17.42 7.21c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71l-.07-.07c-.57-.62-.82-1.41-.67-2.2L18 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06zm-4 0c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71l-.07-.07c-.57-.62-.82-1.41-.67-2.2L14 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06z\"}}]})(props);\n};\nexport function MdOutlineHouseSiding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12h3L12 3 2 12h3v8h2v-2h10v2h2v-8zM7.21 10h9.58l.21.19V12H7v-1.81l.21-.19zm7.36-2H9.43L12 5.69 14.57 8zM7 16v-2h10v2H7z\"}}]})(props);\n};\nexport function MdOutlineHouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9.3V4h-3v2.6L12 3 2 12h3v8h6v-6h2v6h6v-8h3l-3-2.7zM17 18h-2v-6H9v6H7v-7.81l5-4.5 5 4.5V18z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10h4c0-1.1-.9-2-2-2s-2 .9-2 2z\"}}]})(props);\n};\nexport function MdOutlineHouseboat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c-1.95 0-2.1 1-3.34 1-1.19 0-1.42-1-3.33-1-1.95 0-2.09 1-3.33 1v2c1.9 0 2.17-1 3.35-1 1.19 0 1.42 1 3.33 1 1.95 0 2.08-1 3.32-1s1.37 1 3.32 1c1.91 0 2.14-1 3.33-1 1.18 0 1.45 1 3.35 1v-2c-1.24 0-1.38-1-3.33-1-1.91 0-2.14 1-3.33 1-1.24 0-1.39-1-3.34-1zm8.34-4.66l-1.37 1.37c-.19.18-.45.29-.71.29H17V9.65l1.32.97L19.5 9 12 3.5 4.5 9l1.18 1.61L7 9.65V13H5.74c-.27 0-.52-.11-.71-.29l-1.37-1.37-1.41 1.41 1.37 1.37c.56.56 1.33.88 2.12.88h12.51c.8 0 1.56-.32 2.12-.88l1.37-1.37-1.4-1.41zM13 13v-2h-2v2H9V8.18l3-2.2 3 2.2V13h-2z\"}}]})(props);\n};\nexport function MdOutlineIron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6c-1.66 0-3 1.34-3 3v4c0 .55-.45 1-1 1v-4c0-1.66-1.34-3-3-3h-4c-1.66 0-3 1.34-3 3h2c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1H6c-2.21 0-4 1.79-4 4v3h15v-2c1.66 0 3-1.34 3-3V9c0-.55.45-1 1-1h1V6h-1zm-6 10H4v-1c0-1.1.9-2 2-2h9v3z\"}}]})(props);\n};\nexport function MdOutlineKitchen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 5h2v3H8zm0 7h2v5H8zm10-9.99L6 2a2 2 0 00-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.11-.9-1.99-2-1.99zM18 20H6v-9.02h12V20zm0-11H6V4h12v5z\"}}]})(props);\n};\nexport function MdOutlineMeetingRoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19V4h-4V3H5v16H3v2h12V6h2v15h4v-2h-2zm-6 0H7V5h6v14zm-3-8h2v2h-2z\"}}]})(props);\n};\nexport function MdOutlineMicrowave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 6h10v12H4V6zm16 12h-4V6h4v12zm-1-9h-2V7h2v2zm-1 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-7.75-1c-.79 0-1.37-.38-1.79-.66-.33-.22-.52-.34-.71-.34-.37 0-.8.41-.95.61l-1.42-1.42c.35-.4 1.21-1.19 2.37-1.19.8 0 1.39.39 1.81.67.31.21.51.33.69.33.37 0 .8-.41.95-.61l1.42 1.42c-.36.4-1.21 1.19-2.37 1.19zm0-5c-.79 0-1.37-.38-1.79-.66-.33-.22-.52-.34-.71-.34-.37 0-.8.41-.95.61L5.37 9.19C5.73 8.79 6.59 8 7.75 8c.8 0 1.39.39 1.81.67.31.21.51.33.69.33.37 0 .8-.41.95-.61l1.42 1.42c-.36.4-1.21 1.19-2.37 1.19z\"}}]})(props);\n};\nexport function MdOutlineNightShelter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.5l6 4.5v9H6v-9l6-4.5M12 3L4 9v12h16V9l-8-6zm3 9h-3.5v3.5H8V11H7v7h1v-1.5h8V18h1v-4c0-1.1-.9-2-2-2zm-5.25.5a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5z\"}}]})(props);\n};\nexport function MdOutlineNoBackpack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.98 4.15c.01 0 .01-.01.02-.01V2h3v2h4V2h3v2.14c1.72.45 3 2 3 3.86v9.17l-2-2V8c0-1.1-.9-2-2-2H8.83L6.98 4.15zM14.83 12l1.67 1.67V12h-1.67zm4.95 10.61l-.85-.85c-.28.15-.59.24-.93.24H6c-1.1 0-2-.9-2-2V8c0-.36.06-.69.15-1.02L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM17.17 20l-6-6H7.5v-2h1.67L6 8.83V20h11.17z\"}}]})(props);\n};\nexport function MdOutlineNoCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6v8.17l2 2V3c0-1.1-.9-1.99-2-1.99L7 1c-.85 0-1.58.55-1.87 1.3L8.83 6H17zM7 3h10v1H7V3zm14.19 18.19L19 19l-2-2L7 7 5 5 2.81 2.81 1.39 4.22 5 7.83V21c0 1.1.9 2 2 2h10c.85 0 1.58-.55 1.87-1.3l.91.91 1.41-1.42zM17 21H7v-1h10v1zM7 18V9.83L15.17 18H7z\"}}]})(props);\n};\nexport function MdOutlineNoDrinks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22l8.23 8.23L11 14v5H6v2h12v-.17l1.78 1.78 1.41-1.42zM13 19v-3.17L16.17 19H13zM7.83 5l-2-2H21v2l-6.2 6.97-1.42-1.42L14.77 9h-2.94l-2-2h6.74l1.78-2H7.83z\"}}]})(props);\n};\nexport function MdOutlineNoFlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.4 5.6H22L19 11V7h-1V2h4l-1.6 3.6zM16 11.4v1.77l2 2V11c0-.88-.72-1.6-1.6-1.6h-2.54L12.58 8h-1.75l3.4 3.4H16zM2.1 2.1L.69 3.51l5.66 5.66-.21.23H3.6c-.88 0-1.6.72-1.6 1.6v9.4c0 .88.72 1.6 1.6 1.6h12.8c.75 0 1.38-.52 1.55-1.22l2.54 2.54 1.41-1.41L2.1 2.1zm9.4 13.4c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5S9.17 14 10 14s1.5.67 1.5 1.5zm4.46 4.5H4v-8.6h3.02l.59-.65.15-.16 1.5 1.5A3.486 3.486 0 006.5 15.5c0 1.93 1.57 3.5 3.5 3.5 1.68 0 3.07-1.18 3.42-2.76l2.55 2.55-.01 1.21z\"}},{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}]})(props);\n};\nexport function MdOutlineNoFood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 21h15.01v.98c0 .56-.45 1.01-1.01 1.01H2.01c-.56 0-1.01-.45-1.01-1.01V21zm19.49 2.31L16 18.83V19H1v-2h13.17l-2-2H1c0-3.24 2.46-5.17 5.38-5.79l-5.7-5.7L2.1 2.1 13 13l2 2 6.9 6.9-1.41 1.41zM10.17 13l-2-2c-1.42.06-3.52.56-4.55 2h6.55zM23 5h-5V1h-2v4h-5l.23 2h9.56l-1 9.97 1.83 1.83L23 5z\"}}]})(props);\n};\nexport function MdOutlineNoMeetingRoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5v3.88l2 2V6h3v7.88l2 2V4h-5V3H6.12l2 2zM2.41 2.13L1 3.54l4 4V19H3v2h11v-4.46L20.46 23l1.41-1.41L2.41 2.13zM12 19H7V9.54l5 5V19z\"}}]})(props);\n};\nexport function MdOutlineNoPhotography (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.9 6.07L7.48 4.66 9 3h6l1.83 2H20c1.1 0 2 .9 2 2v12c0 .05-.01.1-.02.16L20 17.17V7h-4.05l-1.83-2H9.88L8.9 6.07zm11.59 17.24L18.17 21H4c-1.1 0-2-.9-2-2V7c0-.59.27-1.12.68-1.49l-2-2L2.1 2.1l19.8 19.8-1.41 1.41zM9.19 12.02c-.11.31-.19.63-.19.98 0 1.66 1.34 3 3 3 .35 0 .67-.08.98-.19l-3.79-3.79zM16.17 19l-1.68-1.68c-.73.43-1.58.68-2.49.68-2.76 0-5-2.24-5-5 0-.91.25-1.76.68-2.49L4.17 7H4v12h12.17zm-1.36-7.02l2.07 2.07c.08-.34.12-.69.12-1.05 0-2.76-2.24-5-5-5-.36 0-.71.04-1.06.12l2.07 2.07c.84.3 1.5.96 1.8 1.79z\"}}]})(props);\n};\nexport function MdOutlineNoStroller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm7-11.34v3.51l2 2v-7.9c.58-.68.97-1.27 1.65-1.27.77 0 1.35.66 1.35 1.48V7h2v-.52C22 4.56 20.52 3 18.65 3c-1.66 0-2.54 1.27-3.18 2.03l-3.5 4.11 1.42 1.42L15 8.66zm4.78 13.95l-1.91-1.91c-.29.76-1.01 1.3-1.87 1.3-1.1 0-2-.9-2-2 0-.86.54-1.58 1.3-1.87L14.17 17H7.43c-.85 0-1.31-1-.76-1.65l2.69-3.16-7.97-7.97L2.8 2.81l7.86 7.86 1.42 1.42 9.11 9.11-1.41 1.41zM12.17 15l-1.39-1.39L9.6 15h2.57zM10 5c.29 0 .58.02.86.05L9.49 6.67l1.42 1.42L14.3 4.1C13.03 3.4 11.56 3 10 3c-1.23 0-2.4.25-3.47.7L8.1 5.27A7.09 7.09 0 0110 5z\"}}]})(props);\n};\nexport function MdOutlineOtherHouses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L1 11.4l1.21 1.59L4 11.62V21h16v-9.38l1.79 1.36L23 11.4 12 3zm6 16H6v-8.9l6-4.58 6 4.58V19zm-9-5c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1zm3-1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm3 1c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1z\"}}]})(props);\n};\nexport function MdOutlinePool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8l-3.25 3.25c.31.12.56.27.77.39.37.23.59.36 1.15.36s.78-.13 1.15-.36c.46-.27 1.08-.64 2.19-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36.55 0 .78-.13 1.15-.36.12-.07.26-.15.41-.23L10.48 5C8.93 3.45 7.5 2.99 5 3v2.5c1.82-.01 2.89.39 4 1.5l1 1zm12 8.5h-.02.02zm-16.65-1c.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64s1.73-.37 2.18-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64s1.73-.37 2.18-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.06.63 2.16.64v-2c-.55 0-.78-.14-1.15-.36-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.6.36-1.15.36s-.78-.14-1.15-.36c-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.59.36-1.15.36-.55 0-.78-.14-1.15-.36-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.18.64c-.37.23-.59.36-1.15.36v2c1.11 0 1.73-.37 2.2-.64.37-.23.6-.36 1.15-.36zM18.67 18c-1.11 0-1.73.37-2.18.64-.37.23-.6.36-1.15.36-.55 0-.78-.14-1.15-.36-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.19.64c-.37.23-.59.36-1.15.36s-.78-.13-1.15-.36c-.45-.27-1.07-.64-2.18-.64s-1.73.37-2.19.64c-.37.23-.59.36-1.15.36v2c1.11 0 1.73-.37 2.19-.64.37-.23.6-.36 1.15-.36.55 0 .78.13 1.15.36.45.27 1.07.64 2.18.64s1.73-.37 2.19-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64s1.72-.37 2.18-.64c.37-.23.59-.36 1.15-.36.55 0 .78.14 1.15.36.45.27 1.07.64 2.18.64v-2c-.56 0-.78-.13-1.15-.36-.45-.27-1.07-.64-2.18-.64z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"5.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function MdOutlineRiceBowl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.66 14c-.66 1.92-2.24 3.54-4.4 4.39l-1.26.49V20h-4v-1.12l-1.27-.5c-2.16-.85-3.74-2.47-4.4-4.39h15.33M12 2C6.48 2 2 6.48 2 12c0 3.69 2.47 6.86 6 8.25V22h8v-1.75c3.53-1.39 6-4.56 6-8.25 0-5.52-4.48-10-10-10zm-2 10V4.26c.64-.16 1.31-.26 2-.26s1.36.1 2 .26V12h-4zm6 0V5.08c2.39 1.39 4 3.96 4 6.92h-4zM4 12c0-2.95 1.61-5.53 4-6.92V12H4z\"}}]})(props);\n};\nexport function MdOutlineRoofing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 18h-2v-2h2v2zm2-4H9v6h6v-6zm4-4.7V4h-3v2.6L12 3 2 12h3l7-6.31L19 12h3l-3-2.7z\"}}]})(props);\n};\nexport function MdOutlineRoomPreferences (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.69 16.37l1.14-1-1-1.73-1.45.49c-.32-.27-.68-.48-1.08-.63L19 12h-2l-.3 1.49c-.4.15-.76.36-1.08.63l-1.45-.49-1 1.73 1.14 1c-.08.5-.08.76 0 1.26l-1.14 1 1 1.73 1.45-.49c.32.27.68.48 1.08.63L17 22h2l.3-1.49c.4-.15.76-.36 1.08-.63l1.45.49 1-1.73-1.14-1c.08-.51.08-.77 0-1.27zM18 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm1-15v6h-2V6h-2v6h-2V5H7v14h5v2H3v-2h2V3h10v1h4zm-7 9h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdOutlineRoomService (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.98 17H2v2h20v-2zM21 16c-.27-4.07-3.25-7.4-7.16-8.21A2.006 2.006 0 0012 5a2.006 2.006 0 00-1.84 2.79C6.25 8.6 3.27 11.93 3 16h18zm-9-6.42c2.95 0 5.47 1.83 6.5 4.41h-13A7.002 7.002 0 0112 9.58z\"}}]})(props);\n};\nexport function MdOutlineRvHookup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17v-6c0-1.1-.9-2-2-2H7V7l-3 3 3 3v-2h4v3H4v3c0 1.1.9 2 2 2h2c0 1.66 1.34 3 3 3s3-1.34 3-3h8v-2h-2zm-9 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm7-6h-4v-3h4v3zM17 2v2H9v2h8v2l3-3-3-3z\"}}]})(props);\n};\nexport function MdOutlineSmokeFree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 13H22v3h-1.5zM18 13h1.5v3H18zm-1 0h-2.34L17 15.34zm-2.5-4.35h1.53c1.05 0 1.97.74 1.97 2.05V12h1.5v-1.64c0-1.81-1.6-3.16-3.47-3.16H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75v-1.5a3.35 3.35 0 000 6.7zm4.35-3.92c.62-.61 1-1.45 1-2.38h-1.5c0 1.02-.83 1.85-1.85 1.85v1.5c2.24 0 4 1.83 4 4.07V12H22V9.76c0-2.22-1.28-4.14-3.15-5.03zM3.41 4.59L2 6l7 7H2v3h10l7 7 1.41-1.41z\"}}]})(props);\n};\nexport function MdOutlineSmokingRooms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16h1.5v3H18zM2 16h15v3H2zm14.03-5.8H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75v-1.5a3.35 3.35 0 000 6.7h1.53c1.05 0 1.97.74 1.97 2.05V15h1.5v-1.64c0-1.81-1.6-3.16-3.47-3.16zM20.5 16H22v3h-1.5zm-1.65-8.27c.62-.61 1-1.45 1-2.38C19.85 3.5 18.35 2 16.5 2v1.5c1.02 0 1.85.83 1.85 1.85S17.52 7.2 16.5 7.2v1.5c2.24 0 4 1.83 4 4.07V15H22v-2.24c0-2.22-1.28-4.14-3.15-5.03z\"}}]})(props);\n};\nexport function MdOutlineSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.25 6c.41 0 .75.34.75.75s-.34.75-.75.75-.75-.34-.75-.75.34-.75.75-.75m0-1.5C13.01 4.5 12 5.51 12 6.75S13.01 9 14.25 9s2.25-1.01 2.25-2.25-1.01-2.25-2.25-2.25zm5.75 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5M20 4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-3.5-3c-.83 0-1.5.67-1.5 1.5S15.67 4 16.5 4 18 3.33 18 2.5 17.33 1 16.5 1zm4.25 15a1.25 1.25 0 000-2.5H12v-1h6.75c.69 0 1.25-.56 1.25-1.25 0-.67-.53-1.2-1.18-1.24L8.87 10l1.48-2.6c.09-.17.14-.34.14-.54 0-.26-.09-.5-.26-.7L9.12 5l-7.18 6.8c-.6.56-.94 1.35-.94 2.17V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 000-2.5H12v-1h7.75a1.25 1.25 0 000-2.5H12v-1h8.75zM10 21H4c-.55 0-1-.45-1-1v-6c0-.39.23-.64.36-.75L7 9.87V12h3v9z\"}}]})(props);\n};\nexport function MdOutlineSpa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.49 9.63c-.18-2.79-1.31-5.51-3.43-7.63a12.188 12.188 0 00-3.55 7.63c1.28.68 2.46 1.56 3.49 2.63 1.03-1.06 2.21-1.94 3.49-2.63zm-3.44-4.44c.63 1.03 1.07 2.18 1.3 3.38-.47.3-.91.63-1.34.98-.42-.34-.87-.67-1.33-.97.25-1.2.71-2.35 1.37-3.39zM12 15.45a12.11 12.11 0 00-3.06-3.2c-.13-.09-.27-.16-.4-.26.13.09.27.17.39.25A11.777 11.777 0 002 10c0 5.32 3.36 9.82 8.03 11.49.63.23 1.29.4 1.97.51.68-.12 1.33-.29 1.97-.51C18.64 19.82 22 15.32 22 10c-4.18 0-7.85 2.17-10 5.45zm1.32 4.15c-.44.15-.88.27-1.33.37-.44-.09-.87-.21-1.28-.36-3.29-1.18-5.7-3.99-6.45-7.35 1.1.26 2.15.71 3.12 1.33l-.02.01c.13.09.26.18.39.25l.07.04c.99.72 1.84 1.61 2.51 2.65L12 19.1l1.67-2.55a10.19 10.19 0 012.53-2.66l.07-.05c.09-.05.18-.11.27-.17l-.01-.02c.98-.65 2.07-1.13 3.21-1.4-.75 3.37-3.15 6.18-6.42 7.35zm-4.33-7.32c-.02-.01-.04-.03-.05-.04 0 0 .01 0 .01.01.01.01.02.02.04.03z\"}}]})(props);\n};\nexport function MdOutlineSportsBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 19H8v-6.63c1.26-.34 2.11-1.27 2.77-1.99C11.6 9.47 12.08 9 13 9h2v10zM10 2.02c-1.89 0-3.51 1.11-4.27 2.71C4.15 5.26 3 6.74 3 8.5c0 1.86 1.28 3.41 3 3.86V21h11v-2h2c1.1 0 2-.9 2-2v-6c0-1.1-.9-2-2-2h-1.56c.35-.59.56-1.27.56-2 0-2.21-1.79-4-4-4-.34 0-.66.05-.98.13A4.707 4.707 0 0010 2.02zM7 10.5c-1.1 0-2-.9-2-2 0-.85.55-1.6 1.37-1.88l.8-.27.36-.76C8 4.62 8.94 4.02 10 4.02c.79 0 1.39.35 1.74.65l.78.65S13.16 5 13.99 5c1.1 0 2 .9 2 2h-3C9.67 7 9.15 10.5 7 10.5zM17 17v-6h2v6h-2z\"}}]})(props);\n};\nexport function MdOutlineStairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 3h-4.42v3.33H11v3.33H8.42V16H6v2h4.42v-3.33H13v-3.33h2.58V8H18V6z\"}}]})(props);\n};\nexport function MdOutlineStorefront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.9 8.89l-1.05-4.37c-.22-.9-1-1.52-1.91-1.52H5.05c-.9 0-1.69.63-1.9 1.52L2.1 8.89c-.24 1.02-.02 2.06.62 2.88.08.11.19.19.28.29V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6.94c.09-.09.2-.18.28-.28.64-.82.87-1.87.62-2.89zm-2.99-3.9l1.05 4.37c.1.42.01.84-.25 1.17-.14.18-.44.47-.94.47-.61 0-1.14-.49-1.21-1.14L16.98 5l1.93-.01zM13 5h1.96l.54 4.52c.05.39-.07.78-.33 1.07-.22.26-.54.41-.95.41-.67 0-1.22-.59-1.22-1.31V5zM8.49 9.52L9.04 5H11v4.69c0 .72-.55 1.31-1.29 1.31-.34 0-.65-.15-.89-.41a1.42 1.42 0 01-.33-1.07zm-4.45-.16L5.05 5h1.97l-.58 4.86c-.08.65-.6 1.14-1.21 1.14-.49 0-.8-.29-.93-.47-.27-.32-.36-.75-.26-1.17zM5 19v-6.03c.08.01.15.03.23.03.87 0 1.66-.36 2.24-.95.6.6 1.4.95 2.31.95.87 0 1.65-.36 2.23-.93.59.57 1.39.93 2.29.93.84 0 1.64-.35 2.24-.95.58.59 1.37.95 2.24.95.08 0 .15-.02.23-.03V19H5z\"}}]})(props);\n};\nexport function MdOutlineStroller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM6 18c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9-9.34L9.6 15H15V8.66M18.65 3C20.52 3 22 4.56 22 6.48V7h-2v-.52C20 5.66 19.42 5 18.65 5c-.68 0-1.07.59-1.65 1.27V15c0 1.1-.9 2-2 2H7.43c-.85 0-1.31-1-.76-1.65l8.8-10.32C16.11 4.27 16.99 3 18.65 3zM10 5c-.65 0-1.29.09-1.91.27l1.4 1.4 1.37-1.61A6.11 6.11 0 0010 5m0-2c1.56 0 3.03.4 4.3 1.1L9.6 9.61 4.72 4.72A8.962 8.962 0 0110 3z\"}}]})(props);\n};\nexport function MdOutlineTapas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 10V1h-8v9c0 1.86 1.28 3.41 3 3.86V21h-2v2h6v-2h-2v-7.14c1.72-.45 3-2 3-3.86zm-2-7v3h-4V3h4zm-4 7V8h4v2c0 1.1-.9 2-2 2s-2-.9-2-2zm-6-1H8V8h2a2.5 2.5 0 000-5H8V1H6v2H4a2.5 2.5 0 000 5h2v1H4a2.5 2.5 0 000 5h2v9h2v-9h2a2.5 2.5 0 000-5zM4 6c-.28 0-.5-.22-.5-.5S3.72 5 4 5h6c.28 0 .5.22.5.5s-.22.5-.5.5H4zm6 6H4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h6c.28 0 .5.22.5.5s-.22.5-.5.5z\"}}]})(props);\n};\nexport function MdOutlineTty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6h-2V4h2v2zm2 1h-2v2h2V7zm1 2h2V7h-2v2zm0-5h-2v2h2V4zm-4 3h-2v2h2V7zm4 3h-2v2h2v-2zm-3 0h-2v2h2v-2zm-3-6h-2v2h2V4zm7 11.82v4.15c0 .56-.47 1.03-1.03 1-2.89-.17-5.6-1.03-7.97-2.4A17.999 17.999 0 014.43 12a17.89 17.89 0 01-2.4-7.97C2 3.47 2.47 3 3.03 3h4.15c.48 0 .89.34.98.8l.74 3.68a.99.99 0 01-.27.9L6.1 10.9c1.43 2.5 3.5 4.57 6 6l2.52-2.52a.98.98 0 01.9-.27l3.67.73c.47.09.81.5.81.98zM5.18 8.99l1.65-1.65L6.36 5H4.13c.17 1.37.53 2.71 1.05 3.99zM18 16.64l-2.34-.47-1.65 1.65c1.28.52 2.63.87 3.99 1.05v-2.23zM20 4v2h2V4h-2zm0 8h2v-2h-2v2zm-7-2h-2v2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 6.92L13 5.77V3.4c0-.26.22-.48.5-.48s.5.21.5.48V4h2v-.6C16 2.07 14.88 1 13.5 1S11 2.07 11 3.4v2.37L9.5 6.92 6 6.07l5.05 15.25c.15.45.55.68.95.68s.8-.23.95-.69L18 6.07l-3.5.85zM13.28 8.5l.76.58.92-.23L13 14.8V8.29l.28.21zm-3.32.59l.76-.58.28-.22v6.51L9.03 8.86l.93.23z\"}}]})(props);\n};\nexport function MdOutlineVilla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10c-1.1 0-2 .9-2 2h-1V3L3 8v13h18v-9c0-1.1-.9-2-2-2zM5 9.37l9-3.46V12H9v7H5V9.37zM19 19h-3v-3h-2v3h-3v-5h8v5z\"}}]})(props);\n};\nexport function MdOutlineWash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.75 16a1.25 1.25 0 000-2.5H12v-1h6.75c.69 0 1.25-.56 1.25-1.25 0-.67-.53-1.2-1.18-1.24L8.87 10l1.48-2.6c.09-.17.14-.34.14-.54 0-.26-.09-.5-.26-.7L9.12 5l-7.18 6.8c-.6.56-.94 1.35-.94 2.17V20c0 1.66 1.34 3 3 3h13.75a1.25 1.25 0 000-2.5H12v-1h7.75a1.25 1.25 0 000-2.5H12v-1h8.75zM10 21H4c-.55 0-1-.45-1-1v-6c0-.39.23-.64.36-.75L7 9.87V12h3v9zm3.5-12c.83 0 1.5-.67 1.5-1.5 0-.84-1.5-2.5-1.5-2.5S12 6.66 12 7.5c0 .83.67 1.5 1.5 1.5zm5-8S16 3.83 16 5.5a2.5 2.5 0 005 0C21 3.83 18.5 1 18.5 1zm0 5.5c-.55 0-1-.45-1-1 0-.4.43-1.22 1-2.05.57.83 1 1.65 1 2.05 0 .55-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineWaterDamage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L2 12h3v8h14v-8h3L12 3zM7 18v-7.81l5-4.5 5 4.5V18H7zm7-4c0 1.1-.9 2-2 2s-2-.9-2-2 2-4 2-4 2 2.9 2 4z\"}}]})(props);\n};\nexport function MdOutlineWheelchairPickup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm5.5 6.95V9c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v6h2v7h3.5v-.11c-1.24-1.26-2-2.99-2-4.89 0-2.58 1.41-4.84 3.5-6.05zM16.5 17c0 1.65-1.35 3-3 3s-3-1.35-3-3c0-1.11.61-2.06 1.5-2.58v-2.16c-2.02.64-3.5 2.51-3.5 4.74 0 2.76 2.24 5 5 5s5-2.24 5-5h-2zm3.04-3H15V8h-2v8h5.46l2.47 3.71 1.66-1.11-3.05-4.6z\"}}]})(props);\n};\nexport function MdOutlineBathroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zm4 1c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-3-7.5c-1.76 0-3.22 1.31-3.46 3h6.93a3.52 3.52 0 00-3.47-3M12 6c2.76 0 5 2.24 5 5v1H7v-1c0-2.76 2.24-5 5-5zM9 18c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm5-14H4v16h16V4m0-2c1.1 0 2 .9 2 2v16c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h16z\"}}]})(props);\n};\nexport function MdOutlineBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10.78V8c0-1.65-1.35-3-3-3h-4c-.77 0-1.47.3-2 .78-.53-.48-1.23-.78-2-.78H6C4.35 5 3 6.35 3 8v2.78c-.61.55-1 1.34-1 2.22v6h2v-2h16v2h2v-6c0-.88-.39-1.67-1-2.22zM14 7h4c.55 0 1 .45 1 1v2h-6V8c0-.55.45-1 1-1zM5 8c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v2H5V8zm-1 7v-2c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v2H4z\"}}]})(props);\n};\nexport function MdOutlineBedroomBaby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 14.04c-.34.34-.71.64-1.1.92L16 13.5V11h1v-1h-5.62L9.65 7H6l1 .76L5.5 9.5l.95 1L8 9.51v3.99l-.84 1.46c-.39-.27-.76-.58-1.1-.92L5 15.1c1.87 1.87 4.36 2.9 7 2.9s5.13-1.03 7-2.9l-1.06-1.06zm-9.49 1.67l.03-.06.81-1.41c1.74.65 3.66.65 5.4 0l.81 1.41.03.06c-1.1.51-2.3.79-3.55.79s-2.43-.27-3.53-.79zM20 4v16H4V4h16m0-2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineBedroomChild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v16H4V4h16m0-2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-3.5 8.67V9c0-1.1-.9-2-2-2h-5c-1.1 0-2 .9-2 2v1.67c-.88.35-1.5 1.2-1.5 2.2V17h1.5v-1.5h9V17H18v-4.13c0-1-.62-1.85-1.5-2.2zM15 8.5v2H9v-2h6zm-7.5 4.37c0-.48.39-.87.87-.87h7.27c.48 0 .87.39.87.87V14h-9v-1.13H7.5z\"}}]})(props);\n};\nexport function MdOutlineBedroomParent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.35 11.45V9c0-1.1-.9-2-2-2H13c-.37 0-.72.12-1 .32-.28-.2-.63-.32-1-.32H7.65c-1.1 0-2 .9-2 2v2.45c-.4.46-.65 1.06-.65 1.72V17h1.5v-1.5h11V17H19v-3.83c0-.66-.25-1.26-.65-1.72zm-1.6-.95h-4v-2h4v2zm-9.5-2h4v2h-4v-2zM17.5 14h-11v-1c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v1zM20 4v16H4V4h16m0-2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineBlender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.13 15.13L18 3h-4V2h-4v1H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h2.23l.64 4.13C6.74 16.05 6 17.43 6 19v1c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-1c0-1.57-.74-2.95-1.87-3.87zM5 9V5h1.31l.62 4H5zm10.67-4l-1.38 9H9.72L8.33 5h7.34zM16 20H8v-1c0-1.65 1.35-3 3-3h2c1.65 0 3 1.35 3 3v1z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"1\"}}]})(props);\n};\nexport function MdOutlineCameraIndoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13v-1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1l2 1.06v-4.12L14 13zm-2-7.5l6 4.5v9H6v-9l6-4.5M12 3L4 9v12h16V9l-8-6z\"}}]})(props);\n};\nexport function MdOutlineCameraOutdoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1l2 1.06v-4.12L18 14v-1zM12 3L4 9v12h16v-2H6v-9l6-4.5 6 4.5v1h2V9l-8-6z\"}}]})(props);\n};\nexport function MdOutlineChairAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h1v2H7c-1.1 0-2 .9-2 2v7h2v-3h10v3h2v-7c0-1.1-.9-2-2-2h-1v-2h1zM7 8V5h10v3H7zm10 8H7v-2h10v2zm-3-4h-4v-2h4v2z\"}}]})(props);\n};\nexport function MdOutlineChair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8V6c0-1.65-1.35-3-3-3H7C5.35 3 4 4.35 4 6v2c-1.65 0-3 1.35-3 3v5c0 1.65 1.35 3 3 3v1c0 .55.45 1 1 1s1-.45 1-1v-1h12v1c0 .55.45 1 1 1s1-.45 1-1v-1c1.65 0 3-1.35 3-3v-5c0-1.65-1.35-3-3-3zM6 6c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v2.78c-.61.55-1 1.34-1 2.22v2H7v-2c0-.88-.39-1.67-1-2.22V6zm15 10c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1v-5c0-.55.45-1 1-1s1 .45 1 1v4h14v-4c0-.55.45-1 1-1s1 .45 1 1v5z\"}}]})(props);\n};\nexport function MdOutlineCoffeeMaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6V4h2V2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14v-2h-4.03A4.966 4.966 0 0018 16v-5H8v5c0 1.64.81 3.09 2.03 4H6V4h2v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1zm-8 10v-3h6v3c0 1.65-1.35 3-3 3s-3-1.35-3-3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"9\",\"r\":\"1\"}}]})(props);\n};\nexport function MdOutlineCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 3H6c-1.1 0-2 .9-2 2v5.71c0 3.83 2.95 7.18 6.78 7.29 3.96.12 7.22-3.06 7.22-7v-1h.5c1.93 0 3.5-1.57 3.5-3.5S20.43 3 18.5 3zM16 5v3H6V5h10zm0 5v1c0 2.76-2.24 5-5 5s-5-2.24-5-5v-1m12.5-2H18V5h.5c.83 0 1.5.67 1.5 1.5S19.33 8 18.5 8zM4 19h16v2H4v-2z\"}}]})(props);\n};\nexport function MdOutlineDining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.75 6c-1.37 0-2.5 1.52-2.5 3.4 0 1.48.7 2.71 1.67 3.18l.08.04V19h1.5v-6.38l.08-.03c.97-.47 1.67-1.7 1.67-3.18 0-1.88-1.12-3.41-2.5-3.41M10.5 6c-.27 0-.5.22-.5.5V9h-.75V6.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5V9H7.5V6.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5v3.8c0 .93.64 1.71 1.5 1.93V19h1.5v-6.77c.86-.22 1.5-1 1.5-1.93V6.5c0-.28-.22-.5-.5-.5zM20 4H4v16h16V4m0-2c1.1 0 2 .9 2 2v16c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h16z\"}}]})(props);\n};\nexport function MdOutlineDoorBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v14H3v2h18v-2h-2zm-2 0H7V5h10v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 11h2v2H9z\"}}]})(props);\n};\nexport function MdOutlineDoorFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v14H3v2h18v-2h-2zm-2 0H7V5h10v14zm-4-8h2v2h-2v-2z\"}}]})(props);\n};\nexport function MdOutlineDoorSliding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13H8v-2h2v2zm6-2h-2v2h2v-2zm5 8v2H3v-2h1V5c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v14h1zM11 5H6v14h5V5zm7 0h-5v14h5V5z\"}}]})(props);\n};\nexport function MdOutlineDoorbell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 16.5h2c0 .55-.45 1-1 1s-1-.45-1-1zm4-1.5v-2.34c0-1.54-.81-2.82-2.25-3.16v-.25c0-.41-.34-.75-.75-.75s-.75.34-.75.75v.25C9.82 9.84 9 11.12 9 12.66V15H8v1h8v-1h-1zm-3-9.5L6 10v9h12v-9l-6-4.5M12 3l8 6v12H4V9l8-6z\"}}]})(props);\n};\nexport function MdOutlineFeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8l-5-5zm3 16H5V5h10v4h4v10zM7 17h10v-2H7v2zm5-10H7v2h5V7zm-5 6h10v-2H7v2z\"}}]})(props);\n};\nexport function MdOutlineFlatware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7.08c0 1.77-.84 3.25-2 3.82V21h-2V10.9c-1.16-.57-2-2.05-2-3.82C10.01 4.83 11.35 3 13 3c1.66 0 3 1.83 3 4.08zM17 3v18h2v-8h2V7c0-1.76-1.24-4-4-4zM8.28 3c-.4 0-.72.32-.72.72V7h-.84V3.72C6.72 3.32 6.4 3 6 3s-.72.32-.72.72V7h-.84V3.72c0-.4-.32-.72-.72-.72S3 3.32 3 3.72V9c0 1.1.9 2 2 2v10h2V11c1.1 0 2-.9 2-2V3.72c0-.4-.32-.72-.72-.72z\"}}]})(props);\n};\nexport function MdOutlineGarage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.78 18.5h.44c.43 0 .78-.36.78-.81V16.5h10v1.19c0 .45.34.81.78.81h.44c.43 0 .78-.36.78-.81v-6.5c-.82-2.46-1.34-4.03-1.56-4.69-.05-.16-.12-.29-.19-.4-.02-.02-.03-.04-.05-.07-.38-.52-.92-.53-.92-.53H7.72s-.54.01-.92.54c-.02.02-.03.04-.05.06-.07.11-.14.24-.19.4-.22.66-.74 2.22-1.56 4.69v6.5c0 .45.35.81.78.81zm2.55-11h7.34l.23.69.43 1.31H7.67l.66-2zM7 11.51v-.01h10v3H7v-2.99z\"}}]})(props);\n};\nexport function MdOutlineLight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6.06V3h-2v3.06c-4.5.5-8 4.31-8 8.93C3 16.1 3.9 17 5.01 17H8c0 2.21 1.79 4 4 4s4-1.79 4-4h2.99c1.11 0 2.01-.9 2.01-2.01 0-4.62-3.5-8.43-8-8.93zM12 19c-1.1 0-2-.9-2-2h4c0 1.1-.9 2-2 2zm0-4H5c0-3.86 3.14-7 7-7s7 3.14 7 7h-7z\"}}]})(props);\n};\nexport function MdOutlineLiving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.75 10.35V9c0-1.66-1.34-3-3-3h-5.5c-1.66 0-3 1.34-3 3v1.35C5.51 10.78 5 11.58 5 12.5V16c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-3.5c0-.92-.51-1.72-1.25-2.15zM9.25 7.5h5.5c.83 0 1.5.67 1.5 1.5v1.03A2.48 2.48 0 0014 12.5v.5h-4v-.5c0-1.3-.99-2.35-2.25-2.47V9c0-.83.67-1.5 1.5-1.5zM17.5 16c0 .28-.22.5-.5.5H7c-.28 0-.5-.22-.5-.5v-3.5c0-.55.45-1 1-1s1 .45 1 1v2h7v-2c0-.55.45-1 1-1s1 .45 1 1V16zM20 4v16H4V4h16m0-2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineManageSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9H2V7h5v2zm0 3H2v2h5v-2zm13.59 7l-3.83-3.83c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L22 17.59 20.59 19zM17 11c0-1.65-1.35-3-3-3s-3 1.35-3 3 1.35 3 3 3 3-1.35 3-3zM2 19h10v-2H2v2z\"}}]})(props);\n};\nexport function MdOutlinePodcasts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12c0 .74-.4 1.38-1 1.72V22h-2v-8.28c-.6-.35-1-.98-1-1.72 0-1.1.9-2 2-2s2 .9 2 2zm-2-6c-3.31 0-6 2.69-6 6 0 1.74.75 3.31 1.94 4.4l1.42-1.42A3.957 3.957 0 018 12c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.19-.53 2.25-1.36 2.98l1.42 1.42A5.957 5.957 0 0018 12c0-3.31-2.69-6-6-6zm0-4C6.48 2 2 6.48 2 12c0 2.85 1.2 5.41 3.11 7.24l1.42-1.42A7.987 7.987 0 014 12c0-4.41 3.59-8 8-8s8 3.59 8 8c0 2.29-.98 4.36-2.53 5.82l1.42 1.42C20.8 17.41 22 14.85 22 12c0-5.52-4.48-10-10-10z\"}}]})(props);\n};\nexport function MdOutlineShower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 17c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1zm3-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 0c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3-4v2H5v-2c0-3.53 2.61-6.43 6-6.92V3h2v2.08c3.39.49 6 3.39 6 6.92zm-2 0c0-2.76-2.24-5-5-5s-5 2.24-5 5h10zm-9 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 0c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 0c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 9h-7V4h7v7zm-9-7v7H4V4h7zm-7 9h7v7H4v-7zm9 7v-7h7v7h-7z\"}}]})(props);\n};\nexport function MdOutlineYard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13c-3.31 0-6 2.69-6 6 3.31 0 6-2.69 6-6zM6 13c0 3.31 2.69 6 6 6 0-3.31-2.69-6-6-6zm2-1.97a1.562 1.562 0 002.45 1.28l-.01.12c0 .86.7 1.56 1.56 1.56s1.56-.7 1.56-1.56l-.01-.12c.25.17.56.28.89.28.86 0 1.56-.7 1.56-1.56 0-.62-.37-1.16-.89-1.41.52-.24.89-.78.89-1.4a1.562 1.562 0 00-2.45-1.28l.01-.12c0-.86-.7-1.56-1.56-1.56s-1.56.7-1.56 1.56l.01.12A1.562 1.562 0 008 8.22c0 .62.37 1.16.89 1.41-.52.24-.89.78-.89 1.4zm4-2.97c.86 0 1.56.7 1.56 1.56s-.7 1.56-1.56 1.56-1.56-.7-1.56-1.56.7-1.56 1.56-1.56zM20 4v16H4V4h16m0-2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutline6FtApart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 00-5.56 0A2.01 2.01 0 002 9.43V10h8v-.57zM18 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85a6.95 6.95 0 00-5.56 0A2.01 2.01 0 0014 9.43V10h8v-.57zM19 17v-2.01L5 15v2l-3-3 3-3v2.01L19 13v-2l3 3-3 3zm-9 2v-1H7.5c-.28 0-.5.22-.5.5v3c0 .28.22.5.5.5h2c.28 0 .5-.22.5-.5V20c0-.28-.22-.5-.5-.5H8V19h2zm-1 1.5v.5H8v-.5h1zm8.5-1.5h-1v3h-1v-3h-1v-1h3v1zm-5 0v.5h1v1h-1V22h-1v-4H14v1h-1.5z\"}}]})(props);\n};\nexport function MdOutlineAddModerator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 11.09v-4.7l6-2.25 6 2.25v3.69c.71.1 1.38.31 2 .6V5l-8-3-8 3v6.09c0 5.05 3.41 9.76 8 10.91.03-.01.05-.02.08-.02-.79-.78-1.4-1.76-1.75-2.84C7.76 17.53 6 14.42 6 11.09z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 12c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm3 5.5h-2.5V20h-1v-2.5H14v-1h2.5V14h1v2.5H20v1z\"}}]})(props);\n};\nexport function MdOutlineAddReaction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9.5C7 8.67 7.67 8 8.5 8s1.5.67 1.5 1.5S9.33 11 8.5 11 7 10.33 7 9.5zm5 8c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5zm3.5-6.5c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zM22 1h-2v2h-2v2h2v2h2V5h2V3h-2V1zm-2 11c0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c1.46 0 2.82.4 4 1.08V2.84A9.929 9.929 0 0011.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12c0-1.05-.17-2.05-.47-3H19.4c.38.93.6 1.94.6 3z\"}}]})(props);\n};\nexport function MdOutlineArchitecture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.36 18.78L6.61 21l1.62-1.54 2.77-7.6c-.68-.17-1.28-.51-1.77-.98l-2.87 7.9zM14.77 10.88c-.49.47-1.1.81-1.77.98l2.77 7.6L17.39 21l.26-2.22-2.88-7.9zM15 8c0-1.3-.84-2.4-2-2.82V3h-2v2.18C9.84 5.6 9 6.7 9 8c0 1.66 1.34 3 3 3s3-1.34 3-3zm-3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineBackHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 7a2.5 2.5 0 00-3-2.45V4a2.5 2.5 0 00-3.17-2.41A2.509 2.509 0 0012.5 0c-1.23 0-2.25.89-2.46 2.06A2.5 2.5 0 007 4.5v5.89c-.34-.31-.76-.54-1.22-.66l-.77-.21c-.83-.23-1.7.09-2.19.83-.38.57-.4 1.31-.15 1.95l2.56 6.43A8.354 8.354 0 0013 24c4.42 0 8-3.58 8-8V7zm-2 9c0 3.31-2.69 6-6 6-2.61 0-4.95-1.59-5.91-4.01l-2.6-6.54.53.14c.46.12.83.46 1 .9L7 15h2V4.5c0-.28.22-.5.5-.5s.5.22.5.5V12h2V2.5c0-.28.22-.5.5-.5s.5.22.5.5V12h2V4c0-.28.22-.5.5-.5s.5.22.5.5v8h2V7c0-.28.22-.5.5-.5s.5.22.5.5v9z\"}}]})(props);\n};\nexport function MdOutlineCake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6a2 2 0 002-2c0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm6 3h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v9c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-9c0-1.66-1.34-3-3-3zm1 11H5v-3c.9-.01 1.76-.37 2.4-1.01l1.09-1.07 1.07 1.07c1.31 1.31 3.59 1.3 4.89 0l1.08-1.07 1.07 1.07c.64.64 1.5 1 2.4 1.01v3zm0-4.5c-.51-.01-.99-.2-1.35-.57l-2.13-2.13-2.14 2.13c-.74.74-2.03.74-2.77 0L8.48 12.8l-2.14 2.13c-.35.36-.83.56-1.34.57V12c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v3.5z\"}}]})(props);\n};\nexport function MdOutlineCatchingPokemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 12a2.5 2.5 0 01-5 0 2.5 2.5 0 015 0zm7.5 0c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2s10 4.48 10 10zm-2 0h-4c0-2.21-1.79-4-4-4s-4 1.79-4 4H4c0 4.41 3.59 8 8 8s8-3.59 8-8z\"}}]})(props);\n};\nexport function MdOutlineCleanHands (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.99 5l.63 1.37 1.37.63-1.37.63L16.99 9l-.63-1.37L14.99 7l1.37-.63.63-1.37M20 14c1.1 0 2-.9 2-2s-2-4-2-4-2 2.9-2 4 .9 2 2 2zm-9-7.9V4h2c.57 0 1.1.17 1.55.45l1.43-1.43A4.899 4.899 0 0013 2H7.5v2H9v2.11c-1.78.37-3.2 1.68-3.75 3.39h2.16C7.94 8.61 8.89 8 10 8c1.62 0 2.94 1.29 2.99 2.9l2.01.75V11a5 5 0 00-4-4.9zM22 19v1l-8 2.5-7-1.94V22H1V11h7.97l6.16 2.3A2.89 2.89 0 0117 16h2c1.66 0 3 1.34 3 3zM5 20v-7H3v7h2zm14.9-1.43c-.16-.33-.51-.56-.9-.56h-5.35c-.54 0-1.07-.09-1.58-.26l-2.38-.79.63-1.9 2.38.79c.31.1 2.3.15 2.3.15 0-.37-.23-.7-.57-.83L8.61 13H7v5.48l6.97 1.93 5.93-1.84z\"}}]})(props);\n};\nexport function MdOutlineCompost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.87 11.81A2.5 2.5 0 0115 8h1c1.51 0 2-1 2-1s.55 6-3 6c-.49 0-.94-.14-1.32-.38-.24.64-.59 1.76-.76 2.96 1.26.22 2.28.89 2.77 1.77A6.505 6.505 0 0018.5 12h3c0 5.24-4.26 9.5-9.5 9.5S2.5 17.24 2.5 12 6.76 2.5 12 2.5V0l4 4-4 4V5.5c-3.58 0-6.5 2.92-6.5 6.5 0 2.21 1.11 4.17 2.81 5.35.51-.92 1.63-1.62 2.98-1.8-.09-.69-.26-1.42-.49-2.03-.35.3-.8.48-1.3.48-1.1 0-2-.9-2-2v-.99c0-.56-.19-1.09-.5-1.51 0 0 4.45-.23 4.5 2.5 0 .29-.06.56-.17.8-.42-.32-.86-.6-1.33-.8.58.43 1.37 1.37 2 2.6.67-1.62 1.68-3.27 3-4.6-.76.52-1.47 1.12-2.13 1.81z\"}}]})(props);\n};\nexport function MdOutlineConnectWithoutContact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14H9a9 9 0 019-9v2c-3.87 0-7 3.13-7 7zm7-3V9c-2.76 0-5 2.24-5 5h2c0-1.66 1.34-3 3-3zM7 4c0-1.11-.89-2-2-2s-2 .89-2 2 .89 2 2 2 2-.89 2-2zm4.45.5h-2A2.99 2.99 0 016.5 7h-3C2.67 7 2 7.67 2 8.5V11h6V8.74a4.97 4.97 0 003.45-4.24zM19 17c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm1.5 1h-3a2.99 2.99 0 01-2.95-2.5h-2A4.97 4.97 0 0016 19.74V22h6v-2.5c0-.83-.67-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function MdOutlineConstruction (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.783 15.172l2.121-2.121 5.996 5.996-2.121 2.121zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49a3 3 0 00-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21z\"}}]})(props);\n};\nexport function MdOutlineCoronavirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 12c0 .55-.45 1-1 1s-1-.45-1-1 .45-1 1-1 1 .45 1 1zm4.25-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-3.5 0c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM22 11.25v1.5c0 .41-.34.75-.75.75s-.75-.34-.75-.75h-1.54a6.978 6.978 0 01-1.52 3.65l1.09 1.09.01-.01c.29-.29.77-.29 1.06 0 .29.29.29.77 0 1.06l-1.06 1.06c-.29.29-.77.29-1.06 0a.752.752 0 01-.01-1.05l-1.09-1.09a7.015 7.015 0 01-3.64 1.51v1.54h.01c.41 0 .75.34.75.75s-.34.75-.75.75h-1.5c-.41 0-.75-.34-.75-.75s.33-.74.74-.75v-1.55a6.948 6.948 0 01-3.63-1.51l-1.09 1.09.01.01c.29.29.29.77 0 1.06-.29.29-.77.29-1.06 0L4.4 18.54a.754.754 0 010-1.06c.29-.29.76-.29 1.05-.01l1.09-1.09a6.89 6.89 0 01-1.5-3.63H3.5c0 .41-.34.75-.75.75S2 13.16 2 12.75v-1.5c0-.41.34-.75.75-.75s.75.34.75.75h1.54c.15-1.37.69-2.61 1.5-3.63L5.45 6.53c-.29.28-.76.28-1.05-.01a.754.754 0 010-1.06L5.46 4.4c.29-.29.77-.29 1.06 0 .29.29.29.77 0 1.06l-.01.01L7.6 6.56a6.982 6.982 0 013.63-1.51V3.5a.753.753 0 01-.74-.75.77.77 0 01.76-.75h1.5c.41 0 .75.34.75.75s-.34.75-.75.75h-.01v1.54c1.37.14 2.62.69 3.64 1.51l1.09-1.09a.742.742 0 01.01-1.05c.29-.29.77-.29 1.06 0l1.06 1.06c.29.29.29.77 0 1.06s-.77.29-1.06 0l-.01-.01-1.09 1.08a7.025 7.025 0 011.52 3.65h1.54c0-.41.34-.75.75-.75s.75.34.75.75zM17 12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5 5-2.24 5-5zm-5-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3.5 0c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-1.75 3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineCrueltyFree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 14c-.24-.24-.44-.49-.65-.75C17.51 11.5 19 8.56 19 5c0-1.95-.74-3-2-3-1.54 0-3.96 2.06-5 5.97C10.96 4.06 8.54 2 7 2 5.74 2 5 3.05 5 5c0 3.56 1.49 6.5 2.65 8.25-.21.26-.41.51-.65.75-.25.25-2 1.39-2 3.5C5 19.98 7.02 22 9.5 22c1.5 0 2.5-.5 2.5-.5s1 .5 2.5.5c2.48 0 4.5-2.02 4.5-4.5 0-2.11-1.75-3.25-2-3.5zm-.12-9.97c.06.17.12.48.12.97 0 2.84-1.11 5.24-2.07 6.78-.38-.26-.83-.48-1.4-.62.24-4.52 2.44-6.83 3.35-7.13zM7 5c0-.49.06-.8.12-.97.91.3 3.11 2.61 3.36 7.13-.58.14-1.03.35-1.4.62C8.11 10.24 7 7.84 7 5zm7.5 15c-1 0-1.8-.33-2.22-.56.42-.18.72-.71.72-.94 0-.28-.45-.5-1-.5s-1 .22-1 .5c0 .23.3.76.72.94-.42.23-1.22.56-2.22.56A2.5 2.5 0 017 17.5c0-.7.43-1.24 1-1.73.44-.36.61-.52 1.3-1.37.76-.95 1.09-1.4 2.7-1.4s1.94.45 2.7 1.4c.69.85.86 1.01 1.3 1.37.57.49 1 1.03 1 1.73a2.5 2.5 0 01-2.5 2.5zm-.5-4c0 .41-.22.75-.5.75s-.5-.34-.5-.75.22-.75.5-.75.5.34.5.75zm-3 0c0 .41-.22.75-.5.75s-.5-.34-.5-.75.22-.75.5-.75.5.34.5.75z\"}}]})(props);\n};\nexport function MdOutlineDeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9L12 2 2 9h9v13h2V9h9zM12 4.44L15.66 7H8.34L12 4.44z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.14 12l-1.96.37.82 4.37V22h2l.02-4H7v4h2v-6H4.9zM19.1 16H15v6h2v-4h1.98l.02 4h2v-5.26l.82-4.37-1.96-.37z\"}}]})(props);\n};\nexport function MdOutlineDomain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\"}}]})(props);\n};\nexport function MdOutlineDownhillSkiing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 4.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2.72 16.4l.76.27a5.933 5.933 0 004.34-.17L22 22.13c-1.05.55-2.24.87-3.5.87-.86 0-1.68-.14-2.45-.41L2 17.47l.5-1.41 6.9 2.51 1.72-4.44-3.57-3.73c-.89-.94-.67-2.47.45-3.12l3.48-2.01c1.1-.64 2.52-.1 2.91 1.11l.33 1.08a5.017 5.017 0 002.83 3.14l.52-1.6 1.43.46-1.12 3.45A7.029 7.029 0 0113 8.59l-2.53 1.45 3.03 3.46-2.22 5.76 3.09 1.12 2.1-6.44c.46.18.94.31 1.44.41l-2.13 6.55z\"}}]})(props);\n};\nexport function MdOutlineEditNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.58 6.25l1.77 1.77L14.37 13H12.6v-1.77l4.98-4.98zm3.27-.44l-1.06-1.06c-.2-.2-.51-.2-.71 0l-.85.85L20 7.37l.85-.85c.2-.2.2-.52 0-.71zM18 12.2V17h2v2H4v-2h2v-7c0-2.79 1.91-5.14 4.5-5.8v-.7c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.7c.82.21 1.57.59 2.21 1.09l-1.43 1.43A3.89 3.89 0 0012 6c-2.21 0-4 1.79-4 4v7h8v-2.8l2-2zM10 20h4c0 1.1-.9 2-2 2s-2-.9-2-2z\"}}]})(props);\n};\nexport function MdOutlineElderly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6.5 7V23h-1V12.5c0-.28-.22-.5-.5-.5s-.5.22-.5.5v1h-1v-.69a6.02 6.02 0 01-3.51-2.52c-.31.87-.49 1.78-.49 2.71 0 .23.02.46.03.69L15 16.5V23h-2v-5l-1.78-2.54L11 19l-3 4-1.6-1.2L9 18.33V13c0-1.15.18-2.29.5-3.39l-1.5.85V14H6V9.3l5.4-3.07v.01a2 2 0 011.94.03c.36.21.63.51.8.85l.79 1.67A3.987 3.987 0 0018.5 11c.83 0 1.5.67 1.5 1.5z\"}}]})(props);\n};\nexport function MdOutlineEmojiEmotions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c2.28 0 4.22-1.66 5-4H7c.78 2.34 2.72 4 5 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineEmojiEvents (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94A5.01 5.01 0 0011 15.9V19H7v2h10v-2h-4v-3.1a5.01 5.01 0 003.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2zM5 8V7h2v3.82C5.84 10.4 5 9.3 5 8zm7 6c-1.65 0-3-1.35-3-3V5h6v6c0 1.65-1.35 3-3 3zm7-6c0 1.3-.84 2.4-2 2.82V7h2v1z\"}}]})(props);\n};\nexport function MdOutlineEmojiFlags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9l-1-2H7V5.72c.6-.34 1-.98 1-1.72 0-1.1-.9-2-2-2s-2 .9-2 2c0 .74.4 1.38 1 1.72V21h2v-4h5l1 2h7V9h-6zm4 8h-4l-1-2H7V9h5l1 2h5v6z\"}}]})(props);\n};\nexport function MdOutlineEmojiFoodBeverage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 19h18v2H2zM20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm-4 10c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V5h3v1.4L7.19 7.85c-.12.09-.19.24-.19.39v4.26c0 .28.22.5.5.5h4c.28 0 .5-.22.5-.5V8.24c0-.15-.07-.3-.19-.39L10 6.4V5h6v8zM9.5 7.28l1.5 1.2V12H8V8.48l1.5-1.2zM20 8h-2V5h2v3z\"}}]})(props);\n};\nexport function MdOutlineEmojiNature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.94 4.88A1.32 1.32 0 0020.68 4H19.6l-.31-.97C19.15 2.43 18.61 2 18 2s-1.15.43-1.29 1.04L16.4 4h-1.07c-.57 0-1.08.35-1.26.88-.19.56.04 1.17.56 1.48l.87.52-.4 1.24c-.23.58-.04 1.25.45 1.62.23.17.51.26.78.26.31 0 .61-.11.86-.32l.81-.7.81.7c.25.21.55.32.86.32.27 0 .55-.09.78-.26.5-.37.68-1.04.45-1.62l-.39-1.24.87-.52c.51-.31.74-.92.56-1.48zM18 7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM13.49 10.51c-.43-.43-.94-.73-1.49-.93V8h-1v1.38c-.11-.01-.23-.03-.34-.03-1.02 0-2.05.39-2.83 1.17l-.5.5-1.33-.5a3.01 3.01 0 00-3.83 1.82c-.27.75-.23 1.57.12 2.29.23.48.58.87 1 1.16-.38 1.35-.06 2.85 1 3.91.78.78 1.8 1.17 2.83 1.17.37 0 .73-.07 1.09-.17.29.42.68.77 1.16 1 .41.2.84.3 1.28.3.34 0 .68-.06 1.01-.17a3.007 3.007 0 001.82-3.85l-.49-1.3.5-.5c.87-.87 1.24-2.04 1.14-3.17H16v-1h-1.59c-.19-.55-.49-1.06-.92-1.5zm-5.91 8.31c-.15.04-.3.06-.46.06-.53 0-1.04-.21-1.41-.59-.38-.38-.59-.88-.59-1.41 0-.16.03-.32.06-.47.14.01.28.03.42.03.85 0 1.68-.2 2.44-.48-.32.89-.54 1.87-.46 2.86zm-2.91-4.53c-.25-.09-.45-.27-.57-.51s-.13-.51-.04-.76c.19-.52.76-.79 1.26-.61l3.16 1.19c-1.15.6-2.63 1.11-3.81.69zm6.32 5.65c-.25.09-.52.08-.76-.04a.989.989 0 01-.51-.57c-.42-1.18.09-2.65.7-3.8l1.18 3.13c.18.52-.09 1.1-.61 1.28zm1.21-5.34l-.61-1.61c0-.01-.01-.02-.02-.03l-.06-.12a.673.673 0 00-.07-.11l-.09-.09-.09-.09c-.03-.03-.07-.05-.11-.07-.04-.02-.07-.05-.12-.06-.01 0-.02-.01-.03-.02l-1.6-.6a1.966 1.966 0 012.67.13c.73.73.77 1.88.13 2.67z\"}}]})(props);\n};\nexport function MdOutlineEmojiObjects (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3c-.46 0-.93.04-1.4.14-2.76.53-4.96 2.76-5.48 5.52-.48 2.61.48 5.01 2.22 6.56.43.38.66.91.66 1.47V19c0 1.1.9 2 2 2h.28a1.98 1.98 0 003.44 0H14c1.1 0 2-.9 2-2v-2.31c0-.55.22-1.09.64-1.46A6.956 6.956 0 0019 10c0-3.87-3.13-7-7-7zm2 14h-4v-1h4v1zm-4 2v-1h4v1h-4zm5.31-5.26c-.09.08-.16.18-.24.26H8.92c-.08-.09-.15-.19-.24-.27-1.32-1.18-1.91-2.94-1.59-4.7.36-1.94 1.96-3.55 3.89-3.93.34-.07.68-.1 1.02-.1 2.76 0 5 2.24 5 5 0 1.43-.61 2.79-1.69 3.74z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 11h1v3h-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.672 9.58l.707-.706 2.122 2.121-.707.707z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.208 11.712l-.707-.707 2.121-2.121.707.707z\"}}]})(props);\n};\nexport function MdOutlineEmojiPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.89 8.11C15.5 7.72 14.83 7 13.53 7h-2.54C8.24 6.99 6 4.75 6 2H4c0 3.16 2.11 5.84 5 6.71V22h2v-6h2v6h2V10.05L18.95 14l1.41-1.41-4.47-4.48z\"}}]})(props);\n};\nexport function MdOutlineEmojiSymbols (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2h8v2H3zM6 11h2V7h3V5H3v2h3zM12.404 20.182l7.778-7.778 1.414 1.414-7.778 7.778z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 11A2.5 2.5 0 0018 8.5V4h3V2h-4v4.51c-.42-.32-.93-.51-1.5-.51a2.5 2.5 0 000 5zM9.74 15.96l-1.41 1.41-.71-.71.35-.35a2.499 2.499 0 00-1.77-4.27 2.499 2.499 0 00-1.77 4.27l.35.35-1.06 1.06c-.98.98-.98 2.56 0 3.54.5.5 1.14.74 1.78.74s1.28-.24 1.77-.73l1.06-1.06 1.41 1.41 1.41-1.41-1.41-1.41 1.41-1.41-1.41-1.43zM5.85 14.2c.12-.12.26-.15.35-.15s.23.03.35.15c.19.2.19.51 0 .71l-.35.35-.35-.36a.501.501 0 010-.7zm0 5.65c-.12.12-.26.15-.35.15s-.23-.03-.35-.15a.513.513 0 010-.71l1.06-1.06.71.71-1.07 1.06z\"}}]})(props);\n};\nexport function MdOutlineEmojiTransportation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.57 10.66c-.14-.4-.52-.66-.97-.66h-7.19c-.46 0-.83.26-.98.66L10 14.77l.01 5.51c0 .38.31.72.69.72h.62c.38 0 .68-.38.68-.76V19h8v1.24c0 .38.31.76.69.76h.61c.38 0 .69-.34.69-.72l.01-1.37v-4.14l-1.43-4.11zm-8.16.34h7.19l1.03 3h-9.25l1.03-3zM12 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9h1V3H7v5H2v13h1V9h5V4h6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 11h2v2H5zM10 5h2v2h-2zM5 15h2v2H5zM5 19h2v2H5z\"}}]})(props);\n};\nexport function MdOutlineEngineering (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm-6 4c.22-.72 3.31-2 6-2 2.7 0 5.8 1.29 6 2H3zM4.74 9H5c0 2.21 1.79 4 4 4s4-1.79 4-4h.26c.27 0 .49-.22.49-.49v-.02a.49.49 0 00-.49-.49H13c0-1.48-.81-2.75-2-3.45v.95c0 .28-.22.5-.5.5s-.5-.22-.5-.5V4.14C9.68 4.06 9.35 4 9 4s-.68.06-1 .14V5.5c0 .28-.22.5-.5.5S7 5.78 7 5.5v-.95C5.81 5.25 5 6.52 5 8h-.26a.49.49 0 00-.49.49v.03c0 .26.22.48.49.48zM11 9c0 1.1-.9 2-2 2s-2-.9-2-2h4zM21.98 6.23l.93-.83-.75-1.3-1.19.39c-.14-.11-.3-.2-.47-.27L20.25 3h-1.5l-.25 1.22c-.17.07-.33.16-.48.27l-1.18-.39-.75 1.3.93.83c-.02.17-.02.35 0 .52l-.93.85.75 1.3 1.2-.38c.13.1.28.18.43.25l.28 1.23h1.5l.27-1.22c.16-.07.3-.15.44-.25l1.19.38.75-1.3-.93-.85c.03-.19.02-.36.01-.53zM19.5 7.75a1.25 1.25 0 110-2.5 1.25 1.25 0 010 2.5zM19.4 10.79l-.85.28c-.1-.08-.21-.14-.33-.19l-.18-.88h-1.07l-.18.87c-.12.05-.24.12-.34.19l-.84-.28-.54.93.66.59c-.01.13-.01.25 0 .37l-.66.61.54.93.86-.27c.1.07.2.13.31.18l.18.88h1.07l.19-.87c.11-.05.22-.11.32-.18l.85.27.54-.93-.66-.61c.01-.13.01-.25 0-.37l.66-.59-.53-.93zm-1.9 2.6c-.49 0-.89-.4-.89-.89s.4-.89.89-.89.89.4.89.89-.4.89-.89.89z\"}}]})(props);\n};\nexport function MdOutlineFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95z\"}}]})(props);\n};\nexport function MdOutlineFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 9.5C17.5 6.46 15.04 4 12 4S6.5 6.46 6.5 9.5c0 2.7 1.94 4.93 4.5 5.4V17H9v2h2v2h2v-2h2v-2h-2v-2.1c2.56-.47 4.5-2.7 4.5-5.4zm-9 0C8.5 7.57 10.07 6 12 6s3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5z\"}}]})(props);\n};\nexport function MdOutlineFireplace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 12.46c-.15.42-.15.82-.08 1.28.1.55.33 1.04.2 1.6-.13.59-.77 1.38-1.53 1.63 1.28 1.05 3.2.37 3.39-1.32.17-1.54-1.44-1.98-1.98-3.19z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2v20h20V2H2zm10 16c-1.58 0-2.97-1.88-3-3.06 0-.05-.01-.13-.01-.22-.13-1.73 1-3.2 2.47-4.37.47 1.01 1.27 2.03 2.57 2.92.58.42.97.86.97 1.73 0 1.65-1.35 3-3 3zm8 2h-2v-2h-2.02A4.98 4.98 0 0017 15c0-1.89-1.09-2.85-1.85-3.37C12.2 9.61 13 7 13 7c-6.73 3.57-6.02 7.47-6 8 .03.96.49 2.07 1.23 3H6v2H4V4h16v16z\"}}]})(props);\n};\nexport function MdOutlineFollowTheSigns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5.75 8.9L3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6c-.25 0-.5.05-.75.15L2 8.3V13h2V9.65l1.75-.75M13 2v7h3.75v14h1.5V9H22V2h-9zm5.01 6V6.25H14.5v-1.5h3.51V3l2.49 2.5L18.01 8z\"}}]})(props);\n};\nexport function MdOutlineFrontHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 8c-.17 0-.34.02-.5.05V4.5a2.5 2.5 0 00-3.04-2.44A2.502 2.502 0 0012.5 0c-1.06 0-1.96.66-2.33 1.59A2.5 2.5 0 007 4v.55A2.5 2.5 0 004 7v8.5c0 4.69 3.81 8.5 8.5 8.5s8.5-3.81 8.5-8.5v-5A2.5 2.5 0 0018.5 8zm.5 7.5a6.5 6.5 0 11-13 0V7c0-.28.22-.5.5-.5s.5.22.5.5v5h2V4c0-.28.22-.5.5-.5s.5.22.5.5v7h2V2.5c0-.28.22-.5.5-.5s.5.22.5.5V11h2V4.5c0-.28.22-.5.5-.5s.5.22.5.5v8.92c-1.77.77-3 2.53-3 4.58h2c0-1.66 1.34-3 3-3v-4.5c0-.28.22-.5.5-.5s.5.22.5.5v5z\"}}]})(props);\n};\nexport function MdOutlineGroupAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15v-3h3v-2H5V7H3v3H0v2h3v3zm7-1.25c-2.34 0-7 1.17-7 3.5V19h14v-1.75c0-2.33-4.66-3.5-7-3.5zM7.34 17c.84-.58 2.87-1.25 4.66-1.25s3.82.67 4.66 1.25H7.34zM12 12c1.93 0 3.5-1.57 3.5-3.5S13.93 5 12 5 8.5 6.57 8.5 8.5 10.07 12 12 12zm0-5c.83 0 1.5.67 1.5 1.5S12.83 10 12 10s-1.5-.67-1.5-1.5S11.17 7 12 7zm5 5c1.93 0 3.5-1.57 3.5-3.5S18.93 5 17 5c-.24 0-.48.02-.71.07a5.416 5.416 0 01-.02 6.85c.24.05.48.08.73.08zm2.32 2.02c1 .81 1.68 1.87 1.68 3.23V19h3v-1.75c0-1.69-2.44-2.76-4.68-3.23z\"}}]})(props);\n};\nexport function MdOutlineGroupOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 8c0-1.42-.5-2.73-1.33-3.76.42-.14.86-.24 1.33-.24 2.21 0 4 1.79 4 4s-1.79 4-4 4h-.18l-.77-.77c.6-.94.95-2.05.95-3.23zm7.83 12H23v-3c0-2.18-3.58-3.47-6.34-3.87 1.1.75 1.95 1.71 2.23 2.94L22.83 20zM9 6c-.06 0-.11 0-.16.01l-1.6-1.6a3.996 3.996 0 015.35 5.35l-1.6-1.6c.01-.05.01-.1.01-.16 0-1.1-.9-2-2-2zm.17 6H9c-2.21 0-4-1.79-4-4v-.17L.69 3.51 2.1 2.1l19.8 19.8-1.41 1.41L17 19.83V20H1v-3c0-2.66 5.33-4 8-4 .37 0 .8.03 1.25.08L9.17 12zM9 15c-2.7 0-5.8 1.29-6 2.01V18h12v-.17l-2.11-2.11C11.76 15.31 10.33 15 9 15z\"}}]})(props);\n};\nexport function MdOutlineGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13.75c-2.34 0-7 1.17-7 3.5V19h14v-1.75c0-2.33-4.66-3.5-7-3.5zM4.34 17c.84-.58 2.87-1.25 4.66-1.25s3.82.67 4.66 1.25H4.34zM9 12c1.93 0 3.5-1.57 3.5-3.5S10.93 5 9 5 5.5 6.57 5.5 8.5 7.07 12 9 12zm0-5c.83 0 1.5.67 1.5 1.5S9.83 10 9 10s-1.5-.67-1.5-1.5S8.17 7 9 7zm7.04 6.81c1.16.84 1.96 1.96 1.96 3.44V19h4v-1.75c0-2.02-3.5-3.17-5.96-3.44zM15 12c1.93 0 3.5-1.57 3.5-3.5S16.93 5 15 5c-.54 0-1.04.13-1.5.35.63.89 1 1.98 1 3.15s-.37 2.26-1 3.15c.46.22.96.35 1.5.35z\"}}]})(props);\n};\nexport function MdOutlineGroups (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.13 1.1c-.37-.06-.74-.1-1.13-.1-.99 0-1.93.21-2.78.58A2.01 2.01 0 000 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29zM20 13c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 3.43c0-.81-.48-1.53-1.22-1.85A6.95 6.95 0 0020 14c-.39 0-.76.04-1.13.1.4.68.63 1.46.63 2.29V18H24v-1.57zm-7.76-2.78c-1.17-.52-2.61-.9-4.24-.9-1.63 0-3.07.39-4.24.9A2.988 2.988 0 006 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74zM8.07 16c.09-.23.13-.39.91-.69.97-.38 1.99-.56 3.02-.56s2.05.18 3.02.56c.77.3.81.46.91.69H8.07zM12 8c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1m0-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdOutlineHealthAndSafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 13H8v-3h2.5V7.5h3V10H16v3h-2.5v2.5h-3V13zM12 2L4 5v6.09c0 5.05 3.41 9.76 8 10.91 4.59-1.15 8-5.86 8-10.91V5l-8-3zm6 9.09c0 4-2.55 7.7-6 8.83-3.45-1.13-6-4.82-6-8.83v-4.7l6-2.25 6 2.25v4.7z\"}}]})(props);\n};\nexport function MdOutlineHiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4 5.28c-1.23-.37-2.22-1.17-2.8-2.18l-1-1.6c-.41-.65-1.11-1-1.84-1-.78 0-1.59.5-1.78 1.44S7 23 7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3c1 1.15 2.41 2.01 4 2.34V23H19V9h-1.5v1.78zM7.43 13.13l-2.12-.41a.999.999 0 01-.79-1.17l.76-3.93a2 2 0 012.34-1.58l1.16.23-1.35 6.86z\"}}]})(props);\n};\nexport function MdOutlineHistoryEdu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 4v1.38c-.83-.33-1.72-.5-2.61-.5-1.79 0-3.58.68-4.95 2.05l3.33 3.33h1.11v1.11c.86.86 1.98 1.31 3.11 1.36V15H6v3c0 1.1.9 2 2 2h10c1.66 0 3-1.34 3-3V4H9zm-1.11 6.41V8.26H5.61L4.57 7.22a5.07 5.07 0 011.82-.34c1.34 0 2.59.52 3.54 1.46l1.41 1.41-.2.2a2.7 2.7 0 01-1.92.8c-.47 0-.93-.12-1.33-.34zM19 17c0 .55-.45 1-1 1s-1-.45-1-1v-2h-6v-2.59c.57-.23 1.1-.57 1.56-1.03l.2-.2L15.59 14H17v-1.41l-6-5.97V6h8v11z\"}}]})(props);\n};\nexport function MdOutlineIceSkating (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 17c0 1.66-1.34 3-3 3h-2v-2h3v-4a3.96 3.96 0 00-2.91-3.82l-2.62-.74C12.62 9.19 12 8.39 12 7.5V3H3v15h3v2H2v2h16c2.76 0 5-2.24 5-5h-2zM5 16V5h5v1H8.5c-.28 0-.5.22-.5.5s.22.5.5.5H10l.1 1H8.5c-.28 0-.5.22-.5.5s.22.5.5.5h1.81c.45 1.12 1.4 2.01 2.6 2.36l2.62.73C16.4 12.33 17 13.1 17 14v2H5zm9 4H8v-2h6v2z\"}}]})(props);\n};\nexport function MdOutlineIosShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 5l-1.42 1.42-1.59-1.59V16h-1.98V4.83L9.42 6.42 8 5l4-4 4 4zm4 5v11c0 1.1-.9 2-2 2H6a2 2 0 01-2-2V10c0-1.11.89-2 2-2h3v2H6v11h12V10h-3V8h3a2 2 0 012 2z\"}}]})(props);\n};\nexport function MdOutlineKayaking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 23c-1.03 0-2.06-.25-3-.75-1.89 1-4.11 1-6 0-1.89 1-4.11 1-6 0-.95.5-1.97.75-3 .75H2v-2h1c1.04 0 2.08-.35 3-1 1.83 1.3 4.17 1.3 6 0 1.83 1.3 4.17 1.3 6 0 .91.65 1.96 1 3 1h1v2h-1zM12 5.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 12s-1.52.71-3.93 1.37c-.82-.23-1.53-.75-2.07-1.37-.73.84-1.8 1.5-3 1.5s-2.27-.66-3-1.5c-.73.84-1.8 1.5-3 1.5s-2.27-.66-3-1.5c-.54.61-1.25 1.13-2.07 1.37C1.52 18.21 0 17.5 0 17.5s2.93-1.36 7.13-2.08l1.35-4.17c.31-.95 1.32-1.47 2.27-1.16.09.03.19.07.27.11l2.47 1.3 2.84-1.5 1.65-3.71-.51-1.32L18.8 2 22 3.43 20.67 6.4l-1.31.5-3.72 8.34c4.85.63 8.36 2.26 8.36 2.26zm-8.98-4.54l-1.52.8-1.75-.92-.71 2.17c.32 0 .64-.01.96-.01.71 0 1.4.03 2.07.08l.95-2.12z\"}}]})(props);\n};\nexport function MdOutlineKingBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12c0-1.1-.9-2-2-2V7c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v3c-1.1 0-2 .9-2 2v5h1.33L4 19h1l.67-2h12.67l.66 2h1l.67-2H22v-5zm-4-2h-5V7h5v3zM6 7h5v3H6V7zm-2 5h16v3H4v-3z\"}}]})(props);\n};\nexport function MdOutlineKitesurfing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm14.06-2h-2.12L15.5 3.44l1.06 1.06 3.5-3.5zM22 23v-2h-1c-1.04 0-2.08-.35-3-1-1.83 1.3-4.17 1.3-6 0-1.83 1.3-4.17 1.3-6 0-.91.65-1.96 1-3 1H2v2h1c1.03 0 2.05-.25 3-.75 1.89 1 4.11 1 6 0 1.89 1 4.11 1 6 0 .95.5 1.97.75 3 .75h1zm-1-9.72c0 1.44-2.19 3.62-5.04 5.58-.31.09-.63.14-.96.14-1.2 0-2.27-.66-3-1.5-.73.84-1.8 1.5-3 1.5-.94 0-1.81-.41-2.49-.99.46-.39.96-.78 1.49-1.17l-1.55-2.97A4.06 4.06 0 016 12V8c0-1.1.9-2 2-2h3c1.38 0 2.63-.56 3.54-1.46l1.41 1.41A7.018 7.018 0 0111 8H9.6v3.5h2.8l1.69 1.88c1.95-.84 3.77-1.38 5.06-1.38.84 0 1.85.25 1.85 1.28zm-8.8.99l-.7-.77-2.5.1.83 2.01c.59-.38 1.81-1.06 2.37-1.34z\"}}]})(props);\n};\nexport function MdOutlineLocationCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z\"}}]})(props);\n};\nexport function MdOutlineLuggage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 18H8V9h1.5v9zm3.25 0h-1.5V9h1.5v9zM16 18h-1.5V9H16v9zm1-12h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v3H7c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2 0 .55.45 1 1 1s1-.45 1-1h6c0 .55.45 1 1 1s1-.45 1-1c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-6.5-2.5h3V6h-3V3.5zM17 19H7V8h10v11z\"}}]})(props);\n};\nexport function MdOutlineMale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 11c1.93 0 3.5 1.57 3.5 3.5S11.43 18 9.5 18 6 16.43 6 14.5 7.57 11 9.5 11zm0-2C6.46 9 4 11.46 4 14.5S6.46 20 9.5 20s5.5-2.46 5.5-5.5c0-1.16-.36-2.23-.97-3.12L18 7.42V10h2V4h-6v2h2.58l-3.97 3.97C11.73 9.36 10.66 9 9.5 9z\"}}]})(props);\n};\nexport function MdOutlineMasks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 6c-1.31 0-2.37 1.01-2.48 2.3-1.88-.5-2.84-1.8-5.02-1.8-2.19 0-3.14 1.3-5.02 1.8C6.87 7.02 5.81 6 4.5 6A2.5 2.5 0 002 8.5V9c0 6 3.6 7.81 6.52 7.98C9.53 17.62 10.72 18 12 18s2.47-.38 3.48-1.02C18.4 16.81 22 15 22 9v-.5A2.5 2.5 0 0019.5 6zm-16 3v-.5c0-.55.45-1 1-1s1 .45 1 1v3c0 1.28.38 2.47 1.01 3.48C4.99 14.27 3.5 12.65 3.5 9zM7 11.5V9.85c1.12-.23 1.95-.69 2.66-1.08C10.48 8.33 11.07 8 12 8c.93 0 1.52.33 2.34.78.71.39 1.54.84 2.66 1.08v1.65c0 2.76-2.24 5-5 5s-5-2.25-5-5.01zM20.5 9c0 3.65-1.49 5.27-3.01 5.98.64-1.01 1.01-2.2 1.01-3.48v-3c0-.55.45-1 1-1s1 .45 1 1V9zm-9.81 1.48c-.44.26-.96.56-1.69.76V10.2c.48-.17.84-.38 1.18-.58C10.72 9.3 11.23 9 12 9s1.27.3 1.8.62c.34.2.71.42 1.2.59v1.04c-.75-.21-1.26-.51-1.71-.78-.46-.27-.8-.47-1.29-.47s-.84.2-1.31.48z\"}}]})(props);\n};\nexport function MdOutlineMilitaryTech (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10.43V2H7v8.43c0 .35.18.68.49.86l4.18 2.51-.99 2.34-3.41.29 2.59 2.24L9.07 22 12 20.23 14.93 22l-.78-3.33 2.59-2.24-3.41-.29-.99-2.34 4.18-2.51c.3-.18.48-.5.48-.86zm-6 .64l-2-1.2V4h2v7.07zm4-1.2l-2 1.2V4h2v5.87z\"}}]})(props);\n};\nexport function MdOutlineMoodBad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 2.5c-2.33 0-4.31 1.46-5.11 3.5h10.22c-.8-2.04-2.78-3.5-5.11-3.5z\"}}]})(props);\n};\nexport function MdOutlineMood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"}}]})(props);\n};\nexport function MdOutlineNightsStay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.78 17.51c-2.47 0-6.57-1.33-8.68-5.43-2.33-4.51-.5-8.48.53-10.07C6.27 2.2 1.98 6.59 1.98 12c0 .14.02.28.02.42.61-.26 1.28-.42 1.98-.42 0-3.09 1.73-5.77 4.3-7.1-.5 2.19-.54 5.04 1.04 8.1 1.57 3.04 4.18 4.95 6.8 5.86a8 8 0 01-5.61 1.01c-.37.7-.94 1.27-1.64 1.64.98.32 2.03.5 3.11.5 3.5 0 6.58-1.8 8.37-4.52-.17.01-.37.02-.57.02z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 16h-.18C6.4 14.84 5.3 14 4 14c-1.66 0-3 1.34-3 3s1.34 3 3 3h3c1.1 0 2-.9 2-2s-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineNoLuggage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13.17l-1.5-1.5V9H16v4.17zm3.78 9.44l-1.85-1.85c-.28.15-.59.24-.93.24 0 .55-.45 1-1 1s-1-.45-1-1H9c0 .55-.45 1-1 1s-1-.45-1-1c-1.1 0-2-.9-2-2V8c0-.05.02-.1.02-.15L1.39 4.22 2.8 2.81l18.38 18.38-1.4 1.42zM16.17 19l-3.42-3.42V18h-1.5v-3.92L9.5 12.33V18H8v-7.17l-1-1V19h9.17zM12.75 9h-.92l.92.92V9zM19 8v8.17l-2-2V8h-6.17l-.99-.99L9 6.17V3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v3h2c1.1 0 2 .9 2 2zm-8.5-2h3V3.5h-3V6z\"}}]})(props);\n};\nexport function MdOutlineNordicWalking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 23h-1.5v-9H19v9zM7.53 14H6l-2 9h1.53l2-9zm5.97-8.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6a2.145 2.145 0 00-2.65-.84L6 8.3V13h2V9.6l1.8-.7z\"}}]})(props);\n};\nexport function MdOutlineNotificationAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14v3H8v-7c0-2.21 1.79-4 4-4 .85 0 1.64.26 2.28.72l1.43-1.43A5.87 5.87 0 0013.5 4.2v-.7c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.7C7.91 4.86 6 7.21 6 10v7H4v2h16v-2h-2v-3h-2zm-4 8c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zM24 8h-3V5h-2v3h-3v2h3v3h2v-3h3V8z\"}}]})(props);\n};\nexport function MdOutlineNotificationsActive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6zM7.58 4.08L6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2a8.445 8.445 0 013.55-6.42zm12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43a8.495 8.495 0 013.54 6.42z\"}}]})(props);\n};\nexport function MdOutlineNotificationsNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z\"}}]})(props);\n};\nexport function MdOutlineNotificationsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm0-15.5c2.49 0 4 2.02 4 4.5v.1l2 2V11c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.24.06-.47.15-.69.23l1.64 1.64c.18-.02.36-.05.55-.05zM5.41 3.35L4 4.76l2.81 2.81C6.29 8.57 6 9.74 6 11v5l-2 2v1h14.24l1.74 1.74 1.41-1.41L5.41 3.35zM16 17H8v-6c0-.68.12-1.32.34-1.9L16 16.76V17z\"}}]})(props);\n};\nexport function MdOutlineNotificationsPaused (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 9.8h2.8l-2.8 3.4V15h5v-1.8h-2.8l2.8-3.4V8h-5zM18 16v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6zm-4 5c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2z\"}}]})(props);\n};\nexport function MdOutlineNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z\"}}]})(props);\n};\nexport function MdOutlineOutdoorGrill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 22c1.66 0 3-1.34 3-3s-1.34-3-3-3c-1.3 0-2.4.84-2.82 2H9.14l1.99-3.06a6.36 6.36 0 001.74 0l1.02 1.57c.42-.53.96-.95 1.6-1.21l-.6-.93A6.992 6.992 0 0019 8H5c0 2.84 1.69 5.27 4.12 6.37l-3.95 6.08a1 1 0 00.29 1.38 1 1 0 001.38-.29l1-1.55h6.34C14.6 21.16 15.7 22 17 22zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-9.58-8h9.16c-.77 1.76-2.54 3-4.58 3s-3.81-1.24-4.58-3zM9.41 7h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.77-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.22.24.79.67.45 2.04zM11.89 7h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.78-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.23.24.8.67.45 2.04zM14.41 7h1c.15-1.15.23-1.64-.89-2.96-.42-.5-.68-.77-.46-2.04h-.99c-.21 1.11.03 2.05.89 2.96.22.24.79.67.45 2.04z\"}}]})(props);\n};\nexport function MdOutlinePages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 2h6v6h-3l1-4-4 1V5zM5 5h6v3L7 7l1 4H5V5zm6 14H5v-6h3l-1 4 4-1v3zm8 0h-6v-3l4 1-1-4h3v6zm-4.37-4.37L12 13.72l-2.63.91.91-2.63-.91-2.63 2.63.91 2.63-.91-.91 2.63.91 2.63z\"}}]})(props);\n};\nexport function MdOutlineParagliding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.48.94C14.68 18.54 14 19 12 19s-2.68-.46-3.48-1.06C8.04 17.55 7 16.76 7 14H5c0 2.7.93 4.41 2.3 5.5.5.4 1.1.7 1.7.9V24h6v-3.6c.6-.2 1.2-.5 1.7-.9 1.37-1.09 2.3-2.8 2.3-5.5h-2c0 2.76-1.04 3.55-1.52 3.94zM23 4.25v3.49c0 .8-.88 1.26-1.56.83-.14-.09-.28-.18-.44-.26L19 13h-2l-1.5-6.28a27.852 27.852 0 00-7 0L7 13H5L3 8.31c-.16.08-.3.17-.44.26C1.88 9 1 8.55 1 7.74V4.25C1 1.9 5.92 0 12 0s11 1.9 11 4.25zM6.9 6.98c-.93.19-1.78.43-2.53.71l1.51 3.55L6.9 6.98zm12.73.71c-.75-.28-1.6-.52-2.53-.71l1.02 4.25 1.51-3.54zM21 4.31C20.65 3.63 17.57 2 12 2S3.35 3.63 3 4.31v1.77C5.34 5.07 8.56 4.5 12 4.5s6.66.57 9 1.58V4.31z\"}}]})(props);\n};\nexport function MdOutlinePartyMode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h4.05l.59-.65L9.88 4h4.24l1.24 1.35.59.65H20v12zM9 12c0-1.66 1.34-3 3-3h3.98c-.92-1.21-2.35-2-3.98-2a5.002 5.002 0 00-4.9 6h2.08c-.11-.31-.18-.65-.18-1zm6 0c0 1.66-1.34 3-3 3H8.02c.92 1.21 2.35 2 3.98 2a5.002 5.002 0 004.9-6h-2.08c.11.31.18.65.18 1z\"}}]})(props);\n};\nexport function MdOutlinePeopleAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.67 13.13C18.04 14.06 19 15.32 19 17v3h4v-3c0-2.18-3.57-3.47-6.33-3.87zM15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4c-.47 0-.91.1-1.33.24a5.98 5.98 0 010 7.52c.42.14.86.24 1.33.24zM9 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zM9 13c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4zm6 5H3v-.99C3.2 16.29 6.3 15 9 15s5.8 1.29 6 2v1z\"}}]})(props);\n};\nexport function MdOutlinePeopleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13.75c-2.34 0-7 1.17-7 3.5V19h14v-1.75c0-2.33-4.66-3.5-7-3.5zM4.34 17c.84-.58 2.87-1.25 4.66-1.25s3.82.67 4.66 1.25H4.34zM9 12c1.93 0 3.5-1.57 3.5-3.5S10.93 5 9 5 5.5 6.57 5.5 8.5 7.07 12 9 12zm0-5c.83 0 1.5.67 1.5 1.5S9.83 10 9 10s-1.5-.67-1.5-1.5S8.17 7 9 7zm7.04 6.81c1.16.84 1.96 1.96 1.96 3.44V19h4v-1.75c0-2.02-3.5-3.17-5.96-3.44zM15 12c1.93 0 3.5-1.57 3.5-3.5S16.93 5 15 5c-.54 0-1.04.13-1.5.35.63.89 1 1.98 1 3.15s-.37 2.26-1 3.15c.46.22.96.35 1.5.35z\"}}]})(props);\n};\nexport function MdOutlinePeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13.75c-2.34 0-7 1.17-7 3.5V19h14v-1.75c0-2.33-4.66-3.5-7-3.5zM4.34 17c.84-.58 2.87-1.25 4.66-1.25s3.82.67 4.66 1.25H4.34zM9 12c1.93 0 3.5-1.57 3.5-3.5S10.93 5 9 5 5.5 6.57 5.5 8.5 7.07 12 9 12zm0-5c.83 0 1.5.67 1.5 1.5S9.83 10 9 10s-1.5-.67-1.5-1.5S8.17 7 9 7zm7.04 6.81c1.16.84 1.96 1.96 1.96 3.44V19h4v-1.75c0-2.02-3.5-3.17-5.96-3.44zM15 12c1.93 0 3.5-1.57 3.5-3.5S16.93 5 15 5c-.54 0-1.04.13-1.5.35.63.89 1 1.98 1 3.15s-.37 2.26-1 3.15c.46.22.96.35 1.5.35z\"}}]})(props);\n};\nexport function MdOutlinePersonAddAlt1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4zm-2 0c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4zm2 0c.2-.71 3.3-2 6-2 2.69 0 5.78 1.28 6 2H3zm17-3v-3h3v-2h-3V7h-2v3h-3v2h3v3h2z\"}}]})(props);\n};\nexport function MdOutlinePersonAddAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9V6h-2v3h-3v2h3v3h2v-3h3V9h-3zM9 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm6.39 8.56C13.71 13.7 11.53 13 9 13s-4.71.7-6.39 1.56A2.97 2.97 0 001 17.22V20h16v-2.78c0-1.12-.61-2.15-1.61-2.66zM15 18H3v-.78c0-.38.2-.72.52-.88C4.71 15.73 6.63 15 9 15c2.37 0 4.29.73 5.48 1.34.32.16.52.5.52.88V18z\"}}]})(props);\n};\nexport function MdOutlinePersonAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 8c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm-6 4c.22-.72 3.31-2 6-2 2.7 0 5.8 1.29 6 2H9zm-3-3v-3h3v-2H6V7H4v3H1v2h3v3z\"}}]})(props);\n};\nexport function MdOutlinePersonOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.17l-3.37-3.38c.64.22 1.23.48 1.77.76.97.51 1.58 1.52 1.6 2.62zm1.19 4.02l-1.41 1.41-2.61-2.6H4v-2.78c0-1.12.61-2.15 1.61-2.66 1.29-.66 2.87-1.22 4.67-1.45L1.39 4.22 2.8 2.81l18.39 18.38zM15.17 18l-3-3H12c-2.37 0-4.29.73-5.48 1.34-.32.16-.52.5-.52.88V18h9.17zM12 6c1.1 0 2 .9 2 2 0 .86-.54 1.59-1.3 1.87l1.48 1.48a3.999 3.999 0 10-5.53-5.53l1.48 1.48A1.99 1.99 0 0112 6z\"}}]})(props);\n};\nexport function MdOutlinePersonOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.9a2.1 2.1 0 110 4.2 2.1 2.1 0 010-4.2m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdOutlinePersonRemoveAlt1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8c0-2.21-1.79-4-4-4S6 5.79 6 8s1.79 4 4 4 4-1.79 4-4zm-2 0c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM2 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4zm2 0c.2-.71 3.3-2 6-2 2.69 0 5.77 1.28 6 2H4zM17 10h6v2h-6z\"}}]})(props);\n};\nexport function MdOutlinePersonRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 8c0-2.21-1.79-4-4-4S6 5.79 6 8s1.79 4 4 4 4-1.79 4-4zm-2 0c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM2 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4zm2 0c.2-.71 3.3-2 6-2 2.69 0 5.77 1.28 6 2H4zM17 10h6v2h-6z\"}}]})(props);\n};\nexport function MdOutlinePerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"}}]})(props);\n};\nexport function MdOutlinePersonalInjury (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm6.39 8.56C16.71 11.7 14.53 11 12 11s-4.71.7-6.39 1.56A2.97 2.97 0 004 15.22V22h2v-6.78c0-.38.2-.72.52-.88C7.71 13.73 9.63 13 12 13c.76 0 1.47.07 2.13.2l-1.55 3.3H9.75C8.23 16.5 7 17.73 7 19.25S8.23 22 9.75 22H18c1.1 0 2-.9 2-2v-4.78c0-1.12-.61-2.15-1.61-2.66zM10.94 20H9.75c-.41 0-.75-.34-.75-.75s.34-.75.75-.75h1.89l-.7 1.5zM18 20h-4.85l2.94-6.27c.54.2 1.01.41 1.4.61.31.16.51.5.51.88V20z\"}}]})(props);\n};\nexport function MdOutlinePianoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.19 21.19L2.81 2.81 1.39 4.22 3 5.83V19c0 1.1.9 2 2 2h13.17l1.61 1.61 1.41-1.42zM8.25 19H5V7.83l2 2v3.67c0 .55.45 1 1 1h.25V19zm1.5 0v-4.5H10c.46 0 .82-.31.94-.73l3.31 3.31V19h-4.5zM11 8.17L5.83 3H19c1.1 0 2 .9 2 2v13.17l-2-2V5h-2v8.5c0 .19-.07.36-.16.51L13 10.17V5h-2v3.17z\"}}]})(props);\n};\nexport function MdOutlinePiano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 11.5h.25V19h-4.5v-4.5H10c.55 0 1-.45 1-1V5h2v8.5c0 .55.45 1 1 1zM5 5h2v8.5c0 .55.45 1 1 1h.25V19H5V5zm14 14h-3.25v-4.5H16c.55 0 1-.45 1-1V5h2v14z\"}}]})(props);\n};\nexport function MdOutlinePlusOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 8H8v4H4v2h4v4h2v-4h4v-2h-4V8zm4.5-1.92V7.9l2.5-.5V18h2V5l-4.5 1.08z\"}}]})(props);\n};\nexport function MdOutlinePoll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7 10h2v7H7zm4-3h2v10h-2zm4 6h2v4h-2z\"}}]})(props);\n};\nexport function MdOutlinePrecisionManufacturing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.93 8.35l-3.6 1.68L14 7.7V6.3l2.33-2.33 3.6 1.68c.38.18.82.01 1-.36.18-.38.01-.82-.36-1l-3.92-1.83a.993.993 0 00-1.13.2L13.78 4.4A.975.975 0 0013 4c-.55 0-1 .45-1 1v1H8.82C8.4 4.84 7.3 4 6 4 4.34 4 3 5.34 3 7c0 1.1.6 2.05 1.48 2.58L7.08 18H6c-1.1 0-2 .9-2 2v1h13v-1c0-1.1-.9-2-2-2h-1.62L8.41 8.77c.17-.24.31-.49.41-.77H12v1c0 .55.45 1 1 1 .32 0 .6-.16.78-.4l1.74 1.74c.3.3.75.38 1.13.2l3.92-1.83c.38-.18.54-.62.36-1a.753.753 0 00-1-.36zM6 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5.11 10H9.17l-2.46-8h.1l4.3 8z\"}}]})(props);\n};\nexport function MdOutlinePsychology (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.82 7.22l-1 .4c-.21-.16-.43-.29-.67-.39L14 6.17c-.02-.1-.1-.17-.2-.17h-1.6c-.1 0-.18.07-.19.17l-.15 1.06c-.24.1-.47.23-.67.39l-1-.4c-.09-.03-.2 0-.24.09l-.8 1.38a.2.2 0 00.05.26l.85.66c-.03.12-.05.26-.05.39s.01.26.03.39l-.84.66a.19.19 0 00-.05.25l.8 1.39c.05.09.15.12.25.09l.99-.4c.21.16.43.29.68.39l.14 1.06c.02.1.1.17.2.17h1.6c.1 0 .18-.07.2-.17l.15-1.06c.24-.1.47-.23.67-.39l.99.4c.09.04.2 0 .24-.09l.8-1.39c.05-.09.03-.19-.05-.25l-.83-.66a2.561 2.561 0 000-.78l.85-.66a.2.2 0 00.05-.26l-.8-1.38c-.05-.09-.16-.12-.25-.09zM13 11.43a1.43 1.43 0 110-2.86 1.43 1.43 0 010 2.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.94 9.06c-.43-3.27-3.23-5.86-6.53-6.05C13.27 3 13.14 3 13 3 9.47 3 6.57 5.61 6.08 9l-1.93 3.48c-.41.66.07 1.52.85 1.52h1v2c0 1.1.9 2 2 2h1v3h7v-4.68a7.016 7.016 0 003.94-7.26zm-5.05 5.57l-.89.42V19h-3v-3H8v-4H6.7l1.33-2.33C8.21 7.06 10.35 5 13 5c2.76 0 5 2.24 5 5 0 2.09-1.29 3.88-3.11 4.63z\"}}]})(props);\n};\nexport function MdOutlinePublicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8.17L6.49 3.66A9.91 9.91 0 0112 2c5.52 0 10 4.48 10 10 0 2.04-.61 3.93-1.66 5.51l-1.46-1.46A7.842 7.842 0 0020 12c0-3.35-2.07-6.22-5-7.41V5c0 1.1-.9 2-2 2h-2v1.17zm10.19 13.02l-1.41 1.41-2.27-2.27A9.839 9.839 0 0112 22C6.48 22 2 17.52 2 12c0-2.04.61-3.93 1.66-5.51L1.39 4.22 2.8 2.81l18.39 18.38zM11 18c-1.1 0-2-.9-2-2v-1l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.08 3.05 7.44 7 7.93V18z\"}}]})(props);\n};\nexport function MdOutlinePublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-.61.08-1.21.21-1.78L8.99 15v1c0 1.1.9 2 2 2v1.93C7.06 19.43 4 16.07 4 12zm13.89 5.4c-.26-.81-1-1.4-1.9-1.4h-1v-3c0-.55-.45-1-1-1h-6v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41C17.92 5.77 20 8.65 20 12c0 2.08-.81 3.98-2.11 5.4z\"}}]})(props);\n};\nexport function MdOutlineRealEstateAgent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6.5V14h-2V7.5L14 4 9 7.5V9H7V6.5l7-5 7 5zm-5.5.5h-1v1h1V7zm-2 0h-1v1h1V7zm2 2h-1v1h1V9zm-2 0h-1v1h1V9zm5.5 7h-2c0-1.2-.75-2.28-1.87-2.7L8.97 11H1v11h6v-1.44l7 1.94 8-2.5v-1c0-1.66-1.34-3-3-3zM3 20v-7h2v7H3zm10.97.41L7 18.48V13h1.61l5.82 2.17c.34.13.57.46.57.83 0 0-1.99-.05-2.3-.15l-2.38-.79-.63 1.9 2.38.79c.51.17 1.04.26 1.58.26H19c.39 0 .74.23.9.56l-5.93 1.84z\"}}]})(props);\n};\nexport function MdOutlineRecommend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 10h-4.59l.58-3.41v-.2c-.01-.26-.12-.51-.3-.7L12 5l-4.6 5c-.27.26-.42.62-.4 1v5c0 1.1.9 2 2 2h5.5c.56.03 1.08-.29 1.3-.8l2.1-4.9c.08-.15.12-.33.1-.5V11c0-.55-.45-1-1-1z\"}}]})(props);\n};\nexport function MdOutlineRecycling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.77 7.15L7.2 4.78l1.03-1.71c.39-.65 1.33-.65 1.72 0l1.48 2.46-1.23 2.06-1 1.62-3.43-2.06zm15.95 5.82l-1.6-2.66-3.46 2L18.87 16H20a2 2 0 002-2c0-.36-.1-.71-.28-1.03zM16 21h1.5a2 2 0 001.79-1.11L20.74 17H16v-2l-4 4 4 4v-2zm-6-4H5.7l-.84 1.41c-.3.5-.32 1.12-.06 1.65.28.57.87.94 1.52.94H10v-4zm-3.88-2.65l1.73 1.04L6.48 9.9 1 11.27l1.7 1.02-.41.69c-.35.59-.38 1.31-.07 1.92l1.63 3.26 2.27-3.81zm10.9-9.21l-1.3-2.17C15.35 2.37 14.7 2 14 2h-3.53l3.12 5.2-1.72 1.03 5.49 1.37 1.37-5.49-1.71 1.03z\"}}]})(props);\n};\nexport function MdOutlineReduceCapacity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58A6.95 6.95 0 0018 7c-.67 0-1.31.1-1.92.28.58.55.92 1.32.92 2.15V10h5v-.57c0-.81-.48-1.53-1.22-1.85zM6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1.92 1.28C7.31 7.1 6.67 7 6 7c-.99 0-1.93.21-2.78.58A2.01 2.01 0 002 9.43V10h5v-.57c0-.83.34-1.6.92-2.15zM10 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0116 9.43V10zm-1 6c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6h-8v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0121 21.43V22zM5 16c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm6 6H3v-.57c0-.81.48-1.53 1.22-1.85a6.95 6.95 0 015.56 0A2.01 2.01 0 0111 21.43V22zm1.75-9v-2h-1.5v2H9l3 3 3-3h-2.25z\"}}]})(props);\n};\nexport function MdOutlineRemoveModerator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.14l6 2.25v4.7c0 1.19-.23 2.36-.64 3.44l1.51 1.51c.72-1.53 1.13-3.22 1.13-4.95V5l-8-3-5.22 1.96 1.55 1.55L12 4.14zM2.81 2.81L1.39 4.22 4 6.83v4.26c0 5.05 3.41 9.76 8 10.91 1.72-.43 3.28-1.36 4.55-2.62l3.23 3.23 1.41-1.41L2.81 2.81zM12 19.92c-3.45-1.13-6-4.82-6-8.83V8.83l9.14 9.14c-.9.88-1.97 1.57-3.14 1.95z\"}}]})(props);\n};\nexport function MdOutlineSafetyDivider (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 5h2v14h-2V5zm-6 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 001 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85zM19 12c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 0015 15.43V16h8v-.57c0-.81-.48-1.53-1.22-1.85z\"}}]})(props);\n};\nexport function MdOutlineSanitizer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 6.5C15.5 5.66 17 4 17 4s1.5 1.66 1.5 2.5c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5zm4 8.5a2.5 2.5 0 002.5-2.5c0-1.67-2.5-4.5-2.5-4.5S17 10.83 17 12.5a2.5 2.5 0 002.5 2.5zM13 14h-2v-2H9v2H7v2h2v2h2v-2h2v-2zm3-2v8c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2v-8c0-2.97 2.16-5.43 5-5.91V4H7V2h6c1.13 0 2.15.39 2.99 1.01l-1.43 1.43C14.1 4.17 13.57 4 13 4h-2v2.09c2.84.48 5 2.94 5 5.91zm-2 0c0-2.21-1.79-4-4-4s-4 1.79-4 4v8h8v-8z\"}}]})(props);\n};\nexport function MdOutlineSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3L1 9l4 2.18v6L12 21l7-3.82v-6l2-1.09V17h2V9L12 3zm6.82 6L12 12.72 5.18 9 12 5.28 18.82 9zM17 15.99l-5 2.73-5-2.73v-3.72L12 15l5-2.73v3.72z\"}}]})(props);\n};\nexport function MdOutlineScience (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 11.33L18 18H6l5-6.67V6h2m2.96-2H8.04c-.42 0-.65.48-.39.81L9 6.5v4.17L3.2 18.4c-.49.66-.02 1.6.8 1.6h16c.82 0 1.29-.94.8-1.6L15 10.67V6.5l1.35-1.69c.26-.33.03-.81-.39-.81z\"}}]})(props);\n};\nexport function MdOutlineSelfImprovement (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16v-2c-2.24 0-4.16-.96-5.6-2.68l-1.34-1.6A1.98 1.98 0 0012.53 9h-1.05c-.59 0-1.15.26-1.53.72l-1.34 1.6C7.16 13.04 5.24 14 3 14v2c2.77 0 5.19-1.17 7-3.25V15l-3.88 1.55c-.67.27-1.12.93-1.12 1.66C5 19.2 5.8 20 6.79 20H9v-.5a2.5 2.5 0 012.5-2.5h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.83 0-1.5.67-1.5 1.5v.5h7.21c.99 0 1.79-.8 1.79-1.79 0-.73-.45-1.39-1.12-1.66L14 15v-2.25c1.81 2.08 4.23 3.25 7 3.25z\"}}]})(props);\n};\nexport function MdOutlineSentimentDissatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c-2.33 0-4.32 1.45-5.12 3.5h1.67c.69-1.19 1.97-2 3.45-2s2.75.81 3.45 2h1.67c-.8-2.05-2.79-3.5-5.12-3.5zm-.01-12C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineSentimentNeutral (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 14h6v1.5H9z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineSentimentSatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c-1.48 0-2.75-.81-3.45-2H6.88a5.495 5.495 0 0010.24 0h-1.67c-.7 1.19-1.97 2-3.45 2zm-.01-14C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineSentimentVeryDissatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.5c-2.33 0-4.31 1.46-5.11 3.5h10.22c-.8-2.04-2.78-3.5-5.11-3.5zM7.82 12l1.06-1.06L9.94 12 11 10.94 9.94 9.88 11 8.82 9.94 7.76 8.88 8.82 7.82 7.76 6.76 8.82l1.06 1.06-1.06 1.06zm4.17-10C6.47 2 2 6.47 2 12s4.47 10 9.99 10S22 17.53 22 12 17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm4.18-12.24l-1.06 1.06-1.06-1.06L13 8.82l1.06 1.06L13 10.94 14.06 12l1.06-1.06L16.18 12l1.06-1.06-1.06-1.06 1.06-1.06z\"}}]})(props);\n};\nexport function MdOutlineSentimentVerySatisfied (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2C6.47 2 2 6.47 2 12s4.47 10 9.99 10S22 17.53 22 12 17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm1-10.06L14.06 11l1.06-1.06L16.18 11l1.06-1.06-2.12-2.12L13 9.94zm-4.12 0L9.94 11 11 9.94 8.88 7.82 6.76 9.94 7.82 11l1.06-1.06zM12 17.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"}}]})(props);\n};\nexport function MdOutlineShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92c0-1.61-1.31-2.92-2.92-2.92zM18 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM6 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm12 7.02c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"}}]})(props);\n};\nexport function MdOutlineSick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.32 10.56L8.38 9.5 7.32 8.44l1.06-1.06L10.5 9.5l-2.12 2.12-1.06-1.06zM4.5 9c.03 0 .05.01.08.01A8.002 8.002 0 0112 4c2.19 0 4.16.88 5.61 2.3.15-.6.45-1.29.81-1.96A9.965 9.965 0 0011.99 2c-4.88 0-8.94 3.51-9.81 8.14C2.74 9.44 3.59 9 4.5 9zM21 10.5c-.42 0-.82-.09-1.19-.22.12.55.19 1.13.19 1.72 0 4.42-3.58 8-8 8-3.36 0-6.23-2.07-7.42-5.01-.03 0-.05.01-.08.01-.52 0-1.04-.14-1.5-.4-.32-.18-.59-.42-.82-.7.89 4.61 4.93 8.1 9.8 8.1C17.52 22 22 17.52 22 12c0-.55-.06-1.09-.14-1.62a3.5 3.5 0 01-.86.12zM21 3s-2 2.9-2 4 .9 2 2 2 2-.9 2-2-2-4-2-4zm-5.38 4.38L13.5 9.5l2.12 2.12 1.06-1.06-1.06-1.06 1.06-1.06-1.06-1.06zM8.56 17c.69-1.19 1.97-2 3.44-2s2.75.81 3.44 2h1.68c-.8-2.05-2.79-3.5-5.12-3.5-.87 0-1.7.2-2.43.57L5.99 12c0-.52-.26-1.02-.74-1.29-.72-.41-1.63-.17-2.05.55-.41.72-.17 1.63.55 2.05.48.28 1.05.25 1.49 0l2.97 1.72c-.57.53-1.03 1.21-1.33 1.97h1.68z\"}}]})(props);\n};\nexport function MdOutlineSingleBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12c0-1.1-.9-2-2-2V7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3c-1.1 0-2 .9-2 2v5h1.33L6 19h1l.67-2h8.67l.66 2h1l.67-2H20v-5zm-4-2h-3V7h3v3zM8 7h3v3H8V7zm-2 5h12v3H6v-3z\"}}]})(props);\n};\nexport function MdOutlineSkateboarding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM7.25 22.5c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75zm8.5 0c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75zm3.49-3.5a.72.72 0 00-.59.3c-.55.73-1.42 1.2-2.4 1.2H16v-6l-4.32-2.67 1.8-2.89A6.507 6.507 0 0019 12v-2c-1.85 0-3.44-1.12-4.13-2.72l-.52-1.21C14.16 5.64 13.61 5 12.7 5H7L4.5 9l1.7 1.06L8.1 7h2.35l-2.4 3.84c-.31.5-.39 1.11-.21 1.67l1.34 4.15-3.12 3.76c-.7-.16-1.3-.57-1.71-1.12a.749.749 0 10-1.2.9c.82 1.1 2.13 1.8 3.6 1.8h9.5c1.47 0 2.78-.7 3.6-1.8.1-.14.15-.3.15-.45 0-.39-.32-.75-.76-.75zM14 20.5H8.6l2.9-3.5-1-3.3 3.5 2.2v4.6z\"}}]})(props);\n};\nexport function MdOutlineSledding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 4.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm8.8 15.74a4.003 4.003 0 01-5.04 2.57L1 17.36l.46-1.43 3.93 1.28.46-1.43-3.92-1.28.46-1.43L4 13.6V9.5l5.47-2.35c.39-.17.84-.21 1.28-.07.95.31 1.46 1.32 1.16 2.27l-1.05 3.24 2.14-.34c.89-.15 1.76.32 2.14 1.14l2.08 4.51 1.93.63-.46 1.43-3.32-1.08-.47 1.42 3.32 1.08c1.31.43 2.72-.29 3.15-1.61.43-1.31-.29-2.72-1.61-3.15l.46-1.43c2.11.69 3.27 2.95 2.58 5.05zM6 14.25l1.01.33c-.22-.42-.28-.92-.12-1.4L7.92 10 6 10.82v3.43zm7.94 4.16l-6.66-2.16-.46 1.43 6.66 2.16.46-1.43zm.69-1.36l-1.18-2.56-3.97.89 5.15 1.67z\"}}]})(props);\n};\nexport function MdOutlineSnowboarding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm7.4 17.09a.748.748 0 00-.64.17c-.69.6-1.64.88-2.6.67L17 20.69l-1-6.19-3.32-2.67 1.8-2.89A6.507 6.507 0 0020 12v-2c-1.85 0-3.44-1.12-4.13-2.72l-.52-1.21C15.16 5.64 14.61 5 13.7 5H8L5.5 9l1.7 1.06L9.1 7h2.35l-2.51 3.99c-.28.45-.37 1-.25 1.52L9.5 16 6 18.35l-.47-.1c-.96-.2-1.71-.85-2.1-1.67a.744.744 0 00-.51-.42c-.43-.09-.82.2-.9.58-.04.14-.02.31.05.46.58 1.24 1.71 2.2 3.15 2.51l12.63 2.69c1.44.31 2.86-.11 3.9-1.01.13-.11.21-.26.24-.41.07-.38-.16-.8-.59-.89zM8.73 18.93l3.02-2.03-.44-3.32 2.84 2.02.75 4.64-6.17-1.31z\"}}]})(props);\n};\nexport function MdOutlineSnowshoeing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5 3.5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM6.32 19.03l-1.14-1.47L4 18.5l2.38 3.04c.51.65 1.16 1.15 1.88 1.41.28.1.53.04.72-.11.3-.23.42-.7.12-1.07a.84.84 0 00-.31-.22 2.97 2.97 0 01-1.14-.83l-.08-.1L11 18.2l.89-3.22 2.11 2v4.52h-2V23h3.87c.82 0 1.61-.21 2.26-.61.26-.16.37-.39.37-.64 0-.38-.3-.75-.77-.75-.13 0-.26.04-.37.1-.4.23-.87.37-1.36.4v-6.02l-2.11-2 .6-3C15.79 11.98 17.8 13 20 13v-2c-1.9 0-3.51-1.02-4.31-2.42l-1-1.58c-.4-.6-1-1-1.7-1-.75 0-1.41.34-5.99 2.28V13h2V9.58l1.79-.7L9.2 17l-2.88 2.03z\"}}]})(props);\n};\nexport function MdOutlineSocialDistance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 5c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm4.78 3.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 002 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zM18 7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm2.78 1.58a6.95 6.95 0 00-5.56 0A2.01 2.01 0 0014 10.43V11h8v-.57c0-.81-.48-1.53-1.22-1.85zm-2.77 4.43l-1.41 1.41L18.17 16H5.83l1.58-1.59L6 13l-4 4 3.99 3.99 1.41-1.41L5.83 18h12.34l-1.58 1.58L18 20.99 22 17l-3.99-3.99z\"}}]})(props);\n};\nexport function MdOutlineSportsBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM5.61 16.78C4.6 15.45 4 13.8 4 12s.6-3.45 1.61-4.78a5.975 5.975 0 010 9.56zM12 20c-1.89 0-3.63-.66-5-1.76 1.83-1.47 3-3.71 3-6.24S8.83 7.23 7 5.76C8.37 4.66 10.11 4 12 4s3.63.66 5 1.76c-1.83 1.47-3 3.71-3 6.24s1.17 4.77 3 6.24A7.963 7.963 0 0112 20zm6.39-3.22a5.975 5.975 0 010-9.56C19.4 8.55 20 10.2 20 12s-.6 3.45-1.61 4.78z\"}}]})(props);\n};\nexport function MdOutlineSportsBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM5.23 7.75C6.1 8.62 6.7 9.74 6.91 11H4.07a8.12 8.12 0 011.16-3.25zM4.07 13h2.84a5.972 5.972 0 01-1.68 3.25A8.12 8.12 0 014.07 13zM11 19.93c-1.73-.22-3.29-1-4.49-2.14A7.952 7.952 0 008.93 13H11v6.93zM11 11H8.93A7.99 7.99 0 006.5 6.2 8.035 8.035 0 0111 4.07V11zm8.93 0h-2.84c.21-1.26.81-2.38 1.68-3.25.6.97 1.01 2.07 1.16 3.25zM13 4.07c1.73.22 3.29.99 4.5 2.13a7.99 7.99 0 00-2.43 4.8H13V4.07zm0 15.86V13h2.07a8.006 8.006 0 002.42 4.79A7.988 7.988 0 0113 19.93zm5.77-3.68A6.004 6.004 0 0117.09 13h2.84a8.12 8.12 0 01-1.16 3.25z\"}}]})(props);\n};\nexport function MdOutlineSportsCricket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.04 12.79l-8.5-8.5C6.35 4.1 6.09 4 5.83 4s-.51.1-.7.29L2.29 7.13c-.39.39-.39 1.03 0 1.42l8.5 8.5c.2.2.45.29.71.29.26 0 .51-.1.71-.29l2.83-2.83c.39-.4.39-1.04 0-1.43zm-3.54 2.13L4.41 7.83l1.42-1.42 7.09 7.09-1.42 1.42zM14.341 17.756l1.414-1.414 4.243 4.243-1.414 1.414zM18.5 2C16.57 2 15 3.57 15 5.5S16.57 9 18.5 9 22 7.43 22 5.5 20.43 2 18.5 2zm0 5c-.83 0-1.5-.67-1.5-1.5S17.67 4 18.5 4s1.5.67 1.5 1.5S19.33 7 18.5 7z\"}}]})(props);\n};\nexport function MdOutlineSportsEsports (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.58 16.09l-1.09-7.66A3.996 3.996 0 0016.53 5H7.47C5.48 5 3.79 6.46 3.51 8.43l-1.09 7.66C2.2 17.63 3.39 19 4.94 19c.68 0 1.32-.27 1.8-.75L9 16h6l2.25 2.25c.48.48 1.13.75 1.8.75 1.56 0 2.75-1.37 2.53-2.91zm-2.1.72a.54.54 0 01-.42.19c-.15 0-.29-.06-.39-.16L15.83 14H8.17l-2.84 2.84c-.1.1-.24.16-.39.16a.54.54 0 01-.42-.19.52.52 0 01-.13-.44l1.09-7.66C5.63 7.74 6.48 7 7.47 7h9.06c.99 0 1.84.74 1.98 1.72l1.09 7.66c.03.2-.05.34-.12.43z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 8H8v2H6v1h2v2h1v-2h2v-1H9z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"9\",\"r\":\"1\"}}]})(props);\n};\nexport function MdOutlineSportsFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.31 3.69c-.32-.33-1.94-.69-4.05-.69-3.03 0-7.09.75-9.8 3.46-4.59 4.59-3.56 13.06-2.77 13.85.32.33 1.94.69 4.05.69 3.03 0 7.09-.75 9.8-3.46 4.59-4.59 3.56-13.06 2.77-13.85zM7.74 19c-1.14 0-2.02-.12-2.53-.23-.18-.79-.3-2.21-.17-3.83l4.01 4.01c-.52.04-.97.05-1.31.05zm8.39-2.87c-1.33 1.33-3.06 2.05-4.66 2.44l-6.04-6.04c.42-1.68 1.16-3.37 2.45-4.65 1.32-1.32 3.05-2.04 4.64-2.43l6.05 6.05c-.42 1.67-1.17 3.35-2.44 4.63zm2.83-7.04l-4.03-4.03c.52-.05.98-.06 1.33-.06 1.14 0 2.02.12 2.53.23.18.79.3 2.22.17 3.86z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 14.1l5.6-5.6 1.4 1.4-5.6 5.6z\"}}]})(props);\n};\nexport function MdOutlineSportsGolf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c3.87 0 7-3.13 7-7s-3.13-7-7-7-7 3.13-7 7 3.13 7 7 7zm0-12c2.76 0 5 2.24 5 5s-2.24 5-5 5-5-2.24-5-5 2.24-5 5-5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10\",\"cy\":\"8\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"8\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19h2c1.1 0 2 .9 2 2v1h2v-1c0-1.1.9-2 2-2h2v-2H7v2z\"}}]})(props);\n};\nexport function MdOutlineSportsHandball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.27 6c-.55.95-.22 2.18.73 2.73.95.55 2.18.22 2.73-.73.55-.95.22-2.18-.73-2.73-.95-.55-2.18-.22-2.73.73z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.84 10.41l-2.6-1.5c-2.38-1.38-3.2-4.44-1.82-6.82l-1.73-1C8.1 3.83 8.6 7.21 10.66 9.4l-5.15 8.92 1.73 1 1.5-2.6 1.73 1-3 5.2 1.73 1 6.29-10.89a5.002 5.002 0 01.31 5.46l1.73 1c1.6-2.75 1.28-6.58-1.69-9.08zM12.75 3.8c.72.41 1.63.17 2.05-.55.41-.72.17-1.63-.55-2.05a1.501 1.501 0 00-1.5 2.6z\"}}]})(props);\n};\nexport function MdOutlineSportsHockey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 17v3h2v-4H3c-.55 0-1 .45-1 1zM9 16H5v4l4.69-.01c.38 0 .72-.21.89-.55l.87-1.9-1.59-3.48L9 16zM21.71 16.29A.997.997 0 0021 16h-1v4h2v-3c0-.28-.11-.53-.29-.71zM13.6 12.84L17.65 4H14.3l-1.76 3.97-.49 1.1-.05.14L9.7 4H6.35l4.05 8.84 1.52 3.32.08.18 1.42 3.1c.17.34.51.55.89.55L19 20v-4h-4l-1.4-3.16z\"}}]})(props);\n};\nexport function MdOutlineSportsKabaddi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"2.38\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M24 11.88v-4.7l-5.05-2.14c-.97-.41-2.09-.06-2.65.84l-1 1.6c-.67 1.18-1.91 2.06-3.41 2.32l.06.06c.69.69 1.52 1.07 2.46 1.17.8-.42 1.52-.98 2.09-1.64l.6 3-1.16 1.1-.94.89v7.5h2v-6l2.1-2 1.8 8H23l-2.18-11-.62-3.1 1.8.7v3.4h2zM10.29 8.09c.22.15.47.24.72.29.13.02.25.04.38.04s.26-.01.38-.04c.13-.02.25-.06.37-.11.24-.1.47-.24.66-.44.49-.49.67-1.17.55-1.8-.07-.37-.25-.74-.55-1.03-.19-.19-.42-.34-.66-.44-.12-.05-.24-.09-.37-.11s-.25-.04-.38-.04c-.12 0-.23.01-.35.03-.14.02-.28.06-.41.11-.23.11-.46.26-.65.45-.3.29-.48.66-.55 1.03-.12.63.06 1.31.55 1.8.09.1.2.18.31.26z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.24 10.56l-2-2c-.1-.1-.2-.18-.31-.26a1.93 1.93 0 00-.72-.28c-.13-.03-.25-.04-.38-.04-.51 0-1.02.2-1.41.59l-3.34 3.34c-.41.41-.62.98-.58 1.54 0 .18.04.37.11.55l1.07 2.95-3.63 3.63L1.46 22l4.24-4.24v-2.22L7 16.75v5.13h2v-6l-2.12-2.12 2.36-2.36.71.71c1.29 1.26 2.97 2.04 5.03 2.04l-.14-2.07c-1.5-.02-2.7-.62-3.6-1.52z\"}}]})(props);\n};\nexport function MdOutlineSportsMma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-3H7v3zM18 7c-.55 0-1 .45-1 1V5c0-1.1-.9-2-2-2H7c-1.1 0-2 .9-2 2v5.8c0 .13.01.26.04.39l.8 4c.09.47.5.8.98.8H17c.55 0 1.09-.44 1.2-.98l.77-3.83c.02-.12.03-.25.03-.38V8c0-.55-.45-1-1-1zm-1 3.6c0 .13-.64 3.4-.64 3.4H7.64S7 10.74 7 10.6V5h8v5h2v.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 7h6v3H8z\"}}]})(props);\n};\nexport function MdOutlineSportsMotorsports (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.96 11.22C21.57 7.01 17.76 4 13.56 4c-.19 0-.38.01-.57.02C2 4.74 2 17.2 2 17.2v.8c0 1.1.9 2 2 2h10c4.67 0 8.41-4.01 7.96-8.78zm-16.7.34c.57-1.29 1.28-2.35 2.14-3.19l3.62 1.53c.6.25.98.83.98 1.48 0 .89-.72 1.61-1.61 1.61H4.72c.15-.46.32-.94.54-1.43zm13.18 4.48A6.022 6.022 0 0114 18H4v-.8c0-.02.01-.92.24-2.2h6.15c1.99 0 3.61-1.62 3.61-3.61 0-1.45-.87-2.76-2.2-3.32L9.3 7.01c1.1-.57 2.37-.9 3.82-.99.15-.02.3-.02.44-.02 3.31 0 6.13 2.37 6.41 5.41.16 1.72-.38 3.36-1.53 4.63z\"}}]})(props);\n};\nexport function MdOutlineSportsRugby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 3.51c-.56-.56-2.15-.97-4.16-.97-3.08 0-7.15.96-9.98 3.79-4.69 4.7-4.25 12.74-2.84 14.16.56.56 2.15.97 4.16.97 3.08 0 7.15-.96 9.98-3.79 4.69-4.7 4.25-12.74 2.84-14.16zM5.71 18.29c.63-1.89 2.16-4.99 4.87-7.7 2.68-2.68 5.78-4.23 7.7-4.88-.63 1.89-2.16 4.99-4.88 7.7-2.66 2.68-5.76 4.23-7.69 4.88zM7.76 7.76c2.64-2.64 6.34-3.12 8.03-3.19-2.05.94-4.46 2.46-6.61 4.61a23.206 23.206 0 00-4.61 6.63c.09-2.48.87-5.74 3.19-8.05zm8.48 8.48c-2.64 2.64-6.34 3.12-8.03 3.19 2.05-.94 4.46-2.46 6.61-4.61 2.16-2.16 3.67-4.58 4.62-6.63-.1 2.48-.88 5.74-3.2 8.05z\"}}]})(props);\n};\nexport function MdOutlineSportsSoccer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 3.3l1.35-.95a8.01 8.01 0 014.38 3.34l-.39 1.34-1.35.46L13 6.7V5.3zm-3.35-.95L11 5.3v1.4L7.01 9.49l-1.35-.46-.39-1.34a8.103 8.103 0 014.38-3.34zM7.08 17.11l-1.14.1A7.938 7.938 0 014 12c0-.12.01-.23.02-.35l1-.73 1.38.48 1.46 4.34-.78 1.37zm7.42 2.48c-.79.26-1.63.41-2.5.41s-1.71-.15-2.5-.41l-.69-1.49.64-1.1h5.11l.64 1.11-.7 1.48zM14.27 15H9.73l-1.35-4.02L12 8.44l3.63 2.54L14.27 15zm3.79 2.21l-1.14-.1-.79-1.37 1.46-4.34 1.39-.47 1 .73c.01.11.02.22.02.34 0 1.99-.73 3.81-1.94 5.21z\"}}]})(props);\n};\nexport function MdOutlineSportsTennis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.52 2.49C17.18.15 12.9.62 9.97 3.55c-1.6 1.6-2.52 3.87-2.54 5.46-.02 1.58.26 3.89-1.35 5.5l-4.24 4.24 1.42 1.42 4.24-4.24c1.61-1.61 3.92-1.33 5.5-1.35s3.86-.94 5.46-2.54c2.92-2.93 3.4-7.21 1.06-9.55zm-9.2 9.19c-1.53-1.53-1.05-4.61 1.06-6.72s5.18-2.59 6.72-1.06c1.53 1.53 1.05 4.61-1.06 6.72s-5.18 2.59-6.72 1.06zM18 17c.53 0 1.04.21 1.41.59.78.78.78 2.05 0 2.83-.37.37-.88.58-1.41.58s-1.04-.21-1.41-.59c-.78-.78-.78-2.05 0-2.83.37-.37.88-.58 1.41-.58m0-2a3.998 3.998 0 00-2.83 6.83c.78.78 1.81 1.17 2.83 1.17a3.998 3.998 0 002.83-6.83A3.998 3.998 0 0018 15z\"}}]})(props);\n};\nexport function MdOutlineSportsVolleyball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 2.07c3.07.38 5.57 2.52 6.54 5.36L13 5.65V4.07zM8 5.08c1.18-.69 3.33-1.06 3-1.02v7.35l-3 1.73V5.08zM4.63 15.1c-.4-.96-.63-2-.63-3.1 0-2.02.76-3.86 2-5.27v7.58l-1.37.79zm1.01 1.73L12 13.15l3 1.73-6.98 4.03a7.794 7.794 0 01-2.38-2.08zM12 20c-.54 0-1.07-.06-1.58-.16l6.58-3.8 1.36.78C16.9 18.75 14.6 20 12 20zm1-8.58V7.96l7 4.05c0 1.1-.23 2.14-.63 3.09L13 11.42z\"}}]})(props);\n};\nexport function MdOutlineSports (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.23 6c-1.66 0-3.22.66-4.36 1.73C6.54 6.73 5.61 6 4.5 6a2.5 2.5 0 000 5c.21 0 .41-.03.61-.08-.05.25-.09.51-.1.78a6.006 6.006 0 006.68 6.27c2.55-.28 4.68-2.26 5.19-4.77.15-.71.15-1.4.06-2.06-.09-.6.38-1.13.99-1.13H22V6H11.23zM4.5 9c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zm6.5 6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function MdOutlineSurfing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 23c-1.03 0-2.06-.25-3-.75-1.89 1-4.11 1-6 0-1.89 1-4.11 1-6 0-.95.5-1.97.75-3 .75H2v-2h1c1.04 0 2.08-.35 3-1 1.83 1.3 4.17 1.3 6 0 1.83 1.3 4.17 1.3 6 0 .91.65 1.96 1 3 1h1v2h-1zM17 1.5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-2.57 6.98L12.18 10 16 13v3.84c.53.38 1.03.78 1.49 1.17-.68.58-1.55.99-2.49.99-1.2 0-2.27-.66-3-1.5-.73.84-1.8 1.5-3 1.5-.33 0-.65-.05-.96-.14C5.19 16.9 3 14.72 3 13.28 3 12.25 4.01 12 4.85 12c.98 0 2.28.31 3.7.83l-.53-3.1c-.11-.67.18-1.38.78-1.79l2.15-1.45-2-.37-2.82 1.93L5 6.4 8.5 4l5.55 1.03c.45.09.93.37 1.22.89l.88 1.55A5.007 5.007 0 0020.5 10v2a7.01 7.01 0 01-6.07-3.52zM10.3 11.1l.44 2.65c.92.42 2.48 1.27 3.26 1.75V14l-3.7-2.9z\"}}]})(props);\n};\nexport function MdOutlineSwitchAccount (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3zm0-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm6-5H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-9.31 14a5.977 5.977 0 016.62 0h-6.62zm9.31-.27C18.53 14.06 16.4 13 14 13s-4.53 1.06-6 2.73V4h12v11.73z\"}}]})(props);\n};\nexport function MdOutlineThumbDownAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.58-6.59c.37-.36.59-.86.59-1.41V5c0-1.1-.9-2-2-2zm0 12l-4.34 4.34L11.77 14H3v-2l3-7h9v10zm4-12h4v12h-4z\"}}]})(props);\n};\nexport function MdOutlineThumbUpAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\",\"opacity\":\".87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2zm0 4l-3 7H9V9l4.34-4.34L12.23 10H21v2zM1 9h4v12H1z\"}}]})(props);\n};\nexport function MdOutlineTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c1.93 0 3.5 1.57 3.5 3.5S13.93 15 12 15s-3.5-1.57-3.5-3.5S10.07 8 12 8zm4.53.38l3.97-3.96V7h2V1h-6v2h2.58l-3.97 3.97C14.23 6.36 13.16 6 12 6s-2.23.36-3.11.97l-.65-.65 1.41-1.41-1.41-1.42L6.82 4.9 4.92 3H7.5V1h-6v6h2V4.42l1.91 1.9-1.42 1.42L5.4 9.15l1.41-1.41.65.65c-.6.88-.96 1.95-.96 3.11a5.5 5.5 0 004.5 5.41V19H9v2h2v2h2v-2h2v-2h-2v-2.09a5.5 5.5 0 003.53-8.53z\"}}]})(props);\n};\nexport function MdOutlineTravelExplore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.3 16.9c.4-.7.7-1.5.7-2.4 0-2.5-2-4.5-4.5-4.5S11 12 11 14.5s2 4.5 4.5 4.5c.9 0 1.7-.3 2.4-.7l3.2 3.2 1.4-1.4-3.2-3.2zm-3.8.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5zM12 20v2C6.48 22 2 17.52 2 12S6.48 2 12 2c4.84 0 8.87 3.44 9.8 8h-2.07A8 8 0 0015 4.59V5c0 1.1-.9 2-2 2h-2v2c0 .55-.45 1-1 1H8v2h2v3H9l-4.79-4.79C4.08 10.79 4 11.38 4 12c0 4.41 3.59 8 8 8z\"}}]})(props);\n};\nexport function MdOutlineWaterDrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-5.33 4.55-8 8.48-8 11.8 0 4.98 3.8 8.2 8 8.2s8-3.22 8-8.2c0-3.32-2.67-7.25-8-11.8zm0 18c-3.35 0-6-2.57-6-6.2 0-2.34 1.95-5.44 6-9.14 4.05 3.7 6 6.79 6 9.14 0 3.63-2.65 6.2-6 6.2zm-4.17-6c.37 0 .67.26.74.62.41 2.22 2.28 2.98 3.64 2.87.43-.02.79.32.79.75 0 .4-.32.73-.72.75-2.13.13-4.62-1.09-5.19-4.12a.75.75 0 01.74-.87z\"}}]})(props);\n};\nexport function MdOutlineWavingHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.03 4.95L3.49 8.49c-3.32 3.32-3.32 8.7 0 12.02s8.7 3.32 12.02 0l6.01-6.01a2.517 2.517 0 00-.39-3.86l.39-.39c.97-.97.97-2.56 0-3.54-.16-.16-.35-.3-.54-.41a2.497 2.497 0 00-3.72-3.05 2.517 2.517 0 00-3.88-.42l-2.51 2.51a2.493 2.493 0 00-3.84-.39zm1.41 1.42c.2-.2.51-.2.71 0 .2.2.2.51 0 .71l-3.18 3.18a3 3 0 010 4.24l1.41 1.41a5.004 5.004 0 001.12-5.36l6.3-6.3c.2-.2.51-.2.71 0s.2.51 0 .71l-4.6 4.6 1.41 1.41 6.01-6.01c.2-.2.51-.2.71 0 .2.2.2.51 0 .71l-6.01 6.01 1.41 1.41 4.95-4.95c.2-.2.51-.2.71 0 .2.2.2.51 0 .71l-5.66 5.66 1.41 1.41 3.54-3.54c.2-.2.51-.2.71 0 .2.2.2.51 0 .71l-6 6.01c-2.54 2.54-6.65 2.54-9.19 0s-2.54-6.65 0-9.19l3.53-3.54zM23 17c0 3.31-2.69 6-6 6v-1.5c2.48 0 4.5-2.02 4.5-4.5H23zM1 7c0-3.31 2.69-6 6-6v1.5C4.52 2.5 2.5 4.52 2.5 7H1z\"}}]})(props);\n};\nexport function MdOutlineWhatshot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.57 13.16c-1.36.28-2.17 1.16-2.17 2.41 0 1.34 1.11 2.42 2.49 2.42 2.05 0 3.71-1.66 3.71-3.71 0-1.07-.15-2.12-.46-3.12-.79 1.07-2.2 1.72-3.57 2zM13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM12 20c-3.31 0-6-2.69-6-6 0-1.53.3-3.04.86-4.43a5.582 5.582 0 003.97 1.63c2.66 0 4.75-1.83 5.28-4.43A14.77 14.77 0 0118 14c0 3.31-2.69 6-6 6z\"}}]})(props);\n};\nexport function MdOutlineCheckBoxOutlineBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"}}]})(props);\n};\nexport function MdOutlineCheckBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z\"}}]})(props);\n};\nexport function MdOutlineIndeterminateCheckBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM7 11h10v2H7z\"}}]})(props);\n};\nexport function MdOutlineRadioButtonChecked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"}}]})(props);\n};\nexport function MdOutlineRadioButtonUnchecked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"}}]})(props);\n};\nexport function MdOutlineStarBorderPurple500 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"}}]})(props);\n};\nexport function MdOutlineStarBorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"}}]})(props);\n};\nexport function MdOutlineStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"}}]})(props);\n};\nexport function MdOutlineStarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\"}}]})(props);\n};\nexport function MdOutlineStarPurple500 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27z\"}}]})(props);\n};\nexport function MdOutlineStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fill\":\"none\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27z\"}}]})(props);\n};\nexport function MdOutlineToggleOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\nexport function MdOutlineToggleOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zm0-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"}}]})(props);\n};\n","// For all locales added\r\n// their relative time formatter messages will be stored here.\r\nconst localesData = {}\r\n\r\nexport function getLocaleData(locale) {\r\n\treturn localesData[locale]\r\n}\r\n\r\nexport function addLocaleData(localeData) {\r\n\tif (!localeData) {\r\n\t\tthrow new Error('[javascript-time-ago] No locale data passed.')\r\n\t}\r\n\t// This locale data is stored in a global variable\r\n\t// and later used when calling `.format(time)`.\r\n\tlocalesData[localeData.locale] = localeData\r\n}","import {\r\n resolveLocale as resolveLocaleForData\r\n} from './LocaleDataStore'\r\n\r\n/**\r\n * Resolves a locale to a supported one (if any).\r\n * @param {string} locale\r\n * @param {Object} [options] - An object that may have the following property:\r\n * @param {string} [options.localeMatcher=\"lookup\"] - The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\". Currently only \"lookup\" is supported.\r\n * @return {string} [locale]\r\n * @example\r\n * // Returns \"sr\"\r\n * resolveLocale(\"sr-Cyrl-BA\")\r\n * // Returns `undefined`\r\n * resolveLocale(\"xx-Latn\")\r\n */\r\nexport default function resolveLocale(locale, options = {}) {\r\n const localeMatcher = options.localeMatcher || 'lookup'\r\n switch (localeMatcher) {\r\n case 'lookup':\r\n return resolveLocaleLookup(locale)\r\n // \"best fit\" locale matching is not supported.\r\n // https://github.com/catamphetamine/relative-time-format/issues/2\r\n case 'best fit':\r\n // return resolveLocaleBestFit(locale)\r\n return resolveLocaleLookup(locale)\r\n default:\r\n throw new RangeError(`Invalid \"localeMatcher\" option: ${localeMatcher}`)\r\n }\r\n}\r\n\r\n/**\r\n * Resolves a locale to a supported one (if any).\r\n * Starts from the most specific locale and gradually\r\n * falls back to less specific ones.\r\n * This is a basic implementation of the \"lookup\" algorithm.\r\n * https://tools.ietf.org/html/rfc4647#section-3.4\r\n * @param {string} locale\r\n * @return {string} [locale]\r\n * @example\r\n * // Returns \"sr\"\r\n * resolveLocaleLookup(\"sr-Cyrl-BA\")\r\n * // Returns `undefined`\r\n * resolveLocaleLookup(\"xx-Latn\")\r\n */\r\nexport function resolveLocaleLookup(locale) {\r\n const resolvedLocale = resolveLocaleForData(locale)\r\n if (resolvedLocale) {\r\n return resolvedLocale\r\n }\r\n // `sr-Cyrl-BA` -> `sr-Cyrl` -> `sr`.\r\n const parts = locale.split('-')\r\n while (locale.length > 1) {\r\n parts.pop()\r\n locale = parts.join('-')\r\n const resolvedLocale = resolveLocaleForData(locale)\r\n if (resolvedLocale) {\r\n return resolvedLocale\r\n }\r\n }\r\n}\r\n","// (this file was autogenerated by `generate-locales`)\n// \"plural rules\" functions are not stored in locale JSON files because they're not strings.\n// This file isn't big — it's about 5 kilobytes in size (minified).\n// Alternatively, the pluralization rules for each locale could be stored\n// in their JSON files in a non-parsed form and later parsed via `make-plural` library.\n// But `make-plural` library itself is relatively big in size:\n// `make-plural.min.js` is about 6 kilobytes (https://unpkg.com/make-plural/).\n// So, it's more practical to bypass runtime `make-plural` pluralization rules compilation\n// and just include the already compiled pluarlization rules for all locales in the library code.\n\nvar $ = {\n\taf: (n) => n == 1 ? 'one' : 'other',\n\tam: (n) => n >= 0 && n <= 1 ? 'one' : 'other',\n\tar: (n) => {\n\t\tconst s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n\t\treturn n == 0 ? 'zero'\n\t\t\t: n == 1 ? 'one'\n\t\t\t: n == 2 ? 'two'\n\t\t\t: (n100 >= 3 && n100 <= 10) ? 'few'\n\t\t\t: (n100 >= 11 && n100 <= 99) ? 'many'\n\t\t\t: 'other';\n\t},\n\tast: (n) => {\n\t\tconst s = String(n).split('.'), v0 = !s[1];\n\t\treturn n == 1 && v0 ? 'one' : 'other';\n\t},\n\tbe: (n) => {\n\t\tconst s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n\t\treturn n10 == 1 && n100 != 11 ? 'one'\n\t\t\t: (n10 >= 2 && n10 <= 4) && (n100 < 12 || n100 > 14) ? 'few'\n\t\t\t: t0 && n10 == 0 || (n10 >= 5 && n10 <= 9) || (n100 >= 11 && n100 <= 14) ? 'many'\n\t\t\t: 'other';\n\t},\n\tbr: (n) => {\n\t\tconst s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), n1000000 = t0 && s[0].slice(-6);\n\t\treturn n10 == 1 && n100 != 11 && n100 != 71 && n100 != 91 ? 'one'\n\t\t\t: n10 == 2 && n100 != 12 && n100 != 72 && n100 != 92 ? 'two'\n\t\t\t: ((n10 == 3 || n10 == 4) || n10 == 9) && (n100 < 10 || n100 > 19) && (n100 < 70 || n100 > 79) && (n100 < 90 || n100 > 99) ? 'few'\n\t\t\t: n != 0 && t0 && n1000000 == 0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tbs: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n\t\treturn v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n\t\t\t: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n\t\t\t: 'other';\n\t},\n\tceb: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);\n\t\treturn v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n\t},\n\tcs: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1];\n\t\treturn n == 1 && v0 ? 'one'\n\t\t\t: (i >= 2 && i <= 4) && v0 ? 'few'\n\t\t\t: !v0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tcy: (n) => n == 0 ? 'zero'\n\t\t\t: n == 1 ? 'one'\n\t\t\t: n == 2 ? 'two'\n\t\t\t: n == 3 ? 'few'\n\t\t\t: n == 6 ? 'many'\n\t\t\t: 'other',\n\tda: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], t0 = Number(s[0]) == n;\n\t\treturn n == 1 || !t0 && (i == 0 || i == 1) ? 'one' : 'other';\n\t},\n\tdsb: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);\n\t\treturn v0 && i100 == 1 || f100 == 1 ? 'one'\n\t\t\t: v0 && i100 == 2 || f100 == 2 ? 'two'\n\t\t\t: v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'\n\t\t\t: 'other';\n\t},\n\tdz: (n) => 'other',\n\tes: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n\t\treturn n == 1 ? 'one'\n\t\t\t: i != 0 && i1000000 == 0 && v0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tff: (n) => n >= 0 && n < 2 ? 'one' : 'other',\n\tfr: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n\t\treturn n >= 0 && n < 2 ? 'one'\n\t\t\t: i != 0 && i1000000 == 0 && v0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tga: (n) => {\n\t\tconst s = String(n).split('.'), t0 = Number(s[0]) == n;\n\t\treturn n == 1 ? 'one'\n\t\t\t: n == 2 ? 'two'\n\t\t\t: (t0 && n >= 3 && n <= 6) ? 'few'\n\t\t\t: (t0 && n >= 7 && n <= 10) ? 'many'\n\t\t\t: 'other';\n\t},\n\tgd: (n) => {\n\t\tconst s = String(n).split('.'), t0 = Number(s[0]) == n;\n\t\treturn (n == 1 || n == 11) ? 'one'\n\t\t\t: (n == 2 || n == 12) ? 'two'\n\t\t\t: ((t0 && n >= 3 && n <= 10) || (t0 && n >= 13 && n <= 19)) ? 'few'\n\t\t\t: 'other';\n\t},\n\the: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1);\n\t\treturn n == 1 && v0 ? 'one'\n\t\t\t: i == 2 && v0 ? 'two'\n\t\t\t: v0 && (n < 0 || n > 10) && t0 && n10 == 0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tis: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], t0 = Number(s[0]) == n, i10 = i.slice(-1), i100 = i.slice(-2);\n\t\treturn t0 && i10 == 1 && i100 != 11 || !t0 ? 'one' : 'other';\n\t},\n\tit: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n\t\treturn n == 1 && v0 ? 'one'\n\t\t\t: i != 0 && i1000000 == 0 && v0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tksh: (n) => n == 0 ? 'zero'\n\t\t\t: n == 1 ? 'one'\n\t\t\t: 'other',\n\tlt: (n) => {\n\t\tconst s = String(n).split('.'), f = s[1] || '', t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n\t\treturn n10 == 1 && (n100 < 11 || n100 > 19) ? 'one'\n\t\t\t: (n10 >= 2 && n10 <= 9) && (n100 < 11 || n100 > 19) ? 'few'\n\t\t\t: f != 0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tlv: (n) => {\n\t\tconst s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);\n\t\treturn t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'\n\t\t\t: n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'\n\t\t\t: 'other';\n\t},\n\tmk: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n\t\treturn v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : 'other';\n\t},\n\tmt: (n) => {\n\t\tconst s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n\t\treturn n == 1 ? 'one'\n\t\t\t: n == 0 || (n100 >= 2 && n100 <= 10) ? 'few'\n\t\t\t: (n100 >= 11 && n100 <= 19) ? 'many'\n\t\t\t: 'other';\n\t},\n\tpa: (n) => (n == 0 || n == 1) ? 'one' : 'other',\n\tpl: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n\t\treturn n == 1 && v0 ? 'one'\n\t\t\t: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n\t\t\t: v0 && i != 1 && (i10 == 0 || i10 == 1) || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 12 && i100 <= 14) ? 'many'\n\t\t\t: 'other';\n\t},\n\tpt: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n\t\treturn (i == 0 || i == 1) ? 'one'\n\t\t\t: i != 0 && i1000000 == 0 && v0 ? 'many'\n\t\t\t: 'other';\n\t},\n\tro: (n) => {\n\t\tconst s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n\t\treturn n == 1 && v0 ? 'one'\n\t\t\t: !v0 || n == 0 || (n100 >= 2 && n100 <= 19) ? 'few'\n\t\t\t: 'other';\n\t},\n\tru: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n\t\treturn v0 && i10 == 1 && i100 != 11 ? 'one'\n\t\t\t: v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n\t\t\t: v0 && i10 == 0 || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 11 && i100 <= 14) ? 'many'\n\t\t\t: 'other';\n\t},\n\tse: (n) => n == 1 ? 'one'\n\t\t\t: n == 2 ? 'two'\n\t\t\t: 'other',\n\tsi: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], f = s[1] || '';\n\t\treturn (n == 0 || n == 1) || i == 0 && f == 1 ? 'one' : 'other';\n\t},\n\tsl: (n) => {\n\t\tconst s = String(n).split('.'), i = s[0], v0 = !s[1], i100 = i.slice(-2);\n\t\treturn v0 && i100 == 1 ? 'one'\n\t\t\t: v0 && i100 == 2 ? 'two'\n\t\t\t: v0 && (i100 == 3 || i100 == 4) || !v0 ? 'few'\n\t\t\t: 'other';\n\t}\n}\n\n$.as = $.am\n$.az = $.af\n$.bg = $.af\n$.bn = $.am\n$.ca = $.ast\n$.ce = $.af\n$.chr = $.af\n$.de = $.ast\n$.ee = $.af\n$.el = $.af\n$.en = $.ast\n$.et = $.ast\n$.eu = $.af\n$.fa = $.am\n$.fi = $.ast\n$.fil = $.ceb\n$.fo = $.af\n$.fur = $.af\n$.fy = $.ast\n$.gl = $.ast\n$.gu = $.am\n$.ha = $.af\n$.hi = $.am\n$.hr = $.bs\n$.hsb = $.dsb\n$.hu = $.af\n$.hy = $.ff\n$.ia = $.ast\n$.id = $.dz\n$.ig = $.dz\n$.ja = $.dz\n$.jgo = $.af\n$.jv = $.dz\n$.ka = $.af\n$.kea = $.dz\n$.kk = $.af\n$.kl = $.af\n$.km = $.dz\n$.kn = $.am\n$.ko = $.dz\n$.ku = $.af\n$.ky = $.af\n$.lb = $.af\n$.lkt = $.dz\n$.lo = $.dz\n$.ml = $.af\n$.mn = $.af\n$.mr = $.af\n$.ms = $.dz\n$.my = $.dz\n$.nb = $.af\n$.ne = $.af\n$.nl = $.ast\n$.nn = $.af\n$.no = $.af\n$.or = $.af\n$.pcm = $.am\n$.ps = $.af\n$.rm = $.af\n$.sah = $.dz\n$.sc = $.ast\n$.sd = $.af\n$.sk = $.cs\n$.so = $.af\n$.sq = $.af\n$.sr = $.bs\n$.su = $.dz\n$.sv = $.ast\n$.sw = $.ast\n$.ta = $.af\n$.te = $.af\n$.th = $.dz\n$.ti = $.pa\n$.tk = $.af\n$.to = $.dz\n$.tr = $.af\n$.ug = $.af\n$.uk = $.ru\n$.ur = $.ast\n$.uz = $.af\n$.vi = $.dz\n$.wae = $.af\n$.wo = $.dz\n$.yi = $.ast\n$.yo = $.dz\n$.yue = $.dz\n$.zh = $.dz\n$.zu = $.am\n\nexport default $","/**\r\n * Returns a `locale` for which a function exists in `./PluralRuleFunctions.js`.\r\n * @param {string} locale\r\n * @return {string}\r\n * @example\r\n * getPluralRulesLocale(\"ru-RU-Cyrl\") // Returns \"ru\".\r\n */\r\nexport default function getPluralRulesLocale(locale) {\r\n\t// \"pt\" language is the only one having different pluralization rules\r\n\t// for the one (\"pt\") (Portuguese) locale and the other (\"pt-PT\") (European Portuguese).\r\n\t// http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html\r\n\t// (see the entries for \"pt\" and \"pt_PT\" there)\r\n\tif (locale === 'pt-PT') {\r\n\t\treturn locale\r\n\t}\r\n\treturn getLanguageFromLanguageTag(locale)\r\n}\r\n\r\n/**\r\n * Extracts language from an IETF BCP 47 language tag.\r\n * @param {string} languageTag - IETF BCP 47 language tag.\r\n * @return {string}\r\n * @example\r\n * // Returns \"he\"\r\n * getLanguageFromLanguageTag(\"he-IL-u-ca-hebrew-tz-jeruslm\")\r\n * // Returns \"ar\"\r\n * getLanguageFromLanguageTag(\"ar-u-nu-latn\")\r\n */\r\nconst LANGUAGE_REG_EXP = /^([a-z0-9]+)/i\r\nfunction getLanguageFromLanguageTag(languageTag) {\r\n\tconst match = languageTag.match(LANGUAGE_REG_EXP)\r\n\tif (!match) {\r\n\t\tthrow new TypeError(`Invalid locale: ${languageTag}`)\r\n\t}\r\n\treturn match[1]\r\n}\r\n","// Importing `PluralRule` polyfill from a separate package\r\n// results in a bundle that is larger by 1kB for some reason.\r\n// export { default as default } from 'intl-plural-rules-polyfill/cardinal'\r\n\r\nimport PluralRuleFunctions from \"./PluralRuleFunctions\"\r\nimport getPluralRulesLocale from \"./getPluralRulesLocale\"\r\n\r\n/**\r\n * `Intl.PluralRules` polyfill.\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules\r\n */\r\nexport default class PluralRules {\r\n\tconstructor(locale, options) {\r\n\t\tconst locales = PluralRules.supportedLocalesOf(locale)\r\n\t\tif (locales.length === 0) {\r\n\t\t\tthrow new RangeError(\"Unsupported locale: \" + locale)\r\n\t\t}\r\n\t\tif (options && options.type !== \"cardinal\") {\r\n\t\t\tthrow new RangeError(\"Only \\\"cardinal\\\" \\\"type\\\" is supported\")\r\n\t\t}\r\n\t\tthis.$ = PluralRuleFunctions[getPluralRulesLocale(locales[0])]\r\n\t}\r\n\tselect(number) {\r\n\t\treturn this.$(number)\r\n\t}\r\n\tstatic supportedLocalesOf(locales) {\r\n\t\tif (typeof locales === \"string\") {\r\n\t\t\tlocales = [locales]\r\n\t\t}\r\n\t\treturn locales.filter(locale => PluralRuleFunctions[getPluralRulesLocale(locale)])\r\n\t}\r\n}","import {\r\n getDefaultLocale,\r\n setDefaultLocale,\r\n getLocaleData,\r\n addLocaleData\r\n} from './LocaleDataStore'\r\n\r\nimport resolveLocale from './resolveLocale'\r\nimport PluralRules from './PluralRules'\r\n// Importing `PluralRule` polyfill from a separate package\r\n// results in a bundle that is larger by 1kB for some reason.\r\n// import PluralRules from 'intl-plural-rules-polyfill/cardinal'\r\n\r\n// Valid time units.\r\nexport const UNITS = [\r\n \"second\",\r\n \"minute\",\r\n \"hour\",\r\n \"day\",\r\n \"week\",\r\n \"month\",\r\n \"quarter\",\r\n \"year\"\r\n]\r\n\r\n// Valid values for the `numeric` option.\r\nconst NUMERIC_VALUES = [\r\n \"auto\",\r\n \"always\"\r\n]\r\n\r\n// Valid values for the `style` option.\r\nconst STYLE_VALUES = [\r\n \"long\",\r\n \"short\",\r\n \"narrow\"\r\n]\r\n\r\n// Valid values for the `localeMatcher` option.\r\nconst LOCALE_MATCHER_VALUES = [\r\n \"lookup\",\r\n \"best fit\"\r\n]\r\n\r\n/**\r\n * Polyfill for `Intl.RelativeTimeFormat` proposal.\r\n * https://github.com/tc39/proposal-intl-relative-time\r\n * https://github.com/tc39/proposal-intl-relative-time/issues/55\r\n */\r\nexport default class RelativeTimeFormat {\r\n numeric = \"always\"\r\n style = \"long\"\r\n localeMatcher = \"lookup\"\r\n\r\n /**\r\n * @param {(string|string[])} [locales] - Preferred locales (or locale).\r\n * @param {Object} [options] - Formatting options.\r\n * @param {string} [options.style=\"long\"] - One of: \"long\", \"short\", \"narrow\".\r\n * @param {string} [options.numeric=\"always\"] - (Version >= 2) One of: \"always\", \"auto\".\r\n * @param {string} [options.localeMatcher=\"lookup\"] - One of: \"lookup\", \"best fit\". Currently only \"lookup\" is supported.\r\n * @param {boolean} [options.styleFallback] - If \"style\" is missing from locale data then fall back to an existing one (for example, \"long\"). Is used in `javascript-time-ago`.\r\n */\r\n constructor(locales = [], options = {}) {\r\n const {\r\n numeric,\r\n style,\r\n styleFallback,\r\n localeMatcher\r\n } = options\r\n\r\n // Set `numeric` option.\r\n if (numeric !== undefined) {\r\n if (NUMERIC_VALUES.indexOf(numeric) < 0) {\r\n throw new RangeError(`Invalid \"numeric\" option: ${numeric}`)\r\n }\r\n this.numeric = numeric\r\n }\r\n\r\n // Set `style` option.\r\n if (style !== undefined) {\r\n if (STYLE_VALUES.indexOf(style) < 0 && !styleFallback) {\r\n throw new RangeError(`Invalid \"style\" option: ${style}`)\r\n }\r\n this.style = style\r\n }\r\n\r\n // Set `localeMatcher` option.\r\n if (localeMatcher !== undefined) {\r\n if (LOCALE_MATCHER_VALUES.indexOf(localeMatcher) < 0) {\r\n throw new RangeError(`Invalid \"localeMatcher\" option: ${localeMatcher}`)\r\n }\r\n this.localeMatcher = localeMatcher\r\n }\r\n\r\n // Set `locale`.\r\n // Convert `locales` to an array.\r\n if (typeof locales === 'string') {\r\n locales = [locales]\r\n }\r\n // Add default locale.\r\n locales.push(getDefaultLocale())\r\n // Choose the most appropriate locale.\r\n this.locale = RelativeTimeFormat.supportedLocalesOf(locales, {\r\n localeMatcher: this.localeMatcher\r\n })[0]\r\n if (!this.locale) {\r\n throw new Error(\"No supported locale was found\")\r\n }\r\n\r\n // Construct an `Intl.PluralRules` instance (polyfill).\r\n if (PluralRules.supportedLocalesOf(this.locale).length > 0) {\r\n this.pluralRules = new PluralRules(this.locale)\r\n } else {\r\n console.warn(`\"${this.locale}\" locale is not supported`)\r\n }\r\n\r\n // Use `Intl.NumberFormat` for formatting numbers (when available).\r\n if (typeof Intl !== 'undefined' && Intl.NumberFormat) {\r\n this.numberFormat = new Intl.NumberFormat(this.locale)\r\n this.numberingSystem = this.numberFormat.resolvedOptions().numberingSystem\r\n } else {\r\n this.numberingSystem = 'latn'\r\n }\r\n\r\n this.locale = resolveLocale(this.locale, {\r\n localeMatcher: this.localeMatcher\r\n })\r\n\r\n // Fall back to another style if `style` is not supported for the `locale`.\r\n if (styleFallback) {\r\n const styles = Object.keys(getLocaleData(this.locale))\r\n for (const style of [this.style, ...STYLE_VALUES, styles[0]]) {\r\n if (styles.indexOf(style) >= 0) {\r\n this.style = style\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Formats time `number` in `units` (either in past or in future).\r\n * @param {number} number - Time interval value.\r\n * @param {string} unit - Time interval measurement unit.\r\n * @return {string}\r\n * @throws {RangeError} If unit is not one of \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\".\r\n * @example\r\n * // Returns \"2 days ago\"\r\n * rtf.format(-2, \"day\")\r\n * // Returns \"in 5 minutes\"\r\n * rtf.format(5, \"minute\")\r\n */\r\n format() {\r\n const [number, unit] = parseFormatArgs(arguments)\r\n return this.getRule(number, unit).replace('{0}', this.formatNumber(Math.abs(number)))\r\n }\r\n\r\n /**\r\n * Formats time `number` in `units` (either in past or in future).\r\n * @param {number} number - Time interval value.\r\n * @param {string} unit - Time interval measurement unit.\r\n * @return {Object[]} The parts (`{ type, value, unit? }`).\r\n * @throws {RangeError} If unit is not one of \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\".\r\n * @example\r\n * // Version 1 (deprecated).\r\n * // Returns [\r\n * // { type: \"literal\", value: \"in \" },\r\n * // { type: \"day\", value: \"100\" },\r\n * // { type: \"literal\", value: \" days\" }\r\n * // ]\r\n * rtf.formatToParts(100, \"day\")\r\n * //\r\n * // Version 2.\r\n * // Returns [\r\n * // { type: \"literal\", value: \"in \" },\r\n * // { type: \"integer\", value: \"100\", unit: \"day\" },\r\n * // { type: \"literal\", value: \" days\" }\r\n * // ]\r\n * rtf.formatToParts(100, \"day\")\r\n */\r\n formatToParts() {\r\n const [number, unit] = parseFormatArgs(arguments)\r\n const rule = this.getRule(number, unit)\r\n const valueIndex = rule.indexOf(\"{0}\")\r\n // \"yesterday\"/\"today\"/\"tomorrow\".\r\n if (valueIndex < 0) {\r\n return [{\r\n type: \"literal\",\r\n value: rule\r\n }]\r\n }\r\n let parts = []\r\n if (valueIndex > 0) {\r\n parts.push({\r\n type: \"literal\",\r\n value: rule.slice(0, valueIndex)\r\n })\r\n }\r\n parts = parts.concat(\r\n this.formatNumberToParts(Math.abs(number))\r\n .map(part => ({ ...part, unit }))\r\n )\r\n if (valueIndex + \"{0}\".length < rule.length - 1) {\r\n parts.push({\r\n type: \"literal\",\r\n value: rule.slice(valueIndex + \"{0}\".length)\r\n })\r\n }\r\n return parts\r\n }\r\n\r\n /**\r\n * Returns formatting rule for `value` in `units` (either in past or in future).\r\n * @param {number} value - Time interval value.\r\n * @param {string} unit - Time interval measurement unit.\r\n * @return {string}\r\n * @throws {RangeError} If unit is not one of \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\".\r\n * @example\r\n * // Returns \"{0} days ago\"\r\n * getRule(-2, \"day\")\r\n */\r\n getRule(value, unit) {\r\n // Get locale-specific time interval formatting rules\r\n // of a given `style` for the given value of measurement `unit`.\r\n //\r\n // E.g.:\r\n //\r\n // ```json\r\n // {\r\n // \"past\": {\r\n // \"one\": \"a second ago\",\r\n // \"other\": \"{0} seconds ago\"\r\n // },\r\n // \"future\": {\r\n // \"one\": \"in a second\",\r\n // \"other\": \"in {0} seconds\"\r\n // }\r\n // }\r\n // ```\r\n //\r\n const unitMessages = getLocaleData(this.locale)[this.style][unit]\r\n // Bundle size optimization technique for styles like\r\n // \"tiny\" in `javascript-time-ago`: \"1m\", \"2h\", \"3d\"...\r\n if (typeof unitMessages === 'string') {\r\n return unitMessages\r\n }\r\n // Special case for \"yesterday\"/\"today\"/\"tomorrow\".\r\n if (this.numeric === \"auto\") {\r\n // \"yesterday\", \"the day before yesterday\", etc.\r\n if (value === -2 || value === -1) {\r\n const message = unitMessages[`previous${value === -1 ? '' : '-' + Math.abs(value)}`]\r\n if (message) {\r\n return message\r\n }\r\n }\r\n // \"tomorrow\", \"the day after tomorrow\", etc.\r\n else if (value === 1 || value === 2) {\r\n const message = unitMessages[`next${value === 1 ? '' : '-' + Math.abs(value)}`]\r\n if (message) {\r\n return message\r\n }\r\n }\r\n // \"today\"\r\n else if (value === 0) {\r\n if (unitMessages.current) {\r\n return unitMessages.current\r\n }\r\n }\r\n }\r\n // Choose either \"past\" or \"future\" based on time `value` sign.\r\n // If there's only \"other\" then it's being collapsed.\r\n // (the resulting bundle size optimization technique)\r\n const pluralizedMessages = unitMessages[isNegative(value) ? \"past\" : \"future\"]\r\n // Bundle size optimization technique for styles like \"narrow\"\r\n // having messages like \"in {0} d.\" or \"{0} d. ago\".\r\n if (typeof pluralizedMessages === \"string\") {\r\n return pluralizedMessages\r\n }\r\n // Quantify `value`.\r\n // There seems to be no such locale in CLDR\r\n // for which \"plural rules\" function is missing.\r\n const quantifier = this.pluralRules && this.pluralRules.select(Math.abs(value)) || 'other'\r\n // \"other\" rule is supposed to be always present.\r\n // If only \"other\" rule is present then \"rules\" is not an object and is a string.\r\n return pluralizedMessages[quantifier] || pluralizedMessages.other\r\n }\r\n\r\n /**\r\n * Formats a number into a string.\r\n * Uses `Intl.NumberFormat` when available.\r\n * @param {number} number\r\n * @return {string}\r\n */\r\n formatNumber(number) {\r\n return this.numberFormat ? this.numberFormat.format(number) : String(number)\r\n }\r\n\r\n /**\r\n * Formats a number into a list of parts.\r\n * Uses `Intl.NumberFormat` when available.\r\n * @param {number} number\r\n * @return {object[]}\r\n */\r\n formatNumberToParts(number) {\r\n // `Intl.NumberFormat.formatToParts()` is not present, for example,\r\n // in Node.js 8.x while `Intl.NumberFormat` itself is present.\r\n return this.numberFormat && this.numberFormat.formatToParts ?\r\n this.numberFormat.formatToParts(number) :\r\n [{\r\n type: \"integer\",\r\n value: this.formatNumber(number)\r\n }]\r\n }\r\n\r\n /**\r\n * Returns a new object with properties reflecting the locale and date and time formatting options computed during initialization of this DateTimeFormat object.\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/resolvedOptions\r\n * @return {Object}\r\n */\r\n resolvedOptions() {\r\n return {\r\n locale: this.locale,\r\n style: this.style,\r\n numeric: this.numeric,\r\n numberingSystem: this.numberingSystem\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Returns an array containing those of the provided locales\r\n * that are supported in collation without having to fall back\r\n * to the runtime's default locale.\r\n * @param {(string|string[])} locale - A string with a BCP 47 language tag, or an array of such strings. For the general form of the locales argument, see the Intl page.\r\n * @param {Object} [options] - An object that may have the following property:\r\n * @param {string} [options.localeMatcher=\"lookup\"] - The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\". Currently only \"lookup\" is supported.\r\n * @return {string[]} An array of strings representing a subset of the given locale tags that are supported in collation without having to fall back to the runtime's default locale.\r\n * @example\r\n * var locales = ['ban', 'id-u-co-pinyin', 'es-PY']\r\n * var options = { localeMatcher: 'lookup' }\r\n * // Returns [\"id\", \"es-PY\"]\r\n * Intl.RelativeTimeFormat.supportedLocalesOf(locales, options)\r\n */\r\nRelativeTimeFormat.supportedLocalesOf = function(locales, options = {}) {\r\n // Convert `locales` to an array.\r\n if (typeof locales === 'string') {\r\n locales = [locales]\r\n } else if (!Array.isArray(locales)) {\r\n throw new TypeError('Invalid \"locales\" argument')\r\n }\r\n return locales.filter(locale => resolveLocale(locale, options))\r\n}\r\n\r\n/**\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n */\r\nRelativeTimeFormat.addLocale = addLocaleData\r\n\r\n/**\r\n * Sets default locale.\r\n * @param {string} locale\r\n */\r\nRelativeTimeFormat.setDefaultLocale = setDefaultLocale\r\n\r\n/**\r\n * Gets default locale.\r\n * @return {string} locale\r\n */\r\nRelativeTimeFormat.getDefaultLocale = getDefaultLocale\r\n\r\n/**\r\n * Export `Intl.PluralRules` just in case it's used somewhere else.\r\n */\r\nRelativeTimeFormat.PluralRules = PluralRules\r\n\r\n// The specification allows units to be in plural form.\r\n// Convert plural to singular.\r\n// Example: \"seconds\" -> \"second\".\r\nconst UNIT_ERROR = 'Invalid \"unit\" argument'\r\nfunction parseUnit(unit) {\r\n if (typeof unit === 'symbol') {\r\n throw new TypeError(UNIT_ERROR)\r\n }\r\n if (typeof unit !== 'string') {\r\n throw new RangeError(`${UNIT_ERROR}: ${unit}`)\r\n }\r\n if (unit[unit.length - 1] === 's') {\r\n unit = unit.slice(0, unit.length - 1)\r\n }\r\n if (UNITS.indexOf(unit) < 0) {\r\n throw new RangeError(`${UNIT_ERROR}: ${unit}`)\r\n }\r\n return unit\r\n}\r\n\r\n// Converts `value` to a `Number`.\r\n// The specification allows value to be a non-number.\r\n// For example, \"-0\" is supposed to be treated as `-0`.\r\n// Also checks if `value` is a finite number.\r\nconst NUMBER_ERROR = 'Invalid \"number\" argument'\r\nfunction parseNumber(value) {\r\n value = Number(value)\r\n if (Number.isFinite) {\r\n if (!Number.isFinite(value)) {\r\n throw new RangeError(`${NUMBER_ERROR}: ${value}`)\r\n }\r\n }\r\n return value\r\n}\r\n\r\n/**\r\n * Tells `0` from `-0`.\r\n * https://stackoverflow.com/questions/7223359/are-0-and-0-the-same\r\n * @param {number} number\r\n * @return {Boolean}\r\n * @example\r\n * isNegativeZero(0); // false\r\n * isNegativeZero(-0); // true\r\n */\r\nfunction isNegativeZero(number) {\r\n return 1 / number === -Infinity\r\n}\r\n\r\nfunction isNegative(number) {\r\n return number < 0 || number === 0 && isNegativeZero(number)\r\n}\r\n\r\nfunction parseFormatArgs(args) {\r\n if (args.length < 2) {\r\n throw new TypeError(`\"unit\" argument is required`)\r\n }\r\n return [\r\n parseNumber(args[0]),\r\n parseUnit(args[1])\r\n ]\r\n}","/**\r\n * A basic in-memory cache.\r\n *\r\n * import Cache from 'javascript-time-ago/Cache'\r\n * const cache = new Cache()\r\n * const object = cache.get('key1', 'key2', ...) || cache.put('key1', 'key2', ..., createObject())\r\n */\r\nexport default class Cache {\r\n\tcache = {}\r\n\r\n\tget(...keys) {\r\n\t\tlet cache = this.cache\r\n\t\tfor (const key of keys) {\r\n\t\t\tif (typeof cache !== 'object') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tcache = cache[key]\r\n\t\t}\r\n\t\treturn cache\r\n\t}\r\n\r\n\tput(...keys) {\r\n\t\tconst value = keys.pop()\r\n\t\tconst lastKey = keys.pop()\r\n\t\tlet cache = this.cache\r\n\t\tfor (const key of keys) {\r\n\t\t\tif (typeof cache[key] !== 'object') {\r\n\t\t\t\tcache[key] = {}\r\n\t\t\t}\r\n\t\t\tcache = cache[key]\r\n\t\t}\r\n\t\treturn cache[lastKey] = value\r\n\t}\r\n}","/**\r\n * Chooses the most appropriate locale\r\n * (one of the registered ones)\r\n * based on the list of preferred `locales` supplied by the user.\r\n *\r\n * @param {string[]} locales - the list of preferable locales (in [IETF format](https://en.wikipedia.org/wiki/IETF_language_tag)).\r\n * @param {Function} isLocaleDataAvailable - tests if a locale is available.\r\n *\r\n * @returns {string} The most suitable locale.\r\n *\r\n * @example\r\n * // Returns 'en'\r\n * chooseLocale(['en-US'], undefined, (locale) => locale === 'ru' || locale === 'en')\r\n */\r\nexport default function chooseLocale(locales, isLocaleDataAvailable) {\r\n\t// This is not an intelligent algorithm,\r\n\t// but it will do for this library's case.\r\n\t// `sr-Cyrl-BA` -> `sr-Cyrl` -> `sr`.\r\n\tfor (let locale of locales) {\r\n\t\tif (isLocaleDataAvailable(locale)) {\r\n\t\t\treturn locale\r\n\t\t}\r\n\t\tconst parts = locale.split('-')\r\n\t\twhile (parts.length > 1) {\r\n\t\t\tparts.pop()\r\n\t\t\tlocale = parts.join('-')\r\n\t\t\tif (isLocaleDataAvailable(locale)) {\r\n\t\t\t\treturn locale\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthrow new Error(`No locale data has been registered for any of the locales: ${locales.join(', ')}`)\r\n}\r\n\r\n/**\r\n * Whether can use `Intl.DateTimeFormat` for these `locales`.\r\n * Returns the first suitable one.\r\n * @param {(string|string[])} locales\r\n * @return {?string} The first locale that can be used.\r\n */\r\nexport function intlDateTimeFormatSupportedLocale(locales) {\r\n\t/* istanbul ignore else */\r\n\tif (intlDateTimeFormatSupported()) {\r\n\t\treturn Intl.DateTimeFormat.supportedLocalesOf(locales)[0]\r\n\t}\r\n}\r\n\r\n/**\r\n * Whether can use `Intl.DateTimeFormat`.\r\n * @return {boolean}\r\n */\r\nexport function intlDateTimeFormatSupported() {\r\n\t// Babel transforms `typeof` into some \"branches\"\r\n\t// so istanbul will show this as \"branch not covered\".\r\n\t/* istanbul ignore next */\r\n\tconst isIntlAvailable = typeof Intl === 'object'\r\n\treturn isIntlAvailable && typeof Intl.DateTimeFormat === 'function'\r\n}\r\n","export default function isStyleObject(object) {\r\n\treturn isObject(object) && (\r\n\t\tArray.isArray(object.steps) ||\r\n\t\t// `gradation` property is deprecated: it has been renamed to `steps`.\r\n\t\tArray.isArray(object.gradation) ||\r\n\t\t// `flavour` property is deprecated: it has been renamed to `labels`.\r\n\t\tArray.isArray(object.flavour) ||\r\n\t\ttypeof object.flavour === 'string' ||\r\n\t\tArray.isArray(object.labels) ||\r\n\t\ttypeof object.labels === 'string' ||\r\n\t\t// `units` property is deprecated.\r\n\t\tArray.isArray(object.units) ||\r\n\t\t// `custom` property is deprecated.\r\n\t\ttypeof object.custom === 'function'\r\n\t)\r\n}\r\n\r\nconst OBJECT_CONSTRUCTOR = {}.constructor\r\nfunction isObject(object) {\r\n\treturn typeof object !== undefined && object !== null && object.constructor === OBJECT_CONSTRUCTOR\r\n}","export const minute = 60 // in seconds\r\n\r\nexport const hour = 60 * minute // in seconds\r\n\r\nexport const day = 24 * hour // in seconds\r\n\r\nexport const week = 7 * day // in seconds\r\n\r\n// https://www.quora.com/What-is-the-average-number-of-days-in-a-month\r\nexport const month = 30.44 * day // in seconds\r\n\r\n// \"400 years have 146097 days (taking into account leap year rules)\"\r\nexport const year = (146097 / 400) * day // in seconds\r\n\r\nexport function getSecondsInUnit(unit) {\r\n\tswitch (unit) {\r\n\t\tcase 'second':\r\n\t\t\treturn 1\r\n\t\tcase 'minute':\r\n\t\t\treturn minute\r\n\t\tcase 'hour':\r\n\t\t\treturn hour\r\n\t\tcase 'day':\r\n\t\t\treturn day\r\n\t\tcase 'week':\r\n\t\t\treturn week\r\n\t\tcase 'month':\r\n\t\t\treturn month\r\n\t\tcase 'year':\r\n\t\t\treturn year\r\n\t}\r\n}\r\n\r\n// export function getPreviousUnitFor(unit) {\r\n// \tswitch (unit) {\r\n// \t\tcase 'second':\r\n// \t\t\treturn 'now'\r\n// \t\tcase 'minute':\r\n// \t\t\treturn 'second'\r\n// \t\tcase 'hour':\r\n// \t\t\treturn 'minute'\r\n// \t\tcase 'day':\r\n// \t\t\treturn 'hour'\r\n// \t\tcase 'week':\r\n// \t\t\treturn 'day'\r\n// \t\tcase 'month':\r\n// \t\t\treturn 'week'\r\n// \t\tcase 'year':\r\n// \t\t\treturn 'month'\r\n// \t}\r\n// }","import { getSecondsInUnit } from './units'\r\n\r\nexport default function getStepDenominator(step) {\r\n\t// `factor` is a legacy property.\r\n\tif (step.factor !== undefined) {\r\n\t\treturn step.factor\r\n\t}\r\n\t// \"unit\" is now called \"formatAs\".\r\n\treturn getSecondsInUnit(step.unit || step.formatAs) || 1\r\n}","export function getRoundFunction(round) {\r\n\tswitch (round) {\r\n\t\tcase 'floor':\r\n\t\t\treturn Math.floor\r\n\t\tdefault:\r\n\t\t\treturn Math.round\r\n\t}\r\n}\r\n\r\n// For non-negative numbers.\r\nexport function getDiffRatioToNextRoundedNumber(round) {\r\n\tswitch (round) {\r\n\t\tcase 'floor':\r\n\t\t\t// Math.floor(x) = x\r\n\t\t\t// Math.floor(x + 1) = x + 1\r\n\t\t\treturn 1\r\n\t\tdefault:\r\n\t\t\t// Math.round(x) = x\r\n\t\t\t// Math.round(x + 0.5) = x + 1\r\n\t\t\treturn 0.5\r\n\t}\r\n}","import { getSecondsInUnit } from './units'\r\nimport { getDiffRatioToNextRoundedNumber } from '../round'\r\n\r\nexport default function getStepMinTime(step, {\r\n\tprevStep,\r\n\ttimestamp,\r\n\t// `now` argument is used in a deprecated `step.test()` function.\r\n\tnow,\r\n\tfuture,\r\n\tround\r\n}) {\r\n\tlet minTime\r\n\t// \"threshold_for_xxx\" is a legacy property.\r\n\tif (prevStep) {\r\n\t\tif (prevStep.id || prevStep.unit) {\r\n\t\t\tminTime = step[`threshold_for_${prevStep.id || prevStep.unit}`]\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\t// \"threshold\" is a legacy property.\r\n\t\tif (step.threshold !== undefined) {\r\n\t\t\t// \"threshold\" is a legacy name for \"minTime\".\r\n\t\t\tminTime = step.threshold\r\n\t\t\t// \"threshold\" function is deprecated.\r\n\t\t\tif (typeof minTime === 'function') {\r\n\t\t\t\tminTime = minTime(now, future)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\tminTime = step.minTime\r\n\t}\r\n\t// A deprecated way of specifying a different threshold\r\n\t// depending on the previous step's unit.\r\n\tif (typeof minTime === 'object') {\r\n\t\tif (prevStep && prevStep.id && minTime[prevStep.id] !== undefined) {\r\n\t\t\tminTime = minTime[prevStep.id]\r\n\t\t} else {\r\n\t\t\tminTime = minTime.default\r\n\t\t}\r\n\t}\r\n\tif (typeof minTime === 'function') {\r\n\t\tminTime = minTime(timestamp, {\r\n\t\t\tfuture,\r\n\t\t\tgetMinTimeForUnit(toUnit, fromUnit) {\r\n\t\t\t\treturn getMinTimeForUnit(\r\n\t\t\t\t\ttoUnit,\r\n\t\t\t\t\tfromUnit || prevStep && prevStep.formatAs,\r\n\t\t\t\t\t{ round }\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t// Evaluate the `test()` function.\r\n\t// `test()` function is deprecated.\r\n\tif (minTime === undefined) {\r\n\t\tif (step.test) {\r\n\t\t\tif (step.test(timestamp, {\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture\r\n\t\t\t})) {\r\n\t\t\t\t// `0` threshold always passes.\r\n\t\t\t\tminTime = 0\r\n\t\t\t} else {\r\n\t\t\t\t// `MAX_SAFE_INTEGER` threshold won't ever pass in real life.\r\n\t\t\t\tminTime = 9007199254740991 // Number.MAX_SAFE_INTEGER\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\tif (prevStep) {\r\n\t\t\tif (step.formatAs && prevStep.formatAs) {\r\n\t\t\t\tminTime = getMinTimeForUnit(step.formatAs, prevStep.formatAs, { round })\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// The first step's `minTime` is `0` by default.\r\n\t\t\tminTime = 0\r\n\t\t}\r\n\t}\r\n\t// Warn if no `minTime` was defined or could be deduced.\r\n\tif (minTime === undefined) {\r\n\t\tconsole.warn('[javascript-time-ago] A step should specify `minTime`:\\n' + JSON.stringify(step, null, 2))\r\n\t}\r\n\treturn minTime\r\n}\r\n\r\nfunction getMinTimeForUnit(toUnit, fromUnit, { round }) {\r\n\tconst toUnitAmount = getSecondsInUnit(toUnit)\r\n\t// if (!fromUnit) {\r\n\t// \treturn toUnitAmount;\r\n\t// }\r\n\t// if (!fromUnit) {\r\n\t// \tfromUnit = getPreviousUnitFor(toUnit)\r\n\t// }\r\n\tlet fromUnitAmount\r\n\tif (fromUnit === 'now') {\r\n\t\tfromUnitAmount = getSecondsInUnit(toUnit)\r\n\t} else {\r\n\t\tfromUnitAmount = getSecondsInUnit(fromUnit)\r\n\t}\r\n\tif (toUnitAmount !== undefined && fromUnitAmount !== undefined) {\r\n\t\treturn toUnitAmount - fromUnitAmount * (1 - getDiffRatioToNextRoundedNumber(round))\r\n\t}\r\n}","import getStepDenominator from './getStepDenominator'\r\nimport getStepMinTime from './getStepMinTime'\r\nimport { getRoundFunction } from '../round'\r\n\r\n/**\r\n * Finds an appropriate `step` of `steps` for the time interval (in seconds).\r\n *\r\n * @param {Object[]} steps - Time formatting steps.\r\n *\r\n * @param {number} secondsPassed - Time interval (in seconds).\r\n * `< 0` for past dates and `> 0` for future dates.\r\n *\r\n * @param {number} options.now - Current timestamp.\r\n *\r\n * @param {boolean} [options.future] - Whether the date should be formatted as a future one\r\n * instead of a past one.\r\n *\r\n * @param {string} [options.round] - (undocumented) Rounding mechanism.\r\n *\r\n * @param {string[]} [options.units] - A list of allowed time units.\r\n * (Example: ['second', 'minute', 'hour', …])\r\n *\r\n * @param {boolean} [options.getNextStep] - Pass true to return `[step, nextStep]` instead of just `step`.\r\n *\r\n * @return {Object|Object[]} [step] — Either a `step` or `[prevStep, step, nextStep]`.\r\n */\r\nexport default function getStep(steps, secondsPassed, { now, future, round, units, getNextStep }) {\r\n\t// Ignore steps having not-supported time units in `formatAs`.\r\n\tsteps = filterStepsByUnits(steps, units)\r\n\tconst step = _getStep(steps, secondsPassed, { now, future, round })\r\n\tif (getNextStep) {\r\n\t\tif (step) {\r\n\t\t\tconst prevStep = steps[steps.indexOf(step) - 1]\r\n\t\t\tconst nextStep = steps[steps.indexOf(step) + 1]\r\n\t\t\treturn [prevStep, step, nextStep]\r\n\t\t}\r\n\t\treturn [undefined, undefined, steps[0]]\r\n\t}\r\n\treturn step\r\n}\r\n\r\nfunction _getStep(steps, secondsPassed, { now, future, round }) {\r\n\t// If no steps fit the conditions then return nothing.\r\n\tif (steps.length === 0) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// Find the most appropriate step.\r\n\tconst i = getStepIndex(steps, secondsPassed, {\r\n\t\tnow,\r\n\t\tfuture: future || secondsPassed < 0,\r\n\t\tround\r\n\t})\r\n\r\n\t// If no step is applicable the return nothing.\r\n\tif (i === -1) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst step = steps[i]\r\n\r\n\t// Apply granularity to the time amount\r\n\t// (and fall back to the previous step\r\n\t// if the first level of granularity\r\n\t// isn't met by this amount)\r\n\tif (step.granularity) {\r\n\t\t// Recalculate the amount of seconds passed based on `granularity`.\r\n\t\tconst secondsPassedGranular = getRoundFunction(round)((Math.abs(secondsPassed) / getStepDenominator(step)) / step.granularity) * step.granularity\r\n\t\t// If the granularity for this step is too high,\r\n\t\t// then fall back to the previous step.\r\n\t\t// (if there is any previous step)\r\n\t\tif (secondsPassedGranular === 0 && i > 0) {\r\n\t\t\treturn steps[i - 1]\r\n\t\t}\r\n\t}\r\n\r\n\treturn step\r\n}\r\n\r\n/**\r\n * Iterates through steps until it finds the maximum one satisfying the `minTime` threshold.\r\n * @param {Object} steps - Steps.\r\n * @param {number} secondsPassed - How much seconds have passed since the date till `now`.\r\n * @param {number} options.now - Current timestamp.\r\n * @param {boolean} options.future - Whether the time interval should be formatted as a future one.\r\n * @param {number} [i] - Gradation step currently being tested.\r\n * @return {number} Gradation step index.\r\n */\r\nfunction getStepIndex(steps, secondsPassed, options, i = 0) {\r\n\tconst minTime = getStepMinTime(steps[i], {\r\n\t\tprevStep: steps[i - 1],\r\n\t\ttimestamp: options.now - secondsPassed * 1000,\r\n\t\t...options\r\n\t})\r\n\t// If `minTime` isn't defined or deduceable for this step, then stop.\r\n\tif (minTime === undefined) {\r\n\t\treturn i - 1\r\n\t}\r\n\t// If the `minTime` threshold for moving from previous step\r\n\t// to this step is too high then return the previous step.\r\n\tif (Math.abs(secondsPassed) < minTime) {\r\n\t\treturn i - 1\r\n\t}\r\n\t// If it's the last step then return it.\r\n\tif (i === steps.length - 1) {\r\n\t\treturn i\r\n\t}\r\n\t// Move to the next step.\r\n\treturn getStepIndex(steps, secondsPassed, options, i + 1)\r\n}\r\n\r\n/**\r\n * Leaves only allowed steps.\r\n * @param {Object[]} steps\r\n * @param {string[]} units - Allowed time units.\r\n * @return {Object[]}\r\n */\r\nfunction filterStepsByUnits(steps, units) {\r\n\treturn steps.filter(({ unit, formatAs }) => {\r\n\t\t// \"unit\" is now called \"formatAs\".\r\n\t\tunit = unit || formatAs\r\n\t\t// If this step has a `unit` defined\r\n\t\t// then this `unit` must be in the list of allowed `units`.\r\n\t\tif (unit) {\r\n\t\t\treturn units.indexOf(unit) >= 0\r\n\t\t}\r\n\t\t// A step is not required to specify a `unit`:\r\n\t\t// alternatively, it could specify `format()`.\r\n\t\t// (see \"twitter\" style for an example)\r\n\t\treturn true\r\n\t})\r\n}","import { getSecondsInUnit } from './units'\r\nimport { getRoundFunction, getDiffRatioToNextRoundedNumber } from '../round'\r\n\r\n/**\r\n * Gets the time to next update for a step with a time unit defined.\r\n * @param {string} unit\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {number} options.now\r\n * @param {string} [options.round] — (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\r\nexport default function getTimeToNextUpdateForUnit(unit, timestamp, { now, round }) {\r\n\t// For some units, like \"now\", there's no defined amount of seconds in them.\r\n\tif (!getSecondsInUnit(unit)) {\r\n\t\t// If there's no amount of seconds defined for this unit\r\n\t\t// then the update interval can't be determined reliably.\r\n\t\treturn\r\n\t}\r\n\tconst unitDenominator = getSecondsInUnit(unit) * 1000\r\n\tconst future = timestamp > now\r\n\tconst preciseAmount = Math.abs(timestamp - now)\r\n\tconst roundedAmount = getRoundFunction(round)(preciseAmount / unitDenominator) * unitDenominator\r\n\tif (future) {\r\n\t\tif (roundedAmount > 0) {\r\n\t\t\t// Amount decreases with time.\r\n\t\t\treturn (preciseAmount - roundedAmount) +\r\n\t\t\t\tgetDiffToPreviousRoundedNumber(round, unitDenominator)\r\n\t\t} else {\r\n\t\t\t// Refresh right after the zero point,\r\n\t\t\t// when \"future\" changes to \"past\".\r\n\t\t\treturn (preciseAmount - roundedAmount) + 1\r\n\t\t}\r\n\t}\r\n \t// Amount increases with time.\r\n\treturn -(preciseAmount - roundedAmount) + getDiffToNextRoundedNumber(round, unitDenominator)\r\n}\r\n\r\nfunction getDiffToNextRoundedNumber(round, unitDenominator) {\r\n\treturn getDiffRatioToNextRoundedNumber(round) * unitDenominator\r\n}\r\n\r\nfunction getDiffToPreviousRoundedNumber(round, unitDenominator) {\r\n\treturn (1 - getDiffRatioToNextRoundedNumber(round)) * unitDenominator + 1\r\n}","import _getTimeToNextUpdateForUnit from './getTimeToNextUpdateForUnit'\r\nimport getStepMinTime from './getStepMinTime'\r\nimport { getRoundFunction } from '../round'\r\n\r\n// A thousand years is practically a metaphor for \"infinity\".\r\nconst YEAR = 365 * 24 * 60 * 60 * 1000\r\nexport const INFINITY = 1000 * YEAR\r\n\r\n/**\r\n * Gets the time to next update for a date and a step.\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {object} step\r\n * @param {object} [options.previousStep]\r\n * @param {object} [options.nextStep]\r\n * @param {number} options.now\r\n * @param {boolean} options.future\r\n * @param {string} [options.round] - (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\r\nexport default function getTimeToNextUpdate(date, step, { prevStep, nextStep, now, future, round }) {\r\n\tconst timestamp = date.getTime ? date.getTime() : date\r\n\r\n\tconst getTimeToNextUpdateForUnit = (unit) => _getTimeToNextUpdateForUnit(unit, timestamp, { now, round })\r\n\r\n\t// For future dates, steps move from the last one to the first one,\r\n\t// while for past dates, steps move from the first one to the last one,\r\n\t// due to the fact that time flows in one direction,\r\n\t// and future dates' interval naturally becomes smaller\r\n\t// while past dates' interval naturally grows larger.\r\n\t//\r\n\t// For future dates, it's the transition\r\n\t// from the current step to the previous step,\r\n\t// therefore check the `minTime` of the current step.\r\n\t//\r\n\t// For past dates, it's the transition\r\n\t// from the current step to the next step,\r\n\t// therefore check the `minTime` of the next step.\r\n\t//\r\n\tconst timeToStepChange = getTimeToStepChange(future ? step : nextStep, timestamp, {\r\n\t\tfuture,\r\n\t\tnow,\r\n\t\tround,\r\n\t\tprevStep: future ? prevStep : step,\r\n\t\t// isFirstStep: future && isFirstStep\r\n\t})\r\n\r\n\tif (timeToStepChange === undefined) {\r\n\t\t// Can't reliably determine \"time to next update\"\r\n\t\t// if not all of the steps provide `minTime`.\r\n\t\treturn\r\n\t}\r\n\r\n\tlet timeToNextUpdate\r\n\r\n\tif (step) {\r\n\t\tif (step.getTimeToNextUpdate) {\r\n\t\t\ttimeToNextUpdate = step.getTimeToNextUpdate(timestamp, {\r\n\t\t\t\tgetTimeToNextUpdateForUnit,\r\n\t\t\t\tgetRoundFunction,\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture,\r\n\t\t\t\tround\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (timeToNextUpdate === undefined) {\r\n\t\t\t// \"unit\" is now called \"formatAs\".\r\n\t\t\tconst unit = step.unit || step.formatAs\r\n\t\t\tif (unit) {\r\n\t\t\t\t// For some units, like \"now\", there's no defined amount of seconds in them.\r\n\t\t\t\t// In such cases, `getTimeToNextUpdateForUnit()` returns `undefined`,\r\n\t\t\t\t// and the next step's `minTime` could be used to calculate the update interval:\r\n\t\t\t\t// it will just assume that the label never changes for this step.\r\n\t\t\t\ttimeToNextUpdate = getTimeToNextUpdateForUnit(unit)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (timeToNextUpdate === undefined) {\r\n\t\treturn timeToStepChange\r\n\t}\r\n\r\n\treturn Math.min(timeToNextUpdate, timeToStepChange)\r\n}\r\n\r\nexport function getStepChangesAt(currentOrNextStep, timestamp, { now, future, round, prevStep }) {\r\n\t// The first step's `minTime` is `0` by default.\r\n\t// It doesn't \"change\" steps at zero point\r\n\t// but it does change the wording when switching\r\n\t// from \"future\" to \"past\": \"in ...\" -> \"... ago\".\r\n\t// Therefore, the label should be updated at zero-point too.\r\n\tconst minTime = getStepMinTime(currentOrNextStep, { timestamp, now, future, round, prevStep })\r\n\tif (minTime === undefined) {\r\n\t\treturn\r\n\t}\r\n\tif (future) {\r\n\t\t// The step changes to the previous step\r\n\t\t// as soon as `timestamp - now` becomes\r\n\t\t// less than the `minTime` of the current step:\r\n\t\t// `timestamp - now === minTime - 1`\r\n\t\t// => `now === timestamp - minTime + 1`.\r\n\t\treturn timestamp - minTime * 1000 + 1\r\n\t} else {\r\n\t\t// The step changes to the next step\r\n\t\t// as soon as `now - timestamp` becomes\r\n\t\t// equal to `minTime` of the next step:\r\n\t\t// `now - timestamp === minTime`\r\n\t\t// => `now === timestamp + minTime`.\r\n\r\n\t\t// This is a special case when double-update could be skipped.\r\n\t\tif (minTime === 0 && timestamp === now) {\r\n\t\t\treturn INFINITY\r\n\t\t}\r\n\r\n\t\treturn timestamp + minTime * 1000\r\n\t}\r\n}\r\n\r\nexport function getTimeToStepChange(step, timestamp, {\r\n\tnow,\r\n\tfuture,\r\n\tround,\r\n\tprevStep\r\n}) {\r\n\tif (step) {\r\n\t\tconst stepChangesAt = getStepChangesAt(step, timestamp, {\r\n\t\t\tnow,\r\n\t\t\tfuture,\r\n\t\t\tround,\r\n\t\t\tprevStep\r\n\t\t})\r\n\t\tif (stepChangesAt === undefined) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn stepChangesAt - now\r\n\t} else {\r\n\t\tif (future) {\r\n\t\t\t// No step.\r\n\t\t\t// Update right after zero point, when it changes from \"future\" to \"past\".\r\n\t\t\treturn timestamp - now + 1\r\n\t\t} else {\r\n\t\t\t// The last step doesn't ever change when `date` is in the past.\r\n\t\t\treturn INFINITY\r\n\t\t}\r\n\t}\r\n}","// just now\r\n// 1 second ago\r\n// 2 seconds ago\r\n// …\r\n// 59 seconds ago\r\n// 1 minute ago\r\n// 2 minutes ago\r\n// …\r\n// 59 minutes ago\r\n// 1 hour ago\r\n// 2 hours ago\r\n// …\r\n// 24 hours ago\r\n// 1 day ago\r\n// 2 days ago\r\n// …\r\n// 6 days ago\r\n// 1 week ago\r\n// 2 weeks ago\r\n// …\r\n// 3 weeks ago\r\n// 1 month ago\r\n// 2 months ago\r\n// …\r\n// 11 months ago\r\n// 1 year ago\r\n// 2 years ago\r\n// …\r\nexport default [\r\n\t{\r\n\t\tformatAs: 'now'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'second'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'minute'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'hour'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'day'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'week'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'month'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'year'\r\n\t}\r\n]","import round from '../steps/round'\r\n\r\n// just now\r\n// 1 second ago\r\n// 2 seconds ago\r\n// …\r\n// 59 seconds ago\r\n// 1 minute ago\r\n// 2 minutes ago\r\n// …\r\n// 59 minutes ago\r\n// 1 minute ago\r\n// 2 minutes ago\r\n// …\r\n// 59 minutes ago\r\n// 1 hour ago\r\n// 2 hours ago\r\n// …\r\n// 24 hours ago\r\n// 1 day ago\r\n// 2 days ago\r\n// …\r\n// 6 days ago\r\n// 1 week ago\r\n// 2 weeks ago\r\n// 3 weeks ago\r\n// 4 weeks ago\r\n// 1 month ago\r\n// 2 months ago\r\n// …\r\n// 11 months ago\r\n// 1 year ago\r\n// 2 years ago\r\n// …\r\n//\r\nexport default {\r\n\tsteps: round,\r\n\tlabels: 'long'\r\n}","import round from './round'\r\n\r\n// just now\r\n// 1 minute ago\r\n// 2 minutes ago\r\n// …\r\n// 59 minutes ago\r\n// 1 minute ago\r\n// 2 minutes ago\r\n// …\r\n// 59 minutes ago\r\n// 1 hour ago\r\n// 2 hours ago\r\n// …\r\n// 24 hours ago\r\n// 1 day ago\r\n// 2 days ago\r\n// …\r\n// 6 days ago\r\n// 1 week ago\r\n// 2 weeks ago\r\n// 3 weeks ago\r\n// 4 weeks ago\r\n// 1 month ago\r\n// 2 months ago\r\n// …\r\n// 11 months ago\r\n// 1 year ago\r\n// 2 years ago\r\n// …\r\n//\r\nexport default {\r\n\t...round,\r\n\t// Skip \"seconds\".\r\n\tsteps: round.steps.filter(step => step.formatAs !== 'second')\r\n}","import { minute, hour, day, week, month, year } from './units'\r\n\r\n// \"factor\" is a legacy property.\r\n// Developers shouldn't need to use it in their custom steps.\r\n\r\n// \"threshold\" is a legacy name of \"min\".\r\n// Developers should use \"min\" property name instead of \"threshold\".\r\n\r\n// \"threshold_for_idOrUnit: value\" is a legacy way of specifying \"min: { id: value }\".\r\n// Developers should use \"min\" property instead of \"threshold\".\r\n\r\n// just now\r\n// 1 minute ago\r\n// 2 minutes ago\r\n// 5 minutes ago\r\n// 10 minutes ago\r\n// 15 minutes ago\r\n// 20 minutes ago\r\n// …\r\n// 50 minutes ago\r\n// an hour ago\r\n// 2 hours ago\r\n// …\r\n// 20 hours ago\r\n// a day ago\r\n// 2 days ago\r\n// 5 days ago\r\n// a week ago\r\n// 2 weeks ago\r\n// 3 weeks ago\r\n// a month ago\r\n// 2 months ago\r\n// 4 months ago\r\n// a year ago\r\n// 2 years ago\r\n// …\r\nexport default [\r\n\t{\r\n\t\t// This step returns the amount of seconds\r\n\t\t// by dividing the amount of seconds by `1`.\r\n\t\tfactor: 1,\r\n \t// \"now\" labels are used for formatting the output.\r\n\t\tunit: 'now'\r\n\t},\r\n\t{\r\n\t\t// When the language doesn't support `now` unit,\r\n\t\t// the first step is ignored, and it uses this `second` unit.\r\n\t\tthreshold: 1,\r\n\t\t// `threshold_for_now` should be the same as `threshold` on minutes.\r\n\t\tthreshold_for_now: 45.5,\r\n\t\t// This step returns the amount of seconds\r\n\t\t// by dividing the amount of seconds by `1`.\r\n\t\tfactor: 1,\r\n \t// \"second\" labels are used for formatting the output.\r\n\t\tunit: 'second'\r\n\t},\r\n\t{\r\n\t\t// `threshold` should be the same as `threshold_for_now` on seconds.\r\n\t\tthreshold: 45.5,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in a minute.\r\n\t\tfactor: minute,\r\n \t// \"minute\" labels are used for formatting the output.\r\n\t\tunit: 'minute'\r\n\t},\r\n\t{\r\n\t\t// This step is effective starting from 2.5 minutes.\r\n\t\tthreshold: 2.5 * minute,\r\n\t\t// Allow only 5-minute increments of minutes starting from 2.5 minutes.\r\n\t\t// `granularity` — (advanced) Time interval value \"granularity\".\r\n\t\t// For example, it could be set to `5` for minutes to allow only 5-minute increments\r\n\t\t// when formatting time intervals: `0 minutes`, `5 minutes`, `10 minutes`, etc.\r\n\t\t// Perhaps this feature will be removed because there seem to be no use cases\r\n\t\t// of it in the real world.\r\n\t\tgranularity: 5,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in a minute.\r\n\t\tfactor: minute,\r\n\t\t// \"minute\" labels are used for formatting the output.\r\n\t\tunit: 'minute'\r\n\t},\r\n\t{\r\n\t\t// This step is effective starting from 22.5 minutes.\r\n\t\tthreshold: 22.5 * minute,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in half-an-hour.\r\n\t\tfactor: 0.5 * hour,\r\n\t\t// \"half-hour\" labels are used for formatting the output.\r\n\t\t// (if available, which is no longer the case)\r\n\t\tunit: 'half-hour'\r\n\t},\r\n\t{\r\n\t\t// This step is effective starting from 42.5 minutes.\r\n\t\tthreshold: 42.5 * minute,\r\n\t\tthreshold_for_minute: 52.5 * minute,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in an hour.\r\n\t\tfactor: hour,\r\n\t\t// \"hour\" labels are used for formatting the output.\r\n\t\tunit: 'hour'\r\n\t},\r\n\t{\r\n\t\t// This step is effective starting from 20.5 hours.\r\n\t\tthreshold: (20.5 / 24) * day,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in a day.\r\n\t\tfactor: day,\r\n\t\t// \"day\" labels are used for formatting the output.\r\n\t\tunit: 'day'\r\n\t},\r\n\t{\r\n\t\t// This step is effective starting from 5.5 days.\r\n\t\tthreshold: 5.5 * day,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in a week.\r\n\t\tfactor: week,\r\n\t\t// \"week\" labels are used for formatting the output.\r\n\t\tunit: 'week'\r\n\t},\r\n\t{\r\n\t\t// This step is effective starting from 3.5 weeks.\r\n\t\tthreshold: 3.5 * week,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in a month.\r\n\t\tfactor: month,\r\n\t\t// \"month\" labels are used for formatting the output.\r\n\t\tunit: 'month'\r\n\t},\r\n\t{\r\n\t\t// This step is effective starting from 10.5 months.\r\n\t\tthreshold: 10.5 * month,\r\n\t\t// Return the amount of minutes by dividing the amount\r\n\t\t// of seconds by the amount of seconds in a year.\r\n\t\tfactor: year,\r\n\t\t// \"year\" labels are used for formatting the output.\r\n\t\tunit: 'year'\r\n\t}\r\n]","import approximate from '../steps/approximate'\r\n\r\n// \"gradation\" is a legacy name for \"steps\".\r\n// It's here just for legacy compatibility.\r\n// Use \"steps\" name instead.\r\n\r\n// \"flavour\" is a legacy name for \"labels\".\r\n// It's here just for legacy compatibility.\r\n// Use \"labels\" name instead.\r\n\r\n// \"units\" is a legacy property.\r\n// It's here just for legacy compatibility.\r\n// Developers shouldn't need to use it in their custom styles.\r\n\r\nexport default {\r\n\tgradation: approximate,\r\n\tflavour: 'long',\r\n\tunits: [\r\n\t\t'now',\r\n\t\t'minute',\r\n\t\t'hour',\r\n\t\t'day',\r\n\t\t'week',\r\n\t\t'month',\r\n\t\t'year'\r\n\t]\r\n}","import approximate from '../steps/approximate'\r\n\r\n// \"gradation\" is a legacy name for \"steps\".\r\n// It's here just for legacy compatibility.\r\n// Use \"steps\" name instead.\r\n\r\n// \"flavour\" is a legacy name for \"labels\".\r\n// It's here just for legacy compatibility.\r\n// Use \"labels\" name instead.\r\n\r\n// \"units\" is a legacy property.\r\n// It's here just for legacy compatibility.\r\n// Developers shouldn't need to use it in their custom styles.\r\n\r\n// Similar to the default style but with \"ago\" omitted.\r\n//\r\n// just now\r\n// 5 minutes\r\n// 10 minutes\r\n// 15 minutes\r\n// 20 minutes\r\n// an hour\r\n// 2 hours\r\n// …\r\n// 20 hours\r\n// 1 day\r\n// 2 days\r\n// a week\r\n// 2 weeks\r\n// 3 weeks\r\n// a month\r\n// 2 months\r\n// 3 months\r\n// 4 months\r\n// a year\r\n// 2 years\r\n//\r\nexport default {\r\n\tgradation: approximate,\r\n\tflavour: 'long-time',\r\n\tunits: [\r\n\t\t'now',\r\n\t\t'minute',\r\n\t\t'hour',\r\n\t\t'day',\r\n\t\t'week',\r\n\t\t'month',\r\n\t\t'year'\r\n\t]\r\n}","// Looks like this one's deprecated.\r\n// /**\r\n// * Returns a step corresponding to the unit.\r\n// * @param {Object[]} steps\r\n// * @param {string} unit\r\n// * @return {?Object}\r\n// */\r\n// export function getStepForUnit(steps, unit) {\r\n// \tfor (const step of steps) {\r\n// \t\tif (step.unit === unit) {\r\n// \t\t\treturn step\r\n// \t\t}\r\n// \t}\r\n// }\r\n\r\n// Looks like this one won't be used in the next major version.\r\n/**\r\n * Converts value to a `Date`\r\n * @param {(number|Date)} value\r\n * @return {Date}\r\n */\r\nexport function getDate(value) {\r\n\treturn value instanceof Date ? value : new Date(value)\r\n}","import { day, getDate } from '../steps'\r\nimport { intlDateTimeFormatSupported } from '../locale'\r\n\r\n// For compatibility with the old versions of this library.\r\nimport renameLegacyProperties from './renameLegacyProperties'\r\n\r\n// Twitter-style relative date/time formatting.\r\n// (\"1m\", \"2h\", \"Mar 3\", \"Apr 4, 2012\").\r\n//\r\n// Seconds, minutes or hours are shown for shorter intervals,\r\n// and longer intervals are formatted using full date format.\r\n\r\nconst steps = [\r\n\t{\r\n\t\tformatAs: 'second'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'minute'\r\n\t},\r\n\t{\r\n\t\tformatAs: 'hour'\r\n\t}\r\n]\r\n\r\n// A cache for `Intl.DateTimeFormat` formatters\r\n// for various locales (is a global variable).\r\nconst formatters = {}\r\n\r\n// Starting from day intervals, output month and day.\r\nconst monthAndDay = {\r\n\tminTime(timestamp, { future, getMinTimeForUnit }) {\r\n\t\t// Returns `23.5 * 60 * 60` when `round` is \"round\",\r\n\t\t// and `24 * 60 * 60` when `round` is \"floor\".\r\n\t\treturn getMinTimeForUnit('day')\r\n\t},\r\n\tformat(value, locale) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (!formatters[locale]) {\r\n\t\t\tformatters[locale] = {}\r\n\t\t}\r\n\t\t/* istanbul ignore else */\r\n\t\tif (!formatters[locale].dayMonth) {\r\n\t\t\t// \"Apr 11\" (MMMd)\r\n\t\t\tformatters[locale].dayMonth = new Intl.DateTimeFormat(locale, {\r\n\t\t\t\tmonth: 'short',\r\n\t\t\t\tday: 'numeric'\r\n\t\t\t})\r\n\t\t}\r\n\t\t// Output month and day.\r\n\t\treturn formatters[locale].dayMonth.format(getDate(value))\r\n\t}\r\n}\r\n\r\n// If the `date` happened/happens outside of current year,\r\n// then output day, month and year.\r\n// The interval should be such that the `date` lies outside of the current year.\r\nconst yearMonthAndDay = {\r\n\tminTime(timestamp, { future }) {\r\n\t\tif (future) {\r\n\t\t\t// January 1, 00:00, of the `date`'s year is right after\r\n\t\t\t// the maximum `now` for formatting a future date:\r\n\t\t\t// When `now` is before that date, the `date` is formatted as \"day/month/year\" (this step),\r\n\t\t\t// When `now` is equal to or after that date, the `date` is formatted as \"day/month\" (another step).\r\n\t\t\t// After that, it's hours, minutes, seconds, and after that it's no longer `future`.\r\n\t\t\t// The date is right after the maximum `now` for formatting a future date,\r\n\t\t\t// so subtract 1 millisecond from it.\r\n\t\t\tconst maxFittingNow = new Date(new Date(timestamp).getFullYear(), 0).getTime() - 1\r\n\t\t\t// Return `minTime` (in seconds).\r\n\t\t\treturn (timestamp - maxFittingNow) / 1000\r\n\t\t} else {\r\n\t\t\t// January 1, 00:00, of the year following the `date`'s year\r\n\t\t\t// is the minimum `now` for formatting a past date:\r\n\t\t\t// When `now` is before that date, the `date` is formatted as \"day/month\" (another step),\r\n\t\t\t// When `now` is equal to or after that date, the `date` is formatted as \"day/month/year\" (this step).\r\n\t\t\t// After that, it's hours, minutes, seconds, and after that it's no longer `future`.\r\n\t\t\tconst minFittingNow = new Date(new Date(timestamp).getFullYear() + 1, 0).getTime()\r\n\t\t\t// Return `minTime` (in seconds).\r\n\t\t\treturn (minFittingNow - timestamp) / 1000\r\n\t\t}\r\n\t},\r\n\tformat(value, locale) {\r\n\t\t/* istanbul ignore if */\r\n\t\tif (!formatters[locale]) {\r\n\t\t\tformatters[locale] = {}\r\n\t\t}\r\n\t\t/* istanbul ignore else */\r\n\t\tif (!formatters[locale].dayMonthYear) {\r\n\t\t\t// \"Apr 11, 2017\" (yMMMd)\r\n\t\t\tformatters[locale].dayMonthYear = new Intl.DateTimeFormat(locale, {\r\n\t\t\t\tyear: 'numeric',\r\n\t\t\t\tmonth: 'short',\r\n\t\t\t\tday: 'numeric'\r\n\t\t\t})\r\n\t\t}\r\n\t\t// Output day, month and year.\r\n\t\treturn formatters[locale].dayMonthYear.format(getDate(value))\r\n\t}\r\n}\r\n\r\n// If `Intl.DateTimeFormat` is supported,\r\n// then longer time intervals will be formatted as dates.\r\n/* istanbul ignore else */\r\nif (intlDateTimeFormatSupported()) {\r\n\tsteps.push(monthAndDay, yearMonthAndDay)\r\n}\r\n// Otherwise, if `Intl.DateTimeFormat` is not supported,\r\n// which could be the case when using Internet Explorer,\r\n// then simply mimick \"round\" steps.\r\nelse {\r\n\tsteps.push(\r\n\t\t{\r\n\t\t\tformatAs: 'day'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'week'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'month'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'year'\r\n\t\t}\r\n\t)\r\n}\r\n\r\nexport default {\r\n\tsteps,\r\n\tlabels: [\r\n\t\t// \"mini\" labels are only defined for a few languages.\r\n\t\t'mini',\r\n\t\t// \"short-time\" labels are only defined for a few languages.\r\n\t\t'short-time',\r\n\t\t// \"narrow\" and \"short\" labels are defined for all languages.\r\n\t\t// \"narrow\" labels can sometimes be weird (like \"+5d.\"),\r\n\t\t// but \"short\" labels have the \" ago\" part, so \"narrow\" seem\r\n\t\t// more appropriate.\r\n\t\t// \"short\" labels would have been more appropriate if they\r\n\t\t// didn't have the \" ago\" part, hence the \"short-time\" above.\r\n\t\t'narrow',\r\n\t\t// Since \"narrow\" labels are always present, \"short\" element\r\n\t\t// of this array can be removed.\r\n\t\t'short'\r\n\t]\r\n}","import twitter from './twitter'\r\n\r\nexport default {\r\n\t...twitter,\r\n\t// Add \"now\".\r\n\tsteps: [{ formatAs: 'now' }].concat(twitter.steps)\r\n}","import twitter from './twitter'\r\n\r\nexport default {\r\n\t...twitter,\r\n\t// Skip \"seconds\".\r\n\tsteps: twitter.steps.filter(step => step.formatAs !== 'second')\r\n}","import twitterMinute from './twitterMinute'\r\n\r\nexport default {\r\n\t...twitterMinute,\r\n\t// Add \"now\".\r\n\tsteps: [{ formatAs: 'now' }].concat(twitterMinute.steps)\r\n}","import { minute } from '../steps/units'\r\nimport twitter from './twitter'\r\n\r\nexport default {\r\n\t...twitter,\r\n\t// Skip \"seconds\".\r\n\tsteps: twitter.steps.filter(step => step.formatAs !== 'second')\r\n\t\t// Start showing `1m` from the first minute.\r\n\t\t.map(step => step.formatAs === 'minute' ? { ...step, minTime: minute } : step)\r\n}","export default {\r\n\tsteps: [\r\n\t\t{\r\n\t\t\tformatAs: 'second'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'minute'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'hour'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'day'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'month'\r\n\t\t},\r\n\t\t{\r\n\t\t\tformatAs: 'year'\r\n\t\t}\r\n\t],\r\n\tlabels: [\r\n\t\t// \"mini\" labels are only defined for a few languages.\r\n\t\t'mini',\r\n\t\t// \"short-time\" labels are only defined for a few languages.\r\n\t\t'short-time',\r\n\t\t// \"narrow\" and \"short\" labels are defined for all languages.\r\n\t\t// \"narrow\" labels can sometimes be weird (like \"+5d.\"),\r\n\t\t// but \"short\" labels have the \" ago\" part, so \"narrow\" seem\r\n\t\t// more appropriate.\r\n\t\t// \"short\" labels would have been more appropriate if they\r\n\t\t// didn't have the \" ago\" part, hence the \"short-time\" above.\r\n\t\t'narrow',\r\n\t\t// Since \"narrow\" labels are always present, \"short\" element\r\n\t\t// of this array can be removed.\r\n\t\t'short'\r\n\t]\r\n}","import mini from './mini'\r\n\r\nexport default {\r\n\t...mini,\r\n\t// Add \"now\".\r\n\tsteps: [{ formatAs: 'now' }].concat(mini.steps)\r\n}","import mini from './mini'\r\n\r\nexport default {\r\n\t...mini,\r\n\t// Skip \"seconds\".\r\n\tsteps: mini.steps.filter(step => step.formatAs !== 'second')\r\n}","import miniMinute from './miniMinute'\r\n\r\nexport default {\r\n\t...miniMinute,\r\n\t// Add \"now\".\r\n\tsteps: [{ formatAs: 'now' }].concat(miniMinute.steps)\r\n}","import RelativeTimeFormatPolyfill from 'relative-time-format'\r\n\r\nimport Cache from './cache'\r\nimport chooseLocale from './locale'\r\nimport isStyleObject from './isStyleObject'\r\n\r\nimport getStep from './steps/getStep'\r\nimport getStepDenominator from './steps/getStepDenominator'\r\nimport getTimeToNextUpdate from './steps/getTimeToNextUpdate'\r\n\r\nimport {\r\n\taddLocaleData,\r\n\tgetLocaleData\r\n} from './LocaleDataStore'\r\n\r\nimport defaultStyle from './style/roundMinute'\r\nimport getStyleByName from './style/getStyleByName'\r\n\r\nimport { getRoundFunction } from './round'\r\n\r\n// Valid time units.\r\nconst UNITS = [\r\n\t'now',\r\n\t// The rest are the same as in `Intl.RelativeTimeFormat`.\r\n\t'second',\r\n\t'minute',\r\n\t'hour',\r\n\t'day',\r\n\t'week',\r\n\t'month',\r\n\t'quarter',\r\n\t'year'\r\n]\r\n\r\nexport default class TimeAgo {\r\n\t/**\r\n\t * @param {(string|string[])} locales=[] - Preferred locales (or locale).\r\n\t * @param {boolean} [polyfill] — Pass `false` to use native `Intl.RelativeTimeFormat` and `Intl.PluralRules` instead of the polyfills.\r\n\t */\r\n\tconstructor(locales = [], { polyfill } = {}) {\r\n\t\t// Convert `locales` to an array.\r\n\t\tif (typeof locales === 'string') {\r\n\t\t\tlocales = [locales]\r\n\t\t}\r\n\r\n\t\t// Choose the most appropriate locale\r\n\t\t// from the list of `locales` added by the user.\r\n\t\t// For example, new TimeAgo(\"en-US\") -> \"en\".\r\n\t\tthis.locale = chooseLocale(\r\n\t\t\tlocales.concat(TimeAgo.getDefaultLocale()),\r\n\t\t\tgetLocaleData\r\n\t\t)\r\n\r\n\t\tif (typeof Intl !== 'undefined') {\r\n\t\t\t// Use `Intl.NumberFormat` for formatting numbers (when available).\r\n\t\t\tif (Intl.NumberFormat) {\r\n\t\t\t\tthis.numberFormat = new Intl.NumberFormat(this.locale)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Some people have requested the ability to use native\r\n\t\t// `Intl.RelativeTimeFormat` and `Intl.PluralRules`\r\n\t\t// instead of the polyfills.\r\n\t\t// https://github.com/catamphetamine/javascript-time-ago/issues/21\r\n\t\tif (polyfill === false) {\r\n\t\t\tthis.IntlRelativeTimeFormat = Intl.RelativeTimeFormat\r\n\t\t\tthis.IntlPluralRules = Intl.PluralRules\r\n\t\t} else {\r\n\t\t\tthis.IntlRelativeTimeFormat = RelativeTimeFormatPolyfill\r\n\t\t\tthis.IntlPluralRules = RelativeTimeFormatPolyfill.PluralRules\r\n\t\t}\r\n\r\n\t\t// Cache `Intl.RelativeTimeFormat` instance.\r\n\t\tthis.relativeTimeFormatCache = new Cache()\r\n\r\n\t\t// Cache `Intl.PluralRules` instance.\r\n\t\tthis.pluralRulesCache = new Cache()\r\n\t}\r\n\r\n\t/**\r\n\t * Formats relative date/time.\r\n\t *\r\n\t * @param {number} [options.now] - Sets the current date timestamp.\r\n\t *\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`:\r\n\t * as \"future\" (`true`) or \"past\" (`false`).\r\n\t * Is `false` by default, but should have been `true` actually,\r\n\t * in order to correspond to `Intl.RelativeTimeFormat`\r\n\t * that uses `future` formatting for `0` unless `-0` is passed.\r\n\t *\r\n\t * @param {string} [options.round] — Rounding method. Overrides the style's one.\r\n\t *\r\n\t * @param {boolean} [options.getTimeToNextUpdate] — Pass `true` to return `[formattedDate, timeToNextUpdate]` instead of just `formattedDate`.\r\n\t *\r\n\t * @return {string} The formatted relative date/time. If no eligible `step` is found, then an empty string is returned.\r\n\t */\r\n\tformat(input, style, options) {\r\n\t\tif (!options) {\r\n\t\t\tif (style && !isStyle(style)) {\r\n\t\t\t\toptions = style\r\n\t\t\t\tstyle = undefined\r\n\t\t\t} else {\r\n\t\t\t\toptions = {}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!style) {\r\n\t\t\tstyle = defaultStyle\r\n\t\t}\r\n\r\n\t\tif (typeof style === 'string') {\r\n\t\t\tstyle = getStyleByName(style)\r\n\t\t}\r\n\r\n\t\tconst timestamp = getTimestamp(input)\r\n\r\n\t\t// Get locale messages for this type of labels.\r\n\t\t// \"flavour\" is a legacy name for \"labels\".\r\n\t\tconst { labels, labelsType } = this.getLabels(style.flavour || style.labels)\r\n\r\n\t\tlet now\r\n\t\t// Can pass a custom `now`, e.g. for testing purposes.\r\n\t\t//\r\n\t\t// Legacy way was passing `now` in `style`.\r\n\t\t// That way is deprecated.\r\n\t\tif (style.now !== undefined) {\r\n\t\t\tnow = style.now\r\n\t\t}\r\n\t\t// The new way is passing `now` option to `.format()`.\r\n\t\tif (now === undefined && options.now !== undefined) {\r\n\t\t\tnow = options.now\r\n\t\t}\r\n\t\tif (now === undefined) {\r\n\t\t\tnow = Date.now()\r\n\t\t}\r\n\r\n\t\t// how much time has passed (in seconds)\r\n\t\tconst secondsPassed = (now - timestamp) / 1000 // in seconds\r\n\r\n\t\tconst future = options.future || secondsPassed < 0\r\n\r\n\t\tconst nowLabel = getNowLabel(\r\n\t\t\tlabels,\r\n\t\t\tgetLocaleData(this.locale).now,\r\n\t\t\tgetLocaleData(this.locale).long,\r\n\t\t\tfuture\r\n\t\t)\r\n\r\n\t\t// `custom` – A function of `{ elapsed, time, date, now, locale }`.\r\n\t\t//\r\n\t\t// Looks like `custom` function is deprecated and will be removed\r\n\t\t// in the next major version.\r\n\t\t//\r\n\t\t// If this function returns a value, then the `.format()` call will return that value.\r\n\t\t// Otherwise the relative date/time is formatted as usual.\r\n\t\t// This feature is currently not used anywhere and is here\r\n\t\t// just for providing the ultimate customization point\r\n\t\t// in case anyone would ever need that. Prefer using\r\n\t\t// `steps[step].format(value, locale)` instead.\r\n\t\t//\r\n\t\tif (style.custom) {\r\n\t\t\tconst custom = style.custom({\r\n\t\t\t\tnow,\r\n\t\t\t\tdate: new Date(timestamp),\r\n\t\t\t\ttime: timestamp,\r\n\t\t\t\telapsed: secondsPassed,\r\n\t\t\t\tlocale: this.locale\r\n\t\t\t})\r\n\t\t\tif (custom !== undefined) {\r\n\t\t\t\t// Won't return `timeToNextUpdate` here\r\n\t\t\t\t// because `custom()` seems deprecated.\r\n\t\t\t\treturn custom\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get the list of available time interval units.\r\n\t\tconst units = getTimeIntervalMeasurementUnits(\r\n\t\t\t// Controlling `style.steps` through `style.units` seems to be deprecated:\r\n\t\t\t// create a new custom `style` instead.\r\n\t\t\tstyle.units,\r\n\t\t\tlabels,\r\n\t\t\tnowLabel\r\n\t\t)\r\n\r\n\t\t// // If no available time unit is suitable, just output an empty string.\r\n\t\t// if (units.length === 0) {\r\n\t\t// \tconsole.error(`None of the \"${units.join(', ')}\" time units have been found in \"${labelsType}\" labels for \"${this.locale}\" locale.`)\r\n\t\t// \treturn ''\r\n\t\t// }\r\n\r\n\t\tconst round = options.round || style.round\r\n\r\n\t\t// Choose the appropriate time measurement unit\r\n\t\t// and get the corresponding rounded time amount.\r\n\t\tconst [prevStep, step, nextStep] = getStep(\r\n\t\t\t// \"gradation\" is a legacy name for \"steps\".\r\n\t\t\t// For historical reasons, \"approximate\" steps are used by default.\r\n\t\t\t// In the next major version, there'll be no default for `steps`.\r\n\t\t\tstyle.gradation || style.steps || defaultStyle.steps,\r\n\t\t\tsecondsPassed,\r\n\t\t\t{ now, units, round, future, getNextStep: true }\r\n\t\t)\r\n\r\n\t\tconst formattedDate = this.formatDateForStep(timestamp, step, secondsPassed, {\r\n\t\t\tlabels,\r\n\t\t\tlabelsType,\r\n\t\t\tnowLabel,\r\n\t\t\tnow,\r\n\t\t\tfuture,\r\n\t\t\tround\r\n\t\t}) || ''\r\n\r\n\t\tif (options.getTimeToNextUpdate) {\r\n\t\t\tconst timeToNextUpdate = getTimeToNextUpdate(timestamp, step, {\r\n\t\t\t\tnextStep,\r\n\t\t\t\tprevStep,\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture,\r\n\t\t\t\tround\r\n\t\t\t})\r\n\t\t\treturn [formattedDate, timeToNextUpdate]\r\n\t\t}\r\n\r\n\t\treturn formattedDate\r\n\t}\r\n\r\n\tformatDateForStep(timestamp, step, secondsPassed, {\r\n\t\tlabels,\r\n\t\tlabelsType,\r\n\t\tnowLabel,\r\n\t\tnow,\r\n\t\tfuture,\r\n\t\tround\r\n\t}) {\r\n\t\t// If no step matches, then output an empty string.\r\n\t\tif (!step) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (step.format) {\r\n\t\t\treturn step.format(timestamp, this.locale, {\r\n\t\t\t\tformatAs: (unit, value) => {\r\n\t\t\t\t\t// Mimicks `Intl.RelativeTimeFormat.format()`.\r\n\t\t\t\t\treturn this.formatValue(value, unit, {\r\n\t\t\t\t\t\tlabels,\r\n\t\t\t\t\t\tfuture\r\n\t\t\t\t\t})\r\n\t\t\t\t},\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// \"unit\" is now called \"formatAs\".\r\n\t\tconst unit = step.unit || step.formatAs\r\n\r\n\t\tif (!unit) {\r\n\t\t\tthrow new Error(`[javascript-time-ago] Each step must define either \\`formatAs\\` or \\`format()\\`. Step: ${JSON.stringify(step)}`)\r\n\t\t}\r\n\r\n\t\t// `Intl.RelativeTimeFormat` doesn't operate in \"now\" units.\r\n\t\t// Therefore, threat \"now\" as a special case.\r\n\t\tif (unit === 'now') {\r\n\t\t\treturn nowLabel\r\n\t\t}\r\n\r\n\t\t// Amount in units.\r\n\t\tlet amount = Math.abs(secondsPassed) / getStepDenominator(step)\r\n\r\n\t\t// Apply granularity to the time amount\r\n\t\t// (and fallback to the previous step\r\n\t\t// if the first level of granularity\r\n\t\t// isn't met by this amount)\r\n\t\t//\r\n\t\t// `granularity` — (advanced) Time interval value \"granularity\".\r\n\t\t// For example, it could be set to `5` for minutes to allow only 5-minute increments\r\n\t\t// when formatting time intervals: `0 minutes`, `5 minutes`, `10 minutes`, etc.\r\n\t\t// Perhaps this feature will be removed because there seem to be no use cases\r\n\t\t// of it in the real world.\r\n\t\t//\r\n\t\tif (step.granularity) {\r\n\t\t\t// Recalculate the amount of seconds passed based on granularity\r\n\t\t\tamount = getRoundFunction(round)(amount / step.granularity) * step.granularity\r\n\t\t}\r\n\r\n\t\tlet valueForFormatting = -1 * Math.sign(secondsPassed) * getRoundFunction(round)(amount)\r\n\r\n\t\t// By default, this library formats a `0` in \"past\" mode,\r\n\t\t// unless `future: true` option is passed.\r\n\t\t// This is different to `relative-time-format`'s behavior\r\n\t\t// which formats a `0` in \"future\" mode by default, unless it's a `-0`.\r\n\t\t// So, convert `0` to `-0` if `future: true` option wasn't passed.\r\n\t\t// `=== 0` matches both `0` and `-0`.\r\n\t\tif (valueForFormatting === 0) {\r\n\t\t\tif (future) {\r\n\t\t\t\tvalueForFormatting = 0\r\n\t\t\t} else {\r\n\t\t\t\tvalueForFormatting = -0\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tswitch (labelsType) {\r\n\t\t\tcase 'long':\r\n\t\t\tcase 'short':\r\n\t\t\tcase 'narrow':\r\n\t\t\t\t// Format the amount using `Intl.RelativeTimeFormat`.\r\n\t\t\t\treturn this.getFormatter(labelsType).format(valueForFormatting, unit)\r\n\t\t\tdefault:\r\n\t\t\t\t// Format the amount.\r\n\t\t\t\t// (mimicks `Intl.RelativeTimeFormat` behavior for other time label styles)\r\n\t\t\t\treturn this.formatValue(valueForFormatting, unit, {\r\n\t\t\t\t\tlabels,\r\n\t\t\t\t\tfuture\r\n\t\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Mimicks what `Intl.RelativeTimeFormat` does for additional locale styles.\r\n\t * @param {number} value\r\n\t * @param {string} unit\r\n\t * @param {object} options.labels — Relative time labels.\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default, but should have been `true` actually.\r\n\t * @return {string}\r\n\t */\r\n\tformatValue(value, unit, { labels, future }) {\r\n\t\treturn this.getFormattingRule(labels, unit, value, { future })\r\n\t\t\t.replace('{0}', this.formatNumber(Math.abs(value)))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns formatting rule for `value` in `units` (either in past or in future).\r\n\t * @param {object} formattingRules — Relative time labels for different units.\r\n\t * @param {string} unit - Time interval measurement unit.\r\n\t * @param {number} value - Time interval value.\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default.\r\n\t * @return {string}\r\n\t * @example\r\n\t * // Returns \"{0} days ago\"\r\n\t * getFormattingRule(en.long, \"day\", -2, 'en')\r\n\t */\r\n\tgetFormattingRule(formattingRules, unit, value, { future }) {\r\n\t\t// Passing the language is required in order to\r\n\t\t// be able to correctly classify the `value` as a number.\r\n\t\tconst locale = this.locale\r\n\t\tformattingRules = formattingRules[unit]\r\n\t\t// Check for a special \"compacted\" rules case:\r\n\t\t// if formatting rules are the same for \"past\" and \"future\",\r\n\t\t// and also for all possible `value`s, then those rules are\r\n\t\t// stored as a single string.\r\n\t\tif (typeof formattingRules === 'string') {\r\n\t\t\treturn formattingRules\r\n\t\t}\r\n\t\t// Choose either \"past\" or \"future\" based on time `value` sign.\r\n\t\t// If \"past\" is same as \"future\" then they're stored as \"other\".\r\n\t\t// If there's only \"other\" then it's being collapsed.\r\n\t\tconst pastOrFuture = value === 0 ? (future ? 'future' : 'past') : (value < 0 ? 'past' : 'future')\r\n\t\tconst quantifierRules = formattingRules[pastOrFuture] || formattingRules\r\n\t\t// Bundle size optimization technique.\r\n\t\tif (typeof quantifierRules === 'string') {\r\n\t\t\treturn quantifierRules\r\n\t\t}\r\n\t\t// Quantify `value`.\r\n\t\tconst quantifier = this.getPluralRules().select(Math.abs(value))\r\n\t\t// \"other\" rule is supposed to always be present.\r\n\t\t// If only \"other\" rule is present then \"rules\" is not an object and is a string.\r\n\t\treturn quantifierRules[quantifier] || quantifierRules.other\r\n\t}\r\n\r\n\t/**\r\n\t * Formats a number into a string.\r\n\t * Uses `Intl.NumberFormat` when available.\r\n\t * @param {number} number\r\n\t * @return {string}\r\n\t */\r\n\tformatNumber(number) {\r\n\t\treturn this.numberFormat ? this.numberFormat.format(number) : String(number)\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an `Intl.RelativeTimeFormat` for a given `labelsType`.\r\n\t * @param {string} labelsType\r\n\t * @return {object} `Intl.RelativeTimeFormat` instance\r\n\t */\r\n\tgetFormatter(labelsType) {\r\n\t\t// `Intl.RelativeTimeFormat` instance creation is (hypothetically) assumed\r\n\t\t// a lengthy operation so the instances are cached and reused.\r\n\t\treturn this.relativeTimeFormatCache.get(this.locale, labelsType) ||\r\n\t\t\tthis.relativeTimeFormatCache.put(this.locale, labelsType, new this.IntlRelativeTimeFormat(this.locale, { style: labelsType }))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an `Intl.PluralRules` instance.\r\n\t * @return {object} `Intl.PluralRules` instance\r\n\t */\r\n\tgetPluralRules() {\r\n\t\t// `Intl.PluralRules` instance creation is (hypothetically) assumed\r\n\t\t// a lengthy operation so the instances are cached and reused.\r\n\t\treturn this.pluralRulesCache.get(this.locale) ||\r\n\t\t\tthis.pluralRulesCache.put(this.locale, new this.IntlPluralRules(this.locale))\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets localized labels for this type of labels.\r\n\t *\r\n\t * @param {(string|string[])} labelsType - Relative date/time labels type.\r\n\t * If it's an array then all label types are tried\r\n\t * until a suitable one is found.\r\n\t *\r\n\t * @returns {Object} Returns an object of shape { labelsType, labels }\r\n\t */\r\n\tgetLabels(labelsType = []) {\r\n\t\t// Convert `labels` to an array.\r\n\t\tif (typeof labelsType === 'string') {\r\n\t\t\tlabelsType = [labelsType]\r\n\t\t}\r\n\r\n\t\t// Supports legacy \"tiny\" and \"mini-time\" label styles.\r\n\t\tlabelsType = labelsType.map((labelsType) => {\r\n\t\t\tswitch (labelsType) {\r\n\t\t\t\tcase 'tiny':\r\n\t\t\t\tcase 'mini-time':\r\n\t\t\t\t\treturn 'mini'\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn labelsType\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// \"long\" labels type is the default one.\r\n\t\t// (it's always present for all languages)\r\n\t\tlabelsType = labelsType.concat('long')\r\n\r\n\t\t// Find a suitable labels type.\r\n\t\tconst localeData = getLocaleData(this.locale)\r\n\t\tfor (const _labelsType of labelsType) {\r\n\t\t\tif (localeData[_labelsType]) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tlabelsType: _labelsType,\r\n\t\t\t\t\tlabels: localeData[_labelsType]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Default locale global variable.\r\n */\r\nlet defaultLocale = 'en'\r\n\r\n/**\r\n * Gets default locale.\r\n * @return {string} locale\r\n */\r\nTimeAgo.getDefaultLocale = () => defaultLocale\r\n\r\n/**\r\n * Sets default locale.\r\n * @param {string} locale\r\n */\r\nTimeAgo.setDefaultLocale = (locale) => defaultLocale = locale\r\n\r\n/**\r\n * Adds locale data for a specific locale and marks the locale as default.\r\n * @param {Object} localeData\r\n */\r\nTimeAgo.addDefaultLocale = function(localeData) {\r\n\tif (defaultLocaleHasBeenSpecified) {\r\n\t\treturn console.error('[javascript-time-ago] `TimeAgo.addDefaultLocale()` can only be called once. To add other locales, use `TimeAgo.addLocale()`.')\r\n\t}\r\n\tdefaultLocaleHasBeenSpecified = true\r\n\tTimeAgo.setDefaultLocale(localeData.locale)\r\n\tTimeAgo.addLocale(localeData)\r\n}\r\n\r\nlet defaultLocaleHasBeenSpecified\r\n\r\n/**\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n */\r\nTimeAgo.addLocale = function(localeData) {\r\n\taddLocaleData(localeData)\r\n\tRelativeTimeFormatPolyfill.addLocale(localeData)\r\n}\r\n\r\n/**\r\n * (legacy alias)\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n * @deprecated\r\n */\r\nTimeAgo.locale = TimeAgo.addLocale\r\n\r\n/**\r\n * Adds custom labels to locale data.\r\n * @param {string} locale\r\n * @param {string} name\r\n * @param {object} labels\r\n */\r\nTimeAgo.addLabels = (locale, name, labels) => {\r\n\tlet localeData = getLocaleData(locale)\r\n\tif (!localeData) {\r\n\t\taddLocaleData({\r\n\t\t\tlocale\r\n\t\t})\r\n\t\tlocaleData = getLocaleData(locale)\r\n\t\t// throw new Error(`[javascript-time-ago] No data for locale \"${locale}\"`)\r\n\t}\r\n\tlocaleData[name] = labels\r\n}\r\n\r\n// Normalizes `.format()` `time` argument.\r\nfunction getTimestamp(input) {\r\n\tif (input.constructor === Date || isMockedDate(input)) {\r\n\t\treturn input.getTime()\r\n\t}\r\n\r\n\tif (typeof input === 'number') {\r\n\t\treturn input\r\n\t}\r\n\r\n\t// For some weird reason istanbul doesn't see this `throw` covered.\r\n\t/* istanbul ignore next */\r\n\tthrow new Error(`Unsupported relative time formatter input: ${typeof input}, ${input}`)\r\n}\r\n\r\n// During testing via some testing libraries `Date`s aren't actually `Date`s.\r\n// https://github.com/catamphetamine/javascript-time-ago/issues/22\r\nfunction isMockedDate(object) {\r\n\treturn typeof object === 'object' && typeof object.getTime === 'function'\r\n}\r\n\r\n// Get available time interval measurement units.\r\nfunction getTimeIntervalMeasurementUnits(allowedUnits, labels, nowLabel) {\r\n\t// Get all time interval measurement units that're available\r\n\t// in locale data for a given time labels style.\r\n\tlet units = Object.keys(labels)\r\n\r\n\t// `now` unit is handled separately and is shipped in its own `now.json` file.\r\n\t// `now.json` isn't present for all locales, so it could be substituted with\r\n\t// \".second.current\".\r\n\t// Add `now` unit if it's available in locale data.\r\n\tif (nowLabel) {\r\n\t\tunits.push('now')\r\n\t}\r\n\r\n\t// If only a specific set of available time measurement units can be used\r\n\t// then only those units are allowed (if they're present in locale data).\r\n\tif (allowedUnits) {\r\n\t\tunits = allowedUnits.filter(unit => unit === 'now' || units.indexOf(unit) >= 0)\r\n\t}\r\n\r\n\treturn units\r\n}\r\n\r\nfunction getNowLabel(labels, nowLabels, longLabels, future) {\r\n\tconst nowLabel = labels.now || (nowLabels && nowLabels.now)\r\n\t// Specific \"now\" message form extended locale data (if present).\r\n\tif (nowLabel) {\r\n\t\t// Bundle size optimization technique.\r\n\t\tif (typeof nowLabel === 'string') {\r\n\t\t\treturn nowLabel\r\n\t\t}\r\n\t\t// Not handling `value === 0` as `localeData.now.current` here\r\n\t\t// because it wouldn't make sense: \"now\" is a moment,\r\n\t\t// so one can't possibly differentiate between a\r\n\t\t// \"previous\" moment, a \"current\" moment and a \"next moment\".\r\n\t\t// It can only be differentiated between \"past\" and \"future\".\r\n\t\tif (future) {\r\n\t\t\treturn nowLabel.future\r\n\t\t} else {\r\n\t\t\treturn nowLabel.past\r\n\t\t}\r\n\t}\r\n\t// Use \".second.current\" as \"now\" message.\r\n\tif (longLabels && longLabels.second && longLabels.second.current) {\r\n\t\treturn longLabels.second.current\r\n\t}\r\n}\r\n\r\nfunction isStyle(variable) {\r\n\treturn typeof variable === 'string' || isStyleObject(variable)\r\n}","import round from './round'\r\nimport roundMinute from './roundMinute'\r\n// `approximate` style is deprecated.\r\nimport approximate from './approximate'\r\n// `approximateTime` style is deprecated.\r\nimport approximateTime from './approximateTime'\r\nimport twitter from './twitter'\r\nimport twitterNow from './twitterNow'\r\nimport twitterMinute from './twitterMinute'\r\nimport twitterMinuteNow from './twitterMinuteNow'\r\nimport twitterFirstMinute from './twitterFirstMinute'\r\nimport mini from './mini'\r\nimport miniNow from './miniNow'\r\nimport miniMinute from './miniMinute'\r\nimport miniMinuteNow from './miniMinuteNow'\r\n\r\nexport default function getStyleByName(style) {\r\n\tswitch (style) {\r\n\t\t// \"default\" style name is deprecated.\r\n\t\tcase 'default':\r\n\t\tcase 'round':\r\n\t\t\treturn round\r\n\t\tcase 'round-minute':\r\n\t\t\treturn roundMinute\r\n\t\tcase 'approximate':\r\n\t\t\treturn approximate\r\n\t\t// \"time\" style name is deprecated.\r\n\t\tcase 'time':\r\n\t\tcase 'approximate-time':\r\n\t\t\treturn approximateTime\r\n\t\tcase 'mini':\r\n\t\t\treturn mini\r\n\t\tcase 'mini-now':\r\n\t\t\treturn miniNow\r\n\t\tcase 'mini-minute':\r\n\t\t\treturn miniMinute\r\n\t\tcase 'mini-minute-now':\r\n\t\t\treturn miniMinuteNow\r\n\t\tcase 'twitter':\r\n\t\t\treturn twitter\r\n\t\tcase 'twitter-now':\r\n\t\t\treturn twitterNow\r\n\t\tcase 'twitter-minute':\r\n\t\t\treturn twitterMinute\r\n\t\tcase 'twitter-minute-now':\r\n\t\t\treturn twitterMinuteNow\r\n\t\tcase 'twitter-first-minute':\r\n\t\t\treturn twitterFirstMinute\r\n\t\tdefault:\r\n\t\t\t// For historical reasons, the default style is \"approximate\".\r\n\t\t\treturn approximate\r\n\t}\r\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\n\nexports.coerce = coerce;\nexports.empty = empty;\nexports.equals = equals;\nexports.fromHex = fromHex;\nexports.fromString = fromString;\nexports.isBinary = isBinary;\nexports.toHex = toHex;\nexports.toString = toString;\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","var defineProperty = require(\"./defineProperty.js\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/* eslint-disable max-lines */\nimport { Primitive, Span as SpanInterface, SpanContext, Transaction } from '@sentry/types';\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nexport class SpanRecorder {\n public spans: Span[] = [];\n\n private readonly _maxlen: number;\n\n public constructor(maxlen: number = 1000) {\n this._maxlen = maxlen;\n }\n\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n public add(span: Span): void {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n } else {\n this.spans.push(span);\n }\n }\n}\n\n/**\n * Span contains all data about a span\n */\nexport class Span implements SpanInterface {\n /**\n * @inheritDoc\n */\n public traceId: string = uuid4();\n\n /**\n * @inheritDoc\n */\n public spanId: string = uuid4().substring(16);\n\n /**\n * @inheritDoc\n */\n public parentSpanId?: string;\n\n /**\n * Internal keeper of the status\n */\n public status?: SpanStatusType | string;\n\n /**\n * @inheritDoc\n */\n public sampled?: boolean;\n\n /**\n * Timestamp in seconds when the span was created.\n */\n public startTimestamp: number = timestampWithMs();\n\n /**\n * Timestamp in seconds when the span ended.\n */\n public endTimestamp?: number;\n\n /**\n * @inheritDoc\n */\n public op?: string;\n\n /**\n * @inheritDoc\n */\n public description?: string;\n\n /**\n * @inheritDoc\n */\n public tags: { [key: string]: Primitive } = {};\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public data: { [key: string]: any } = {};\n\n /**\n * List of spans that were finalized\n */\n public spanRecorder?: SpanRecorder;\n\n /**\n * @inheritDoc\n */\n public transaction?: Transaction;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext?: SpanContext) {\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n\n /**\n * @inheritDoc\n * @deprecated\n */\n public child(\n spanContext?: Pick>,\n ): Span {\n return this.startChild(spanContext);\n }\n\n /**\n * @inheritDoc\n */\n public startChild(\n spanContext?: Pick>,\n ): Span {\n const childSpan = new Span({\n ...spanContext,\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId,\n });\n\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n\n childSpan.transaction = this.transaction;\n\n return childSpan;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public setData(key: string, value: any): this {\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatusType): this {\n this.status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setHttpStatus(httpStatus: number): this {\n this.setTag('http.status_code', String(httpStatus));\n const spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public isSuccess(): boolean {\n return this.status === 'ok';\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): void {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n }\n\n /**\n * @inheritDoc\n */\n public toTraceparent(): string {\n let sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return `${this.traceId}-${this.spanId}${sampledString}`;\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): SpanContext {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(spanContext: SpanContext): this {\n this.data = spanContext.data ?? {};\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = spanContext.spanId ?? this.spanId;\n this.startTimestamp = spanContext.startTimestamp ?? this.startTimestamp;\n this.status = spanContext.status;\n this.tags = spanContext.tags ?? {};\n this.traceId = spanContext.traceId ?? this.traceId;\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getTraceContext(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n status?: string;\n tags?: { [key: string]: Primitive };\n trace_id: string;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n public toJSON(): {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: { [key: string]: any };\n description?: string;\n op?: string;\n parent_span_id?: string;\n span_id: string;\n start_timestamp: number;\n status?: string;\n tags?: { [key: string]: Primitive };\n timestamp?: number;\n trace_id: string;\n } {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n }\n}\n\nexport type SpanStatusType =\n /** The operation completed successfully. */\n | 'ok'\n /** Deadline expired before operation could complete. */\n | 'deadline_exceeded'\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n | 'unauthenticated'\n /** 403 Forbidden */\n | 'permission_denied'\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n | 'not_found'\n /** 429 Too Many Requests */\n | 'resource_exhausted'\n /** Client specified an invalid argument. 4xx. */\n | 'invalid_argument'\n /** 501 Not Implemented */\n | 'unimplemented'\n /** 503 Service Unavailable */\n | 'unavailable'\n /** Other/generic 5xx. */\n | 'internal_error'\n /** Unknown. Any non-standard HTTP status code. */\n | 'unknown_error'\n /** The operation was cancelled (typically by the user). */\n | 'cancelled'\n /** Already exists (409) */\n | 'already_exists'\n /** Operation was rejected because the system is not in a state required for the operation's */\n | 'failed_precondition'\n /** The operation was aborted, typically due to a concurrency issue. */\n | 'aborted'\n /** Operation was attempted past the valid range. */\n | 'out_of_range'\n /** Unrecoverable data loss or corruption */\n | 'data_loss';\n\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus: number): SpanStatusType {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n\n return 'unknown_error';\n}\n","import * as cbor from 'simple-cbor';\nimport { makeNonce, lebEncode } from '@dfinity/candid';\nconst NANOSECONDS_PER_MILLISECONDS = BigInt(1000000);\nconst REPLICA_PERMITTED_DRIFT_MILLISECONDS = BigInt(60 * 1000);\nexport class Expiry {\n constructor(deltaInMSec) {\n // Use bigint because it can overflow the maximum number allowed in a double float.\n this._value =\n (BigInt(Date.now()) + BigInt(deltaInMSec) - REPLICA_PERMITTED_DRIFT_MILLISECONDS) *\n NANOSECONDS_PER_MILLISECONDS;\n }\n toCBOR() {\n // TODO: change this to take the minimum amount of space (it always takes 8 bytes now).\n return cbor.value.u64(this._value.toString(16), 16);\n }\n toHash() {\n return lebEncode(this._value);\n }\n}\n/**\n * Create a Nonce transform, which takes a function that returns a Buffer, and adds it\n * as the nonce to every call requests.\n * @param nonceFn A function that returns a buffer. By default uses a semi-random method.\n */\nexport function makeNonceTransform(nonceFn = makeNonce) {\n return async (request) => {\n // Nonce are only useful for async calls, to prevent replay attacks. Other types of\n // calls don't need Nonce so we just skip creating one.\n if (request.endpoint === \"call\" /* Call */) {\n request.body.nonce = nonceFn();\n }\n };\n}\n/**\n * Create a transform that adds a delay (by default 5 minutes) to the expiry.\n *\n * @param delayInMilliseconds The delay to add to the call time, in milliseconds.\n */\nexport function makeExpiryTransform(delayInMilliseconds) {\n return async (request) => {\n request.body.ingress_expiry = new Expiry(delayInMilliseconds);\n };\n}\n//# sourceMappingURL=transforms.js.map","/**\n * This module mostly exists for optimizations in the build process\n * through rollup and terser. We define some global constants which\n * are normally undefined. However terser overrides these with global\n * definitions which can be evaluated by the static analyzer when\n * creating a bundle.\n *\n * In turn the `isDebugBuild` and `isBrowserBundle` functions are pure\n * and can help us remove unused code from the bundles.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\ndeclare const __SENTRY_NO_DEBUG__: boolean | undefined;\n\n/**\n * Figures out if we're building with debug functionality.\n *\n * @returns true if this is a debug build\n */\nexport function isDebugBuild(): boolean {\n return typeof __SENTRY_NO_DEBUG__ !== 'undefined' && !__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","'use strict'\n\n// exports.Commented = require('./commented')\nexports.Diagnose = require('./diagnose')\nexports.Decoder = require('./decoder')\nexports.Encoder = require('./encoder')\nexports.Simple = require('./simple')\nexports.Tagged = require('./tagged')\n\n// exports.comment = exports.Commented.comment\nexports.decodeAll = exports.Decoder.decodeAll\nexports.decodeFirst = exports.Decoder.decodeFirst\nexports.diagnose = exports.Diagnose.diagnose\nexports.encode = exports.Encoder.encode\nexports.decode = exports.Decoder.decode\n\nexports.leveldb = {\n decode: exports.Decoder.decodeAll,\n encode: exports.Encoder.encode,\n buffer: true,\n name: 'cbor'\n}\n","\"use strict\";\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** @jsx jsx */\nvar React = __importStar(require(\"react\"));\nvar react_1 = require(\"@emotion/react\");\nvar helpers_1 = require(\"./helpers\");\nvar clip = react_1.keyframes(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n 0% {transform: rotate(0deg) scale(1)}\\n 50% {transform: rotate(180deg) scale(0.8)}\\n 100% {transform: rotate(360deg) scale(1)}\\n\"], [\"\\n 0% {transform: rotate(0deg) scale(1)}\\n 50% {transform: rotate(180deg) scale(0.8)}\\n 100% {transform: rotate(360deg) scale(1)}\\n\"])));\nvar Loader = /** @class */ (function (_super) {\n __extends(Loader, _super);\n function Loader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.style = function () {\n var _a = _this.props, size = _a.size, color = _a.color, speedMultiplier = _a.speedMultiplier;\n return react_1.css(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n background: transparent !important;\\n width: \", \";\\n height: \", \";\\n border-radius: 100%;\\n border: 2px solid;\\n border-color: \", \";\\n border-bottom-color: transparent;\\n display: inline-block;\\n animation: \", \" \", \"s 0s infinite linear;\\n animation-fill-mode: both;\\n \"], [\"\\n background: transparent !important;\\n width: \", \";\\n height: \", \";\\n border-radius: 100%;\\n border: 2px solid;\\n border-color: \", \";\\n border-bottom-color: transparent;\\n display: inline-block;\\n animation: \", \" \", \"s 0s infinite linear;\\n animation-fill-mode: both;\\n \"])), helpers_1.cssValue(size), helpers_1.cssValue(size), color, clip, 0.75 / speedMultiplier);\n };\n return _this;\n }\n Loader.prototype.render = function () {\n var _a = this.props, loading = _a.loading, css = _a.css;\n return loading ? react_1.jsx(\"span\", { css: [this.style(), css] }) : null;\n };\n Loader.defaultProps = helpers_1.sizeDefaults(35);\n return Loader;\n}(React.PureComponent));\nexports.default = Loader;\nvar templateObject_1, templateObject_2;\n","module.exports = require('./lib/axios');","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\n\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\n\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', instead received %s', args);\n }\n }\n }\n }\n\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n\n warn(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\',\\'cubic-bezier(x1,y1,x2,y2)\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\n\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle); // get union set and add compatible prefix\n\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n\n if (t < 1) {\n cafId = raf(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n var _super = _createSuper(Animate);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\n\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate;\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (deepEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nexport default Animate;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (Number.isFinite(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n var _super = _createSuper(AnimateGroupChild);\n\n function AnimateGroupChild() {\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\n\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Event, Exception, Mechanism, StackFrame } from '@sentry/types';\n\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\ninterface MsCryptoWindow extends Window {\n msCrypto?: Crypto;\n}\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4(): string {\n const global = getGlobalObject() as MsCryptoWindow;\n const crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n const arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n const pad = (num: number): string => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n // eslint-disable-next-line no-bitwise\n const r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not
href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n} {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n const lineno = frame.lineno || 0;\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && (exception as any).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bases = require('./util/bases.js');\n\nfunction toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.encoder.encode(array).substring(1);\n}\n\nexports.toString = toString;\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","import { getMainCarrier, Hub } from '@sentry/hub';\nimport {\n CustomSamplingContext,\n Integration,\n IntegrationClass,\n Options,\n SamplingContext,\n TransactionContext,\n} from '@sentry/types';\nimport { dynamicRequire, isNodeEnv, loadModule, logger } from '@sentry/utils';\n\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders(this: Hub): { [key: string]: string } {\n const scope = this.getScope();\n if (scope) {\n const span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction: T, options: Options, samplingContext: SamplingContext): T {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: 'explicitly_set' },\n });\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_sampler',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: 'inheritance' },\n });\n } else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_rate',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n logger.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n transaction.sampled = false;\n return transaction;\n }\n\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < (sampleRate as number | boolean);\n\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n logger.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n return transaction;\n }\n\n logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\n return transaction;\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate: unknown): boolean {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate as any) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n logger.warn(\n `[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n rate,\n )} of type ${JSON.stringify(typeof rate)}.`,\n );\n return false;\n }\n\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n logger.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);\n return false;\n }\n return true;\n}\n\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(\n this: Hub,\n transactionContext: TransactionContext,\n customSamplingContext?: CustomSamplingContext,\n): Transaction {\n const client = this.getClient();\n const options = (client && client.getOptions()) || {};\n\n let transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(\n hub: Hub,\n transactionContext: TransactionContext,\n idleTimeout?: number,\n onScope?: boolean,\n customSamplingContext?: CustomSamplingContext,\n): IdleTransaction {\n const client = hub.getClient();\n const options = (client && client.getOptions()) || {};\n\n let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number));\n }\n return transaction;\n}\n\n/**\n * @private\n */\nexport function _addTracingExtensions(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations(): void {\n const carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n\n const packageToIntegrationMapping: Record Integration> = {\n mongodb() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo();\n },\n mongoose() {\n const integration = dynamicRequire(module, './integrations/node/mongo') as {\n Mongo: IntegrationClass;\n };\n return new integration.Mongo({ mongoose: true });\n },\n mysql() {\n const integration = dynamicRequire(module, './integrations/node/mysql') as {\n Mysql: IntegrationClass;\n };\n return new integration.Mysql();\n },\n pg() {\n const integration = dynamicRequire(module, './integrations/node/postgres') as {\n Postgres: IntegrationClass;\n };\n return new integration.Postgres();\n },\n };\n\n const mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(moduleName => !!loadModule(moduleName))\n .map(pkg => {\n try {\n return packageToIntegrationMapping[pkg]();\n } catch (e) {\n return undefined;\n }\n })\n .filter(p => p) as Integration[];\n\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods(): void {\n _addTracingExtensions();\n\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\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 required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","export default function number(x) {\n return +x;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/types';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = [];\n\n if (!_isNil(props.children)) {\n if (props.breakAll) {\n words = props.children.toString().split('');\n } else {\n words = props.children.toString().split(BREAKING_SPACES);\n }\n }\n\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = props.breakAll ? 0 : getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar calculateWordsByLines = function calculateWordsByLines(props, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var shouldLimitLines = isNumber(props.maxLines);\n var text = props.children;\n\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n };\n\n var originalResult = calculate(initialWordsWithComputedWith);\n\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n\n if (!shouldLimitLines) {\n return originalResult;\n }\n\n var suffix = '…';\n\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths(_objectSpread(_objectSpread({}, props), {}, {\n children: tempText + suffix\n })).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > props.maxLines || findLongestLine(result).width > lineWidth;\n return [doesOverflow, result];\n };\n\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n\n iterations++;\n } // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n\n\n return trimmedResult || originalResult;\n};\n\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\n\nvar getWordsByLines = function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(props.children);\n }\n\n return calculateWordsByLines(props, wordsWithComputedWidth, spaceWidth, props.width, props.scaleToFit);\n }\n }\n\n return getWordsWithoutCalculate(props.children);\n};\n\nexport var Text = /*#__PURE__*/function (_Component) {\n _inherits(Text, _Component);\n\n var _super = _createSuper(Text);\n\n function Text() {\n var _this;\n\n _classCallCheck(this, Text);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {};\n return _this;\n }\n\n _createClass(Text, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n breakAll = _this$props.breakAll,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = this.props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.width !== prevState.prevWidth || nextProps.scaleToFit !== prevState.prevScaleToFit || nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll) {\n var needCalculate = nextProps.children !== prevState.prevChildren || nextProps.style !== prevState.prevStyle || nextProps.breakAll !== prevState.prevBreakAll;\n return {\n prevWidth: nextProps.width,\n prevScaleToFit: nextProps.scaleToFit,\n prevChildren: nextProps.children,\n prevStyle: nextProps.style,\n wordsByLines: getWordsByLines(nextProps, needCalculate)\n };\n }\n\n return null;\n }\n }]);\n\n return Text;\n}(Component);\nText.defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end' // Maintain compat with existing charts / default SVG behavior\n\n};","import { isRegExp, isString } from './is';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input: any[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value: string, pattern: RegExp | string): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return (pattern as RegExp).test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString: string): string {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\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\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.warn = exports.log = exports.delayPromise = exports.getSharedFunctionDataPrincipal = exports.getSharedFunctionData = exports.isErrWrongTopology = exports.isErrTemporarilyUnavailable = exports.createErrRestart = exports.createErrRetry = exports.createErrFatal = exports.createProceedResult = exports.createErrResult = exports.createOkResult = exports.isProceed = exports.isErr = exports.isOk = exports.hasOwnProperty = void 0;\nvar principal_1 = require(\"@dfinity/principal\");\nvar okResultKey = \"ok\";\nvar errResultKey = \"err\";\nvar proceedResultKey = \"proceed\";\n/**\n * We want to check if prop is a property key of obj\n * @param obj - object\n * @param prop - property\n */\nfunction hasOwnProperty(obj, prop) {\n return obj && obj.hasOwnProperty(prop);\n}\nexports.hasOwnProperty = hasOwnProperty;\nvar isOk = function (obj) {\n return hasOwnProperty(obj, okResultKey);\n};\nexports.isOk = isOk;\nvar isErr = function (obj) {\n return hasOwnProperty(obj, errResultKey);\n};\nexports.isErr = isErr;\nvar isProceed = function (obj) {\n return hasOwnProperty(obj, proceedResultKey);\n};\nexports.isProceed = isProceed;\nvar createOkResult = function (value) {\n var _a;\n return _a = {}, _a[okResultKey] = value, _a;\n};\nexports.createOkResult = createOkResult;\nvar createErrResult = function (value) {\n var _a;\n return _a = {}, _a[errResultKey] = value, _a;\n};\nexports.createErrResult = createErrResult;\nvar createProceedResult = function (value) {\n var _a;\n return _a = {}, _a[proceedResultKey] = value, _a;\n};\nexports.createProceedResult = createProceedResult;\nvar createErrFatal = function () {\n return (0, exports.createErrResult)(\"fatal\");\n};\nexports.createErrFatal = createErrFatal;\nvar createErrRetry = function () {\n return (0, exports.createErrResult)(\"retry\");\n};\nexports.createErrRetry = createErrRetry;\nvar createErrRestart = function () {\n return (0, exports.createErrResult)(\"restart\");\n};\nexports.createErrRestart = createErrRestart;\nvar isErrTemporarilyUnavailable = function (obj) {\n return hasOwnProperty(obj, \"temporarilyUnavailable\");\n};\nexports.isErrTemporarilyUnavailable = isErrTemporarilyUnavailable;\nvar isErrWrongTopology = function (obj) {\n return hasOwnProperty(obj, \"wrongTopology\");\n};\nexports.isErrWrongTopology = isErrWrongTopology;\nvar getSharedFunctionData = function (value) {\n try {\n if (Array.isArray(value)) {\n var newCoordinator = value;\n if (newCoordinator.length === 2) {\n var principal = principal_1.Principal.from(newCoordinator[0]);\n var methodName = newCoordinator[1];\n return [principal, methodName];\n }\n }\n }\n catch (e) {\n (0, exports.warn)(\"util.getSharedFunctionData\", e);\n }\n return undefined;\n};\nexports.getSharedFunctionData = getSharedFunctionData;\nvar getSharedFunctionDataPrincipal = function (value) {\n try {\n if (Array.isArray(value)) {\n var newCoordinator = value;\n if (newCoordinator.length === 2) {\n var principal = principal_1.Principal.from(newCoordinator[0]);\n return principal;\n }\n }\n }\n catch (e) {\n (0, exports.warn)(\"util.getSharedFunctionDataPrincipal\", e);\n }\n return undefined;\n};\nexports.getSharedFunctionDataPrincipal = getSharedFunctionDataPrincipal;\nvar delayPromise = function (duration) {\n return new Promise(function (resolve) { return setTimeout(resolve, duration); });\n};\nexports.delayPromise = delayPromise;\nfunction log() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n dumpToWindow(\"log\", args);\n}\nexports.log = log;\nvar warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n dumpToWindow(\"warn\", args);\n};\nexports.warn = warn;\nvar usergeekLogName = \"UsergeekLog\";\nfunction dumpToWindow(ctx, value) {\n window[usergeekLogName] = window[usergeekLogName] || {};\n window[usergeekLogName][ctx] = window[usergeekLogName][ctx] || [];\n window[usergeekLogName][ctx].push(value);\n}\n//# sourceMappingURL=utils.js.map","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bytes = require('../bytes.js');\nvar varint = require('../varint.js');\n\nconst create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nconst decode = multihash => {\n const bytes$1 = bytes.coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes$1);\n const [size, digestOffset] = varint.decode(bytes$1.subarray(sizeOffset));\n const digest = bytes$1.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes$1);\n};\nconst equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && bytes.equals(a.bytes, b.bytes);\n }\n};\nclass Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}\n\nexports.Digest = Digest;\nexports.create = create;\nexports.decode = decode;\nexports.equals = equals;\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","import { Hub } from '@sentry/hub';\nimport { TransactionContext } from '@sentry/types';\nimport { logger, timestampWithMs } from '@sentry/utils';\n\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from './constants';\nimport { Span, SpanRecorder } from './span';\nimport { Transaction } from './transaction';\n\nexport const DEFAULT_IDLE_TIMEOUT = 1000;\nexport const HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nexport class IdleTransactionSpanRecorder extends SpanRecorder {\n public constructor(\n private readonly _pushActivity: (id: string) => void,\n private readonly _popActivity: (id: string) => void,\n public transactionSpanId: string = '',\n maxlen?: number,\n ) {\n super(maxlen);\n }\n\n /**\n * @inheritDoc\n */\n public add(span: Span): void {\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp?: number) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\n\nexport type BeforeFinishCallback = (transactionSpan: IdleTransaction, endTimestamp: number) => void;\n\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nexport class IdleTransaction extends Transaction {\n // Activities store a list of active spans\n public activities: Record = {};\n\n // Track state of activities in previous heartbeat\n private _prevHeartbeatString: string | undefined;\n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n private _heartbeatCounter: number = 0;\n\n // We should not use heartbeat if we finished a transaction\n private _finished: boolean = false;\n\n private readonly _beforeFinishCallbacks: BeforeFinishCallback[] = [];\n\n /**\n * If a transaction is created and no activities are added, we want to make sure that\n * it times out properly. This is cleared and not used when activities are added.\n */\n private _initTimeout: ReturnType | undefined;\n\n public constructor(\n transactionContext: TransactionContext,\n private readonly _idleHub?: Hub,\n /**\n * The time to wait in ms until the idle transaction will be finished.\n * @default 1000\n */\n private readonly _idleTimeout: number = DEFAULT_IDLE_TIMEOUT,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n private readonly _onScope: boolean = false,\n ) {\n super(transactionContext, _idleHub);\n\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._initTimeout = setTimeout(() => {\n if (!this._finished) {\n this.finish();\n }\n }, this._idleTimeout);\n }\n\n /** {@inheritDoc} */\n public finish(endTimestamp: number = timestampWithMs()): string | undefined {\n this._finished = true;\n this.activities = {};\n\n if (this.spanRecorder) {\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (const callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span: Span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.spanId) {\n return true;\n }\n\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n const keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n logger.log(\n '[Tracing] discarding Span since it happened after Transaction was finished',\n JSON.stringify(span, undefined, 2),\n );\n }\n return keepSpan;\n });\n\n logger.log('[Tracing] flushing IdleTransaction');\n } else {\n logger.log('[Tracing] No active IdleTransaction');\n }\n\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n public registerBeforeFinishCallback(callback: BeforeFinishCallback): void {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public initSpanRecorder(maxlen?: number): void {\n if (!this.spanRecorder) {\n const pushActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n const popActivity = (id: string): void => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n private _pushActivity(spanId: string): void {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n private _popActivity(spanId: string): void {\n if (this.activities[spanId]) {\n logger.log(`[Tracing] popActivity ${spanId}`);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n const timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n const end = timestampWithMs() + timeout / 1000;\n\n setTimeout(() => {\n if (!this._finished) {\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[1]);\n this.finish(end);\n }\n }, timeout);\n }\n }\n\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n private _beat(): void {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n const heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[0]);\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n private _pingHeartbeat(): void {\n logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, HEARTBEAT_INTERVAL);\n }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub?: Hub): void {\n if (hub) {\n const scope = hub.getScope();\n if (scope) {\n const transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n","import { getCurrentHub, Hub } from '@sentry/hub';\nimport {\n Event,\n Measurements,\n Transaction as TransactionInterface,\n TransactionContext,\n TransactionMetadata,\n} from '@sentry/types';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\n\nimport { Span as SpanClass, SpanRecorder } from './span';\n\n/** JSDoc */\nexport class Transaction extends SpanClass implements TransactionInterface {\n public name: string;\n\n public metadata: TransactionMetadata;\n\n private _measurements: Measurements = {};\n\n /**\n * The reference to the current hub.\n */\n private readonly _hub: Hub = getCurrentHub() as unknown as Hub;\n\n private _trimEnd?: boolean;\n\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(transactionContext: TransactionContext, hub?: Hub) {\n super(transactionContext);\n\n if (isInstanceOf(hub, Hub)) {\n this._hub = hub as Hub;\n }\n\n this.name = transactionContext.name || '';\n\n this.metadata = transactionContext.metadata || {};\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n this.transaction = this;\n }\n\n /**\n * JSDoc\n */\n public setName(name: string): void {\n this.name = name;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n public initSpanRecorder(maxlen: number = 1000): void {\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n public setMeasurements(measurements: Measurements): void {\n this._measurements = { ...measurements };\n }\n\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n public setMetadata(newMetadata: TransactionMetadata): void {\n this.metadata = { ...this.metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n public finish(endTimestamp?: number): string | undefined {\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n\n // just sets the end timestamp\n super.finish(endTimestamp);\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n const client = this._hub.getClient();\n const transport = client && client.getTransport && client.getTransport();\n if (transport && transport.recordLostEvent) {\n transport.recordLostEvent('sample_rate', 'transaction');\n }\n return undefined;\n }\n\n const finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce((prev: SpanClass, current: SpanClass) => {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n\n const transaction: Event = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: this.metadata,\n };\n\n const hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n logger.log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));\n transaction.measurements = this._measurements;\n }\n\n logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n public toContext(): TransactionContext {\n const spanContext = super.toContext();\n\n return dropUndefinedKeys({\n ...spanContext,\n name: this.name,\n trimEnd: this._trimEnd,\n });\n }\n\n /**\n * @inheritDoc\n */\n public updateWithContext(transactionContext: TransactionContext): this {\n super.updateWithContext(transactionContext);\n\n this.name = transactionContext.name ?? '';\n\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n}\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\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\n return target;\n}\n\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multibases = require('ipfs-core-utils/multibases');\nvar multicodecs = require('ipfs-core-utils/multicodecs');\nvar multihashes = require('ipfs-core-utils/multihashes');\nvar dagPB = require('@ipld/dag-pb');\nvar dagCBOR = require('@ipld/dag-cbor');\nvar identity = require('multiformats/hashes/identity');\nvar basics = require('multiformats/basics');\nvar index = require('./bitswap/index.js');\nvar index$1 = require('./block/index.js');\nvar index$2 = require('./bootstrap/index.js');\nvar index$3 = require('./config/index.js');\nvar index$4 = require('./dag/index.js');\nvar index$5 = require('./dht/index.js');\nvar index$6 = require('./diag/index.js');\nvar index$7 = require('./files/index.js');\nvar index$8 = require('./key/index.js');\nvar index$9 = require('./log/index.js');\nvar index$a = require('./name/index.js');\nvar index$b = require('./object/index.js');\nvar index$c = require('./pin/index.js');\nvar index$d = require('./pubsub/index.js');\nvar index$e = require('./refs/index.js');\nvar index$f = require('./repo/index.js');\nvar index$g = require('./stats/index.js');\nvar index$h = require('./swarm/index.js');\nvar add = require('./add.js');\nvar addAll = require('./add-all.js');\nvar cat = require('./cat.js');\nvar commands = require('./commands.js');\nvar dns = require('./dns.js');\nvar getEndpointConfig = require('./get-endpoint-config.js');\nvar get = require('./get.js');\nvar id = require('./id.js');\nvar isOnline = require('./is-online.js');\nvar ls = require('./ls.js');\nvar mount = require('./mount.js');\nvar ping = require('./ping.js');\nvar resolve = require('./resolve.js');\nvar start = require('./start.js');\nvar stop = require('./stop.js');\nvar version = require('./version.js');\nvar globSourceImport = require('ipfs-utils/src/files/glob-source.js');\nvar cid = require('multiformats/cid');\nvar multiaddr = require('multiaddr');\nvar urlSource_js = require('ipfs-utils/src/files/url-source.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () {\n return e[k];\n }\n });\n }\n });\n }\n n['default'] = e;\n return Object.freeze(n);\n}\n\nvar dagPB__namespace = /*#__PURE__*/_interopNamespace(dagPB);\nvar dagCBOR__namespace = /*#__PURE__*/_interopNamespace(dagCBOR);\nvar globSourceImport__default = /*#__PURE__*/_interopDefaultLegacy(globSourceImport);\nvar urlSource_js__default = /*#__PURE__*/_interopDefaultLegacy(urlSource_js);\n\nfunction create(options = {}) {\n const id$1 = {\n name: identity.identity.name,\n code: identity.identity.code,\n encode: id => id,\n decode: id => id\n };\n const multibaseCodecs = Object.values(basics.bases);\n (options.ipld && options.ipld.bases ? options.ipld.bases : []).forEach(base => multibaseCodecs.push(base));\n const multibases$1 = new multibases.Multibases({\n bases: multibaseCodecs,\n loadBase: options.ipld && options.ipld.loadBase\n });\n const blockCodecs = Object.values(basics.codecs);\n [\n dagPB__namespace,\n dagCBOR__namespace,\n id$1\n ].concat(options.ipld && options.ipld.codecs || []).forEach(codec => blockCodecs.push(codec));\n const multicodecs$1 = new multicodecs.Multicodecs({\n codecs: blockCodecs,\n loadCodec: options.ipld && options.ipld.loadCodec\n });\n const multihashHashers = Object.values(basics.hashes);\n (options.ipld && options.ipld.hashers ? options.ipld.hashers : []).forEach(hasher => multihashHashers.push(hasher));\n const multihashes$1 = new multihashes.Multihashes({\n hashers: multihashHashers,\n loadHasher: options.ipld && options.ipld.loadHasher\n });\n const client = {\n add: add.createAdd(options),\n addAll: addAll.createAddAll(options),\n bitswap: index.createBitswap(options),\n block: index$1.createBlock(options),\n bootstrap: index$2.createBootstrap(options),\n cat: cat.createCat(options),\n commands: commands.createCommands(options),\n config: index$3.createConfig(options),\n dag: index$4.createDag(multicodecs$1, options),\n dht: index$5.createDht(options),\n diag: index$6.createDiag(options),\n dns: dns.createDns(options),\n files: index$7.createFiles(options),\n get: get.createGet(options),\n getEndpointConfig: getEndpointConfig.createGetEndpointConfig(options),\n id: id.createId(options),\n isOnline: isOnline.createIsOnline(options),\n key: index$8.createKey(options),\n log: index$9.createLog(options),\n ls: ls.createLs(options),\n mount: mount.createMount(options),\n name: index$a.createName(options),\n object: index$b.createObject(multicodecs$1, options),\n pin: index$c.createPin(options),\n ping: ping.createPing(options),\n pubsub: index$d.createPubsub(options),\n refs: index$e.createRefs(options),\n repo: index$f.createRepo(options),\n resolve: resolve.createResolve(options),\n start: start.createStart(options),\n stats: index$g.createStats(options),\n stop: stop.createStop(options),\n swarm: index$h.createSwarm(options),\n version: version.createVersion(options),\n bases: multibases$1,\n codecs: multicodecs$1,\n hashers: multihashes$1\n };\n return client;\n}\nconst globSource = globSourceImport__default['default'];\n\nObject.defineProperty(exports, 'CID', {\n enumerable: true,\n get: function () {\n return cid.CID;\n }\n});\nObject.defineProperty(exports, 'multiaddr', {\n enumerable: true,\n get: function () {\n return multiaddr.Multiaddr;\n }\n});\nObject.defineProperty(exports, 'urlSource', {\n enumerable: true,\n get: function () {\n return urlSource_js__default['default'];\n }\n});\nexports.create = create;\nexports.globSource = globSource;\n","\"use strict\";\nconst { useEffect } = require('react');\nconst getMobileDetect = (userAgent) => {\n const isAndroid = () => Boolean(userAgent.match(/Android/i));\n const isIos = () => Boolean(userAgent.match(/iPhone|iPad|iPod/i));\n const isOpera = () => Boolean(userAgent.match(/Opera Mini/i));\n const isWindows = () => Boolean(userAgent.match(/IEMobile/i));\n const isSSR = () => Boolean(userAgent.match(/SSR/i));\n const isMobile = () => Boolean(isAndroid() || isIos() || isOpera() || isWindows());\n const isDesktop = () => Boolean(!isMobile() && !isSSR());\n return {\n isMobile,\n isDesktop,\n isAndroid,\n isIos,\n isSSR\n };\n};\nconst useMobileDetect = () => {\n const userAgent = typeof navigator === 'undefined' ? 'SSR' : navigator.userAgent;\n return getMobileDetect(userAgent);\n};\nmodule.exports = useMobileDetect;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n var _super = _createSuper(Dot);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);","'use strict'\nconst Buffer = require('safe-buffer').Buffer\n\nmodule.exports = class BufferPipe {\n /**\n * Creates a new instance of a pipe\n * @param {Buffer} buf - an optional buffer to start with\n */\n constructor (buf = Buffer.from([])) {\n this.buffer = buf\n this._bytesRead = 0\n this._bytesWrote = 0\n }\n\n /**\n * read `num` number of bytes from the pipe\n * @param {Number} num\n * @return {Buffer}\n */\n read (num) {\n this._bytesRead += num\n const data = this.buffer.slice(0, num)\n this.buffer = this.buffer.slice(num)\n return data\n }\n\n /**\n * Wites a buffer to the pipe\n * @param {Buffer} buf\n */\n write (buf) {\n buf = Buffer.from(buf)\n this._bytesWrote += buf.length\n this.buffer = Buffer.concat([this.buffer, buf])\n }\n\n /**\n * Whether or not there is more data to read from the buffer\n * returns {Boolean}\n */\n get end () {\n return !this.buffer.length\n }\n\n /**\n * returns the number of bytes read from the stream\n * @return {Integer}\n */\n get bytesRead () {\n return this._bytesRead\n }\n\n /**\n * returns the number of bytes wrote to the stream\n * @return {Integer}\n */\n get bytesWrote () {\n return this._bytesWrote\n }\n}\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\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 `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Constants used in the Firebase Storage library.\n */\n\n/**\n * Domain name for firebase storage.\n */\nexport const DEFAULT_HOST = 'firebasestorage.googleapis.com';\n\n/**\n * The key in Firebase config json for the storage bucket.\n */\nexport const CONFIG_STORAGE_BUCKET_KEY = 'storageBucket';\n\n/**\n * 2 minutes\n *\n * The timeout for all operations except upload.\n */\nexport const DEFAULT_MAX_OPERATION_RETRY_TIME = 2 * 60 * 1000;\n\n/**\n * 10 minutes\n *\n * The timeout for upload.\n */\nexport const DEFAULT_MAX_UPLOAD_RETRY_TIME = 10 * 60 * 1000;\n\n/**\n * This is the value of Number.MIN_SAFE_INTEGER, which is not well supported\n * enough for us to use it directly.\n */\nexport const MIN_SAFE_INTEGER = -9007199254740991;\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport { CONFIG_STORAGE_BUCKET_KEY } from './constants';\n\n/**\n * An error returned by the Firebase Storage SDK.\n * @public\n */\nexport class StorageError extends FirebaseError {\n private readonly _baseMessage: string;\n /**\n * Stores custom error data unque to StorageError.\n */\n customData: { serverResponse: string | null } = { serverResponse: null };\n\n /**\n * @param code - A StorageErrorCode string to be prefixed with 'storage/' and\n * added to the end of the message.\n * @param message - Error message.\n */\n constructor(code: StorageErrorCode, message: string) {\n super(\n prependCode(code),\n `Firebase Storage: ${message} (${prependCode(code)})`\n );\n this._baseMessage = this.message;\n // Without this, `instanceof StorageError`, in tests for example,\n // returns false.\n Object.setPrototypeOf(this, StorageError.prototype);\n }\n\n /**\n * Compares a StorageErrorCode against this error's code, filtering out the prefix.\n */\n _codeEquals(code: StorageErrorCode): boolean {\n return prependCode(code) === this.code;\n }\n\n /**\n * Optional response message that was added by the server.\n */\n get serverResponse(): null | string {\n return this.customData.serverResponse;\n }\n\n set serverResponse(serverResponse: string | null) {\n this.customData.serverResponse = serverResponse;\n if (this.customData.serverResponse) {\n this.message = `${this._baseMessage}\\n${this.customData.serverResponse}`;\n } else {\n this.message = this._baseMessage;\n }\n }\n}\n\nexport const errors = {};\n\n/**\n * @public\n * Error codes that can be attached to `StorageError`s.\n */\nexport const enum StorageErrorCode {\n // Shared between all platforms\n UNKNOWN = 'unknown',\n OBJECT_NOT_FOUND = 'object-not-found',\n BUCKET_NOT_FOUND = 'bucket-not-found',\n PROJECT_NOT_FOUND = 'project-not-found',\n QUOTA_EXCEEDED = 'quota-exceeded',\n UNAUTHENTICATED = 'unauthenticated',\n UNAUTHORIZED = 'unauthorized',\n UNAUTHORIZED_APP = 'unauthorized-app',\n RETRY_LIMIT_EXCEEDED = 'retry-limit-exceeded',\n INVALID_CHECKSUM = 'invalid-checksum',\n CANCELED = 'canceled',\n // JS specific\n INVALID_EVENT_NAME = 'invalid-event-name',\n INVALID_URL = 'invalid-url',\n INVALID_DEFAULT_BUCKET = 'invalid-default-bucket',\n NO_DEFAULT_BUCKET = 'no-default-bucket',\n CANNOT_SLICE_BLOB = 'cannot-slice-blob',\n SERVER_FILE_WRONG_SIZE = 'server-file-wrong-size',\n NO_DOWNLOAD_URL = 'no-download-url',\n INVALID_ARGUMENT = 'invalid-argument',\n INVALID_ARGUMENT_COUNT = 'invalid-argument-count',\n APP_DELETED = 'app-deleted',\n INVALID_ROOT_OPERATION = 'invalid-root-operation',\n INVALID_FORMAT = 'invalid-format',\n INTERNAL_ERROR = 'internal-error',\n UNSUPPORTED_ENVIRONMENT = 'unsupported-environment'\n}\n\nexport function prependCode(code: StorageErrorCode): string {\n return 'storage/' + code;\n}\n\nexport function unknown(): StorageError {\n const message =\n 'An unknown error occurred, please check the error payload for ' +\n 'server response.';\n return new StorageError(StorageErrorCode.UNKNOWN, message);\n}\n\nexport function objectNotFound(path: string): StorageError {\n return new StorageError(\n StorageErrorCode.OBJECT_NOT_FOUND,\n \"Object '\" + path + \"' does not exist.\"\n );\n}\n\nexport function bucketNotFound(bucket: string): StorageError {\n return new StorageError(\n StorageErrorCode.BUCKET_NOT_FOUND,\n \"Bucket '\" + bucket + \"' does not exist.\"\n );\n}\n\nexport function projectNotFound(project: string): StorageError {\n return new StorageError(\n StorageErrorCode.PROJECT_NOT_FOUND,\n \"Project '\" + project + \"' does not exist.\"\n );\n}\n\nexport function quotaExceeded(bucket: string): StorageError {\n return new StorageError(\n StorageErrorCode.QUOTA_EXCEEDED,\n \"Quota for bucket '\" +\n bucket +\n \"' exceeded, please view quota on \" +\n 'https://firebase.google.com/pricing/.'\n );\n}\n\nexport function unauthenticated(): StorageError {\n const message =\n 'User is not authenticated, please authenticate using Firebase ' +\n 'Authentication and try again.';\n return new StorageError(StorageErrorCode.UNAUTHENTICATED, message);\n}\n\nexport function unauthorizedApp(): StorageError {\n return new StorageError(\n StorageErrorCode.UNAUTHORIZED_APP,\n 'This app does not have permission to access Firebase Storage on this project.'\n );\n}\n\nexport function unauthorized(path: string): StorageError {\n return new StorageError(\n StorageErrorCode.UNAUTHORIZED,\n \"User does not have permission to access '\" + path + \"'.\"\n );\n}\n\nexport function retryLimitExceeded(): StorageError {\n return new StorageError(\n StorageErrorCode.RETRY_LIMIT_EXCEEDED,\n 'Max retry time for operation exceeded, please try again.'\n );\n}\n\nexport function invalidChecksum(\n path: string,\n checksum: string,\n calculated: string\n): StorageError {\n return new StorageError(\n StorageErrorCode.INVALID_CHECKSUM,\n \"Uploaded/downloaded object '\" +\n path +\n \"' has checksum '\" +\n checksum +\n \"' which does not match '\" +\n calculated +\n \"'. Please retry the upload/download.\"\n );\n}\n\nexport function canceled(): StorageError {\n return new StorageError(\n StorageErrorCode.CANCELED,\n 'User canceled the upload/download.'\n );\n}\n\nexport function invalidEventName(name: string): StorageError {\n return new StorageError(\n StorageErrorCode.INVALID_EVENT_NAME,\n \"Invalid event name '\" + name + \"'.\"\n );\n}\n\nexport function invalidUrl(url: string): StorageError {\n return new StorageError(\n StorageErrorCode.INVALID_URL,\n \"Invalid URL '\" + url + \"'.\"\n );\n}\n\nexport function invalidDefaultBucket(bucket: string): StorageError {\n return new StorageError(\n StorageErrorCode.INVALID_DEFAULT_BUCKET,\n \"Invalid default bucket '\" + bucket + \"'.\"\n );\n}\n\nexport function noDefaultBucket(): StorageError {\n return new StorageError(\n StorageErrorCode.NO_DEFAULT_BUCKET,\n 'No default bucket ' +\n \"found. Did you set the '\" +\n CONFIG_STORAGE_BUCKET_KEY +\n \"' property when initializing the app?\"\n );\n}\n\nexport function cannotSliceBlob(): StorageError {\n return new StorageError(\n StorageErrorCode.CANNOT_SLICE_BLOB,\n 'Cannot slice blob for upload. Please retry the upload.'\n );\n}\n\nexport function serverFileWrongSize(): StorageError {\n return new StorageError(\n StorageErrorCode.SERVER_FILE_WRONG_SIZE,\n 'Server recorded incorrect upload file size, please retry the upload.'\n );\n}\n\nexport function noDownloadURL(): StorageError {\n return new StorageError(\n StorageErrorCode.NO_DOWNLOAD_URL,\n 'The given file does not have any download URLs.'\n );\n}\n\n/**\n * @internal\n */\nexport function invalidArgument(message: string): StorageError {\n return new StorageError(StorageErrorCode.INVALID_ARGUMENT, message);\n}\n\nexport function invalidArgumentCount(\n argMin: number,\n argMax: number,\n fnName: string,\n real: number\n): StorageError {\n let countPart;\n let plural;\n if (argMin === argMax) {\n countPart = argMin;\n plural = argMin === 1 ? 'argument' : 'arguments';\n } else {\n countPart = 'between ' + argMin + ' and ' + argMax;\n plural = 'arguments';\n }\n return new StorageError(\n StorageErrorCode.INVALID_ARGUMENT_COUNT,\n 'Invalid argument count in `' +\n fnName +\n '`: Expected ' +\n countPart +\n ' ' +\n plural +\n ', received ' +\n real +\n '.'\n );\n}\n\nexport function appDeleted(): StorageError {\n return new StorageError(\n StorageErrorCode.APP_DELETED,\n 'The Firebase app was deleted.'\n );\n}\n\n/**\n * @param name - The name of the operation that was invalid.\n *\n * @internal\n */\nexport function invalidRootOperation(name: string): StorageError {\n return new StorageError(\n StorageErrorCode.INVALID_ROOT_OPERATION,\n \"The operation '\" +\n name +\n \"' cannot be performed on a root reference, create a non-root \" +\n \"reference using child, such as .child('file.png').\"\n );\n}\n\n/**\n * @param format - The format that was not valid.\n * @param message - A message describing the format violation.\n */\nexport function invalidFormat(format: string, message: string): StorageError {\n return new StorageError(\n StorageErrorCode.INVALID_FORMAT,\n \"String does not match format '\" + format + \"': \" + message\n );\n}\n\n/**\n * @param message - A message describing the internal error.\n */\nexport function unsupportedEnvironment(message: string): StorageError {\n throw new StorageError(StorageErrorCode.UNSUPPORTED_ENVIRONMENT, message);\n}\n\n/**\n * @param message - A message describing the internal error.\n */\nexport function internalError(message: string): StorageError {\n throw new StorageError(\n StorageErrorCode.INTERNAL_ERROR,\n 'Internal error: ' + message\n );\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Functionality related to the parsing/composition of bucket/\n * object location.\n */\n\nimport { invalidDefaultBucket, invalidUrl } from './error';\nimport { DEFAULT_HOST } from './constants';\n\n/**\n * Firebase Storage location data.\n *\n * @internal\n */\nexport class Location {\n private path_: string;\n\n constructor(public readonly bucket: string, path: string) {\n this.path_ = path;\n }\n\n get path(): string {\n return this.path_;\n }\n\n get isRoot(): boolean {\n return this.path.length === 0;\n }\n\n fullServerUrl(): string {\n const encode = encodeURIComponent;\n return '/b/' + encode(this.bucket) + '/o/' + encode(this.path);\n }\n\n bucketOnlyServerUrl(): string {\n const encode = encodeURIComponent;\n return '/b/' + encode(this.bucket) + '/o';\n }\n\n static makeFromBucketSpec(bucketString: string, host: string): Location {\n let bucketLocation;\n try {\n bucketLocation = Location.makeFromUrl(bucketString, host);\n } catch (e) {\n // Not valid URL, use as-is. This lets you put bare bucket names in\n // config.\n return new Location(bucketString, '');\n }\n if (bucketLocation.path === '') {\n return bucketLocation;\n } else {\n throw invalidDefaultBucket(bucketString);\n }\n }\n\n static makeFromUrl(url: string, host: string): Location {\n let location: Location | null = null;\n const bucketDomain = '([A-Za-z0-9.\\\\-_]+)';\n\n function gsModify(loc: Location): void {\n if (loc.path.charAt(loc.path.length - 1) === '/') {\n loc.path_ = loc.path_.slice(0, -1);\n }\n }\n const gsPath = '(/(.*))?$';\n const gsRegex = new RegExp('^gs://' + bucketDomain + gsPath, 'i');\n const gsIndices = { bucket: 1, path: 3 };\n\n function httpModify(loc: Location): void {\n loc.path_ = decodeURIComponent(loc.path);\n }\n const version = 'v[A-Za-z0-9_]+';\n const firebaseStorageHost = host.replace(/[.]/g, '\\\\.');\n const firebaseStoragePath = '(/([^?#]*).*)?$';\n const firebaseStorageRegExp = new RegExp(\n `^https?://${firebaseStorageHost}/${version}/b/${bucketDomain}/o${firebaseStoragePath}`,\n 'i'\n );\n const firebaseStorageIndices = { bucket: 1, path: 3 };\n\n const cloudStorageHost =\n host === DEFAULT_HOST\n ? '(?:storage.googleapis.com|storage.cloud.google.com)'\n : host;\n const cloudStoragePath = '([^?#]*)';\n const cloudStorageRegExp = new RegExp(\n `^https?://${cloudStorageHost}/${bucketDomain}/${cloudStoragePath}`,\n 'i'\n );\n const cloudStorageIndices = { bucket: 1, path: 2 };\n\n const groups = [\n { regex: gsRegex, indices: gsIndices, postModify: gsModify },\n {\n regex: firebaseStorageRegExp,\n indices: firebaseStorageIndices,\n postModify: httpModify\n },\n {\n regex: cloudStorageRegExp,\n indices: cloudStorageIndices,\n postModify: httpModify\n }\n ];\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i];\n const captures = group.regex.exec(url);\n if (captures) {\n const bucketValue = captures[group.indices.bucket];\n let pathValue = captures[group.indices.path];\n if (!pathValue) {\n pathValue = '';\n }\n location = new Location(bucketValue, pathValue);\n group.postModify(location);\n break;\n }\n }\n if (location == null) {\n throw invalidUrl(url);\n }\n return location;\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { StorageError } from './error';\nimport { Request } from './request';\n\n/**\n * A request whose promise always fails.\n */\nexport class FailRequest implements Request {\n promise_: Promise;\n\n constructor(error: StorageError) {\n this.promise_ = Promise.reject(error);\n }\n\n /** @inheritDoc */\n getPromise(): Promise {\n return this.promise_;\n }\n\n /** @inheritDoc */\n cancel(_appDelete = false): void {}\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { invalidArgument } from './error';\n\nexport function isJustDef(p: T | null | undefined): p is T | null {\n return p !== void 0;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction(p: unknown): p is Function {\n return typeof p === 'function';\n}\n\nexport function isNonArrayObject(p: unknown): boolean {\n return typeof p === 'object' && !Array.isArray(p);\n}\n\nexport function isString(p: unknown): p is string {\n return typeof p === 'string' || p instanceof String;\n}\n\nexport function isNativeBlob(p: unknown): p is Blob {\n return isNativeBlobDefined() && p instanceof Blob;\n}\n\nexport function isNativeBlobDefined(): boolean {\n return typeof Blob !== 'undefined';\n}\n\nexport function validateNumber(\n argument: string,\n minValue: number,\n maxValue: number,\n value: number\n): void {\n if (value < minValue) {\n throw invalidArgument(\n `Invalid value for '${argument}'. Expected ${minValue} or greater.`\n );\n }\n if (value > maxValue) {\n throw invalidArgument(\n `Invalid value for '${argument}'. Expected ${maxValue} or less.`\n );\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Functions to create and manipulate URLs for the server API.\n */\nimport { UrlParams } from './requestinfo';\n\nexport function makeUrl(\n urlPart: string,\n host: string,\n protocol: string\n): string {\n let origin = host;\n if (protocol == null) {\n origin = `https://${host}`;\n }\n return `${protocol}://${origin}/v0${urlPart}`;\n}\n\nexport function makeQueryString(params: UrlParams): string {\n const encode = encodeURIComponent;\n let queryPart = '?';\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n const nextPart = encode(key) + '=' + encode(params[key]);\n queryPart = queryPart + nextPart + '&';\n }\n }\n\n // Chop off the extra '&' or '?' on the end\n queryPart = queryPart.slice(0, -1);\n return queryPart;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Network headers */\nexport type Headers = Record;\n\n/** Response type exposed by the networking APIs. */\nexport type ConnectionType =\n | string\n | ArrayBuffer\n | Blob\n | NodeJS.ReadableStream;\n\n/**\n * A lightweight wrapper around XMLHttpRequest with a\n * goog.net.XhrIo-like interface.\n *\n * You can create a new connection by invoking `newTextConnection()`,\n * `newBytesConnection()` or `newStreamConnection()`.\n */\nexport interface Connection {\n /**\n * Sends a request to the provided URL.\n *\n * This method never rejects its promise. In case of encountering an error,\n * it sets an error code internally which can be accessed by calling\n * getErrorCode() by callers.\n */\n send(\n url: string,\n method: string,\n body?: ArrayBufferView | Blob | string | null,\n headers?: Headers\n ): Promise;\n\n getErrorCode(): ErrorCode;\n\n getStatus(): number;\n\n getResponse(): T;\n\n getErrorText(): string;\n\n /**\n * Abort the request.\n */\n abort(): void;\n\n getResponseHeader(header: string): string | null;\n\n addUploadProgressListener(listener: (p1: ProgressEvent) => void): void;\n\n removeUploadProgressListener(listener: (p1: ProgressEvent) => void): void;\n}\n\n/**\n * Error codes for requests made by the the XhrIo wrapper.\n */\nexport enum ErrorCode {\n NO_ERROR = 0,\n NETWORK_ERROR = 1,\n ABORT = 2\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Defines methods used to actually send HTTP requests from\n * abstract representations.\n */\n\nimport { id as backoffId, start, stop } from './backoff';\nimport { appDeleted, canceled, retryLimitExceeded, unknown } from './error';\nimport { ErrorHandler, RequestHandler, RequestInfo } from './requestinfo';\nimport { isJustDef } from './type';\nimport { makeQueryString } from './url';\nimport { Connection, ErrorCode, Headers, ConnectionType } from './connection';\n\nexport interface Request {\n getPromise(): Promise;\n\n /**\n * Cancels the request. IMPORTANT: the promise may still be resolved with an\n * appropriate value (if the request is finished before you call this method,\n * but the promise has not yet been resolved), so don't just assume it will be\n * rejected if you call this function.\n * @param appDelete - True if the cancelation came from the app being deleted.\n */\n cancel(appDelete?: boolean): void;\n}\n\n/**\n * Handles network logic for all Storage Requests, including error reporting and\n * retries with backoff.\n *\n * @param I - the type of the backend's network response.\n * @param - O the output type used by the rest of the SDK. The conversion\n * happens in the specified `callback_`.\n */\nclass NetworkRequest implements Request {\n private pendingConnection_: Connection | null = null;\n private backoffId_: backoffId | null = null;\n private resolve_!: (value?: O | PromiseLike) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private reject_!: (reason?: any) => void;\n private canceled_: boolean = false;\n private appDelete_: boolean = false;\n private promise_: Promise;\n\n constructor(\n private url_: string,\n private method_: string,\n private headers_: Headers,\n private body_: string | Blob | Uint8Array | null,\n private successCodes_: number[],\n private additionalRetryCodes_: number[],\n private callback_: RequestHandler,\n private errorCallback_: ErrorHandler | null,\n private timeout_: number,\n private progressCallback_: ((p1: number, p2: number) => void) | null,\n private connectionFactory_: () => Connection\n ) {\n this.promise_ = new Promise((resolve, reject) => {\n this.resolve_ = resolve as (value?: O | PromiseLike) => void;\n this.reject_ = reject;\n this.start_();\n });\n }\n\n /**\n * Actually starts the retry loop.\n */\n private start_(): void {\n const doTheRequest: (\n backoffCallback: (success: boolean, ...p2: unknown[]) => void,\n canceled: boolean\n ) => void = (backoffCallback, canceled) => {\n if (canceled) {\n backoffCallback(false, new RequestEndStatus(false, null, true));\n return;\n }\n const connection = this.connectionFactory_();\n this.pendingConnection_ = connection;\n\n const progressListener: (progressEvent: ProgressEvent) => void =\n progressEvent => {\n const loaded = progressEvent.loaded;\n const total = progressEvent.lengthComputable\n ? progressEvent.total\n : -1;\n if (this.progressCallback_ !== null) {\n this.progressCallback_(loaded, total);\n }\n };\n if (this.progressCallback_ !== null) {\n connection.addUploadProgressListener(progressListener);\n }\n\n // connection.send() never rejects, so we don't need to have a error handler or use catch on the returned promise.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n connection\n .send(this.url_, this.method_, this.body_, this.headers_)\n .then(() => {\n if (this.progressCallback_ !== null) {\n connection.removeUploadProgressListener(progressListener);\n }\n this.pendingConnection_ = null;\n const hitServer = connection.getErrorCode() === ErrorCode.NO_ERROR;\n const status = connection.getStatus();\n if (!hitServer || this.isRetryStatusCode_(status)) {\n const wasCanceled = connection.getErrorCode() === ErrorCode.ABORT;\n backoffCallback(\n false,\n new RequestEndStatus(false, null, wasCanceled)\n );\n return;\n }\n const successCode = this.successCodes_.indexOf(status) !== -1;\n backoffCallback(true, new RequestEndStatus(successCode, connection));\n });\n };\n\n /**\n * @param requestWentThrough - True if the request eventually went\n * through, false if it hit the retry limit or was canceled.\n */\n const backoffDone: (\n requestWentThrough: boolean,\n status: RequestEndStatus\n ) => void = (requestWentThrough, status) => {\n const resolve = this.resolve_;\n const reject = this.reject_;\n const connection = status.connection as Connection;\n if (status.wasSuccessCode) {\n try {\n const result = this.callback_(connection, connection.getResponse());\n if (isJustDef(result)) {\n resolve(result);\n } else {\n resolve();\n }\n } catch (e) {\n reject(e);\n }\n } else {\n if (connection !== null) {\n const err = unknown();\n err.serverResponse = connection.getErrorText();\n if (this.errorCallback_) {\n reject(this.errorCallback_(connection, err));\n } else {\n reject(err);\n }\n } else {\n if (status.canceled) {\n const err = this.appDelete_ ? appDeleted() : canceled();\n reject(err);\n } else {\n const err = retryLimitExceeded();\n reject(err);\n }\n }\n }\n };\n if (this.canceled_) {\n backoffDone(false, new RequestEndStatus(false, null, true));\n } else {\n this.backoffId_ = start(doTheRequest, backoffDone, this.timeout_);\n }\n }\n\n /** @inheritDoc */\n getPromise(): Promise {\n return this.promise_;\n }\n\n /** @inheritDoc */\n cancel(appDelete?: boolean): void {\n this.canceled_ = true;\n this.appDelete_ = appDelete || false;\n if (this.backoffId_ !== null) {\n stop(this.backoffId_);\n }\n if (this.pendingConnection_ !== null) {\n this.pendingConnection_.abort();\n }\n }\n\n private isRetryStatusCode_(status: number): boolean {\n // The codes for which to retry came from this page:\n // https://cloud.google.com/storage/docs/exponential-backoff\n const isFiveHundredCode = status >= 500 && status < 600;\n const extraRetryCodes = [\n // Request Timeout: web server didn't receive full request in time.\n 408,\n // Too Many Requests: you're getting rate-limited, basically.\n 429\n ];\n const isExtraRetryCode = extraRetryCodes.indexOf(status) !== -1;\n const isRequestSpecificRetryCode =\n this.additionalRetryCodes_.indexOf(status) !== -1;\n return isFiveHundredCode || isExtraRetryCode || isRequestSpecificRetryCode;\n }\n}\n\n/**\n * A collection of information about the result of a network request.\n * @param opt_canceled - Defaults to false.\n */\nexport class RequestEndStatus {\n /**\n * True if the request was canceled.\n */\n canceled: boolean;\n\n constructor(\n public wasSuccessCode: boolean,\n public connection: Connection | null,\n canceled?: boolean\n ) {\n this.canceled = !!canceled;\n }\n}\n\nexport function addAuthHeader_(\n headers: Headers,\n authToken: string | null\n): void {\n if (authToken !== null && authToken.length > 0) {\n headers['Authorization'] = 'Firebase ' + authToken;\n }\n}\n\nexport function addVersionHeader_(\n headers: Headers,\n firebaseVersion?: string\n): void {\n headers['X-Firebase-Storage-Version'] =\n 'webjs/' + (firebaseVersion ?? 'AppManager');\n}\n\nexport function addGmpidHeader_(headers: Headers, appId: string | null): void {\n if (appId) {\n headers['X-Firebase-GMPID'] = appId;\n }\n}\n\nexport function addAppCheckHeader_(\n headers: Headers,\n appCheckToken: string | null\n): void {\n if (appCheckToken !== null) {\n headers['X-Firebase-AppCheck'] = appCheckToken;\n }\n}\n\nexport function makeRequest(\n requestInfo: RequestInfo,\n appId: string | null,\n authToken: string | null,\n appCheckToken: string | null,\n requestFactory: () => Connection,\n firebaseVersion?: string\n): Request {\n const queryPart = makeQueryString(requestInfo.urlParams);\n const url = requestInfo.url + queryPart;\n const headers = Object.assign({}, requestInfo.headers);\n addGmpidHeader_(headers, appId);\n addAuthHeader_(headers, authToken);\n addVersionHeader_(headers, firebaseVersion);\n addAppCheckHeader_(headers, appCheckToken);\n return new NetworkRequest(\n url,\n requestInfo.method,\n headers,\n requestInfo.body,\n requestInfo.successCodes,\n requestInfo.additionalRetryCodes,\n requestInfo.handler,\n requestInfo.errorHandler,\n requestInfo.timeout,\n requestInfo.progressCallback,\n requestFactory\n );\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Provides a method for running a function with exponential\n * backoff.\n */\ntype id = (p1: boolean) => void;\n\nexport { id };\n\n/**\n * @param f May be invoked\n * before the function returns.\n * @param callback Get all the arguments passed to the function\n * passed to f, including the initial boolean.\n */\nexport function start(\n f: (p1: (success: boolean) => void, canceled: boolean) => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (...args: any[]) => unknown,\n timeout: number\n): id {\n // TODO(andysoto): make this code cleaner (probably refactor into an actual\n // type instead of a bunch of functions with state shared in the closure)\n let waitSeconds = 1;\n // Would type this as \"number\" but that doesn't work for Node so ¯\\_(ツ)_/¯\n // TODO: find a way to exclude Node type definition for storage because storage only works in browser\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let retryTimeoutId: any = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let globalTimeoutId: any = null;\n let hitTimeout = false;\n let cancelState = 0;\n\n function canceled(): boolean {\n return cancelState === 2;\n }\n let triggeredCallback = false;\n\n function triggerCallback(...args: any[]): void {\n if (!triggeredCallback) {\n triggeredCallback = true;\n callback.apply(null, args);\n }\n }\n\n function callWithDelay(millis: number): void {\n retryTimeoutId = setTimeout(() => {\n retryTimeoutId = null;\n f(handler, canceled());\n }, millis);\n }\n\n function clearGlobalTimeout(): void {\n if (globalTimeoutId) {\n clearTimeout(globalTimeoutId);\n }\n }\n\n function handler(success: boolean, ...args: any[]): void {\n if (triggeredCallback) {\n clearGlobalTimeout();\n return;\n }\n if (success) {\n clearGlobalTimeout();\n triggerCallback.call(null, success, ...args);\n return;\n }\n const mustStop = canceled() || hitTimeout;\n if (mustStop) {\n clearGlobalTimeout();\n triggerCallback.call(null, success, ...args);\n return;\n }\n if (waitSeconds < 64) {\n /* TODO(andysoto): don't back off so quickly if we know we're offline. */\n waitSeconds *= 2;\n }\n let waitMillis;\n if (cancelState === 1) {\n cancelState = 2;\n waitMillis = 0;\n } else {\n waitMillis = (waitSeconds + Math.random()) * 1000;\n }\n callWithDelay(waitMillis);\n }\n let stopped = false;\n\n function stop(wasTimeout: boolean): void {\n if (stopped) {\n return;\n }\n stopped = true;\n clearGlobalTimeout();\n if (triggeredCallback) {\n return;\n }\n if (retryTimeoutId !== null) {\n if (!wasTimeout) {\n cancelState = 2;\n }\n clearTimeout(retryTimeoutId);\n callWithDelay(0);\n } else {\n if (!wasTimeout) {\n cancelState = 1;\n }\n }\n }\n callWithDelay(0);\n globalTimeoutId = setTimeout(() => {\n hitTimeout = true;\n stop(true);\n }, timeout);\n return stop;\n}\n\n/**\n * Stops the retry loop from repeating.\n * If the function is currently \"in between\" retries, it is invoked immediately\n * with the second parameter as \"true\". Otherwise, it will be invoked once more\n * after the current invocation finishes iff the current invocation would have\n * triggered another retry.\n */\nexport function stop(id: id): void {\n id(false);\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Some methods copied from goog.fs.\n * We don't include goog.fs because it pulls in a bunch of Deferred code that\n * bloats the size of the released binary.\n */\nimport { isNativeBlobDefined } from './type';\nimport { StorageErrorCode, StorageError } from './error';\n\nfunction getBlobBuilder(): typeof IBlobBuilder | undefined {\n if (typeof BlobBuilder !== 'undefined') {\n return BlobBuilder;\n } else if (typeof WebKitBlobBuilder !== 'undefined') {\n return WebKitBlobBuilder;\n } else {\n return undefined;\n }\n}\n\n/**\n * Concatenates one or more values together and converts them to a Blob.\n *\n * @param args The values that will make up the resulting blob.\n * @return The blob.\n */\nexport function getBlob(...args: Array): Blob {\n const BlobBuilder = getBlobBuilder();\n if (BlobBuilder !== undefined) {\n const bb = new BlobBuilder();\n for (let i = 0; i < args.length; i++) {\n bb.append(args[i]);\n }\n return bb.getBlob();\n } else {\n if (isNativeBlobDefined()) {\n return new Blob(args);\n } else {\n throw new StorageError(\n StorageErrorCode.UNSUPPORTED_ENVIRONMENT,\n \"This browser doesn't seem to support creating Blobs\"\n );\n }\n }\n}\n\n/**\n * Slices the blob. The returned blob contains data from the start byte\n * (inclusive) till the end byte (exclusive). Negative indices cannot be used.\n *\n * @param blob The blob to be sliced.\n * @param start Index of the starting byte.\n * @param end Index of the ending byte.\n * @return The blob slice or null if not supported.\n */\nexport function sliceBlob(blob: Blob, start: number, end: number): Blob | null {\n if (blob.webkitSlice) {\n return blob.webkitSlice(start, end);\n } else if (blob.mozSlice) {\n return blob.mozSlice(start, end);\n } else if (blob.slice) {\n return blob.slice(start, end);\n }\n return null;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { unknown, invalidFormat } from './error';\nimport { decodeBase64 } from '../platform/base64';\n\n/**\n * An enumeration of the possible string formats for upload.\n * @public\n */\nexport type StringFormat = typeof StringFormat[keyof typeof StringFormat];\n/**\n * An enumeration of the possible string formats for upload.\n * @public\n */\nexport const StringFormat = {\n /**\n * Indicates the string should be interpreted \"raw\", that is, as normal text.\n * The string will be interpreted as UTF-16, then uploaded as a UTF-8 byte\n * sequence.\n * Example: The string 'Hello! \\\\ud83d\\\\ude0a' becomes the byte sequence\n * 48 65 6c 6c 6f 21 20 f0 9f 98 8a\n */\n RAW: 'raw',\n /**\n * Indicates the string should be interpreted as base64-encoded data.\n * Padding characters (trailing '='s) are optional.\n * Example: The string 'rWmO++E6t7/rlw==' becomes the byte sequence\n * ad 69 8e fb e1 3a b7 bf eb 97\n */\n BASE64: 'base64',\n /**\n * Indicates the string should be interpreted as base64url-encoded data.\n * Padding characters (trailing '='s) are optional.\n * Example: The string 'rWmO--E6t7_rlw==' becomes the byte sequence\n * ad 69 8e fb e1 3a b7 bf eb 97\n */\n BASE64URL: 'base64url',\n /**\n * Indicates the string is a data URL, such as one obtained from\n * canvas.toDataURL().\n * Example: the string 'data:application/octet-stream;base64,aaaa'\n * becomes the byte sequence\n * 69 a6 9a\n * (the content-type \"application/octet-stream\" is also applied, but can\n * be overridden in the metadata object).\n */\n DATA_URL: 'data_url'\n} as const;\n\nexport class StringData {\n contentType: string | null;\n\n constructor(public data: Uint8Array, contentType?: string | null) {\n this.contentType = contentType || null;\n }\n}\n\n/**\n * @internal\n */\nexport function dataFromString(\n format: StringFormat,\n stringData: string\n): StringData {\n switch (format) {\n case StringFormat.RAW:\n return new StringData(utf8Bytes_(stringData));\n case StringFormat.BASE64:\n case StringFormat.BASE64URL:\n return new StringData(base64Bytes_(format, stringData));\n case StringFormat.DATA_URL:\n return new StringData(\n dataURLBytes_(stringData),\n dataURLContentType_(stringData)\n );\n default:\n // do nothing\n }\n\n // assert(false);\n throw unknown();\n}\n\nexport function utf8Bytes_(value: string): Uint8Array {\n const b: number[] = [];\n for (let i = 0; i < value.length; i++) {\n let c = value.charCodeAt(i);\n if (c <= 127) {\n b.push(c);\n } else {\n if (c <= 2047) {\n b.push(192 | (c >> 6), 128 | (c & 63));\n } else {\n if ((c & 64512) === 55296) {\n // The start of a surrogate pair.\n const valid =\n i < value.length - 1 && (value.charCodeAt(i + 1) & 64512) === 56320;\n if (!valid) {\n // The second surrogate wasn't there.\n b.push(239, 191, 189);\n } else {\n const hi = c;\n const lo = value.charCodeAt(++i);\n c = 65536 | ((hi & 1023) << 10) | (lo & 1023);\n b.push(\n 240 | (c >> 18),\n 128 | ((c >> 12) & 63),\n 128 | ((c >> 6) & 63),\n 128 | (c & 63)\n );\n }\n } else {\n if ((c & 64512) === 56320) {\n // Invalid low surrogate.\n b.push(239, 191, 189);\n } else {\n b.push(224 | (c >> 12), 128 | ((c >> 6) & 63), 128 | (c & 63));\n }\n }\n }\n }\n }\n return new Uint8Array(b);\n}\n\nexport function percentEncodedBytes_(value: string): Uint8Array {\n let decoded;\n try {\n decoded = decodeURIComponent(value);\n } catch (e) {\n throw invalidFormat(StringFormat.DATA_URL, 'Malformed data URL.');\n }\n return utf8Bytes_(decoded);\n}\n\nexport function base64Bytes_(format: StringFormat, value: string): Uint8Array {\n switch (format) {\n case StringFormat.BASE64: {\n const hasMinus = value.indexOf('-') !== -1;\n const hasUnder = value.indexOf('_') !== -1;\n if (hasMinus || hasUnder) {\n const invalidChar = hasMinus ? '-' : '_';\n throw invalidFormat(\n format,\n \"Invalid character '\" +\n invalidChar +\n \"' found: is it base64url encoded?\"\n );\n }\n break;\n }\n case StringFormat.BASE64URL: {\n const hasPlus = value.indexOf('+') !== -1;\n const hasSlash = value.indexOf('/') !== -1;\n if (hasPlus || hasSlash) {\n const invalidChar = hasPlus ? '+' : '/';\n throw invalidFormat(\n format,\n \"Invalid character '\" + invalidChar + \"' found: is it base64 encoded?\"\n );\n }\n value = value.replace(/-/g, '+').replace(/_/g, '/');\n break;\n }\n default:\n // do nothing\n }\n let bytes;\n try {\n bytes = decodeBase64(value);\n } catch (e) {\n throw invalidFormat(format, 'Invalid character found');\n }\n const array = new Uint8Array(bytes.length);\n for (let i = 0; i < bytes.length; i++) {\n array[i] = bytes.charCodeAt(i);\n }\n return array;\n}\n\nclass DataURLParts {\n base64: boolean = false;\n contentType: string | null = null;\n rest: string;\n\n constructor(dataURL: string) {\n const matches = dataURL.match(/^data:([^,]+)?,/);\n if (matches === null) {\n throw invalidFormat(\n StringFormat.DATA_URL,\n \"Must be formatted 'data:[][;base64],\"\n );\n }\n const middle = matches[1] || null;\n if (middle != null) {\n this.base64 = endsWith(middle, ';base64');\n this.contentType = this.base64\n ? middle.substring(0, middle.length - ';base64'.length)\n : middle;\n }\n this.rest = dataURL.substring(dataURL.indexOf(',') + 1);\n }\n}\n\nexport function dataURLBytes_(dataUrl: string): Uint8Array {\n const parts = new DataURLParts(dataUrl);\n if (parts.base64) {\n return base64Bytes_(StringFormat.BASE64, parts.rest);\n } else {\n return percentEncodedBytes_(parts.rest);\n }\n}\n\nexport function dataURLContentType_(dataUrl: string): string | null {\n const parts = new DataURLParts(dataUrl);\n return parts.contentType;\n}\n\nfunction endsWith(s: string, end: string): boolean {\n const longEnough = s.length >= end.length;\n if (!longEnough) {\n return false;\n }\n\n return s.substring(s.length - end.length) === end;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Converts a Base64 encoded string to a binary string. */\nexport function decodeBase64(encoded: string): string {\n return atob(encoded);\n}\n\nexport function decodeUint8Array(data: Uint8Array): string {\n return new TextDecoder().decode(data);\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @file Provides a Blob-like wrapper for various binary types (including the\n * native Blob type). This makes it possible to upload types like ArrayBuffers,\n * making uploads possible in environments without the native Blob type.\n */\nimport { sliceBlob, getBlob } from './fs';\nimport { StringFormat, dataFromString } from './string';\nimport { isNativeBlob, isNativeBlobDefined, isString } from './type';\n\n/**\n * @param opt_elideCopy - If true, doesn't copy mutable input data\n * (e.g. Uint8Arrays). Pass true only if you know the objects will not be\n * modified after this blob's construction.\n *\n * @internal\n */\nexport class FbsBlob {\n private data_!: Blob | Uint8Array;\n private size_: number;\n private type_: string;\n\n constructor(data: Blob | Uint8Array | ArrayBuffer, elideCopy?: boolean) {\n let size: number = 0;\n let blobType: string = '';\n if (isNativeBlob(data)) {\n this.data_ = data as Blob;\n size = (data as Blob).size;\n blobType = (data as Blob).type;\n } else if (data instanceof ArrayBuffer) {\n if (elideCopy) {\n this.data_ = new Uint8Array(data);\n } else {\n this.data_ = new Uint8Array(data.byteLength);\n this.data_.set(new Uint8Array(data));\n }\n size = this.data_.length;\n } else if (data instanceof Uint8Array) {\n if (elideCopy) {\n this.data_ = data as Uint8Array;\n } else {\n this.data_ = new Uint8Array(data.length);\n this.data_.set(data as Uint8Array);\n }\n size = data.length;\n }\n this.size_ = size;\n this.type_ = blobType;\n }\n\n size(): number {\n return this.size_;\n }\n\n type(): string {\n return this.type_;\n }\n\n slice(startByte: number, endByte: number): FbsBlob | null {\n if (isNativeBlob(this.data_)) {\n const realBlob = this.data_ as Blob;\n const sliced = sliceBlob(realBlob, startByte, endByte);\n if (sliced === null) {\n return null;\n }\n return new FbsBlob(sliced);\n } else {\n const slice = new Uint8Array(\n (this.data_ as Uint8Array).buffer,\n startByte,\n endByte - startByte\n );\n return new FbsBlob(slice, true);\n }\n }\n\n static getBlob(...args: Array): FbsBlob | null {\n if (isNativeBlobDefined()) {\n const blobby: Array = args.map(\n (val: string | FbsBlob): Blob | Uint8Array | string => {\n if (val instanceof FbsBlob) {\n return val.data_;\n } else {\n return val;\n }\n }\n );\n return new FbsBlob(getBlob.apply(null, blobby));\n } else {\n const uint8Arrays: Uint8Array[] = args.map(\n (val: string | FbsBlob): Uint8Array => {\n if (isString(val)) {\n return dataFromString(StringFormat.RAW, val as string).data;\n } else {\n // Blobs don't exist, so this has to be a Uint8Array.\n return (val as FbsBlob).data_ as Uint8Array;\n }\n }\n );\n let finalLength = 0;\n uint8Arrays.forEach((array: Uint8Array): void => {\n finalLength += array.byteLength;\n });\n const merged = new Uint8Array(finalLength);\n let index = 0;\n uint8Arrays.forEach((array: Uint8Array) => {\n for (let i = 0; i < array.length; i++) {\n merged[index++] = array[i];\n }\n });\n return new FbsBlob(merged, true);\n }\n }\n\n uploadData(): Blob | Uint8Array {\n return this.data_;\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isNonArrayObject } from './type';\n\n/**\n * Returns the Object resulting from parsing the given JSON, or null if the\n * given string does not represent a JSON object.\n */\nexport function jsonObjectOrNull(\n s: string\n): { [name: string]: unknown } | null {\n let obj;\n try {\n obj = JSON.parse(s);\n } catch (e) {\n return null;\n }\n if (isNonArrayObject(obj)) {\n return obj;\n } else {\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Contains helper methods for manipulating paths.\n */\n\n/**\n * @return Null if the path is already at the root.\n */\nexport function parent(path: string): string | null {\n if (path.length === 0) {\n return null;\n }\n const index = path.lastIndexOf('/');\n if (index === -1) {\n return '';\n }\n const newPath = path.slice(0, index);\n return newPath;\n}\n\nexport function child(path: string, childPath: string): string {\n const canonicalChildPath = childPath\n .split('/')\n .filter(component => component.length > 0)\n .join('/');\n if (path.length === 0) {\n return canonicalChildPath;\n } else {\n return path + '/' + canonicalChildPath;\n }\n}\n\n/**\n * Returns the last component of a path.\n * '/foo/bar' -> 'bar'\n * '/foo/bar/baz/' -> 'baz/'\n * '/a' -> 'a'\n */\nexport function lastComponent(path: string): string {\n const index = path.lastIndexOf('/', path.length - 2);\n if (index === -1) {\n return path;\n } else {\n return path.slice(index + 1);\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Documentation for the metadata format\n */\nimport { Metadata } from '../metadata';\n\nimport { jsonObjectOrNull } from './json';\nimport { Location } from './location';\nimport { lastComponent } from './path';\nimport { isString } from './type';\nimport { makeUrl, makeQueryString } from './url';\nimport { Reference } from '../reference';\nimport { FirebaseStorageImpl } from '../service';\n\nexport function noXform_(metadata: Metadata, value: T): T {\n return value;\n}\n\nclass Mapping {\n local: string;\n writable: boolean;\n xform: (p1: Metadata, p2?: T) => T | undefined;\n\n constructor(\n public server: string,\n local?: string | null,\n writable?: boolean,\n xform?: ((p1: Metadata, p2?: T) => T | undefined) | null\n ) {\n this.local = local || server;\n this.writable = !!writable;\n this.xform = xform || noXform_;\n }\n}\ntype Mappings = Array | Mapping>;\n\nexport { Mappings };\n\nlet mappings_: Mappings | null = null;\n\nexport function xformPath(fullPath: string | undefined): string | undefined {\n if (!isString(fullPath) || fullPath.length < 2) {\n return fullPath;\n } else {\n return lastComponent(fullPath);\n }\n}\n\nexport function getMappings(): Mappings {\n if (mappings_) {\n return mappings_;\n }\n const mappings: Mappings = [];\n mappings.push(new Mapping('bucket'));\n mappings.push(new Mapping('generation'));\n mappings.push(new Mapping('metageneration'));\n mappings.push(new Mapping('name', 'fullPath', true));\n\n function mappingsXformPath(\n _metadata: Metadata,\n fullPath: string | undefined\n ): string | undefined {\n return xformPath(fullPath);\n }\n const nameMapping = new Mapping('name');\n nameMapping.xform = mappingsXformPath;\n mappings.push(nameMapping);\n\n /**\n * Coerces the second param to a number, if it is defined.\n */\n function xformSize(\n _metadata: Metadata,\n size?: number | string\n ): number | undefined {\n if (size !== undefined) {\n return Number(size);\n } else {\n return size;\n }\n }\n const sizeMapping = new Mapping('size');\n sizeMapping.xform = xformSize;\n mappings.push(sizeMapping);\n mappings.push(new Mapping('timeCreated'));\n mappings.push(new Mapping('updated'));\n mappings.push(new Mapping('md5Hash', null, true));\n mappings.push(new Mapping('cacheControl', null, true));\n mappings.push(new Mapping('contentDisposition', null, true));\n mappings.push(new Mapping('contentEncoding', null, true));\n mappings.push(new Mapping('contentLanguage', null, true));\n mappings.push(new Mapping('contentType', null, true));\n mappings.push(new Mapping('metadata', 'customMetadata', true));\n mappings_ = mappings;\n return mappings_;\n}\n\nexport function addRef(metadata: Metadata, service: FirebaseStorageImpl): void {\n function generateRef(): Reference {\n const bucket: string = metadata['bucket'] as string;\n const path: string = metadata['fullPath'] as string;\n const loc = new Location(bucket, path);\n return service._makeStorageReference(loc);\n }\n Object.defineProperty(metadata, 'ref', { get: generateRef });\n}\n\nexport function fromResource(\n service: FirebaseStorageImpl,\n resource: { [name: string]: unknown },\n mappings: Mappings\n): Metadata {\n const metadata: Metadata = {} as Metadata;\n metadata['type'] = 'file';\n const len = mappings.length;\n for (let i = 0; i < len; i++) {\n const mapping = mappings[i];\n metadata[mapping.local] = (mapping as Mapping).xform(\n metadata,\n resource[mapping.server]\n );\n }\n addRef(metadata, service);\n return metadata;\n}\n\nexport function fromResourceString(\n service: FirebaseStorageImpl,\n resourceString: string,\n mappings: Mappings\n): Metadata | null {\n const obj = jsonObjectOrNull(resourceString);\n if (obj === null) {\n return null;\n }\n const resource = obj as Metadata;\n return fromResource(service, resource, mappings);\n}\n\nexport function downloadUrlFromResourceString(\n metadata: Metadata,\n resourceString: string,\n host: string,\n protocol: string\n): string | null {\n const obj = jsonObjectOrNull(resourceString);\n if (obj === null) {\n return null;\n }\n if (!isString(obj['downloadTokens'])) {\n // This can happen if objects are uploaded through GCS and retrieved\n // through list, so we don't want to throw an Error.\n return null;\n }\n const tokens: string = obj['downloadTokens'] as string;\n if (tokens.length === 0) {\n return null;\n }\n const encode = encodeURIComponent;\n const tokensList = tokens.split(',');\n const urls = tokensList.map((token: string): string => {\n const bucket: string = metadata['bucket'] as string;\n const path: string = metadata['fullPath'] as string;\n const urlPart = '/b/' + encode(bucket) + '/o/' + encode(path);\n const base = makeUrl(urlPart, host, protocol);\n const queryString = makeQueryString({\n alt: 'media',\n token\n });\n return base + queryString;\n });\n return urls[0];\n}\n\nexport function toResourceString(\n metadata: Partial,\n mappings: Mappings\n): string {\n const resource: {\n [prop: string]: unknown;\n } = {};\n const len = mappings.length;\n for (let i = 0; i < len; i++) {\n const mapping = mappings[i];\n if (mapping.writable) {\n resource[mapping.server] = metadata[mapping.local];\n }\n }\n return JSON.stringify(resource);\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { StorageError } from './error';\nimport { Headers, Connection, ConnectionType } from './connection';\n\n/**\n * Type for url params stored in RequestInfo.\n */\nexport interface UrlParams {\n [name: string]: string | number;\n}\n\n/**\n * A function that converts a server response to the API type expected by the\n * SDK.\n *\n * @param I - the type of the backend's network response\n * @param O - the output response type used by the rest of the SDK.\n */\nexport type RequestHandler = (\n connection: Connection,\n response: I\n) => O;\n\n/** A function to handle an error. */\nexport type ErrorHandler = (\n connection: Connection,\n response: StorageError\n) => StorageError;\n\n/**\n * Contains a fully specified request.\n *\n * @param I - the type of the backend's network response.\n * @param O - the output response type used by the rest of the SDK.\n */\nexport class RequestInfo {\n urlParams: UrlParams = {};\n headers: Headers = {};\n body: Blob | string | Uint8Array | null = null;\n errorHandler: ErrorHandler | null = null;\n\n /**\n * Called with the current number of bytes uploaded and total size (-1 if not\n * computable) of the request body (i.e. used to report upload progress).\n */\n progressCallback: ((p1: number, p2: number) => void) | null = null;\n successCodes: number[] = [200];\n additionalRetryCodes: number[] = [];\n\n constructor(\n public url: string,\n public method: string,\n /**\n * Returns the value with which to resolve the request's promise. Only called\n * if the request is successful. Throw from this function to reject the\n * returned Request's promise with the thrown error.\n * Note: The XhrIo passed to this function may be reused after this callback\n * returns. Do not keep a reference to it in any way.\n */\n public handler: RequestHandler,\n public timeout: number\n ) {}\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Defines methods for interacting with the network.\n */\n\nimport { Metadata } from '../metadata';\nimport { ListResult } from '../list';\nimport { FbsBlob } from './blob';\nimport {\n StorageError,\n cannotSliceBlob,\n unauthenticated,\n quotaExceeded,\n unauthorized,\n objectNotFound,\n serverFileWrongSize,\n unknown,\n unauthorizedApp\n} from './error';\nimport { Location } from './location';\nimport {\n Mappings,\n fromResourceString,\n downloadUrlFromResourceString,\n toResourceString\n} from './metadata';\nimport { fromResponseString } from './list';\nimport { RequestInfo, UrlParams } from './requestinfo';\nimport { isString } from './type';\nimport { makeUrl } from './url';\nimport { Connection, ConnectionType } from './connection';\nimport { FirebaseStorageImpl } from '../service';\n\n/**\n * Throws the UNKNOWN StorageError if cndn is false.\n */\nexport function handlerCheck(cndn: boolean): void {\n if (!cndn) {\n throw unknown();\n }\n}\n\nexport function metadataHandler(\n service: FirebaseStorageImpl,\n mappings: Mappings\n): (p1: Connection, p2: string) => Metadata {\n function handler(xhr: Connection, text: string): Metadata {\n const metadata = fromResourceString(service, text, mappings);\n handlerCheck(metadata !== null);\n return metadata as Metadata;\n }\n return handler;\n}\n\nexport function listHandler(\n service: FirebaseStorageImpl,\n bucket: string\n): (p1: Connection, p2: string) => ListResult {\n function handler(xhr: Connection, text: string): ListResult {\n const listResult = fromResponseString(service, bucket, text);\n handlerCheck(listResult !== null);\n return listResult as ListResult;\n }\n return handler;\n}\n\nexport function downloadUrlHandler(\n service: FirebaseStorageImpl,\n mappings: Mappings\n): (p1: Connection, p2: string) => string | null {\n function handler(xhr: Connection, text: string): string | null {\n const metadata = fromResourceString(service, text, mappings);\n handlerCheck(metadata !== null);\n return downloadUrlFromResourceString(\n metadata as Metadata,\n text,\n service.host,\n service._protocol\n );\n }\n return handler;\n}\n\nexport function sharedErrorHandler(\n location: Location\n): (p1: Connection, p2: StorageError) => StorageError {\n function errorHandler(\n xhr: Connection,\n err: StorageError\n ): StorageError {\n let newErr;\n if (xhr.getStatus() === 401) {\n if (\n // This exact message string is the only consistent part of the\n // server's error response that identifies it as an App Check error.\n xhr.getErrorText().includes('Firebase App Check token is invalid')\n ) {\n newErr = unauthorizedApp();\n } else {\n newErr = unauthenticated();\n }\n } else {\n if (xhr.getStatus() === 402) {\n newErr = quotaExceeded(location.bucket);\n } else {\n if (xhr.getStatus() === 403) {\n newErr = unauthorized(location.path);\n } else {\n newErr = err;\n }\n }\n }\n newErr.serverResponse = err.serverResponse;\n return newErr;\n }\n return errorHandler;\n}\n\nexport function objectErrorHandler(\n location: Location\n): (p1: Connection, p2: StorageError) => StorageError {\n const shared = sharedErrorHandler(location);\n\n function errorHandler(\n xhr: Connection,\n err: StorageError\n ): StorageError {\n let newErr = shared(xhr, err);\n if (xhr.getStatus() === 404) {\n newErr = objectNotFound(location.path);\n }\n newErr.serverResponse = err.serverResponse;\n return newErr;\n }\n return errorHandler;\n}\n\nexport function getMetadata(\n service: FirebaseStorageImpl,\n location: Location,\n mappings: Mappings\n): RequestInfo {\n const urlPart = location.fullServerUrl();\n const url = makeUrl(urlPart, service.host, service._protocol);\n const method = 'GET';\n const timeout = service.maxOperationRetryTime;\n const requestInfo = new RequestInfo(\n url,\n method,\n metadataHandler(service, mappings),\n timeout\n );\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nexport function list(\n service: FirebaseStorageImpl,\n location: Location,\n delimiter?: string,\n pageToken?: string | null,\n maxResults?: number | null\n): RequestInfo {\n const urlParams: UrlParams = {};\n if (location.isRoot) {\n urlParams['prefix'] = '';\n } else {\n urlParams['prefix'] = location.path + '/';\n }\n if (delimiter && delimiter.length > 0) {\n urlParams['delimiter'] = delimiter;\n }\n if (pageToken) {\n urlParams['pageToken'] = pageToken;\n }\n if (maxResults) {\n urlParams['maxResults'] = maxResults;\n }\n const urlPart = location.bucketOnlyServerUrl();\n const url = makeUrl(urlPart, service.host, service._protocol);\n const method = 'GET';\n const timeout = service.maxOperationRetryTime;\n const requestInfo = new RequestInfo(\n url,\n method,\n listHandler(service, location.bucket),\n timeout\n );\n requestInfo.urlParams = urlParams;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n\nexport function getBytes(\n service: FirebaseStorageImpl,\n location: Location,\n maxDownloadSizeBytes?: number\n): RequestInfo {\n const urlPart = location.fullServerUrl();\n const url = makeUrl(urlPart, service.host, service._protocol) + '?alt=media';\n const method = 'GET';\n const timeout = service.maxOperationRetryTime;\n const requestInfo = new RequestInfo(\n url,\n method,\n (_: Connection, data: I) => data,\n timeout\n );\n requestInfo.errorHandler = objectErrorHandler(location);\n if (maxDownloadSizeBytes !== undefined) {\n requestInfo.headers['Range'] = `bytes=0-${maxDownloadSizeBytes}`;\n requestInfo.successCodes = [200 /* OK */, 206 /* Partial Content */];\n }\n return requestInfo;\n}\n\nexport function getDownloadUrl(\n service: FirebaseStorageImpl,\n location: Location,\n mappings: Mappings\n): RequestInfo {\n const urlPart = location.fullServerUrl();\n const url = makeUrl(urlPart, service.host, service._protocol);\n const method = 'GET';\n const timeout = service.maxOperationRetryTime;\n const requestInfo = new RequestInfo(\n url,\n method,\n downloadUrlHandler(service, mappings),\n timeout\n );\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nexport function updateMetadata(\n service: FirebaseStorageImpl,\n location: Location,\n metadata: Partial,\n mappings: Mappings\n): RequestInfo {\n const urlPart = location.fullServerUrl();\n const url = makeUrl(urlPart, service.host, service._protocol);\n const method = 'PATCH';\n const body = toResourceString(metadata, mappings);\n const headers = { 'Content-Type': 'application/json; charset=utf-8' };\n const timeout = service.maxOperationRetryTime;\n const requestInfo = new RequestInfo(\n url,\n method,\n metadataHandler(service, mappings),\n timeout\n );\n requestInfo.headers = headers;\n requestInfo.body = body;\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nexport function deleteObject(\n service: FirebaseStorageImpl,\n location: Location\n): RequestInfo {\n const urlPart = location.fullServerUrl();\n const url = makeUrl(urlPart, service.host, service._protocol);\n const method = 'DELETE';\n const timeout = service.maxOperationRetryTime;\n\n function handler(_xhr: Connection, _text: string): void {}\n const requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.successCodes = [200, 204];\n requestInfo.errorHandler = objectErrorHandler(location);\n return requestInfo;\n}\n\nexport function determineContentType_(\n metadata: Metadata | null,\n blob: FbsBlob | null\n): string {\n return (\n (metadata && metadata['contentType']) ||\n (blob && blob.type()) ||\n 'application/octet-stream'\n );\n}\n\nexport function metadataForUpload_(\n location: Location,\n blob: FbsBlob,\n metadata?: Metadata | null\n): Metadata {\n const metadataClone = Object.assign({}, metadata);\n metadataClone['fullPath'] = location.path;\n metadataClone['size'] = blob.size();\n if (!metadataClone['contentType']) {\n metadataClone['contentType'] = determineContentType_(null, blob);\n }\n return metadataClone;\n}\n\n/**\n * Prepare RequestInfo for uploads as Content-Type: multipart.\n */\nexport function multipartUpload(\n service: FirebaseStorageImpl,\n location: Location,\n mappings: Mappings,\n blob: FbsBlob,\n metadata?: Metadata | null\n): RequestInfo {\n const urlPart = location.bucketOnlyServerUrl();\n const headers: { [prop: string]: string } = {\n 'X-Goog-Upload-Protocol': 'multipart'\n };\n\n function genBoundary(): string {\n let str = '';\n for (let i = 0; i < 2; i++) {\n str = str + Math.random().toString().slice(2);\n }\n return str;\n }\n const boundary = genBoundary();\n headers['Content-Type'] = 'multipart/related; boundary=' + boundary;\n const metadata_ = metadataForUpload_(location, blob, metadata);\n const metadataString = toResourceString(metadata_, mappings);\n const preBlobPart =\n '--' +\n boundary +\n '\\r\\n' +\n 'Content-Type: application/json; charset=utf-8\\r\\n\\r\\n' +\n metadataString +\n '\\r\\n--' +\n boundary +\n '\\r\\n' +\n 'Content-Type: ' +\n metadata_['contentType'] +\n '\\r\\n\\r\\n';\n const postBlobPart = '\\r\\n--' + boundary + '--';\n const body = FbsBlob.getBlob(preBlobPart, blob, postBlobPart);\n if (body === null) {\n throw cannotSliceBlob();\n }\n const urlParams: UrlParams = { name: metadata_['fullPath']! };\n const url = makeUrl(urlPart, service.host, service._protocol);\n const method = 'POST';\n const timeout = service.maxUploadRetryTime;\n const requestInfo = new RequestInfo(\n url,\n method,\n metadataHandler(service, mappings),\n timeout\n );\n requestInfo.urlParams = urlParams;\n requestInfo.headers = headers;\n requestInfo.body = body.uploadData();\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n\n/**\n * @param current The number of bytes that have been uploaded so far.\n * @param total The total number of bytes in the upload.\n * @param opt_finalized True if the server has finished the upload.\n * @param opt_metadata The upload metadata, should\n * only be passed if opt_finalized is true.\n */\nexport class ResumableUploadStatus {\n finalized: boolean;\n metadata: Metadata | null;\n\n constructor(\n public current: number,\n public total: number,\n finalized?: boolean,\n metadata?: Metadata | null\n ) {\n this.finalized = !!finalized;\n this.metadata = metadata || null;\n }\n}\n\nexport function checkResumeHeader_(\n xhr: Connection,\n allowed?: string[]\n): string {\n let status: string | null = null;\n try {\n status = xhr.getResponseHeader('X-Goog-Upload-Status');\n } catch (e) {\n handlerCheck(false);\n }\n const allowedStatus = allowed || ['active'];\n handlerCheck(!!status && allowedStatus.indexOf(status) !== -1);\n return status as string;\n}\n\nexport function createResumableUpload(\n service: FirebaseStorageImpl,\n location: Location,\n mappings: Mappings,\n blob: FbsBlob,\n metadata?: Metadata | null\n): RequestInfo {\n const urlPart = location.bucketOnlyServerUrl();\n const metadataForUpload = metadataForUpload_(location, blob, metadata);\n const urlParams: UrlParams = { name: metadataForUpload['fullPath']! };\n const url = makeUrl(urlPart, service.host, service._protocol);\n const method = 'POST';\n const headers = {\n 'X-Goog-Upload-Protocol': 'resumable',\n 'X-Goog-Upload-Command': 'start',\n 'X-Goog-Upload-Header-Content-Length': `${blob.size()}`,\n 'X-Goog-Upload-Header-Content-Type': metadataForUpload['contentType']!,\n 'Content-Type': 'application/json; charset=utf-8'\n };\n const body = toResourceString(metadataForUpload, mappings);\n const timeout = service.maxUploadRetryTime;\n\n function handler(xhr: Connection): string {\n checkResumeHeader_(xhr);\n let url;\n try {\n url = xhr.getResponseHeader('X-Goog-Upload-URL');\n } catch (e) {\n handlerCheck(false);\n }\n handlerCheck(isString(url));\n return url as string;\n }\n const requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.urlParams = urlParams;\n requestInfo.headers = headers;\n requestInfo.body = body;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n\n/**\n * @param url From a call to fbs.requests.createResumableUpload.\n */\nexport function getResumableUploadStatus(\n service: FirebaseStorageImpl,\n location: Location,\n url: string,\n blob: FbsBlob\n): RequestInfo {\n const headers = { 'X-Goog-Upload-Command': 'query' };\n\n function handler(xhr: Connection): ResumableUploadStatus {\n const status = checkResumeHeader_(xhr, ['active', 'final']);\n let sizeString: string | null = null;\n try {\n sizeString = xhr.getResponseHeader('X-Goog-Upload-Size-Received');\n } catch (e) {\n handlerCheck(false);\n }\n\n if (!sizeString) {\n // null or empty string\n handlerCheck(false);\n }\n\n const size = Number(sizeString);\n handlerCheck(!isNaN(size));\n return new ResumableUploadStatus(size, blob.size(), status === 'final');\n }\n const method = 'POST';\n const timeout = service.maxUploadRetryTime;\n const requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.headers = headers;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n\n/**\n * Any uploads via the resumable upload API must transfer a number of bytes\n * that is a multiple of this number.\n */\nexport const RESUMABLE_UPLOAD_CHUNK_SIZE: number = 256 * 1024;\n\n/**\n * @param url From a call to fbs.requests.createResumableUpload.\n * @param chunkSize Number of bytes to upload.\n * @param status The previous status.\n * If not passed or null, we start from the beginning.\n * @throws fbs.Error If the upload is already complete, the passed in status\n * has a final size inconsistent with the blob, or the blob cannot be sliced\n * for upload.\n */\nexport function continueResumableUpload(\n location: Location,\n service: FirebaseStorageImpl,\n url: string,\n blob: FbsBlob,\n chunkSize: number,\n mappings: Mappings,\n status?: ResumableUploadStatus | null,\n progressCallback?: ((p1: number, p2: number) => void) | null\n): RequestInfo {\n // TODO(andysoto): standardize on internal asserts\n // assert(!(opt_status && opt_status.finalized));\n const status_ = new ResumableUploadStatus(0, 0);\n if (status) {\n status_.current = status.current;\n status_.total = status.total;\n } else {\n status_.current = 0;\n status_.total = blob.size();\n }\n if (blob.size() !== status_.total) {\n throw serverFileWrongSize();\n }\n const bytesLeft = status_.total - status_.current;\n let bytesToUpload = bytesLeft;\n if (chunkSize > 0) {\n bytesToUpload = Math.min(bytesToUpload, chunkSize);\n }\n const startByte = status_.current;\n const endByte = startByte + bytesToUpload;\n const uploadCommand =\n bytesToUpload === bytesLeft ? 'upload, finalize' : 'upload';\n const headers = {\n 'X-Goog-Upload-Command': uploadCommand,\n 'X-Goog-Upload-Offset': `${status_.current}`\n };\n const body = blob.slice(startByte, endByte);\n if (body === null) {\n throw cannotSliceBlob();\n }\n\n function handler(\n xhr: Connection,\n text: string\n ): ResumableUploadStatus {\n // TODO(andysoto): Verify the MD5 of each uploaded range:\n // the 'x-range-md5' header comes back with status code 308 responses.\n // We'll only be able to bail out though, because you can't re-upload a\n // range that you previously uploaded.\n const uploadStatus = checkResumeHeader_(xhr, ['active', 'final']);\n const newCurrent = status_.current + bytesToUpload;\n const size = blob.size();\n let metadata;\n if (uploadStatus === 'final') {\n metadata = metadataHandler(service, mappings)(xhr, text);\n } else {\n metadata = null;\n }\n return new ResumableUploadStatus(\n newCurrent,\n size,\n uploadStatus === 'final',\n metadata\n );\n }\n const method = 'POST';\n const timeout = service.maxUploadRetryTime;\n const requestInfo = new RequestInfo(url, method, handler, timeout);\n requestInfo.headers = headers;\n requestInfo.body = body.uploadData();\n requestInfo.progressCallback = progressCallback || null;\n requestInfo.errorHandler = sharedErrorHandler(location);\n return requestInfo;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Enumerations used for upload tasks.\n */\n\n/**\n * An event that is triggered on a task.\n * @internal\n */\nexport type TaskEvent = string;\n\n/**\n * An event that is triggered on a task.\n * @internal\n */\nexport const TaskEvent = {\n /**\n * For this event,\n *
    \n *
  • The `next` function is triggered on progress updates and when the\n * task is paused/resumed with an `UploadTaskSnapshot` as the first\n * argument.
  • \n *
  • The `error` function is triggered if the upload is canceled or fails\n * for another reason.
  • \n *
  • The `complete` function is triggered if the upload completes\n * successfully.
  • \n *
\n */\n STATE_CHANGED: 'state_changed'\n};\n\n/**\n * Internal enum for task state.\n */\nexport const enum InternalTaskState {\n RUNNING = 'running',\n PAUSING = 'pausing',\n PAUSED = 'paused',\n SUCCESS = 'success',\n CANCELING = 'canceling',\n CANCELED = 'canceled',\n ERROR = 'error'\n}\n\n/**\n * Represents the current state of a running upload.\n * @internal\n */\nexport type TaskState = typeof TaskState[keyof typeof TaskState];\n\n// type keys = keyof TaskState\n/**\n * Represents the current state of a running upload.\n * @internal\n */\nexport const TaskState = {\n /** The task is currently transferring data. */\n RUNNING: 'running',\n\n /** The task was paused by the user. */\n PAUSED: 'paused',\n\n /** The task completed successfully. */\n SUCCESS: 'success',\n\n /** The task was canceled. */\n CANCELED: 'canceled',\n\n /** The task failed with an error. */\n ERROR: 'error'\n} as const;\n\nexport function taskStateFromInternalTaskState(\n state: InternalTaskState\n): TaskState {\n switch (state) {\n case InternalTaskState.RUNNING:\n case InternalTaskState.PAUSING:\n case InternalTaskState.CANCELING:\n return TaskState.RUNNING;\n case InternalTaskState.PAUSED:\n return TaskState.PAUSED;\n case InternalTaskState.SUCCESS:\n return TaskState.SUCCESS;\n case InternalTaskState.CANCELED:\n return TaskState.CANCELED;\n case InternalTaskState.ERROR:\n return TaskState.ERROR;\n default:\n // TODO(andysoto): assert(false);\n return TaskState.ERROR;\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isFunction } from './type';\nimport { StorageError } from './error';\n\n/**\n * Function that is called once for each value in a stream of values.\n */\nexport type NextFn = (value: T) => void;\n\n/**\n * A function that is called with a `StorageError`\n * if the event stream ends due to an error.\n */\nexport type ErrorFn = (error: StorageError) => void;\n\n/**\n * A function that is called if the event stream ends normally.\n */\nexport type CompleteFn = () => void;\n\n/**\n * Unsubscribes from a stream.\n */\nexport type Unsubscribe = () => void;\n\n/**\n * An observer identical to the `Observer` defined in packages/util except the\n * error passed into the ErrorFn is specifically a `StorageError`.\n */\nexport interface StorageObserver {\n /**\n * Function that is called once for each value in the event stream.\n */\n next?: NextFn;\n /**\n * A function that is called with a `StorageError`\n * if the event stream ends due to an error.\n */\n error?: ErrorFn;\n /**\n * A function that is called if the event stream ends normally.\n */\n complete?: CompleteFn;\n}\n\n/**\n * Subscribes to an event stream.\n */\nexport type Subscribe = (\n next?: NextFn | StorageObserver,\n error?: ErrorFn,\n complete?: CompleteFn\n) => Unsubscribe;\n\nexport class Observer implements StorageObserver {\n next?: NextFn;\n error?: ErrorFn;\n complete?: CompleteFn;\n\n constructor(\n nextOrObserver?: NextFn | StorageObserver,\n error?: ErrorFn,\n complete?: CompleteFn\n ) {\n const asFunctions =\n isFunction(nextOrObserver) || error != null || complete != null;\n if (asFunctions) {\n this.next = nextOrObserver as NextFn;\n this.error = error ?? undefined;\n this.complete = complete ?? undefined;\n } else {\n const observer = nextOrObserver as {\n next?: NextFn;\n error?: ErrorFn;\n complete?: CompleteFn;\n };\n this.next = observer.next;\n this.error = observer.error;\n this.complete = observer.complete;\n }\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns a function that invokes f with its arguments asynchronously as a\n * microtask, i.e. as soon as possible after the current script returns back\n * into browser code.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function async(f: Function): Function {\n return (...argsToForward: unknown[]) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => f(...argsToForward));\n };\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Connection,\n ConnectionType,\n ErrorCode,\n Headers\n} from '../../implementation/connection';\nimport { internalError } from '../../implementation/error';\n\n/** An override for the text-based Connection. Used in tests. */\nlet textFactoryOverride: (() => Connection) | null = null;\n\n/**\n * Network layer for browsers. We use this instead of goog.net.XhrIo because\n * goog.net.XhrIo is hyuuuuge and doesn't work in React Native on Android.\n */\nabstract class XhrConnection\n implements Connection\n{\n protected xhr_: XMLHttpRequest;\n private errorCode_: ErrorCode;\n private sendPromise_: Promise;\n protected sent_: boolean = false;\n\n constructor() {\n this.xhr_ = new XMLHttpRequest();\n this.initXhr();\n this.errorCode_ = ErrorCode.NO_ERROR;\n this.sendPromise_ = new Promise(resolve => {\n this.xhr_.addEventListener('abort', () => {\n this.errorCode_ = ErrorCode.ABORT;\n resolve();\n });\n this.xhr_.addEventListener('error', () => {\n this.errorCode_ = ErrorCode.NETWORK_ERROR;\n resolve();\n });\n this.xhr_.addEventListener('load', () => {\n resolve();\n });\n });\n }\n\n abstract initXhr(): void;\n\n send(\n url: string,\n method: string,\n body?: ArrayBufferView | Blob | string,\n headers?: Headers\n ): Promise {\n if (this.sent_) {\n throw internalError('cannot .send() more than once');\n }\n this.sent_ = true;\n this.xhr_.open(method, url, true);\n if (headers !== undefined) {\n for (const key in headers) {\n if (headers.hasOwnProperty(key)) {\n this.xhr_.setRequestHeader(key, headers[key].toString());\n }\n }\n }\n if (body !== undefined) {\n this.xhr_.send(body);\n } else {\n this.xhr_.send();\n }\n return this.sendPromise_;\n }\n\n getErrorCode(): ErrorCode {\n if (!this.sent_) {\n throw internalError('cannot .getErrorCode() before sending');\n }\n return this.errorCode_;\n }\n\n getStatus(): number {\n if (!this.sent_) {\n throw internalError('cannot .getStatus() before sending');\n }\n try {\n return this.xhr_.status;\n } catch (e) {\n return -1;\n }\n }\n\n getResponse(): T {\n if (!this.sent_) {\n throw internalError('cannot .getResponse() before sending');\n }\n return this.xhr_.response;\n }\n\n getErrorText(): string {\n if (!this.sent_) {\n throw internalError('cannot .getErrorText() before sending');\n }\n return this.xhr_.statusText;\n }\n\n /** Aborts the request. */\n abort(): void {\n this.xhr_.abort();\n }\n\n getResponseHeader(header: string): string | null {\n return this.xhr_.getResponseHeader(header);\n }\n\n addUploadProgressListener(listener: (p1: ProgressEvent) => void): void {\n if (this.xhr_.upload != null) {\n this.xhr_.upload.addEventListener('progress', listener);\n }\n }\n\n removeUploadProgressListener(listener: (p1: ProgressEvent) => void): void {\n if (this.xhr_.upload != null) {\n this.xhr_.upload.removeEventListener('progress', listener);\n }\n }\n}\n\nexport class XhrTextConnection extends XhrConnection {\n initXhr(): void {\n this.xhr_.responseType = 'text';\n }\n}\n\nexport function newTextConnection(): Connection {\n return textFactoryOverride ? textFactoryOverride() : new XhrTextConnection();\n}\n\nexport class XhrBytesConnection extends XhrConnection {\n private data_?: ArrayBuffer;\n\n initXhr(): void {\n this.xhr_.responseType = 'arraybuffer';\n }\n}\n\nexport function newBytesConnection(): Connection {\n return new XhrBytesConnection();\n}\n\nexport class XhrBlobConnection extends XhrConnection {\n initXhr(): void {\n this.xhr_.responseType = 'blob';\n }\n}\n\nexport function newBlobConnection(): Connection {\n return new XhrBlobConnection();\n}\n\nexport function newStreamConnection(): Connection {\n throw new Error('Streams are only supported on Node');\n}\n\nexport function injectTestConnection(\n factory: (() => Connection) | null\n): void {\n textFactoryOverride = factory;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Defines types for interacting with blob transfer tasks.\n */\n\nimport { FbsBlob } from './implementation/blob';\nimport {\n canceled,\n StorageErrorCode,\n StorageError\n} from './implementation/error';\nimport {\n InternalTaskState,\n TaskEvent,\n TaskState,\n taskStateFromInternalTaskState\n} from './implementation/taskenums';\nimport { Metadata } from './metadata';\nimport {\n Observer,\n Subscribe,\n Unsubscribe,\n StorageObserver as StorageObserverInternal,\n NextFn\n} from './implementation/observer';\nimport { Request } from './implementation/request';\nimport { UploadTaskSnapshot, StorageObserver } from './public-types';\nimport { async as fbsAsync } from './implementation/async';\nimport { Mappings, getMappings } from './implementation/metadata';\nimport {\n createResumableUpload,\n getResumableUploadStatus,\n RESUMABLE_UPLOAD_CHUNK_SIZE,\n ResumableUploadStatus,\n continueResumableUpload,\n getMetadata,\n multipartUpload\n} from './implementation/requests';\nimport { Reference } from './reference';\nimport { newTextConnection } from './platform/connection';\n\n/**\n * Represents a blob being uploaded. Can be used to pause/resume/cancel the\n * upload and manage callbacks for various events.\n * @internal\n */\nexport class UploadTask {\n private _ref: Reference;\n /**\n * The data to be uploaded.\n */\n _blob: FbsBlob;\n /**\n * Metadata related to the upload.\n */\n _metadata: Metadata | null;\n private _mappings: Mappings;\n /**\n * Number of bytes transferred so far.\n */\n _transferred: number = 0;\n private _needToFetchStatus: boolean = false;\n private _needToFetchMetadata: boolean = false;\n private _observers: Array> = [];\n private _resumable: boolean;\n /**\n * Upload state.\n */\n _state: InternalTaskState;\n private _error?: StorageError = undefined;\n private _uploadUrl?: string = undefined;\n private _request?: Request = undefined;\n private _chunkMultiplier: number = 1;\n private _errorHandler: (p1: StorageError) => void;\n private _metadataErrorHandler: (p1: StorageError) => void;\n private _resolve?: (p1: UploadTaskSnapshot) => void = undefined;\n private _reject?: (p1: StorageError) => void = undefined;\n private _promise: Promise;\n\n /**\n * @param ref - The firebaseStorage.Reference object this task came\n * from, untyped to avoid cyclic dependencies.\n * @param blob - The blob to upload.\n */\n constructor(ref: Reference, blob: FbsBlob, metadata: Metadata | null = null) {\n this._ref = ref;\n this._blob = blob;\n this._metadata = metadata;\n this._mappings = getMappings();\n this._resumable = this._shouldDoResumable(this._blob);\n this._state = InternalTaskState.RUNNING;\n this._errorHandler = error => {\n this._request = undefined;\n this._chunkMultiplier = 1;\n if (error._codeEquals(StorageErrorCode.CANCELED)) {\n this._needToFetchStatus = true;\n this.completeTransitions_();\n } else {\n this._error = error;\n this._transition(InternalTaskState.ERROR);\n }\n };\n this._metadataErrorHandler = error => {\n this._request = undefined;\n if (error._codeEquals(StorageErrorCode.CANCELED)) {\n this.completeTransitions_();\n } else {\n this._error = error;\n this._transition(InternalTaskState.ERROR);\n }\n };\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n this._start();\n });\n\n // Prevent uncaught rejections on the internal promise from bubbling out\n // to the top level with a dummy handler.\n this._promise.then(null, () => {});\n }\n\n private _makeProgressCallback(): (p1: number, p2: number) => void {\n const sizeBefore = this._transferred;\n return loaded => this._updateProgress(sizeBefore + loaded);\n }\n\n private _shouldDoResumable(blob: FbsBlob): boolean {\n return blob.size() > 256 * 1024;\n }\n\n private _start(): void {\n if (this._state !== InternalTaskState.RUNNING) {\n // This can happen if someone pauses us in a resume callback, for example.\n return;\n }\n if (this._request !== undefined) {\n return;\n }\n if (this._resumable) {\n if (this._uploadUrl === undefined) {\n this._createResumable();\n } else {\n if (this._needToFetchStatus) {\n this._fetchStatus();\n } else {\n if (this._needToFetchMetadata) {\n // Happens if we miss the metadata on upload completion.\n this._fetchMetadata();\n } else {\n this._continueUpload();\n }\n }\n }\n } else {\n this._oneShotUpload();\n }\n }\n\n private _resolveToken(\n callback: (authToken: string | null, appCheckToken: string | null) => void\n ): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.all([\n this._ref.storage._getAuthToken(),\n this._ref.storage._getAppCheckToken()\n ]).then(([authToken, appCheckToken]) => {\n switch (this._state) {\n case InternalTaskState.RUNNING:\n callback(authToken, appCheckToken);\n break;\n case InternalTaskState.CANCELING:\n this._transition(InternalTaskState.CANCELED);\n break;\n case InternalTaskState.PAUSING:\n this._transition(InternalTaskState.PAUSED);\n break;\n default:\n }\n });\n }\n\n // TODO(andysoto): assert false\n\n private _createResumable(): void {\n this._resolveToken((authToken, appCheckToken) => {\n const requestInfo = createResumableUpload(\n this._ref.storage,\n this._ref._location,\n this._mappings,\n this._blob,\n this._metadata\n );\n const createRequest = this._ref.storage._makeRequest(\n requestInfo,\n newTextConnection,\n authToken,\n appCheckToken\n );\n this._request = createRequest;\n createRequest.getPromise().then((url: string) => {\n this._request = undefined;\n this._uploadUrl = url;\n this._needToFetchStatus = false;\n this.completeTransitions_();\n }, this._errorHandler);\n });\n }\n\n private _fetchStatus(): void {\n // TODO(andysoto): assert(this.uploadUrl_ !== null);\n const url = this._uploadUrl as string;\n this._resolveToken((authToken, appCheckToken) => {\n const requestInfo = getResumableUploadStatus(\n this._ref.storage,\n this._ref._location,\n url,\n this._blob\n );\n const statusRequest = this._ref.storage._makeRequest(\n requestInfo,\n newTextConnection,\n authToken,\n appCheckToken\n );\n this._request = statusRequest;\n statusRequest.getPromise().then(status => {\n status = status as ResumableUploadStatus;\n this._request = undefined;\n this._updateProgress(status.current);\n this._needToFetchStatus = false;\n if (status.finalized) {\n this._needToFetchMetadata = true;\n }\n this.completeTransitions_();\n }, this._errorHandler);\n });\n }\n\n private _continueUpload(): void {\n const chunkSize = RESUMABLE_UPLOAD_CHUNK_SIZE * this._chunkMultiplier;\n const status = new ResumableUploadStatus(\n this._transferred,\n this._blob.size()\n );\n\n // TODO(andysoto): assert(this.uploadUrl_ !== null);\n const url = this._uploadUrl as string;\n this._resolveToken((authToken, appCheckToken) => {\n let requestInfo;\n try {\n requestInfo = continueResumableUpload(\n this._ref._location,\n this._ref.storage,\n url,\n this._blob,\n chunkSize,\n this._mappings,\n status,\n this._makeProgressCallback()\n );\n } catch (e) {\n this._error = e;\n this._transition(InternalTaskState.ERROR);\n return;\n }\n const uploadRequest = this._ref.storage._makeRequest(\n requestInfo,\n newTextConnection,\n authToken,\n appCheckToken\n );\n this._request = uploadRequest;\n uploadRequest.getPromise().then((newStatus: ResumableUploadStatus) => {\n this._increaseMultiplier();\n this._request = undefined;\n this._updateProgress(newStatus.current);\n if (newStatus.finalized) {\n this._metadata = newStatus.metadata;\n this._transition(InternalTaskState.SUCCESS);\n } else {\n this.completeTransitions_();\n }\n }, this._errorHandler);\n });\n }\n\n private _increaseMultiplier(): void {\n const currentSize = RESUMABLE_UPLOAD_CHUNK_SIZE * this._chunkMultiplier;\n\n // Max chunk size is 32M.\n if (currentSize < 32 * 1024 * 1024) {\n this._chunkMultiplier *= 2;\n }\n }\n\n private _fetchMetadata(): void {\n this._resolveToken((authToken, appCheckToken) => {\n const requestInfo = getMetadata(\n this._ref.storage,\n this._ref._location,\n this._mappings\n );\n const metadataRequest = this._ref.storage._makeRequest(\n requestInfo,\n newTextConnection,\n authToken,\n appCheckToken\n );\n this._request = metadataRequest;\n metadataRequest.getPromise().then(metadata => {\n this._request = undefined;\n this._metadata = metadata;\n this._transition(InternalTaskState.SUCCESS);\n }, this._metadataErrorHandler);\n });\n }\n\n private _oneShotUpload(): void {\n this._resolveToken((authToken, appCheckToken) => {\n const requestInfo = multipartUpload(\n this._ref.storage,\n this._ref._location,\n this._mappings,\n this._blob,\n this._metadata\n );\n const multipartRequest = this._ref.storage._makeRequest(\n requestInfo,\n newTextConnection,\n authToken,\n appCheckToken\n );\n this._request = multipartRequest;\n multipartRequest.getPromise().then(metadata => {\n this._request = undefined;\n this._metadata = metadata;\n this._updateProgress(this._blob.size());\n this._transition(InternalTaskState.SUCCESS);\n }, this._errorHandler);\n });\n }\n\n private _updateProgress(transferred: number): void {\n const old = this._transferred;\n this._transferred = transferred;\n\n // A progress update can make the \"transferred\" value smaller (e.g. a\n // partial upload not completed by server, after which the \"transferred\"\n // value may reset to the value at the beginning of the request).\n if (this._transferred !== old) {\n this._notifyObservers();\n }\n }\n\n private _transition(state: InternalTaskState): void {\n if (this._state === state) {\n return;\n }\n switch (state) {\n case InternalTaskState.CANCELING:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING ||\n // this.state_ === InternalTaskState.PAUSING);\n this._state = state;\n if (this._request !== undefined) {\n this._request.cancel();\n }\n break;\n case InternalTaskState.PAUSING:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING);\n this._state = state;\n if (this._request !== undefined) {\n this._request.cancel();\n }\n break;\n case InternalTaskState.RUNNING:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.PAUSED ||\n // this.state_ === InternalTaskState.PAUSING);\n const wasPaused = this._state === InternalTaskState.PAUSED;\n this._state = state;\n if (wasPaused) {\n this._notifyObservers();\n this._start();\n }\n break;\n case InternalTaskState.PAUSED:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.PAUSING);\n this._state = state;\n this._notifyObservers();\n break;\n case InternalTaskState.CANCELED:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.PAUSED ||\n // this.state_ === InternalTaskState.CANCELING);\n this._error = canceled();\n this._state = state;\n this._notifyObservers();\n break;\n case InternalTaskState.ERROR:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING ||\n // this.state_ === InternalTaskState.PAUSING ||\n // this.state_ === InternalTaskState.CANCELING);\n this._state = state;\n this._notifyObservers();\n break;\n case InternalTaskState.SUCCESS:\n // TODO(andysoto):\n // assert(this.state_ === InternalTaskState.RUNNING ||\n // this.state_ === InternalTaskState.PAUSING ||\n // this.state_ === InternalTaskState.CANCELING);\n this._state = state;\n this._notifyObservers();\n break;\n default: // Ignore\n }\n }\n\n private completeTransitions_(): void {\n switch (this._state) {\n case InternalTaskState.PAUSING:\n this._transition(InternalTaskState.PAUSED);\n break;\n case InternalTaskState.CANCELING:\n this._transition(InternalTaskState.CANCELED);\n break;\n case InternalTaskState.RUNNING:\n this._start();\n break;\n default:\n // TODO(andysoto): assert(false);\n break;\n }\n }\n\n /**\n * A snapshot of the current task state.\n */\n get snapshot(): UploadTaskSnapshot {\n const externalState = taskStateFromInternalTaskState(this._state);\n return {\n bytesTransferred: this._transferred,\n totalBytes: this._blob.size(),\n state: externalState,\n metadata: this._metadata!,\n task: this,\n ref: this._ref\n };\n }\n\n /**\n * Adds a callback for an event.\n * @param type - The type of event to listen for.\n * @param nextOrObserver -\n * The `next` function, which gets called for each item in\n * the event stream, or an observer object with some or all of these three\n * properties (`next`, `error`, `complete`).\n * @param error - A function that gets called with a `StorageError`\n * if the event stream ends due to an error.\n * @param completed - A function that gets called if the\n * event stream ends normally.\n * @returns\n * If only the event argument is passed, returns a function you can use to\n * add callbacks (see the examples above). If more than just the event\n * argument is passed, returns a function you can call to unregister the\n * callbacks.\n */\n on(\n type: TaskEvent,\n nextOrObserver?:\n | StorageObserver\n | null\n | ((snapshot: UploadTaskSnapshot) => unknown),\n error?: ((a: StorageError) => unknown) | null,\n completed?: Unsubscribe | null\n ): Unsubscribe | Subscribe {\n const observer = new Observer(\n (nextOrObserver as\n | StorageObserverInternal\n | NextFn) || undefined,\n error || undefined,\n completed || undefined\n );\n this._addObserver(observer);\n return () => {\n this._removeObserver(observer);\n };\n }\n\n /**\n * This object behaves like a Promise, and resolves with its snapshot data\n * when the upload completes.\n * @param onFulfilled - The fulfillment callback. Promise chaining works as normal.\n * @param onRejected - The rejection callback.\n */\n then(\n onFulfilled?: ((value: UploadTaskSnapshot) => U | Promise) | null,\n onRejected?: ((error: StorageError) => U | Promise) | null\n ): Promise {\n // These casts are needed so that TypeScript can infer the types of the\n // resulting Promise.\n return this._promise.then(\n onFulfilled as (value: UploadTaskSnapshot) => U | Promise,\n onRejected as ((error: unknown) => Promise) | null\n );\n }\n\n /**\n * Equivalent to calling `then(null, onRejected)`.\n */\n catch(onRejected: (p1: StorageError) => T | Promise): Promise {\n return this.then(null, onRejected);\n }\n\n /**\n * Adds the given observer.\n */\n private _addObserver(observer: Observer): void {\n this._observers.push(observer);\n this._notifyObserver(observer);\n }\n\n /**\n * Removes the given observer.\n */\n private _removeObserver(observer: Observer): void {\n const i = this._observers.indexOf(observer);\n if (i !== -1) {\n this._observers.splice(i, 1);\n }\n }\n\n private _notifyObservers(): void {\n this._finishPromise();\n const observers = this._observers.slice();\n observers.forEach(observer => {\n this._notifyObserver(observer);\n });\n }\n\n private _finishPromise(): void {\n if (this._resolve !== undefined) {\n let triggered = true;\n switch (taskStateFromInternalTaskState(this._state)) {\n case TaskState.SUCCESS:\n fbsAsync(this._resolve.bind(null, this.snapshot))();\n break;\n case TaskState.CANCELED:\n case TaskState.ERROR:\n const toCall = this._reject as (p1: StorageError) => void;\n fbsAsync(toCall.bind(null, this._error as StorageError))();\n break;\n default:\n triggered = false;\n break;\n }\n if (triggered) {\n this._resolve = undefined;\n this._reject = undefined;\n }\n }\n }\n\n private _notifyObserver(observer: Observer): void {\n const externalState = taskStateFromInternalTaskState(this._state);\n switch (externalState) {\n case TaskState.RUNNING:\n case TaskState.PAUSED:\n if (observer.next) {\n fbsAsync(observer.next.bind(observer, this.snapshot))();\n }\n break;\n case TaskState.SUCCESS:\n if (observer.complete) {\n fbsAsync(observer.complete.bind(observer))();\n }\n break;\n case TaskState.CANCELED:\n case TaskState.ERROR:\n if (observer.error) {\n fbsAsync(\n observer.error.bind(observer, this._error as StorageError)\n )();\n }\n break;\n default:\n // TODO(andysoto): assert(false);\n if (observer.error) {\n fbsAsync(\n observer.error.bind(observer, this._error as StorageError)\n )();\n }\n }\n }\n\n /**\n * Resumes a paused task. Has no effect on a currently running or failed task.\n * @returns True if the operation took effect, false if ignored.\n */\n resume(): boolean {\n const valid =\n this._state === InternalTaskState.PAUSED ||\n this._state === InternalTaskState.PAUSING;\n if (valid) {\n this._transition(InternalTaskState.RUNNING);\n }\n return valid;\n }\n\n /**\n * Pauses a currently running task. Has no effect on a paused or failed task.\n * @returns True if the operation took effect, false if ignored.\n */\n pause(): boolean {\n const valid = this._state === InternalTaskState.RUNNING;\n if (valid) {\n this._transition(InternalTaskState.PAUSING);\n }\n return valid;\n }\n\n /**\n * Cancels a currently running or paused task. Has no effect on a complete or\n * failed task.\n * @returns True if the operation took effect, false if ignored.\n */\n cancel(): boolean {\n const valid =\n this._state === InternalTaskState.RUNNING ||\n this._state === InternalTaskState.PAUSING;\n if (valid) {\n this._transition(InternalTaskState.CANCELING);\n }\n return valid;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Defines the Firebase StorageReference class.\n */\n\nimport { PassThrough, Transform, TransformOptions } from 'stream';\n\nimport { FbsBlob } from './implementation/blob';\nimport { Location } from './implementation/location';\nimport { getMappings } from './implementation/metadata';\nimport { child, lastComponent, parent } from './implementation/path';\nimport {\n deleteObject as requestsDeleteObject,\n getBytes,\n getDownloadUrl as requestsGetDownloadUrl,\n getMetadata as requestsGetMetadata,\n list as requestsList,\n multipartUpload,\n updateMetadata as requestsUpdateMetadata\n} from './implementation/requests';\nimport { ListOptions, UploadResult } from './public-types';\nimport { dataFromString, StringFormat } from './implementation/string';\nimport { Metadata } from './metadata';\nimport { FirebaseStorageImpl } from './service';\nimport { ListResult } from './list';\nimport { UploadTask } from './task';\nimport { invalidRootOperation, noDownloadURL } from './implementation/error';\nimport { validateNumber } from './implementation/type';\nimport {\n newBlobConnection,\n newBytesConnection,\n newStreamConnection,\n newTextConnection\n} from './platform/connection';\n\n/**\n * Provides methods to interact with a bucket in the Firebase Storage service.\n * @internal\n * @param _location - An fbs.location, or the URL at\n * which to base this object, in one of the following forms:\n * gs:///\n * http[s]://firebasestorage.googleapis.com/\n * /b//o/\n * Any query or fragment strings will be ignored in the http[s]\n * format. If no value is passed, the storage object will use a URL based on\n * the project ID of the base firebase.App instance.\n */\nexport class Reference {\n _location: Location;\n\n constructor(\n private _service: FirebaseStorageImpl,\n location: string | Location\n ) {\n if (location instanceof Location) {\n this._location = location;\n } else {\n this._location = Location.makeFromUrl(location, _service.host);\n }\n }\n\n /**\n * Returns the URL for the bucket and path this object references,\n * in the form gs:///\n * @override\n */\n toString(): string {\n return 'gs://' + this._location.bucket + '/' + this._location.path;\n }\n\n protected _newRef(\n service: FirebaseStorageImpl,\n location: Location\n ): Reference {\n return new Reference(service, location);\n }\n\n /**\n * A reference to the root of this object's bucket.\n */\n get root(): Reference {\n const location = new Location(this._location.bucket, '');\n return this._newRef(this._service, location);\n }\n\n /**\n * The name of the bucket containing this reference's object.\n */\n get bucket(): string {\n return this._location.bucket;\n }\n\n /**\n * The full path of this object.\n */\n get fullPath(): string {\n return this._location.path;\n }\n\n /**\n * The short name of this object, which is the last component of the full path.\n * For example, if fullPath is 'full/path/image.png', name is 'image.png'.\n */\n get name(): string {\n return lastComponent(this._location.path);\n }\n\n /**\n * The `StorageService` instance this `StorageReference` is associated with.\n */\n get storage(): FirebaseStorageImpl {\n return this._service;\n }\n\n /**\n * A `StorageReference` pointing to the parent location of this `StorageReference`, or null if\n * this reference is the root.\n */\n get parent(): Reference | null {\n const newPath = parent(this._location.path);\n if (newPath === null) {\n return null;\n }\n const location = new Location(this._location.bucket, newPath);\n return new Reference(this._service, location);\n }\n\n /**\n * Utility function to throw an error in methods that do not accept a root reference.\n */\n _throwIfRoot(name: string): void {\n if (this._location.path === '') {\n throw invalidRootOperation(name);\n }\n }\n}\n\n/**\n * Download the bytes at the object's location.\n * @returns A Promise containing the downloaded bytes.\n */\nexport function getBytesInternal(\n ref: Reference,\n maxDownloadSizeBytes?: number\n): Promise {\n ref._throwIfRoot('getBytes');\n const requestInfo = getBytes(\n ref.storage,\n ref._location,\n maxDownloadSizeBytes\n );\n return ref.storage\n .makeRequestWithTokens(requestInfo, newBytesConnection)\n .then(bytes =>\n maxDownloadSizeBytes !== undefined\n ? // GCS may not honor the Range header for small files\n (bytes as ArrayBuffer).slice(0, maxDownloadSizeBytes)\n : (bytes as ArrayBuffer)\n );\n}\n\n/**\n * Download the bytes at the object's location.\n * @returns A Promise containing the downloaded blob.\n */\nexport function getBlobInternal(\n ref: Reference,\n maxDownloadSizeBytes?: number\n): Promise {\n ref._throwIfRoot('getBlob');\n const requestInfo = getBytes(\n ref.storage,\n ref._location,\n maxDownloadSizeBytes\n );\n return ref.storage\n .makeRequestWithTokens(requestInfo, newBlobConnection)\n .then(blob =>\n maxDownloadSizeBytes !== undefined\n ? // GCS may not honor the Range header for small files\n (blob as Blob).slice(0, maxDownloadSizeBytes)\n : (blob as Blob)\n );\n}\n\n/** Stream the bytes at the object's location. */\nexport function getStreamInternal(\n ref: Reference,\n maxDownloadSizeBytes?: number\n): NodeJS.ReadableStream {\n ref._throwIfRoot('getStream');\n const requestInfo = getBytes(\n ref.storage,\n ref._location,\n maxDownloadSizeBytes\n );\n\n /** A transformer that passes through the first n bytes. */\n const newMaxSizeTransform: (n: number) => TransformOptions = n => {\n let missingBytes = n;\n return {\n transform(chunk, encoding, callback) {\n // GCS may not honor the Range header for small files\n if (chunk.length < missingBytes) {\n this.push(chunk);\n missingBytes -= chunk.length;\n } else {\n this.push(chunk.slice(0, missingBytes));\n this.emit('end');\n }\n callback();\n }\n } as TransformOptions;\n };\n\n const result =\n maxDownloadSizeBytes !== undefined\n ? new Transform(newMaxSizeTransform(maxDownloadSizeBytes))\n : new PassThrough();\n\n ref.storage\n .makeRequestWithTokens(requestInfo, newStreamConnection)\n .then(stream => (stream as NodeJS.ReadableStream).pipe(result))\n .catch(e => result.destroy(e));\n return result;\n}\n\n/**\n * Uploads data to this object's location.\n * The upload is not resumable.\n *\n * @param ref - StorageReference where data should be uploaded.\n * @param data - The data to upload.\n * @param metadata - Metadata for the newly uploaded data.\n * @returns A Promise containing an UploadResult\n */\nexport function uploadBytes(\n ref: Reference,\n data: Blob | Uint8Array | ArrayBuffer,\n metadata?: Metadata\n): Promise {\n ref._throwIfRoot('uploadBytes');\n const requestInfo = multipartUpload(\n ref.storage,\n ref._location,\n getMappings(),\n new FbsBlob(data, true),\n metadata\n );\n return ref.storage\n .makeRequestWithTokens(requestInfo, newTextConnection)\n .then(finalMetadata => {\n return {\n metadata: finalMetadata,\n ref\n };\n });\n}\n\n/**\n * Uploads data to this object's location.\n * The upload can be paused and resumed, and exposes progress updates.\n * @public\n * @param ref - StorageReference where data should be uploaded.\n * @param data - The data to upload.\n * @param metadata - Metadata for the newly uploaded data.\n * @returns An UploadTask\n */\nexport function uploadBytesResumable(\n ref: Reference,\n data: Blob | Uint8Array | ArrayBuffer,\n metadata?: Metadata\n): UploadTask {\n ref._throwIfRoot('uploadBytesResumable');\n return new UploadTask(ref, new FbsBlob(data), metadata);\n}\n\n/**\n * Uploads a string to this object's location.\n * The upload is not resumable.\n * @public\n * @param ref - StorageReference where string should be uploaded.\n * @param value - The string to upload.\n * @param format - The format of the string to upload.\n * @param metadata - Metadata for the newly uploaded string.\n * @returns A Promise containing an UploadResult\n */\nexport function uploadString(\n ref: Reference,\n value: string,\n format: StringFormat = StringFormat.RAW,\n metadata?: Metadata\n): Promise {\n ref._throwIfRoot('uploadString');\n const data = dataFromString(format, value);\n const metadataClone = { ...metadata } as Metadata;\n if (metadataClone['contentType'] == null && data.contentType != null) {\n metadataClone['contentType'] = data.contentType!;\n }\n return uploadBytes(ref, data.data, metadataClone);\n}\n\n/**\n * List all items (files) and prefixes (folders) under this storage reference.\n *\n * This is a helper method for calling list() repeatedly until there are\n * no more results. The default pagination size is 1000.\n *\n * Note: The results may not be consistent if objects are changed while this\n * operation is running.\n *\n * Warning: listAll may potentially consume too many resources if there are\n * too many results.\n * @public\n * @param ref - StorageReference to get list from.\n *\n * @returns A Promise that resolves with all the items and prefixes under\n * the current storage reference. `prefixes` contains references to\n * sub-directories and `items` contains references to objects in this\n * folder. `nextPageToken` is never returned.\n */\nexport function listAll(ref: Reference): Promise {\n const accumulator: ListResult = {\n prefixes: [],\n items: []\n };\n return listAllHelper(ref, accumulator).then(() => accumulator);\n}\n\n/**\n * Separated from listAll because async functions can't use \"arguments\".\n * @param ref\n * @param accumulator\n * @param pageToken\n */\nasync function listAllHelper(\n ref: Reference,\n accumulator: ListResult,\n pageToken?: string\n): Promise {\n const opt: ListOptions = {\n // maxResults is 1000 by default.\n pageToken\n };\n const nextPage = await list(ref, opt);\n accumulator.prefixes.push(...nextPage.prefixes);\n accumulator.items.push(...nextPage.items);\n if (nextPage.nextPageToken != null) {\n await listAllHelper(ref, accumulator, nextPage.nextPageToken);\n }\n}\n\n/**\n * List items (files) and prefixes (folders) under this storage reference.\n *\n * List API is only available for Firebase Rules Version 2.\n *\n * GCS is a key-blob store. Firebase Storage imposes the semantic of '/'\n * delimited folder structure.\n * Refer to GCS's List API if you want to learn more.\n *\n * To adhere to Firebase Rules's Semantics, Firebase Storage does not\n * support objects whose paths end with \"/\" or contain two consecutive\n * \"/\"s. Firebase Storage List API will filter these unsupported objects.\n * list() may fail if there are too many unsupported objects in the bucket.\n * @public\n *\n * @param ref - StorageReference to get list from.\n * @param options - See ListOptions for details.\n * @returns A Promise that resolves with the items and prefixes.\n * `prefixes` contains references to sub-folders and `items`\n * contains references to objects in this folder. `nextPageToken`\n * can be used to get the rest of the results.\n */\nexport function list(\n ref: Reference,\n options?: ListOptions | null\n): Promise {\n if (options != null) {\n if (typeof options.maxResults === 'number') {\n validateNumber(\n 'options.maxResults',\n /* minValue= */ 1,\n /* maxValue= */ 1000,\n options.maxResults\n );\n }\n }\n const op = options || {};\n const requestInfo = requestsList(\n ref.storage,\n ref._location,\n /*delimiter= */ '/',\n op.pageToken,\n op.maxResults\n );\n return ref.storage.makeRequestWithTokens(requestInfo, newTextConnection);\n}\n\n/**\n * A `Promise` that resolves with the metadata for this object. If this\n * object doesn't exist or metadata cannot be retreived, the promise is\n * rejected.\n * @public\n * @param ref - StorageReference to get metadata from.\n */\nexport function getMetadata(ref: Reference): Promise {\n ref._throwIfRoot('getMetadata');\n const requestInfo = requestsGetMetadata(\n ref.storage,\n ref._location,\n getMappings()\n );\n return ref.storage.makeRequestWithTokens(requestInfo, newTextConnection);\n}\n\n/**\n * Updates the metadata for this object.\n * @public\n * @param ref - StorageReference to update metadata for.\n * @param metadata - The new metadata for the object.\n * Only values that have been explicitly set will be changed. Explicitly\n * setting a value to null will remove the metadata.\n * @returns A `Promise` that resolves\n * with the new metadata for this object.\n * See `firebaseStorage.Reference.prototype.getMetadata`\n */\nexport function updateMetadata(\n ref: Reference,\n metadata: Partial\n): Promise {\n ref._throwIfRoot('updateMetadata');\n const requestInfo = requestsUpdateMetadata(\n ref.storage,\n ref._location,\n metadata,\n getMappings()\n );\n return ref.storage.makeRequestWithTokens(requestInfo, newTextConnection);\n}\n\n/**\n * Returns the download URL for the given Reference.\n * @public\n * @returns A `Promise` that resolves with the download\n * URL for this object.\n */\nexport function getDownloadURL(ref: Reference): Promise {\n ref._throwIfRoot('getDownloadURL');\n const requestInfo = requestsGetDownloadUrl(\n ref.storage,\n ref._location,\n getMappings()\n );\n return ref.storage\n .makeRequestWithTokens(requestInfo, newTextConnection)\n .then(url => {\n if (url === null) {\n throw noDownloadURL();\n }\n return url;\n });\n}\n\n/**\n * Deletes the object at this location.\n * @public\n * @param ref - StorageReference for object to delete.\n * @returns A `Promise` that resolves if the deletion succeeds.\n */\nexport function deleteObject(ref: Reference): Promise {\n ref._throwIfRoot('deleteObject');\n const requestInfo = requestsDeleteObject(ref.storage, ref._location);\n return ref.storage.makeRequestWithTokens(requestInfo, newTextConnection);\n}\n\n/**\n * Returns reference for object obtained by appending `childPath` to `ref`.\n *\n * @param ref - StorageReference to get child of.\n * @param childPath - Child path from provided ref.\n * @returns A reference to the object obtained by\n * appending childPath, removing any duplicate, beginning, or trailing\n * slashes.\n *\n */\nexport function _getChild(ref: Reference, childPath: string): Reference {\n const newPath = child(ref._location.path, childPath);\n const location = new Location(ref._location.bucket, newPath);\n return new Reference(ref.storage, location);\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Location } from './implementation/location';\nimport { FailRequest } from './implementation/failrequest';\nimport { Request, makeRequest } from './implementation/request';\nimport { RequestInfo } from './implementation/requestinfo';\nimport { Reference, _getChild } from './reference';\nimport { Provider } from '@firebase/component';\nimport { FirebaseAuthInternalName } from '@firebase/auth-interop-types';\nimport { AppCheckInternalComponentName } from '@firebase/app-check-interop-types';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { FirebaseApp, FirebaseOptions } from '@firebase/app';\nimport {\n CONFIG_STORAGE_BUCKET_KEY,\n DEFAULT_HOST,\n DEFAULT_MAX_OPERATION_RETRY_TIME,\n DEFAULT_MAX_UPLOAD_RETRY_TIME\n} from './implementation/constants';\nimport {\n invalidArgument,\n appDeleted,\n noDefaultBucket\n} from './implementation/error';\nimport { validateNumber } from './implementation/type';\nimport { FirebaseStorage } from './public-types';\nimport { createMockUserToken, EmulatorMockTokenOptions } from '@firebase/util';\nimport { Connection, ConnectionType } from './implementation/connection';\n\nexport function isUrl(path?: string): boolean {\n return /^[A-Za-z]+:\\/\\//.test(path as string);\n}\n\n/**\n * Returns a firebaseStorage.Reference for the given url.\n */\nfunction refFromURL(service: FirebaseStorageImpl, url: string): Reference {\n return new Reference(service, url);\n}\n\n/**\n * Returns a firebaseStorage.Reference for the given path in the default\n * bucket.\n */\nfunction refFromPath(\n ref: FirebaseStorageImpl | Reference,\n path?: string\n): Reference {\n if (ref instanceof FirebaseStorageImpl) {\n const service = ref;\n if (service._bucket == null) {\n throw noDefaultBucket();\n }\n const reference = new Reference(service, service._bucket!);\n if (path != null) {\n return refFromPath(reference, path);\n } else {\n return reference;\n }\n } else {\n // ref is a Reference\n if (path !== undefined) {\n return _getChild(ref, path);\n } else {\n return ref;\n }\n }\n}\n\n/**\n * Returns a storage Reference for the given url.\n * @param storage - `Storage` instance.\n * @param url - URL. If empty, returns root reference.\n * @public\n */\nexport function ref(storage: FirebaseStorageImpl, url?: string): Reference;\n/**\n * Returns a storage Reference for the given path in the\n * default bucket.\n * @param storageOrRef - `Storage` service or storage `Reference`.\n * @param pathOrUrlStorage - path. If empty, returns root reference (if Storage\n * instance provided) or returns same reference (if Reference provided).\n * @public\n */\nexport function ref(\n storageOrRef: FirebaseStorageImpl | Reference,\n path?: string\n): Reference;\nexport function ref(\n serviceOrRef: FirebaseStorageImpl | Reference,\n pathOrUrl?: string\n): Reference | null {\n if (pathOrUrl && isUrl(pathOrUrl)) {\n if (serviceOrRef instanceof FirebaseStorageImpl) {\n return refFromURL(serviceOrRef, pathOrUrl);\n } else {\n throw invalidArgument(\n 'To use ref(service, url), the first argument must be a Storage instance.'\n );\n }\n } else {\n return refFromPath(serviceOrRef, pathOrUrl);\n }\n}\n\nfunction extractBucket(\n host: string,\n config?: FirebaseOptions\n): Location | null {\n const bucketString = config?.[CONFIG_STORAGE_BUCKET_KEY];\n if (bucketString == null) {\n return null;\n }\n return Location.makeFromBucketSpec(bucketString, host);\n}\n\nexport function connectStorageEmulator(\n storage: FirebaseStorageImpl,\n host: string,\n port: number,\n options: {\n mockUserToken?: EmulatorMockTokenOptions | string;\n } = {}\n): void {\n storage.host = `${host}:${port}`;\n storage._protocol = 'http';\n const { mockUserToken } = options;\n if (mockUserToken) {\n storage._overrideAuthToken =\n typeof mockUserToken === 'string'\n ? mockUserToken\n : createMockUserToken(mockUserToken, storage.app.options.projectId);\n }\n}\n\n/**\n * A service that provides Firebase Storage Reference instances.\n * @param opt_url - gs:// url to a custom Storage Bucket\n *\n * @internal\n */\nexport class FirebaseStorageImpl implements FirebaseStorage {\n _bucket: Location | null = null;\n /**\n * This string can be in the formats:\n * - host\n * - host:port\n */\n private _host: string = DEFAULT_HOST;\n _protocol: string = 'https';\n protected readonly _appId: string | null = null;\n private readonly _requests: Set>;\n private _deleted: boolean = false;\n private _maxOperationRetryTime: number;\n private _maxUploadRetryTime: number;\n _overrideAuthToken?: string;\n\n constructor(\n /**\n * FirebaseApp associated with this StorageService instance.\n */\n readonly app: FirebaseApp,\n readonly _authProvider: Provider,\n /**\n * @internal\n */\n readonly _appCheckProvider: Provider,\n /**\n * @internal\n */\n readonly _url?: string,\n readonly _firebaseVersion?: string\n ) {\n this._maxOperationRetryTime = DEFAULT_MAX_OPERATION_RETRY_TIME;\n this._maxUploadRetryTime = DEFAULT_MAX_UPLOAD_RETRY_TIME;\n this._requests = new Set();\n if (_url != null) {\n this._bucket = Location.makeFromBucketSpec(_url, this._host);\n } else {\n this._bucket = extractBucket(this._host, this.app.options);\n }\n }\n\n /**\n * The host string for this service, in the form of `host` or\n * `host:port`.\n */\n get host(): string {\n return this._host;\n }\n\n set host(host: string) {\n this._host = host;\n if (this._url != null) {\n this._bucket = Location.makeFromBucketSpec(this._url, host);\n } else {\n this._bucket = extractBucket(host, this.app.options);\n }\n }\n\n /**\n * The maximum time to retry uploads in milliseconds.\n */\n get maxUploadRetryTime(): number {\n return this._maxUploadRetryTime;\n }\n\n set maxUploadRetryTime(time: number) {\n validateNumber(\n 'time',\n /* minValue=*/ 0,\n /* maxValue= */ Number.POSITIVE_INFINITY,\n time\n );\n this._maxUploadRetryTime = time;\n }\n\n /**\n * The maximum time to retry operations other than uploads or downloads in\n * milliseconds.\n */\n get maxOperationRetryTime(): number {\n return this._maxOperationRetryTime;\n }\n\n set maxOperationRetryTime(time: number) {\n validateNumber(\n 'time',\n /* minValue=*/ 0,\n /* maxValue= */ Number.POSITIVE_INFINITY,\n time\n );\n this._maxOperationRetryTime = time;\n }\n\n async _getAuthToken(): Promise {\n if (this._overrideAuthToken) {\n return this._overrideAuthToken;\n }\n const auth = this._authProvider.getImmediate({ optional: true });\n if (auth) {\n const tokenData = await auth.getToken();\n if (tokenData !== null) {\n return tokenData.accessToken;\n }\n }\n return null;\n }\n\n async _getAppCheckToken(): Promise {\n const appCheck = this._appCheckProvider.getImmediate({ optional: true });\n if (appCheck) {\n const result = await appCheck.getToken();\n // TODO: What do we want to do if there is an error getting the token?\n // Context: appCheck.getToken() will never throw even if an error happened. In the error case, a dummy token will be\n // returned along with an error field describing the error. In general, we shouldn't care about the error condition and just use\n // the token (actual or dummy) to send requests.\n return result.token;\n }\n return null;\n }\n\n /**\n * Stop running requests and prevent more from being created.\n */\n _delete(): Promise {\n if (!this._deleted) {\n this._deleted = true;\n this._requests.forEach(request => request.cancel());\n this._requests.clear();\n }\n return Promise.resolve();\n }\n\n /**\n * Returns a new firebaseStorage.Reference object referencing this StorageService\n * at the given Location.\n */\n _makeStorageReference(loc: Location): Reference {\n return new Reference(this, loc);\n }\n\n /**\n * @param requestInfo - HTTP RequestInfo object\n * @param authToken - Firebase auth token\n */\n _makeRequest(\n requestInfo: RequestInfo,\n requestFactory: () => Connection,\n authToken: string | null,\n appCheckToken: string | null\n ): Request {\n if (!this._deleted) {\n const request = makeRequest(\n requestInfo,\n this._appId,\n authToken,\n appCheckToken,\n requestFactory,\n this._firebaseVersion\n );\n this._requests.add(request);\n // Request removes itself from set when complete.\n request.getPromise().then(\n () => this._requests.delete(request),\n () => this._requests.delete(request)\n );\n return request;\n } else {\n return new FailRequest(appDeleted());\n }\n }\n\n async makeRequestWithTokens(\n requestInfo: RequestInfo,\n requestFactory: () => Connection\n ): Promise {\n const [authToken, appCheckToken] = await Promise.all([\n this._getAuthToken(),\n this._getAppCheckToken()\n ]);\n\n return this._makeRequest(\n requestInfo,\n requestFactory,\n authToken,\n appCheckToken\n ).getPromise();\n }\n}\n","import { DsnComponents, DsnLike, SdkMetadata } from '@sentry/types';\nimport { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\n\nconst SENTRY_API_VERSION = '7';\n\n/**\n * Stores details about a Sentry SDK\n */\nexport interface APIDetails {\n /** The DSN as passed to Sentry.init() */\n initDsn: DsnLike;\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n metadata: SdkMetadata;\n /** The internally used Dsn object. */\n readonly dsn: DsnComponents;\n /** The envelope tunnel to use. */\n readonly tunnel?: string;\n}\n\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n *\n * @deprecated Please use APIDetails\n **/\nexport class API {\n /** The DSN as passed to Sentry.init() */\n public dsn: DsnLike;\n\n /** Metadata about the SDK (name, version, etc) for inclusion in envelope headers */\n public metadata: SdkMetadata;\n\n /** The internally used Dsn object. */\n private readonly _dsnObject: DsnComponents;\n\n /** The envelope tunnel to use. */\n private readonly _tunnel?: string;\n\n /** Create a new instance of API */\n public constructor(dsn: DsnLike, metadata: SdkMetadata = {}, tunnel?: string) {\n this.dsn = dsn;\n this._dsnObject = makeDsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n\n /** Returns the Dsn object. */\n public getDsn(): DsnComponents {\n return this._dsnObject;\n }\n\n /** Does this transport force envelopes? */\n public forceEnvelope(): boolean {\n return !!this._tunnel;\n }\n\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n public getBaseApiEndpoint(): string {\n return getBaseApiEndpoint(this._dsnObject);\n }\n\n /** Returns the store endpoint URL. */\n public getStoreEndpoint(): string {\n return getStoreEndpoint(this._dsnObject);\n }\n\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getStoreEndpointWithUrlEncodedAuth(): string {\n return getStoreEndpointWithUrlEncodedAuth(this._dsnObject);\n }\n\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n public getEnvelopeEndpointWithUrlEncodedAuth(): string {\n return getEnvelopeEndpointWithUrlEncodedAuth(this._dsnObject, this._tunnel);\n }\n}\n\n/** Initializes API Details */\nexport function initAPIDetails(dsn: DsnLike, metadata?: SdkMetadata, tunnel?: string): APIDetails {\n return {\n initDsn: dsn,\n metadata: metadata || {},\n dsn: makeDsn(dsn),\n tunnel,\n } as APIDetails;\n}\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents, target: 'store' | 'envelope'): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/${target}/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents): string {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n\n/** Returns the store endpoint URL. */\nfunction getStoreEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'store');\n}\n\n/**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getStoreEndpointWithUrlEncodedAuth(dsn: DsnComponents): string {\n return `${getStoreEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/** Returns the envelope endpoint URL. */\nfunction _getEnvelopeEndpoint(dsn: DsnComponents): string {\n return _getIngestEndpoint(dsn, 'envelope');\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string): string {\n return tunnel ? tunnel : `${_getEnvelopeEndpoint(dsn)}?${_encodedAuth(dsn)}`;\n}\n\n/**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\nexport function getRequestHeaders(\n dsn: DsnComponents,\n clientName: string,\n clientVersion: string,\n): { [key: string]: string } {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n const header = [`Sentry sentry_version=${SENTRY_API_VERSION}`];\n header.push(`sentry_client=${clientName}/${clientVersion}`);\n header.push(`sentry_key=${dsn.publicKey}`);\n if (dsn.pass) {\n header.push(`sentry_secret=${dsn.pass}`);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(\n dsnLike: DsnLike,\n dialogOptions: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n user?: { name?: string; email?: string };\n },\n): string {\n const dsn = makeDsn(dsnLike);\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions += `&name=${encodeURIComponent(dialogOptions.user.name)}`;\n }\n if (dialogOptions.user.email) {\n encodedOptions += `&email=${encodeURIComponent(dialogOptions.user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _get from \"lodash/get\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Global } from '../util/Global';\nimport { isNumber, mathSign } from '../util/DataUtils';\nimport { filterProps, adaptEventsOfChild } from '../util/types';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n\n var _super = _createSuper(CartesianAxis);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld);\n }\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\n\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks) {\n var _this = this;\n\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = CartesianAxis.getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: // todo Array\n function getTicks(props) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || Global.isSsr) {\n return CartesianAxis.getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n};","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n BreadcrumbHint,\n Client,\n CustomSamplingContext,\n Event,\n EventHint,\n Extra,\n Extras,\n Hub as HubInterface,\n Integration,\n IntegrationClass,\n Primitive,\n SessionContext,\n Severity,\n Span,\n SpanContext,\n Transaction,\n TransactionContext,\n User,\n} from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\n\nimport { Scope } from './scope';\nimport { Session } from './session';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport const API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\nexport interface Layer {\n client?: Client;\n scope?: Scope;\n}\n\n/**\n * An object that contains a hub and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: {\n hub?: Hub;\n /**\n * Extra Hub properties injected by various SDKs\n */\n integrations?: Integration[];\n extensions?: {\n /** Hack to prevent bundlers from breaking our usage of the domain package in the cross-platform Hub package */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n domain?: { [key: string]: any };\n } & {\n /** Extension methods for the hub, which are bound to the current Hub instance */\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key: string]: Function;\n };\n };\n}\n\n/**\n * @hidden\n * @deprecated Can be removed once `Hub.getActiveDomain` is removed.\n */\nexport interface DomainAsCarrier extends Carrier {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n members: { [key: string]: any }[];\n}\n\n/**\n * @inheritDoc\n */\nexport class Hub implements HubInterface {\n /** Is a {@link Layer}[] containing the client and scope */\n private readonly _stack: Layer[] = [{}];\n\n /** Contains the last event id of a captured event. */\n private _lastEventId?: string;\n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n public constructor(client?: Client, scope: Scope = new Scope(), private readonly _version: number = API_VERSION) {\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n public isOlderThan(version: number): boolean {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n public bindClient(client?: Client): void {\n const top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n public pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n public popScope(): boolean {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n public withScope(callback: (scope: Scope) => void): void {\n const scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /** Returns the scope of the top stack. */\n public getScope(): Scope | undefined {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n public getStack(): Layer[] {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error('Sentry syntheticException');\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: exception,\n syntheticException,\n };\n }\n\n this._invokeClient('captureException', exception, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint): string {\n const eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n let finalHint = hint;\n\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n let syntheticException: Error;\n try {\n throw new Error(message);\n } catch (exception) {\n syntheticException = exception as Error;\n }\n finalHint = {\n originalException: message,\n syntheticException,\n };\n }\n\n this._invokeClient('captureMessage', message, level, {\n ...finalHint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._invokeClient('captureEvent', event, {\n ...hint,\n event_id: eventId,\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): void {\n const scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): void {\n const scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): void {\n const scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): void {\n const scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): void {\n const scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setContext(name: string, context: { [key: string]: any } | null): void {\n const scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n public configureScope(callback: (scope: Scope) => void): void {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n public run(callback: (hub: Hub) => void): void {\n const oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration(integration: IntegrationClass): T | null {\n const client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSpan(context: SpanContext): Span {\n return this._callExtensionMethod('startSpan', context);\n }\n\n /**\n * @inheritDoc\n */\n public startTransaction(context: TransactionContext, customSamplingContext?: CustomSamplingContext): Transaction {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n public traceHeaders(): { [key: string]: string } {\n return this._callExtensionMethod<{ [key: string]: string }>('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(endSession: boolean = false): void {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n public endSession(): void {\n const layer = this.getStackTop();\n const scope = layer && layer.scope;\n const session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n public startSession(context?: SessionContext): Session {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n const global = getGlobalObject<{ navigator?: { userAgent?: string } }>();\n const { userAgent } = global.navigator || {};\n\n const session = new Session({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n const currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Sends the current Session on the scope\n */\n private _sendSessionUpdate(): void {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n const session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _invokeClient(method: M, ...args: any[]): void {\n const { scope, client } = this.getStackTop();\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (client as any)[method](...args, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _callExtensionMethod(method: string, ...args: any[]): T {\n const carrier = getMainCarrier();\n const sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n const carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub: Hub): Hub {\n const registry = getMainCarrier();\n const oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub(): Hub {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain(): DomainAsCarrier | undefined {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n\n const sentry = getMainCarrier().__SENTRY__;\n\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry: Carrier): Hub {\n try {\n const sentry = getMainCarrier().__SENTRY__;\n const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n const registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier: Carrier): boolean {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier: Carrier): Hub {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier: Carrier, hub: Hub): boolean {\n if (!carrier) return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.0.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2021 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\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.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\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 } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else 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) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\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 element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) 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 // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\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.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.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 yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 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 n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || 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 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\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 xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[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 xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[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 n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[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 (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\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 BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\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 BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\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 BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\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 BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\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 BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return 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 BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\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 * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(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 = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((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 BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // 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\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 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 dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. 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 round(r, r.e + DECIMAL_PLACES + 2, 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\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 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 e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst useBuffer = globalThis.process && !globalThis.process.browser && globalThis.Buffer && typeof globalThis.Buffer.isBuffer === 'function';\nconst textDecoder = new TextDecoder();\nconst textEncoder = new TextEncoder();\nfunction isBuffer(buf) {\n return useBuffer && globalThis.Buffer.isBuffer(buf);\n}\nfunction asU8A(buf) {\n if (!(buf instanceof Uint8Array)) {\n return Uint8Array.from(buf);\n }\n return isBuffer(buf) ? new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength) : buf;\n}\nconst toString = useBuffer ? (bytes, start, end) => {\n return end - start > 64 ? globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8') : utf8Slice(bytes, start, end);\n} : (bytes, start, end) => {\n return end - start > 64 ? textDecoder.decode(bytes.subarray(start, end)) : utf8Slice(bytes, start, end);\n};\nconst fromString = useBuffer ? string => {\n return string.length > 64 ? globalThis.Buffer.from(string) : utf8ToBytes(string);\n} : string => {\n return string.length > 64 ? textEncoder.encode(string) : utf8ToBytes(string);\n};\nconst fromArray = arr => {\n return Uint8Array.from(arr);\n};\nconst slice = useBuffer ? (bytes, start, end) => {\n if (isBuffer(bytes)) {\n return new Uint8Array(bytes.subarray(start, end));\n }\n return bytes.slice(start, end);\n} : (bytes, start, end) => {\n return bytes.slice(start, end);\n};\nconst concat = useBuffer ? (chunks, length) => {\n chunks = chunks.map(c => c instanceof Uint8Array ? c : globalThis.Buffer.from(c));\n return asU8A(globalThis.Buffer.concat(chunks, length));\n} : (chunks, length) => {\n const out = new Uint8Array(length);\n let off = 0;\n for (let b of chunks) {\n if (off + b.length > out.length) {\n b = b.subarray(0, out.length - off);\n }\n out.set(b, off);\n off += b.length;\n }\n return out;\n};\nconst alloc = useBuffer ? size => {\n return globalThis.Buffer.allocUnsafe(size);\n} : size => {\n return new Uint8Array(size);\n};\nconst toHex = useBuffer ? d => {\n if (typeof d === 'string') {\n return d;\n }\n return globalThis.Buffer.from(toBytes(d)).toString('hex');\n} : d => {\n if (typeof d === 'string') {\n return d;\n }\n return Array.prototype.reduce.call(toBytes(d), (p, c) => `${ p }${ c.toString(16).padStart(2, '0') }`, '');\n};\nconst fromHex = useBuffer ? hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n return globalThis.Buffer.from(hex, 'hex');\n} : hex => {\n if (hex instanceof Uint8Array) {\n return hex;\n }\n if (!hex.length) {\n return new Uint8Array(0);\n }\n return new Uint8Array(hex.split('').map((c, i, d) => i % 2 === 0 ? `0x${ c }${ d[i + 1] }` : '').filter(Boolean).map(e => parseInt(e, 16)));\n};\nfunction toBytes(obj) {\n if (obj instanceof Uint8Array && obj.constructor.name === 'Uint8Array') {\n return obj;\n }\n if (obj instanceof ArrayBuffer) {\n return new Uint8Array(obj);\n }\n if (ArrayBuffer.isView(obj)) {\n return new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n}\nfunction compare(b1, b2) {\n if (isBuffer(b1) && isBuffer(b2)) {\n return b1.compare(b2);\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] === b2[i]) {\n continue;\n }\n return b1[i] < b2[i] ? -1 : 1;\n }\n return 0;\n}\nfunction utf8ToBytes(string, units = Infinity) {\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error('Invalid code point');\n }\n }\n return bytes;\n}\nfunction utf8Slice(buf, offset, end) {\n const res = [];\n while (offset < end) {\n const firstByte = buf[offset];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (offset + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[offset + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[offset + 1];\n thirdByte = buf[offset + 2];\n fourthByte = buf[offset + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n offset += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n}\nconst MAX_ARGUMENTS_LENGTH = 4096;\nfunction decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = '';\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n}\n\nexports.alloc = alloc;\nexports.asU8A = asU8A;\nexports.compare = compare;\nexports.concat = concat;\nexports.decodeCodePointsArray = decodeCodePointsArray;\nexports.fromArray = fromArray;\nexports.fromHex = fromHex;\nexports.fromString = fromString;\nexports.slice = slice;\nexports.toHex = toHex;\nexports.toString = toString;\nexports.useBuffer = useBuffer;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bases = require('./util/bases.js');\n\nfunction fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}\n\nexports.fromString = fromString;\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, true), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height),\n version: \"1.1\"\n }), children);\n}","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/types';\n\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n\n return path;\n};\n\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n var _super = _createSuper(Rectangle);\n\n function Rectangle() {\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n totalLength: -1\n };\n _this.node = void 0;\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};","var __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n/**\n * Interprets an encoded string and returns either the string or null/undefined if not available.\n * Ignores array inputs (takes just first element in array)\n * @param input encoded string\n */\nfunction getEncodedValue(input, allowEmptyString) {\n if (input == null) {\n return input;\n }\n // '' or []\n if (input.length === 0 &&\n (!allowEmptyString || (allowEmptyString && input !== ''))) {\n return null;\n }\n var str = input instanceof Array ? input[0] : input;\n if (str == null) {\n return str;\n }\n if (!allowEmptyString && str === '') {\n return null;\n }\n return str;\n}\n/**\n * Interprets an encoded string and return null/undefined or an array with\n * the encoded string contents\n * @param input encoded string\n */\nfunction getEncodedValueArray(input) {\n if (input == null) {\n return input;\n }\n return input instanceof Array ? input : input === '' ? [] : [input];\n}\n/**\n * Encodes a date as a string in YYYY-MM-DD format.\n *\n * @param {Date} date\n * @return {String} the encoded date\n */\nexport function encodeDate(date) {\n if (date == null) {\n return date;\n }\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n return year + \"-\" + (month < 10 ? \"0\" + month : month) + \"-\" + (day < 10 ? \"0\" + day : day);\n}\n/**\n * Converts a date in the format 'YYYY-mm-dd...' into a proper date, because\n * new Date() does not do that correctly. The date can be as complete or incomplete\n * as necessary (aka, '2015', '2015-10', '2015-10-01').\n * It will not work for dates that have times included in them.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input String date form like '2015-10-01'\n * @return {Date} parsed date\n */\nexport function decodeDate(input) {\n var dateString = getEncodedValue(input);\n if (dateString == null)\n return dateString;\n var parts = dateString.split('-');\n // may only be a year so won't even have a month\n if (parts[1] != null) {\n parts[1] -= 1; // Note: months are 0-based\n }\n else {\n // just a year, set the month and day to the first\n parts[1] = 0;\n parts[2] = 1;\n }\n var decoded = new (Date.bind.apply(Date, __spreadArray([void 0], parts)))();\n if (isNaN(decoded.getTime())) {\n return null;\n }\n return decoded;\n}\n/**\n * Encodes a date as a string in ISO 8601 (\"2019-05-28T10:58:40Z\") format.\n *\n * @param {Date} date\n * @return {String} the encoded date\n */\nexport function encodeDateTime(date) {\n if (date == null) {\n return date;\n }\n return date.toISOString();\n}\n/**\n * Converts a date in the https://en.wikipedia.org/wiki/ISO_8601 format.\n * For allowed inputs see specs:\n * - https://tools.ietf.org/html/rfc2822#page-14\n * - http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input String date form like '1995-12-17T03:24:00'\n * @return {Date} parsed date\n */\nexport function decodeDateTime(input) {\n var dateString = getEncodedValue(input);\n if (dateString == null)\n return dateString;\n var decoded = new Date(dateString);\n if (isNaN(decoded.getTime())) {\n return null;\n }\n return decoded;\n}\n/**\n * Encodes a boolean as a string. true -> \"1\", false -> \"0\".\n *\n * @param {Boolean} bool\n * @return {String} the encoded boolean\n */\nexport function encodeBoolean(bool) {\n if (bool == null) {\n return bool;\n }\n return bool ? '1' : '0';\n}\n/**\n * Decodes a boolean from a string. \"1\" -> true, \"0\" -> false.\n * Everything else maps to undefined.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input the encoded boolean string\n * @return {Boolean} the boolean value\n */\nexport function decodeBoolean(input) {\n var boolStr = getEncodedValue(input);\n if (boolStr == null)\n return boolStr;\n if (boolStr === '1') {\n return true;\n }\n else if (boolStr === '0') {\n return false;\n }\n return null;\n}\n/**\n * Encodes a number as a string.\n *\n * @param {Number} num\n * @return {String} the encoded number\n */\nexport function encodeNumber(num) {\n if (num == null) {\n return num;\n }\n return String(num);\n}\n/**\n * Decodes a number from a string. If the number is invalid,\n * it returns undefined.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input the encoded number string\n * @return {Number} the number value\n */\nexport function decodeNumber(input) {\n var numStr = getEncodedValue(input);\n if (numStr == null)\n return numStr;\n if (numStr === '')\n return null;\n var result = +numStr;\n return result;\n}\n/**\n * Encodes a string while safely handling null and undefined values.\n *\n * @param {String} str a string to encode\n * @return {String} the encoded string\n */\nexport function encodeString(str) {\n if (str == null) {\n return str;\n }\n return String(str);\n}\n/**\n * Decodes a string while safely handling null and undefined values.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input the encoded string\n * @return {String} the string value\n */\nexport function decodeString(input) {\n var str = getEncodedValue(input, true);\n if (str == null)\n return str;\n return String(str);\n}\n/**\n * Decodes an enum value while safely handling null and undefined values.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input the encoded string\n * @param {String[]} enumValues allowed enum values\n * @return {String} the string value from enumValues\n */\nexport function decodeEnum(input, enumValues) {\n var str = decodeString(input);\n if (str == null)\n return str;\n return enumValues.includes(str) ? str : undefined;\n}\n/**\n * Encodes anything as a JSON string.\n *\n * @param {Any} any The thing to be encoded\n * @return {String} The JSON string representation of any\n */\nexport function encodeJson(any) {\n if (any == null) {\n return any;\n }\n return JSON.stringify(any);\n}\n/**\n * Decodes a JSON string into javascript\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input The JSON string representation\n * @return {Any} The javascript representation\n */\nexport function decodeJson(input) {\n var jsonStr = getEncodedValue(input);\n if (jsonStr == null)\n return jsonStr;\n var result = null;\n try {\n result = JSON.parse(jsonStr);\n }\n catch (e) {\n /* ignore errors, returning undefined */\n }\n return result;\n}\n/**\n * Encodes an array as a JSON string.\n *\n * @param {Array} array The array to be encoded\n * @return {String[]} The array of strings to be put in the URL\n * as repeated query parameters\n */\nexport function encodeArray(array) {\n if (array == null) {\n return array;\n }\n return array;\n}\n/**\n * Decodes an array or singular value and returns it as an array\n * or undefined if falsy. Filters out undefined values.\n *\n * @param {String | Array} input The input value\n * @return {Array} The javascript representation\n */\nexport function decodeArray(input) {\n var arr = getEncodedValueArray(input);\n if (arr == null)\n return arr;\n return arr;\n}\n/**\n * Encodes a numeric array as a JSON string.\n *\n * @param {Array} array The array to be encoded\n * @return {String[]} The array of strings to be put in the URL\n * as repeated query parameters\n */\nexport function encodeNumericArray(array) {\n if (array == null) {\n return array;\n }\n return array.map(String);\n}\n/**\n * Decodes an array or singular value and returns it as an array\n * or undefined if falsy. Filters out undefined and NaN values.\n *\n * @param {String | Array} input The input value\n * @return {Array} The javascript representation\n */\nexport function decodeNumericArray(input) {\n var arr = decodeArray(input);\n if (arr == null)\n return arr;\n return arr.map(function (d) { return (d === '' || d == null ? null : +d); });\n}\n/**\n * Encodes an array as a delimited string. For example,\n * ['a', 'b'] -> 'a_b' with entrySeparator='_'\n *\n * @param array The array to be encoded\n * @param entrySeparator The string used to delimit entries\n * @return The array as a string with elements joined by the\n * entry separator\n */\nexport function encodeDelimitedArray(array, entrySeparator) {\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n if (array == null) {\n return array;\n }\n return array.join(entrySeparator);\n}\n/**\n * Decodes a delimited string into javascript array. For example,\n * 'a_b' -> ['a', 'b'] with entrySeparator='_'\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} input The JSON string representation\n * @param entrySeparator The array as a string with elements joined by the\n * entry separator\n * @return {Array} The javascript representation\n */\nexport function decodeDelimitedArray(input, entrySeparator) {\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n var arrayStr = getEncodedValue(input, true);\n if (arrayStr == null)\n return arrayStr;\n if (arrayStr === '')\n return [];\n return arrayStr.split(entrySeparator);\n}\n/**\n * Encodes a numeric array as a delimited string. (alias of encodeDelimitedArray)\n * For example, [1, 2] -> '1_2' with entrySeparator='_'\n *\n * @param {Array} array The array to be encoded\n * @return {String} The JSON string representation of array\n */\nexport var encodeDelimitedNumericArray = encodeDelimitedArray;\n/**\n * Decodes a delimited string into javascript array where all entries are numbers\n * For example, '1_2' -> [1, 2] with entrySeparator='_'\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} jsonStr The JSON string representation\n * @return {Array} The javascript representation\n */\nexport function decodeDelimitedNumericArray(arrayStr, entrySeparator) {\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n var decoded = decodeDelimitedArray(arrayStr, entrySeparator);\n if (decoded == null)\n return decoded;\n return decoded.map(function (d) { return (d === '' || d == null ? null : +d); });\n}\n/**\n * Encode simple objects as readable strings. Works only for simple,\n * flat objects where values are numbers, strings.\n *\n * For example { foo: bar, boo: baz } -> \"foo-bar_boo-baz\"\n *\n * @param {Object} object The object to encode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {String} The encoded object\n */\nexport function encodeObject(obj, keyValSeparator, entrySeparator) {\n if (keyValSeparator === void 0) { keyValSeparator = '-'; }\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n if (obj == null)\n return obj; // null or undefined\n if (!Object.keys(obj).length)\n return ''; // {} case\n return Object.keys(obj)\n .map(function (key) { return \"\" + key + keyValSeparator + obj[key]; })\n .join(entrySeparator);\n}\n/**\n * Decodes a simple object to javascript. Currently works only for simple,\n * flat objects where values are strings.\n *\n * For example \"foo-bar_boo-baz\" -> { foo: bar, boo: baz }\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} input The object string to decode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {Object} The javascript object\n */\nexport function decodeObject(input, keyValSeparator, entrySeparator) {\n if (keyValSeparator === void 0) { keyValSeparator = '-'; }\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n var objStr = getEncodedValue(input, true);\n if (objStr == null)\n return objStr;\n if (objStr === '')\n return {};\n var obj = {};\n var keyValSeparatorRegExp = new RegExp(keyValSeparator + \"(.*)\");\n objStr.split(entrySeparator).forEach(function (entryStr) {\n var _a = entryStr.split(keyValSeparatorRegExp), key = _a[0], value = _a[1];\n obj[key] = value;\n });\n return obj;\n}\n/**\n * Encode simple objects as readable strings. Alias of encodeObject.\n *\n * For example { foo: 123, boo: 521 } -> \"foo-123_boo-521\"\n *\n * @param {Object} object The object to encode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {String} The encoded object\n */\nexport var encodeNumericObject = encodeObject;\n/**\n * Decodes a simple object to javascript where all values are numbers.\n * Currently works only for simple, flat objects.\n *\n * For example \"foo-123_boo-521\" -> { foo: 123, boo: 521 }\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} input The object string to decode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {Object} The javascript object\n */\nexport function decodeNumericObject(input, keyValSeparator, entrySeparator) {\n if (keyValSeparator === void 0) { keyValSeparator = '-'; }\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n var decoded = decodeObject(input, keyValSeparator, entrySeparator);\n if (decoded == null)\n return decoded;\n // convert to numbers\n var decodedNumberObj = {};\n for (var _i = 0, _a = Object.keys(decoded); _i < _a.length; _i++) {\n var key = _a[_i];\n decodedNumberObj[key] = decodeNumber(decoded[key]);\n }\n return decodedNumberObj;\n}\n","import * as Serialize from './serialize';\n/**\n * String values\n */\nexport var StringParam = {\n encode: Serialize.encodeString,\n decode: Serialize.decodeString,\n};\n/**\n * String enum\n */\nexport var createEnumParam = function (enumValues) { return ({\n encode: Serialize.encodeString,\n decode: function (input) { return Serialize.decodeEnum(input, enumValues); },\n}); };\n/**\n * Numbers (integers or floats)\n */\nexport var NumberParam = {\n encode: Serialize.encodeNumber,\n decode: Serialize.decodeNumber,\n};\n/**\n * For flat objects where values are strings\n */\nexport var ObjectParam = {\n encode: Serialize.encodeObject,\n decode: Serialize.decodeObject,\n};\n/**\n * For flat arrays of strings, filters out undefined values during decode\n */\nexport var ArrayParam = {\n encode: Serialize.encodeArray,\n decode: Serialize.decodeArray,\n};\n/**\n * For flat arrays of strings, filters out undefined values during decode\n */\nexport var NumericArrayParam = {\n encode: Serialize.encodeNumericArray,\n decode: Serialize.decodeNumericArray,\n};\n/**\n * For any type of data, encoded via JSON.stringify\n */\nexport var JsonParam = {\n encode: Serialize.encodeJson,\n decode: Serialize.decodeJson,\n};\n/**\n * For simple dates (YYYY-MM-DD)\n */\nexport var DateParam = {\n encode: Serialize.encodeDate,\n decode: Serialize.decodeDate,\n equals: function (valueA, valueB) {\n if (valueA === valueB)\n return true;\n if (valueA == null || valueB == null)\n return valueA === valueB;\n // ignore time of day\n return (valueA.getFullYear() === valueB.getFullYear() &&\n valueA.getMonth() === valueB.getMonth() &&\n valueA.getDate() === valueB.getDate());\n },\n};\n/**\n * For dates in simplified extended ISO format (YYYY-MM-DDTHH:mm:ss.sssZ or ±YYYYYY-MM-DDTHH:mm:ss.sssZ)\n */\nexport var DateTimeParam = {\n encode: Serialize.encodeDateTime,\n decode: Serialize.decodeDateTime,\n equals: function (valueA, valueB) {\n if (valueA === valueB)\n return true;\n if (valueA == null || valueB == null)\n return valueA === valueB;\n return valueA.valueOf() === valueB.valueOf();\n },\n};\n/**\n * For boolean values: 1 = true, 0 = false\n */\nexport var BooleanParam = {\n encode: Serialize.encodeBoolean,\n decode: Serialize.decodeBoolean,\n};\n/**\n * For flat objects where the values are numbers\n */\nexport var NumericObjectParam = {\n encode: Serialize.encodeNumericObject,\n decode: Serialize.decodeNumericObject,\n};\n/**\n * For flat arrays of strings, filters out undefined values during decode\n */\nexport var DelimitedArrayParam = {\n encode: Serialize.encodeDelimitedArray,\n decode: Serialize.decodeDelimitedArray,\n};\n/**\n * For flat arrays where the values are numbers, filters out undefined values during decode\n */\nexport var DelimitedNumericArrayParam = {\n encode: Serialize.encodeDelimitedNumericArray,\n decode: Serialize.decodeDelimitedNumericArray,\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { stringify, parse as parseQueryString, parseUrl, } from 'query-string';\n/**\n * An example of a transformSearchString function that undoes encoding of\n * common JSON characters that are technically allowed in URLs.\n */\nvar JSON_SAFE_CHARS = \"{}[],\\\":\"\n .split('')\n .map(function (d) { return [d, encodeURIComponent(d)]; });\nexport function transformSearchStringJsonSafe(searchString) {\n var str = searchString;\n for (var _i = 0, JSON_SAFE_CHARS_1 = JSON_SAFE_CHARS; _i < JSON_SAFE_CHARS_1.length; _i++) {\n var _a = JSON_SAFE_CHARS_1[_i], char = _a[0], code = _a[1];\n str = str.replace(new RegExp('\\\\' + code, 'g'), char);\n }\n return str;\n}\n/**\n * Update a location, wiping out parameters not included in encodedQuery\n * If a param is set to undefined it will be removed from the URL.\n */\nexport function updateLocation(encodedQuery, location, stringifyOptions) {\n var encodedSearchString = stringify(encodedQuery, stringifyOptions);\n if (stringifyOptions && stringifyOptions.transformSearchString) {\n encodedSearchString = stringifyOptions.transformSearchString(encodedSearchString);\n }\n var search = encodedSearchString.length ? \"?\" + encodedSearchString : '';\n var href = parseUrl(location.href || '').url + search;\n var newLocation = __assign(__assign({}, location), { key: \"\" + Date.now(), // needed for some routers (e.g. react-router)\n href: href,\n search: search, query: encodedQuery });\n return newLocation;\n}\n/**\n * Update a location while retaining existing parameters.\n * If a param is set to undefined it will be removed from the URL.\n */\nexport function updateInLocation(encodedQueryReplacements, location, stringifyOptions) {\n // explicitly avoid parsing numbers to ensure the\n // return type has the same shape as EncodeQuery\n var currQuery = parseQueryString(location.search, { parseNumbers: false });\n var newQuery = __assign(__assign({}, currQuery), encodedQueryReplacements);\n return updateLocation(newQuery, location, stringifyOptions);\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license at\n * https://github.com/facebook/fbjs/blob/master/LICENSE\n */\n/*eslint-disable no-self-compare */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n\n * @pbeshai modification of shallowEqual to take into consideration a map providing\n * equals functions\n */\nexport default function shallowEqual(objA, objB, equalMap) {\n var _a, _b;\n if (is(objA, objB)) {\n return true;\n }\n if (typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n var isEqual = (_b = (_a = equalMap === null || equalMap === void 0 ? void 0 : equalMap[keysA[i]]) === null || _a === void 0 ? void 0 : _a.equals) !== null && _b !== void 0 ? _b : is;\n if (!hasOwnProperty.call(objB, keysA[i]) ||\n !isEqual(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n","import * as React from 'react';\nimport { extract } from 'query-string';\nimport shallowEqual from './shallowEqual';\nexport function useUpdateRefIfShallowNew(ref, newValue, isEqual) {\n if (isEqual === void 0) { isEqual = shallowEqual; }\n var hasNew = ((ref.current == null || newValue == null) && ref.current === newValue) ||\n !isEqual(ref.current, newValue);\n React.useEffect(function () {\n if (hasNew) {\n ref.current = newValue;\n }\n }, [ref, newValue, hasNew]);\n}\nexport function getSSRSafeSearchString(location) {\n // handle checking SSR (#13)\n if (typeof location === 'object') {\n // in browser\n if (typeof window !== 'undefined') {\n return location.search;\n }\n else {\n return extract(\"\" + location.pathname + (location.search ? location.search : ''));\n }\n }\n return '';\n}\n","import { updateLocation, updateInLocation, } from 'serialize-query-params';\n/**\n * Creates a new location object containing the specified query changes.\n * If replaceIn or pushIn are used as the updateType, then parameters\n * not specified in queryReplacements are retained. If replace or push\n * are used, only the values in queryReplacements will be available.\n * The default is pushIn.\n */\nexport function createLocationWithChanges(queryReplacements, location, updateType, stringifyOptions) {\n if (updateType === void 0) { updateType = 'pushIn'; }\n switch (updateType) {\n case 'replace':\n case 'push':\n return updateLocation(queryReplacements, location, stringifyOptions);\n case 'replaceIn':\n case 'pushIn':\n default:\n return updateInLocation(queryReplacements, location, stringifyOptions);\n }\n}\n/**\n * Updates the URL to the new location.\n */\nexport function updateUrlQuery(history, location, updateType) {\n if (updateType === void 0) { updateType = 'pushIn'; }\n switch (updateType) {\n case 'pushIn':\n case 'push':\n history.push(location);\n break;\n case 'replaceIn':\n case 'replace':\n default:\n history.replace(location);\n break;\n }\n}\n","import * as React from 'react';\nimport { updateUrlQuery, createLocationWithChanges } from './updateUrlQuery';\nvar providerlessContextValue = {\n location: {},\n getLocation: function () { return ({}); },\n setLocation: function () { },\n};\nexport var LocationContext = React.createContext(providerlessContextValue);\nexport function useLocationContext() {\n var context = React.useContext(LocationContext);\n if (process.env.NODE_ENV !== 'production' &&\n (context === undefined || context === providerlessContextValue)) {\n throw new Error('useQueryParams must be used within a QueryParamProvider');\n }\n return context;\n}\n/**\n * An internal-only context provider which provides down the most\n * recent location object and a callback to update the history.\n */\nexport function LocationProvider(_a) {\n var history = _a.history, location = _a.location, children = _a.children, stringifyOptions = _a.stringifyOptions;\n var locationRef = React.useRef(location);\n React.useEffect(function () {\n locationRef.current = location;\n }, [location]);\n // TODO: we can probably simplify this now that we are reading location from history\n var getLocation = React.useCallback(function () { return locationRef.current; }, [\n locationRef,\n ]);\n var setLocation = React.useCallback(function (queryReplacements, updateType) {\n // A ref is needed here to stop setLocation updating constantly (see #46)\n locationRef.current = createLocationWithChanges(queryReplacements, history == null || history.location == null\n ? locationRef.current\n : history.location, updateType, stringifyOptions);\n if (history) {\n updateUrlQuery(history, locationRef.current, updateType);\n }\n }, [history, stringifyOptions]);\n return (React.createElement(LocationContext.Provider, { value: { location: location, getLocation: getLocation, setLocation: setLocation } }, children));\n}\n","import { parse as parseQueryString } from 'query-string';\nexport var makeMemoizedQueryParser = function (initialSearchString) {\n var cachedSearchString = initialSearchString;\n var cachedParsedQuery = parseQueryString(cachedSearchString || '');\n return function (newSearchString) {\n if (cachedSearchString !== newSearchString) {\n cachedSearchString = newSearchString;\n cachedParsedQuery = parseQueryString(cachedSearchString);\n }\n return cachedParsedQuery;\n };\n};\nexport var sharedMemoizedQueryParser = makeMemoizedQueryParser();\n","import * as React from 'react';\nimport { StringParam } from 'serialize-query-params';\nimport { getSSRSafeSearchString, useUpdateRefIfShallowNew } from './helpers';\nimport { useLocationContext } from './LocationProvider';\nimport { sharedMemoizedQueryParser } from './memoizedQueryParser';\nimport shallowEqual from './shallowEqual';\n/**\n * Helper to get the latest decoded value with smart caching.\n * Abstracted into its own function to allow re-use in a functional setter (#26)\n */\nfunction getLatestDecodedValue(location, name, paramConfig, paramConfigRef, encodedValueCacheRef, decodedValueCacheRef) {\n var _a;\n // check if we have a new param config\n var hasNewParamConfig = !shallowEqual(paramConfigRef.current, paramConfig);\n var isValueEqual = (_a = paramConfig.equals) !== null && _a !== void 0 ? _a : shallowEqual;\n // read in the parsed query\n var parsedQuery = sharedMemoizedQueryParser(getSSRSafeSearchString(location) // get the latest location object\n );\n // read in the encoded string value (we have to check cache if available because\n // sometimes the query string changes so we get a new parsedQuery but this value\n // didn't change, so we should avoid generating a new array or whatever value)\n var hasNewEncodedValue = !shallowEqual(encodedValueCacheRef.current, parsedQuery[name]);\n var encodedValue = hasNewEncodedValue\n ? parsedQuery[name]\n : encodedValueCacheRef.current;\n // only decode if we have changes to encoded value or the config.\n // check for undefined to handle initial case\n if (!hasNewEncodedValue &&\n !hasNewParamConfig &&\n decodedValueCacheRef.current !== undefined) {\n return decodedValueCacheRef.current;\n }\n var newDecodedValue = paramConfig.decode(encodedValue);\n var hasNewDecodedValue = ((decodedValueCacheRef.current == null || newDecodedValue == null) &&\n decodedValueCacheRef.current === newDecodedValue) ||\n !isValueEqual(decodedValueCacheRef.current, newDecodedValue);\n // if we have a new decoded value use it, otherwise use cached\n return hasNewDecodedValue\n ? newDecodedValue\n : decodedValueCacheRef.current;\n}\n/**\n * Given a query param name and query parameter configuration ({ encode, decode })\n * return the decoded value and a setter for updating it.\n *\n * The setter takes two arguments (newValue, updateType) where updateType\n * is one of 'replace' | 'replaceIn' | 'push' | 'pushIn', defaulting to\n * 'pushIn'.\n *\n * You may optionally pass in a rawQuery object, otherwise the query is derived\n * from the location available in the context.\n *\n * D = decoded type\n * D2 = return value from decode (typically same as D)\n */\nexport var useQueryParam = function (name, paramConfig) {\n if (paramConfig === void 0) { paramConfig = StringParam; }\n var _a = useLocationContext(), location = _a.location, getLocation = _a.getLocation, setLocation = _a.setLocation;\n // read in the raw query\n var parsedQuery = sharedMemoizedQueryParser(getSSRSafeSearchString(location));\n // make caches\n var encodedValueCacheRef = React.useRef();\n var paramConfigRef = React.useRef(paramConfig);\n var decodedValueCacheRef = React.useRef();\n var decodedValue = getLatestDecodedValue(location, name, paramConfig, paramConfigRef, encodedValueCacheRef, decodedValueCacheRef);\n // update cached values in a useEffect\n useUpdateRefIfShallowNew(encodedValueCacheRef, parsedQuery[name]);\n useUpdateRefIfShallowNew(paramConfigRef, paramConfig);\n useUpdateRefIfShallowNew(decodedValueCacheRef, decodedValue, paramConfig.equals);\n // create the setter, memoizing via useCallback\n var setValueDeps = {\n paramConfig: paramConfig,\n name: name,\n setLocation: setLocation,\n getLocation: getLocation,\n };\n var setValueDepsRef = React.useRef(setValueDeps);\n setValueDepsRef.current = setValueDeps;\n var setValue = React.useCallback(function setValueCallback(newValue, updateType) {\n var _a;\n var deps = setValueDepsRef.current;\n var newEncodedValue;\n // allow functional updates #26\n if (typeof newValue === 'function') {\n // get latest decoded value to pass as a fresh arg to the setter fn\n var latestValue = getLatestDecodedValue(deps.getLocation(), deps.name, deps.paramConfig, paramConfigRef, encodedValueCacheRef, decodedValueCacheRef);\n decodedValueCacheRef.current = latestValue; // keep cache in sync\n newEncodedValue = deps.paramConfig.encode(newValue(latestValue));\n }\n else {\n newEncodedValue = deps.paramConfig.encode(newValue);\n }\n // update the URL\n deps.setLocation((_a = {}, _a[deps.name] = newEncodedValue, _a), updateType);\n }, []);\n return [decodedValue, setValue];\n};\n","import useQueryParams from './useQueryParams';\nexport var QueryParams = function (_a) {\n var config = _a.config, children = _a.children;\n var _b = useQueryParams(config), query = _b[0], setQuery = _b[1];\n return children({ query: query, setQuery: setQuery });\n};\nexport default QueryParams;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { LocationProvider } from './LocationProvider';\nimport shallowEqual from './shallowEqual';\n// we use a lazy caching solution to prevent #46 from happening\nvar cachedWindowHistory;\nvar cachedAdaptedWindowHistory;\n/**\n * Adapts standard DOM window history to work with our\n * { replace, push } interface.\n *\n * @param history Standard history provided by DOM\n */\nfunction adaptWindowHistory(history) {\n if (history === cachedWindowHistory && cachedAdaptedWindowHistory != null) {\n return cachedAdaptedWindowHistory;\n }\n var adaptedWindowHistory = {\n replace: function (location) {\n history.replaceState(location.state, '', location.protocol + \"//\" + location.host + location.pathname + location.search);\n },\n push: function (location) {\n history.pushState(location.state, '', location.protocol + \"//\" + location.host + location.pathname + location.search);\n },\n get location() {\n return window.location;\n },\n };\n cachedWindowHistory = history;\n cachedAdaptedWindowHistory = adaptedWindowHistory;\n return adaptedWindowHistory;\n}\n// we use a lazy caching solution to prevent #46 from happening\nvar cachedReachHistory;\nvar cachedAdaptedReachHistory;\n/**\n * Adapts @reach/router history to work with our\n * { replace, push } interface.\n *\n * @param history globalHistory from @reach/router\n */\nfunction adaptReachHistory(history) {\n if (history === cachedReachHistory && cachedAdaptedReachHistory != null) {\n return cachedAdaptedReachHistory;\n }\n var adaptedReachHistory = {\n replace: function (location) {\n history.navigate(location.protocol + \"//\" + location.host + location.pathname + location.search, { replace: true });\n },\n push: function (location) {\n history.navigate(location.protocol + \"//\" + location.host + location.pathname + location.search, { replace: false });\n },\n get location() {\n return history.location;\n },\n };\n cachedReachHistory = history;\n cachedAdaptedReachHistory = adaptedReachHistory;\n return adaptedReachHistory;\n}\n/**\n * Helper to produce the context value falling back to\n * window history and location if not provided.\n */\nexport function getLocationProps(_a) {\n var _b = _a === void 0 ? {} : _a, history = _b.history, location = _b.location;\n var hasWindow = typeof window !== 'undefined';\n if (hasWindow) {\n if (!history) {\n history = adaptWindowHistory(window.history);\n }\n if (!location) {\n location = window.location;\n }\n }\n if (!location) {\n throw new Error(\"\\n Could not read the location. Is the router wired up correctly?\\n \");\n }\n return { history: history, location: location };\n}\n/**\n * Context provider for query params to have access to the\n * active routing system, enabling updates to the URL.\n */\nexport function QueryParamProvider(_a) {\n var children = _a.children, ReactRouterRoute = _a.ReactRouterRoute, reachHistory = _a.reachHistory, history = _a.history, location = _a.location, stringifyOptions = _a.stringifyOptions;\n // cache the stringify options object so we users can just do\n // \n var stringifyOptionsRef = React.useRef(stringifyOptions);\n var hasNewStringifyOptions = !shallowEqual(stringifyOptionsRef.current, stringifyOptions);\n var stringifyOptionsCached = hasNewStringifyOptions\n ? stringifyOptions\n : stringifyOptionsRef.current;\n React.useEffect(function () {\n stringifyOptionsRef.current = stringifyOptionsCached;\n }, [stringifyOptionsCached]);\n // if we have React Router, use it to get the context value\n if (ReactRouterRoute) {\n return (React.createElement(ReactRouterRoute, null, function (routeProps) {\n return (React.createElement(LocationProvider, __assign({ stringifyOptions: stringifyOptionsCached }, getLocationProps(routeProps)), children));\n }));\n }\n // if we are using reach router, use its history\n if (reachHistory) {\n return (React.createElement(LocationProvider, __assign({ stringifyOptions: stringifyOptionsCached }, getLocationProps({\n history: adaptReachHistory(reachHistory),\n location: location,\n })), children));\n }\n // neither reach nor react-router, so allow manual overrides\n return (React.createElement(LocationProvider, __assign({ stringifyOptions: stringifyOptionsCached }, getLocationProps({ history: history, location: location })), children));\n}\nexport default QueryParamProvider;\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers, filterProps } from '../util/types';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(_upperFirst(type));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nexport var Curve = /*#__PURE__*/function (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n var _super = _createSuper(Curve);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _upperFirst from \"lodash/upperFirst\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n var _super = _createSuper(Symbols);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\n\nSymbols.registerSymbol = function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n};","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n var _super = _createSuper(DefaultLegendContent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n\n if (entry.type === 'none') {\n return null;\n }\n\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\n\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, [\"ref\"]);\n\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\n\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n var _super = _createSuper(Legend);\n\n function Legend() {\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.wrapperNode = void 0;\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\n\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\nLegend.displayName = 'Legend';\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst enum States {\n /** Pending */\n PENDING = 0,\n /** Resolved / OK */\n RESOLVED = 1,\n /** Rejected / Error */\n REJECTED = 2,\n}\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise implements PromiseLike {\n private _state: States = States.PENDING;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]> = [];\n private _value: any;\n\n public constructor(\n executor: (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void,\n ) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** JSDoc */\n private readonly _resolve = (value?: T | PromiseLike | null) => {\n this._setResult(States.RESOLVED, value);\n };\n\n /** JSDoc */\n private readonly _reject = (reason?: any) => {\n this._setResult(States.REJECTED, reason);\n };\n\n /** JSDoc */\n private readonly _setResult = (state: States, value?: T | PromiseLike | any) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n /** JSDoc */\n private readonly _executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };\n}\n\nexport { SyncPromise };\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * Our default sum is the [Kahan-Babuska algorithm](https://pdfs.semanticscholar.org/1760/7d467cda1d0277ad272deb2113533131dc09.pdf).\n * This method is an improvement over the classical\n * [Kahan summation algorithm](https://en.wikipedia.org/wiki/Kahan_summation_algorithm).\n * It aims at computing the sum of a list of numbers while correcting for\n * floating-point errors. Traditionally, sums are calculated as many\n * successive additions, each one with its own floating-point roundoff. These\n * losses in precision add up as the number of numbers increases. This alternative\n * algorithm is more accurate than the simple way of calculating sums by simple\n * addition.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x input\n * @return {number} sum of all input numbers\n * @example\n * sum([1, 2, 3]); // => 6\n */\nfunction sum(x) {\n // If the array is empty, we needn't bother computing its sum\n if (x.length === 0) {\n return 0;\n }\n\n // Initializing the sum as the first number in the array\n let sum = x[0];\n\n // Keeping track of the floating-point error correction\n let correction = 0;\n\n let transition;\n\n if (typeof sum !== \"number\") {\n return NaN;\n }\n\n for (let i = 1; i < x.length; i++) {\n if (typeof x[i] !== \"number\") {\n return NaN;\n }\n transition = sum + x[i];\n\n // Here we need to update the correction in a different fashion\n // if the new absolute value is greater than the absolute sum\n if (Math.abs(sum) >= Math.abs(x[i])) {\n correction += sum - transition + x[i];\n } else {\n correction += x[i] - transition + sum;\n }\n\n sum = transition;\n }\n\n // Returning the corrected sum\n return sum + correction;\n}\n\nexport default sum;\n","import sum from \"./sum.js\";\n\n/**\n * The mean, _also known as average_,\n * is the sum of all values over the number of values.\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x sample of one or more data points\n * @throws {Error} if the length of x is less than one\n * @returns {number} mean\n * @example\n * mean([0, 10]); // => 5\n */\nfunction mean(x) {\n if (x.length === 0) {\n throw new Error(\"mean requires at least one data point\");\n }\n\n return sum(x) / x.length;\n}\n\nexport default mean;\n","import mean from \"./mean.js\";\n\n/**\n * The sum of deviations to the Nth power.\n * When n=2 it's the sum of squared deviations.\n * When n=3 it's the sum of cubed deviations.\n *\n * @param {Array} x\n * @param {number} n power\n * @returns {number} sum of nth power deviations\n *\n * @example\n * var input = [1, 2, 3];\n * // since the variance of a set is the mean squared\n * // deviations, we can calculate that with sumNthPowerDeviations:\n * sumNthPowerDeviations(input, 2) / input.length;\n */\nfunction sumNthPowerDeviations(x, n) {\n const meanValue = mean(x);\n let sum = 0;\n let tempValue;\n let i;\n\n // This is an optimization: when n is 2 (we're computing a number squared),\n // multiplying the number by itself is significantly faster than using\n // the Math.pow method.\n if (n === 2) {\n for (i = 0; i < x.length; i++) {\n tempValue = x[i] - meanValue;\n sum += tempValue * tempValue;\n }\n } else {\n for (i = 0; i < x.length; i++) {\n sum += Math.pow(x[i] - meanValue, n);\n }\n }\n\n return sum;\n}\n\nexport default sumNthPowerDeviations;\n","import sumNthPowerDeviations from \"./sum_nth_power_deviations.js\";\n\n/**\n * The [variance](http://en.wikipedia.org/wiki/Variance)\n * is the sum of squared deviations from the mean.\n *\n * This is an implementation of variance, not sample variance:\n * see the `sampleVariance` method if you want a sample measure.\n *\n * @param {Array} x a population of one or more data points\n * @returns {number} variance: a value greater than or equal to zero.\n * zero indicates that all values are identical.\n * @throws {Error} if x's length is 0\n * @example\n * variance([1, 2, 3, 4, 5, 6]); // => 2.9166666666666665\n */\nfunction variance(x) {\n if (x.length === 0) {\n throw new Error(\"variance requires at least one data point\");\n }\n\n // Find the mean of squared deviations between the\n // mean value and each value.\n return sumNthPowerDeviations(x, 2) / x.length;\n}\n\nexport default variance;\n","import variance from \"./variance.js\";\n\n/**\n * The [standard deviation](http://en.wikipedia.org/wiki/Standard_deviation)\n * is the square root of the variance. This is also known as the population\n * standard deviation. It's useful for measuring the amount\n * of variation or dispersion in a set of values.\n *\n * Standard deviation is only appropriate for full-population knowledge: for\n * samples of a population, {@link sampleStandardDeviation} is\n * more appropriate.\n *\n * @param {Array} x input\n * @returns {number} standard deviation\n * @example\n * variance([2, 4, 4, 4, 5, 5, 7, 9]); // => 4\n * standardDeviation([2, 4, 4, 4, 5, 5, 7, 9]); // => 2\n */\nfunction standardDeviation(x) {\n if (x.length === 1) {\n return 0;\n }\n const v = variance(x);\n return Math.sqrt(v);\n}\n\nexport default standardDeviation;\n","/**\n * The [mode](https://en.wikipedia.org/wiki/Mode_%28statistics%29) is the number\n * that appears in a list the highest number of times.\n * There can be multiple modes in a list: in the event of a tie, this\n * algorithm will return the most recently seen mode.\n *\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * This runs in `O(n)` because the input is sorted.\n *\n * @param {Array} sorted a sample of one or more data points\n * @returns {number} mode\n * @throws {Error} if sorted is empty\n * @example\n * modeSorted([0, 0, 1]); // => 0\n */\nfunction modeSorted(sorted) {\n // Handle edge cases:\n // The mode of an empty list is undefined\n if (sorted.length === 0) {\n throw new Error(\"mode requires at least one data point\");\n } else if (sorted.length === 1) {\n return sorted[0];\n }\n\n // This assumes it is dealing with an array of size > 1, since size\n // 0 and 1 are handled immediately. Hence it starts at index 1 in the\n // array.\n let last = sorted[0],\n // store the mode as we find new modes\n value = NaN,\n // store how many times we've seen the mode\n maxSeen = 0,\n // how many times the current candidate for the mode\n // has been seen\n seenThis = 1;\n\n // end at sorted.length + 1 to fix the case in which the mode is\n // the highest number that occurs in the sequence. the last iteration\n // compares sorted[i], which is undefined, to the highest number\n // in the series\n for (let i = 1; i < sorted.length + 1; i++) {\n // we're seeing a new number pass by\n if (sorted[i] !== last) {\n // the last number is the new mode since we saw it more\n // often than the old one\n if (seenThis > maxSeen) {\n maxSeen = seenThis;\n value = last;\n }\n seenThis = 1;\n last = sorted[i];\n // if this isn't a new number, it's one more occurrence of\n // the potential mode\n } else {\n seenThis++;\n }\n }\n return value;\n}\n\nexport default modeSorted;\n","/**\n * Sort an array of numbers by their numeric value, ensuring that the\n * array is not changed in place.\n *\n * This is necessary because the default behavior of .sort\n * in JavaScript is to sort arrays as string values\n *\n * [1, 10, 12, 102, 20].sort()\n * // output\n * [1, 10, 102, 12, 20]\n *\n * @param {Array} x input array\n * @return {Array} sorted array\n * @private\n * @example\n * numericSort([3, 2, 1]) // => [1, 2, 3]\n */\nfunction numericSort(x) {\n return (\n x\n // ensure the array is not changed in-place\n .slice()\n // comparator function that treats input as numeric\n .sort(function (a, b) {\n return a - b;\n })\n );\n}\n\nexport default numericSort;\n","/**\n * The min is the lowest number in the array.\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x sample of one or more data points\n * @throws {Error} if the length of x is less than one\n * @returns {number} minimum value\n * @example\n * min([1, 5, -10, 100, 2]); // => -10\n */\nfunction min(x) {\n if (x.length === 0) {\n throw new Error(\"min requires at least one data point\");\n }\n\n let value = x[0];\n for (let i = 1; i < x.length; i++) {\n if (x[i] < value) {\n value = x[i];\n }\n }\n return value;\n}\n\nexport default min;\n","/**\n * This computes the maximum number in an array.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x sample of one or more data points\n * @returns {number} maximum value\n * @throws {Error} if the length of x is less than one\n * @example\n * max([1, 2, 3, 4]);\n * // => 4\n */\nfunction max(x) {\n if (x.length === 0) {\n throw new Error(\"max requires at least one data point\");\n }\n\n let value = x[0];\n for (let i = 1; i < x.length; i++) {\n if (x[i] > value) {\n value = x[i];\n }\n }\n return value;\n}\n\nexport default max;\n","/**\n * The simple [sum](https://en.wikipedia.org/wiki/Summation) of an array\n * is the result of adding all numbers together, starting from zero.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x input\n * @return {number} sum of all input numbers\n * @example\n * sumSimple([1, 2, 3]); // => 6\n */\nfunction sumSimple(x) {\n let value = 0;\n for (let i = 0; i < x.length; i++) {\n if (typeof x[i] !== \"number\") {\n return NaN;\n }\n value += x[i];\n }\n return value;\n}\n\nexport default sumSimple;\n","/**\n * This is the internal implementation of quantiles: when you know\n * that the order is sorted, you don't need to re-sort it, and the computations\n * are faster.\n *\n * @param {Array} x sample of one or more data points\n * @param {number} p desired quantile: a number between 0 to 1, inclusive\n * @returns {number} quantile value\n * @throws {Error} if p ix outside of the range from 0 to 1\n * @throws {Error} if x is empty\n * @example\n * quantileSorted([3, 6, 7, 8, 8, 9, 10, 13, 15, 16, 20], 0.5); // => 9\n */\nfunction quantileSorted(x, p) {\n const idx = x.length * p;\n if (x.length === 0) {\n throw new Error(\"quantile requires at least one data point.\");\n } else if (p < 0 || p > 1) {\n throw new Error(\"quantiles must be between 0 and 1\");\n } else if (p === 1) {\n // If p is 1, directly return the last element\n return x[x.length - 1];\n } else if (p === 0) {\n // If p is 0, directly return the first element\n return x[0];\n } else if (idx % 1 !== 0) {\n // If p is not integer, return the next element in array\n return x[Math.ceil(idx) - 1];\n } else if (x.length % 2 === 0) {\n // If the list has even-length, we'll take the average of this number\n // and the next value, if there is one\n return (x[idx - 1] + x[idx]) / 2;\n } else {\n // Finally, in the simple case of an integer value\n // with an odd-length list, return the x value at the index.\n return x[idx];\n }\n}\n\nexport default quantileSorted;\n","/**\n * Rearrange items in `arr` so that all items in `[left, k]` range are the smallest.\n * The `k`-th element will have the `(k - left + 1)`-th smallest value in `[left, right]`.\n *\n * Implements Floyd-Rivest selection algorithm https://en.wikipedia.org/wiki/Floyd-Rivest_algorithm\n *\n * @param {Array} arr input array\n * @param {number} k pivot index\n * @param {number} [left] left index\n * @param {number} [right] right index\n * @returns {void} mutates input array\n * @example\n * var arr = [65, 28, 59, 33, 21, 56, 22, 95, 50, 12, 90, 53, 28, 77, 39];\n * quickselect(arr, 8);\n * // = [39, 28, 28, 33, 21, 12, 22, 50, 53, 56, 59, 65, 90, 77, 95]\n */\nfunction quickselect(arr, k, left, right) {\n left = left || 0;\n right = right || arr.length - 1;\n\n while (right > left) {\n // 600 and 0.5 are arbitrary constants chosen in the original paper to minimize execution time\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp((2 * z) / 3);\n let sd = 0.5 * Math.sqrt((z * s * (n - s)) / n);\n if (m - n / 2 < 0) sd *= -1;\n const newLeft = Math.max(left, Math.floor(k - (m * s) / n + sd));\n const newRight = Math.min(\n right,\n Math.floor(k + ((n - m) * s) / n + sd)\n );\n quickselect(arr, k, newLeft, newRight);\n }\n\n const t = arr[k];\n let i = left;\n let j = right;\n\n swap(arr, left, k);\n if (arr[right] > t) swap(arr, left, right);\n\n while (i < j) {\n swap(arr, i, j);\n i++;\n j--;\n while (arr[i] < t) i++;\n while (arr[j] > t) j--;\n }\n\n if (arr[left] === t) swap(arr, left, j);\n else {\n j++;\n swap(arr, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nexport default quickselect;\n","import quantileSorted from \"./quantile_sorted.js\";\nimport quickselect from \"./quickselect.js\";\n\n/**\n * The [quantile](https://en.wikipedia.org/wiki/Quantile):\n * this is a population quantile, since we assume to know the entire\n * dataset in this library. This is an implementation of the\n * [Quantiles of a Population](http://en.wikipedia.org/wiki/Quantile#Quantiles_of_a_population)\n * algorithm from wikipedia.\n *\n * Sample is a one-dimensional array of numbers,\n * and p is either a decimal number from 0 to 1 or an array of decimal\n * numbers from 0 to 1.\n * In terms of a k/q quantile, p = k/q - it's just dealing with fractions or dealing\n * with decimal values.\n * When p is an array, the result of the function is also an array containing the appropriate\n * quantiles in input order\n *\n * @param {Array} x sample of one or more numbers\n * @param {Array | number} p the desired quantile, as a number between 0 and 1\n * @returns {number} quantile\n * @example\n * quantile([3, 6, 7, 8, 8, 9, 10, 13, 15, 16, 20], 0.5); // => 9\n */\nfunction quantile(x, p) {\n const copy = x.slice();\n\n if (Array.isArray(p)) {\n // rearrange elements so that each element corresponding to a requested\n // quantile is on a place it would be if the array was fully sorted\n multiQuantileSelect(copy, p);\n // Initialize the result array\n const results = [];\n // For each requested quantile\n for (let i = 0; i < p.length; i++) {\n results[i] = quantileSorted(copy, p[i]);\n }\n return results;\n } else {\n const idx = quantileIndex(copy.length, p);\n quantileSelect(copy, idx, 0, copy.length - 1);\n return quantileSorted(copy, p);\n }\n}\n\nfunction quantileSelect(arr, k, left, right) {\n if (k % 1 === 0) {\n quickselect(arr, k, left, right);\n } else {\n k = Math.floor(k);\n quickselect(arr, k, left, right);\n quickselect(arr, k + 1, k + 1, right);\n }\n}\n\nfunction multiQuantileSelect(arr, p) {\n const indices = [0];\n for (let i = 0; i < p.length; i++) {\n indices.push(quantileIndex(arr.length, p[i]));\n }\n indices.push(arr.length - 1);\n indices.sort(compare);\n\n const stack = [0, indices.length - 1];\n\n while (stack.length) {\n const r = Math.ceil(stack.pop());\n const l = Math.floor(stack.pop());\n if (r - l <= 1) continue;\n\n const m = Math.floor((l + r) / 2);\n quantileSelect(\n arr,\n indices[m],\n Math.floor(indices[l]),\n Math.ceil(indices[r])\n );\n\n stack.push(l, m, m, r);\n }\n}\n\nfunction compare(a, b) {\n return a - b;\n}\n\nfunction quantileIndex(len, p) {\n const idx = len * p;\n if (p === 1) {\n // If p is 1, directly return the last index\n return len - 1;\n } else if (p === 0) {\n // If p is 0, directly return the first index\n return 0;\n } else if (idx % 1 !== 0) {\n // If index is not integer, return the next index in array\n return Math.ceil(idx) - 1;\n } else if (len % 2 === 0) {\n // If the list has even-length, we'll return the middle of two indices\n // around quantile to indicate that we need an average value of the two\n return idx - 0.5;\n } else {\n // Finally, in the simple case of an integer index\n // with an odd-length list, return the index\n return idx;\n }\n}\n\nexport default quantile;\n","/* eslint no-bitwise: 0 */\n\n/**\n * This function returns the quantile in which one would find the given value in\n * the given array. With a sorted array, leveraging binary search, we can find\n * this information in logarithmic time.\n *\n * @param {Array} x input\n * @returns {number} value value\n * @example\n * quantileRankSorted([1, 2, 3, 4], 3); // => 0.75\n * quantileRankSorted([1, 2, 3, 3, 4], 3); // => 0.7\n * quantileRankSorted([1, 2, 3, 4], 6); // => 1\n * quantileRankSorted([1, 2, 3, 3, 5], 4); // => 0.8\n */\nfunction quantileRankSorted(x, value) {\n // Value is lesser than any value in the array\n if (value < x[0]) {\n return 0;\n }\n\n // Value is greater than any value in the array\n if (value > x[x.length - 1]) {\n return 1;\n }\n\n let l = lowerBound(x, value);\n\n // Value is not in the array\n if (x[l] !== value) {\n return l / x.length;\n }\n\n l++;\n\n const u = upperBound(x, value);\n\n // The value exists only once in the array\n if (u === l) {\n return l / x.length;\n }\n\n // Here, we are basically computing the mean of the range of indices\n // containing our searched value. But, instead, of initializing an\n // array and looping over it, there is a dedicated math formula that\n // we apply below to get the result.\n const r = u - l + 1;\n const sum = (r * (u + l)) / 2;\n const mean = sum / r;\n\n return mean / x.length;\n}\n\nfunction lowerBound(x, value) {\n let mid = 0;\n let lo = 0;\n let hi = x.length;\n\n while (lo < hi) {\n mid = (lo + hi) >>> 1;\n\n if (value <= x[mid]) {\n hi = mid;\n } else {\n lo = -~mid;\n }\n }\n\n return lo;\n}\n\nfunction upperBound(x, value) {\n let mid = 0;\n let lo = 0;\n let hi = x.length;\n\n while (lo < hi) {\n mid = (lo + hi) >>> 1;\n\n if (value >= x[mid]) {\n lo = -~mid;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n}\n\nexport default quantileRankSorted;\n","import quantile from \"./quantile.js\";\n\n/**\n * The [Interquartile range](http://en.wikipedia.org/wiki/Interquartile_range) is\n * a measure of statistical dispersion, or how scattered, spread, or\n * concentrated a distribution is. It's computed as the difference between\n * the third quartile and first quartile.\n *\n * @param {Array} x sample of one or more numbers\n * @returns {number} interquartile range: the span between lower and upper quartile,\n * 0.25 and 0.75\n * @example\n * interquartileRange([0, 1, 2, 3]); // => 2\n */\nfunction interquartileRange(x) {\n // Interquartile range is the span between the upper quartile,\n // at `0.75`, and lower quartile, `0.25`\n const q1 = quantile(x, 0.75);\n const q2 = quantile(x, 0.25);\n\n if (typeof q1 === \"number\" && typeof q2 === \"number\") {\n return q1 - q2;\n }\n}\n\nexport default interquartileRange;\n","import quantile from \"./quantile.js\";\n\n/**\n * The [median](http://en.wikipedia.org/wiki/Median) is\n * the middle number of a list. This is often a good indicator of 'the middle'\n * when there are outliers that skew the `mean()` value.\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * The median isn't necessarily one of the elements in the list: the value\n * can be the average of two elements if the list has an even length\n * and the two central values are different.\n *\n * @param {Array} x input\n * @returns {number} median value\n * @example\n * median([10, 2, 5, 100, 2, 1]); // => 3.5\n */\nfunction median(x) {\n return +quantile(x, 0.5);\n}\n\nexport default median;\n","import median from \"./median.js\";\n\n/**\n * The [Median Absolute Deviation](http://en.wikipedia.org/wiki/Median_absolute_deviation) is\n * a robust measure of statistical\n * dispersion. It is more resilient to outliers than the standard deviation.\n *\n * @param {Array} x input array\n * @returns {number} median absolute deviation\n * @example\n * medianAbsoluteDeviation([1, 1, 2, 2, 4, 6, 9]); // => 1\n */\nfunction medianAbsoluteDeviation(x) {\n const medianValue = median(x);\n const medianAbsoluteDeviations = [];\n\n // Make a list of absolute deviations from the median\n for (let i = 0; i < x.length; i++) {\n medianAbsoluteDeviations.push(Math.abs(x[i] - medianValue));\n }\n\n // Find the median value of that list\n return median(medianAbsoluteDeviations);\n}\n\nexport default medianAbsoluteDeviation;\n","/**\n * A [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)\n * in-place - which means that it **will change the order of the original\n * array by reference**.\n *\n * This is an algorithm that generates a random [permutation](https://en.wikipedia.org/wiki/Permutation)\n * of a set.\n *\n * @param {Array} x sample of one or more numbers\n * @param {Function} [randomSource=Math.random] an optional entropy source that\n * returns numbers between 0 inclusive and 1 exclusive: the range [0, 1)\n * @returns {Array} x\n * @example\n * var x = [1, 2, 3, 4];\n * shuffleInPlace(x);\n * // x is shuffled to a value like [2, 1, 4, 3]\n */\nfunction shuffleInPlace(x, randomSource) {\n // a custom random number source can be provided if you want to use\n // a fixed seed or another random number generator, like\n // [random-js](https://www.npmjs.org/package/random-js)\n randomSource = randomSource || Math.random;\n\n // store the current length of the x to determine\n // when no elements remain to shuffle.\n let length = x.length;\n\n // temporary is used to hold an item when it is being\n // swapped between indices.\n let temporary;\n\n // The index to swap at each stage.\n let index;\n\n // While there are still items to shuffle\n while (length > 0) {\n // choose a random index within the subset of the array\n // that is not yet shuffled\n index = Math.floor(randomSource() * length--);\n\n // store the value that we'll move temporarily\n temporary = x[length];\n\n // swap the value at `x[length]` with `x[index]`\n x[length] = x[index];\n x[index] = temporary;\n }\n\n return x;\n}\n\nexport default shuffleInPlace;\n","import shuffleInPlace from \"./shuffle_in_place.js\";\n\n/**\n * A [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)\n * is a fast way to create a random permutation of a finite set. This is\n * a function around `shuffle_in_place` that adds the guarantee that\n * it will not modify its input.\n *\n * @param {Array} x sample of 0 or more numbers\n * @param {Function} [randomSource=Math.random] an optional entropy source that\n * returns numbers between 0 inclusive and 1 exclusive: the range [0, 1)\n * @return {Array} shuffled version of input\n * @example\n * var shuffled = shuffle([1, 2, 3, 4]);\n * shuffled; // = [2, 3, 1, 4] or any other random permutation\n */\nfunction shuffle(x, randomSource) {\n // slice the original array so that it is not modified\n const sample = x.slice();\n\n // and then shuffle that shallow-copied array, in place\n return shuffleInPlace(sample, randomSource);\n}\n\nexport default shuffle;\n","import shuffle from \"./shuffle.js\";\n\n/**\n * Create a [simple random sample](http://en.wikipedia.org/wiki/Simple_random_sample)\n * from a given array of `n` elements.\n *\n * The sampled values will be in any order, not necessarily the order\n * they appear in the input.\n *\n * @param {Array} x input array. can contain any type\n * @param {number} n count of how many elements to take\n * @param {Function} [randomSource=Math.random] an optional entropy source that\n * returns numbers between 0 inclusive and 1 exclusive: the range [0, 1)\n * @return {Array} subset of n elements in original array\n *\n * @example\n * var values = [1, 2, 4, 5, 6, 7, 8, 9];\n * sample(values, 3); // returns 3 random values, like [2, 5, 8];\n */\nfunction sample(x, n, randomSource) {\n // shuffle the original array using a fisher-yates shuffle\n const shuffled = shuffle(x, randomSource);\n\n // and then return a subset of it - the first `n` elements.\n return shuffled.slice(0, n);\n}\n\nexport default sample;\n","/**\n * Create a new column x row matrix.\n *\n * @private\n * @param {number} columns\n * @param {number} rows\n * @return {Array>} matrix\n * @example\n * makeMatrix(10, 10);\n */\nfunction makeMatrix(columns, rows) {\n const matrix = [];\n for (let i = 0; i < columns; i++) {\n const column = [];\n for (let j = 0; j < rows; j++) {\n column.push(0);\n }\n matrix.push(column);\n }\n return matrix;\n}\n\nexport default makeMatrix;\n","/**\n * For a sorted input, counting the number of unique values\n * is possible in constant time and constant memory. This is\n * a simple implementation of the algorithm.\n *\n * Values are compared with `===`, so objects and non-primitive objects\n * are not handled in any special way.\n *\n * @param {Array<*>} x an array of any kind of value\n * @returns {number} count of unique values\n * @example\n * uniqueCountSorted([1, 2, 3]); // => 3\n * uniqueCountSorted([1, 1, 1]); // => 1\n */\nfunction uniqueCountSorted(x) {\n let uniqueValueCount = 0,\n lastSeenValue;\n for (let i = 0; i < x.length; i++) {\n if (i === 0 || x[i] !== lastSeenValue) {\n lastSeenValue = x[i];\n uniqueValueCount++;\n }\n }\n return uniqueValueCount;\n}\n\nexport default uniqueCountSorted;\n","import makeMatrix from \"./make_matrix.js\";\nimport numericSort from \"./numeric_sort.js\";\nimport uniqueCountSorted from \"./unique_count_sorted.js\";\n\n/**\n * Generates incrementally computed values based on the sums and sums of\n * squares for the data array\n *\n * @private\n * @param {number} j\n * @param {number} i\n * @param {Array} sums\n * @param {Array} sumsOfSquares\n * @return {number}\n * @example\n * ssq(0, 1, [-1, 0, 2], [1, 1, 5]);\n */\nfunction ssq(j, i, sums, sumsOfSquares) {\n let sji; // s(j, i)\n if (j > 0) {\n const muji = (sums[i] - sums[j - 1]) / (i - j + 1); // mu(j, i)\n sji =\n sumsOfSquares[i] - sumsOfSquares[j - 1] - (i - j + 1) * muji * muji;\n } else {\n sji = sumsOfSquares[i] - (sums[i] * sums[i]) / (i + 1);\n }\n if (sji < 0) {\n return 0;\n }\n return sji;\n}\n\n/**\n * Function that recursively divides and conquers computations\n * for cluster j\n *\n * @private\n * @param {number} iMin Minimum index in cluster to be computed\n * @param {number} iMax Maximum index in cluster to be computed\n * @param {number} cluster Index of the cluster currently being computed\n * @param {Array>} matrix\n * @param {Array>} backtrackMatrix\n * @param {Array} sums\n * @param {Array} sumsOfSquares\n */\nfunction fillMatrixColumn(\n iMin,\n iMax,\n cluster,\n matrix,\n backtrackMatrix,\n sums,\n sumsOfSquares\n) {\n if (iMin > iMax) {\n return;\n }\n\n // Start at midpoint between iMin and iMax\n const i = Math.floor((iMin + iMax) / 2);\n\n matrix[cluster][i] = matrix[cluster - 1][i - 1];\n backtrackMatrix[cluster][i] = i;\n\n let jlow = cluster; // the lower end for j\n\n if (iMin > cluster) {\n jlow = Math.max(jlow, backtrackMatrix[cluster][iMin - 1] || 0);\n }\n jlow = Math.max(jlow, backtrackMatrix[cluster - 1][i] || 0);\n\n let jhigh = i - 1; // the upper end for j\n if (iMax < matrix[0].length - 1) {\n jhigh = Math.min(jhigh, backtrackMatrix[cluster][iMax + 1] || 0);\n }\n\n let sji;\n let sjlowi;\n let ssqjlow;\n let ssqj;\n for (let j = jhigh; j >= jlow; --j) {\n sji = ssq(j, i, sums, sumsOfSquares);\n\n if (sji + matrix[cluster - 1][jlow - 1] >= matrix[cluster][i]) {\n break;\n }\n\n // Examine the lower bound of the cluster border\n sjlowi = ssq(jlow, i, sums, sumsOfSquares);\n\n ssqjlow = sjlowi + matrix[cluster - 1][jlow - 1];\n\n if (ssqjlow < matrix[cluster][i]) {\n // Shrink the lower bound\n matrix[cluster][i] = ssqjlow;\n backtrackMatrix[cluster][i] = jlow;\n }\n jlow++;\n\n ssqj = sji + matrix[cluster - 1][j - 1];\n if (ssqj < matrix[cluster][i]) {\n matrix[cluster][i] = ssqj;\n backtrackMatrix[cluster][i] = j;\n }\n }\n\n fillMatrixColumn(\n iMin,\n i - 1,\n cluster,\n matrix,\n backtrackMatrix,\n sums,\n sumsOfSquares\n );\n fillMatrixColumn(\n i + 1,\n iMax,\n cluster,\n matrix,\n backtrackMatrix,\n sums,\n sumsOfSquares\n );\n}\n\n/**\n * Initializes the main matrices used in Ckmeans and kicks\n * off the divide and conquer cluster computation strategy\n *\n * @private\n * @param {Array} data sorted array of values\n * @param {Array>} matrix\n * @param {Array>} backtrackMatrix\n */\nfunction fillMatrices(data, matrix, backtrackMatrix) {\n const nValues = matrix[0].length;\n\n // Shift values by the median to improve numeric stability\n const shift = data[Math.floor(nValues / 2)];\n\n // Cumulative sum and cumulative sum of squares for all values in data array\n const sums = [];\n const sumsOfSquares = [];\n\n // Initialize first column in matrix & backtrackMatrix\n for (let i = 0, shiftedValue; i < nValues; ++i) {\n shiftedValue = data[i] - shift;\n if (i === 0) {\n sums.push(shiftedValue);\n sumsOfSquares.push(shiftedValue * shiftedValue);\n } else {\n sums.push(sums[i - 1] + shiftedValue);\n sumsOfSquares.push(\n sumsOfSquares[i - 1] + shiftedValue * shiftedValue\n );\n }\n\n // Initialize for cluster = 0\n matrix[0][i] = ssq(0, i, sums, sumsOfSquares);\n backtrackMatrix[0][i] = 0;\n }\n\n // Initialize the rest of the columns\n let iMin;\n for (let cluster = 1; cluster < matrix.length; ++cluster) {\n if (cluster < matrix.length - 1) {\n iMin = cluster;\n } else {\n // No need to compute matrix[K-1][0] ... matrix[K-1][N-2]\n iMin = nValues - 1;\n }\n\n fillMatrixColumn(\n iMin,\n nValues - 1,\n cluster,\n matrix,\n backtrackMatrix,\n sums,\n sumsOfSquares\n );\n }\n}\n\n/**\n * Ckmeans clustering is an improvement on heuristic-based clustering\n * approaches like Jenks. The algorithm was developed in\n * [Haizhou Wang and Mingzhou Song](http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Wang+Song.pdf)\n * as a [dynamic programming](https://en.wikipedia.org/wiki/Dynamic_programming) approach\n * to the problem of clustering numeric data into groups with the least\n * within-group sum-of-squared-deviations.\n *\n * Minimizing the difference within groups - what Wang & Song refer to as\n * `withinss`, or within sum-of-squares, means that groups are optimally\n * homogenous within and the data is split into representative groups.\n * This is very useful for visualization, where you may want to represent\n * a continuous variable in discrete color or style groups. This function\n * can provide groups that emphasize differences between data.\n *\n * Being a dynamic approach, this algorithm is based on two matrices that\n * store incrementally-computed values for squared deviations and backtracking\n * indexes.\n *\n * This implementation is based on Ckmeans 3.4.6, which introduced a new divide\n * and conquer approach that improved runtime from O(kn^2) to O(kn log(n)).\n *\n * Unlike the [original implementation](https://cran.r-project.org/web/packages/Ckmeans.1d.dp/index.html),\n * this implementation does not include any code to automatically determine\n * the optimal number of clusters: this information needs to be explicitly\n * provided.\n *\n * ### References\n * _Ckmeans.1d.dp: Optimal k-means Clustering in One Dimension by Dynamic\n * Programming_ Haizhou Wang and Mingzhou Song ISSN 2073-4859\n *\n * from The R Journal Vol. 3/2, December 2011\n * @param {Array} x input data, as an array of number values\n * @param {number} nClusters number of desired classes. This cannot be\n * greater than the number of values in the data array.\n * @returns {Array>} clustered input\n * @throws {Error} if the number of requested clusters is higher than the size of the data\n * @example\n * ckmeans([-1, 2, -1, 2, 4, 5, 6, -1, 2, -1], 3);\n * // The input, clustered into groups of similar numbers.\n * //= [[-1, -1, -1, -1], [2, 2, 2], [4, 5, 6]]);\n */\nfunction ckmeans(x, nClusters) {\n if (nClusters > x.length) {\n throw new Error(\n \"cannot generate more classes than there are data values\"\n );\n }\n\n const sorted = numericSort(x);\n // we'll use this as the maximum number of clusters\n const uniqueCount = uniqueCountSorted(sorted);\n\n // if all of the input values are identical, there's one cluster\n // with all of the input in it.\n if (uniqueCount === 1) {\n return [sorted];\n }\n\n // named 'S' originally\n const matrix = makeMatrix(nClusters, sorted.length);\n // named 'J' originally\n const backtrackMatrix = makeMatrix(nClusters, sorted.length);\n\n // This is a dynamic programming way to solve the problem of minimizing\n // within-cluster sum of squares. It's similar to linear regression\n // in this way, and this calculation incrementally computes the\n // sum of squares that are later read.\n fillMatrices(sorted, matrix, backtrackMatrix);\n\n // The real work of Ckmeans clustering happens in the matrix generation:\n // the generated matrices encode all possible clustering combinations, and\n // once they're generated we can solve for the best clustering groups\n // very quickly.\n const clusters = [];\n let clusterRight = backtrackMatrix[0].length - 1;\n\n // Backtrack the clusters from the dynamic programming matrix. This\n // starts at the bottom-right corner of the matrix (if the top-left is 0, 0),\n // and moves the cluster target with the loop.\n for (let cluster = backtrackMatrix.length - 1; cluster >= 0; cluster--) {\n const clusterLeft = backtrackMatrix[cluster][clusterRight];\n\n // fill the cluster from the sorted input by taking a slice of the\n // array. the backtrack matrix makes this easy - it stores the\n // indexes where the cluster should start and end.\n clusters[cluster] = sorted.slice(clusterLeft, clusterRight + 1);\n\n if (cluster > 0) {\n clusterRight = clusterLeft - 1;\n }\n }\n\n return clusters;\n}\n\nexport default ckmeans;\n","import mean from \"./mean.js\";\n\n/**\n * [Sample covariance](https://en.wikipedia.org/wiki/Sample_mean_and_covariance) of two datasets:\n * how much do the two datasets move together?\n * x and y are two datasets, represented as arrays of numbers.\n *\n * @param {Array} x a sample of two or more data points\n * @param {Array} y a sample of two or more data points\n * @throws {Error} if x and y do not have equal lengths\n * @throws {Error} if x or y have length of one or less\n * @returns {number} sample covariance\n * @example\n * sampleCovariance([1, 2, 3, 4, 5, 6], [6, 5, 4, 3, 2, 1]); // => -3.5\n */\nfunction sampleCovariance(x, y) {\n // The two datasets must have the same length which must be more than 1\n if (x.length !== y.length) {\n throw new Error(\"sampleCovariance requires samples with equal lengths\");\n }\n\n if (x.length < 2) {\n throw new Error(\n \"sampleCovariance requires at least two data points in each sample\"\n );\n }\n\n // determine the mean of each dataset so that we can judge each\n // value of the dataset fairly as the difference from the mean. this\n // way, if one dataset is [1, 2, 3] and [2, 3, 4], their covariance\n // does not suffer because of the difference in absolute values\n const xmean = mean(x);\n const ymean = mean(y);\n let sum = 0;\n\n // for each pair of values, the covariance increases when their\n // difference from the mean is associated - if both are well above\n // or if both are well below\n // the mean, the covariance increases significantly.\n for (let i = 0; i < x.length; i++) {\n sum += (x[i] - xmean) * (y[i] - ymean);\n }\n\n // this is Bessels' Correction: an adjustment made to sample statistics\n // that allows for the reduced degree of freedom entailed in calculating\n // values from samples rather than complete populations.\n const besselsCorrection = x.length - 1;\n\n // the covariance is weighted by the length of the datasets.\n return sum / besselsCorrection;\n}\n\nexport default sampleCovariance;\n","import sumNthPowerDeviations from \"./sum_nth_power_deviations.js\";\n\n/**\n * The [sample variance](https://en.wikipedia.org/wiki/Variance#Sample_variance)\n * is the sum of squared deviations from the mean. The sample variance\n * is distinguished from the variance by the usage of [Bessel's Correction](https://en.wikipedia.org/wiki/Bessel's_correction):\n * instead of dividing the sum of squared deviations by the length of the input,\n * it is divided by the length minus one. This corrects the bias in estimating\n * a value from a set that you don't know if full.\n *\n * References:\n * * [Wolfram MathWorld on Sample Variance](http://mathworld.wolfram.com/SampleVariance.html)\n *\n * @param {Array} x a sample of two or more data points\n * @throws {Error} if the length of x is less than 2\n * @return {number} sample variance\n * @example\n * sampleVariance([1, 2, 3, 4, 5]); // => 2.5\n */\nfunction sampleVariance(x) {\n if (x.length < 2) {\n throw new Error(\"sampleVariance requires at least two data points\");\n }\n\n const sumSquaredDeviationsValue = sumNthPowerDeviations(x, 2);\n\n // this is Bessels' Correction: an adjustment made to sample statistics\n // that allows for the reduced degree of freedom entailed in calculating\n // values from samples rather than complete populations.\n const besselsCorrection = x.length - 1;\n\n // Find the mean value of that list\n return sumSquaredDeviationsValue / besselsCorrection;\n}\n\nexport default sampleVariance;\n","import sampleVariance from \"./sample_variance.js\";\n\n/**\n * The [sample standard deviation](http://en.wikipedia.org/wiki/Standard_deviation#Sample_standard_deviation)\n * is the square root of the sample variance.\n *\n * @param {Array} x input array\n * @returns {number} sample standard deviation\n * @example\n * sampleStandardDeviation([2, 4, 4, 4, 5, 5, 7, 9]).toFixed(2);\n * // => '2.14'\n */\nfunction sampleStandardDeviation(x) {\n const sampleVarianceX = sampleVariance(x);\n return Math.sqrt(sampleVarianceX);\n}\n\nexport default sampleStandardDeviation;\n","import sampleCovariance from \"./sample_covariance.js\";\nimport sampleStandardDeviation from \"./sample_standard_deviation.js\";\n\n/**\n * The [correlation](http://en.wikipedia.org/wiki/Correlation_and_dependence) is\n * a measure of how correlated two datasets are, between -1 and 1\n *\n * @param {Array} x first input\n * @param {Array} y second input\n * @returns {number} sample correlation\n * @example\n * sampleCorrelation([1, 2, 3, 4, 5, 6], [2, 2, 3, 4, 5, 60]).toFixed(2);\n * // => '0.69'\n */\nfunction sampleCorrelation(x, y) {\n const cov = sampleCovariance(x, y);\n const xstd = sampleStandardDeviation(x);\n const ystd = sampleStandardDeviation(y);\n\n return cov / xstd / ystd;\n}\n\nexport default sampleCorrelation;\n","/**\n * When combining two lists of values for which one already knows the means,\n * one does not have to necessary recompute the mean of the combined lists in\n * linear time. They can instead use this function to compute the combined\n * mean by providing the mean & number of values of the first list and the mean\n * & number of values of the second list.\n *\n * @since 3.0.0\n * @param {number} mean1 mean of the first list\n * @param {number} n1 number of items in the first list\n * @param {number} mean2 mean of the second list\n * @param {number} n2 number of items in the second list\n * @returns {number} the combined mean\n *\n * @example\n * combineMeans(5, 3, 4, 3); // => 4.5\n */\nfunction combineMeans(mean1, n1, mean2, n2) {\n return (mean1 * n1 + mean2 * n2) / (n1 + n2);\n}\n\nexport default combineMeans;\n","import sumSimple from \"./sum_simple.js\";\n\n/**\n * The mean, _also known as average_,\n * is the sum of all values over the number of values.\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * The simple mean uses the successive addition method internally\n * to calculate it's result. Errors in floating-point addition are\n * not accounted for, so if precision is required, the standard {@link mean}\n * method should be used instead.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n *\n * @param {Array} x sample of one or more data points\n * @throws {Error} if the length of x is less than one\n * @returns {number} mean\n * @example\n * mean([0, 10]); // => 5\n */\nfunction meanSimple(x) {\n if (x.length === 0) {\n throw new Error(\"meanSimple requires at least one data point\");\n }\n\n return sumSimple(x) / x.length;\n}\n\nexport default meanSimple;\n","/**\n * The Root Mean Square (RMS) is\n * a mean function used as a measure of the magnitude of a set\n * of numbers, regardless of their sign.\n * This is the square root of the mean of the squares of the\n * input numbers.\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x a sample of one or more data points\n * @returns {number} root mean square\n * @throws {Error} if x is empty\n * @example\n * rootMeanSquare([-1, 1, -1, 1]); // => 1\n */\nfunction rootMeanSquare(x) {\n if (x.length === 0) {\n throw new Error(\"rootMeanSquare requires at least one data point\");\n }\n\n let sumOfSquares = 0;\n for (let i = 0; i < x.length; i++) {\n sumOfSquares += Math.pow(x[i], 2);\n }\n\n return Math.sqrt(sumOfSquares / x.length);\n}\n\nexport default rootMeanSquare;\n","/**\n * [Bayesian Classifier](http://en.wikipedia.org/wiki/Naive_Bayes_classifier)\n *\n * This is a naïve bayesian classifier that takes\n * singly-nested objects.\n *\n * @class\n * @example\n * var bayes = new BayesianClassifier();\n * bayes.train({\n * species: 'Cat'\n * }, 'animal');\n * var result = bayes.score({\n * species: 'Cat'\n * })\n * // result\n * // {\n * // animal: 1\n * // }\n */\nclass BayesianClassifier {\n /*:: totalCount: number */\n /*:: data: Object */\n constructor() {\n // The number of items that are currently\n // classified in the model\n this.totalCount = 0;\n // Every item classified in the model\n this.data = {};\n }\n\n /**\n * Train the classifier with a new item, which has a single\n * dimension of Javascript literal keys and values.\n *\n * @param {Object} item an object with singly-deep properties\n * @param {string} category the category this item belongs to\n * @return {undefined} adds the item to the classifier\n */\n train(item, category) {\n // If the data object doesn't have any values\n // for this category, create a new object for it.\n if (!this.data[category]) {\n this.data[category] = {};\n }\n\n // Iterate through each key in the item.\n for (const k in item) {\n const v = item[k];\n // Initialize the nested object `data[category][k][item[k]]`\n // with an object of keys that equal 0.\n if (this.data[category][k] === undefined) {\n this.data[category][k] = {};\n }\n if (this.data[category][k][v] === undefined) {\n this.data[category][k][v] = 0;\n }\n\n // And increment the key for this key/value combination.\n this.data[category][k][v]++;\n }\n\n // Increment the number of items classified\n this.totalCount++;\n }\n\n /**\n * Generate a score of how well this item matches all\n * possible categories based on its attributes\n *\n * @param {Object} item an item in the same format as with train\n * @returns {Object} of probabilities that this item belongs to a\n * given category.\n */\n score(item) {\n // Initialize an empty array of odds per category.\n const odds = {};\n let category;\n // Iterate through each key in the item,\n // then iterate through each category that has been used\n // in previous calls to `.train()`\n for (const k in item) {\n const v = item[k];\n for (category in this.data) {\n // Create an empty object for storing key - value combinations\n // for this category.\n odds[category] = {};\n\n // If this item doesn't even have a property, it counts for nothing,\n // but if it does have the property that we're looking for from\n // the item to categorize, it counts based on how popular it is\n // versus the whole population.\n if (this.data[category][k]) {\n odds[category][k + \"_\" + v] =\n (this.data[category][k][v] || 0) / this.totalCount;\n } else {\n odds[category][k + \"_\" + v] = 0;\n }\n }\n }\n\n // Set up a new object that will contain sums of these odds by category\n const oddsSums = {};\n\n for (category in odds) {\n // Tally all of the odds for each category-combination pair -\n // the non-existence of a category does not add anything to the\n // score.\n oddsSums[category] = 0;\n for (const combination in odds[category]) {\n oddsSums[category] += odds[category][combination];\n }\n }\n\n return oddsSums;\n }\n}\n\nexport default BayesianClassifier;\n","/**\n * This is a single-layer [Perceptron Classifier](http://en.wikipedia.org/wiki/Perceptron) that takes\n * arrays of numbers and predicts whether they should be classified\n * as either 0 or 1 (negative or positive examples).\n * @class\n * @example\n * // Create the model\n * var p = new PerceptronModel();\n * // Train the model with input with a diagonal boundary.\n * for (var i = 0; i < 5; i++) {\n * p.train([1, 1], 1);\n * p.train([0, 1], 0);\n * p.train([1, 0], 0);\n * p.train([0, 0], 0);\n * }\n * p.predict([0, 0]); // 0\n * p.predict([0, 1]); // 0\n * p.predict([1, 0]); // 0\n * p.predict([1, 1]); // 1\n */\nclass PerceptronModel {\n /*:: bias: number */\n /*:: weights: Array */\n constructor() {\n // The weights, or coefficients of the model;\n // weights are only populated when training with data.\n this.weights = [];\n // The bias term, or intercept; it is also a weight but\n // it's stored separately for convenience as it is always\n // multiplied by one.\n this.bias = 0;\n }\n /**\n * **Predict**: Use an array of features with the weight array and bias\n * to predict whether an example is labeled 0 or 1.\n *\n * @param {Array} features an array of features as numbers\n * @returns {number} 1 if the score is over 0, otherwise 0\n */\n predict(features) {\n // Only predict if previously trained\n // on the same size feature array(s).\n if (features.length !== this.weights.length) {\n return null;\n }\n\n // Calculate the sum of features times weights,\n // with the bias added (implicitly times one).\n let score = 0;\n for (let i = 0; i < this.weights.length; i++) {\n score += this.weights[i] * features[i];\n }\n score += this.bias;\n\n // Classify as 1 if the score is over 0, otherwise 0.\n if (score > 0) {\n return 1;\n } else {\n return 0;\n }\n }\n\n /**\n * **Train** the classifier with a new example, which is\n * a numeric array of features and a 0 or 1 label.\n *\n * @param {Array} features an array of features as numbers\n * @param {number} label either 0 or 1\n * @returns {PerceptronModel} this\n */\n train(features, label) {\n // Require that only labels of 0 or 1 are considered.\n if (label !== 0 && label !== 1) {\n return null;\n }\n // The length of the feature array determines\n // the length of the weight array.\n // The perceptron will continue learning as long as\n // it keeps seeing feature arrays of the same length.\n // When it sees a new data shape, it initializes.\n if (features.length !== this.weights.length) {\n this.weights = features;\n this.bias = 1;\n }\n // Make a prediction based on current weights.\n const prediction = this.predict(features);\n // Update the weights if the prediction is wrong.\n if (typeof prediction === \"number\" && prediction !== label) {\n const gradient = label - prediction;\n for (let i = 0; i < this.weights.length; i++) {\n this.weights[i] += gradient * features[i];\n }\n this.bias += gradient;\n }\n return this;\n }\n}\n\nexport default PerceptronModel;\n","/**\n * We use `ε`, epsilon, as a stopping criterion when we want to iterate\n * until we're \"close enough\". Epsilon is a very small number: for\n * simple statistics, that number is **0.0001**\n *\n * This is used in calculations like the binomialDistribution, in which\n * the process of finding a value is [iterative](https://en.wikipedia.org/wiki/Iterative_method):\n * it progresses until it is close enough.\n *\n * Below is an example of using epsilon in [gradient descent](https://en.wikipedia.org/wiki/Gradient_descent),\n * where we're trying to find a local minimum of a function's derivative,\n * given by the `fDerivative` method.\n *\n * @example\n * // From calculation, we expect that the local minimum occurs at x=9/4\n * var x_old = 0;\n * // The algorithm starts at x=6\n * var x_new = 6;\n * var stepSize = 0.01;\n *\n * function fDerivative(x) {\n * return 4 * Math.pow(x, 3) - 9 * Math.pow(x, 2);\n * }\n *\n * // The loop runs until the difference between the previous\n * // value and the current value is smaller than epsilon - a rough\n * // meaure of 'close enough'\n * while (Math.abs(x_new - x_old) > ss.epsilon) {\n * x_old = x_new;\n * x_new = x_old - stepSize * fDerivative(x_old);\n * }\n *\n * console.log('Local minimum occurs at', x_new);\n */\nconst epsilon = 0.0001;\n\nexport default epsilon;\n","/**\n * A [Factorial](https://en.wikipedia.org/wiki/Factorial), usually written n!, is the product of all positive\n * integers less than or equal to n. Often factorial is implemented\n * recursively, but this iterative approach is significantly faster\n * and simpler.\n *\n * @param {number} n input, must be an integer number 1 or greater\n * @returns {number} factorial: n!\n * @throws {Error} if n is less than 0 or not an integer\n * @example\n * factorial(5); // => 120\n */\nfunction factorial(n) {\n // factorial is mathematically undefined for negative numbers\n if (n < 0) {\n throw new Error(\"factorial requires a non-negative value\");\n }\n\n if (Math.floor(n) !== n) {\n throw new Error(\"factorial requires an integer input\");\n }\n\n // typically you'll expand the factorial function going down, like\n // 5! = 5 * 4 * 3 * 2 * 1. This is going in the opposite direction,\n // counting from 2 up to the number in question, and since anything\n // multiplied by 1 is itself, the loop only needs to start at 2.\n let accumulator = 1;\n for (let i = 2; i <= n; i++) {\n // for each number up to and including the number `n`, multiply\n // the accumulator my that number.\n accumulator *= i;\n }\n return accumulator;\n}\n\nexport default factorial;\n","// Define series coefficients\nconst COEFFICIENTS = [\n 0.99999999999999709182, 57.156235665862923517, -59.597960355475491248,\n 14.136097974741747174, -0.49191381609762019978, 0.33994649984811888699e-4,\n 0.46523628927048575665e-4, -0.98374475304879564677e-4,\n 0.15808870322491248884e-3, -0.21026444172410488319e-3,\n 0.2174396181152126432e-3, -0.16431810653676389022e-3,\n 0.84418223983852743293e-4, -0.2619083840158140867e-4,\n 0.36899182659531622704e-5\n];\n\nconst g = 607 / 128;\nconst LOGSQRT2PI = Math.log(Math.sqrt(2 * Math.PI));\n\n/**\n * Compute the logarithm of the [gamma function](https://en.wikipedia.org/wiki/Gamma_function) of a value using Lanczos' approximation.\n * This function takes as input any real-value n greater than 0.\n * This function is useful for values of n too large for the normal gamma function (n > 165).\n * The code is based on Lanczo's Gamma approximation, defined [here](http://my.fit.edu/~gabdo/gamma.txt).\n *\n * @param {number} n Any real number greater than zero.\n * @returns {number} The logarithm of gamma of the input value.\n *\n * @example\n * gammaln(500); // 2605.1158503617335\n * gammaln(2.4); // 0.21685932244884043\n */\nfunction gammaln(n) {\n // Return infinity if value not in domain\n if (n <= 0) {\n return Infinity;\n }\n\n // Decrement n, because approximation is defined for n - 1\n n--;\n\n // Create series approximation\n let a = COEFFICIENTS[0];\n\n for (let i = 1; i < 15; i++) {\n a += COEFFICIENTS[i] / (n + i);\n }\n\n const tmp = g + 0.5 + n;\n\n // Return natural logarithm of gamma(n)\n return LOGSQRT2PI + Math.log(a) - tmp + (n + 0.5) * Math.log(tmp);\n}\n\nexport default gammaln;\n","/**\n * **Percentage Points of the χ2 (Chi-Squared) Distribution**\n *\n * The [χ2 (Chi-Squared) Distribution](http://en.wikipedia.org/wiki/Chi-squared_distribution) is used in the common\n * chi-squared tests for goodness of fit of an observed distribution to a theoretical one, the independence of two\n * criteria of classification of qualitative data, and in confidence interval estimation for a population standard\n * deviation of a normal distribution from a sample standard deviation.\n *\n * Values from Appendix 1, Table III of William W. Hines & Douglas C. Montgomery, \"Probability and Statistics in\n * Engineering and Management Science\", Wiley (1980).\n */\nconst chiSquaredDistributionTable = {\n 1: {\n 0.995: 0,\n 0.99: 0,\n 0.975: 0,\n 0.95: 0,\n 0.9: 0.02,\n 0.5: 0.45,\n 0.1: 2.71,\n 0.05: 3.84,\n 0.025: 5.02,\n 0.01: 6.63,\n 0.005: 7.88\n },\n 2: {\n 0.995: 0.01,\n 0.99: 0.02,\n 0.975: 0.05,\n 0.95: 0.1,\n 0.9: 0.21,\n 0.5: 1.39,\n 0.1: 4.61,\n 0.05: 5.99,\n 0.025: 7.38,\n 0.01: 9.21,\n 0.005: 10.6\n },\n 3: {\n 0.995: 0.07,\n 0.99: 0.11,\n 0.975: 0.22,\n 0.95: 0.35,\n 0.9: 0.58,\n 0.5: 2.37,\n 0.1: 6.25,\n 0.05: 7.81,\n 0.025: 9.35,\n 0.01: 11.34,\n 0.005: 12.84\n },\n 4: {\n 0.995: 0.21,\n 0.99: 0.3,\n 0.975: 0.48,\n 0.95: 0.71,\n 0.9: 1.06,\n 0.5: 3.36,\n 0.1: 7.78,\n 0.05: 9.49,\n 0.025: 11.14,\n 0.01: 13.28,\n 0.005: 14.86\n },\n 5: {\n 0.995: 0.41,\n 0.99: 0.55,\n 0.975: 0.83,\n 0.95: 1.15,\n 0.9: 1.61,\n 0.5: 4.35,\n 0.1: 9.24,\n 0.05: 11.07,\n 0.025: 12.83,\n 0.01: 15.09,\n 0.005: 16.75\n },\n 6: {\n 0.995: 0.68,\n 0.99: 0.87,\n 0.975: 1.24,\n 0.95: 1.64,\n 0.9: 2.2,\n 0.5: 5.35,\n 0.1: 10.65,\n 0.05: 12.59,\n 0.025: 14.45,\n 0.01: 16.81,\n 0.005: 18.55\n },\n 7: {\n 0.995: 0.99,\n 0.99: 1.25,\n 0.975: 1.69,\n 0.95: 2.17,\n 0.9: 2.83,\n 0.5: 6.35,\n 0.1: 12.02,\n 0.05: 14.07,\n 0.025: 16.01,\n 0.01: 18.48,\n 0.005: 20.28\n },\n 8: {\n 0.995: 1.34,\n 0.99: 1.65,\n 0.975: 2.18,\n 0.95: 2.73,\n 0.9: 3.49,\n 0.5: 7.34,\n 0.1: 13.36,\n 0.05: 15.51,\n 0.025: 17.53,\n 0.01: 20.09,\n 0.005: 21.96\n },\n 9: {\n 0.995: 1.73,\n 0.99: 2.09,\n 0.975: 2.7,\n 0.95: 3.33,\n 0.9: 4.17,\n 0.5: 8.34,\n 0.1: 14.68,\n 0.05: 16.92,\n 0.025: 19.02,\n 0.01: 21.67,\n 0.005: 23.59\n },\n 10: {\n 0.995: 2.16,\n 0.99: 2.56,\n 0.975: 3.25,\n 0.95: 3.94,\n 0.9: 4.87,\n 0.5: 9.34,\n 0.1: 15.99,\n 0.05: 18.31,\n 0.025: 20.48,\n 0.01: 23.21,\n 0.005: 25.19\n },\n 11: {\n 0.995: 2.6,\n 0.99: 3.05,\n 0.975: 3.82,\n 0.95: 4.57,\n 0.9: 5.58,\n 0.5: 10.34,\n 0.1: 17.28,\n 0.05: 19.68,\n 0.025: 21.92,\n 0.01: 24.72,\n 0.005: 26.76\n },\n 12: {\n 0.995: 3.07,\n 0.99: 3.57,\n 0.975: 4.4,\n 0.95: 5.23,\n 0.9: 6.3,\n 0.5: 11.34,\n 0.1: 18.55,\n 0.05: 21.03,\n 0.025: 23.34,\n 0.01: 26.22,\n 0.005: 28.3\n },\n 13: {\n 0.995: 3.57,\n 0.99: 4.11,\n 0.975: 5.01,\n 0.95: 5.89,\n 0.9: 7.04,\n 0.5: 12.34,\n 0.1: 19.81,\n 0.05: 22.36,\n 0.025: 24.74,\n 0.01: 27.69,\n 0.005: 29.82\n },\n 14: {\n 0.995: 4.07,\n 0.99: 4.66,\n 0.975: 5.63,\n 0.95: 6.57,\n 0.9: 7.79,\n 0.5: 13.34,\n 0.1: 21.06,\n 0.05: 23.68,\n 0.025: 26.12,\n 0.01: 29.14,\n 0.005: 31.32\n },\n 15: {\n 0.995: 4.6,\n 0.99: 5.23,\n 0.975: 6.27,\n 0.95: 7.26,\n 0.9: 8.55,\n 0.5: 14.34,\n 0.1: 22.31,\n 0.05: 25,\n 0.025: 27.49,\n 0.01: 30.58,\n 0.005: 32.8\n },\n 16: {\n 0.995: 5.14,\n 0.99: 5.81,\n 0.975: 6.91,\n 0.95: 7.96,\n 0.9: 9.31,\n 0.5: 15.34,\n 0.1: 23.54,\n 0.05: 26.3,\n 0.025: 28.85,\n 0.01: 32,\n 0.005: 34.27\n },\n 17: {\n 0.995: 5.7,\n 0.99: 6.41,\n 0.975: 7.56,\n 0.95: 8.67,\n 0.9: 10.09,\n 0.5: 16.34,\n 0.1: 24.77,\n 0.05: 27.59,\n 0.025: 30.19,\n 0.01: 33.41,\n 0.005: 35.72\n },\n 18: {\n 0.995: 6.26,\n 0.99: 7.01,\n 0.975: 8.23,\n 0.95: 9.39,\n 0.9: 10.87,\n 0.5: 17.34,\n 0.1: 25.99,\n 0.05: 28.87,\n 0.025: 31.53,\n 0.01: 34.81,\n 0.005: 37.16\n },\n 19: {\n 0.995: 6.84,\n 0.99: 7.63,\n 0.975: 8.91,\n 0.95: 10.12,\n 0.9: 11.65,\n 0.5: 18.34,\n 0.1: 27.2,\n 0.05: 30.14,\n 0.025: 32.85,\n 0.01: 36.19,\n 0.005: 38.58\n },\n 20: {\n 0.995: 7.43,\n 0.99: 8.26,\n 0.975: 9.59,\n 0.95: 10.85,\n 0.9: 12.44,\n 0.5: 19.34,\n 0.1: 28.41,\n 0.05: 31.41,\n 0.025: 34.17,\n 0.01: 37.57,\n 0.005: 40\n },\n 21: {\n 0.995: 8.03,\n 0.99: 8.9,\n 0.975: 10.28,\n 0.95: 11.59,\n 0.9: 13.24,\n 0.5: 20.34,\n 0.1: 29.62,\n 0.05: 32.67,\n 0.025: 35.48,\n 0.01: 38.93,\n 0.005: 41.4\n },\n 22: {\n 0.995: 8.64,\n 0.99: 9.54,\n 0.975: 10.98,\n 0.95: 12.34,\n 0.9: 14.04,\n 0.5: 21.34,\n 0.1: 30.81,\n 0.05: 33.92,\n 0.025: 36.78,\n 0.01: 40.29,\n 0.005: 42.8\n },\n 23: {\n 0.995: 9.26,\n 0.99: 10.2,\n 0.975: 11.69,\n 0.95: 13.09,\n 0.9: 14.85,\n 0.5: 22.34,\n 0.1: 32.01,\n 0.05: 35.17,\n 0.025: 38.08,\n 0.01: 41.64,\n 0.005: 44.18\n },\n 24: {\n 0.995: 9.89,\n 0.99: 10.86,\n 0.975: 12.4,\n 0.95: 13.85,\n 0.9: 15.66,\n 0.5: 23.34,\n 0.1: 33.2,\n 0.05: 36.42,\n 0.025: 39.36,\n 0.01: 42.98,\n 0.005: 45.56\n },\n 25: {\n 0.995: 10.52,\n 0.99: 11.52,\n 0.975: 13.12,\n 0.95: 14.61,\n 0.9: 16.47,\n 0.5: 24.34,\n 0.1: 34.28,\n 0.05: 37.65,\n 0.025: 40.65,\n 0.01: 44.31,\n 0.005: 46.93\n },\n 26: {\n 0.995: 11.16,\n 0.99: 12.2,\n 0.975: 13.84,\n 0.95: 15.38,\n 0.9: 17.29,\n 0.5: 25.34,\n 0.1: 35.56,\n 0.05: 38.89,\n 0.025: 41.92,\n 0.01: 45.64,\n 0.005: 48.29\n },\n 27: {\n 0.995: 11.81,\n 0.99: 12.88,\n 0.975: 14.57,\n 0.95: 16.15,\n 0.9: 18.11,\n 0.5: 26.34,\n 0.1: 36.74,\n 0.05: 40.11,\n 0.025: 43.19,\n 0.01: 46.96,\n 0.005: 49.65\n },\n 28: {\n 0.995: 12.46,\n 0.99: 13.57,\n 0.975: 15.31,\n 0.95: 16.93,\n 0.9: 18.94,\n 0.5: 27.34,\n 0.1: 37.92,\n 0.05: 41.34,\n 0.025: 44.46,\n 0.01: 48.28,\n 0.005: 50.99\n },\n 29: {\n 0.995: 13.12,\n 0.99: 14.26,\n 0.975: 16.05,\n 0.95: 17.71,\n 0.9: 19.77,\n 0.5: 28.34,\n 0.1: 39.09,\n 0.05: 42.56,\n 0.025: 45.72,\n 0.01: 49.59,\n 0.005: 52.34\n },\n 30: {\n 0.995: 13.79,\n 0.99: 14.95,\n 0.975: 16.79,\n 0.95: 18.49,\n 0.9: 20.6,\n 0.5: 29.34,\n 0.1: 40.26,\n 0.05: 43.77,\n 0.025: 46.98,\n 0.01: 50.89,\n 0.005: 53.67\n },\n 40: {\n 0.995: 20.71,\n 0.99: 22.16,\n 0.975: 24.43,\n 0.95: 26.51,\n 0.9: 29.05,\n 0.5: 39.34,\n 0.1: 51.81,\n 0.05: 55.76,\n 0.025: 59.34,\n 0.01: 63.69,\n 0.005: 66.77\n },\n 50: {\n 0.995: 27.99,\n 0.99: 29.71,\n 0.975: 32.36,\n 0.95: 34.76,\n 0.9: 37.69,\n 0.5: 49.33,\n 0.1: 63.17,\n 0.05: 67.5,\n 0.025: 71.42,\n 0.01: 76.15,\n 0.005: 79.49\n },\n 60: {\n 0.995: 35.53,\n 0.99: 37.48,\n 0.975: 40.48,\n 0.95: 43.19,\n 0.9: 46.46,\n 0.5: 59.33,\n 0.1: 74.4,\n 0.05: 79.08,\n 0.025: 83.3,\n 0.01: 88.38,\n 0.005: 91.95\n },\n 70: {\n 0.995: 43.28,\n 0.99: 45.44,\n 0.975: 48.76,\n 0.95: 51.74,\n 0.9: 55.33,\n 0.5: 69.33,\n 0.1: 85.53,\n 0.05: 90.53,\n 0.025: 95.02,\n 0.01: 100.42,\n 0.005: 104.22\n },\n 80: {\n 0.995: 51.17,\n 0.99: 53.54,\n 0.975: 57.15,\n 0.95: 60.39,\n 0.9: 64.28,\n 0.5: 79.33,\n 0.1: 96.58,\n 0.05: 101.88,\n 0.025: 106.63,\n 0.01: 112.33,\n 0.005: 116.32\n },\n 90: {\n 0.995: 59.2,\n 0.99: 61.75,\n 0.975: 65.65,\n 0.95: 69.13,\n 0.9: 73.29,\n 0.5: 89.33,\n 0.1: 107.57,\n 0.05: 113.14,\n 0.025: 118.14,\n 0.01: 124.12,\n 0.005: 128.3\n },\n 100: {\n 0.995: 67.33,\n 0.99: 70.06,\n 0.975: 74.22,\n 0.95: 77.93,\n 0.9: 82.36,\n 0.5: 99.33,\n 0.1: 118.5,\n 0.05: 124.34,\n 0.025: 129.56,\n 0.01: 135.81,\n 0.005: 140.17\n }\n};\n\nexport default chiSquaredDistributionTable;\n","import interquartileRange from \"./interquartile_range.js\";\nimport stddev from \"./sample_standard_deviation.js\";\n\nconst SQRT_2PI = Math.sqrt(2 * Math.PI);\n\n/**\n * [Well-known kernels](https://en.wikipedia.org/wiki/Kernel_(statistics)#Kernel_functions_in_common_use)\n * @private\n */\nconst kernels = {\n /**\n * The gaussian kernel.\n * @private\n */\n gaussian: function (u) {\n return Math.exp(-0.5 * u * u) / SQRT_2PI;\n }\n};\n\n/**\n * Well known bandwidth selection methods\n * @private\n */\nconst bandwidthMethods = {\n /**\n * The [\"normal reference distribution\"\n * rule-of-thumb](https://stat.ethz.ch/R-manual/R-devel/library/MASS/html/bandwidth.nrd.html),\n * a commonly used version of [Silverman's\n * rule-of-thumb](https://en.wikipedia.org/wiki/Kernel_density_estimation#A_rule-of-thumb_bandwidth_estimator).\n * @private\n */\n nrd: function (x) {\n let s = stddev(x);\n const iqr = interquartileRange(x);\n if (typeof iqr === \"number\") {\n s = Math.min(s, iqr / 1.34);\n }\n return 1.06 * s * Math.pow(x.length, -0.2);\n }\n};\n\n/**\n * [Kernel density estimation](https://en.wikipedia.org/wiki/Kernel_density_estimation)\n * is a useful tool for, among other things, estimating the shape of the\n * underlying probability distribution from a sample.\n *\n * @name kernelDensityEstimation\n * @param X sample values\n * @param kernel The kernel function to use. If a function is provided, it should return non-negative values and integrate to 1. Defaults to 'gaussian'.\n * @param bandwidthMethod The \"bandwidth selection\" method to use, or a fixed bandwidth value. Defaults to \"nrd\", the commonly-used [\"normal reference distribution\" rule-of-thumb](https://stat.ethz.ch/R-manual/R-devel/library/MASS/html/bandwidth.nrd.html).\n * @returns {Function} An estimated [probability density function](https://en.wikipedia.org/wiki/Probability_density_function) for the given sample. The returned function runs in `O(X.length)`.\n */\nfunction kernelDensityEstimation(X, kernel, bandwidthMethod) {\n let kernelFn;\n if (kernel === undefined) {\n kernelFn = kernels.gaussian;\n } else if (typeof kernel === \"string\") {\n if (!kernels[kernel]) {\n throw new Error('Unknown kernel \"' + kernel + '\"');\n }\n kernelFn = kernels[kernel];\n } else {\n kernelFn = kernel;\n }\n\n let bandwidth;\n if (typeof bandwidthMethod === \"undefined\") {\n bandwidth = bandwidthMethods.nrd(X);\n } else if (typeof bandwidthMethod === \"string\") {\n if (!bandwidthMethods[bandwidthMethod]) {\n throw new Error(\n 'Unknown bandwidth method \"' + bandwidthMethod + '\"'\n );\n }\n bandwidth = bandwidthMethods[bandwidthMethod](X);\n } else {\n bandwidth = bandwidthMethod;\n }\n\n return function (x) {\n let i = 0;\n let sum = 0;\n for (i = 0; i < X.length; i++) {\n sum += kernelFn((x - X[i]) / bandwidth);\n }\n return sum / bandwidth / X.length;\n };\n}\n\nexport default kernelDensityEstimation;\n","const SQRT_2PI = Math.sqrt(2 * Math.PI);\n\nfunction cumulativeDistribution(z) {\n let sum = z,\n tmp = z;\n\n // 15 iterations are enough for 4-digit precision\n for (let i = 1; i < 15; i++) {\n tmp *= (z * z) / (2 * i + 1);\n sum += tmp;\n }\n return (\n Math.round((0.5 + (sum / SQRT_2PI) * Math.exp((-z * z) / 2)) * 1e4) /\n 1e4\n );\n}\n\n/**\n * A standard normal table, also called the unit normal table or Z table,\n * is a mathematical table for the values of Φ (phi), which are the values of\n * the [cumulative distribution function](https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function)\n * of the normal distribution. It is used to find the probability that a\n * statistic is observed below, above, or between values on the standard\n * normal distribution, and by extension, any normal distribution.\n */\nconst standardNormalTable = [];\n\nfor (let z = 0; z <= 3.09; z += 0.01) {\n standardNormalTable.push(cumulativeDistribution(z));\n}\n\nexport default standardNormalTable;\n","/**\n * **[Gaussian error function](http://en.wikipedia.org/wiki/Error_function)**\n *\n * The `errorFunction(x/(sd * Math.sqrt(2)))` is the probability that a value in a\n * normal distribution with standard deviation sd is within x of the mean.\n *\n * This function returns a numerical approximation to the exact value.\n * It uses Horner's method to evaluate the polynomial of τ (tau).\n *\n * @param {number} x input\n * @return {number} error estimation\n * @example\n * errorFunction(1).toFixed(2); // => '0.84'\n */\nfunction errorFunction(x) {\n const t = 1 / (1 + 0.5 * Math.abs(x));\n const tau =\n t *\n Math.exp(\n -x * x +\n ((((((((0.17087277 * t - 0.82215223) * t + 1.48851587) * t -\n 1.13520398) *\n t +\n 0.27886807) *\n t -\n 0.18628806) *\n t +\n 0.09678418) *\n t +\n 0.37409196) *\n t +\n 1.00002368) *\n t -\n 1.26551223\n );\n if (x >= 0) {\n return 1 - tau;\n } else {\n return tau - 1;\n }\n}\n\nexport default errorFunction;\n","/**\n * The Inverse [Gaussian error function](http://en.wikipedia.org/wiki/Error_function)\n * returns a numerical approximation to the value that would have caused\n * `errorFunction()` to return x.\n *\n * @param {number} x value of error function\n * @returns {number} estimated inverted value\n */\nfunction inverseErrorFunction(x) {\n const a = (8 * (Math.PI - 3)) / (3 * Math.PI * (4 - Math.PI));\n\n const inv = Math.sqrt(\n Math.sqrt(\n Math.pow(2 / (Math.PI * a) + Math.log(1 - x * x) / 2, 2) -\n Math.log(1 - x * x) / a\n ) -\n (2 / (Math.PI * a) + Math.log(1 - x * x) / 2)\n );\n\n if (x >= 0) {\n return inv;\n } else {\n return -inv;\n }\n}\n\nexport default inverseErrorFunction;\n","/**\n * [Sign](https://en.wikipedia.org/wiki/Sign_function) is a function\n * that extracts the sign of a real number\n *\n * @param {number} x input value\n * @returns {number} sign value either 1, 0 or -1\n * @throws {TypeError} if the input argument x is not a number\n * @private\n *\n * @example\n * sign(2); // => 1\n */\nfunction sign(x) {\n if (typeof x === \"number\") {\n if (x < 0) {\n return -1;\n } else if (x === 0) {\n return 0;\n } else {\n return 1;\n }\n } else {\n throw new TypeError(\"not a number\");\n }\n}\n\nexport default sign;\n","/**\n * Calculate Euclidean distance between two points.\n * @param {Array} left First N-dimensional point.\n * @param {Array} right Second N-dimensional point.\n * @returns {number} Distance.\n */\nfunction euclideanDistance(left, right) {\n let sum = 0;\n for (let i = 0; i < left.length; i++) {\n const diff = left[i] - right[i];\n sum += diff * diff;\n }\n return Math.sqrt(sum);\n}\n\nexport default euclideanDistance;\n","import euclideanDistance from \"./euclidean_distance.js\";\nimport makeMatrix from \"./make_matrix.js\";\nimport sample from \"./sample.js\";\n\n/**\n * @typedef {Object} kMeansReturn\n * @property {Array} labels The labels.\n * @property {Array>} centroids The cluster centroids.\n */\n\n/**\n * Perform k-means clustering.\n *\n * @param {Array>} points N-dimensional coordinates of points to be clustered.\n * @param {number} numCluster How many clusters to create.\n * @param {Function} randomSource An optional entropy source that generates uniform values in [0, 1).\n * @return {kMeansReturn} Labels (same length as data) and centroids (same length as numCluster).\n * @throws {Error} If any centroids wind up friendless (i.e., without associated points).\n *\n * @example\n * kMeansCluster([[0.0, 0.5], [1.0, 0.5]], 2); // => {labels: [0, 1], centroids: [[0.0, 0.5], [1.0 0.5]]}\n */\nfunction kMeansCluster(points, numCluster, randomSource = Math.random) {\n let oldCentroids = null;\n let newCentroids = sample(points, numCluster, randomSource);\n let labels = null;\n let change = Number.MAX_VALUE;\n while (change !== 0) {\n labels = labelPoints(points, newCentroids);\n oldCentroids = newCentroids;\n newCentroids = calculateCentroids(points, labels, numCluster);\n change = calculateChange(newCentroids, oldCentroids);\n }\n return {\n labels: labels,\n centroids: newCentroids\n };\n}\n\n/**\n * Label each point according to which centroid it is closest to.\n *\n * @private\n * @param {Array>} points Array of XY coordinates.\n * @param {Array>} centroids Current centroids.\n * @return {Array} Group labels.\n */\nfunction labelPoints(points, centroids) {\n return points.map((p) => {\n let minDist = Number.MAX_VALUE;\n let label = -1;\n for (let i = 0; i < centroids.length; i++) {\n const dist = euclideanDistance(p, centroids[i]);\n if (dist < minDist) {\n minDist = dist;\n label = i;\n }\n }\n return label;\n });\n}\n\n/**\n * Calculate centroids for points given labels.\n *\n * @private\n * @param {Array>} points Array of XY coordinates.\n * @param {Array} labels Which groups points belong to.\n * @param {number} numCluster Number of clusters being created.\n * @return {Array>} Centroid for each group.\n * @throws {Error} If any centroids wind up friendless (i.e., without associated points).\n */\nfunction calculateCentroids(points, labels, numCluster) {\n // Initialize accumulators.\n const dimension = points[0].length;\n const centroids = makeMatrix(numCluster, dimension);\n const counts = Array(numCluster).fill(0);\n\n // Add points to centroids' accumulators and count points per centroid.\n const numPoints = points.length;\n for (let i = 0; i < numPoints; i++) {\n const point = points[i];\n const label = labels[i];\n const current = centroids[label];\n for (let j = 0; j < dimension; j++) {\n current[j] += point[j];\n }\n counts[label] += 1;\n }\n\n // Rescale centroids, checking for any that have no points.\n for (let i = 0; i < numCluster; i++) {\n if (counts[i] === 0) {\n throw new Error(`Centroid ${i} has no friends`);\n }\n const centroid = centroids[i];\n for (let j = 0; j < dimension; j++) {\n centroid[j] /= counts[i];\n }\n }\n\n return centroids;\n}\n\n/**\n * Calculate the difference between old centroids and new centroids.\n *\n * @private\n * @param {Array>} left One list of centroids.\n * @param {Array>} right Another list of centroids.\n * @return {number} Distance between centroids.\n */\nfunction calculateChange(left, right) {\n let total = 0;\n for (let i = 0; i < left.length; i++) {\n total += euclideanDistance(left[i], right[i]);\n }\n return total;\n}\n\nexport default kMeansCluster;\n","import euclideanDistance from \"./euclidean_distance.js\";\nimport makeMatrix from \"./make_matrix.js\";\nimport max from \"./max.js\";\n\n/**\n * Calculate the [silhouette values](https://en.wikipedia.org/wiki/Silhouette_(clustering))\n * for clustered data.\n *\n * @param {Array>} points N-dimensional coordinates of points.\n * @param {Array} labels Labels of points. This must be the same length as `points`,\n * and values must lie in [0..G-1], where G is the number of groups.\n * @return {Array} The silhouette value for each point.\n *\n * @example\n * silhouette([[0.25], [0.75]], [0, 0]); // => [1.0, 1.0]\n */\nfunction silhouette(points, labels) {\n if (points.length !== labels.length) {\n throw new Error(\"must have exactly as many labels as points\");\n }\n const groupings = createGroups(labels);\n const distances = calculateAllDistances(points);\n const result = [];\n for (let i = 0; i < points.length; i++) {\n let s = 0;\n if (groupings[labels[i]].length > 1) {\n const a = meanDistanceFromPointToGroup(\n i,\n groupings[labels[i]],\n distances\n );\n const b = meanDistanceToNearestGroup(\n i,\n labels,\n groupings,\n distances\n );\n s = (b - a) / Math.max(a, b);\n }\n result.push(s);\n }\n return result;\n}\n\n/**\n * Create a lookup table mapping group IDs to point IDs.\n *\n * @private\n * @param {Array} labels Labels of points. This must be the same length as `points`,\n * and values must lie in [0..G-1], where G is the number of groups.\n * @return {Array>} An array of length G, each of whose entries is an array\n * containing the indices of the points in that group.\n */\nfunction createGroups(labels) {\n const numGroups = 1 + max(labels);\n const result = Array(numGroups);\n for (let i = 0; i < labels.length; i++) {\n const label = labels[i];\n if (result[label] === undefined) {\n result[label] = [];\n }\n result[label].push(i);\n }\n return result;\n}\n\n/**\n * Create a lookup table of all inter-point distances.\n *\n * @private\n * @param {Array>} points N-dimensional coordinates of points.\n * @return {Array>} A symmetric square array of inter-point distances\n * (zero on the diagonal).\n */\nfunction calculateAllDistances(points) {\n const numPoints = points.length;\n const result = makeMatrix(numPoints, numPoints);\n for (let i = 0; i < numPoints; i++) {\n for (let j = 0; j < i; j++) {\n result[i][j] = euclideanDistance(points[i], points[j]);\n result[j][i] = result[i][j];\n }\n }\n return result;\n}\n\n/**\n * Calculate the mean distance between this point and all the points in the\n * nearest group (as determined by which point in another group is closest).\n *\n * @private\n * @param {number} which The index of this point.\n * @param {Array} labels Labels of points.\n * @param {Array>} groupings An array whose entries are arrays\n * containing the indices of the points in that group.\n * @param {Array>} distances A symmetric square array of inter-point\n * distances.\n * @return {number} The mean distance from this point to others in the nearest\n * group.\n */\nfunction meanDistanceToNearestGroup(which, labels, groupings, distances) {\n const label = labels[which];\n let result = Number.MAX_VALUE;\n for (let i = 0; i < groupings.length; i++) {\n if (i !== label) {\n const d = meanDistanceFromPointToGroup(\n which,\n groupings[i],\n distances\n );\n if (d < result) {\n result = d;\n }\n }\n }\n return result;\n}\n\n/**\n * Calculate the mean distance between a point and all the points in a group\n * (possibly its own).\n *\n * @private\n * @param {number} which The index of this point.\n * @param {Array} group The indices of all the points in the group in\n * question.\n * @param {Array>} distances A symmetric square array of inter-point\n * distances.\n * @return {number} The mean distance from this point to others in the\n * specified group.\n */\nfunction meanDistanceFromPointToGroup(which, group, distances) {\n let total = 0;\n for (let i = 0; i < group.length; i++) {\n total += distances[which][group[i]];\n }\n return total / group.length;\n}\n\nexport default silhouette;\n","/**\n * Relative error.\n *\n * This is more difficult to calculate than it first appears [1,2]. The usual\n * formula for the relative error between an actual value A and an expected\n * value E is `|(A-E)/E|`, but:\n *\n * 1. If the expected value is 0, any other value has infinite relative error,\n * which is counter-intuitive: if the expected voltage is 0, getting 1/10th\n * of a volt doesn't feel like an infinitely large error.\n *\n * 2. This formula does not satisfy the mathematical definition of a metric [3].\n * [4] solved this problem by defining the relative error as `|ln(|A/E|)|`,\n * but that formula only works if all values are positive: for example, it\n * reports the relative error of -10 and 10 as 0.\n *\n * Our implementation sticks with convention and returns:\n *\n * - 0 if the actual and expected values are both zero\n * - Infinity if the actual value is non-zero and the expected value is zero\n * - `|(A-E)/E|` in all other cases\n *\n * [1] https://math.stackexchange.com/questions/677852/how-to-calculate-relative-error-when-true-value-is-zero\n * [2] https://en.wikipedia.org/wiki/Relative_change_and_difference\n * [3] https://en.wikipedia.org/wiki/Metric_(mathematics)#Definition\n * [4] F.W.J. Olver: \"A New Approach to Error Arithmetic.\" SIAM Journal on\n * Numerical Analysis, 15(2), 1978, 10.1137/0715024.\n *\n * @param {number} actual The actual value.\n * @param {number} expected The expected value.\n * @return {number} The relative error.\n */\nfunction relativeError(actual, expected) {\n if (actual === 0 && expected === 0) {\n return 0;\n }\n return Math.abs((actual - expected) / expected);\n}\n\nexport default relativeError;\n","/**\n * When adding a new value to a list, one does not have to necessary\n * recompute the mean of the list in linear time. They can instead use\n * this function to compute the new mean by providing the current mean,\n * the number of elements in the list that produced it and the new\n * value to add.\n *\n * @since 2.5.0\n * @param {number} mean current mean\n * @param {number} n number of items in the list\n * @param {number} newValue the added value\n * @returns {number} the new mean\n *\n * @example\n * addToMean(14, 5, 53); // => 20.5\n */\nfunction addToMean(mean, n, newValue) {\n return mean + (newValue - mean) / (n + 1);\n}\n\nexport default addToMean;\n","import epsilon from \"./epsilon.js\";\nimport relativeError from \"./relative_error.js\";\n\n/**\n * Approximate equality.\n *\n * @param {number} actual The value to be tested.\n * @param {number} expected The reference value.\n * @param {number} tolerance The acceptable relative difference.\n * @return {boolean} Whether numbers are within tolerance.\n */\nfunction approxEqual(actual, expected, tolerance = epsilon) {\n return relativeError(actual, expected) <= tolerance;\n}\n\nexport default approxEqual;\n","/**\n * The [Bernoulli distribution](http://en.wikipedia.org/wiki/Bernoulli_distribution)\n * is the probability discrete\n * distribution of a random variable which takes value 1 with success\n * probability `p` and value 0 with failure\n * probability `q` = 1 - `p`. It can be used, for example, to represent the\n * toss of a coin, where \"1\" is defined to mean \"heads\" and \"0\" is defined\n * to mean \"tails\" (or vice versa). It is\n * a special case of a Binomial Distribution\n * where `n` = 1.\n *\n * @param {number} p input value, between 0 and 1 inclusive\n * @returns {number[]} values of bernoulli distribution at this point\n * @throws {Error} if p is outside 0 and 1\n * @example\n * bernoulliDistribution(0.3); // => [0.7, 0.3]\n */\nfunction bernoulliDistribution(p) /*: number[] */ {\n // Check that `p` is a valid probability (0 ≤ p ≤ 1)\n if (p < 0 || p > 1) {\n throw new Error(\n \"bernoulliDistribution requires probability to be between 0 and 1 inclusive\"\n );\n }\n\n return [1 - p, p];\n}\n\nexport default bernoulliDistribution;\n","import epsilon from \"./epsilon.js\";\n\n/**\n * The [Binomial Distribution](http://en.wikipedia.org/wiki/Binomial_distribution) is the discrete probability\n * distribution of the number of successes in a sequence of n independent yes/no experiments, each of which yields\n * success with probability `probability`. Such a success/failure experiment is also called a Bernoulli experiment or\n * Bernoulli trial; when trials = 1, the Binomial Distribution is a Bernoulli Distribution.\n *\n * @param {number} trials number of trials to simulate\n * @param {number} probability\n * @returns {number[]} output\n */\nfunction binomialDistribution(trials, probability) /*: ?number[] */ {\n // Check that `p` is a valid probability (0 ≤ p ≤ 1),\n // that `n` is an integer, strictly positive.\n if (probability < 0 || probability > 1 || trials <= 0 || trials % 1 !== 0) {\n return undefined;\n }\n\n // We initialize `x`, the random variable, and `accumulator`, an accumulator\n // for the cumulative distribution function to 0. `distribution_functions`\n // is the object we'll return with the `probability_of_x` and the\n // `cumulativeProbability_of_x`, as well as the calculated mean &\n // variance. We iterate until the `cumulativeProbability_of_x` is\n // within `epsilon` of 1.0.\n let x = 0;\n let cumulativeProbability = 0;\n const cells = [];\n let binomialCoefficient = 1;\n\n // This algorithm iterates through each potential outcome,\n // until the `cumulativeProbability` is very close to 1, at\n // which point we've defined the vast majority of outcomes\n do {\n // a [probability mass function](https://en.wikipedia.org/wiki/Probability_mass_function)\n cells[x] =\n binomialCoefficient *\n Math.pow(probability, x) *\n Math.pow(1 - probability, trials - x);\n cumulativeProbability += cells[x];\n x++;\n binomialCoefficient = (binomialCoefficient * (trials - x + 1)) / x;\n // when the cumulativeProbability is nearly 1, we've calculated\n // the useful range of this distribution\n } while (cumulativeProbability < 1 - epsilon);\n\n return cells;\n}\n\nexport default binomialDistribution;\n","import sign from \"./sign.js\";\n\n/**\n * [Bisection method](https://en.wikipedia.org/wiki/Bisection_method) is a root-finding\n * method that repeatedly bisects an interval to find the root.\n *\n * This function returns a numerical approximation to the exact value.\n *\n * @param {Function} func input function\n * @param {number} start - start of interval\n * @param {number} end - end of interval\n * @param {number} maxIterations - the maximum number of iterations\n * @param {number} errorTolerance - the error tolerance\n * @returns {number} estimated root value\n * @throws {TypeError} Argument func must be a function\n *\n * @example\n * bisect(Math.cos,0,4,100,0.003); // => 1.572265625\n */\nfunction bisect(func, start, end, maxIterations, errorTolerance) {\n if (typeof func !== \"function\")\n throw new TypeError(\"func must be a function\");\n\n for (let i = 0; i < maxIterations; i++) {\n const output = (start + end) / 2;\n\n if (\n func(output) === 0 ||\n Math.abs((end - start) / 2) < errorTolerance\n ) {\n return output;\n }\n\n if (sign(func(output)) === sign(func(start))) {\n start = output;\n } else {\n end = output;\n }\n }\n\n throw new Error(\"maximum number of iterations exceeded\");\n}\n\nexport default bisect;\n","import chiSquaredDistributionTable from \"./chi_squared_distribution_table.js\";\nimport mean from \"./mean.js\";\n\n/**\n * The [χ2 (Chi-Squared) Goodness-of-Fit Test](http://en.wikipedia.org/wiki/Goodness_of_fit#Pearson.27s_chi-squared_test)\n * uses a measure of goodness of fit which is the sum of differences between observed and expected outcome frequencies\n * (that is, counts of observations), each squared and divided by the number of observations expected given the\n * hypothesized distribution. The resulting χ2 statistic, `chiSquared`, can be compared to the chi-squared distribution\n * to determine the goodness of fit. In order to determine the degrees of freedom of the chi-squared distribution, one\n * takes the total number of observed frequencies and subtracts the number of estimated parameters. The test statistic\n * follows, approximately, a chi-square distribution with (k − c) degrees of freedom where `k` is the number of non-empty\n * cells and `c` is the number of estimated parameters for the distribution.\n *\n * @param {Array} data\n * @param {Function} distributionType a function that returns a point in a distribution:\n * for instance, binomial, bernoulli, or poisson\n * @param {number} significance\n * @returns {number} chi squared goodness of fit\n * @example\n * // Data from Poisson goodness-of-fit example 10-19 in William W. Hines & Douglas C. Montgomery,\n * // \"Probability and Statistics in Engineering and Management Science\", Wiley (1980).\n * var data1019 = [\n * 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n * 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n * 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n * 2, 2, 2, 2, 2, 2, 2, 2, 2,\n * 3, 3, 3, 3\n * ];\n * ss.chiSquaredGoodnessOfFit(data1019, ss.poissonDistribution, 0.05); //= false\n */\nfunction chiSquaredGoodnessOfFit(data, distributionType, significance) {\n // Estimate from the sample data, a weighted mean.\n const inputMean = mean(data);\n // Calculated value of the χ2 statistic.\n let chiSquared = 0;\n // Number of hypothesized distribution parameters estimated, expected to be supplied in the distribution test.\n // Lose one degree of freedom for estimating `lambda` from the sample data.\n const c = 1;\n // The hypothesized distribution.\n // Generate the hypothesized distribution.\n const hypothesizedDistribution = distributionType(inputMean);\n const observedFrequencies = [];\n const expectedFrequencies = [];\n\n // Create an array holding a histogram from the sample data, of\n // the form `{ value: numberOfOcurrences }`\n for (let i = 0; i < data.length; i++) {\n if (observedFrequencies[data[i]] === undefined) {\n observedFrequencies[data[i]] = 0;\n }\n observedFrequencies[data[i]]++;\n }\n\n // The histogram we created might be sparse - there might be gaps\n // between values. So we iterate through the histogram, making\n // sure that instead of undefined, gaps have 0 values.\n for (let i = 0; i < observedFrequencies.length; i++) {\n if (observedFrequencies[i] === undefined) {\n observedFrequencies[i] = 0;\n }\n }\n\n // Create an array holding a histogram of expected data given the\n // sample size and hypothesized distribution.\n for (const k in hypothesizedDistribution) {\n if (k in observedFrequencies) {\n expectedFrequencies[+k] = hypothesizedDistribution[k] * data.length;\n }\n }\n\n // Working backward through the expected frequencies, collapse classes\n // if less than three observations are expected for a class.\n // This transformation is applied to the observed frequencies as well.\n for (let k = expectedFrequencies.length - 1; k >= 0; k--) {\n if (expectedFrequencies[k] < 3) {\n expectedFrequencies[k - 1] += expectedFrequencies[k];\n expectedFrequencies.pop();\n\n observedFrequencies[k - 1] += observedFrequencies[k];\n observedFrequencies.pop();\n }\n }\n\n // Iterate through the squared differences between observed & expected\n // frequencies, accumulating the `chiSquared` statistic.\n for (let k = 0; k < observedFrequencies.length; k++) {\n chiSquared +=\n Math.pow(observedFrequencies[k] - expectedFrequencies[k], 2) /\n expectedFrequencies[k];\n }\n\n // Calculate degrees of freedom for this test and look it up in the\n // `chiSquaredDistributionTable` in order to\n // accept or reject the goodness-of-fit of the hypothesized distribution.\n // Degrees of freedom, calculated as (number of class intervals -\n // number of hypothesized distribution parameters estimated - 1)\n const degreesOfFreedom = observedFrequencies.length - c - 1;\n return (\n chiSquaredDistributionTable[degreesOfFreedom][significance] < chiSquared\n );\n}\n\nexport default chiSquaredGoodnessOfFit;\n","/**\n * Split an array into chunks of a specified size. This function\n * has the same behavior as [PHP's array_chunk](http://php.net/manual/en/function.array-chunk.php)\n * function, and thus will insert smaller-sized chunks at the end if\n * the input size is not divisible by the chunk size.\n *\n * `x` is expected to be an array, and `chunkSize` a number.\n * The `x` array can contain any kind of data.\n *\n * @param {Array} x a sample\n * @param {number} chunkSize size of each output array. must be a positive integer\n * @returns {Array} a chunked array\n * @throws {Error} if chunk size is less than 1 or not an integer\n * @example\n * chunk([1, 2, 3, 4, 5, 6], 2);\n * // => [[1, 2], [3, 4], [5, 6]]\n */\nfunction chunk(x, chunkSize) {\n // a list of result chunks, as arrays in an array\n const output = [];\n\n // `chunkSize` must be zero or higher - otherwise the loop below,\n // in which we call `start += chunkSize`, will loop infinitely.\n // So, we'll detect and throw in that case to indicate\n // invalid input.\n if (chunkSize < 1) {\n throw new Error(\"chunk size must be a positive number\");\n }\n\n if (Math.floor(chunkSize) !== chunkSize) {\n throw new Error(\"chunk size must be an integer\");\n }\n\n // `start` is the index at which `.slice` will start selecting\n // new array elements\n for (let start = 0; start < x.length; start += chunkSize) {\n // for each chunk, slice that part of the array and add it\n // to the output. The `.slice` function does not change\n // the original array.\n output.push(x.slice(start, start + chunkSize));\n }\n return output;\n}\n\nexport default chunk;\n","import mean from \"./mean.js\";\nimport sampleStandardDeviation from \"./sample_standard_deviation.js\";\n\n/**\n * The`coefficient of variation`_ is the ratio of the standard deviation to the mean.\n * .._`coefficient of variation`: https://en.wikipedia.org/wiki/Coefficient_of_variation\n *\n *\n * @param {Array} x input\n * @returns {number} coefficient of variation\n * @example\n * coefficientOfVariation([1, 2, 3, 4]).toFixed(3); // => 0.516\n * coefficientOfVariation([1, 2, 3, 4, 5]).toFixed(3); // => 0.527\n * coefficientOfVariation([-1, 0, 1, 2, 3, 4]).toFixed(3); // => 1.247\n */\nfunction coefficientOfVariation(x) {\n return sampleStandardDeviation(x) / mean(x);\n}\n\nexport default coefficientOfVariation;\n","/**\n * Implementation of Combinations\n * Combinations are unique subsets of a collection - in this case, k x from a collection at a time.\n * https://en.wikipedia.org/wiki/Combination\n * @param {Array} x any type of data\n * @param {int} k the number of objects in each group (without replacement)\n * @returns {Array} array of permutations\n * @example\n * combinations([1, 2, 3], 2); // => [[1,2], [1,3], [2,3]]\n */\n\nfunction combinations(x, k) {\n let i;\n let subI;\n const combinationList = [];\n let subsetCombinations;\n let next;\n\n for (i = 0; i < x.length; i++) {\n if (k === 1) {\n combinationList.push([x[i]]);\n } else {\n subsetCombinations = combinations(x.slice(i + 1, x.length), k - 1);\n for (subI = 0; subI < subsetCombinations.length; subI++) {\n next = subsetCombinations[subI];\n next.unshift(x[i]);\n combinationList.push(next);\n }\n }\n }\n return combinationList;\n}\n\nexport default combinations;\n","/**\n * Implementation of [Combinations](https://en.wikipedia.org/wiki/Combination) with replacement\n * Combinations are unique subsets of a collection - in this case, k x from a collection at a time.\n * 'With replacement' means that a given element can be chosen multiple times.\n * Unlike permutation, order doesn't matter for combinations.\n *\n * @param {Array} x any type of data\n * @param {int} k the number of objects in each group (without replacement)\n * @returns {Array} array of permutations\n * @example\n * combinationsReplacement([1, 2], 2); // => [[1, 1], [1, 2], [2, 2]]\n */\nfunction combinationsReplacement(x, k) {\n const combinationList = [];\n\n for (let i = 0; i < x.length; i++) {\n if (k === 1) {\n // If we're requested to find only one element, we don't need\n // to recurse: just push `x[i]` onto the list of combinations.\n combinationList.push([x[i]]);\n } else {\n // Otherwise, recursively find combinations, given `k - 1`. Note that\n // we request `k - 1`, so if you were looking for k=3 combinations, we're\n // requesting k=2. This -1 gets reversed in the for loop right after this\n // code, since we concatenate `x[i]` onto the selected combinations,\n // bringing `k` back up to your requested level.\n // This recursion may go many levels deep, since it only stops once\n // k=1.\n const subsetCombinations = combinationsReplacement(\n x.slice(i, x.length),\n k - 1\n );\n\n for (let j = 0; j < subsetCombinations.length; j++) {\n combinationList.push([x[i]].concat(subsetCombinations[j]));\n }\n }\n }\n\n return combinationList;\n}\n\nexport default combinationsReplacement;\n","import combineMeans from \"./combine_means.js\";\n\n/**\n * When combining two lists of values for which one already knows the variances,\n * one does not have to necessary recompute the variance of the combined lists\n * in linear time. They can instead use this function to compute the combined\n * variance by providing the variance, mean & number of values of the first list\n * and the variance, mean & number of values of the second list.\n *\n * @since 3.0.0\n * @param {number} variance1 variance of the first list\n * @param {number} mean1 mean of the first list\n * @param {number} n1 number of items in the first list\n * @param {number} variance2 variance of the second list\n * @param {number} mean2 mean of the second list\n * @param {number} n2 number of items in the second list\n * @returns {number} the combined mean\n *\n * @example\n * combineVariances(14 / 3, 5, 3, 8 / 3, 4, 3); // => 47 / 12\n */\nfunction combineVariances(variance1, mean1, n1, variance2, mean2, n2) {\n const newMean = combineMeans(mean1, n1, mean2, n2);\n\n return (\n (n1 * (variance1 + Math.pow(mean1 - newMean, 2)) +\n n2 * (variance2 + Math.pow(mean2 - newMean, 2))) /\n (n1 + n2)\n );\n}\n\nexport default combineVariances;\n","/**\n * **[Logistic Cumulative Distribution Function](https://en.wikipedia.org/wiki/Logistic_distribution)**\n *\n * @param {number} x\n * @returns {number} cumulative standard logistic probability\n */\nfunction cumulativeStdLogisticProbability(x) {\n return 1 / (Math.exp(-x) + 1);\n}\n\nexport default cumulativeStdLogisticProbability;\n","import standardNormalTable from \"./standard_normal_table.js\";\n\n/**\n * **[Cumulative Standard Normal Probability](http://en.wikipedia.org/wiki/Standard_normal_table)**\n *\n * Since probability tables cannot be\n * printed for every normal distribution, as there are an infinite variety\n * of normal distributions, it is common practice to convert a normal to a\n * standard normal and then use the standard normal table to find probabilities.\n *\n * You can use `.5 + .5 * errorFunction(x / Math.sqrt(2))` to calculate the probability\n * instead of looking it up in a table.\n *\n * @param {number} z\n * @returns {number} cumulative standard normal probability\n */\nfunction cumulativeStdNormalProbability(z) {\n // Calculate the position of this value.\n const absZ = Math.abs(z);\n // Each row begins with a different\n // significant digit: 0.5, 0.6, 0.7, and so on. Each value in the table\n // corresponds to a range of 0.01 in the input values, so the value is\n // multiplied by 100.\n const index = Math.min(\n Math.round(absZ * 100),\n standardNormalTable.length - 1\n );\n\n // The index we calculate must be in the table as a positive value,\n // but we still pay attention to whether the input is positive\n // or negative, and flip the output value as a last step.\n if (z >= 0) {\n return standardNormalTable[index];\n } else {\n // due to floating-point arithmetic, values in the table with\n // 4 significant figures can nevertheless end up as repeating\n // fractions when they're computed here.\n return +(1 - standardNormalTable[index]).toFixed(4);\n }\n}\n\nexport default cumulativeStdNormalProbability;\n","import max from \"./max.js\";\nimport min from \"./min.js\";\n\n/**\n * Given an array of x, this will find the extent of the\n * x and return an array of breaks that can be used\n * to categorize the x into a number of classes. The\n * returned array will always be 1 longer than the number of\n * classes because it includes the minimum value.\n *\n * @param {Array} x an array of number values\n * @param {number} nClasses number of desired classes\n * @returns {Array} array of class break positions\n * @example\n * equalIntervalBreaks([1, 2, 3, 4, 5, 6], 4); // => [1, 2.25, 3.5, 4.75, 6]\n */\nfunction equalIntervalBreaks(x, nClasses) {\n if (x.length < 2) {\n return x;\n }\n\n const theMin = min(x);\n const theMax = max(x);\n\n // the first break will always be the minimum value\n // in the xset\n const breaks = [theMin];\n\n // The size of each break is the full range of the x\n // divided by the number of classes requested\n const breakSize = (theMax - theMin) / nClasses;\n\n // In the case of nClasses = 1, this loop won't run\n // and the returned breaks will be [min, max]\n for (let i = 1; i < nClasses; i++) {\n breaks.push(breaks[0] + breakSize * i);\n }\n\n // the last break will always be the\n // maximum.\n breaks.push(theMax);\n\n return breaks;\n}\n\nexport default equalIntervalBreaks;\n","/**\n * This computes the minimum & maximum number in an array.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x sample of one or more data points\n * @returns {Array} minimum & maximum value\n * @throws {Error} if the length of x is less than one\n * @example\n * extent([1, 2, 3, 4]);\n * // => [1, 4]\n */\nfunction extent(x) {\n if (x.length === 0) {\n throw new Error(\"extent requires at least one data point\");\n }\n\n let min = x[0];\n let max = x[0];\n for (let i = 1; i < x.length; i++) {\n if (x[i] > max) {\n max = x[i];\n }\n if (x[i] < min) {\n min = x[i];\n }\n }\n return [min, max];\n}\n\nexport default extent;\n","/**\n * The extent is the lowest & highest number in the array. With a sorted array,\n * the first element in the array is always the lowest while the last element is always the largest, so this calculation\n * can be done in one step, or constant time.\n *\n * @param {Array} x input\n * @returns {Array} minimum & maximum value\n * @example\n * extentSorted([-100, -10, 1, 2, 5]); // => [-100, 5]\n */\nfunction extentSorted(x) {\n return [x[0], x[x.length - 1]];\n}\n\nexport default extentSorted;\n","import factorial from \"./factorial.js\";\n\n/**\n * Compute the [gamma function](https://en.wikipedia.org/wiki/Gamma_function) of a value using Nemes' approximation.\n * The gamma of n is equivalent to (n-1)!, but unlike the factorial function, gamma is defined for all real n except zero\n * and negative integers (where NaN is returned). Note, the gamma function is also well-defined for complex numbers,\n * though this implementation currently does not handle complex numbers as input values.\n * Nemes' approximation is defined [here](https://arxiv.org/abs/1003.6020) as Theorem 2.2.\n * Negative values use [Euler's reflection formula](https://en.wikipedia.org/wiki/Gamma_function#Properties) for computation.\n *\n * @param {number} n Any real number except for zero and negative integers.\n * @returns {number} The gamma of the input value.\n *\n * @example\n * gamma(11.5); // 11899423.084037038\n * gamma(-11.5); // 2.29575810481609e-8\n * gamma(5); // 24\n */\nfunction gamma(n) {\n if (Number.isInteger(n)) {\n if (n <= 0) {\n // gamma not defined for zero or negative integers\n return NaN;\n } else {\n // use factorial for integer inputs\n return factorial(n - 1);\n }\n }\n\n // Decrement n, because approximation is defined for n - 1\n n--;\n\n if (n < 0) {\n // Use Euler's reflection formula for negative inputs\n // see: https://en.wikipedia.org/wiki/Gamma_function#Properties\n return Math.PI / (Math.sin(Math.PI * -n) * gamma(-n));\n } else {\n // Nemes' expansion approximation\n const seriesCoefficient =\n Math.pow(n / Math.E, n) * Math.sqrt(2 * Math.PI * (n + 1 / 6));\n\n const seriesDenom = n + 1 / 4;\n\n const seriesExpansion =\n 1 +\n 1 / 144 / Math.pow(seriesDenom, 2) -\n 1 / 12960 / Math.pow(seriesDenom, 3) -\n 257 / 207360 / Math.pow(seriesDenom, 4) -\n 52 / 2612736 / Math.pow(seriesDenom, 5) +\n 5741173 / 9405849600 / Math.pow(seriesDenom, 6) +\n 37529 / 18811699200 / Math.pow(seriesDenom, 7);\n\n return seriesCoefficient * seriesExpansion;\n }\n}\n\nexport default gamma;\n","/**\n * The [Geometric Mean](https://en.wikipedia.org/wiki/Geometric_mean) is\n * a mean function that is more useful for numbers in different\n * ranges.\n *\n * This is the nth root of the input numbers multiplied by each other.\n *\n * The geometric mean is often useful for\n * **[proportional growth](https://en.wikipedia.org/wiki/Geometric_mean#Proportional_growth)**: given\n * growth rates for multiple years, like _80%, 16.66% and 42.85%_, a simple\n * mean will incorrectly estimate an average growth rate, whereas a geometric\n * mean will correctly estimate a growth rate that, over those years,\n * will yield the same end value.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x sample of one or more data points\n * @returns {number} geometric mean\n * @throws {Error} if x is empty\n * @throws {Error} if x contains a negative number\n * @example\n * var growthRates = [1.80, 1.166666, 1.428571];\n * var averageGrowth = ss.geometricMean(growthRates);\n * var averageGrowthRates = [averageGrowth, averageGrowth, averageGrowth];\n * var startingValue = 10;\n * var startingValueMean = 10;\n * growthRates.forEach(function(rate) {\n * startingValue *= rate;\n * });\n * averageGrowthRates.forEach(function(rate) {\n * startingValueMean *= rate;\n * });\n * startingValueMean === startingValue;\n */\nfunction geometricMean(x) {\n if (x.length === 0) {\n throw new Error(\"geometricMean requires at least one data point\");\n }\n\n // the starting value.\n let value = 1;\n\n for (let i = 0; i < x.length; i++) {\n // the geometric mean is only valid for positive numbers\n if (x[i] < 0) {\n throw new Error(\n \"geometricMean requires only non-negative numbers as input\"\n );\n }\n\n // repeatedly multiply the value by each number\n value *= x[i];\n }\n\n return Math.pow(value, 1 / x.length);\n}\n\nexport default geometricMean;\n","/**\n * The [Harmonic Mean](https://en.wikipedia.org/wiki/Harmonic_mean) is\n * a mean function typically used to find the average of rates.\n * This mean is calculated by taking the reciprocal of the arithmetic mean\n * of the reciprocals of the input numbers.\n *\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x sample of one or more data points\n * @returns {number} harmonic mean\n * @throws {Error} if x is empty\n * @throws {Error} if x contains a negative number\n * @example\n * harmonicMean([2, 3]).toFixed(2) // => '2.40'\n */\nfunction harmonicMean(x) {\n if (x.length === 0) {\n throw new Error(\"harmonicMean requires at least one data point\");\n }\n\n let reciprocalSum = 0;\n\n for (let i = 0; i < x.length; i++) {\n // the harmonic mean is only valid for positive numbers\n if (x[i] <= 0) {\n throw new Error(\n \"harmonicMean requires only positive numbers as input\"\n );\n }\n\n reciprocalSum += 1 / x[i];\n }\n\n // divide n by the reciprocal sum\n return x.length / reciprocalSum;\n}\n\nexport default harmonicMean;\n","/**\n * [Simple linear regression](http://en.wikipedia.org/wiki/Simple_linear_regression)\n * is a simple way to find a fitted line\n * between a set of coordinates. This algorithm finds the slope and y-intercept of a regression line\n * using the least sum of squares.\n *\n * @param {Array>} data an array of two-element of arrays,\n * like `[[0, 1], [2, 3]]`\n * @returns {Object} object containing slope and intersect of regression line\n * @example\n * linearRegression([[0, 0], [1, 1]]); // => { m: 1, b: 0 }\n */\nfunction linearRegression(data) {\n let m, b;\n\n // Store data length in a local variable to reduce\n // repeated object property lookups\n const dataLength = data.length;\n\n //if there's only one point, arbitrarily choose a slope of 0\n //and a y-intercept of whatever the y of the initial point is\n if (dataLength === 1) {\n m = 0;\n b = data[0][1];\n } else {\n // Initialize our sums and scope the `m` and `b`\n // variables that define the line.\n let sumX = 0,\n sumY = 0,\n sumXX = 0,\n sumXY = 0;\n\n // Use local variables to grab point values\n // with minimal object property lookups\n let point, x, y;\n\n // Gather the sum of all x values, the sum of all\n // y values, and the sum of x^2 and (x*y) for each\n // value.\n //\n // In math notation, these would be SS_x, SS_y, SS_xx, and SS_xy\n for (let i = 0; i < dataLength; i++) {\n point = data[i];\n x = point[0];\n y = point[1];\n\n sumX += x;\n sumY += y;\n\n sumXX += x * x;\n sumXY += x * y;\n }\n\n // `m` is the slope of the regression line\n m =\n (dataLength * sumXY - sumX * sumY) /\n (dataLength * sumXX - sumX * sumX);\n\n // `b` is the y-intercept of the line.\n b = sumY / dataLength - (m * sumX) / dataLength;\n }\n\n // Return both values as an object.\n return {\n m: m,\n b: b\n };\n}\n\nexport default linearRegression;\n","/**\n * Given the output of `linearRegression`: an object\n * with `m` and `b` values indicating slope and intercept,\n * respectively, generate a line function that translates\n * x values into y values.\n *\n * @param {Object} mb object with `m` and `b` members, representing\n * slope and intersect of desired line\n * @returns {Function} method that computes y-value at any given\n * x-value on the line.\n * @example\n * var l = linearRegressionLine(linearRegression([[0, 0], [1, 1]]));\n * l(0) // = 0\n * l(2) // = 2\n * linearRegressionLine({ b: 0, m: 1 })(1); // => 1\n * linearRegressionLine({ b: 1, m: 1 })(1); // => 2\n */\nfunction linearRegressionLine(mb /*: { b: number, m: number }*/) {\n // Return a function that computes a `y` value for each\n // x value it is given, based on the values of `b` and `a`\n // that we just computed.\n return function (x) {\n return mb.b + mb.m * x;\n };\n}\n\nexport default linearRegressionLine;\n","/**\n * The [log average](https://en.wikipedia.org/wiki/https://en.wikipedia.org/wiki/Geometric_mean#Relationship_with_logarithms)\n * is an equivalent way of computing the geometric mean of an array suitable for large or small products.\n *\n * It's found by calculating the average logarithm of the elements and exponentiating.\n *\n * @param {Array} x sample of one or more data points\n * @returns {number} geometric mean\n * @throws {Error} if x is empty\n * @throws {Error} if x contains a negative number\n */\nfunction logAverage(x) {\n if (x.length === 0) {\n throw new Error(\"logAverage requires at least one data point\");\n }\n\n let value = 0;\n for (let i = 0; i < x.length; i++) {\n if (x[i] < 0) {\n throw new Error(\n \"logAverage requires only non-negative numbers as input\"\n );\n }\n value += Math.log(x[i]);\n }\n\n return Math.exp(value / x.length);\n}\n\nexport default logAverage;\n","/**\n * The [Logit](https://en.wikipedia.org/wiki/Logit)\n * is the inverse of cumulativeStdLogisticProbability,\n * and is also known as the logistic quantile function.\n *\n * @param {number} p\n * @returns {number} logit\n */\nfunction logit(p) {\n if (p <= 0 || p >= 1) {\n throw new Error(\"p must be strictly between zero and one\");\n }\n return Math.log(p / (1 - p));\n}\n\nexport default logit;\n","/**\n * The maximum is the highest number in the array. With a sorted array,\n * the last element in the array is always the largest, so this calculation\n * can be done in one step, or constant time.\n *\n * @param {Array} x input\n * @returns {number} maximum value\n * @example\n * maxSorted([-100, -10, 1, 2, 5]); // => 5\n */\nfunction maxSorted(x) {\n return x[x.length - 1];\n}\n\nexport default maxSorted;\n","import quantileSorted from \"./quantile_sorted.js\";\n\n/**\n * The [median](http://en.wikipedia.org/wiki/Median) is\n * the middle number of a list. This is often a good indicator of 'the middle'\n * when there are outliers that skew the `mean()` value.\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * The median isn't necessarily one of the elements in the list: the value\n * can be the average of two elements if the list has an even length\n * and the two central values are different.\n *\n * @param {Array} sorted input\n * @returns {number} median value\n * @example\n * medianSorted([10, 2, 5, 100, 2, 1]); // => 52.5\n */\nfunction medianSorted(sorted) {\n return quantileSorted(sorted, 0.5);\n}\n\nexport default medianSorted;\n","/**\n * The minimum is the lowest number in the array. With a sorted array,\n * the first element in the array is always the smallest, so this calculation\n * can be done in one step, or constant time.\n *\n * @param {Array} x input\n * @returns {number} minimum value\n * @example\n * minSorted([-100, -10, 1, 2, 5]); // => -100\n */\nfunction minSorted(x) {\n return x[0];\n}\n\nexport default minSorted;\n","import modeSorted from \"./mode_sorted.js\";\nimport numericSort from \"./numeric_sort.js\";\n\n/**\n * The [mode](https://en.wikipedia.org/wiki/Mode_%28statistics%29) is the number\n * that appears in a list the highest number of times.\n * There can be multiple modes in a list: in the event of a tie, this\n * algorithm will return the most recently seen mode.\n *\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * This runs in `O(n log(n))` because it needs to sort the array internally\n * before running an `O(n)` search to find the mode.\n *\n * @param {Array} x input\n * @returns {number} mode\n * @example\n * mode([0, 0, 1]); // => 0\n */\nfunction mode(x) {\n // Sorting the array lets us iterate through it below and be sure\n // that every time we see a new number it's new and we'll never\n // see the same number twice\n return modeSorted(numericSort(x));\n}\n\nexport default mode;\n","/* globals Map: false */\n\n/**\n * The [mode](https://en.wikipedia.org/wiki/Mode_%28statistics%29) is the number\n * that appears in a list the highest number of times.\n * There can be multiple modes in a list: in the event of a tie, this\n * algorithm will return the most recently seen mode.\n *\n * modeFast uses a Map object to keep track of the mode, instead of the approach\n * used with `mode`, a sorted array. As a result, it is faster\n * than `mode` and supports any data type that can be compared with `==`.\n * It also requires a\n * [JavaScript environment with support for Map](https://kangax.github.io/compat-table/es6/#test-Map),\n * and will throw an error if Map is not available.\n *\n * This is a [measure of central tendency](https://en.wikipedia.org/wiki/Central_tendency):\n * a method of finding a typical or central value of a set of numbers.\n *\n * @param {Array<*>} x a sample of one or more data points\n * @returns {?*} mode\n * @throws {ReferenceError} if the JavaScript environment doesn't support Map\n * @throws {Error} if x is empty\n * @example\n * modeFast(['rabbits', 'rabbits', 'squirrels']); // => 'rabbits'\n */\nfunction modeFast(x) {\n // This index will reflect the incidence of different values, indexing\n // them like\n // { value: count }\n const index = new Map();\n\n // A running `mode` and the number of times it has been encountered.\n let mode;\n let modeCount = 0;\n\n for (let i = 0; i < x.length; i++) {\n let newCount = index.get(x[i]);\n if (newCount === undefined) {\n newCount = 1;\n } else {\n newCount++;\n }\n if (newCount > modeCount) {\n mode = x[i];\n modeCount = newCount;\n }\n index.set(x[i], newCount);\n }\n\n if (modeCount === 0) {\n throw new Error(\"mode requires at last one data point\");\n }\n\n return mode;\n}\n\nexport default modeFast;\n","import mean from \"./mean.js\";\nimport shuffleInPlace from \"./shuffle_in_place.js\";\n\n/**\n * Conducts a [permutation test](https://en.wikipedia.org/wiki/Resampling_(statistics)#Permutation_tests)\n * to determine if two data sets are *significantly* different from each other, using\n * the difference of means between the groups as the test statistic.\n * The function allows for the following hypotheses:\n * - two_tail = Null hypothesis: the two distributions are equal.\n * - greater = Null hypothesis: observations from sampleX tend to be smaller than those from sampleY.\n * - less = Null hypothesis: observations from sampleX tend to be greater than those from sampleY.\n * [Learn more about one-tail vs two-tail tests.](https://en.wikipedia.org/wiki/One-_and_two-tailed_tests)\n *\n * @param {Array} sampleX first dataset (e.g. treatment data)\n * @param {Array} sampleY second dataset (e.g. control data)\n * @param {string} alternative alternative hypothesis, either 'two_sided' (default), 'greater', or 'less'\n * @param {number} k number of values in permutation distribution.\n * @param {Function} [randomSource=Math.random] an optional entropy source\n * @returns {number} p-value The probability of observing the difference between groups (as or more extreme than what we did), assuming the null hypothesis.\n *\n * @example\n * var control = [2, 5, 3, 6, 7, 2, 5];\n * var treatment = [20, 5, 13, 12, 7, 2, 2];\n * permutationTest(control, treatment); // ~0.1324\n */\nfunction permutationTest(sampleX, sampleY, alternative, k, randomSource) {\n // Set default arguments\n if (k === undefined) {\n k = 10000;\n }\n if (alternative === undefined) {\n alternative = \"two_side\";\n }\n if (\n alternative !== \"two_side\" &&\n alternative !== \"greater\" &&\n alternative !== \"less\"\n ) {\n throw new Error(\n \"`alternative` must be either 'two_side', 'greater', or 'less'.\"\n );\n }\n\n // get means for each sample\n const meanX = mean(sampleX);\n const meanY = mean(sampleY);\n\n // calculate initial test statistic. This will be our point of comparison with\n // the generated test statistics.\n const testStatistic = meanX - meanY;\n\n // create test-statistic distribution\n const testStatDsn = new Array(k);\n\n // combine datsets so we can easily shuffle later\n const allData = sampleX.concat(sampleY);\n const midIndex = Math.floor(allData.length / 2);\n\n for (let i = 0; i < k; i++) {\n // 1. shuffle data assignments\n shuffleInPlace(allData, randomSource);\n const permLeft = allData.slice(0, midIndex);\n const permRight = allData.slice(midIndex, allData.length);\n\n // 2.re-calculate test statistic\n const permTestStatistic = mean(permLeft) - mean(permRight);\n\n // 3. store test statistic to build test statistic distribution\n testStatDsn[i] = permTestStatistic;\n }\n\n // Calculate p-value depending on alternative\n // For this test, we calculate the percentage of 'extreme' test statistics (subject to our hypothesis)\n // more info on permutation test p-value calculations: https://onlinecourses.science.psu.edu/stat464/node/35\n let numExtremeTStats = 0;\n if (alternative === \"two_side\") {\n for (let i = 0; i <= k; i++) {\n if (Math.abs(testStatDsn[i]) >= Math.abs(testStatistic)) {\n numExtremeTStats += 1;\n }\n }\n } else if (alternative === \"greater\") {\n for (let i = 0; i <= k; i++) {\n if (testStatDsn[i] >= testStatistic) {\n numExtremeTStats += 1;\n }\n }\n } else {\n // alternative === 'less'\n for (let i = 0; i <= k; i++) {\n if (testStatDsn[i] <= testStatistic) {\n numExtremeTStats += 1;\n }\n }\n }\n\n return numExtremeTStats / k;\n}\n\nexport default permutationTest;\n","/**\n * Implementation of [Heap's Algorithm](https://en.wikipedia.org/wiki/Heap%27s_algorithm)\n * for generating permutations.\n *\n * @param {Array} elements any type of data\n * @returns {Array} array of permutations\n */\nfunction permutationsHeap(elements) {\n const indexes = new Array(elements.length);\n const permutations = [elements.slice()];\n\n for (let i = 0; i < elements.length; i++) {\n indexes[i] = 0;\n }\n\n for (let i = 0; i < elements.length; ) {\n if (indexes[i] < i) {\n // At odd indexes, swap from indexes[i] instead\n // of from the beginning of the array\n let swapFrom = 0;\n if (i % 2 !== 0) {\n swapFrom = indexes[i];\n }\n\n // swap between swapFrom and i, using\n // a temporary variable as storage.\n const temp = elements[swapFrom];\n elements[swapFrom] = elements[i];\n elements[i] = temp;\n\n permutations.push(elements.slice());\n indexes[i]++;\n i = 0;\n } else {\n indexes[i] = 0;\n i++;\n }\n }\n\n return permutations;\n}\n\nexport default permutationsHeap;\n","import epsilon from \"./epsilon.js\";\n\n/**\n * The [Poisson Distribution](http://en.wikipedia.org/wiki/Poisson_distribution)\n * is a discrete probability distribution that expresses the probability\n * of a given number of events occurring in a fixed interval of time\n * and/or space if these events occur with a known average rate and\n * independently of the time since the last event.\n *\n * The Poisson Distribution is characterized by the strictly positive\n * mean arrival or occurrence rate, `λ`.\n *\n * @param {number} lambda location poisson distribution\n * @returns {number[]} values of poisson distribution at that point\n */\nfunction poissonDistribution(lambda) /*: ?number[] */ {\n // Check that lambda is strictly positive\n if (lambda <= 0) {\n return undefined;\n }\n\n // our current place in the distribution\n let x = 0;\n // and we keep track of the current cumulative probability, in\n // order to know when to stop calculating chances.\n let cumulativeProbability = 0;\n // the calculated cells to be returned\n const cells = [];\n let factorialX = 1;\n\n // This algorithm iterates through each potential outcome,\n // until the `cumulativeProbability` is very close to 1, at\n // which point we've defined the vast majority of outcomes\n do {\n // a [probability mass function](https://en.wikipedia.org/wiki/Probability_mass_function)\n cells[x] = (Math.exp(-lambda) * Math.pow(lambda, x)) / factorialX;\n cumulativeProbability += cells[x];\n x++;\n factorialX *= x;\n // when the cumulativeProbability is nearly 1, we've calculated\n // the useful range of this distribution\n } while (cumulativeProbability < 1 - epsilon);\n\n return cells;\n}\n\nexport default poissonDistribution;\n","import epsilon from \"./epsilon.js\";\nimport inverseErrorFunction from \"./inverse_error_function.js\";\n\n/**\n * The [Probit](http://en.wikipedia.org/wiki/Probit)\n * is the inverse of cumulativeStdNormalProbability(),\n * and is also known as the normal quantile function.\n *\n * It returns the number of standard deviations from the mean\n * where the p'th quantile of values can be found in a normal distribution.\n * So, for example, probit(0.5 + 0.6827/2) ≈ 1 because 68.27% of values are\n * normally found within 1 standard deviation above or below the mean.\n *\n * @param {number} p\n * @returns {number} probit\n */\nfunction probit(p) {\n if (p === 0) {\n p = epsilon;\n } else if (p >= 1) {\n p = 1 - epsilon;\n }\n return Math.sqrt(2) * inverseErrorFunction(2 * p - 1);\n}\n\nexport default probit;\n","/**\n * The [product](https://en.wikipedia.org/wiki/Product_(mathematics)) of an array\n * is the result of multiplying all numbers together, starting using one as the multiplicative identity.\n *\n * This runs in `O(n)`, linear time, with respect to the length of the array.\n *\n * @param {Array} x input\n * @return {number} product of all input numbers\n * @example\n * product([1, 2, 3, 4]); // => 24\n */\nfunction product(x) {\n let value = 1;\n for (let i = 0; i < x.length; i++) {\n value *= x[i];\n }\n return value;\n}\n\nexport default product;\n","import numericSort from \"./numeric_sort.js\";\nimport quantileRankSorted from \"./quantile_rank_sorted.js\";\n\n/**\n * This function returns the quantile in which one would find the given value in\n * the given array. It will copy and sort your array before each run, so\n * if you know your array is already sorted, you should use `quantileRankSorted`\n * instead.\n *\n * @param {Array} x input\n * @returns {number} value value\n * @example\n * quantileRank([4, 3, 1, 2], 3); // => 0.75\n * quantileRank([4, 3, 2, 3, 1], 3); // => 0.7\n * quantileRank([2, 4, 1, 3], 6); // => 1\n * quantileRank([5, 3, 1, 2, 3], 4); // => 0.8\n */\nfunction quantileRank(x, value) {\n // Cloning and sorting the array\n const sortedCopy = numericSort(x);\n\n return quantileRankSorted(sortedCopy, value);\n}\n\nexport default quantileRank;\n","/**\n * The [R Squared](http://en.wikipedia.org/wiki/Coefficient_of_determination)\n * value of data compared with a function `f`\n * is the sum of the squared differences between the prediction\n * and the actual value.\n *\n * @param {Array>} x input data: this should be doubly-nested\n * @param {Function} func function called on `[i][0]` values within the dataset\n * @returns {number} r-squared value\n * @example\n * var samples = [[0, 0], [1, 1]];\n * var regressionLine = linearRegressionLine(linearRegression(samples));\n * rSquared(samples, regressionLine); // = 1 this line is a perfect fit\n */\nfunction rSquared(x, func) {\n if (x.length < 2) {\n return 1;\n }\n\n // Compute the average y value for the actual\n // data set in order to compute the\n // _total sum of squares_\n let sum = 0;\n for (let i = 0; i < x.length; i++) {\n sum += x[i][1];\n }\n const average = sum / x.length;\n\n // Compute the total sum of squares - the\n // squared difference between each point\n // and the average of all points.\n let sumOfSquares = 0;\n for (let j = 0; j < x.length; j++) {\n sumOfSquares += Math.pow(average - x[j][1], 2);\n }\n\n // Finally estimate the error: the squared\n // difference between the estimate and the actual data\n // value at each point.\n let err = 0;\n for (let k = 0; k < x.length; k++) {\n err += Math.pow(x[k][1] - func(x[k][0]), 2);\n }\n\n // As the error grows larger, its ratio to the\n // sum of squares increases and the r squared\n // value grows lower.\n return 1 - err / sumOfSquares;\n}\n\nexport default rSquared;\n","import mean from \"./mean.js\";\n\n/**\n * [Kurtosis](http://en.wikipedia.org/wiki/Kurtosis) is\n * a measure of the heaviness of a distribution's tails relative to its\n * variance. The kurtosis value can be positive or negative, or even undefined.\n *\n * Implementation is based on Fisher's excess kurtosis definition and uses\n * unbiased moment estimators. This is the version found in Excel and available\n * in several statistical packages, including SAS and SciPy.\n *\n * @param {Array} x a sample of 4 or more data points\n * @returns {number} sample kurtosis\n * @throws {Error} if x has length less than 4\n * @example\n * sampleKurtosis([1, 2, 2, 3, 5]); // => 1.4555765595463122\n */\nfunction sampleKurtosis(x) {\n const n = x.length;\n\n if (n < 4) {\n throw new Error(\"sampleKurtosis requires at least four data points\");\n }\n\n const meanValue = mean(x);\n let tempValue;\n let secondCentralMoment = 0;\n let fourthCentralMoment = 0;\n\n for (let i = 0; i < n; i++) {\n tempValue = x[i] - meanValue;\n secondCentralMoment += tempValue * tempValue;\n fourthCentralMoment += tempValue * tempValue * tempValue * tempValue;\n }\n\n return (\n ((n - 1) / ((n - 2) * (n - 3))) *\n ((n * (n + 1) * fourthCentralMoment) /\n (secondCentralMoment * secondCentralMoment) -\n 3 * (n - 1))\n );\n}\n\nexport default sampleKurtosis;\n","import sampleCorrelation from \"./sample_correlation.js\";\n\n/**\n * The [rank correlation](https://en.wikipedia.org/wiki/Rank_correlation) is\n * a measure of the strength of monotonic relationship between two arrays\n *\n * @param {Array} x first input\n * @param {Array} y second input\n * @returns {number} sample rank correlation\n */\nfunction sampleRankCorrelation(x, y) {\n const xIndexes = x\n .map((value, index) => [value, index])\n .sort((a, b) => a[0] - b[0])\n .map((pair) => pair[1]);\n const yIndexes = y\n .map((value, index) => [value, index])\n .sort((a, b) => a[0] - b[0])\n .map((pair) => pair[1]);\n\n // At this step, we have an array of indexes\n // that map from sorted numbers to their original indexes. We reverse\n // that so that it is an array of the sorted destination index.\n const xRanks = Array(xIndexes.length);\n const yRanks = Array(xIndexes.length);\n for (let i = 0; i < xIndexes.length; i++) {\n xRanks[xIndexes[i]] = i;\n yRanks[yIndexes[i]] = i;\n }\n\n return sampleCorrelation(xRanks, yRanks);\n}\n\nexport default sampleRankCorrelation;\n","import mean from \"./mean.js\";\n\n/**\n * [Skewness](http://en.wikipedia.org/wiki/Skewness) is\n * a measure of the extent to which a probability distribution of a\n * real-valued random variable \"leans\" to one side of the mean.\n * The skewness value can be positive or negative, or even undefined.\n *\n * Implementation is based on the adjusted Fisher-Pearson standardized\n * moment coefficient, which is the version found in Excel and several\n * statistical packages including Minitab, SAS and SPSS.\n *\n * @since 4.1.0\n * @param {Array} x a sample of 3 or more data points\n * @returns {number} sample skewness\n * @throws {Error} if x has length less than 3\n * @example\n * sampleSkewness([2, 4, 6, 3, 1]); // => 0.590128656384365\n */\nfunction sampleSkewness(x) {\n if (x.length < 3) {\n throw new Error(\"sampleSkewness requires at least three data points\");\n }\n\n const meanValue = mean(x);\n let tempValue;\n let sumSquaredDeviations = 0;\n let sumCubedDeviations = 0;\n\n for (let i = 0; i < x.length; i++) {\n tempValue = x[i] - meanValue;\n sumSquaredDeviations += tempValue * tempValue;\n sumCubedDeviations += tempValue * tempValue * tempValue;\n }\n\n // this is Bessels' Correction: an adjustment made to sample statistics\n // that allows for the reduced degree of freedom entailed in calculating\n // values from samples rather than complete populations.\n const besselsCorrection = x.length - 1;\n\n // Find the mean value of that list\n const theSampleStandardDeviation = Math.sqrt(\n sumSquaredDeviations / besselsCorrection\n );\n\n const n = x.length;\n const cubedS = Math.pow(theSampleStandardDeviation, 3);\n\n return (n * sumCubedDeviations) / ((n - 1) * (n - 2) * cubedS);\n}\n\nexport default sampleSkewness;\n","/**\n * Sampling with replacement is a type of sampling that allows the same\n * item to be picked out of a population more than once.\n *\n * @param {Array<*>} x an array of any kind of value\n * @param {number} n count of how many elements to take\n * @param {Function} [randomSource=Math.random] an optional entropy source that\n * returns numbers between 0 inclusive and 1 exclusive: the range [0, 1)\n * @return {Array} n sampled items from the population\n * @example\n * var values = [1, 2, 3, 4];\n * sampleWithReplacement(values, 2); // returns 2 random values, like [2, 4];\n */\nfunction sampleWithReplacement(x, n, randomSource) {\n if (x.length === 0) {\n return [];\n }\n\n // a custom random number source can be provided if you want to use\n // a fixed seed or another random number generator, like\n // [random-js](https://www.npmjs.org/package/random-js)\n randomSource = randomSource || Math.random;\n\n const length = x.length;\n const sample = [];\n\n for (let i = 0; i < n; i++) {\n const index = Math.floor(randomSource() * length);\n\n sample.push(x[index]);\n }\n\n return sample;\n}\n\nexport default sampleWithReplacement;\n","import max from \"./max.js\";\nimport silhouette from \"./silhouette.js\";\n\n/**\n * Calculate the [silhouette metric](https://en.wikipedia.org/wiki/Silhouette_(clustering))\n * for a set of N-dimensional points arranged in groups. The metric is the largest\n * individual silhouette value for the data.\n *\n * @param {Array>} points N-dimensional coordinates of points.\n * @param {Array} labels Labels of points. This must be the same length as `points`,\n * and values must lie in [0..G-1], where G is the number of groups.\n * @return {number} The silhouette metric for the groupings.\n *\n * @example\n * silhouetteMetric([[0.25], [0.75]], [0, 0]); // => 1.0\n */\nfunction silhouetteMetric(points, labels) {\n const values = silhouette(points, labels);\n return max(values);\n}\n\nexport default silhouetteMetric;\n","/**\n * When removing a value from a list, one does not have to necessary\n * recompute the mean of the list in linear time. They can instead use\n * this function to compute the new mean by providing the current mean,\n * the number of elements in the list that produced it and the value to remove.\n *\n * @since 3.0.0\n * @param {number} mean current mean\n * @param {number} n number of items in the list\n * @param {number} value the value to remove\n * @returns {number} the new mean\n *\n * @example\n * subtractFromMean(20.5, 6, 53); // => 14\n */\nfunction subtractFromMean(mean, n, value) {\n return (mean * n - value) / (n - 1);\n}\n\nexport default subtractFromMean;\n","import mean from \"./mean.js\";\nimport standardDeviation from \"./standard_deviation.js\";\n\n/**\n * This is to compute [a one-sample t-test](https://en.wikipedia.org/wiki/Student%27s_t-test#One-sample_t-test), comparing the mean\n * of a sample to a known value, x.\n *\n * in this case, we're trying to determine whether the\n * population mean is equal to the value that we know, which is `x`\n * here. Usually the results here are used to look up a\n * [p-value](http://en.wikipedia.org/wiki/P-value), which, for\n * a certain level of significance, will let you determine that the\n * null hypothesis can or cannot be rejected.\n *\n * @param {Array} x sample of one or more numbers\n * @param {number} expectedValue expected value of the population mean\n * @returns {number} value\n * @example\n * tTest([1, 2, 3, 4, 5, 6], 3.385).toFixed(2); // => '0.16'\n */\nfunction tTest(x, expectedValue) {\n // The mean of the sample\n const sampleMean = mean(x);\n\n // The standard deviation of the sample\n const sd = standardDeviation(x);\n\n // Square root the length of the sample\n const rootN = Math.sqrt(x.length);\n\n // returning the t value\n return (sampleMean - expectedValue) / (sd / rootN);\n}\n\nexport default tTest;\n","import mean from \"./mean.js\";\nimport sampleVariance from \"./sample_variance.js\";\n\n/**\n * This is to compute [two sample t-test](http://en.wikipedia.org/wiki/Student's_t-test).\n * Tests whether \"mean(X)-mean(Y) = difference\", (\n * in the most common case, we often have `difference == 0` to test if two samples\n * are likely to be taken from populations with the same mean value) with\n * no prior knowledge on standard deviations of both samples\n * other than the fact that they have the same standard deviation.\n *\n * Usually the results here are used to look up a\n * [p-value](http://en.wikipedia.org/wiki/P-value), which, for\n * a certain level of significance, will let you determine that the\n * null hypothesis can or cannot be rejected.\n *\n * `diff` can be omitted if it equals 0.\n *\n * [This is used to reject](https://en.wikipedia.org/wiki/Exclusion_of_the_null_hypothesis)\n * a null hypothesis that the two populations that have been sampled into\n * `sampleX` and `sampleY` are equal to each other.\n *\n * @param {Array} sampleX a sample as an array of numbers\n * @param {Array} sampleY a sample as an array of numbers\n * @param {number} [difference=0]\n * @returns {number|null} test result\n *\n * @example\n * tTestTwoSample([1, 2, 3, 4], [3, 4, 5, 6], 0); // => -2.1908902300206643\n */\nfunction tTestTwoSample(sampleX, sampleY, difference) {\n const n = sampleX.length;\n const m = sampleY.length;\n\n // If either sample doesn't actually have any values, we can't\n // compute this at all, so we return `null`.\n if (!n || !m) {\n return null;\n }\n\n // default difference (mu) is zero\n if (!difference) {\n difference = 0;\n }\n\n const meanX = mean(sampleX);\n const meanY = mean(sampleY);\n const sampleVarianceX = sampleVariance(sampleX);\n const sampleVarianceY = sampleVariance(sampleY);\n\n if (\n typeof meanX === \"number\" &&\n typeof meanY === \"number\" &&\n typeof sampleVarianceX === \"number\" &&\n typeof sampleVarianceY === \"number\"\n ) {\n const weightedVariance =\n ((n - 1) * sampleVarianceX + (m - 1) * sampleVarianceY) /\n (n + m - 2);\n\n return (\n (meanX - meanY - difference) /\n Math.sqrt(weightedVariance * (1 / n + 1 / m))\n );\n }\n}\n\nexport default tTestTwoSample;\n","/**\n * This function calculates the Wilcoxon rank sum statistic for the first sample\n * with respect to the second. The Wilcoxon rank sum test is a non-parametric\n * alternative to the t-test which is equivalent to the\n * [Mann-Whitney U test](https://en.wikipedia.org/wiki/Mann%E2%80%93Whitney_U_test).\n * The statistic is calculated by pooling all the observations together, ranking them,\n * and then summing the ranks associated with one of the samples. If this rank sum is\n * sufficiently large or small we reject the hypothesis that the two samples come\n * from the same distribution in favor of the alternative that one is shifted with\n * respect to the other.\n *\n * @param {Array} sampleX a sample as an array of numbers\n * @param {Array} sampleY a sample as an array of numbers\n * @returns {number} rank sum for sampleX\n *\n * @example\n * wilcoxonRankSum([1, 4, 8], [9, 12, 15]); // => 6\n */\nfunction wilcoxonRankSum(sampleX, sampleY) {\n if (!sampleX.length || !sampleY.length) {\n throw new Error(\"Neither sample can be empty\");\n }\n\n const pooledSamples = sampleX\n .map((x) => ({ label: \"x\", value: x }))\n .concat(sampleY.map((y) => ({ label: \"y\", value: y })))\n .sort((a, b) => a.value - b.value);\n\n for (let rank = 0; rank < pooledSamples.length; rank++) {\n pooledSamples[rank].rank = rank;\n }\n\n let tiedRanks = [pooledSamples[0].rank];\n for (let i = 1; i < pooledSamples.length; i++) {\n if (pooledSamples[i].value === pooledSamples[i - 1].value) {\n tiedRanks.push(pooledSamples[i].rank);\n if (i === pooledSamples.length - 1) {\n replaceRanksInPlace(pooledSamples, tiedRanks);\n }\n } else if (tiedRanks.length > 1) {\n replaceRanksInPlace(pooledSamples, tiedRanks);\n } else {\n tiedRanks = [pooledSamples[i].rank];\n }\n }\n\n function replaceRanksInPlace(pooledSamples, tiedRanks) {\n const average = (tiedRanks[0] + tiedRanks[tiedRanks.length - 1]) / 2;\n for (let i = 0; i < tiedRanks.length; i++) {\n pooledSamples[tiedRanks[i]].rank = average;\n }\n }\n\n let rankSum = 0;\n\n for (let i = 0; i < pooledSamples.length; i++) {\n const sample = pooledSamples[i];\n if (sample.label === \"x\") {\n rankSum += sample.rank + 1;\n }\n }\n\n return rankSum;\n}\n\nexport default wilcoxonRankSum;\n","/**\n * The [Z-Score, or Standard Score](http://en.wikipedia.org/wiki/Standard_score).\n *\n * The standard score is the number of standard deviations an observation\n * or datum is above or below the mean. Thus, a positive standard score\n * represents a datum above the mean, while a negative standard score\n * represents a datum below the mean. It is a dimensionless quantity\n * obtained by subtracting the population mean from an individual raw\n * score and then dividing the difference by the population standard\n * deviation.\n *\n * The z-score is only defined if one knows the population parameters;\n * if one only has a sample set, then the analogous computation with\n * sample mean and sample standard deviation yields the\n * Student's t-statistic.\n *\n * @param {number} x\n * @param {number} mean\n * @param {number} standardDeviation\n * @return {number} z score\n * @example\n * zScore(78, 80, 5); // => -0.4\n */\nfunction zScore(x, mean, standardDeviation) {\n return (x - mean) / standardDeviation;\n}\n\nexport default zScore;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\n\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n var _super = _createSuper(DefaultTooltipContent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label, payload);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\n\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n}\n\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\n\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n var _super = _createSuper(Tooltip);\n\n function Tooltip() {\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n _this.wrapperNode = void 0;\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n payloadUniqBy = _this$props2.payloadUniqBy;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};","'use strict'\n\nconst Bignumber = require('bignumber.js').BigNumber\n\nexports.MT = {\n POS_INT: 0,\n NEG_INT: 1,\n BYTE_STRING: 2,\n UTF8_STRING: 3,\n ARRAY: 4,\n MAP: 5,\n TAG: 6,\n SIMPLE_FLOAT: 7\n}\n\nexports.TAG = {\n DATE_STRING: 0,\n DATE_EPOCH: 1,\n POS_BIGINT: 2,\n NEG_BIGINT: 3,\n DECIMAL_FRAC: 4,\n BIGFLOAT: 5,\n BASE64URL_EXPECTED: 21,\n BASE64_EXPECTED: 22,\n BASE16_EXPECTED: 23,\n CBOR: 24,\n URI: 32,\n BASE64URL: 33,\n BASE64: 34,\n REGEXP: 35,\n MIME: 36\n}\n\nexports.NUMBYTES = {\n ZERO: 0,\n ONE: 24,\n TWO: 25,\n FOUR: 26,\n EIGHT: 27,\n INDEFINITE: 31\n}\n\nexports.SIMPLE = {\n FALSE: 20,\n TRUE: 21,\n NULL: 22,\n UNDEFINED: 23\n}\n\nexports.SYMS = {\n NULL: Symbol('null'),\n UNDEFINED: Symbol('undef'),\n PARENT: Symbol('parent'),\n BREAK: Symbol('break'),\n STREAM: Symbol('stream')\n}\n\nexports.SHIFT32 = Math.pow(2, 32)\nexports.SHIFT16 = Math.pow(2, 16)\n\nexports.MAX_SAFE_HIGH = 0x1fffff\nexports.NEG_ONE = new Bignumber(-1)\nexports.TEN = new Bignumber(10)\nexports.TWO = new Bignumber(2)\n\nexports.PARENT = {\n ARRAY: 0,\n OBJECT: 1,\n MAP: 2,\n TAG: 3,\n BYTE_STRING: 4,\n UTF8_STRING: 5\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar varint$1 = require('../vendor/varint.js');\n\nconst decode = data => {\n const code = varint$1.decode(data);\n return [\n code,\n varint$1.decode.bytes\n ];\n};\nconst encodeTo = (int, target, offset = 0) => {\n varint$1.encode(int, target, offset);\n return target;\n};\nconst encodingLength = int => {\n return varint$1.encodingLength(int);\n};\n\nexports.decode = decode;\nexports.encodeTo = encodeTo;\nexports.encodingLength = encodingLength;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base58btc = base.baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nconst base58flickr = base.baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});\n\nexports.base58btc = base58btc;\nexports.base58flickr = base58flickr;\n","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar global = getGlobal();\n\nmodule.exports = exports = global.fetch;\n\n// Needed for TypeScript and Webpack.\nif (global.fetch) {\n\texports.default = global.fetch.bind(global);\n}\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;","'use strict'\n\n/**\n * Returns the last item of an (async) iterable, unless empty, in which case\n * return `undefined`.\n *\n * @template T\n * @param {AsyncIterable|Iterable} source\n */\nconst last = async (source) => {\n let res\n\n for await (const entry of source) {\n res = entry\n }\n\n return res\n}\n\nmodule.exports = last\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst decodePin = ({\n Name: name,\n Status: status,\n Cid: cid$1\n}) => {\n return {\n cid: cid.CID.parse(cid$1),\n name,\n status\n };\n};\nconst encodeService = service => {\n if (typeof service === 'string' && service !== '') {\n return service;\n } else {\n throw new TypeError('service name must be passed');\n }\n};\nconst encodeCID = cid$1 => {\n if (cid.CID.asCID(cid$1)) {\n return cid$1.toString();\n } else {\n throw new TypeError(`CID instance expected instead of ${ typeof cid$1 }`);\n }\n};\nconst encodeQuery = ({service, cid, name, status, all}) => {\n const query = toUrlSearchParams.toUrlSearchParams({\n service: encodeService(service),\n name,\n force: all ? true : undefined\n });\n if (cid) {\n for (const value of cid) {\n query.append('cid', encodeCID(value));\n }\n }\n if (status) {\n for (const value of status) {\n query.append('status', value);\n }\n }\n return query;\n};\nconst encodeAddParams = ({cid, service, background, name, origins}) => {\n const params = toUrlSearchParams.toUrlSearchParams({\n arg: encodeCID(cid),\n service: encodeService(service),\n name,\n background: background ? true : undefined\n });\n if (origins) {\n for (const origin of origins) {\n params.append('origin', origin.toString());\n }\n }\n return params;\n};\n\nexports.decodePin = decodePin;\nexports.encodeAddParams = encodeAddParams;\nexports.encodeCID = encodeCID;\nexports.encodeQuery = encodeQuery;\nexports.encodeService = encodeService;\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst ar_1 = require(\"./ar\");\r\nconst api_1 = require(\"./lib/api\");\r\nconst network_1 = require(\"./network\");\r\nconst transactions_1 = require(\"./transactions\");\r\nconst wallets_1 = require(\"./wallets\");\r\nconst transaction_1 = require(\"./lib/transaction\");\r\nconst ArweaveUtils = require(\"./lib/utils\");\r\nconst silo_1 = require(\"./silo\");\r\nconst chunks_1 = require(\"./chunks\");\r\nconst blocks_1 = require(\"./blocks\");\r\nclass Arweave {\r\n constructor(apiConfig) {\r\n this.api = new api_1.default(apiConfig);\r\n this.wallets = new wallets_1.default(this.api, Arweave.crypto);\r\n this.chunks = new chunks_1.default(this.api);\r\n this.transactions = new transactions_1.default(this.api, Arweave.crypto, this.chunks);\r\n this.silo = new silo_1.default(this.api, this.crypto, this.transactions);\r\n this.network = new network_1.default(this.api);\r\n this.blocks = new blocks_1.default(this.api, this.network);\r\n this.ar = new ar_1.default();\r\n }\r\n /** @deprecated */\r\n get crypto() {\r\n return Arweave.crypto;\r\n }\r\n /** @deprecated */\r\n get utils() {\r\n return Arweave.utils;\r\n }\r\n getConfig() {\r\n return {\r\n api: this.api.getConfig(),\r\n crypto: null,\r\n };\r\n }\r\n async createTransaction(attributes, jwk) {\r\n const transaction = {};\r\n Object.assign(transaction, attributes);\r\n if (!attributes.data && !(attributes.target && attributes.quantity)) {\r\n throw new Error(`A new Arweave transaction must have a 'data' value, or 'target' and 'quantity' values.`);\r\n }\r\n if (attributes.owner == undefined) {\r\n if (jwk && jwk !== \"use_wallet\") {\r\n transaction.owner = jwk.n;\r\n }\r\n }\r\n if (attributes.last_tx == undefined) {\r\n transaction.last_tx = await this.transactions.getTransactionAnchor();\r\n }\r\n if (typeof attributes.data === \"string\") {\r\n attributes.data = ArweaveUtils.stringToBuffer(attributes.data);\r\n }\r\n if (attributes.data instanceof ArrayBuffer) {\r\n attributes.data = new Uint8Array(attributes.data);\r\n }\r\n if (attributes.data && !(attributes.data instanceof Uint8Array)) {\r\n throw new Error(\"Expected data to be a string, Uint8Array or ArrayBuffer\");\r\n }\r\n if (attributes.reward == undefined) {\r\n const length = attributes.data ? attributes.data.byteLength : 0;\r\n transaction.reward = await this.transactions.getPrice(length, transaction.target);\r\n }\r\n // here we should call prepare chunk\r\n transaction.data_root = \"\";\r\n transaction.data_size = attributes.data\r\n ? attributes.data.byteLength.toString()\r\n : \"0\";\r\n transaction.data = attributes.data || new Uint8Array(0);\r\n const createdTransaction = new transaction_1.default(transaction);\r\n await createdTransaction.getSignatureData();\r\n return createdTransaction;\r\n }\r\n async createSiloTransaction(attributes, jwk, siloUri) {\r\n const transaction = {};\r\n Object.assign(transaction, attributes);\r\n if (!attributes.data) {\r\n throw new Error(`Silo transactions must have a 'data' value`);\r\n }\r\n if (!siloUri) {\r\n throw new Error(`No Silo URI specified.`);\r\n }\r\n if (attributes.target || attributes.quantity) {\r\n throw new Error(`Silo transactions can only be used for storing data, sending AR to other wallets isn't supported.`);\r\n }\r\n if (attributes.owner == undefined) {\r\n if (!jwk || !jwk.n) {\r\n throw new Error(`A new Arweave transaction must either have an 'owner' attribute, or you must provide the jwk parameter.`);\r\n }\r\n transaction.owner = jwk.n;\r\n }\r\n if (attributes.last_tx == undefined) {\r\n transaction.last_tx = await this.transactions.getTransactionAnchor();\r\n }\r\n const siloResource = await this.silo.parseUri(siloUri);\r\n if (typeof attributes.data == \"string\") {\r\n const encrypted = await this.crypto.encrypt(ArweaveUtils.stringToBuffer(attributes.data), siloResource.getEncryptionKey());\r\n transaction.reward = await this.transactions.getPrice(encrypted.byteLength);\r\n transaction.data = ArweaveUtils.bufferTob64Url(encrypted);\r\n }\r\n if (attributes.data instanceof Uint8Array) {\r\n const encrypted = await this.crypto.encrypt(attributes.data, siloResource.getEncryptionKey());\r\n transaction.reward = await this.transactions.getPrice(encrypted.byteLength);\r\n transaction.data = ArweaveUtils.bufferTob64Url(encrypted);\r\n }\r\n const siloTransaction = new transaction_1.default(transaction);\r\n siloTransaction.addTag(\"Silo-Name\", siloResource.getAccessKey());\r\n siloTransaction.addTag(\"Silo-Version\", `0.1.0`);\r\n return siloTransaction;\r\n }\r\n arql(query) {\r\n return this.api\r\n .post(\"/arql\", query)\r\n .then((response) => response.data || []);\r\n }\r\n}\r\nexports.default = Arweave;\r\nArweave.utils = ArweaveUtils;\r\n//# sourceMappingURL=common.js.map","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getError = void 0;\r\nclass ArweaveError extends Error {\r\n constructor(type, optional = {}) {\r\n if (optional.message) {\r\n super(optional.message);\r\n }\r\n else {\r\n super();\r\n }\r\n this.type = type;\r\n this.response = optional.response;\r\n }\r\n getType() {\r\n return this.type;\r\n }\r\n}\r\nexports.default = ArweaveError;\r\n// Safely get error string\r\n// from an axios response, falling back to\r\n// resp.data, statusText or 'unknown'.\r\n// Note: a wrongly set content-type can\r\n// cause what is a json response to be interepted\r\n// as a string or Buffer, so we handle that too.\r\nfunction getError(resp) {\r\n let data = resp.data;\r\n if (typeof resp.data === \"string\") {\r\n try {\r\n data = JSON.parse(resp.data);\r\n }\r\n catch (e) { }\r\n }\r\n if (resp.data instanceof ArrayBuffer || resp.data instanceof Uint8Array) {\r\n try {\r\n data = JSON.parse(data.toString());\r\n }\r\n catch (e) { }\r\n }\r\n return data ? data.error || data : resp.statusText || \"unknown\";\r\n}\r\nexports.getError = getError;\r\n//# sourceMappingURL=error.js.map","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleFullscreenChange = handleFullscreenChange;\nexports.activate = activate;\nexports.userActivate = userActivate;\nexports.play = play;\nexports.pause = pause;\nexports.togglePlay = togglePlay;\nexports.seek = seek;\nexports.forward = forward;\nexports.replay = replay;\nexports.changeRate = changeRate;\nexports.changeVolume = changeVolume;\nexports.mute = mute;\nexports.toggleFullscreen = toggleFullscreen;\nexports.USER_ACTIVATE = exports.PLAYER_ACTIVATE = exports.FULLSCREEN_CHANGE = exports.OPERATE = void 0;\n\nvar _fullscreen = _interopRequireDefault(require(\"../utils/fullscreen\"));\n\nvar OPERATE = 'video-react/OPERATE';\nexports.OPERATE = OPERATE;\nvar FULLSCREEN_CHANGE = 'video-react/FULLSCREEN_CHANGE';\nexports.FULLSCREEN_CHANGE = FULLSCREEN_CHANGE;\nvar PLAYER_ACTIVATE = 'video-react/PLAYER_ACTIVATE';\nexports.PLAYER_ACTIVATE = PLAYER_ACTIVATE;\nvar USER_ACTIVATE = 'video-react/USER_ACTIVATE';\nexports.USER_ACTIVATE = USER_ACTIVATE;\n\nfunction handleFullscreenChange(isFullscreen) {\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: isFullscreen\n };\n}\n\nfunction activate(activity) {\n return {\n type: PLAYER_ACTIVATE,\n activity: activity\n };\n}\n\nfunction userActivate(activity) {\n return {\n type: USER_ACTIVATE,\n activity: activity\n };\n}\n\nfunction play() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'play',\n source: ''\n };\n this.video.play();\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction pause() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'pause',\n source: ''\n };\n this.video.pause();\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction togglePlay() {\n var operation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n action: 'toggle-play',\n source: ''\n };\n this.video.togglePlay();\n return {\n type: OPERATE,\n operation: operation\n };\n} // seek video by time\n\n\nfunction seek(time) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'seek',\n source: ''\n };\n this.video.seek(time);\n return {\n type: OPERATE,\n operation: operation\n };\n} // jump forward x seconds\n\n\nfunction forward(seconds) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: \"forward-\".concat(seconds),\n source: ''\n };\n this.video.forward(seconds);\n return {\n type: OPERATE,\n operation: operation\n };\n} // jump back x seconds\n\n\nfunction replay(seconds) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: \"replay-\".concat(seconds),\n source: ''\n };\n this.video.replay(seconds);\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction changeRate(rate) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'change-rate',\n source: ''\n };\n this.video.playbackRate = rate;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction changeVolume(volume) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: 'change-volume',\n source: ''\n };\n var v = volume;\n\n if (volume < 0) {\n v = 0;\n }\n\n if (volume > 1) {\n v = 1;\n }\n\n this.video.volume = v;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction mute(muted) {\n var operation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n action: muted ? 'muted' : 'unmuted',\n source: ''\n };\n this.video.muted = muted;\n return {\n type: OPERATE,\n operation: operation\n };\n}\n\nfunction toggleFullscreen(player) {\n if (_fullscreen[\"default\"].enabled) {\n if (_fullscreen[\"default\"].isFullscreen) {\n _fullscreen[\"default\"].exit();\n } else {\n _fullscreen[\"default\"].request(this.rootElement);\n }\n\n return {\n type: OPERATE,\n operation: {\n action: 'toggle-fullscreen',\n source: ''\n }\n };\n }\n\n return {\n type: FULLSCREEN_CHANGE,\n isFullscreen: !player.isFullscreen\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findElPosition = findElPosition;\nexports.getPointerPosition = getPointerPosition;\nexports.blurNode = blurNode;\nexports.focusNode = focusNode;\nexports.hasClass = hasClass;\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @function findElPosition\n * @param {ReactNodeRef} el React Node ref from which to get offset\n * @return {Object}\n */\nfunction findElPosition(el) {\n var box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n var _document = document,\n body = _document.body,\n docEl = _document.documentElement;\n var clientLeft = docEl.clientLeft || body.clientLeft || 0;\n var scrollLeft = window.pageXOffset || body.scrollLeft;\n var left = box.left + scrollLeft - clientLeft;\n var clientTop = docEl.clientTop || body.clientTop || 0;\n var scrollTop = window.pageYOffset || body.scrollTop;\n var top = box.top + scrollTop - clientTop; // Android sometimes returns slightly off decimal values, so need to round\n\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n/**\n * Get pointer position in a React Node ref\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @function getPointerPosition\n * @param {ReactNodeRef} el React Node ref on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\n */\n\n\nfunction getPointerPosition(el, event) {\n var position = {};\n var box = findElPosition(el);\n var boxW = el.offsetWidth;\n var boxH = el.offsetHeight;\n var boxY = box.top;\n var boxX = box.left;\n var evtPageY = event.pageY;\n var evtPageX = event.pageX;\n\n if (event.changedTouches) {\n evtPageX = event.changedTouches[0].pageX;\n evtPageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - evtPageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (evtPageX - boxX) / boxW));\n return position;\n} // blur an element\n\n\nfunction blurNode(reactNode) {\n if (reactNode && reactNode.blur) {\n reactNode.blur();\n }\n} // focus an element\n\n\nfunction focusNode(reactNode) {\n if (reactNode && reactNode.focus) {\n reactNode.focus();\n }\n} // check if an element has a class name\n\n\nfunction hasClass(elm, cls) {\n var classes = elm.className.split(' ');\n\n for (var i = 0; i < classes.length; i++) {\n if (classes[i].toLowerCase() === cls.toLowerCase()) {\n return true;\n }\n }\n\n return false;\n}","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Buffer } from 'buffer/';\nimport { Principal } from '@dfinity/principal';\nimport { requestIdOf } from './request_id';\nimport { blobFromBuffer } from '@dfinity/candid';\nconst domainSeparator = Buffer.from(new TextEncoder().encode('\\x0Aic-request'));\n/**\n * An Identity that can sign blobs.\n */\nexport class SignIdentity {\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n getPrincipal() {\n if (!this._principal) {\n this._principal = Principal.selfAuthenticating(this.getPublicKey().toDer());\n }\n return this._principal;\n }\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n * @param request - internet computer request to transform\n */\n async transformRequest(request) {\n const { body } = request, fields = __rest(request, [\"body\"]);\n const requestId = await requestIdOf(body);\n return Object.assign(Object.assign({}, fields), { body: {\n content: body,\n sender_pubkey: this.getPublicKey().toDer(),\n sender_sig: await this.sign(blobFromBuffer(Buffer.concat([domainSeparator, requestId]))),\n } });\n }\n}\nexport class AnonymousIdentity {\n getPrincipal() {\n return Principal.anonymous();\n }\n async transformRequest(request) {\n return Object.assign(Object.assign({}, request), { body: { content: request.body } });\n }\n}\n/**\n * Create an IdentityDescriptor from a @dfinity/authentication Identity\n * @param identity - identity describe in returned descriptor\n */\nexport function createIdentityDescriptor(identity) {\n const identityIndicator = 'getPublicKey' in identity\n ? { type: 'PublicKeyIdentity', publicKey: identity.getPublicKey().toDer().toString('hex') }\n : { type: 'AnonymousIdentity' };\n return identityIndicator;\n}\n/**\n * Type Guard for whether the unknown value is an IdentityDescriptor or not.\n * @param value - value to type guard\n */\nexport function isIdentityDescriptor(value) {\n var _a, _b;\n switch ((_a = value) === null || _a === void 0 ? void 0 : _a.type) {\n case 'AnonymousIdentity':\n return true;\n case 'PublicKeyIdentity':\n if (typeof ((_b = value) === null || _b === void 0 ? void 0 : _b.publicKey) !== 'string') {\n return false;\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=auth.js.map","// tslint:enable:camel-case\n// The types of values allowed in the `request_type` field for submit requests.\nexport var SubmitRequestType;\n(function (SubmitRequestType) {\n SubmitRequestType[\"Call\"] = \"call\";\n})(SubmitRequestType || (SubmitRequestType = {}));\n//# sourceMappingURL=types.js.map","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import { StackFrame } from '@sentry/types';\n\nconst STACKTRACE_LIMIT = 50;\n\nexport type StackParser = (stack: string, skipFirst?: number) => StackFrame[];\nexport type StackLineParserFn = (line: string) => StackFrame | undefined;\nexport type StackLineParser = [number, StackLineParserFn];\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirst: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n\n for (const line of stack.split('\\n').slice(skipFirst)) {\n for (const parser of sortedParsers) {\n const frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: StackFrame[]): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n const firstFrameFunction = localStack[0].function || '';\n const lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n var self = this;\n var elapsed = Date.now() - lastExec;\n var args = arguments;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, args);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { throttle, debounce };\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst common_1 = require(\"./common\");\r\nconst webcrypto_driver_1 = require(\"./lib/crypto/webcrypto-driver\");\r\ncommon_1.default.crypto = new webcrypto_driver_1.default();\r\ncommon_1.default.init = function (apiConfig = {}) {\r\n function getDefaultConfig() {\r\n const defaults = {\r\n host: \"arweave.net\",\r\n port: 443,\r\n protocol: \"https\",\r\n };\r\n if (!window ||\r\n !window.location ||\r\n !window.location.protocol ||\r\n !window.location.hostname) {\r\n return defaults;\r\n }\r\n // window.location.protocol has a trailing colon (http:, https:, file: etc)\r\n const currentProtocol = window.location.protocol.replace(\":\", \"\");\r\n const currentHost = window.location.hostname;\r\n const currentPort = window.location.port\r\n ? parseInt(window.location.port)\r\n : currentProtocol == \"https\"\r\n ? 443\r\n : 80;\r\n const isLocal = [\"localhost\", \"127.0.0.1\"].includes(currentHost) ||\r\n currentProtocol == \"file\";\r\n // If we're running in what looks like a local dev environment\r\n // then default to using arweave.net\r\n if (isLocal) {\r\n return defaults;\r\n }\r\n return {\r\n host: currentHost,\r\n port: currentPort,\r\n protocol: currentProtocol,\r\n };\r\n }\r\n const defaultConfig = getDefaultConfig();\r\n const protocol = apiConfig.protocol || defaultConfig.protocol;\r\n const host = apiConfig.host || defaultConfig.host;\r\n const port = apiConfig.port || defaultConfig.port;\r\n return new common_1.default(Object.assign(Object.assign({}, apiConfig), { host,\r\n protocol,\r\n port }));\r\n};\r\nwindow.Arweave = common_1.default;\r\n__exportStar(require(\"./common\"), exports);\r\nexports.default = common_1.default;\r\n//# sourceMappingURL=index.js.map","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export var COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\nexport function toFileWithPath(file, path) {\n var f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n var webkitRelativePath = file.webkitRelativePath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n return f;\n}\nfunction withMimeType(file) {\n var name = file.name;\n var hasExtension = name && name.lastIndexOf('.') !== -1;\n if (hasExtension && !file.type) {\n var ext = name.split('.')\n .pop().toLowerCase();\n var type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n return file;\n}\n//# sourceMappingURL=file.js.map","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { toFileWithPath } from './file';\nvar FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store',\n 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isObject(evt) && isDataTransfer(evt)) {\n return [2 /*return*/, getDataTransferFiles(evt.dataTransfer, evt.type)];\n }\n else if (isChangeEvt(evt)) {\n return [2 /*return*/, getInputFiles(evt)];\n }\n else if (Array.isArray(evt) && evt.every(function (item) { return 'getFile' in item && typeof item.getFile === 'function'; })) {\n return [2 /*return*/, getFsHandleFiles(evt)];\n }\n return [2 /*return*/, []];\n });\n });\n}\nfunction isDataTransfer(value) {\n return isObject(value.dataTransfer);\n}\nfunction isChangeEvt(value) {\n return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n return fromList(evt.target.files).map(function (file) { return toFileWithPath(file); });\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n return __awaiter(this, void 0, void 0, function () {\n var files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(handles.map(function (h) { return h.getFile(); }))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, files.map(function (file) { return toFileWithPath(file); })];\n }\n });\n });\n}\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function () {\n var items, files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (dt === null) {\n return [2 /*return*/, []];\n }\n if (!dt.items) return [3 /*break*/, 2];\n items = fromList(dt.items)\n .filter(function (item) { return item.kind === 'file'; });\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return [2 /*return*/, items];\n }\n return [4 /*yield*/, Promise.all(items.map(toFilePromises))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, noIgnoredFiles(flatten(files))];\n case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files)\n .map(function (file) { return toFileWithPath(file); }))];\n }\n });\n });\n}\nfunction noIgnoredFiles(files) {\n return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; });\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n if (items === null) {\n return [];\n }\n var files = [];\n // tslint:disable: prefer-for-of\n for (var i = 0; i < items.length; i++) {\n var file = items[i];\n files.push(file);\n }\n return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n var entry = item.webkitGetAsEntry();\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n return fromDataTransferItem(item);\n}\nfunction flatten(items) {\n return items.reduce(function (acc, files) { return __spread(acc, (Array.isArray(files) ? flatten(files) : [files])); }, []);\n}\nfunction fromDataTransferItem(item) {\n var file = item.getAsFile();\n if (!file) {\n return Promise.reject(item + \" is not a File\");\n }\n var fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];\n });\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n var reader = entry.createReader();\n return new Promise(function (resolve, reject) {\n var entries = [];\n function readEntries() {\n var _this = this;\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(function (batch) { return __awaiter(_this, void 0, void 0, function () {\n var files, err_1, items;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!batch.length) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.all(entries)];\n case 2:\n files = _a.sent();\n resolve(files);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n reject(err_1);\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n // Continue reading\n readEntries();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, function (err) {\n reject(err);\n });\n }\n readEntries();\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n entry.file(function (file) {\n var fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, function (err) {\n reject(err);\n });\n })];\n });\n });\n}\n//# sourceMappingURL=file-selector.js.map","function 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; }\n\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; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files';\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return 'showOpenFilePicker' in window;\n}\n/**\n * filePickerOptionsTypes returns the {types} option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n * based on the accept attr (see https://github.com/react-dropzone/attr-accept)\n * E.g: converts ['image/*', 'text/*'] to {'image/*': [], 'text/*': []}\n * @param {string|string[]} accept\n */\n\nexport function filePickerOptionsTypes(accept) {\n accept = typeof accept === 'string' ? accept.split(',') : accept;\n return [{\n description: 'everything',\n // TODO: Need to handle filtering more elegantly than this!\n accept: Array.isArray(accept) // Accept just MIME types as per spec\n // NOTE: accept can be https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n ? accept.filter(function (item) {\n return item === 'audio/*' || item === 'video/*' || item === 'image/*' || item === 'text/*' || /\\w+\\/[-+.\\w]+/g.test(item);\n }).reduce(function (a, b) {\n return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, b, []));\n }, {}) : {}\n }];\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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; }\n\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; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, filePickerOptionsTypes, canUseFileSystemAccessAPI, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function\n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$options.onFileDialogOpen,\n useFsAccessApi = _defaultProps$options.useFsAccessApi,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === 'function' ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === 'function' ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n return function () {};\n }\n\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, useFsAccessApi]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, accept, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [getFilesFromEvent, setFiles, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: filePickerOptionsTypes(accept)\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n return setFiles(files, null);\n }).catch(function (e) {\n return onFileDialogCancelCb(e);\n }).finally(function () {\n return dispatch({\n type: 'closeDialog'\n });\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, accept, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === 'string' && role !== '' ? role : 'button'\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from './utils';","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { captureException, getReportDialogEndpoint, withScope } from '@sentry/core';\nimport { DsnLike, Event as SentryEvent, Mechanism, Scope, WrappedFunction } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n addNonEnumerableProperty,\n getGlobalObject,\n getOriginalFunction,\n isDebugBuild,\n logger,\n markFunctionWrapped,\n} from '@sentry/utils';\n\nconst global = getGlobalObject();\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(\n fn: WrappedFunction,\n options: {\n mechanism?: Mechanism;\n } = {},\n before?: WrappedFunction,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n const wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sentryWrapped: WrappedFunction = function (this: any): void {\n const args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n const wrappedArguments = args.map((arg: any) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope: Scope) => {\n scope.addEventProcessor((event: SentryEvent) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (const property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} // eslint-disable-line no-empty\n\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') as PropertyDescriptor;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get(): string {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\nexport interface ReportDialogOptions {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n eventId?: string;\n dsn?: DsnLike;\n user?: {\n email?: string;\n name?: string;\n };\n lang?: string;\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n labelName?: string;\n labelEmail?: string;\n labelComments?: string;\n labelClose?: string;\n labelSubmit?: string;\n errorGeneric?: string;\n errorFormEntry?: string;\n successMessage?: string;\n /** Callback after reportDialog showed up */\n onLoad?(): void;\n}\n\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options: ReportDialogOptions = {}): void {\n if (!global.document) {\n return;\n }\n\n if (!options.eventId) {\n if (isDebugBuild()) {\n logger.error('Missing eventId option in showReportDialog call');\n }\n return;\n }\n\n if (!options.dsn) {\n if (isDebugBuild()) {\n logger.error('Missing dsn option in showReportDialog call');\n }\n return;\n }\n\n const script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(options.dsn, options);\n\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n\n const injectionPoint = global.document.head || global.document.body;\n\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n }\n}\n","import React from 'react'\nimport normalizeWheel from 'normalize-wheel'\nimport { Area, MediaSize, Point, Size, VideoSrc } from './types'\nimport {\n getCropSize,\n restrictPosition,\n getDistanceBetweenPoints,\n getRotationBetweenPoints,\n computeCroppedArea,\n getCenter,\n getInitialCropFromCroppedAreaPixels,\n classNames,\n} from './helpers'\nimport cssStyles from './styles.css'\n\nexport type CropperProps = {\n image?: string\n video?: string | VideoSrc[]\n transform?: string\n crop: Point\n zoom: number\n rotation: number\n aspect: number\n minZoom: number\n maxZoom: number\n cropShape: 'rect' | 'round'\n cropSize?: Size\n objectFit?: 'contain' | 'horizontal-cover' | 'vertical-cover'\n showGrid?: boolean\n zoomSpeed: number\n zoomWithScroll?: boolean\n onCropChange: (location: Point) => void\n onZoomChange?: (zoom: number) => void\n onRotationChange?: (rotation: number) => void\n onCropComplete?: (croppedArea: Area, croppedAreaPixels: Area) => void\n onCropAreaChange?: (croppedArea: Area, croppedAreaPixels: Area) => void\n onCropSizeChange?: (cropSize: Size) => void\n onInteractionStart?: () => void\n onInteractionEnd?: () => void\n onMediaLoaded?: (mediaSize: MediaSize) => void\n style: {\n containerStyle?: React.CSSProperties\n mediaStyle?: React.CSSProperties\n cropAreaStyle?: React.CSSProperties\n }\n classes: {\n containerClassName?: string\n mediaClassName?: string\n cropAreaClassName?: string\n }\n restrictPosition: boolean\n initialCroppedAreaPixels?: Area\n mediaProps: React.ImgHTMLAttributes | React.VideoHTMLAttributes\n disableAutomaticStylesInjection?: boolean\n}\n\ntype State = {\n cropSize: Size | null\n hasWheelJustStarted: boolean\n}\n\nconst MIN_ZOOM = 1\nconst MAX_ZOOM = 3\n\nclass Cropper extends React.Component {\n static defaultProps = {\n zoom: 1,\n rotation: 0,\n aspect: 4 / 3,\n maxZoom: MAX_ZOOM,\n minZoom: MIN_ZOOM,\n cropShape: 'rect',\n objectFit: 'contain',\n showGrid: true,\n style: {},\n classes: {},\n mediaProps: {},\n zoomSpeed: 1,\n restrictPosition: true,\n zoomWithScroll: true,\n }\n\n imageRef: HTMLImageElement | null = null\n videoRef: HTMLVideoElement | null = null\n containerRef: HTMLDivElement | null = null\n styleRef: HTMLStyleElement | null = null\n containerRect: DOMRect | null = null\n mediaSize: MediaSize = { width: 0, height: 0, naturalWidth: 0, naturalHeight: 0 }\n dragStartPosition: Point = { x: 0, y: 0 }\n dragStartCrop: Point = { x: 0, y: 0 }\n lastPinchDistance = 0\n lastPinchRotation = 0\n rafDragTimeout: number | null = null\n rafPinchTimeout: number | null = null\n wheelTimer: number | null = null\n\n state: State = {\n cropSize: null,\n hasWheelJustStarted: false,\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.computeSizes)\n if (this.containerRef) {\n this.props.zoomWithScroll &&\n this.containerRef.addEventListener('wheel', this.onWheel, { passive: false })\n this.containerRef.addEventListener('gesturestart', this.preventZoomSafari)\n this.containerRef.addEventListener('gesturechange', this.preventZoomSafari)\n }\n\n if (!this.props.disableAutomaticStylesInjection) {\n this.styleRef = document.createElement('style')\n this.styleRef.setAttribute('type', 'text/css')\n this.styleRef.innerHTML = cssStyles\n document.head.appendChild(this.styleRef)\n }\n\n // when rendered via SSR, the image can already be loaded and its onLoad callback will never be called\n if (this.imageRef && this.imageRef.complete) {\n this.onMediaLoad()\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.computeSizes)\n if (this.containerRef) {\n this.containerRef.removeEventListener('gesturestart', this.preventZoomSafari)\n this.containerRef.removeEventListener('gesturechange', this.preventZoomSafari)\n }\n\n if (this.styleRef) {\n this.styleRef.parentNode?.removeChild(this.styleRef)\n }\n\n this.cleanEvents()\n this.props.zoomWithScroll && this.clearScrollEvent()\n }\n\n componentDidUpdate(prevProps: CropperProps) {\n if (prevProps.rotation !== this.props.rotation) {\n this.computeSizes()\n this.recomputeCropPosition()\n } else if (prevProps.aspect !== this.props.aspect) {\n this.computeSizes()\n } else if (prevProps.zoom !== this.props.zoom) {\n this.recomputeCropPosition()\n } else if (\n prevProps.cropSize?.height !== this.props.cropSize?.height ||\n prevProps.cropSize?.width !== this.props.cropSize?.width\n ) {\n this.computeSizes()\n } else if (\n prevProps.crop?.x !== this.props.crop?.x ||\n prevProps.crop?.y !== this.props.crop?.y\n ) {\n this.emitCropAreaChange()\n }\n if (prevProps.zoomWithScroll !== this.props.zoomWithScroll && this.containerRef) {\n this.props.zoomWithScroll\n ? this.containerRef.addEventListener('wheel', this.onWheel, { passive: false })\n : this.clearScrollEvent()\n }\n if (prevProps.video !== this.props.video) {\n this.videoRef?.load()\n }\n }\n\n // this is to prevent Safari on iOS >= 10 to zoom the page\n preventZoomSafari = (e: Event) => e.preventDefault()\n\n cleanEvents = () => {\n document.removeEventListener('mousemove', this.onMouseMove)\n document.removeEventListener('mouseup', this.onDragStopped)\n document.removeEventListener('touchmove', this.onTouchMove)\n document.removeEventListener('touchend', this.onDragStopped)\n }\n\n clearScrollEvent = () => {\n if (this.containerRef) this.containerRef.removeEventListener('wheel', this.onWheel)\n if (this.wheelTimer) {\n clearTimeout(this.wheelTimer)\n }\n }\n\n onMediaLoad = () => {\n this.computeSizes()\n this.emitCropData()\n this.setInitialCrop()\n\n if (this.props.onMediaLoaded) {\n this.props.onMediaLoaded(this.mediaSize)\n }\n }\n\n setInitialCrop = () => {\n const { initialCroppedAreaPixels, cropSize } = this.props\n\n if (!initialCroppedAreaPixels) {\n return\n }\n\n const { crop, zoom } = getInitialCropFromCroppedAreaPixels(\n initialCroppedAreaPixels,\n this.mediaSize,\n cropSize\n )\n this.props.onCropChange(crop)\n this.props.onZoomChange && this.props.onZoomChange(zoom)\n }\n\n getAspect() {\n const { cropSize, aspect } = this.props\n if (cropSize) {\n return cropSize.width / cropSize.height\n }\n return aspect\n }\n\n computeSizes = () => {\n const mediaRef = this.imageRef || this.videoRef\n if (mediaRef && this.containerRef) {\n this.containerRect = this.containerRef.getBoundingClientRect()\n\n this.mediaSize = {\n width: mediaRef.offsetWidth,\n height: mediaRef.offsetHeight,\n naturalWidth: this.imageRef?.naturalWidth || this.videoRef?.videoWidth || 0,\n naturalHeight: this.imageRef?.naturalHeight || this.videoRef?.videoHeight || 0,\n }\n const cropSize = this.props.cropSize\n ? this.props.cropSize\n : getCropSize(\n mediaRef.offsetWidth,\n mediaRef.offsetHeight,\n this.containerRect.width,\n this.containerRect.height,\n this.props.aspect,\n this.props.rotation\n )\n\n if (\n this.state.cropSize?.height !== cropSize.height ||\n this.state.cropSize?.width !== cropSize.width\n ) {\n this.props.onCropSizeChange && this.props.onCropSizeChange(cropSize)\n }\n this.setState({ cropSize }, this.recomputeCropPosition)\n }\n }\n\n static getMousePoint = (e: MouseEvent | React.MouseEvent) => ({\n x: Number(e.clientX),\n y: Number(e.clientY),\n })\n\n static getTouchPoint = (touch: Touch | React.Touch) => ({\n x: Number(touch.clientX),\n y: Number(touch.clientY),\n })\n\n onMouseDown = (e: React.MouseEvent) => {\n e.preventDefault()\n document.addEventListener('mousemove', this.onMouseMove)\n document.addEventListener('mouseup', this.onDragStopped)\n this.onDragStart(Cropper.getMousePoint(e))\n }\n\n onMouseMove = (e: MouseEvent) => this.onDrag(Cropper.getMousePoint(e))\n\n onTouchStart = (e: React.TouchEvent) => {\n document.addEventListener('touchmove', this.onTouchMove, { passive: false }) // iOS 11 now defaults to passive: true\n document.addEventListener('touchend', this.onDragStopped)\n if (e.touches.length === 2) {\n this.onPinchStart(e)\n } else if (e.touches.length === 1) {\n this.onDragStart(Cropper.getTouchPoint(e.touches[0]))\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n // Prevent whole page from scrolling on iOS.\n e.preventDefault()\n if (e.touches.length === 2) {\n this.onPinchMove(e)\n } else if (e.touches.length === 1) {\n this.onDrag(Cropper.getTouchPoint(e.touches[0]))\n }\n }\n\n onDragStart = ({ x, y }: Point) => {\n this.dragStartPosition = { x, y }\n this.dragStartCrop = { ...this.props.crop }\n this.props.onInteractionStart?.()\n }\n\n onDrag = ({ x, y }: Point) => {\n if (this.rafDragTimeout) window.cancelAnimationFrame(this.rafDragTimeout)\n\n this.rafDragTimeout = window.requestAnimationFrame(() => {\n if (!this.state.cropSize) return\n if (x === undefined || y === undefined) return\n const offsetX = x - this.dragStartPosition.x\n const offsetY = y - this.dragStartPosition.y\n const requestedPosition = {\n x: this.dragStartCrop.x + offsetX,\n y: this.dragStartCrop.y + offsetY,\n }\n\n const newPosition = this.props.restrictPosition\n ? restrictPosition(\n requestedPosition,\n this.mediaSize,\n this.state.cropSize,\n this.props.zoom,\n this.props.rotation\n )\n : requestedPosition\n this.props.onCropChange(newPosition)\n })\n }\n\n onDragStopped = () => {\n this.cleanEvents()\n this.emitCropData()\n this.props.onInteractionEnd?.()\n }\n\n onPinchStart(e: React.TouchEvent) {\n const pointA = Cropper.getTouchPoint(e.touches[0])\n const pointB = Cropper.getTouchPoint(e.touches[1])\n this.lastPinchDistance = getDistanceBetweenPoints(pointA, pointB)\n this.lastPinchRotation = getRotationBetweenPoints(pointA, pointB)\n this.onDragStart(getCenter(pointA, pointB))\n }\n\n onPinchMove(e: TouchEvent) {\n const pointA = Cropper.getTouchPoint(e.touches[0])\n const pointB = Cropper.getTouchPoint(e.touches[1])\n const center = getCenter(pointA, pointB)\n this.onDrag(center)\n\n if (this.rafPinchTimeout) window.cancelAnimationFrame(this.rafPinchTimeout)\n this.rafPinchTimeout = window.requestAnimationFrame(() => {\n const distance = getDistanceBetweenPoints(pointA, pointB)\n const newZoom = this.props.zoom * (distance / this.lastPinchDistance)\n this.setNewZoom(newZoom, center)\n this.lastPinchDistance = distance\n\n const rotation = getRotationBetweenPoints(pointA, pointB)\n const newRotation = this.props.rotation + (rotation - this.lastPinchRotation)\n this.props.onRotationChange && this.props.onRotationChange(newRotation)\n this.lastPinchRotation = rotation\n })\n }\n\n onWheel = (e: WheelEvent) => {\n e.preventDefault()\n const point = Cropper.getMousePoint(e)\n const { pixelY } = normalizeWheel(e)\n const newZoom = this.props.zoom - (pixelY * this.props.zoomSpeed) / 200\n this.setNewZoom(newZoom, point)\n\n if (!this.state.hasWheelJustStarted) {\n this.setState({ hasWheelJustStarted: true }, () => this.props.onInteractionStart?.())\n }\n\n if (this.wheelTimer) {\n clearTimeout(this.wheelTimer)\n }\n this.wheelTimer = window.setTimeout(\n () => this.setState({ hasWheelJustStarted: false }, () => this.props.onInteractionEnd?.()),\n 250\n )\n }\n\n getPointOnContainer = ({ x, y }: Point) => {\n if (!this.containerRect) {\n throw new Error('The Cropper is not mounted')\n }\n return {\n x: this.containerRect.width / 2 - (x - this.containerRect.left),\n y: this.containerRect.height / 2 - (y - this.containerRect.top),\n }\n }\n\n getPointOnMedia = ({ x, y }: Point) => {\n const { crop, zoom } = this.props\n return {\n x: (x + crop.x) / zoom,\n y: (y + crop.y) / zoom,\n }\n }\n\n setNewZoom = (zoom: number, point: Point) => {\n if (!this.state.cropSize || !this.props.onZoomChange) return\n\n const zoomPoint = this.getPointOnContainer(point)\n const zoomTarget = this.getPointOnMedia(zoomPoint)\n const newZoom = Math.min(this.props.maxZoom, Math.max(zoom, this.props.minZoom))\n const requestedPosition = {\n x: zoomTarget.x * newZoom - zoomPoint.x,\n y: zoomTarget.y * newZoom - zoomPoint.y,\n }\n const newPosition = this.props.restrictPosition\n ? restrictPosition(\n requestedPosition,\n this.mediaSize,\n this.state.cropSize,\n newZoom,\n this.props.rotation\n )\n : requestedPosition\n\n this.props.onCropChange(newPosition)\n this.props.onZoomChange(newZoom)\n }\n\n getCropData = () => {\n if (!this.state.cropSize) {\n return null\n }\n\n // this is to ensure the crop is correctly restricted after a zoom back (https://github.com/ricardo-ch/react-easy-crop/issues/6)\n const restrictedPosition = this.props.restrictPosition\n ? restrictPosition(\n this.props.crop,\n this.mediaSize,\n this.state.cropSize,\n this.props.zoom,\n this.props.rotation\n )\n : this.props.crop\n return computeCroppedArea(\n restrictedPosition,\n this.mediaSize,\n this.state.cropSize,\n this.getAspect(),\n this.props.zoom,\n this.props.rotation,\n this.props.restrictPosition\n )\n }\n\n emitCropData = () => {\n const cropData = this.getCropData()\n if (!cropData) return\n\n const { croppedAreaPercentages, croppedAreaPixels } = cropData\n if (this.props.onCropComplete) {\n this.props.onCropComplete(croppedAreaPercentages, croppedAreaPixels)\n }\n\n if (this.props.onCropAreaChange) {\n this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels)\n }\n }\n\n emitCropAreaChange = () => {\n const cropData = this.getCropData()\n if (!cropData) return\n\n const { croppedAreaPercentages, croppedAreaPixels } = cropData\n if (this.props.onCropAreaChange) {\n this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels)\n }\n }\n\n recomputeCropPosition = () => {\n if (!this.state.cropSize) return\n\n const newPosition = this.props.restrictPosition\n ? restrictPosition(\n this.props.crop,\n this.mediaSize,\n this.state.cropSize,\n this.props.zoom,\n this.props.rotation\n )\n : this.props.crop\n this.props.onCropChange(newPosition)\n this.emitCropData()\n }\n\n render() {\n const {\n image,\n video,\n mediaProps,\n transform,\n crop: { x, y },\n rotation,\n zoom,\n cropShape,\n showGrid,\n style: { containerStyle, cropAreaStyle, mediaStyle },\n classes: { containerClassName, cropAreaClassName, mediaClassName },\n objectFit,\n } = this.props\n\n return (\n (this.containerRef = el)}\n data-testid=\"container\"\n style={containerStyle}\n className={classNames('reactEasyCrop_Container', containerClassName)}\n >\n {image ? (\n )}\n src={image}\n ref={(el: HTMLImageElement) => (this.imageRef = el)}\n style={{\n ...mediaStyle,\n transform:\n transform || `translate(${x}px, ${y}px) rotate(${rotation}deg) scale(${zoom})`,\n }}\n onLoad={this.onMediaLoad}\n />\n ) : (\n video && (\n (this.videoRef = el)}\n onLoadedMetadata={this.onMediaLoad}\n style={{\n ...mediaStyle,\n transform:\n transform || `translate(${x}px, ${y}px) rotate(${rotation}deg) scale(${zoom})`,\n }}\n controls={false}\n >\n {(Array.isArray(video) ? video : [{ src: video }]).map((item) => (\n \n ))}\n \n )\n )}\n {this.state.cropSize && (\n \n )}\n \n )\n }\n}\n\nexport default Cropper\n","/* eslint-disable max-lines */\nimport {\n Breadcrumb,\n CaptureContext,\n Context,\n Contexts,\n Event,\n EventHint,\n EventProcessor,\n Extra,\n Extras,\n Primitive,\n RequestSession,\n Scope as ScopeInterface,\n ScopeContext,\n Severity,\n Span,\n Transaction,\n User,\n} from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n\nimport { Session } from './session';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nconst MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nexport class Scope implements ScopeInterface {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean = false;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void> = [];\n\n /** Callback list that will be called after {@link applyToEvent}. */\n protected _eventProcessors: EventProcessor[] = [];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[] = [];\n\n /** User */\n protected _user: User = {};\n\n /** Tags */\n protected _tags: { [key: string]: Primitive } = {};\n\n /** Extra */\n protected _extra: Extras = {};\n\n /** Contexts */\n protected _contexts: Contexts = {};\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: Severity;\n\n /** Transaction Name */\n protected _transactionName?: string;\n\n /** Span */\n protected _span?: Span;\n\n /** Session */\n protected _session?: Session;\n\n /** Request Mode Session Status */\n protected _requestSession?: RequestSession;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata?: { [key: string]: unknown } = {};\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n public static clone(scope?: Scope): Scope {\n const newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setUser(user: User | null): this {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n public getRequestSession(): RequestSession | undefined {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n public setRequestSession(requestSession?: RequestSession): this {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTag(key: string, value: Primitive): this {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setLevel(level: Severity): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n public setTransaction(name?: string): this {\n return this.setTransactionName(name);\n }\n\n /**\n * @inheritDoc\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public setSpan(span?: Span): this {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSpan(): Span | undefined {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n public getTransaction(): Transaction | undefined {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n const span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n const updatedScope = (captureContext as (scope: T) => T)(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext as ScopeContext;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clear(): this {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n public applyToEvent(event: Event, hint?: EventHint): PromiseLike {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n const transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n public setSDKProcessingMetadata(newData: { [key: string]: unknown }): this {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n protected _notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint?: EventHint,\n index: number = 0,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n const processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n const result = processor({ ...event }, hint) as Event | null;\n if (isThenable(result)) {\n void (result as PromiseLike)\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n private _applyFingerprint(event: Event): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors(): EventProcessor[] {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n const global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback: EventProcessor): void {\n getGlobalEventProcessors().push(callback);\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","typeof window !== \"undefined\" &&\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Hls\"] = factory();\n\telse\n\t\troot[\"Hls\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./src/hls.ts\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/eventemitter3/index.js\":\n/*!*********************************************!*\\\n !*** ./node_modules/eventemitter3/index.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif (true) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/url-toolkit/src/url-toolkit.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/url-toolkit/src/url-toolkit.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// see https://tools.ietf.org/html/rfc1808\n\n(function (root) {\n var URL_REGEX =\n /^((?:[a-zA-Z0-9+\\-.]+:)?)(\\/\\/[^\\/?#]*)?((?:[^\\/?#]*\\/)*[^;?#]*)?(;[^?#]*)?(\\?[^#]*)?(#[^]*)?$/;\n var FIRST_SEGMENT_REGEX = /^([^\\/?#]*)([^]*)$/;\n var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n\n var URLToolkit = {\n // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n // E.g\n // With opts.alwaysNormalize = false (default, spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n // With opts.alwaysNormalize = true (not spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n opts = opts || {};\n // remove any remaining space and CRLF\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\n if (!relativeURL) {\n // 2a) If the embedded URL is entirely empty, it inherits the\n // entire base URL (i.e., is set equal to the base URL)\n // and we are done.\n if (!opts.alwaysNormalize) {\n return baseURL;\n }\n var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n basePartsForNormalise.path = URLToolkit.normalizePath(\n basePartsForNormalise.path\n );\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n var relativeParts = URLToolkit.parseURL(relativeURL);\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\n }\n if (relativeParts.scheme) {\n // 2b) If the embedded URL starts with a scheme name, it is\n // interpreted as an absolute URL and we are done.\n if (!opts.alwaysNormalize) {\n return relativeURL;\n }\n relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n var baseParts = URLToolkit.parseURL(baseURL);\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\n }\n if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n baseParts.netLoc = pathParts[1];\n baseParts.path = pathParts[2];\n }\n if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\n }\n var builtParts = {\n // 2c) Otherwise, the embedded URL inherits the scheme of\n // the base URL.\n scheme: baseParts.scheme,\n netLoc: relativeParts.netLoc,\n path: null,\n params: relativeParts.params,\n query: relativeParts.query,\n fragment: relativeParts.fragment,\n };\n if (!relativeParts.netLoc) {\n // 3) If the embedded URL's is non-empty, we skip to\n // Step 7. Otherwise, the embedded URL inherits the \n // (if any) of the base URL.\n builtParts.netLoc = baseParts.netLoc;\n // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\n if (relativeParts.path[0] !== '/') {\n if (!relativeParts.path) {\n // 5) If the embedded URL path is empty (and not preceded by a\n // slash), then the embedded URL inherits the base URL path\n builtParts.path = baseParts.path;\n // 5a) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and\n if (!relativeParts.params) {\n builtParts.params = baseParts.params;\n // 5b) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and we skip to step 7.\n if (!relativeParts.query) {\n builtParts.query = baseParts.query;\n }\n }\n } else {\n // 6) The last segment of the base URL's path (anything\n // following the rightmost slash \"/\", or the entire path if no\n // slash is present) is removed and the embedded URL's path is\n // appended in its place.\n var baseURLPath = baseParts.path;\n var newPath =\n baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize\n ? URLToolkit.normalizePath(relativeParts.path)\n : relativeParts.path;\n }\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n if (!parts) {\n return null;\n }\n return {\n scheme: parts[1] || '',\n netLoc: parts[2] || '',\n path: parts[3] || '',\n params: parts[4] || '',\n query: parts[5] || '',\n fragment: parts[6] || '',\n };\n },\n normalizePath: function (path) {\n // The following operations are\n // then applied, in order, to the new path:\n // 6a) All occurrences of \"./\", where \".\" is a complete path\n // segment, are removed.\n // 6b) If the path ends with \".\" as a complete path segment,\n // that \".\" is removed.\n path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\n // 6c) All occurrences of \"/../\", where is a\n // complete path segment not equal to \"..\", are removed.\n // Removal of these path segments is performed iteratively,\n // removing the leftmost matching pattern on each iteration,\n // until no matching pattern remains.\n // 6d) If the path ends with \"/..\", where is a\n // complete path segment not equal to \"..\", that\n // \"/..\" is removed.\n while (\n path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n ) {}\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return (\n parts.scheme +\n parts.netLoc +\n parts.path +\n parts.params +\n parts.query +\n parts.fragment\n );\n },\n };\n\n if (true)\n module.exports = URLToolkit;\n else {}\n})(this);\n\n\n/***/ }),\n\n/***/ \"./node_modules/webworkify-webpack/index.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/webworkify-webpack/index.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction webpackBootstrapFunc (modules) {\n/******/ // The module cache\n/******/ var installedModules = {};\n\n/******/ // The require function\n/******/ function __webpack_require__(moduleId) {\n\n/******/ // Check if module is in cache\n/******/ if(installedModules[moduleId])\n/******/ return installedModules[moduleId].exports;\n\n/******/ // Create a new module (and put it into the cache)\n/******/ var module = installedModules[moduleId] = {\n/******/ i: moduleId,\n/******/ l: false,\n/******/ exports: {}\n/******/ };\n\n/******/ // Execute the module function\n/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ // Flag the module as loaded\n/******/ module.l = true;\n\n/******/ // Return the exports of the module\n/******/ return module.exports;\n/******/ }\n\n/******/ // expose the modules object (__webpack_modules__)\n/******/ __webpack_require__.m = modules;\n\n/******/ // expose the module cache\n/******/ __webpack_require__.c = installedModules;\n\n/******/ // identity function for calling harmony imports with the correct context\n/******/ __webpack_require__.i = function(value) { return value; };\n\n/******/ // define getter function for harmony exports\n/******/ __webpack_require__.d = function(exports, name, getter) {\n/******/ if(!__webpack_require__.o(exports, name)) {\n/******/ Object.defineProperty(exports, name, {\n/******/ configurable: false,\n/******/ enumerable: true,\n/******/ get: getter\n/******/ });\n/******/ }\n/******/ };\n\n/******/ // define __esModule on exports\n/******/ __webpack_require__.r = function(exports) {\n/******/ Object.defineProperty(exports, '__esModule', { value: true });\n/******/ };\n\n/******/ // getDefaultExport function for compatibility with non-harmony modules\n/******/ __webpack_require__.n = function(module) {\n/******/ var getter = module && module.__esModule ?\n/******/ function getDefault() { return module['default']; } :\n/******/ function getModuleExports() { return module; };\n/******/ __webpack_require__.d(getter, 'a', getter);\n/******/ return getter;\n/******/ };\n\n/******/ // Object.prototype.hasOwnProperty.call\n/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n/******/ // __webpack_public_path__\n/******/ __webpack_require__.p = \"/\";\n\n/******/ // on error function for async loading\n/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n var f = __webpack_require__(__webpack_require__.s = ENTRY_MODULE)\n return f.default || f // try to call default if defined to also support babel esmodule exports\n}\n\nvar moduleNameReqExp = '[\\\\.|\\\\-|\\\\+|\\\\w|\\/|@]+'\nvar dependencyRegExp = '\\\\(\\\\s*(\\/\\\\*.*?\\\\*\\/)?\\\\s*.*?(' + moduleNameReqExp + ').*?\\\\)' // additional chars when output.pathinfo is true\n\n// http://stackoverflow.com/a/2593661/130442\nfunction quoteRegExp (str) {\n return (str + '').replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&')\n}\n\nfunction isNumeric(n) {\n return !isNaN(1 * n); // 1 * n converts integers, integers as string (\"123\"), 1e3 and \"1e3\" to integers and strings to NaN\n}\n\nfunction getModuleDependencies (sources, module, queueName) {\n var retval = {}\n retval[queueName] = []\n\n var fnString = module.toString()\n var wrapperSignature = fnString.match(/^function\\s?\\w*\\(\\w+,\\s*\\w+,\\s*(\\w+)\\)/)\n if (!wrapperSignature) return retval\n var webpackRequireName = wrapperSignature[1]\n\n // main bundle deps\n var re = new RegExp('(\\\\\\\\n|\\\\W)' + quoteRegExp(webpackRequireName) + dependencyRegExp, 'g')\n var match\n while ((match = re.exec(fnString))) {\n if (match[3] === 'dll-reference') continue\n retval[queueName].push(match[3])\n }\n\n // dll deps\n re = new RegExp('\\\\(' + quoteRegExp(webpackRequireName) + '\\\\(\"(dll-reference\\\\s(' + moduleNameReqExp + '))\"\\\\)\\\\)' + dependencyRegExp, 'g')\n while ((match = re.exec(fnString))) {\n if (!sources[match[2]]) {\n retval[queueName].push(match[1])\n sources[match[2]] = __webpack_require__(match[1]).m\n }\n retval[match[2]] = retval[match[2]] || []\n retval[match[2]].push(match[4])\n }\n\n // convert 1e3 back to 1000 - this can be important after uglify-js converted 1000 to 1e3\n var keys = Object.keys(retval);\n for (var i = 0; i < keys.length; i++) {\n for (var j = 0; j < retval[keys[i]].length; j++) {\n if (isNumeric(retval[keys[i]][j])) {\n retval[keys[i]][j] = 1 * retval[keys[i]][j];\n }\n }\n }\n\n return retval\n}\n\nfunction hasValuesInQueues (queues) {\n var keys = Object.keys(queues)\n return keys.reduce(function (hasValues, key) {\n return hasValues || queues[key].length > 0\n }, false)\n}\n\nfunction getRequiredModules (sources, moduleId) {\n var modulesQueue = {\n main: [moduleId]\n }\n var requiredModules = {\n main: []\n }\n var seenModules = {\n main: {}\n }\n\n while (hasValuesInQueues(modulesQueue)) {\n var queues = Object.keys(modulesQueue)\n for (var i = 0; i < queues.length; i++) {\n var queueName = queues[i]\n var queue = modulesQueue[queueName]\n var moduleToCheck = queue.pop()\n seenModules[queueName] = seenModules[queueName] || {}\n if (seenModules[queueName][moduleToCheck] || !sources[queueName][moduleToCheck]) continue\n seenModules[queueName][moduleToCheck] = true\n requiredModules[queueName] = requiredModules[queueName] || []\n requiredModules[queueName].push(moduleToCheck)\n var newModules = getModuleDependencies(sources, sources[queueName][moduleToCheck], queueName)\n var newModulesKeys = Object.keys(newModules)\n for (var j = 0; j < newModulesKeys.length; j++) {\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]] || []\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]].concat(newModules[newModulesKeys[j]])\n }\n }\n }\n\n return requiredModules\n}\n\nmodule.exports = function (moduleId, options) {\n options = options || {}\n var sources = {\n main: __webpack_require__.m\n }\n\n var requiredModules = options.all ? { main: Object.keys(sources.main) } : getRequiredModules(sources, moduleId)\n\n var src = ''\n\n Object.keys(requiredModules).filter(function (m) { return m !== 'main' }).forEach(function (module) {\n var entryModule = 0\n while (requiredModules[module][entryModule]) {\n entryModule++\n }\n requiredModules[module].push(entryModule)\n sources[module][entryModule] = '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })'\n src = src + 'var ' + module + ' = (' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(entryModule)) + ')({' + requiredModules[module].map(function (id) { return '' + JSON.stringify(id) + ': ' + sources[module][id].toString() }).join(',') + '});\\n'\n })\n\n src = src + 'new ((' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(moduleId)) + ')({' + requiredModules.main.map(function (id) { return '' + JSON.stringify(id) + ': ' + sources.main[id].toString() }).join(',') + '}))(self);'\n\n var blob = new window.Blob([src], { type: 'text/javascript' })\n if (options.bare) { return blob }\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL\n\n var workerUrl = URL.createObjectURL(blob)\n var worker = new window.Worker(workerUrl)\n worker.objectURL = workerUrl\n\n return worker\n}\n\n\n/***/ }),\n\n/***/ \"./src/config.ts\":\n/*!***********************!*\\\n !*** ./src/config.ts ***!\n \\***********************/\n/*! exports provided: hlsDefaultConfig, mergeConfig, enableStreamingMode */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hlsDefaultConfig\", function() { return hlsDefaultConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeConfig\", function() { return mergeConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enableStreamingMode\", function() { return enableStreamingMode; });\n/* harmony import */ var _controller_abr_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./controller/abr-controller */ \"./src/controller/abr-controller.ts\");\n/* harmony import */ var _controller_audio_stream_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./controller/audio-stream-controller */ \"./src/controller/audio-stream-controller.ts\");\n/* harmony import */ var _controller_audio_track_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./controller/audio-track-controller */ \"./src/controller/audio-track-controller.ts\");\n/* harmony import */ var _controller_subtitle_stream_controller__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./controller/subtitle-stream-controller */ \"./src/controller/subtitle-stream-controller.ts\");\n/* harmony import */ var _controller_subtitle_track_controller__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./controller/subtitle-track-controller */ \"./src/controller/subtitle-track-controller.ts\");\n/* harmony import */ var _controller_buffer_controller__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./controller/buffer-controller */ \"./src/controller/buffer-controller.ts\");\n/* harmony import */ var _controller_timeline_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./controller/timeline-controller */ \"./src/controller/timeline-controller.ts\");\n/* harmony import */ var _controller_cap_level_controller__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./controller/cap-level-controller */ \"./src/controller/cap-level-controller.ts\");\n/* harmony import */ var _controller_fps_controller__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./controller/fps-controller */ \"./src/controller/fps-controller.ts\");\n/* harmony import */ var _controller_eme_controller__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./controller/eme-controller */ \"./src/controller/eme-controller.ts\");\n/* harmony import */ var _controller_cmcd_controller__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./controller/cmcd-controller */ \"./src/controller/cmcd-controller.ts\");\n/* harmony import */ var _utils_xhr_loader__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/xhr-loader */ \"./src/utils/xhr-loader.ts\");\n/* harmony import */ var _utils_fetch_loader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/fetch-loader */ \"./src/utils/fetch-loader.ts\");\n/* harmony import */ var _utils_cues__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/cues */ \"./src/utils/cues.ts\");\n/* harmony import */ var _utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/mediakeys-helper */ \"./src/utils/mediakeys-helper.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./utils/logger */ \"./src/utils/logger.ts\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// If possible, keep hlsDefaultConfig shallow\n// It is cloned whenever a new Hls instance is created, by keeping the config\n// shallow the properties are cloned, and we don't end up manipulating the default\nvar hlsDefaultConfig = _objectSpread(_objectSpread({\n autoStartLoad: true,\n // used by stream-controller\n startPosition: -1,\n // used by stream-controller\n defaultAudioCodec: undefined,\n // used by stream-controller\n debug: false,\n // used by logger\n capLevelOnFPSDrop: false,\n // used by fps-controller\n capLevelToPlayerSize: false,\n // used by cap-level-controller\n initialLiveManifestSize: 1,\n // used by stream-controller\n maxBufferLength: 30,\n // used by stream-controller\n backBufferLength: Infinity,\n // used by buffer-controller\n maxBufferSize: 60 * 1000 * 1000,\n // used by stream-controller\n maxBufferHole: 0.1,\n // used by stream-controller\n highBufferWatchdogPeriod: 2,\n // used by stream-controller\n nudgeOffset: 0.1,\n // used by stream-controller\n nudgeMaxRetry: 3,\n // used by stream-controller\n maxFragLookUpTolerance: 0.25,\n // used by stream-controller\n liveSyncDurationCount: 3,\n // used by latency-controller\n liveMaxLatencyDurationCount: Infinity,\n // used by latency-controller\n liveSyncDuration: undefined,\n // used by latency-controller\n liveMaxLatencyDuration: undefined,\n // used by latency-controller\n maxLiveSyncPlaybackRate: 1,\n // used by latency-controller\n liveDurationInfinity: false,\n // used by buffer-controller\n liveBackBufferLength: null,\n // used by buffer-controller\n maxMaxBufferLength: 600,\n // used by stream-controller\n enableWorker: true,\n // used by demuxer\n enableSoftwareAES: true,\n // used by decrypter\n manifestLoadingTimeOut: 10000,\n // used by playlist-loader\n manifestLoadingMaxRetry: 1,\n // used by playlist-loader\n manifestLoadingRetryDelay: 1000,\n // used by playlist-loader\n manifestLoadingMaxRetryTimeout: 64000,\n // used by playlist-loader\n startLevel: undefined,\n // used by level-controller\n levelLoadingTimeOut: 10000,\n // used by playlist-loader\n levelLoadingMaxRetry: 4,\n // used by playlist-loader\n levelLoadingRetryDelay: 1000,\n // used by playlist-loader\n levelLoadingMaxRetryTimeout: 64000,\n // used by playlist-loader\n fragLoadingTimeOut: 20000,\n // used by fragment-loader\n fragLoadingMaxRetry: 6,\n // used by fragment-loader\n fragLoadingRetryDelay: 1000,\n // used by fragment-loader\n fragLoadingMaxRetryTimeout: 64000,\n // used by fragment-loader\n startFragPrefetch: false,\n // used by stream-controller\n fpsDroppedMonitoringPeriod: 5000,\n // used by fps-controller\n fpsDroppedMonitoringThreshold: 0.2,\n // used by fps-controller\n appendErrorMaxRetry: 3,\n // used by buffer-controller\n loader: _utils_xhr_loader__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n // loader: FetchLoader,\n fLoader: undefined,\n // used by fragment-loader\n pLoader: undefined,\n // used by playlist-loader\n xhrSetup: undefined,\n // used by xhr-loader\n licenseXhrSetup: undefined,\n // used by eme-controller\n licenseResponseCallback: undefined,\n // used by eme-controller\n abrController: _controller_abr_controller__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n bufferController: _controller_buffer_controller__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n capLevelController: _controller_cap_level_controller__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n fpsController: _controller_fps_controller__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n stretchShortVideoTrack: false,\n // used by mp4-remuxer\n maxAudioFramesDrift: 1,\n // used by mp4-remuxer\n forceKeyFrameOnDiscontinuity: true,\n // used by ts-demuxer\n abrEwmaFastLive: 3,\n // used by abr-controller\n abrEwmaSlowLive: 9,\n // used by abr-controller\n abrEwmaFastVoD: 3,\n // used by abr-controller\n abrEwmaSlowVoD: 9,\n // used by abr-controller\n abrEwmaDefaultEstimate: 5e5,\n // 500 kbps // used by abr-controller\n abrBandWidthFactor: 0.95,\n // used by abr-controller\n abrBandWidthUpFactor: 0.7,\n // used by abr-controller\n abrMaxWithRealBitrate: false,\n // used by abr-controller\n maxStarvationDelay: 4,\n // used by abr-controller\n maxLoadingDelay: 4,\n // used by abr-controller\n minAutoBitrate: 0,\n // used by hls\n emeEnabled: false,\n // used by eme-controller\n widevineLicenseUrl: undefined,\n // used by eme-controller\n drmSystemOptions: {},\n // used by eme-controller\n requestMediaKeySystemAccessFunc: _utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_14__[\"requestMediaKeySystemAccess\"],\n // used by eme-controller\n testBandwidth: true,\n progressive: false,\n lowLatencyMode: true,\n cmcd: undefined\n}, timelineConfig()), {}, {\n subtitleStreamController: true ? _controller_subtitle_stream_controller__WEBPACK_IMPORTED_MODULE_3__[\"SubtitleStreamController\"] : undefined,\n subtitleTrackController: true ? _controller_subtitle_track_controller__WEBPACK_IMPORTED_MODULE_4__[\"default\"] : undefined,\n timelineController: true ? _controller_timeline_controller__WEBPACK_IMPORTED_MODULE_6__[\"TimelineController\"] : undefined,\n audioStreamController: true ? _controller_audio_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : undefined,\n audioTrackController: true ? _controller_audio_track_controller__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : undefined,\n emeController: true ? _controller_eme_controller__WEBPACK_IMPORTED_MODULE_9__[\"default\"] : undefined,\n cmcdController: true ? _controller_cmcd_controller__WEBPACK_IMPORTED_MODULE_10__[\"default\"] : undefined\n});\n\nfunction timelineConfig() {\n return {\n cueHandler: _utils_cues__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n // used by timeline-controller\n enableCEA708Captions: true,\n // used by timeline-controller\n enableWebVTT: true,\n // used by timeline-controller\n enableIMSC1: true,\n // used by timeline-controller\n captionsTextTrack1Label: 'English',\n // used by timeline-controller\n captionsTextTrack1LanguageCode: 'en',\n // used by timeline-controller\n captionsTextTrack2Label: 'Spanish',\n // used by timeline-controller\n captionsTextTrack2LanguageCode: 'es',\n // used by timeline-controller\n captionsTextTrack3Label: 'Unknown CC',\n // used by timeline-controller\n captionsTextTrack3LanguageCode: '',\n // used by timeline-controller\n captionsTextTrack4Label: 'Unknown CC',\n // used by timeline-controller\n captionsTextTrack4LanguageCode: '',\n // used by timeline-controller\n renderTextTracksNatively: true\n };\n}\n\nfunction mergeConfig(defaultConfig, userConfig) {\n if ((userConfig.liveSyncDurationCount || userConfig.liveMaxLatencyDurationCount) && (userConfig.liveSyncDuration || userConfig.liveMaxLatencyDuration)) {\n throw new Error(\"Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration\");\n }\n\n if (userConfig.liveMaxLatencyDurationCount !== undefined && (userConfig.liveSyncDurationCount === undefined || userConfig.liveMaxLatencyDurationCount <= userConfig.liveSyncDurationCount)) {\n throw new Error('Illegal hls.js config: \"liveMaxLatencyDurationCount\" must be greater than \"liveSyncDurationCount\"');\n }\n\n if (userConfig.liveMaxLatencyDuration !== undefined && (userConfig.liveSyncDuration === undefined || userConfig.liveMaxLatencyDuration <= userConfig.liveSyncDuration)) {\n throw new Error('Illegal hls.js config: \"liveMaxLatencyDuration\" must be greater than \"liveSyncDuration\"');\n }\n\n return _extends({}, defaultConfig, userConfig);\n}\nfunction enableStreamingMode(config) {\n var currentLoader = config.loader;\n\n if (currentLoader !== _utils_fetch_loader__WEBPACK_IMPORTED_MODULE_12__[\"default\"] && currentLoader !== _utils_xhr_loader__WEBPACK_IMPORTED_MODULE_11__[\"default\"]) {\n // If a developer has configured their own loader, respect that choice\n _utils_logger__WEBPACK_IMPORTED_MODULE_15__[\"logger\"].log('[config]: Custom loader detected, cannot enable progressive streaming');\n config.progressive = false;\n } else {\n var canStreamProgressively = Object(_utils_fetch_loader__WEBPACK_IMPORTED_MODULE_12__[\"fetchSupported\"])();\n\n if (canStreamProgressively) {\n config.loader = _utils_fetch_loader__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n config.progressive = true;\n config.enableSoftwareAES = true;\n _utils_logger__WEBPACK_IMPORTED_MODULE_15__[\"logger\"].log('[config]: Progressive streaming enabled, using FetchLoader');\n }\n }\n}\n\n/***/ }),\n\n/***/ \"./src/controller/abr-controller.ts\":\n/*!******************************************!*\\\n !*** ./src/controller/abr-controller.ts ***!\n \\******************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _utils_ewma_bandwidth_estimator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/ewma-bandwidth-estimator */ \"./src/utils/ewma-bandwidth-estimator.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\nvar AbrController = /*#__PURE__*/function () {\n function AbrController(hls) {\n this.hls = void 0;\n this.lastLoadedFragLevel = 0;\n this._nextAutoLevel = -1;\n this.timer = void 0;\n this.onCheck = this._abandonRulesCheck.bind(this);\n this.fragCurrent = null;\n this.partCurrent = null;\n this.bitrateTestDelay = 0;\n this.bwEstimator = void 0;\n this.hls = hls;\n var config = hls.config;\n this.bwEstimator = new _utils_ewma_bandwidth_estimator__WEBPACK_IMPORTED_MODULE_1__[\"default\"](config.abrEwmaSlowVoD, config.abrEwmaFastVoD, config.abrEwmaDefaultEstimate);\n this.registerListeners();\n }\n\n var _proto = AbrController.prototype;\n\n _proto.registerListeners = function registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_LOADING, this.onFragLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_LOADING, this.onFragLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto.destroy = function destroy() {\n this.unregisterListeners();\n this.clearTimer(); // @ts-ignore\n\n this.hls = this.onCheck = null;\n this.fragCurrent = this.partCurrent = null;\n };\n\n _proto.onFragLoading = function onFragLoading(event, data) {\n var frag = data.frag;\n\n if (frag.type === _types_loader__WEBPACK_IMPORTED_MODULE_5__[\"PlaylistLevelType\"].MAIN) {\n if (!this.timer) {\n var _data$part;\n\n this.fragCurrent = frag;\n this.partCurrent = (_data$part = data.part) != null ? _data$part : null;\n this.timer = self.setInterval(this.onCheck, 100);\n }\n }\n };\n\n _proto.onLevelLoaded = function onLevelLoaded(event, data) {\n var config = this.hls.config;\n\n if (data.details.live) {\n this.bwEstimator.update(config.abrEwmaSlowLive, config.abrEwmaFastLive);\n } else {\n this.bwEstimator.update(config.abrEwmaSlowVoD, config.abrEwmaFastVoD);\n }\n }\n /*\n This method monitors the download rate of the current fragment, and will downswitch if that fragment will not load\n quickly enough to prevent underbuffering\n */\n ;\n\n _proto._abandonRulesCheck = function _abandonRulesCheck() {\n var frag = this.fragCurrent,\n part = this.partCurrent,\n hls = this.hls;\n var autoLevelEnabled = hls.autoLevelEnabled,\n config = hls.config,\n media = hls.media;\n\n if (!frag || !media) {\n return;\n }\n\n var stats = part ? part.stats : frag.stats;\n var duration = part ? part.duration : frag.duration; // If loading has been aborted and not in lowLatencyMode, stop timer and return\n\n if (stats.aborted) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].warn('frag loader destroy or aborted, disarm abandonRules');\n this.clearTimer(); // reset forced auto level value so that next level will be selected\n\n this._nextAutoLevel = -1;\n return;\n } // This check only runs if we're in ABR mode and actually playing\n\n\n if (!autoLevelEnabled || media.paused || !media.playbackRate || !media.readyState) {\n return;\n }\n\n var requestDelay = performance.now() - stats.loading.start;\n var playbackRate = Math.abs(media.playbackRate); // In order to work with a stable bandwidth, only begin monitoring bandwidth after half of the fragment has been loaded\n\n if (requestDelay <= 500 * duration / playbackRate) {\n return;\n }\n\n var levels = hls.levels,\n minAutoLevel = hls.minAutoLevel;\n var level = levels[frag.level];\n var expectedLen = stats.total || Math.max(stats.loaded, Math.round(duration * level.maxBitrate / 8));\n var loadRate = Math.max(1, stats.bwEstimate ? stats.bwEstimate / 8 : stats.loaded * 1000 / requestDelay); // fragLoadDelay is an estimate of the time (in seconds) it will take to buffer the entire fragment\n\n var fragLoadedDelay = (expectedLen - stats.loaded) / loadRate;\n var pos = media.currentTime; // bufferStarvationDelay is an estimate of the amount time (in seconds) it will take to exhaust the buffer\n\n var bufferStarvationDelay = (_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].bufferInfo(media, pos, config.maxBufferHole).end - pos) / playbackRate; // Attempt an emergency downswitch only if less than 2 fragment lengths are buffered, and the time to finish loading\n // the current fragment is greater than the amount of buffer we have left\n\n if (bufferStarvationDelay >= 2 * duration / playbackRate || fragLoadedDelay <= bufferStarvationDelay) {\n return;\n }\n\n var fragLevelNextLoadedDelay = Number.POSITIVE_INFINITY;\n var nextLoadLevel; // Iterate through lower level and try to find the largest one that avoids rebuffering\n\n for (nextLoadLevel = frag.level - 1; nextLoadLevel > minAutoLevel; nextLoadLevel--) {\n // compute time to load next fragment at lower level\n // 0.8 : consider only 80% of current bw to be conservative\n // 8 = bits per byte (bps/Bps)\n var levelNextBitrate = levels[nextLoadLevel].maxBitrate;\n fragLevelNextLoadedDelay = duration * levelNextBitrate / (8 * 0.8 * loadRate);\n\n if (fragLevelNextLoadedDelay < bufferStarvationDelay) {\n break;\n }\n } // Only emergency switch down if it takes less time to load a new fragment at lowest level instead of continuing\n // to load the current one\n\n\n if (fragLevelNextLoadedDelay >= fragLoadedDelay) {\n return;\n }\n\n var bwEstimate = this.bwEstimator.getEstimate();\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].warn(\"Fragment \" + frag.sn + (part ? ' part ' + part.index : '') + \" of level \" + frag.level + \" is loading too slowly and will cause an underbuffer; aborting and switching to level \" + nextLoadLevel + \"\\n Current BW estimate: \" + (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(bwEstimate) ? (bwEstimate / 1024).toFixed(3) : 'Unknown') + \" Kb/s\\n Estimated load time for current fragment: \" + fragLoadedDelay.toFixed(3) + \" s\\n Estimated load time for the next fragment: \" + fragLevelNextLoadedDelay.toFixed(3) + \" s\\n Time to underbuffer: \" + bufferStarvationDelay.toFixed(3) + \" s\");\n hls.nextLoadLevel = nextLoadLevel;\n this.bwEstimator.sample(requestDelay, stats.loaded);\n this.clearTimer();\n\n if (frag.loader) {\n this.fragCurrent = this.partCurrent = null;\n frag.loader.abort();\n }\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_LOAD_EMERGENCY_ABORTED, {\n frag: frag,\n part: part,\n stats: stats\n });\n };\n\n _proto.onFragLoaded = function onFragLoaded(event, _ref) {\n var frag = _ref.frag,\n part = _ref.part;\n\n if (frag.type === _types_loader__WEBPACK_IMPORTED_MODULE_5__[\"PlaylistLevelType\"].MAIN && Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(frag.sn)) {\n var stats = part ? part.stats : frag.stats;\n var duration = part ? part.duration : frag.duration; // stop monitoring bw once frag loaded\n\n this.clearTimer(); // store level id after successful fragment load\n\n this.lastLoadedFragLevel = frag.level; // reset forced auto level value so that next level will be selected\n\n this._nextAutoLevel = -1; // compute level average bitrate\n\n if (this.hls.config.abrMaxWithRealBitrate) {\n var level = this.hls.levels[frag.level];\n var loadedBytes = (level.loaded ? level.loaded.bytes : 0) + stats.loaded;\n var loadedDuration = (level.loaded ? level.loaded.duration : 0) + duration;\n level.loaded = {\n bytes: loadedBytes,\n duration: loadedDuration\n };\n level.realBitrate = Math.round(8 * loadedBytes / loadedDuration);\n }\n\n if (frag.bitrateTest) {\n var fragBufferedData = {\n stats: stats,\n frag: frag,\n part: part,\n id: frag.type\n };\n this.onFragBuffered(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_BUFFERED, fragBufferedData);\n frag.bitrateTest = false;\n }\n }\n };\n\n _proto.onFragBuffered = function onFragBuffered(event, data) {\n var frag = data.frag,\n part = data.part;\n var stats = part ? part.stats : frag.stats;\n\n if (stats.aborted) {\n return;\n } // Only count non-alt-audio frags which were actually buffered in our BW calculations\n\n\n if (frag.type !== _types_loader__WEBPACK_IMPORTED_MODULE_5__[\"PlaylistLevelType\"].MAIN || frag.sn === 'initSegment') {\n return;\n } // Use the difference between parsing and request instead of buffering and request to compute fragLoadingProcessing;\n // rationale is that buffer appending only happens once media is attached. This can happen when config.startFragPrefetch\n // is used. If we used buffering in that case, our BW estimate sample will be very large.\n\n\n var processingMs = stats.parsing.end - stats.loading.start;\n this.bwEstimator.sample(processingMs, stats.loaded);\n stats.bwEstimate = this.bwEstimator.getEstimate();\n\n if (frag.bitrateTest) {\n this.bitrateTestDelay = processingMs / 1000;\n } else {\n this.bitrateTestDelay = 0;\n }\n };\n\n _proto.onError = function onError(event, data) {\n // stop timer in case of frag loading error\n switch (data.details) {\n case _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorDetails\"].FRAG_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorDetails\"].FRAG_LOAD_TIMEOUT:\n this.clearTimer();\n break;\n\n default:\n break;\n }\n };\n\n _proto.clearTimer = function clearTimer() {\n self.clearInterval(this.timer);\n this.timer = undefined;\n } // return next auto level\n ;\n\n _proto.getNextABRAutoLevel = function getNextABRAutoLevel() {\n var fragCurrent = this.fragCurrent,\n partCurrent = this.partCurrent,\n hls = this.hls;\n var maxAutoLevel = hls.maxAutoLevel,\n config = hls.config,\n minAutoLevel = hls.minAutoLevel,\n media = hls.media;\n var currentFragDuration = partCurrent ? partCurrent.duration : fragCurrent ? fragCurrent.duration : 0;\n var pos = media ? media.currentTime : 0; // playbackRate is the absolute value of the playback rate; if media.playbackRate is 0, we use 1 to load as\n // if we're playing back at the normal rate.\n\n var playbackRate = media && media.playbackRate !== 0 ? Math.abs(media.playbackRate) : 1.0;\n var avgbw = this.bwEstimator ? this.bwEstimator.getEstimate() : config.abrEwmaDefaultEstimate; // bufferStarvationDelay is the wall-clock time left until the playback buffer is exhausted.\n\n var bufferStarvationDelay = (_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].bufferInfo(media, pos, config.maxBufferHole).end - pos) / playbackRate; // First, look to see if we can find a level matching with our avg bandwidth AND that could also guarantee no rebuffering at all\n\n var bestLevel = this.findBestLevel(avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay, config.abrBandWidthFactor, config.abrBandWidthUpFactor);\n\n if (bestLevel >= 0) {\n return bestLevel;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].trace((bufferStarvationDelay ? 'rebuffering expected' : 'buffer is empty') + \", finding optimal quality level\"); // not possible to get rid of rebuffering ... let's try to find level that will guarantee less than maxStarvationDelay of rebuffering\n // if no matching level found, logic will return 0\n\n var maxStarvationDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxStarvationDelay) : config.maxStarvationDelay;\n var bwFactor = config.abrBandWidthFactor;\n var bwUpFactor = config.abrBandWidthUpFactor;\n\n if (!bufferStarvationDelay) {\n // in case buffer is empty, let's check if previous fragment was loaded to perform a bitrate test\n var bitrateTestDelay = this.bitrateTestDelay;\n\n if (bitrateTestDelay) {\n // if it is the case, then we need to adjust our max starvation delay using maxLoadingDelay config value\n // max video loading delay used in automatic start level selection :\n // in that mode ABR controller will ensure that video loading time (ie the time to fetch the first fragment at lowest quality level +\n // the time to fetch the fragment at the appropriate quality level is less than ```maxLoadingDelay``` )\n // cap maxLoadingDelay and ensure it is not bigger 'than bitrate test' frag duration\n var maxLoadingDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxLoadingDelay) : config.maxLoadingDelay;\n maxStarvationDelay = maxLoadingDelay - bitrateTestDelay;\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].trace(\"bitrate test took \" + Math.round(1000 * bitrateTestDelay) + \"ms, set first fragment max fetchDuration to \" + Math.round(1000 * maxStarvationDelay) + \" ms\"); // don't use conservative factor on bitrate test\n\n bwFactor = bwUpFactor = 1;\n }\n }\n\n bestLevel = this.findBestLevel(avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay + maxStarvationDelay, bwFactor, bwUpFactor);\n return Math.max(bestLevel, 0);\n };\n\n _proto.findBestLevel = function findBestLevel(currentBw, minAutoLevel, maxAutoLevel, maxFetchDuration, bwFactor, bwUpFactor) {\n var _level$details;\n\n var fragCurrent = this.fragCurrent,\n partCurrent = this.partCurrent,\n currentLevel = this.lastLoadedFragLevel;\n var levels = this.hls.levels;\n var level = levels[currentLevel];\n var live = !!(level !== null && level !== void 0 && (_level$details = level.details) !== null && _level$details !== void 0 && _level$details.live);\n var currentCodecSet = level === null || level === void 0 ? void 0 : level.codecSet;\n var currentFragDuration = partCurrent ? partCurrent.duration : fragCurrent ? fragCurrent.duration : 0;\n\n for (var i = maxAutoLevel; i >= minAutoLevel; i--) {\n var levelInfo = levels[i];\n\n if (!levelInfo || currentCodecSet && levelInfo.codecSet !== currentCodecSet) {\n continue;\n }\n\n var levelDetails = levelInfo.details;\n var avgDuration = (partCurrent ? levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.partTarget : levelDetails === null || levelDetails === void 0 ? void 0 : levelDetails.averagetargetduration) || currentFragDuration;\n var adjustedbw = void 0; // follow algorithm captured from stagefright :\n // https://android.googlesource.com/platform/frameworks/av/+/master/media/libstagefright/httplive/LiveSession.cpp\n // Pick the highest bandwidth stream below or equal to estimated bandwidth.\n // consider only 80% of the available bandwidth, but if we are switching up,\n // be even more conservative (70%) to avoid overestimating and immediately\n // switching back.\n\n if (i <= currentLevel) {\n adjustedbw = bwFactor * currentBw;\n } else {\n adjustedbw = bwUpFactor * currentBw;\n }\n\n var bitrate = levels[i].maxBitrate;\n var fetchDuration = bitrate * avgDuration / adjustedbw;\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].trace(\"level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: \" + i + \"/\" + Math.round(adjustedbw) + \"/\" + bitrate + \"/\" + avgDuration + \"/\" + maxFetchDuration + \"/\" + fetchDuration); // if adjusted bw is greater than level bitrate AND\n\n if (adjustedbw > bitrate && ( // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches\n // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...\n // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that findBestLevel will return -1\n !fetchDuration || live && !this.bitrateTestDelay || fetchDuration < maxFetchDuration)) {\n // as we are looping from highest to lowest, this will return the best achievable quality level\n return i;\n }\n } // not enough time budget even with quality level 0 ... rebuffering might happen\n\n\n return -1;\n };\n\n _createClass(AbrController, [{\n key: \"nextAutoLevel\",\n get: function get() {\n var forcedAutoLevel = this._nextAutoLevel;\n var bwEstimator = this.bwEstimator; // in case next auto level has been forced, and bw not available or not reliable, return forced value\n\n if (forcedAutoLevel !== -1 && (!bwEstimator || !bwEstimator.canEstimate())) {\n return forcedAutoLevel;\n } // compute next level using ABR logic\n\n\n var nextABRAutoLevel = this.getNextABRAutoLevel(); // if forced auto level has been defined, use it to cap ABR computed quality level\n\n if (forcedAutoLevel !== -1) {\n nextABRAutoLevel = Math.min(forcedAutoLevel, nextABRAutoLevel);\n }\n\n return nextABRAutoLevel;\n },\n set: function set(nextLevel) {\n this._nextAutoLevel = nextLevel;\n }\n }]);\n\n return AbrController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AbrController);\n\n/***/ }),\n\n/***/ \"./src/controller/audio-stream-controller.ts\":\n/*!***************************************************!*\\\n !*** ./src/controller/audio-stream-controller.ts ***!\n \\***************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base-stream-controller */ \"./src/controller/base-stream-controller.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _fragment_tracker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fragment-tracker */ \"./src/controller/fragment-tracker.ts\");\n/* harmony import */ var _types_level__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../types/level */ \"./src/types/level.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n/* harmony import */ var _loader_fragment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../loader/fragment */ \"./src/loader/fragment.ts\");\n/* harmony import */ var _demux_chunk_cache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../demux/chunk-cache */ \"./src/demux/chunk-cache.ts\");\n/* harmony import */ var _demux_transmuxer_interface__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../demux/transmuxer-interface */ \"./src/demux/transmuxer-interface.ts\");\n/* harmony import */ var _types_transmuxer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../types/transmuxer */ \"./src/types/transmuxer.ts\");\n/* harmony import */ var _fragment_finders__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./fragment-finders */ \"./src/controller/fragment-finders.ts\");\n/* harmony import */ var _utils_discontinuities__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/discontinuities */ \"./src/utils/discontinuities.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TICK_INTERVAL = 100; // how often to tick in ms\n\nvar AudioStreamController = /*#__PURE__*/function (_BaseStreamController) {\n _inheritsLoose(AudioStreamController, _BaseStreamController);\n\n function AudioStreamController(hls, fragmentTracker) {\n var _this;\n\n _this = _BaseStreamController.call(this, hls, fragmentTracker, '[audio-stream-controller]') || this;\n _this.videoBuffer = null;\n _this.videoTrackCC = -1;\n _this.waitingVideoCC = -1;\n _this.audioSwitch = false;\n _this.trackId = -1;\n _this.waitingData = null;\n _this.mainDetails = null;\n _this.bufferFlushed = false;\n\n _this._registerListeners();\n\n return _this;\n }\n\n var _proto = AudioStreamController.prototype;\n\n _proto.onHandlerDestroying = function onHandlerDestroying() {\n this._unregisterListeners();\n\n this.mainDetails = null;\n };\n\n _proto._registerListeners = function _registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, this.onError, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_RESET, this.onBufferReset, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_CREATED, this.onBufferCreated, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, this.onError, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_RESET, this.onBufferReset, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_CREATED, this.onBufferCreated, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n } // INIT_PTS_FOUND is triggered when the video track parsed in the stream-controller has a new PTS value\n ;\n\n _proto.onInitPtsFound = function onInitPtsFound(event, _ref) {\n var frag = _ref.frag,\n id = _ref.id,\n initPTS = _ref.initPTS;\n\n // Always update the new INIT PTS\n // Can change due level switch\n if (id === 'main') {\n var cc = frag.cc;\n this.initPTS[frag.cc] = initPTS;\n this.log(\"InitPTS for cc: \" + cc + \" found from main: \" + initPTS);\n this.videoTrackCC = cc; // If we are waiting, tick immediately to unblock audio fragment transmuxing\n\n if (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_INIT_PTS) {\n this.tick();\n }\n }\n };\n\n _proto.startLoad = function startLoad(startPosition) {\n if (!this.levels) {\n this.startPosition = startPosition;\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].STOPPED;\n return;\n }\n\n var lastCurrentTime = this.lastCurrentTime;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL);\n this.fragLoadError = 0;\n\n if (lastCurrentTime > 0 && startPosition === -1) {\n this.log(\"Override startPosition with lastCurrentTime @\" + lastCurrentTime.toFixed(3));\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n } else {\n this.loadedmetadata = false;\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_TRACK;\n }\n\n this.nextLoadPosition = this.startPosition = this.lastCurrentTime = startPosition;\n this.tick();\n };\n\n _proto.doTick = function doTick() {\n switch (this.state) {\n case _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE:\n this.doTickIdle();\n break;\n\n case _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_TRACK:\n {\n var _levels$trackId;\n\n var levels = this.levels,\n trackId = this.trackId;\n var details = levels === null || levels === void 0 ? void 0 : (_levels$trackId = levels[trackId]) === null || _levels$trackId === void 0 ? void 0 : _levels$trackId.details;\n\n if (details) {\n if (this.waitForCdnTuneIn(details)) {\n break;\n }\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_INIT_PTS;\n }\n\n break;\n }\n\n case _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].FRAG_LOADING_WAITING_RETRY:\n {\n var _this$media;\n\n var now = performance.now();\n var retryDate = this.retryDate; // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n\n if (!retryDate || now >= retryDate || (_this$media = this.media) !== null && _this$media !== void 0 && _this$media.seeking) {\n this.log('RetryDate reached, switch back to IDLE state');\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n\n break;\n }\n\n case _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_INIT_PTS:\n {\n // Ensure we don't get stuck in the WAITING_INIT_PTS state if the waiting frag CC doesn't match any initPTS\n var waitingData = this.waitingData;\n\n if (waitingData) {\n var frag = waitingData.frag,\n part = waitingData.part,\n cache = waitingData.cache,\n complete = waitingData.complete;\n\n if (this.initPTS[frag.cc] !== undefined) {\n this.waitingData = null;\n this.waitingVideoCC = -1;\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].FRAG_LOADING;\n var payload = cache.flush();\n var data = {\n frag: frag,\n part: part,\n payload: payload,\n networkDetails: null\n };\n\n this._handleFragmentLoadProgress(data);\n\n if (complete) {\n _BaseStreamController.prototype._handleFragmentLoadComplete.call(this, data);\n }\n } else if (this.videoTrackCC !== this.waitingVideoCC) {\n // Drop waiting fragment if videoTrackCC has changed since waitingFragment was set and initPTS was not found\n _utils_logger__WEBPACK_IMPORTED_MODULE_14__[\"logger\"].log(\"Waiting fragment cc (\" + frag.cc + \") cancelled because video is at cc \" + this.videoTrackCC);\n this.clearWaitingFragment();\n } else {\n // Drop waiting fragment if an earlier fragment is needed\n var pos = this.getLoadPosition();\n var bufferInfo = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].bufferInfo(this.mediaBuffer, pos, this.config.maxBufferHole);\n var waitingFragmentAtPosition = Object(_fragment_finders__WEBPACK_IMPORTED_MODULE_11__[\"fragmentWithinToleranceTest\"])(bufferInfo.end, this.config.maxFragLookUpTolerance, frag);\n\n if (waitingFragmentAtPosition < 0) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_14__[\"logger\"].log(\"Waiting fragment cc (\" + frag.cc + \") @ \" + frag.start + \" cancelled because another fragment at \" + bufferInfo.end + \" is needed\");\n this.clearWaitingFragment();\n }\n }\n } else {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n }\n }\n\n this.onTickEnd();\n };\n\n _proto.clearWaitingFragment = function clearWaitingFragment() {\n var waitingData = this.waitingData;\n\n if (waitingData) {\n this.fragmentTracker.removeFragment(waitingData.frag);\n this.waitingData = null;\n this.waitingVideoCC = -1;\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n };\n\n _proto.onTickEnd = function onTickEnd() {\n var media = this.media;\n\n if (!media || !media.readyState) {\n // Exit early if we don't have media or if the media hasn't buffered anything yet (readyState 0)\n return;\n }\n\n var mediaBuffer = this.mediaBuffer ? this.mediaBuffer : media;\n var buffered = mediaBuffer.buffered;\n\n if (!this.loadedmetadata && buffered.length) {\n this.loadedmetadata = true;\n }\n\n this.lastCurrentTime = media.currentTime;\n };\n\n _proto.doTickIdle = function doTickIdle() {\n var _frag$decryptdata, _frag$decryptdata2;\n\n var hls = this.hls,\n levels = this.levels,\n media = this.media,\n trackId = this.trackId;\n var config = hls.config;\n\n if (!levels || !levels[trackId]) {\n return;\n } // if video not attached AND\n // start fragment already requested OR start frag prefetch not enabled\n // exit loop\n // => if media not attached but start frag prefetch is enabled and start frag not requested yet, we will not exit loop\n\n\n if (!media && (this.startFragRequested || !config.startFragPrefetch)) {\n return;\n }\n\n var levelInfo = levels[trackId];\n var trackDetails = levelInfo.details;\n\n if (!trackDetails || trackDetails.live && this.levelLastLoaded !== trackId || this.waitForCdnTuneIn(trackDetails)) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_TRACK;\n return;\n }\n\n if (this.bufferFlushed) {\n this.bufferFlushed = false;\n this.afterBufferFlushed(this.mediaBuffer ? this.mediaBuffer : this.media, _loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO);\n }\n\n var bufferInfo = this.getFwdBufferInfo(this.mediaBuffer ? this.mediaBuffer : this.media, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO);\n\n if (bufferInfo === null) {\n return;\n }\n\n var bufferLen = bufferInfo.len;\n var maxBufLen = this.getMaxBufferLength();\n var audioSwitch = this.audioSwitch; // if buffer length is less than maxBufLen try to load a new fragment\n\n if (bufferLen >= maxBufLen && !audioSwitch) {\n return;\n }\n\n if (!audioSwitch && this._streamEnded(bufferInfo, trackDetails)) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_EOS, {\n type: 'audio'\n });\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].ENDED;\n return;\n }\n\n var fragments = trackDetails.fragments;\n var start = fragments[0].start;\n var targetBufferTime = bufferInfo.end;\n\n if (audioSwitch) {\n var pos = this.getLoadPosition();\n targetBufferTime = pos; // if currentTime (pos) is less than alt audio playlist start time, it means that alt audio is ahead of currentTime\n\n if (trackDetails.PTSKnown && pos < start) {\n // if everything is buffered from pos to start or if audio buffer upfront, let's seek to start\n if (bufferInfo.end > start || bufferInfo.nextStart) {\n this.log('Alt audio track ahead of main track, seek to start of alt audio track');\n media.currentTime = start + 0.05;\n }\n }\n }\n\n var frag = this.getNextFragment(targetBufferTime, trackDetails);\n\n if (!frag) {\n this.bufferFlushed = true;\n return;\n }\n\n if (((_frag$decryptdata = frag.decryptdata) === null || _frag$decryptdata === void 0 ? void 0 : _frag$decryptdata.keyFormat) === 'identity' && !((_frag$decryptdata2 = frag.decryptdata) !== null && _frag$decryptdata2 !== void 0 && _frag$decryptdata2.key)) {\n this.loadKey(frag, trackDetails);\n } else {\n this.loadFragment(frag, trackDetails, targetBufferTime);\n }\n };\n\n _proto.getMaxBufferLength = function getMaxBufferLength() {\n var maxConfigBuffer = _BaseStreamController.prototype.getMaxBufferLength.call(this);\n\n var mainBufferInfo = this.getFwdBufferInfo(this.videoBuffer ? this.videoBuffer : this.media, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN);\n\n if (mainBufferInfo === null) {\n return maxConfigBuffer;\n }\n\n return Math.max(maxConfigBuffer, mainBufferInfo.len);\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n this.videoBuffer = null;\n\n _BaseStreamController.prototype.onMediaDetaching.call(this);\n };\n\n _proto.onAudioTracksUpdated = function onAudioTracksUpdated(event, _ref2) {\n var audioTracks = _ref2.audioTracks;\n this.resetTransmuxer();\n this.levels = audioTracks.map(function (mediaPlaylist) {\n return new _types_level__WEBPACK_IMPORTED_MODULE_5__[\"Level\"](mediaPlaylist);\n });\n };\n\n _proto.onAudioTrackSwitching = function onAudioTrackSwitching(event, data) {\n // if any URL found on new audio track, it is an alternate audio track\n var altAudio = !!data.url;\n this.trackId = data.id;\n var fragCurrent = this.fragCurrent;\n\n if (fragCurrent !== null && fragCurrent !== void 0 && fragCurrent.loader) {\n fragCurrent.loader.abort();\n }\n\n this.fragCurrent = null;\n this.clearWaitingFragment(); // destroy useless transmuxer when switching audio to main\n\n if (!altAudio) {\n this.resetTransmuxer();\n } else {\n // switching to audio track, start timer if not already started\n this.setInterval(TICK_INTERVAL);\n } // should we switch tracks ?\n\n\n if (altAudio) {\n this.audioSwitch = true; // main audio track are handled by stream-controller, just do something if switching to alt audio track\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n } else {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].STOPPED;\n }\n\n this.tick();\n };\n\n _proto.onManifestLoading = function onManifestLoading() {\n this.mainDetails = null;\n this.fragmentTracker.removeAllFragments();\n this.startPosition = this.lastCurrentTime = 0;\n this.bufferFlushed = false;\n };\n\n _proto.onLevelLoaded = function onLevelLoaded(event, data) {\n this.mainDetails = data.details;\n };\n\n _proto.onAudioTrackLoaded = function onAudioTrackLoaded(event, data) {\n var _track$details;\n\n var levels = this.levels;\n var newDetails = data.details,\n trackId = data.id;\n\n if (!levels) {\n this.warn(\"Audio tracks were reset while loading level \" + trackId);\n return;\n }\n\n this.log(\"Track \" + trackId + \" loaded [\" + newDetails.startSN + \",\" + newDetails.endSN + \"],duration:\" + newDetails.totalduration);\n var track = levels[trackId];\n var sliding = 0;\n\n if (newDetails.live || (_track$details = track.details) !== null && _track$details !== void 0 && _track$details.live) {\n var mainDetails = this.mainDetails;\n\n if (!newDetails.fragments[0]) {\n newDetails.deltaUpdateFailed = true;\n }\n\n if (newDetails.deltaUpdateFailed || !mainDetails) {\n return;\n }\n\n if (!track.details && newDetails.hasProgramDateTime && mainDetails.hasProgramDateTime) {\n // Make sure our audio rendition is aligned with the \"main\" rendition, using\n // pdt as our reference times.\n Object(_utils_discontinuities__WEBPACK_IMPORTED_MODULE_12__[\"alignMediaPlaylistByPDT\"])(newDetails, mainDetails);\n sliding = newDetails.fragments[0].start;\n } else {\n sliding = this.alignPlaylists(newDetails, track.details);\n }\n }\n\n track.details = newDetails;\n this.levelLastLoaded = trackId; // compute start position if we are aligned with the main playlist\n\n if (!this.startFragRequested && (this.mainDetails || !newDetails.live)) {\n this.setStartPosition(track.details, sliding);\n } // only switch back to IDLE state if we were waiting for track to start downloading a new fragment\n\n\n if (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_TRACK && !this.waitForCdnTuneIn(newDetails)) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n } // trigger handler right now\n\n\n this.tick();\n };\n\n _proto._handleFragmentLoadProgress = function _handleFragmentLoadProgress(data) {\n var _frag$initSegment;\n\n var frag = data.frag,\n part = data.part,\n payload = data.payload;\n var config = this.config,\n trackId = this.trackId,\n levels = this.levels;\n\n if (!levels) {\n this.warn(\"Audio tracks were reset while fragment load was in progress. Fragment \" + frag.sn + \" of level \" + frag.level + \" will not be buffered\");\n return;\n }\n\n var track = levels[trackId];\n console.assert(track, 'Audio track is defined on fragment load progress');\n var details = track.details;\n console.assert(details, 'Audio track details are defined on fragment load progress');\n var audioCodec = config.defaultAudioCodec || track.audioCodec || 'mp4a.40.2';\n var transmuxer = this.transmuxer;\n\n if (!transmuxer) {\n transmuxer = this.transmuxer = new _demux_transmuxer_interface__WEBPACK_IMPORTED_MODULE_9__[\"default\"](this.hls, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this));\n } // Check if we have video initPTS\n // If not we need to wait for it\n\n\n var initPTS = this.initPTS[frag.cc];\n var initSegmentData = (_frag$initSegment = frag.initSegment) === null || _frag$initSegment === void 0 ? void 0 : _frag$initSegment.data;\n\n if (initPTS !== undefined) {\n // this.log(`Transmuxing ${sn} of [${details.startSN} ,${details.endSN}],track ${trackId}`);\n // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n var accurateTimeOffset = false; // details.PTSKnown || !details.live;\n\n var partIndex = part ? part.index : -1;\n var partial = partIndex !== -1;\n var chunkMeta = new _types_transmuxer__WEBPACK_IMPORTED_MODULE_10__[\"ChunkMetadata\"](frag.level, frag.sn, frag.stats.chunkCount, payload.byteLength, partIndex, partial);\n transmuxer.push(payload, initSegmentData, audioCodec, '', frag, part, details.totalduration, accurateTimeOffset, chunkMeta, initPTS);\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_14__[\"logger\"].log(\"Unknown video PTS for cc \" + frag.cc + \", waiting for video PTS before demuxing audio frag \" + frag.sn + \" of [\" + details.startSN + \" ,\" + details.endSN + \"],track \" + trackId);\n\n var _this$waitingData = this.waitingData = this.waitingData || {\n frag: frag,\n part: part,\n cache: new _demux_chunk_cache__WEBPACK_IMPORTED_MODULE_8__[\"default\"](),\n complete: false\n },\n cache = _this$waitingData.cache;\n\n cache.push(new Uint8Array(payload));\n this.waitingVideoCC = this.videoTrackCC;\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_INIT_PTS;\n }\n };\n\n _proto._handleFragmentLoadComplete = function _handleFragmentLoadComplete(fragLoadedData) {\n if (this.waitingData) {\n this.waitingData.complete = true;\n return;\n }\n\n _BaseStreamController.prototype._handleFragmentLoadComplete.call(this, fragLoadedData);\n };\n\n _proto.onBufferReset = function\n /* event: Events.BUFFER_RESET */\n onBufferReset() {\n // reset reference to sourcebuffers\n this.mediaBuffer = this.videoBuffer = null;\n this.loadedmetadata = false;\n };\n\n _proto.onBufferCreated = function onBufferCreated(event, data) {\n var audioTrack = data.tracks.audio;\n\n if (audioTrack) {\n this.mediaBuffer = audioTrack.buffer;\n }\n\n if (data.tracks.video) {\n this.videoBuffer = data.tracks.video.buffer;\n }\n };\n\n _proto.onFragBuffered = function onFragBuffered(event, data) {\n var frag = data.frag,\n part = data.part;\n\n if (frag.type !== _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO) {\n return;\n }\n\n if (this.fragContextChanged(frag)) {\n // If a level switch was requested while a fragment was buffering, it will emit the FRAG_BUFFERED event upon completion\n // Avoid setting state back to IDLE or concluding the audio switch; otherwise, the switched-to track will not buffer\n this.warn(\"Fragment \" + frag.sn + (part ? ' p: ' + part.index : '') + \" of level \" + frag.level + \" finished buffering, but was aborted. state: \" + this.state + \", audioSwitch: \" + this.audioSwitch);\n return;\n }\n\n if (frag.sn !== 'initSegment') {\n this.fragPrevious = frag;\n\n if (this.audioSwitch) {\n this.audioSwitch = false;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACK_SWITCHED, {\n id: this.trackId\n });\n }\n }\n\n this.fragBufferedComplete(frag, part);\n };\n\n _proto.onError = function onError(event, data) {\n switch (data.details) {\n case _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].FRAG_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].FRAG_LOAD_TIMEOUT:\n case _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].KEY_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].KEY_LOAD_TIMEOUT:\n // TODO: Skip fragments that do not belong to this.fragCurrent audio-group id\n this.onFragmentOrKeyLoadError(_types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO, data);\n break;\n\n case _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].AUDIO_TRACK_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].AUDIO_TRACK_LOAD_TIMEOUT:\n // when in ERROR state, don't switch back to IDLE state in case a non-fatal error is received\n if (this.state !== _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].ERROR && this.state !== _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].STOPPED) {\n // if fatal error, stop processing, otherwise move to IDLE to retry loading\n this.state = data.fatal ? _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].ERROR : _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n this.warn(data.details + \" while loading frag, switching to \" + this.state + \" state\");\n }\n\n break;\n\n case _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].BUFFER_FULL_ERROR:\n // if in appending state\n if (data.parent === 'audio' && (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSING || this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSED)) {\n var flushBuffer = true;\n var bufferedInfo = this.getFwdBufferInfo(this.mediaBuffer, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO); // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end\n // reduce max buf len if current position is buffered\n\n if (bufferedInfo && bufferedInfo.len > 0.5) {\n flushBuffer = !this.reduceMaxBufferLength(bufferedInfo.len);\n }\n\n if (flushBuffer) {\n // current position is not buffered, but browser is still complaining about buffer full error\n // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n // in that case flush the whole audio buffer to recover\n this.warn('Buffer full error also media.currentTime is not buffered, flush audio buffer');\n this.fragCurrent = null;\n\n _BaseStreamController.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, 'audio');\n }\n\n this.resetLoadingState();\n }\n\n break;\n\n default:\n break;\n }\n };\n\n _proto.onBufferFlushed = function onBufferFlushed(event, _ref3) {\n var type = _ref3.type;\n\n if (type === _loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO) {\n this.bufferFlushed = true;\n }\n };\n\n _proto._handleTransmuxComplete = function _handleTransmuxComplete(transmuxResult) {\n var _id3$samples;\n\n var id = 'audio';\n var hls = this.hls;\n var remuxResult = transmuxResult.remuxResult,\n chunkMeta = transmuxResult.chunkMeta;\n var context = this.getCurrentContext(chunkMeta);\n\n if (!context) {\n this.warn(\"The loading context changed while buffering fragment \" + chunkMeta.sn + \" of level \" + chunkMeta.level + \". This chunk will not be buffered.\");\n this.resetLiveStartWhenNotLoaded(chunkMeta.level);\n return;\n }\n\n var frag = context.frag,\n part = context.part;\n var audio = remuxResult.audio,\n text = remuxResult.text,\n id3 = remuxResult.id3,\n initSegment = remuxResult.initSegment; // Check if the current fragment has been aborted. We check this by first seeing if we're still playing the current level.\n // If we are, subsequently check if the currently loading fragment (fragCurrent) has changed.\n\n if (this.fragContextChanged(frag)) {\n return;\n }\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSING;\n\n if (this.audioSwitch && audio) {\n this.completeAudioSwitch();\n }\n\n if (initSegment !== null && initSegment !== void 0 && initSegment.tracks) {\n this._bufferInitSegment(initSegment.tracks, frag, chunkMeta);\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_PARSING_INIT_SEGMENT, {\n frag: frag,\n id: id,\n tracks: initSegment.tracks\n }); // Only flush audio from old audio tracks when PTS is known on new audio track\n }\n\n if (audio) {\n var startPTS = audio.startPTS,\n endPTS = audio.endPTS,\n startDTS = audio.startDTS,\n endDTS = audio.endDTS;\n\n if (part) {\n part.elementaryStreams[_loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO] = {\n startPTS: startPTS,\n endPTS: endPTS,\n startDTS: startDTS,\n endDTS: endDTS\n };\n }\n\n frag.setElementaryStreamInfo(_loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO, startPTS, endPTS, startDTS, endDTS);\n this.bufferFragmentData(audio, frag, part, chunkMeta);\n }\n\n if (id3 !== null && id3 !== void 0 && (_id3$samples = id3.samples) !== null && _id3$samples !== void 0 && _id3$samples.length) {\n var emittedID3 = _extends({\n frag: frag,\n id: id\n }, id3);\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_PARSING_METADATA, emittedID3);\n }\n\n if (text) {\n var emittedText = _extends({\n frag: frag,\n id: id\n }, text);\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].FRAG_PARSING_USERDATA, emittedText);\n }\n };\n\n _proto._bufferInitSegment = function _bufferInitSegment(tracks, frag, chunkMeta) {\n if (this.state !== _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSING) {\n return;\n } // delete any video track found on audio transmuxer\n\n\n if (tracks.video) {\n delete tracks.video;\n } // include levelCodec in audio and video tracks\n\n\n var track = tracks.audio;\n\n if (!track) {\n return;\n }\n\n track.levelCodec = track.codec;\n track.id = 'audio';\n this.log(\"Init audio buffer, container:\" + track.container + \", codecs[parsed]=[\" + track.codec + \"]\");\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_CODECS, tracks);\n var initSegment = track.initSegment;\n\n if (initSegment !== null && initSegment !== void 0 && initSegment.byteLength) {\n var segment = {\n type: 'audio',\n frag: frag,\n part: null,\n chunkMeta: chunkMeta,\n parent: frag.type,\n data: initSegment\n };\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].BUFFER_APPENDING, segment);\n } // trigger handler right now\n\n\n this.tick();\n };\n\n _proto.loadFragment = function loadFragment(frag, trackDetails, targetBufferTime) {\n // only load if fragment is not loaded or if in audio switch\n var fragState = this.fragmentTracker.getState(frag);\n this.fragCurrent = frag; // we force a frag loading in audio switch as fragment tracker might not have evicted previous frags in case of quick audio switch\n\n if (this.audioSwitch || fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_4__[\"FragmentState\"].NOT_LOADED || fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_4__[\"FragmentState\"].PARTIAL) {\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag);\n } else if (trackDetails.live && !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(this.initPTS[frag.cc])) {\n this.log(\"Waiting for video PTS in continuity counter \" + frag.cc + \" of live stream before loading audio fragment \" + frag.sn + \" of level \" + this.trackId);\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_INIT_PTS;\n } else {\n this.startFragRequested = true;\n\n _BaseStreamController.prototype.loadFragment.call(this, frag, trackDetails, targetBufferTime);\n }\n }\n };\n\n _proto.completeAudioSwitch = function completeAudioSwitch() {\n var hls = this.hls,\n media = this.media,\n trackId = this.trackId;\n\n if (media) {\n this.log('Switching audio track : flushing all audio');\n\n _BaseStreamController.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, 'audio');\n }\n\n this.audioSwitch = false;\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].AUDIO_TRACK_SWITCHED, {\n id: trackId\n });\n };\n\n return AudioStreamController;\n}(_base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AudioStreamController);\n\n/***/ }),\n\n/***/ \"./src/controller/audio-track-controller.ts\":\n/*!**************************************************!*\\\n !*** ./src/controller/audio-track-controller.ts ***!\n \\**************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _base_playlist_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base-playlist-controller */ \"./src/controller/base-playlist-controller.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\nvar AudioTrackController = /*#__PURE__*/function (_BasePlaylistControll) {\n _inheritsLoose(AudioTrackController, _BasePlaylistControll);\n\n function AudioTrackController(hls) {\n var _this;\n\n _this = _BasePlaylistControll.call(this, hls, '[audio-track-controller]') || this;\n _this.tracks = [];\n _this.groupId = null;\n _this.tracksInGroup = [];\n _this.trackId = -1;\n _this.trackName = '';\n _this.selectDefaultTrack = true;\n\n _this.registerListeners();\n\n return _this;\n }\n\n var _proto = AudioTrackController.prototype;\n\n _proto.registerListeners = function registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto.destroy = function destroy() {\n this.unregisterListeners();\n this.tracks.length = 0;\n this.tracksInGroup.length = 0;\n\n _BasePlaylistControll.prototype.destroy.call(this);\n };\n\n _proto.onManifestLoading = function onManifestLoading() {\n this.tracks = [];\n this.groupId = null;\n this.tracksInGroup = [];\n this.trackId = -1;\n this.trackName = '';\n this.selectDefaultTrack = true;\n };\n\n _proto.onManifestParsed = function onManifestParsed(event, data) {\n this.tracks = data.audioTracks || [];\n };\n\n _proto.onAudioTrackLoaded = function onAudioTrackLoaded(event, data) {\n var id = data.id,\n details = data.details;\n var currentTrack = this.tracksInGroup[id];\n\n if (!currentTrack) {\n this.warn(\"Invalid audio track id \" + id);\n return;\n }\n\n var curDetails = currentTrack.details;\n currentTrack.details = data.details;\n this.log(\"audioTrack \" + id + \" loaded [\" + details.startSN + \"-\" + details.endSN + \"]\");\n\n if (id === this.trackId) {\n this.retryCount = 0;\n this.playlistLoaded(id, data, curDetails);\n }\n };\n\n _proto.onLevelLoading = function onLevelLoading(event, data) {\n this.switchLevel(data.level);\n };\n\n _proto.onLevelSwitching = function onLevelSwitching(event, data) {\n this.switchLevel(data.level);\n };\n\n _proto.switchLevel = function switchLevel(levelIndex) {\n var levelInfo = this.hls.levels[levelIndex];\n\n if (!(levelInfo !== null && levelInfo !== void 0 && levelInfo.audioGroupIds)) {\n return;\n }\n\n var audioGroupId = levelInfo.audioGroupIds[levelInfo.urlId];\n\n if (this.groupId !== audioGroupId) {\n this.groupId = audioGroupId;\n var audioTracks = this.tracks.filter(function (track) {\n return !audioGroupId || track.groupId === audioGroupId;\n }); // Disable selectDefaultTrack if there are no default tracks\n\n if (this.selectDefaultTrack && !audioTracks.some(function (track) {\n return track.default;\n })) {\n this.selectDefaultTrack = false;\n }\n\n this.tracksInGroup = audioTracks;\n var audioTracksUpdated = {\n audioTracks: audioTracks\n };\n this.log(\"Updating audio tracks, \" + audioTracks.length + \" track(s) found in \\\"\" + audioGroupId + \"\\\" group-id\");\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].AUDIO_TRACKS_UPDATED, audioTracksUpdated);\n this.selectInitialTrack();\n }\n };\n\n _proto.onError = function onError(event, data) {\n _BasePlaylistControll.prototype.onError.call(this, event, data);\n\n if (data.fatal || !data.context) {\n return;\n }\n\n if (data.context.type === _types_loader__WEBPACK_IMPORTED_MODULE_3__[\"PlaylistContextType\"].AUDIO_TRACK && data.context.id === this.trackId && data.context.groupId === this.groupId) {\n this.retryLoadingOrFail(data);\n }\n };\n\n _proto.setAudioTrack = function setAudioTrack(newId) {\n var tracks = this.tracksInGroup; // check if level idx is valid\n\n if (newId < 0 || newId >= tracks.length) {\n this.warn('Invalid id passed to audio-track controller');\n return;\n } // stopping live reloading timer if any\n\n\n this.clearTimer();\n var lastTrack = tracks[this.trackId];\n this.log(\"Now switching to audio-track index \" + newId);\n var track = tracks[newId];\n var id = track.id,\n _track$groupId = track.groupId,\n groupId = _track$groupId === void 0 ? '' : _track$groupId,\n name = track.name,\n type = track.type,\n url = track.url;\n this.trackId = newId;\n this.trackName = name;\n this.selectDefaultTrack = false;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].AUDIO_TRACK_SWITCHING, {\n id: id,\n groupId: groupId,\n name: name,\n type: type,\n url: url\n }); // Do not reload track unless live\n\n if (track.details && !track.details.live) {\n return;\n }\n\n var hlsUrlParameters = this.switchParams(track.url, lastTrack === null || lastTrack === void 0 ? void 0 : lastTrack.details);\n this.loadPlaylist(hlsUrlParameters);\n };\n\n _proto.selectInitialTrack = function selectInitialTrack() {\n var audioTracks = this.tracksInGroup;\n console.assert(audioTracks.length, 'Initial audio track should be selected when tracks are known');\n var currentAudioTrackName = this.trackName;\n var trackId = this.findTrackId(currentAudioTrackName) || this.findTrackId();\n\n if (trackId !== -1) {\n this.setAudioTrack(trackId);\n } else {\n this.warn(\"No track found for running audio group-ID: \" + this.groupId);\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].AUDIO_TRACK_LOAD_ERROR,\n fatal: true\n });\n }\n };\n\n _proto.findTrackId = function findTrackId(name) {\n var audioTracks = this.tracksInGroup;\n\n for (var i = 0; i < audioTracks.length; i++) {\n var track = audioTracks[i];\n\n if (!this.selectDefaultTrack || track.default) {\n if (!name || name === track.name) {\n return track.id;\n }\n }\n }\n\n return -1;\n };\n\n _proto.loadPlaylist = function loadPlaylist(hlsUrlParameters) {\n var audioTrack = this.tracksInGroup[this.trackId];\n\n if (this.shouldLoadTrack(audioTrack)) {\n var id = audioTrack.id;\n var groupId = audioTrack.groupId;\n var url = audioTrack.url;\n\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(\"Could not construct new URL with HLS Delivery Directives: \" + error);\n }\n } // track not retrieved yet, or live playlist we need to (re)load it\n\n\n this.log(\"loading audio-track playlist for id: \" + id);\n this.clearTimer();\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].AUDIO_TRACK_LOADING, {\n url: url,\n id: id,\n groupId: groupId,\n deliveryDirectives: hlsUrlParameters || null\n });\n }\n };\n\n _createClass(AudioTrackController, [{\n key: \"audioTracks\",\n get: function get() {\n return this.tracksInGroup;\n }\n }, {\n key: \"audioTrack\",\n get: function get() {\n return this.trackId;\n },\n set: function set(newId) {\n // If audio track is selected from API then don't choose from the manifest default track\n this.selectDefaultTrack = false;\n this.setAudioTrack(newId);\n }\n }]);\n\n return AudioTrackController;\n}(_base_playlist_controller__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AudioTrackController);\n\n/***/ }),\n\n/***/ \"./src/controller/base-playlist-controller.ts\":\n/*!****************************************************!*\\\n !*** ./src/controller/base-playlist-controller.ts ***!\n \\****************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BasePlaylistController; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _types_level__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../types/level */ \"./src/types/level.ts\");\n/* harmony import */ var _level_helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./level-helper */ \"./src/controller/level-helper.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n\n\n\n\n\n\n\nvar BasePlaylistController = /*#__PURE__*/function () {\n function BasePlaylistController(hls, logPrefix) {\n this.hls = void 0;\n this.timer = -1;\n this.canLoad = false;\n this.retryCount = 0;\n this.log = void 0;\n this.warn = void 0;\n this.log = _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].log.bind(_utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"], logPrefix + \":\");\n this.warn = _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn.bind(_utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"], logPrefix + \":\");\n this.hls = hls;\n }\n\n var _proto = BasePlaylistController.prototype;\n\n _proto.destroy = function destroy() {\n this.clearTimer(); // @ts-ignore\n\n this.hls = this.log = this.warn = null;\n };\n\n _proto.onError = function onError(event, data) {\n if (data.fatal && data.type === _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorTypes\"].NETWORK_ERROR) {\n this.clearTimer();\n }\n };\n\n _proto.clearTimer = function clearTimer() {\n clearTimeout(this.timer);\n this.timer = -1;\n };\n\n _proto.startLoad = function startLoad() {\n this.canLoad = true;\n this.retryCount = 0;\n this.loadPlaylist();\n };\n\n _proto.stopLoad = function stopLoad() {\n this.canLoad = false;\n this.clearTimer();\n };\n\n _proto.switchParams = function switchParams(playlistUri, previous) {\n var renditionReports = previous === null || previous === void 0 ? void 0 : previous.renditionReports;\n\n if (renditionReports) {\n for (var i = 0; i < renditionReports.length; i++) {\n var attr = renditionReports[i];\n var uri = '' + attr.URI;\n\n if (uri === playlistUri.substr(-uri.length)) {\n var msn = parseInt(attr['LAST-MSN']);\n var part = parseInt(attr['LAST-PART']);\n\n if (previous && this.hls.config.lowLatencyMode) {\n var currentGoal = Math.min(previous.age - previous.partTarget, previous.targetduration);\n\n if (part !== undefined && currentGoal > previous.partTarget) {\n part += 1;\n }\n }\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(msn)) {\n return new _types_level__WEBPACK_IMPORTED_MODULE_1__[\"HlsUrlParameters\"](msn, Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(part) ? part : undefined, _types_level__WEBPACK_IMPORTED_MODULE_1__[\"HlsSkip\"].No);\n }\n }\n }\n }\n };\n\n _proto.loadPlaylist = function loadPlaylist(hlsUrlParameters) {};\n\n _proto.shouldLoadTrack = function shouldLoadTrack(track) {\n return this.canLoad && track && !!track.url && (!track.details || track.details.live);\n };\n\n _proto.playlistLoaded = function playlistLoaded(index, data, previousDetails) {\n var _this = this;\n\n var details = data.details,\n stats = data.stats; // Set last updated date-time\n\n var elapsed = stats.loading.end ? Math.max(0, self.performance.now() - stats.loading.end) : 0;\n details.advancedDateTime = Date.now() - elapsed; // if current playlist is a live playlist, arm a timer to reload it\n\n if (details.live || previousDetails !== null && previousDetails !== void 0 && previousDetails.live) {\n details.reloaded(previousDetails);\n\n if (previousDetails) {\n this.log(\"live playlist \" + index + \" \" + (details.advanced ? 'REFRESHED ' + details.lastPartSn + '-' + details.lastPartIndex : 'MISSED'));\n } // Merge live playlists to adjust fragment starts and fill in delta playlist skipped segments\n\n\n if (previousDetails && details.fragments.length > 0) {\n Object(_level_helper__WEBPACK_IMPORTED_MODULE_2__[\"mergeDetails\"])(previousDetails, details);\n }\n\n if (!this.canLoad || !details.live) {\n return;\n }\n\n var deliveryDirectives;\n var msn = undefined;\n var part = undefined;\n\n if (details.canBlockReload && details.endSN && details.advanced) {\n // Load level with LL-HLS delivery directives\n var lowLatencyMode = this.hls.config.lowLatencyMode;\n var lastPartSn = details.lastPartSn;\n var endSn = details.endSN;\n var lastPartIndex = details.lastPartIndex;\n var hasParts = lastPartIndex !== -1;\n var lastPart = lastPartSn === endSn; // When low latency mode is disabled, we'll skip part requests once the last part index is found\n\n var nextSnStartIndex = lowLatencyMode ? 0 : lastPartIndex;\n\n if (hasParts) {\n msn = lastPart ? endSn + 1 : lastPartSn;\n part = lastPart ? nextSnStartIndex : lastPartIndex + 1;\n } else {\n msn = endSn + 1;\n } // Low-Latency CDN Tune-in: \"age\" header and time since load indicates we're behind by more than one part\n // Update directives to obtain the Playlist that has the estimated additional duration of media\n\n\n var lastAdvanced = details.age;\n var cdnAge = lastAdvanced + details.ageHeader;\n var currentGoal = Math.min(cdnAge - details.partTarget, details.targetduration * 1.5);\n\n if (currentGoal > 0) {\n if (previousDetails && currentGoal > previousDetails.tuneInGoal) {\n // If we attempted to get the next or latest playlist update, but currentGoal increased,\n // then we either can't catchup, or the \"age\" header cannot be trusted.\n this.warn(\"CDN Tune-in goal increased from: \" + previousDetails.tuneInGoal + \" to: \" + currentGoal + \" with playlist age: \" + details.age);\n currentGoal = 0;\n } else {\n var segments = Math.floor(currentGoal / details.targetduration);\n msn += segments;\n\n if (part !== undefined) {\n var parts = Math.round(currentGoal % details.targetduration / details.partTarget);\n part += parts;\n }\n\n this.log(\"CDN Tune-in age: \" + details.ageHeader + \"s last advanced \" + lastAdvanced.toFixed(2) + \"s goal: \" + currentGoal + \" skip sn \" + segments + \" to part \" + part);\n }\n\n details.tuneInGoal = currentGoal;\n }\n\n deliveryDirectives = this.getDeliveryDirectives(details, data.deliveryDirectives, msn, part);\n\n if (lowLatencyMode || !lastPart) {\n this.loadPlaylist(deliveryDirectives);\n return;\n }\n } else {\n deliveryDirectives = this.getDeliveryDirectives(details, data.deliveryDirectives, msn, part);\n }\n\n var reloadInterval = Object(_level_helper__WEBPACK_IMPORTED_MODULE_2__[\"computeReloadInterval\"])(details, stats);\n\n if (msn !== undefined && details.canBlockReload) {\n reloadInterval -= details.partTarget || 1;\n }\n\n this.log(\"reload live playlist \" + index + \" in \" + Math.round(reloadInterval) + \" ms\");\n this.timer = self.setTimeout(function () {\n return _this.loadPlaylist(deliveryDirectives);\n }, reloadInterval);\n } else {\n this.clearTimer();\n }\n };\n\n _proto.getDeliveryDirectives = function getDeliveryDirectives(details, previousDeliveryDirectives, msn, part) {\n var skip = Object(_types_level__WEBPACK_IMPORTED_MODULE_1__[\"getSkipValue\"])(details, msn);\n\n if (previousDeliveryDirectives !== null && previousDeliveryDirectives !== void 0 && previousDeliveryDirectives.skip && details.deltaUpdateFailed) {\n msn = previousDeliveryDirectives.msn;\n part = previousDeliveryDirectives.part;\n skip = _types_level__WEBPACK_IMPORTED_MODULE_1__[\"HlsSkip\"].No;\n }\n\n return new _types_level__WEBPACK_IMPORTED_MODULE_1__[\"HlsUrlParameters\"](msn, part, skip);\n };\n\n _proto.retryLoadingOrFail = function retryLoadingOrFail(errorEvent) {\n var _this2 = this;\n\n var config = this.hls.config;\n var retry = this.retryCount < config.levelLoadingMaxRetry;\n\n if (retry) {\n var _errorEvent$context;\n\n this.retryCount++;\n\n if (errorEvent.details.indexOf('LoadTimeOut') > -1 && (_errorEvent$context = errorEvent.context) !== null && _errorEvent$context !== void 0 && _errorEvent$context.deliveryDirectives) {\n // The LL-HLS request already timed out so retry immediately\n this.warn(\"retry playlist loading #\" + this.retryCount + \" after \\\"\" + errorEvent.details + \"\\\"\");\n this.loadPlaylist();\n } else {\n // exponential backoff capped to max retry timeout\n var delay = Math.min(Math.pow(2, this.retryCount) * config.levelLoadingRetryDelay, config.levelLoadingMaxRetryTimeout); // Schedule level/track reload\n\n this.timer = self.setTimeout(function () {\n return _this2.loadPlaylist();\n }, delay);\n this.warn(\"retry playlist loading #\" + this.retryCount + \" in \" + delay + \" ms after \\\"\" + errorEvent.details + \"\\\"\");\n }\n } else {\n this.warn(\"cannot recover from error \\\"\" + errorEvent.details + \"\\\"\"); // stopping live reloading timer if any\n\n this.clearTimer(); // switch error to fatal\n\n errorEvent.fatal = true;\n }\n\n return retry;\n };\n\n return BasePlaylistController;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/base-stream-controller.ts\":\n/*!**************************************************!*\\\n !*** ./src/controller/base-stream-controller.ts ***!\n \\**************************************************/\n/*! exports provided: State, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"State\", function() { return State; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BaseStreamController; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _task_loop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../task-loop */ \"./src/task-loop.ts\");\n/* harmony import */ var _fragment_tracker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fragment-tracker */ \"./src/controller/fragment-tracker.ts\");\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _types_transmuxer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../types/transmuxer */ \"./src/types/transmuxer.ts\");\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _utils_discontinuities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/discontinuities */ \"./src/utils/discontinuities.ts\");\n/* harmony import */ var _fragment_finders__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./fragment-finders */ \"./src/controller/fragment-finders.ts\");\n/* harmony import */ var _level_helper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./level-helper */ \"./src/controller/level-helper.ts\");\n/* harmony import */ var _loader_fragment_loader__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../loader/fragment-loader */ \"./src/loader/fragment-loader.ts\");\n/* harmony import */ var _crypt_decrypter__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../crypt/decrypter */ \"./src/crypt/decrypter.ts\");\n/* harmony import */ var _utils_time_ranges__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/time-ranges */ \"./src/utils/time-ranges.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n\n\n\n\n\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar State = {\n STOPPED: 'STOPPED',\n IDLE: 'IDLE',\n KEY_LOADING: 'KEY_LOADING',\n FRAG_LOADING: 'FRAG_LOADING',\n FRAG_LOADING_WAITING_RETRY: 'FRAG_LOADING_WAITING_RETRY',\n WAITING_TRACK: 'WAITING_TRACK',\n PARSING: 'PARSING',\n PARSED: 'PARSED',\n BACKTRACKING: 'BACKTRACKING',\n ENDED: 'ENDED',\n ERROR: 'ERROR',\n WAITING_INIT_PTS: 'WAITING_INIT_PTS',\n WAITING_LEVEL: 'WAITING_LEVEL'\n};\n\nvar BaseStreamController = /*#__PURE__*/function (_TaskLoop) {\n _inheritsLoose(BaseStreamController, _TaskLoop);\n\n function BaseStreamController(hls, fragmentTracker, logPrefix) {\n var _this;\n\n _this = _TaskLoop.call(this) || this;\n _this.hls = void 0;\n _this.fragPrevious = null;\n _this.fragCurrent = null;\n _this.fragmentTracker = void 0;\n _this.transmuxer = null;\n _this._state = State.STOPPED;\n _this.media = void 0;\n _this.mediaBuffer = void 0;\n _this.config = void 0;\n _this.bitrateTest = false;\n _this.lastCurrentTime = 0;\n _this.nextLoadPosition = 0;\n _this.startPosition = 0;\n _this.loadedmetadata = false;\n _this.fragLoadError = 0;\n _this.retryDate = 0;\n _this.levels = null;\n _this.fragmentLoader = void 0;\n _this.levelLastLoaded = null;\n _this.startFragRequested = false;\n _this.decrypter = void 0;\n _this.initPTS = [];\n _this.onvseeking = null;\n _this.onvended = null;\n _this.logPrefix = '';\n _this.log = void 0;\n _this.warn = void 0;\n _this.logPrefix = logPrefix;\n _this.log = _utils_logger__WEBPACK_IMPORTED_MODULE_4__[\"logger\"].log.bind(_utils_logger__WEBPACK_IMPORTED_MODULE_4__[\"logger\"], logPrefix + \":\");\n _this.warn = _utils_logger__WEBPACK_IMPORTED_MODULE_4__[\"logger\"].warn.bind(_utils_logger__WEBPACK_IMPORTED_MODULE_4__[\"logger\"], logPrefix + \":\");\n _this.hls = hls;\n _this.fragmentLoader = new _loader_fragment_loader__WEBPACK_IMPORTED_MODULE_12__[\"default\"](hls.config);\n _this.fragmentTracker = fragmentTracker;\n _this.config = hls.config;\n _this.decrypter = new _crypt_decrypter__WEBPACK_IMPORTED_MODULE_13__[\"default\"](hls, hls.config);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].KEY_LOADED, _this.onKeyLoaded, _assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = BaseStreamController.prototype;\n\n _proto.doTick = function doTick() {\n this.onTickEnd();\n };\n\n _proto.onTickEnd = function onTickEnd() {} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ;\n\n _proto.startLoad = function startLoad(startPosition) {};\n\n _proto.stopLoad = function stopLoad() {\n this.fragmentLoader.abort();\n var frag = this.fragCurrent;\n\n if (frag) {\n this.fragmentTracker.removeFragment(frag);\n }\n\n this.resetTransmuxer();\n this.fragCurrent = null;\n this.fragPrevious = null;\n this.clearInterval();\n this.clearNextTick();\n this.state = State.STOPPED;\n };\n\n _proto._streamEnded = function _streamEnded(bufferInfo, levelDetails) {\n var fragCurrent = this.fragCurrent,\n fragmentTracker = this.fragmentTracker; // we just got done loading the final fragment and there is no other buffered range after ...\n // rationale is that in case there are any buffered ranges after, it means that there are unbuffered portion in between\n // so we should not switch to ENDED in that case, to be able to buffer them\n\n if (!levelDetails.live && fragCurrent && // NOTE: Because of the way parts are currently parsed/represented in the playlist, we can end up\n // in situations where the current fragment is actually greater than levelDetails.endSN. While\n // this feels like the \"wrong place\" to account for that, this is a narrower/safer change than\n // updating e.g. M3U8Parser::parseLevelPlaylist().\n fragCurrent.sn >= levelDetails.endSN && !bufferInfo.nextStart) {\n var partList = levelDetails.partList; // Since the last part isn't guaranteed to correspond to fragCurrent for ll-hls, check instead if the last part is buffered.\n\n if (partList !== null && partList !== void 0 && partList.length) {\n var lastPart = partList[partList.length - 1]; // Checking the midpoint of the part for potential margin of error and related issues.\n // NOTE: Technically I believe parts could yield content that is < the computed duration (including potential a duration of 0)\n // and still be spec-compliant, so there may still be edge cases here. Likewise, there could be issues in end of stream\n // part mismatches for independent audio and video playlists/segments.\n\n var lastPartBuffered = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].isBuffered(this.media, lastPart.start + lastPart.duration / 2);\n return lastPartBuffered;\n }\n\n var fragState = fragmentTracker.getState(fragCurrent);\n return fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_2__[\"FragmentState\"].PARTIAL || fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_2__[\"FragmentState\"].OK;\n }\n\n return false;\n };\n\n _proto.onMediaAttached = function onMediaAttached(event, data) {\n var media = this.media = this.mediaBuffer = data.media;\n this.onvseeking = this.onMediaSeeking.bind(this);\n this.onvended = this.onMediaEnded.bind(this);\n media.addEventListener('seeking', this.onvseeking);\n media.addEventListener('ended', this.onvended);\n var config = this.config;\n\n if (this.levels && config.autoStartLoad && this.state === State.STOPPED) {\n this.startLoad(config.startPosition);\n }\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n var media = this.media;\n\n if (media !== null && media !== void 0 && media.ended) {\n this.log('MSE detaching and video ended, reset startPosition');\n this.startPosition = this.lastCurrentTime = 0;\n } // remove video listeners\n\n\n if (media) {\n media.removeEventListener('seeking', this.onvseeking);\n media.removeEventListener('ended', this.onvended);\n this.onvseeking = this.onvended = null;\n }\n\n this.media = this.mediaBuffer = null;\n this.loadedmetadata = false;\n this.fragmentTracker.removeAllFragments();\n this.stopLoad();\n };\n\n _proto.onMediaSeeking = function onMediaSeeking() {\n var config = this.config,\n fragCurrent = this.fragCurrent,\n media = this.media,\n mediaBuffer = this.mediaBuffer,\n state = this.state;\n var currentTime = media ? media.currentTime : 0;\n var bufferInfo = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].bufferInfo(mediaBuffer || media, currentTime, config.maxBufferHole);\n this.log(\"media seeking to \" + (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(currentTime) ? currentTime.toFixed(3) : currentTime) + \", state: \" + state);\n\n if (state === State.ENDED) {\n this.resetLoadingState();\n } else if (fragCurrent && !bufferInfo.len) {\n // check if we are seeking to a unbuffered area AND if frag loading is in progress\n var tolerance = config.maxFragLookUpTolerance;\n var fragStartOffset = fragCurrent.start - tolerance;\n var fragEndOffset = fragCurrent.start + fragCurrent.duration + tolerance;\n var pastFragment = currentTime > fragEndOffset; // check if the seek position is past current fragment, and if so abort loading\n\n if (currentTime < fragStartOffset || pastFragment) {\n if (pastFragment && fragCurrent.loader) {\n this.log('seeking outside of buffer while fragment load in progress, cancel fragment load');\n fragCurrent.loader.abort();\n }\n\n this.resetLoadingState();\n }\n }\n\n if (media) {\n this.lastCurrentTime = currentTime;\n } // in case seeking occurs although no media buffered, adjust startPosition and nextLoadPosition to seek target\n\n\n if (!this.loadedmetadata && !bufferInfo.len) {\n this.nextLoadPosition = this.startPosition = currentTime;\n } // Async tick to speed up processing\n\n\n this.tickImmediate();\n };\n\n _proto.onMediaEnded = function onMediaEnded() {\n // reset startPosition and lastCurrentTime to restart playback @ stream beginning\n this.startPosition = this.lastCurrentTime = 0;\n };\n\n _proto.onKeyLoaded = function onKeyLoaded(event, data) {\n if (this.state !== State.KEY_LOADING || data.frag !== this.fragCurrent || !this.levels) {\n return;\n }\n\n this.state = State.IDLE;\n var levelDetails = this.levels[data.frag.level].details;\n\n if (levelDetails) {\n this.loadFragment(data.frag, levelDetails, data.frag.start);\n }\n };\n\n _proto.onHandlerDestroying = function onHandlerDestroying() {\n this.stopLoad();\n\n _TaskLoop.prototype.onHandlerDestroying.call(this);\n };\n\n _proto.onHandlerDestroyed = function onHandlerDestroyed() {\n this.state = State.STOPPED;\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].KEY_LOADED, this.onKeyLoaded, this);\n\n if (this.fragmentLoader) {\n this.fragmentLoader.destroy();\n }\n\n if (this.decrypter) {\n this.decrypter.destroy();\n }\n\n this.hls = this.log = this.warn = this.decrypter = this.fragmentLoader = this.fragmentTracker = null;\n\n _TaskLoop.prototype.onHandlerDestroyed.call(this);\n };\n\n _proto.loadKey = function loadKey(frag, details) {\n this.log(\"Loading key for \" + frag.sn + \" of [\" + details.startSN + \"-\" + details.endSN + \"], \" + (this.logPrefix === '[stream-controller]' ? 'level' : 'track') + \" \" + frag.level);\n this.state = State.KEY_LOADING;\n this.fragCurrent = frag;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].KEY_LOADING, {\n frag: frag\n });\n };\n\n _proto.loadFragment = function loadFragment(frag, levelDetails, targetBufferTime) {\n this._loadFragForPlayback(frag, levelDetails, targetBufferTime);\n };\n\n _proto._loadFragForPlayback = function _loadFragForPlayback(frag, levelDetails, targetBufferTime) {\n var _this2 = this;\n\n var progressCallback = function progressCallback(data) {\n if (_this2.fragContextChanged(frag)) {\n _this2.warn(\"Fragment \" + frag.sn + (data.part ? ' p: ' + data.part.index : '') + \" of level \" + frag.level + \" was dropped during download.\");\n\n _this2.fragmentTracker.removeFragment(frag);\n\n return;\n }\n\n frag.stats.chunkCount++;\n\n _this2._handleFragmentLoadProgress(data);\n };\n\n this._doFragLoad(frag, levelDetails, targetBufferTime, progressCallback).then(function (data) {\n if (!data) {\n // if we're here we probably needed to backtrack or are waiting for more parts\n return;\n }\n\n _this2.fragLoadError = 0;\n var state = _this2.state;\n\n if (_this2.fragContextChanged(frag)) {\n if (state === State.FRAG_LOADING || state === State.BACKTRACKING || !_this2.fragCurrent && state === State.PARSING) {\n _this2.fragmentTracker.removeFragment(frag);\n\n _this2.state = State.IDLE;\n }\n\n return;\n }\n\n if ('payload' in data) {\n _this2.log(\"Loaded fragment \" + frag.sn + \" of level \" + frag.level);\n\n _this2.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].FRAG_LOADED, data); // Tracker backtrack must be called after onFragLoaded to update the fragment entity state to BACKTRACKED\n // This happens after handleTransmuxComplete when the worker or progressive is disabled\n\n\n if (_this2.state === State.BACKTRACKING) {\n _this2.fragmentTracker.backtrack(frag, data);\n\n _this2.resetFragmentLoading(frag);\n\n return;\n }\n } // Pass through the whole payload; controllers not implementing progressive loading receive data from this callback\n\n\n _this2._handleFragmentLoadComplete(data);\n }).catch(function (reason) {\n _this2.warn(reason);\n\n _this2.resetFragmentLoading(frag);\n });\n };\n\n _proto.flushMainBuffer = function flushMainBuffer(startOffset, endOffset, type) {\n if (type === void 0) {\n type = null;\n }\n\n if (!(startOffset - endOffset)) {\n return;\n } // When alternate audio is playing, the audio-stream-controller is responsible for the audio buffer. Otherwise,\n // passing a null type flushes both buffers\n\n\n var flushScope = {\n startOffset: startOffset,\n endOffset: endOffset,\n type: type\n }; // Reset load errors on flush\n\n this.fragLoadError = 0;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].BUFFER_FLUSHING, flushScope);\n };\n\n _proto._loadInitSegment = function _loadInitSegment(frag) {\n var _this3 = this;\n\n this._doFragLoad(frag).then(function (data) {\n if (!data || _this3.fragContextChanged(frag) || !_this3.levels) {\n throw new Error('init load aborted');\n }\n\n return data;\n }).then(function (data) {\n var hls = _this3.hls;\n var payload = data.payload;\n var decryptData = frag.decryptdata; // check to see if the payload needs to be decrypted\n\n if (payload && payload.byteLength > 0 && decryptData && decryptData.key && decryptData.iv && decryptData.method === 'AES-128') {\n var startTime = self.performance.now(); // decrypt the subtitles\n\n return _this3.decrypter.webCryptoDecrypt(new Uint8Array(payload), decryptData.key.buffer, decryptData.iv.buffer).then(function (decryptedData) {\n var endTime = self.performance.now();\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].FRAG_DECRYPTED, {\n frag: frag,\n payload: decryptedData,\n stats: {\n tstart: startTime,\n tdecrypt: endTime\n }\n });\n data.payload = decryptedData;\n return data;\n });\n }\n\n return data;\n }).then(function (data) {\n var fragCurrent = _this3.fragCurrent,\n hls = _this3.hls,\n levels = _this3.levels;\n\n if (!levels) {\n throw new Error('init load aborted, missing levels');\n }\n\n var details = levels[frag.level].details;\n console.assert(details, 'Level details are defined when init segment is loaded');\n var stats = frag.stats;\n _this3.state = State.IDLE;\n _this3.fragLoadError = 0;\n frag.data = new Uint8Array(data.payload);\n stats.parsing.start = stats.buffering.start = self.performance.now();\n stats.parsing.end = stats.buffering.end = self.performance.now(); // Silence FRAG_BUFFERED event if fragCurrent is null\n\n if (data.frag === fragCurrent) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].FRAG_BUFFERED, {\n stats: stats,\n frag: fragCurrent,\n part: null,\n id: frag.type\n });\n }\n\n _this3.tick();\n }).catch(function (reason) {\n _this3.warn(reason);\n\n _this3.resetFragmentLoading(frag);\n });\n };\n\n _proto.fragContextChanged = function fragContextChanged(frag) {\n var fragCurrent = this.fragCurrent;\n return !frag || !fragCurrent || frag.level !== fragCurrent.level || frag.sn !== fragCurrent.sn || frag.urlId !== fragCurrent.urlId;\n };\n\n _proto.fragBufferedComplete = function fragBufferedComplete(frag, part) {\n var media = this.mediaBuffer ? this.mediaBuffer : this.media;\n this.log(\"Buffered \" + frag.type + \" sn: \" + frag.sn + (part ? ' part: ' + part.index : '') + \" of \" + (this.logPrefix === '[stream-controller]' ? 'level' : 'track') + \" \" + frag.level + \" \" + _utils_time_ranges__WEBPACK_IMPORTED_MODULE_14__[\"default\"].toString(_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].getBuffered(media)));\n this.state = State.IDLE;\n this.tick();\n };\n\n _proto._handleFragmentLoadComplete = function _handleFragmentLoadComplete(fragLoadedEndData) {\n var transmuxer = this.transmuxer;\n\n if (!transmuxer) {\n return;\n }\n\n var frag = fragLoadedEndData.frag,\n part = fragLoadedEndData.part,\n partsLoaded = fragLoadedEndData.partsLoaded; // If we did not load parts, or loaded all parts, we have complete (not partial) fragment data\n\n var complete = !partsLoaded || partsLoaded.length === 0 || partsLoaded.some(function (fragLoaded) {\n return !fragLoaded;\n });\n var chunkMeta = new _types_transmuxer__WEBPACK_IMPORTED_MODULE_7__[\"ChunkMetadata\"](frag.level, frag.sn, frag.stats.chunkCount + 1, 0, part ? part.index : -1, !complete);\n transmuxer.flush(chunkMeta);\n } // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ;\n\n _proto._handleFragmentLoadProgress = function _handleFragmentLoadProgress(frag) {};\n\n _proto._doFragLoad = function _doFragLoad(frag, details, targetBufferTime, progressCallback) {\n var _this4 = this;\n\n if (targetBufferTime === void 0) {\n targetBufferTime = null;\n }\n\n if (!this.levels) {\n throw new Error('frag load aborted, missing levels');\n }\n\n targetBufferTime = Math.max(frag.start, targetBufferTime || 0);\n\n if (this.config.lowLatencyMode && details) {\n var partList = details.partList;\n\n if (partList && progressCallback) {\n if (targetBufferTime > frag.end && details.fragmentHint) {\n frag = details.fragmentHint;\n }\n\n var partIndex = this.getNextPart(partList, frag, targetBufferTime);\n\n if (partIndex > -1) {\n var part = partList[partIndex];\n this.log(\"Loading part sn: \" + frag.sn + \" p: \" + part.index + \" cc: \" + frag.cc + \" of playlist [\" + details.startSN + \"-\" + details.endSN + \"] parts [0-\" + partIndex + \"-\" + (partList.length - 1) + \"] \" + (this.logPrefix === '[stream-controller]' ? 'level' : 'track') + \": \" + frag.level + \", target: \" + parseFloat(targetBufferTime.toFixed(3)));\n this.nextLoadPosition = part.start + part.duration;\n this.state = State.FRAG_LOADING;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].FRAG_LOADING, {\n frag: frag,\n part: partList[partIndex],\n targetBufferTime: targetBufferTime\n });\n return this.doFragPartsLoad(frag, partList, partIndex, progressCallback).catch(function (error) {\n return _this4.handleFragLoadError(error);\n });\n } else if (!frag.url || this.loadedEndOfParts(partList, targetBufferTime)) {\n // Fragment hint has no parts\n return Promise.resolve(null);\n }\n }\n }\n\n this.log(\"Loading fragment \" + frag.sn + \" cc: \" + frag.cc + \" \" + (details ? 'of [' + details.startSN + '-' + details.endSN + '] ' : '') + (this.logPrefix === '[stream-controller]' ? 'level' : 'track') + \": \" + frag.level + \", target: \" + parseFloat(targetBufferTime.toFixed(3))); // Don't update nextLoadPosition for fragments which are not buffered\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(frag.sn) && !this.bitrateTest) {\n this.nextLoadPosition = frag.start + frag.duration;\n }\n\n this.state = State.FRAG_LOADING;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].FRAG_LOADING, {\n frag: frag,\n targetBufferTime: targetBufferTime\n });\n return this.fragmentLoader.load(frag, progressCallback).catch(function (error) {\n return _this4.handleFragLoadError(error);\n });\n };\n\n _proto.doFragPartsLoad = function doFragPartsLoad(frag, partList, partIndex, progressCallback) {\n var _this5 = this;\n\n return new Promise(function (resolve, reject) {\n var partsLoaded = [];\n\n var loadPartIndex = function loadPartIndex(index) {\n var part = partList[index];\n\n _this5.fragmentLoader.loadPart(frag, part, progressCallback).then(function (partLoadedData) {\n partsLoaded[part.index] = partLoadedData;\n var loadedPart = partLoadedData.part;\n\n _this5.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].FRAG_LOADED, partLoadedData);\n\n var nextPart = partList[index + 1];\n\n if (nextPart && nextPart.fragment === frag) {\n loadPartIndex(index + 1);\n } else {\n return resolve({\n frag: frag,\n part: loadedPart,\n partsLoaded: partsLoaded\n });\n }\n }).catch(reject);\n };\n\n loadPartIndex(partIndex);\n });\n };\n\n _proto.handleFragLoadError = function handleFragLoadError(_ref) {\n var data = _ref.data;\n\n if (data && data.details === _errors__WEBPACK_IMPORTED_MODULE_6__[\"ErrorDetails\"].INTERNAL_ABORTED) {\n this.handleFragLoadAborted(data.frag, data.part);\n } else {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].ERROR, data);\n }\n\n return null;\n };\n\n _proto._handleTransmuxerFlush = function _handleTransmuxerFlush(chunkMeta) {\n var context = this.getCurrentContext(chunkMeta);\n\n if (!context || this.state !== State.PARSING) {\n if (!this.fragCurrent) {\n this.state = State.IDLE;\n }\n\n return;\n }\n\n var frag = context.frag,\n part = context.part,\n level = context.level;\n var now = self.performance.now();\n frag.stats.parsing.end = now;\n\n if (part) {\n part.stats.parsing.end = now;\n }\n\n this.updateLevelTiming(frag, part, level, chunkMeta.partial);\n };\n\n _proto.getCurrentContext = function getCurrentContext(chunkMeta) {\n var levels = this.levels;\n var levelIndex = chunkMeta.level,\n sn = chunkMeta.sn,\n partIndex = chunkMeta.part;\n\n if (!levels || !levels[levelIndex]) {\n this.warn(\"Levels object was unset while buffering fragment \" + sn + \" of level \" + levelIndex + \". The current chunk will not be buffered.\");\n return null;\n }\n\n var level = levels[levelIndex];\n var part = partIndex > -1 ? Object(_level_helper__WEBPACK_IMPORTED_MODULE_11__[\"getPartWith\"])(level, sn, partIndex) : null;\n var frag = part ? part.fragment : Object(_level_helper__WEBPACK_IMPORTED_MODULE_11__[\"getFragmentWithSN\"])(level, sn, this.fragCurrent);\n\n if (!frag) {\n return null;\n }\n\n return {\n frag: frag,\n part: part,\n level: level\n };\n };\n\n _proto.bufferFragmentData = function bufferFragmentData(data, frag, part, chunkMeta) {\n if (!data || this.state !== State.PARSING) {\n return;\n }\n\n var data1 = data.data1,\n data2 = data.data2;\n var buffer = data1;\n\n if (data1 && data2) {\n // Combine the moof + mdat so that we buffer with a single append\n buffer = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_8__[\"appendUint8Array\"])(data1, data2);\n }\n\n if (!buffer || !buffer.length) {\n return;\n }\n\n var segment = {\n type: data.type,\n frag: frag,\n part: part,\n chunkMeta: chunkMeta,\n parent: frag.type,\n data: buffer\n };\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].BUFFER_APPENDING, segment);\n\n if (data.dropped && data.independent && !part) {\n // Clear buffer so that we reload previous segments sequentially if required\n this.flushBufferGap(frag);\n }\n };\n\n _proto.flushBufferGap = function flushBufferGap(frag) {\n var media = this.media;\n\n if (!media) {\n return;\n } // If currentTime is not buffered, clear the back buffer so that we can backtrack as much as needed\n\n\n if (!_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].isBuffered(media, media.currentTime)) {\n this.flushMainBuffer(0, frag.start);\n return;\n } // Remove back-buffer without interrupting playback to allow back tracking\n\n\n var currentTime = media.currentTime;\n var bufferInfo = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].bufferInfo(media, currentTime, 0);\n var fragDuration = frag.duration;\n var segmentFraction = Math.min(this.config.maxFragLookUpTolerance * 2, fragDuration * 0.25);\n var start = Math.max(Math.min(frag.start - segmentFraction, bufferInfo.end - segmentFraction), currentTime + segmentFraction);\n\n if (frag.start - start > segmentFraction) {\n this.flushMainBuffer(start, frag.start);\n }\n };\n\n _proto.getFwdBufferInfo = function getFwdBufferInfo(bufferable, type) {\n var config = this.config;\n var pos = this.getLoadPosition();\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(pos)) {\n return null;\n }\n\n var bufferInfo = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].bufferInfo(bufferable, pos, config.maxBufferHole); // Workaround flaw in getting forward buffer when maxBufferHole is smaller than gap at current pos\n\n if (bufferInfo.len === 0 && bufferInfo.nextStart !== undefined) {\n var bufferedFragAtPos = this.fragmentTracker.getBufferedFrag(pos, type);\n\n if (bufferedFragAtPos && bufferInfo.nextStart < bufferedFragAtPos.end) {\n return _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].bufferInfo(bufferable, pos, Math.max(bufferInfo.nextStart, config.maxBufferHole));\n }\n }\n\n return bufferInfo;\n };\n\n _proto.getMaxBufferLength = function getMaxBufferLength(levelBitrate) {\n var config = this.config;\n var maxBufLen;\n\n if (levelBitrate) {\n maxBufLen = Math.max(8 * config.maxBufferSize / levelBitrate, config.maxBufferLength);\n } else {\n maxBufLen = config.maxBufferLength;\n }\n\n return Math.min(maxBufLen, config.maxMaxBufferLength);\n };\n\n _proto.reduceMaxBufferLength = function reduceMaxBufferLength(threshold) {\n var config = this.config;\n var minLength = threshold || config.maxBufferLength;\n\n if (config.maxMaxBufferLength >= minLength) {\n // reduce max buffer length as it might be too high. we do this to avoid loop flushing ...\n config.maxMaxBufferLength /= 2;\n this.warn(\"Reduce max buffer length to \" + config.maxMaxBufferLength + \"s\");\n return true;\n }\n\n return false;\n };\n\n _proto.getNextFragment = function getNextFragment(pos, levelDetails) {\n var _frag, _frag2;\n\n var fragments = levelDetails.fragments;\n var fragLen = fragments.length;\n\n if (!fragLen) {\n return null;\n } // find fragment index, contiguous with end of buffer position\n\n\n var config = this.config;\n var start = fragments[0].start;\n var frag;\n\n if (levelDetails.live) {\n var initialLiveManifestSize = config.initialLiveManifestSize;\n\n if (fragLen < initialLiveManifestSize) {\n this.warn(\"Not enough fragments to start playback (have: \" + fragLen + \", need: \" + initialLiveManifestSize + \")\");\n return null;\n } // The real fragment start times for a live stream are only known after the PTS range for that level is known.\n // In order to discover the range, we load the best matching fragment for that level and demux it.\n // Do not load using live logic if the starting frag is requested - we want to use getFragmentAtPosition() so that\n // we get the fragment matching that start time\n\n\n if (!levelDetails.PTSKnown && !this.startFragRequested && this.startPosition === -1) {\n frag = this.getInitialLiveFragment(levelDetails, fragments);\n this.startPosition = frag ? this.hls.liveSyncPosition || frag.start : pos;\n }\n } else if (pos <= start) {\n // VoD playlist: if loadPosition before start of playlist, load first fragment\n frag = fragments[0];\n } // If we haven't run into any special cases already, just load the fragment most closely matching the requested position\n\n\n if (!frag) {\n var end = config.lowLatencyMode ? levelDetails.partEnd : levelDetails.fragmentEnd;\n frag = this.getFragmentAtPosition(pos, end, levelDetails);\n } // If an initSegment is present, it must be buffered first\n\n\n if ((_frag = frag) !== null && _frag !== void 0 && _frag.initSegment && !((_frag2 = frag) !== null && _frag2 !== void 0 && _frag2.initSegment.data) && !this.bitrateTest) {\n frag = frag.initSegment;\n }\n\n return frag;\n };\n\n _proto.getNextPart = function getNextPart(partList, frag, targetBufferTime) {\n var nextPart = -1;\n var contiguous = false;\n var independentAttrOmitted = true;\n\n for (var i = 0, len = partList.length; i < len; i++) {\n var part = partList[i];\n independentAttrOmitted = independentAttrOmitted && !part.independent;\n\n if (nextPart > -1 && targetBufferTime < part.start) {\n break;\n }\n\n var loaded = part.loaded;\n\n if (!loaded && (contiguous || part.independent || independentAttrOmitted) && part.fragment === frag) {\n nextPart = i;\n }\n\n contiguous = loaded;\n }\n\n return nextPart;\n };\n\n _proto.loadedEndOfParts = function loadedEndOfParts(partList, targetBufferTime) {\n var lastPart = partList[partList.length - 1];\n return lastPart && targetBufferTime > lastPart.start && lastPart.loaded;\n }\n /*\n This method is used find the best matching first fragment for a live playlist. This fragment is used to calculate the\n \"sliding\" of the playlist, which is its offset from the start of playback. After sliding we can compute the real\n start and end times for each fragment in the playlist (after which this method will not need to be called).\n */\n ;\n\n _proto.getInitialLiveFragment = function getInitialLiveFragment(levelDetails, fragments) {\n var fragPrevious = this.fragPrevious;\n var frag = null;\n\n if (fragPrevious) {\n if (levelDetails.hasProgramDateTime) {\n // Prefer using PDT, because it can be accurate enough to choose the correct fragment without knowing the level sliding\n this.log(\"Live playlist, switching playlist, load frag with same PDT: \" + fragPrevious.programDateTime);\n frag = Object(_fragment_finders__WEBPACK_IMPORTED_MODULE_10__[\"findFragmentByPDT\"])(fragments, fragPrevious.endProgramDateTime, this.config.maxFragLookUpTolerance);\n }\n\n if (!frag) {\n // SN does not need to be accurate between renditions, but depending on the packaging it may be so.\n var targetSN = fragPrevious.sn + 1;\n\n if (targetSN >= levelDetails.startSN && targetSN <= levelDetails.endSN) {\n var fragNext = fragments[targetSN - levelDetails.startSN]; // Ensure that we're staying within the continuity range, since PTS resets upon a new range\n\n if (fragPrevious.cc === fragNext.cc) {\n frag = fragNext;\n this.log(\"Live playlist, switching playlist, load frag with next SN: \" + frag.sn);\n }\n } // It's important to stay within the continuity range if available; otherwise the fragments in the playlist\n // will have the wrong start times\n\n\n if (!frag) {\n frag = Object(_fragment_finders__WEBPACK_IMPORTED_MODULE_10__[\"findFragWithCC\"])(fragments, fragPrevious.cc);\n\n if (frag) {\n this.log(\"Live playlist, switching playlist, load frag with same CC: \" + frag.sn);\n }\n }\n }\n } else {\n // Find a new start fragment when fragPrevious is null\n var liveStart = this.hls.liveSyncPosition;\n\n if (liveStart !== null) {\n frag = this.getFragmentAtPosition(liveStart, this.bitrateTest ? levelDetails.fragmentEnd : levelDetails.edge, levelDetails);\n }\n }\n\n return frag;\n }\n /*\n This method finds the best matching fragment given the provided position.\n */\n ;\n\n _proto.getFragmentAtPosition = function getFragmentAtPosition(bufferEnd, end, levelDetails) {\n var config = this.config,\n fragPrevious = this.fragPrevious;\n var fragments = levelDetails.fragments,\n endSN = levelDetails.endSN;\n var fragmentHint = levelDetails.fragmentHint;\n var tolerance = config.maxFragLookUpTolerance;\n var loadingParts = !!(config.lowLatencyMode && levelDetails.partList && fragmentHint);\n\n if (loadingParts && fragmentHint && !this.bitrateTest) {\n // Include incomplete fragment with parts at end\n fragments = fragments.concat(fragmentHint);\n endSN = fragmentHint.sn;\n }\n\n var frag;\n\n if (bufferEnd < end) {\n var lookupTolerance = bufferEnd > end - tolerance ? 0 : tolerance; // Remove the tolerance if it would put the bufferEnd past the actual end of stream\n // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)\n\n frag = Object(_fragment_finders__WEBPACK_IMPORTED_MODULE_10__[\"findFragmentByPTS\"])(fragPrevious, fragments, bufferEnd, lookupTolerance);\n } else {\n // reach end of playlist\n frag = fragments[fragments.length - 1];\n }\n\n if (frag) {\n var curSNIdx = frag.sn - levelDetails.startSN;\n var sameLevel = fragPrevious && frag.level === fragPrevious.level;\n var nextFrag = fragments[curSNIdx + 1];\n var fragState = this.fragmentTracker.getState(frag);\n\n if (fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_2__[\"FragmentState\"].BACKTRACKED) {\n frag = null;\n var i = curSNIdx;\n\n while (fragments[i] && this.fragmentTracker.getState(fragments[i]) === _fragment_tracker__WEBPACK_IMPORTED_MODULE_2__[\"FragmentState\"].BACKTRACKED) {\n // When fragPrevious is null, backtrack to first the first fragment is not BACKTRACKED for loading\n // When fragPrevious is set, we want the first BACKTRACKED fragment for parsing and buffering\n if (!fragPrevious) {\n frag = fragments[--i];\n } else {\n frag = fragments[i--];\n }\n }\n\n if (!frag) {\n frag = nextFrag;\n }\n } else if (fragPrevious && frag.sn === fragPrevious.sn && !loadingParts) {\n // Force the next fragment to load if the previous one was already selected. This can occasionally happen with\n // non-uniform fragment durations\n if (sameLevel) {\n if (frag.sn < endSN && this.fragmentTracker.getState(nextFrag) !== _fragment_tracker__WEBPACK_IMPORTED_MODULE_2__[\"FragmentState\"].OK) {\n this.log(\"SN \" + frag.sn + \" just loaded, load next one: \" + nextFrag.sn);\n frag = nextFrag;\n } else {\n frag = null;\n }\n }\n }\n }\n\n return frag;\n };\n\n _proto.synchronizeToLiveEdge = function synchronizeToLiveEdge(levelDetails) {\n var config = this.config,\n media = this.media;\n\n if (!media) {\n return;\n }\n\n var liveSyncPosition = this.hls.liveSyncPosition;\n var currentTime = media.currentTime;\n var start = levelDetails.fragments[0].start;\n var end = levelDetails.edge;\n var withinSlidingWindow = currentTime >= start - config.maxFragLookUpTolerance && currentTime <= end; // Continue if we can seek forward to sync position or if current time is outside of sliding window\n\n if (liveSyncPosition !== null && media.duration > liveSyncPosition && (currentTime < liveSyncPosition || !withinSlidingWindow)) {\n // Continue if buffer is starving or if current time is behind max latency\n var maxLatency = config.liveMaxLatencyDuration !== undefined ? config.liveMaxLatencyDuration : config.liveMaxLatencyDurationCount * levelDetails.targetduration;\n\n if (!withinSlidingWindow && media.readyState < 4 || currentTime < end - maxLatency) {\n if (!this.loadedmetadata) {\n this.nextLoadPosition = liveSyncPosition;\n } // Only seek if ready and there is not a significant forward buffer available for playback\n\n\n if (media.readyState) {\n this.warn(\"Playback: \" + currentTime.toFixed(3) + \" is located too far from the end of live sliding playlist: \" + end + \", reset currentTime to : \" + liveSyncPosition.toFixed(3));\n media.currentTime = liveSyncPosition;\n }\n }\n }\n };\n\n _proto.alignPlaylists = function alignPlaylists(details, previousDetails) {\n var levels = this.levels,\n levelLastLoaded = this.levelLastLoaded,\n fragPrevious = this.fragPrevious;\n var lastLevel = levelLastLoaded !== null ? levels[levelLastLoaded] : null; // FIXME: If not for `shouldAlignOnDiscontinuities` requiring fragPrevious.cc,\n // this could all go in level-helper mergeDetails()\n\n var length = details.fragments.length;\n\n if (!length) {\n this.warn(\"No fragments in live playlist\");\n return 0;\n }\n\n var slidingStart = details.fragments[0].start;\n var firstLevelLoad = !previousDetails;\n\n var aligned = details.alignedSliding && Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(slidingStart);\n\n if (firstLevelLoad || !aligned && !slidingStart) {\n Object(_utils_discontinuities__WEBPACK_IMPORTED_MODULE_9__[\"alignStream\"])(fragPrevious, lastLevel, details);\n var alignedSlidingStart = details.fragments[0].start;\n this.log(\"Live playlist sliding: \" + alignedSlidingStart.toFixed(2) + \" start-sn: \" + (previousDetails ? previousDetails.startSN : 'na') + \"->\" + details.startSN + \" prev-sn: \" + (fragPrevious ? fragPrevious.sn : 'na') + \" fragments: \" + length);\n return alignedSlidingStart;\n }\n\n return slidingStart;\n };\n\n _proto.waitForCdnTuneIn = function waitForCdnTuneIn(details) {\n // Wait for Low-Latency CDN Tune-in to get an updated playlist\n var advancePartLimit = 3;\n return details.live && details.canBlockReload && details.tuneInGoal > Math.max(details.partHoldBack, details.partTarget * advancePartLimit);\n };\n\n _proto.setStartPosition = function setStartPosition(details, sliding) {\n // compute start position if set to -1. use it straight away if value is defined\n var startPosition = this.startPosition;\n\n if (startPosition < sliding) {\n startPosition = -1;\n }\n\n if (startPosition === -1 || this.lastCurrentTime === -1) {\n // first, check if start time offset has been set in playlist, if yes, use this value\n var startTimeOffset = details.startTimeOffset;\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(startTimeOffset)) {\n startPosition = sliding + startTimeOffset;\n\n if (startTimeOffset < 0) {\n startPosition += details.totalduration;\n }\n\n startPosition = Math.min(Math.max(sliding, startPosition), sliding + details.totalduration);\n this.log(\"Start time offset \" + startTimeOffset + \" found in playlist, adjust startPosition to \" + startPosition);\n this.startPosition = startPosition;\n } else if (details.live) {\n // Leave this.startPosition at -1, so that we can use `getInitialLiveFragment` logic when startPosition has\n // not been specified via the config or an as an argument to startLoad (#3736).\n startPosition = this.hls.liveSyncPosition || sliding;\n } else {\n this.startPosition = startPosition = 0;\n }\n\n this.lastCurrentTime = startPosition;\n }\n\n this.nextLoadPosition = startPosition;\n };\n\n _proto.getLoadPosition = function getLoadPosition() {\n var media = this.media; // if we have not yet loaded any fragment, start loading from start position\n\n var pos = 0;\n\n if (this.loadedmetadata && media) {\n pos = media.currentTime;\n } else if (this.nextLoadPosition) {\n pos = this.nextLoadPosition;\n }\n\n return pos;\n };\n\n _proto.handleFragLoadAborted = function handleFragLoadAborted(frag, part) {\n if (this.transmuxer && frag.sn !== 'initSegment' && frag.stats.aborted) {\n this.warn(\"Fragment \" + frag.sn + (part ? ' part' + part.index : '') + \" of level \" + frag.level + \" was aborted\");\n this.resetFragmentLoading(frag);\n }\n };\n\n _proto.resetFragmentLoading = function resetFragmentLoading(frag) {\n if (!this.fragCurrent || !this.fragContextChanged(frag)) {\n this.state = State.IDLE;\n }\n };\n\n _proto.onFragmentOrKeyLoadError = function onFragmentOrKeyLoadError(filterType, data) {\n if (data.fatal) {\n return;\n }\n\n var frag = data.frag; // Handle frag error related to caller's filterType\n\n if (!frag || frag.type !== filterType) {\n return;\n }\n\n var fragCurrent = this.fragCurrent;\n console.assert(fragCurrent && frag.sn === fragCurrent.sn && frag.level === fragCurrent.level && frag.urlId === fragCurrent.urlId, 'Frag load error must match current frag to retry');\n var config = this.config; // keep retrying until the limit will be reached\n\n if (this.fragLoadError + 1 <= config.fragLoadingMaxRetry) {\n if (this.resetLiveStartWhenNotLoaded(frag.level)) {\n return;\n } // exponential backoff capped to config.fragLoadingMaxRetryTimeout\n\n\n var delay = Math.min(Math.pow(2, this.fragLoadError) * config.fragLoadingRetryDelay, config.fragLoadingMaxRetryTimeout);\n this.warn(\"Fragment \" + frag.sn + \" of \" + filterType + \" \" + frag.level + \" failed to load, retrying in \" + delay + \"ms\");\n this.retryDate = self.performance.now() + delay;\n this.fragLoadError++;\n this.state = State.FRAG_LOADING_WAITING_RETRY;\n } else if (data.levelRetry) {\n if (filterType === _types_loader__WEBPACK_IMPORTED_MODULE_15__[\"PlaylistLevelType\"].AUDIO) {\n // Reset current fragment since audio track audio is essential and may not have a fail-over track\n this.fragCurrent = null;\n } // Fragment errors that result in a level switch or redundant fail-over\n // should reset the stream controller state to idle\n\n\n this.fragLoadError = 0;\n this.state = State.IDLE;\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_4__[\"logger\"].error(data.details + \" reaches max retry, redispatch as fatal ...\"); // switch error to fatal\n\n data.fatal = true;\n this.hls.stopLoad();\n this.state = State.ERROR;\n }\n };\n\n _proto.afterBufferFlushed = function afterBufferFlushed(media, bufferType, playlistType) {\n if (!media) {\n return;\n } // After successful buffer flushing, filter flushed fragments from bufferedFrags use mediaBuffered instead of media\n // (so that we will check against video.buffered ranges in case of alt audio track)\n\n\n var bufferedTimeRanges = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_3__[\"BufferHelper\"].getBuffered(media);\n this.fragmentTracker.detectEvictedFragments(bufferType, bufferedTimeRanges, playlistType);\n\n if (this.state === State.ENDED) {\n this.resetLoadingState();\n }\n };\n\n _proto.resetLoadingState = function resetLoadingState() {\n this.fragCurrent = null;\n this.fragPrevious = null;\n this.state = State.IDLE;\n };\n\n _proto.resetLiveStartWhenNotLoaded = function resetLiveStartWhenNotLoaded(level) {\n // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n // in that case, reset startFragRequested flag\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n var details = this.levels ? this.levels[level].details : null;\n\n if (details !== null && details !== void 0 && details.live) {\n // We can't afford to retry after a delay in a live scenario. Update the start position and return to IDLE.\n this.startPosition = -1;\n this.setStartPosition(details, 0);\n this.resetLoadingState();\n return true;\n }\n\n this.nextLoadPosition = this.startPosition;\n }\n\n return false;\n };\n\n _proto.updateLevelTiming = function updateLevelTiming(frag, part, level, partial) {\n var _this6 = this;\n\n var details = level.details;\n console.assert(!!details, 'level.details must be defined');\n var parsed = Object.keys(frag.elementaryStreams).reduce(function (result, type) {\n var info = frag.elementaryStreams[type];\n\n if (info) {\n var parsedDuration = info.endPTS - info.startPTS;\n\n if (parsedDuration <= 0) {\n // Destroy the transmuxer after it's next time offset failed to advance because duration was <= 0.\n // The new transmuxer will be configured with a time offset matching the next fragment start,\n // preventing the timeline from shifting.\n _this6.warn(\"Could not parse fragment \" + frag.sn + \" \" + type + \" duration reliably (\" + parsedDuration + \") resetting transmuxer to fallback to playlist timing\");\n\n _this6.resetTransmuxer();\n\n return result || false;\n }\n\n var drift = partial ? 0 : Object(_level_helper__WEBPACK_IMPORTED_MODULE_11__[\"updateFragPTSDTS\"])(details, frag, info.startPTS, info.endPTS, info.startDTS, info.endDTS);\n\n _this6.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].LEVEL_PTS_UPDATED, {\n details: details,\n level: level,\n drift: drift,\n type: type,\n frag: frag,\n start: info.startPTS,\n end: info.endPTS\n });\n\n return true;\n }\n\n return result;\n }, false);\n\n if (parsed) {\n this.state = State.PARSED;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].FRAG_PARSED, {\n frag: frag,\n part: part\n });\n } else {\n this.resetLoadingState();\n }\n };\n\n _proto.resetTransmuxer = function resetTransmuxer() {\n if (this.transmuxer) {\n this.transmuxer.destroy();\n this.transmuxer = null;\n }\n };\n\n _createClass(BaseStreamController, [{\n key: \"state\",\n get: function get() {\n return this._state;\n },\n set: function set(nextState) {\n var previousState = this._state;\n\n if (previousState !== nextState) {\n this._state = nextState;\n this.log(previousState + \"->\" + nextState);\n }\n }\n }]);\n\n return BaseStreamController;\n}(_task_loop__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/buffer-controller.ts\":\n/*!*********************************************!*\\\n !*** ./src/controller/buffer-controller.ts ***!\n \\*********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BufferController; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/mediasource-helper */ \"./src/utils/mediasource-helper.ts\");\n/* harmony import */ var _loader_fragment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../loader/fragment */ \"./src/loader/fragment.ts\");\n/* harmony import */ var _buffer_operation_queue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./buffer-operation-queue */ \"./src/controller/buffer-operation-queue.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar MediaSource = Object(_utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_5__[\"getMediaSource\"])();\nvar VIDEO_CODEC_PROFILE_REPACE = /([ha]vc.)(?:\\.[^.,]+)+/;\n\nvar BufferController = /*#__PURE__*/function () {\n // The level details used to determine duration, target-duration and live\n // cache the self generated object url to detect hijack of video tag\n // A queue of buffer operations which require the SourceBuffer to not be updating upon execution\n // References to event listeners for each SourceBuffer, so that they can be referenced for event removal\n // The number of BUFFER_CODEC events received before any sourceBuffers are created\n // The total number of BUFFER_CODEC events received\n // A reference to the attached media element\n // A reference to the active media source\n // counters\n function BufferController(_hls) {\n var _this = this;\n\n this.details = null;\n this._objectUrl = null;\n this.operationQueue = void 0;\n this.listeners = void 0;\n this.hls = void 0;\n this.bufferCodecEventsExpected = 0;\n this._bufferCodecEventsTotal = 0;\n this.media = null;\n this.mediaSource = null;\n this.appendError = 0;\n this.tracks = {};\n this.pendingTracks = {};\n this.sourceBuffer = void 0;\n\n this._onMediaSourceOpen = function () {\n var hls = _this.hls,\n media = _this.media,\n mediaSource = _this.mediaSource;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('[buffer-controller]: Media source opened');\n\n if (media) {\n _this.updateMediaElementDuration();\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_ATTACHED, {\n media: media\n });\n }\n\n if (mediaSource) {\n // once received, don't listen anymore to sourceopen event\n mediaSource.removeEventListener('sourceopen', _this._onMediaSourceOpen);\n }\n\n _this.checkPendingTracks();\n };\n\n this._onMediaSourceClose = function () {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('[buffer-controller]: Media source closed');\n };\n\n this._onMediaSourceEnded = function () {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('[buffer-controller]: Media source ended');\n };\n\n this.hls = _hls;\n\n this._initSourceBuffer();\n\n this.registerListeners();\n }\n\n var _proto = BufferController.prototype;\n\n _proto.hasSourceTypes = function hasSourceTypes() {\n return this.getSourceBufferTypes().length > 0 || Object.keys(this.pendingTracks).length > 0;\n };\n\n _proto.destroy = function destroy() {\n this.unregisterListeners();\n this.details = null;\n };\n\n _proto.registerListeners = function registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_RESET, this.onBufferReset, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_APPENDING, this.onBufferAppending, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_CODECS, this.onBufferCodecs, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_EOS, this.onBufferEos, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_UPDATED, this.onLevelUpdated, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_PARSED, this.onFragParsed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_CHANGED, this.onFragChanged, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_RESET, this.onBufferReset, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_APPENDING, this.onBufferAppending, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_CODECS, this.onBufferCodecs, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_EOS, this.onBufferEos, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_UPDATED, this.onLevelUpdated, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_PARSED, this.onFragParsed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_CHANGED, this.onFragChanged, this);\n };\n\n _proto._initSourceBuffer = function _initSourceBuffer() {\n this.sourceBuffer = {};\n this.operationQueue = new _buffer_operation_queue__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this.sourceBuffer);\n this.listeners = {\n audio: [],\n video: [],\n audiovideo: []\n };\n };\n\n _proto.onManifestParsed = function onManifestParsed(event, data) {\n // in case of alt audio 2 BUFFER_CODECS events will be triggered, one per stream controller\n // sourcebuffers will be created all at once when the expected nb of tracks will be reached\n // in case alt audio is not used, only one BUFFER_CODEC event will be fired from main stream controller\n // it will contain the expected nb of source buffers, no need to compute it\n var codecEvents = 2;\n\n if (data.audio && !data.video || !data.altAudio) {\n codecEvents = 1;\n }\n\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = codecEvents;\n this.details = null;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(this.bufferCodecEventsExpected + \" bufferCodec event(s) expected\");\n };\n\n _proto.onMediaAttaching = function onMediaAttaching(event, data) {\n var media = this.media = data.media;\n\n if (media && MediaSource) {\n var ms = this.mediaSource = new MediaSource(); // MediaSource listeners are arrow functions with a lexical scope, and do not need to be bound\n\n ms.addEventListener('sourceopen', this._onMediaSourceOpen);\n ms.addEventListener('sourceended', this._onMediaSourceEnded);\n ms.addEventListener('sourceclose', this._onMediaSourceClose); // link video and media Source\n\n media.src = self.URL.createObjectURL(ms); // cache the locally generated object url\n\n this._objectUrl = media.src;\n }\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n var media = this.media,\n mediaSource = this.mediaSource,\n _objectUrl = this._objectUrl;\n\n if (mediaSource) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('[buffer-controller]: media source detaching');\n\n if (mediaSource.readyState === 'open') {\n try {\n // endOfStream could trigger exception if any sourcebuffer is in updating state\n // we don't really care about checking sourcebuffer state here,\n // as we are anyway detaching the MediaSource\n // let's just avoid this exception to propagate\n mediaSource.endOfStream();\n } catch (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"[buffer-controller]: onMediaDetaching: \" + err.message + \" while calling endOfStream\");\n }\n } // Clean up the SourceBuffers by invoking onBufferReset\n\n\n this.onBufferReset();\n mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);\n mediaSource.removeEventListener('sourceended', this._onMediaSourceEnded);\n mediaSource.removeEventListener('sourceclose', this._onMediaSourceClose); // Detach properly the MediaSource from the HTMLMediaElement as\n // suggested in https://github.com/w3c/media-source/issues/53.\n\n if (media) {\n if (_objectUrl) {\n self.URL.revokeObjectURL(_objectUrl);\n } // clean up video tag src only if it's our own url. some external libraries might\n // hijack the video tag and change its 'src' without destroying the Hls instance first\n\n\n if (media.src === _objectUrl) {\n media.removeAttribute('src');\n media.load();\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn('[buffer-controller]: media.src was changed by a third party - skip cleanup');\n }\n }\n\n this.mediaSource = null;\n this.media = null;\n this._objectUrl = null;\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal;\n this.pendingTracks = {};\n this.tracks = {};\n }\n\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_DETACHED, undefined);\n };\n\n _proto.onBufferReset = function onBufferReset() {\n var _this2 = this;\n\n this.getSourceBufferTypes().forEach(function (type) {\n var sb = _this2.sourceBuffer[type];\n\n try {\n if (sb) {\n _this2.removeBufferListeners(type);\n\n if (_this2.mediaSource) {\n _this2.mediaSource.removeSourceBuffer(sb);\n } // Synchronously remove the SB from the map before the next call in order to prevent an async function from\n // accessing it\n\n\n _this2.sourceBuffer[type] = undefined;\n }\n } catch (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"[buffer-controller]: Failed to reset the \" + type + \" buffer\", err);\n }\n });\n\n this._initSourceBuffer();\n };\n\n _proto.onBufferCodecs = function onBufferCodecs(event, data) {\n var _this3 = this;\n\n var sourceBufferCount = this.getSourceBufferTypes().length;\n Object.keys(data).forEach(function (trackName) {\n if (sourceBufferCount) {\n // check if SourceBuffer codec needs to change\n var track = _this3.tracks[trackName];\n\n if (track && typeof track.buffer.changeType === 'function') {\n var _data$trackName = data[trackName],\n codec = _data$trackName.codec,\n levelCodec = _data$trackName.levelCodec,\n container = _data$trackName.container;\n var currentCodec = (track.levelCodec || track.codec).replace(VIDEO_CODEC_PROFILE_REPACE, '$1');\n var nextCodec = (levelCodec || codec).replace(VIDEO_CODEC_PROFILE_REPACE, '$1');\n\n if (currentCodec !== nextCodec) {\n var mimeType = container + \";codecs=\" + (levelCodec || codec);\n\n _this3.appendChangeType(trackName, mimeType);\n }\n }\n } else {\n // if source buffer(s) not created yet, appended buffer tracks in this.pendingTracks\n _this3.pendingTracks[trackName] = data[trackName];\n }\n }); // if sourcebuffers already created, do nothing ...\n\n if (sourceBufferCount) {\n return;\n }\n\n this.bufferCodecEventsExpected = Math.max(this.bufferCodecEventsExpected - 1, 0);\n\n if (this.mediaSource && this.mediaSource.readyState === 'open') {\n this.checkPendingTracks();\n }\n };\n\n _proto.appendChangeType = function appendChangeType(type, mimeType) {\n var _this4 = this;\n\n var operationQueue = this.operationQueue;\n var operation = {\n execute: function execute() {\n var sb = _this4.sourceBuffer[type];\n\n if (sb) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"[buffer-controller]: changing \" + type + \" sourceBuffer type to \" + mimeType);\n sb.changeType(mimeType);\n }\n\n operationQueue.shiftAndExecuteNext(type);\n },\n onStart: function onStart() {},\n onComplete: function onComplete() {},\n onError: function onError(e) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"[buffer-controller]: Failed to change \" + type + \" SourceBuffer type\", e);\n }\n };\n operationQueue.append(operation, type);\n };\n\n _proto.onBufferAppending = function onBufferAppending(event, eventData) {\n var _this5 = this;\n\n var hls = this.hls,\n operationQueue = this.operationQueue,\n tracks = this.tracks;\n var data = eventData.data,\n type = eventData.type,\n frag = eventData.frag,\n part = eventData.part,\n chunkMeta = eventData.chunkMeta;\n var chunkStats = chunkMeta.buffering[type];\n var bufferAppendingStart = self.performance.now();\n chunkStats.start = bufferAppendingStart;\n var fragBuffering = frag.stats.buffering;\n var partBuffering = part ? part.stats.buffering : null;\n\n if (fragBuffering.start === 0) {\n fragBuffering.start = bufferAppendingStart;\n }\n\n if (partBuffering && partBuffering.start === 0) {\n partBuffering.start = bufferAppendingStart;\n } // TODO: Only update timestampOffset when audio/mpeg fragment or part is not contiguous with previously appended\n // Adjusting `SourceBuffer.timestampOffset` (desired point in the timeline where the next frames should be appended)\n // in Chrome browser when we detect MPEG audio container and time delta between level PTS and `SourceBuffer.timestampOffset`\n // is greater than 100ms (this is enough to handle seek for VOD or level change for LIVE videos).\n // More info here: https://github.com/video-dev/hls.js/issues/332#issuecomment-257986486\n\n\n var audioTrack = tracks.audio;\n var checkTimestampOffset = type === 'audio' && chunkMeta.id === 1 && (audioTrack === null || audioTrack === void 0 ? void 0 : audioTrack.container) === 'audio/mpeg';\n var operation = {\n execute: function execute() {\n chunkStats.executeStart = self.performance.now();\n\n if (checkTimestampOffset) {\n var sb = _this5.sourceBuffer[type];\n\n if (sb) {\n var delta = frag.start - sb.timestampOffset;\n\n if (Math.abs(delta) >= 0.1) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"[buffer-controller]: Updating audio SourceBuffer timestampOffset to \" + frag.start + \" (delta: \" + delta + \") sn: \" + frag.sn + \")\");\n sb.timestampOffset = frag.start;\n }\n }\n }\n\n _this5.appendExecutor(data, type);\n },\n onStart: function onStart() {// logger.debug(`[buffer-controller]: ${type} SourceBuffer updatestart`);\n },\n onComplete: function onComplete() {\n // logger.debug(`[buffer-controller]: ${type} SourceBuffer updateend`);\n var end = self.performance.now();\n chunkStats.executeEnd = chunkStats.end = end;\n\n if (fragBuffering.first === 0) {\n fragBuffering.first = end;\n }\n\n if (partBuffering && partBuffering.first === 0) {\n partBuffering.first = end;\n }\n\n var sourceBuffer = _this5.sourceBuffer;\n var timeRanges = {};\n\n for (var _type in sourceBuffer) {\n timeRanges[_type] = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__[\"BufferHelper\"].getBuffered(sourceBuffer[_type]);\n }\n\n _this5.appendError = 0;\n\n _this5.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_APPENDED, {\n type: type,\n frag: frag,\n part: part,\n chunkMeta: chunkMeta,\n parent: frag.type,\n timeRanges: timeRanges\n });\n },\n onError: function onError(err) {\n // in case any error occured while appending, put back segment in segments table\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(\"[buffer-controller]: Error encountered while trying to append to the \" + type + \" SourceBuffer\", err);\n var event = {\n type: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorTypes\"].MEDIA_ERROR,\n parent: frag.type,\n details: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorDetails\"].BUFFER_APPEND_ERROR,\n err: err,\n fatal: false\n };\n\n if (err.code === DOMException.QUOTA_EXCEEDED_ERR) {\n // QuotaExceededError: http://www.w3.org/TR/html5/infrastructure.html#quotaexceedederror\n // let's stop appending any segments, and report BUFFER_FULL_ERROR error\n event.details = _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorDetails\"].BUFFER_FULL_ERROR;\n } else {\n _this5.appendError++;\n event.details = _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorDetails\"].BUFFER_APPEND_ERROR;\n /* with UHD content, we could get loop of quota exceeded error until\n browser is able to evict some data from sourcebuffer. Retrying can help recover.\n */\n\n if (_this5.appendError > hls.config.appendErrorMaxRetry) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(\"[buffer-controller]: Failed \" + hls.config.appendErrorMaxRetry + \" times to append segment in sourceBuffer\");\n event.fatal = true;\n }\n }\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, event);\n }\n };\n operationQueue.append(operation, type);\n };\n\n _proto.onBufferFlushing = function onBufferFlushing(event, data) {\n var _this6 = this;\n\n var operationQueue = this.operationQueue;\n\n var flushOperation = function flushOperation(type) {\n return {\n execute: _this6.removeExecutor.bind(_this6, type, data.startOffset, data.endOffset),\n onStart: function onStart() {// logger.debug(`[buffer-controller]: Started flushing ${data.startOffset} -> ${data.endOffset} for ${type} Source Buffer`);\n },\n onComplete: function onComplete() {\n // logger.debug(`[buffer-controller]: Finished flushing ${data.startOffset} -> ${data.endOffset} for ${type} Source Buffer`);\n _this6.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_FLUSHED, {\n type: type\n });\n },\n onError: function onError(e) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"[buffer-controller]: Failed to remove from \" + type + \" SourceBuffer\", e);\n }\n };\n };\n\n if (data.type) {\n operationQueue.append(flushOperation(data.type), data.type);\n } else {\n this.getSourceBufferTypes().forEach(function (type) {\n operationQueue.append(flushOperation(type), type);\n });\n }\n };\n\n _proto.onFragParsed = function onFragParsed(event, data) {\n var _this7 = this;\n\n var frag = data.frag,\n part = data.part;\n var buffersAppendedTo = [];\n var elementaryStreams = part ? part.elementaryStreams : frag.elementaryStreams;\n\n if (elementaryStreams[_loader_fragment__WEBPACK_IMPORTED_MODULE_6__[\"ElementaryStreamTypes\"].AUDIOVIDEO]) {\n buffersAppendedTo.push('audiovideo');\n } else {\n if (elementaryStreams[_loader_fragment__WEBPACK_IMPORTED_MODULE_6__[\"ElementaryStreamTypes\"].AUDIO]) {\n buffersAppendedTo.push('audio');\n }\n\n if (elementaryStreams[_loader_fragment__WEBPACK_IMPORTED_MODULE_6__[\"ElementaryStreamTypes\"].VIDEO]) {\n buffersAppendedTo.push('video');\n }\n }\n\n var onUnblocked = function onUnblocked() {\n var now = self.performance.now();\n frag.stats.buffering.end = now;\n\n if (part) {\n part.stats.buffering.end = now;\n }\n\n var stats = part ? part.stats : frag.stats;\n\n _this7.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_BUFFERED, {\n frag: frag,\n part: part,\n stats: stats,\n id: frag.type\n });\n };\n\n if (buffersAppendedTo.length === 0) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"Fragments must have at least one ElementaryStreamType set. type: \" + frag.type + \" level: \" + frag.level + \" sn: \" + frag.sn);\n }\n\n this.blockBuffers(onUnblocked, buffersAppendedTo);\n };\n\n _proto.onFragChanged = function onFragChanged(event, data) {\n this.flushBackBuffer();\n } // on BUFFER_EOS mark matching sourcebuffer(s) as ended and trigger checkEos()\n // an undefined data.type will mark all buffers as EOS.\n ;\n\n _proto.onBufferEos = function onBufferEos(event, data) {\n var _this8 = this;\n\n var ended = this.getSourceBufferTypes().reduce(function (acc, type) {\n var sb = _this8.sourceBuffer[type];\n\n if (!data.type || data.type === type) {\n if (sb && !sb.ended) {\n sb.ended = true;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"[buffer-controller]: \" + type + \" sourceBuffer now EOS\");\n }\n }\n\n return acc && !!(!sb || sb.ended);\n }, true);\n\n if (ended) {\n this.blockBuffers(function () {\n var mediaSource = _this8.mediaSource;\n\n if (!mediaSource || mediaSource.readyState !== 'open') {\n return;\n } // Allow this to throw and be caught by the enqueueing function\n\n\n mediaSource.endOfStream();\n });\n }\n };\n\n _proto.onLevelUpdated = function onLevelUpdated(event, _ref) {\n var details = _ref.details;\n\n if (!details.fragments.length) {\n return;\n }\n\n this.details = details;\n\n if (this.getSourceBufferTypes().length) {\n this.blockBuffers(this.updateMediaElementDuration.bind(this));\n } else {\n this.updateMediaElementDuration();\n }\n };\n\n _proto.flushBackBuffer = function flushBackBuffer() {\n var hls = this.hls,\n details = this.details,\n media = this.media,\n sourceBuffer = this.sourceBuffer;\n\n if (!media || details === null) {\n return;\n }\n\n var sourceBufferTypes = this.getSourceBufferTypes();\n\n if (!sourceBufferTypes.length) {\n return;\n } // Support for deprecated liveBackBufferLength\n\n\n var backBufferLength = details.live && hls.config.liveBackBufferLength !== null ? hls.config.liveBackBufferLength : hls.config.backBufferLength;\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(backBufferLength) || backBufferLength < 0) {\n return;\n }\n\n var currentTime = media.currentTime;\n var targetDuration = details.levelTargetDuration;\n var maxBackBufferLength = Math.max(backBufferLength, targetDuration);\n var targetBackBufferPosition = Math.floor(currentTime / targetDuration) * targetDuration - maxBackBufferLength;\n sourceBufferTypes.forEach(function (type) {\n var sb = sourceBuffer[type];\n\n if (sb) {\n var buffered = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__[\"BufferHelper\"].getBuffered(sb); // when target buffer start exceeds actual buffer start\n\n if (buffered.length > 0 && targetBackBufferPosition > buffered.start(0)) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BACK_BUFFER_REACHED, {\n bufferEnd: targetBackBufferPosition\n }); // Support for deprecated event:\n\n if (details.live) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LIVE_BACK_BUFFER_REACHED, {\n bufferEnd: targetBackBufferPosition\n });\n }\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_FLUSHING, {\n startOffset: 0,\n endOffset: targetBackBufferPosition,\n type: type\n });\n }\n }\n });\n }\n /**\n * Update Media Source duration to current level duration or override to Infinity if configuration parameter\n * 'liveDurationInfinity` is set to `true`\n * More details: https://github.com/video-dev/hls.js/issues/355\n */\n ;\n\n _proto.updateMediaElementDuration = function updateMediaElementDuration() {\n if (!this.details || !this.media || !this.mediaSource || this.mediaSource.readyState !== 'open') {\n return;\n }\n\n var details = this.details,\n hls = this.hls,\n media = this.media,\n mediaSource = this.mediaSource;\n var levelDuration = details.fragments[0].start + details.totalduration;\n var mediaDuration = media.duration;\n var msDuration = Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(mediaSource.duration) ? mediaSource.duration : 0;\n\n if (details.live && hls.config.liveDurationInfinity) {\n // Override duration to Infinity\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('[buffer-controller]: Media Source duration is set to Infinity');\n mediaSource.duration = Infinity;\n this.updateSeekableRange(details);\n } else if (levelDuration > msDuration && levelDuration > mediaDuration || !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(mediaDuration)) {\n // levelDuration was the last value we set.\n // not using mediaSource.duration as the browser may tweak this value\n // only update Media Source duration if its value increase, this is to avoid\n // flushing already buffered portion when switching between quality level\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"[buffer-controller]: Updating Media Source duration to \" + levelDuration.toFixed(3));\n mediaSource.duration = levelDuration;\n }\n };\n\n _proto.updateSeekableRange = function updateSeekableRange(levelDetails) {\n var mediaSource = this.mediaSource;\n var fragments = levelDetails.fragments;\n var len = fragments.length;\n\n if (len && levelDetails.live && mediaSource !== null && mediaSource !== void 0 && mediaSource.setLiveSeekableRange) {\n var start = Math.max(0, fragments[0].start);\n var end = Math.max(start, start + levelDetails.totalduration);\n mediaSource.setLiveSeekableRange(start, end);\n }\n };\n\n _proto.checkPendingTracks = function checkPendingTracks() {\n var bufferCodecEventsExpected = this.bufferCodecEventsExpected,\n operationQueue = this.operationQueue,\n pendingTracks = this.pendingTracks; // Check if we've received all of the expected bufferCodec events. When none remain, create all the sourceBuffers at once.\n // This is important because the MSE spec allows implementations to throw QuotaExceededErrors if creating new sourceBuffers after\n // data has been appended to existing ones.\n // 2 tracks is the max (one for audio, one for video). If we've reach this max go ahead and create the buffers.\n\n var pendingTracksCount = Object.keys(pendingTracks).length;\n\n if (pendingTracksCount && !bufferCodecEventsExpected || pendingTracksCount === 2) {\n // ok, let's create them now !\n this.createSourceBuffers(pendingTracks);\n this.pendingTracks = {}; // append any pending segments now !\n\n var buffers = this.getSourceBufferTypes();\n\n if (buffers.length === 0) {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorDetails\"].BUFFER_INCOMPATIBLE_CODECS_ERROR,\n fatal: true,\n reason: 'could not create source buffer for media codec(s)'\n });\n return;\n }\n\n buffers.forEach(function (type) {\n operationQueue.executeNext(type);\n });\n }\n };\n\n _proto.createSourceBuffers = function createSourceBuffers(tracks) {\n var sourceBuffer = this.sourceBuffer,\n mediaSource = this.mediaSource;\n\n if (!mediaSource) {\n throw Error('createSourceBuffers called when mediaSource was null');\n }\n\n var tracksCreated = 0;\n\n for (var trackName in tracks) {\n if (!sourceBuffer[trackName]) {\n var track = tracks[trackName];\n\n if (!track) {\n throw Error(\"source buffer exists for track \" + trackName + \", however track does not\");\n } // use levelCodec as first priority\n\n\n var codec = track.levelCodec || track.codec;\n var mimeType = track.container + \";codecs=\" + codec;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"[buffer-controller]: creating sourceBuffer(\" + mimeType + \")\");\n\n try {\n var sb = sourceBuffer[trackName] = mediaSource.addSourceBuffer(mimeType);\n var sbName = trackName;\n this.addBufferListener(sbName, 'updatestart', this._onSBUpdateStart);\n this.addBufferListener(sbName, 'updateend', this._onSBUpdateEnd);\n this.addBufferListener(sbName, 'error', this._onSBUpdateError);\n this.tracks[trackName] = {\n buffer: sb,\n codec: codec,\n container: track.container,\n levelCodec: track.levelCodec,\n id: track.id\n };\n tracksCreated++;\n } catch (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(\"[buffer-controller]: error while trying to add sourceBuffer: \" + err.message);\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorDetails\"].BUFFER_ADD_CODEC_ERROR,\n fatal: false,\n error: err,\n mimeType: mimeType\n });\n }\n }\n }\n\n if (tracksCreated) {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_CREATED, {\n tracks: this.tracks\n });\n }\n } // Keep as arrow functions so that we can directly reference these functions directly as event listeners\n ;\n\n _proto._onSBUpdateStart = function _onSBUpdateStart(type) {\n var operationQueue = this.operationQueue;\n var operation = operationQueue.current(type);\n operation.onStart();\n };\n\n _proto._onSBUpdateEnd = function _onSBUpdateEnd(type) {\n var operationQueue = this.operationQueue;\n var operation = operationQueue.current(type);\n operation.onComplete();\n operationQueue.shiftAndExecuteNext(type);\n };\n\n _proto._onSBUpdateError = function _onSBUpdateError(type, event) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(\"[buffer-controller]: \" + type + \" SourceBuffer error\", event); // according to http://www.w3.org/TR/media-source/#sourcebuffer-append-error\n // SourceBuffer errors are not necessarily fatal; if so, the HTMLMediaElement will fire an error event\n\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_3__[\"ErrorDetails\"].BUFFER_APPENDING_ERROR,\n fatal: false\n }); // updateend is always fired after error, so we'll allow that to shift the current operation off of the queue\n\n var operation = this.operationQueue.current(type);\n\n if (operation) {\n operation.onError(event);\n }\n } // This method must result in an updateend event; if remove is not called, _onSBUpdateEnd must be called manually\n ;\n\n _proto.removeExecutor = function removeExecutor(type, startOffset, endOffset) {\n var media = this.media,\n mediaSource = this.mediaSource,\n operationQueue = this.operationQueue,\n sourceBuffer = this.sourceBuffer;\n var sb = sourceBuffer[type];\n\n if (!media || !mediaSource || !sb) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"[buffer-controller]: Attempting to remove from the \" + type + \" SourceBuffer, but it does not exist\");\n operationQueue.shiftAndExecuteNext(type);\n return;\n }\n\n var mediaDuration = Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(media.duration) ? media.duration : Infinity;\n var msDuration = Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(mediaSource.duration) ? mediaSource.duration : Infinity;\n var removeStart = Math.max(0, startOffset);\n var removeEnd = Math.min(endOffset, mediaDuration, msDuration);\n\n if (removeEnd > removeStart) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"[buffer-controller]: Removing [\" + removeStart + \",\" + removeEnd + \"] from the \" + type + \" SourceBuffer\");\n console.assert(!sb.updating, type + \" sourceBuffer must not be updating\");\n sb.remove(removeStart, removeEnd);\n } else {\n // Cycle the queue\n operationQueue.shiftAndExecuteNext(type);\n }\n } // This method must result in an updateend event; if append is not called, _onSBUpdateEnd must be called manually\n ;\n\n _proto.appendExecutor = function appendExecutor(data, type) {\n var operationQueue = this.operationQueue,\n sourceBuffer = this.sourceBuffer;\n var sb = sourceBuffer[type];\n\n if (!sb) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"[buffer-controller]: Attempting to append to the \" + type + \" SourceBuffer, but it does not exist\");\n operationQueue.shiftAndExecuteNext(type);\n return;\n }\n\n sb.ended = false;\n console.assert(!sb.updating, type + \" sourceBuffer must not be updating\");\n sb.appendBuffer(data);\n } // Enqueues an operation to each SourceBuffer queue which, upon execution, resolves a promise. When all promises\n // resolve, the onUnblocked function is executed. Functions calling this method do not need to unblock the queue\n // upon completion, since we already do it here\n ;\n\n _proto.blockBuffers = function blockBuffers(onUnblocked, buffers) {\n var _this9 = this;\n\n if (buffers === void 0) {\n buffers = this.getSourceBufferTypes();\n }\n\n if (!buffers.length) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('[buffer-controller]: Blocking operation requested, but no SourceBuffers exist');\n Promise.resolve(onUnblocked);\n return;\n }\n\n var operationQueue = this.operationQueue; // logger.debug(`[buffer-controller]: Blocking ${buffers} SourceBuffer`);\n\n var blockingOperations = buffers.map(function (type) {\n return operationQueue.appendBlocker(type);\n });\n Promise.all(blockingOperations).then(function () {\n // logger.debug(`[buffer-controller]: Blocking operation resolved; unblocking ${buffers} SourceBuffer`);\n onUnblocked();\n buffers.forEach(function (type) {\n var sb = _this9.sourceBuffer[type]; // Only cycle the queue if the SB is not updating. There's a bug in Chrome which sets the SB updating flag to\n // true when changing the MediaSource duration (https://bugs.chromium.org/p/chromium/issues/detail?id=959359&can=2&q=mediasource%20duration)\n // While this is a workaround, it's probably useful to have around\n\n if (!sb || !sb.updating) {\n operationQueue.shiftAndExecuteNext(type);\n }\n });\n });\n };\n\n _proto.getSourceBufferTypes = function getSourceBufferTypes() {\n return Object.keys(this.sourceBuffer);\n };\n\n _proto.addBufferListener = function addBufferListener(type, event, fn) {\n var buffer = this.sourceBuffer[type];\n\n if (!buffer) {\n return;\n }\n\n var listener = fn.bind(this, type);\n this.listeners[type].push({\n event: event,\n listener: listener\n });\n buffer.addEventListener(event, listener);\n };\n\n _proto.removeBufferListeners = function removeBufferListeners(type) {\n var buffer = this.sourceBuffer[type];\n\n if (!buffer) {\n return;\n }\n\n this.listeners[type].forEach(function (l) {\n buffer.removeEventListener(l.event, l.listener);\n });\n };\n\n return BufferController;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/buffer-operation-queue.ts\":\n/*!**************************************************!*\\\n !*** ./src/controller/buffer-operation-queue.ts ***!\n \\**************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return BufferOperationQueue; });\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\nvar BufferOperationQueue = /*#__PURE__*/function () {\n function BufferOperationQueue(sourceBufferReference) {\n this.buffers = void 0;\n this.queues = {\n video: [],\n audio: [],\n audiovideo: []\n };\n this.buffers = sourceBufferReference;\n }\n\n var _proto = BufferOperationQueue.prototype;\n\n _proto.append = function append(operation, type) {\n var queue = this.queues[type];\n queue.push(operation);\n\n if (queue.length === 1 && this.buffers[type]) {\n this.executeNext(type);\n }\n };\n\n _proto.insertAbort = function insertAbort(operation, type) {\n var queue = this.queues[type];\n queue.unshift(operation);\n this.executeNext(type);\n };\n\n _proto.appendBlocker = function appendBlocker(type) {\n var execute;\n var promise = new Promise(function (resolve) {\n execute = resolve;\n });\n var operation = {\n execute: execute,\n onStart: function onStart() {},\n onComplete: function onComplete() {},\n onError: function onError() {}\n };\n this.append(operation, type);\n return promise;\n };\n\n _proto.executeNext = function executeNext(type) {\n var buffers = this.buffers,\n queues = this.queues;\n var sb = buffers[type];\n var queue = queues[type];\n\n if (queue.length) {\n var operation = queue[0];\n\n try {\n // Operations are expected to result in an 'updateend' event being fired. If not, the queue will lock. Operations\n // which do not end with this event must call _onSBUpdateEnd manually\n operation.execute();\n } catch (e) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].warn('[buffer-operation-queue]: Unhandled exception executing the current operation');\n operation.onError(e); // Only shift the current operation off, otherwise the updateend handler will do this for us\n\n if (!sb || !sb.updating) {\n queue.shift();\n this.executeNext(type);\n }\n }\n }\n };\n\n _proto.shiftAndExecuteNext = function shiftAndExecuteNext(type) {\n this.queues[type].shift();\n this.executeNext(type);\n };\n\n _proto.current = function current(type) {\n return this.queues[type][0];\n };\n\n return BufferOperationQueue;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/cap-level-controller.ts\":\n/*!************************************************!*\\\n !*** ./src/controller/cap-level-controller.ts ***!\n \\************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * cap stream level to media size dimension controller\n */\n\n\nvar CapLevelController = /*#__PURE__*/function () {\n function CapLevelController(hls) {\n this.autoLevelCapping = void 0;\n this.firstLevel = void 0;\n this.media = void 0;\n this.restrictedLevels = void 0;\n this.timer = void 0;\n this.hls = void 0;\n this.streamController = void 0;\n this.clientRect = void 0;\n this.hls = hls;\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n this.firstLevel = -1;\n this.media = null;\n this.restrictedLevels = [];\n this.timer = undefined;\n this.clientRect = null;\n this.registerListeners();\n }\n\n var _proto = CapLevelController.prototype;\n\n _proto.setStreamController = function setStreamController(streamController) {\n this.streamController = streamController;\n };\n\n _proto.destroy = function destroy() {\n this.unregisterListener();\n\n if (this.hls.config.capLevelToPlayerSize) {\n this.stopCapping();\n }\n\n this.media = null;\n this.clientRect = null; // @ts-ignore\n\n this.hls = this.streamController = null;\n };\n\n _proto.registerListeners = function registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_CODECS, this.onBufferCodecs, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n };\n\n _proto.unregisterListener = function unregisterListener() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_CODECS, this.onBufferCodecs, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n };\n\n _proto.onFpsDropLevelCapping = function onFpsDropLevelCapping(event, data) {\n // Don't add a restricted level more than once\n if (CapLevelController.isLevelAllowed(data.droppedLevel, this.restrictedLevels)) {\n this.restrictedLevels.push(data.droppedLevel);\n }\n };\n\n _proto.onMediaAttaching = function onMediaAttaching(event, data) {\n this.media = data.media instanceof HTMLVideoElement ? data.media : null;\n };\n\n _proto.onManifestParsed = function onManifestParsed(event, data) {\n var hls = this.hls;\n this.restrictedLevels = [];\n this.firstLevel = data.firstLevel;\n\n if (hls.config.capLevelToPlayerSize && data.video) {\n // Start capping immediately if the manifest has signaled video codecs\n this.startCapping();\n }\n } // Only activate capping when playing a video stream; otherwise, multi-bitrate audio-only streams will be restricted\n // to the first level\n ;\n\n _proto.onBufferCodecs = function onBufferCodecs(event, data) {\n var hls = this.hls;\n\n if (hls.config.capLevelToPlayerSize && data.video) {\n // If the manifest did not signal a video codec capping has been deferred until we're certain video is present\n this.startCapping();\n }\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n this.stopCapping();\n };\n\n _proto.detectPlayerSize = function detectPlayerSize() {\n if (this.media && this.mediaHeight > 0 && this.mediaWidth > 0) {\n var levels = this.hls.levels;\n\n if (levels.length) {\n var hls = this.hls;\n hls.autoLevelCapping = this.getMaxLevel(levels.length - 1);\n\n if (hls.autoLevelCapping > this.autoLevelCapping && this.streamController) {\n // if auto level capping has a higher value for the previous one, flush the buffer using nextLevelSwitch\n // usually happen when the user go to the fullscreen mode.\n this.streamController.nextLevelSwitch();\n }\n\n this.autoLevelCapping = hls.autoLevelCapping;\n }\n }\n }\n /*\n * returns level should be the one with the dimensions equal or greater than the media (player) dimensions (so the video will be downscaled)\n */\n ;\n\n _proto.getMaxLevel = function getMaxLevel(capLevelIndex) {\n var _this = this;\n\n var levels = this.hls.levels;\n\n if (!levels.length) {\n return -1;\n }\n\n var validLevels = levels.filter(function (level, index) {\n return CapLevelController.isLevelAllowed(index, _this.restrictedLevels) && index <= capLevelIndex;\n });\n this.clientRect = null;\n return CapLevelController.getMaxLevelByMediaSize(validLevels, this.mediaWidth, this.mediaHeight);\n };\n\n _proto.startCapping = function startCapping() {\n if (this.timer) {\n // Don't reset capping if started twice; this can happen if the manifest signals a video codec\n return;\n }\n\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n this.hls.firstLevel = this.getMaxLevel(this.firstLevel);\n self.clearInterval(this.timer);\n this.timer = self.setInterval(this.detectPlayerSize.bind(this), 1000);\n this.detectPlayerSize();\n };\n\n _proto.stopCapping = function stopCapping() {\n this.restrictedLevels = [];\n this.firstLevel = -1;\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n\n if (this.timer) {\n self.clearInterval(this.timer);\n this.timer = undefined;\n }\n };\n\n _proto.getDimensions = function getDimensions() {\n if (this.clientRect) {\n return this.clientRect;\n }\n\n var media = this.media;\n var boundsRect = {\n width: 0,\n height: 0\n };\n\n if (media) {\n var clientRect = media.getBoundingClientRect();\n boundsRect.width = clientRect.width;\n boundsRect.height = clientRect.height;\n\n if (!boundsRect.width && !boundsRect.height) {\n // When the media element has no width or height (equivalent to not being in the DOM),\n // then use its width and height attributes (media.width, media.height)\n boundsRect.width = clientRect.right - clientRect.left || media.width || 0;\n boundsRect.height = clientRect.bottom - clientRect.top || media.height || 0;\n }\n }\n\n this.clientRect = boundsRect;\n return boundsRect;\n };\n\n CapLevelController.isLevelAllowed = function isLevelAllowed(level, restrictedLevels) {\n if (restrictedLevels === void 0) {\n restrictedLevels = [];\n }\n\n return restrictedLevels.indexOf(level) === -1;\n };\n\n CapLevelController.getMaxLevelByMediaSize = function getMaxLevelByMediaSize(levels, width, height) {\n if (!levels || !levels.length) {\n return -1;\n } // Levels can have the same dimensions but differing bandwidths - since levels are ordered, we can look to the next\n // to determine whether we've chosen the greatest bandwidth for the media's dimensions\n\n\n var atGreatestBandiwdth = function atGreatestBandiwdth(curLevel, nextLevel) {\n if (!nextLevel) {\n return true;\n }\n\n return curLevel.width !== nextLevel.width || curLevel.height !== nextLevel.height;\n }; // If we run through the loop without breaking, the media's dimensions are greater than every level, so default to\n // the max level\n\n\n var maxLevelIndex = levels.length - 1;\n\n for (var i = 0; i < levels.length; i += 1) {\n var level = levels[i];\n\n if ((level.width >= width || level.height >= height) && atGreatestBandiwdth(level, levels[i + 1])) {\n maxLevelIndex = i;\n break;\n }\n }\n\n return maxLevelIndex;\n };\n\n _createClass(CapLevelController, [{\n key: \"mediaWidth\",\n get: function get() {\n return this.getDimensions().width * CapLevelController.contentScaleFactor;\n }\n }, {\n key: \"mediaHeight\",\n get: function get() {\n return this.getDimensions().height * CapLevelController.contentScaleFactor;\n }\n }], [{\n key: \"contentScaleFactor\",\n get: function get() {\n var pixelRatio = 1;\n\n try {\n pixelRatio = self.devicePixelRatio;\n } catch (e) {\n /* no-op */\n }\n\n return pixelRatio;\n }\n }]);\n\n return CapLevelController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (CapLevelController);\n\n/***/ }),\n\n/***/ \"./src/controller/cmcd-controller.ts\":\n/*!*******************************************!*\\\n !*** ./src/controller/cmcd-controller.ts ***!\n \\*******************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CMCDController; });\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _types_cmcd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../types/cmcd */ \"./src/types/cmcd.ts\");\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n/**\n * Controller to deal with Common Media Client Data (CMCD)\n * @see https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf\n */\n\nvar CMCDController = /*#__PURE__*/function () {\n // eslint-disable-line no-restricted-globals\n // eslint-disable-line no-restricted-globals\n function CMCDController(hls) {\n var _this = this;\n\n this.hls = void 0;\n this.config = void 0;\n this.media = void 0;\n this.sid = void 0;\n this.cid = void 0;\n this.useHeaders = false;\n this.initialized = false;\n this.starved = false;\n this.buffering = true;\n this.audioBuffer = void 0;\n this.videoBuffer = void 0;\n\n this.onWaiting = function () {\n if (_this.initialized) {\n _this.starved = true;\n }\n\n _this.buffering = true;\n };\n\n this.onPlaying = function () {\n if (!_this.initialized) {\n _this.initialized = true;\n }\n\n _this.buffering = false;\n };\n\n this.applyPlaylistData = function (context) {\n try {\n _this.apply(context, {\n ot: _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].MANIFEST,\n su: !_this.initialized\n });\n } catch (error) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('Could not generate manifest CMCD data.', error);\n }\n };\n\n this.applyFragmentData = function (context) {\n try {\n var fragment = context.frag;\n var level = _this.hls.levels[fragment.level];\n\n var ot = _this.getObjectType(fragment);\n\n var data = {\n d: fragment.duration * 1000,\n ot: ot\n };\n\n if (ot === _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].VIDEO || ot === _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].AUDIO || ot == _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].MUXED) {\n data.br = level.bitrate / 1000;\n data.tb = _this.getTopBandwidth(ot) / 1000;\n data.bl = _this.getBufferLength(ot);\n }\n\n _this.apply(context, data);\n } catch (error) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('Could not generate segment CMCD data.', error);\n }\n };\n\n this.hls = hls;\n var config = this.config = hls.config;\n var cmcd = config.cmcd;\n\n if (cmcd != null) {\n config.pLoader = this.createPlaylistLoader();\n config.fLoader = this.createFragmentLoader();\n this.sid = cmcd.sessionId || CMCDController.uuid();\n this.cid = cmcd.contentId;\n this.useHeaders = cmcd.useHeaders === true;\n this.registerListeners();\n }\n }\n\n var _proto = CMCDController.prototype;\n\n _proto.registerListeners = function registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHED, this.onMediaDetached, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_CREATED, this.onBufferCreated, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHED, this.onMediaDetached, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_CREATED, this.onBufferCreated, this);\n this.onMediaDetached();\n };\n\n _proto.destroy = function destroy() {\n this.unregisterListeners(); // @ts-ignore\n\n this.hls = this.config = this.audioBuffer = this.videoBuffer = null;\n };\n\n _proto.onMediaAttached = function onMediaAttached(event, data) {\n this.media = data.media;\n this.media.addEventListener('waiting', this.onWaiting);\n this.media.addEventListener('playing', this.onPlaying);\n };\n\n _proto.onMediaDetached = function onMediaDetached() {\n if (!this.media) {\n return;\n }\n\n this.media.removeEventListener('waiting', this.onWaiting);\n this.media.removeEventListener('playing', this.onPlaying); // @ts-ignore\n\n this.media = null;\n };\n\n _proto.onBufferCreated = function onBufferCreated(event, data) {\n var _data$tracks$audio, _data$tracks$video;\n\n this.audioBuffer = (_data$tracks$audio = data.tracks.audio) === null || _data$tracks$audio === void 0 ? void 0 : _data$tracks$audio.buffer;\n this.videoBuffer = (_data$tracks$video = data.tracks.video) === null || _data$tracks$video === void 0 ? void 0 : _data$tracks$video.buffer;\n };\n\n /**\n * Create baseline CMCD data\n */\n _proto.createData = function createData() {\n var _this$media;\n\n return {\n v: _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDVersion\"],\n sf: _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDStreamingFormat\"].HLS,\n sid: this.sid,\n cid: this.cid,\n pr: (_this$media = this.media) === null || _this$media === void 0 ? void 0 : _this$media.playbackRate,\n mtp: this.hls.bandwidthEstimate / 1000\n };\n }\n /**\n * Apply CMCD data to a request.\n */\n ;\n\n _proto.apply = function apply(context, data) {\n if (data === void 0) {\n data = {};\n }\n\n // apply baseline data\n _extends(data, this.createData());\n\n var isVideo = data.ot === _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].INIT || data.ot === _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].VIDEO || data.ot === _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].MUXED;\n\n if (this.starved && isVideo) {\n data.bs = true;\n data.su = true;\n this.starved = false;\n }\n\n if (data.su == null) {\n data.su = this.buffering;\n } // TODO: Implement rtp, nrr, nor, dl\n\n\n if (this.useHeaders) {\n var headers = CMCDController.toHeaders(data);\n\n if (!Object.keys(headers).length) {\n return;\n }\n\n if (!context.headers) {\n context.headers = {};\n }\n\n _extends(context.headers, headers);\n } else {\n var query = CMCDController.toQuery(data);\n\n if (!query) {\n return;\n }\n\n context.url = CMCDController.appendQueryToUri(context.url, query);\n }\n }\n /**\n * Apply CMCD data to a manifest request.\n */\n ;\n\n /**\n * The CMCD object type.\n */\n _proto.getObjectType = function getObjectType(fragment) {\n var type = fragment.type;\n\n if (type === 'subtitle') {\n return _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].TIMED_TEXT;\n }\n\n if (fragment.sn === 'initSegment') {\n return _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].INIT;\n }\n\n if (type === 'audio') {\n return _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].AUDIO;\n }\n\n if (type === 'main') {\n if (!this.hls.audioTracks.length) {\n return _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].MUXED;\n }\n\n return _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].VIDEO;\n }\n\n return undefined;\n }\n /**\n * Get the highest bitrate.\n */\n ;\n\n _proto.getTopBandwidth = function getTopBandwidth(type) {\n var bitrate = 0;\n var levels;\n var hls = this.hls;\n\n if (type === _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].AUDIO) {\n levels = hls.audioTracks;\n } else {\n var max = hls.maxAutoLevel;\n var len = max > -1 ? max + 1 : hls.levels.length;\n levels = hls.levels.slice(0, len);\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(levels), _step; !(_step = _iterator()).done;) {\n var level = _step.value;\n\n if (level.bitrate > bitrate) {\n bitrate = level.bitrate;\n }\n }\n\n return bitrate > 0 ? bitrate : NaN;\n }\n /**\n * Get the buffer length for a media type in milliseconds\n */\n ;\n\n _proto.getBufferLength = function getBufferLength(type) {\n var media = this.hls.media;\n var buffer = type === _types_cmcd__WEBPACK_IMPORTED_MODULE_1__[\"CMCDObjectType\"].AUDIO ? this.audioBuffer : this.videoBuffer;\n\n if (!buffer || !media) {\n return NaN;\n }\n\n var info = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_2__[\"BufferHelper\"].bufferInfo(buffer, media.currentTime, this.config.maxBufferHole);\n return info.len * 1000;\n }\n /**\n * Create a playlist loader\n */\n ;\n\n _proto.createPlaylistLoader = function createPlaylistLoader() {\n var pLoader = this.config.pLoader;\n var apply = this.applyPlaylistData;\n var Ctor = pLoader || this.config.loader;\n return /*#__PURE__*/function () {\n function CmcdPlaylistLoader(config) {\n this.loader = void 0;\n this.loader = new Ctor(config);\n }\n\n var _proto2 = CmcdPlaylistLoader.prototype;\n\n _proto2.destroy = function destroy() {\n this.loader.destroy();\n };\n\n _proto2.abort = function abort() {\n this.loader.abort();\n };\n\n _proto2.load = function load(context, config, callbacks) {\n apply(context);\n this.loader.load(context, config, callbacks);\n };\n\n _createClass(CmcdPlaylistLoader, [{\n key: \"stats\",\n get: function get() {\n return this.loader.stats;\n }\n }, {\n key: \"context\",\n get: function get() {\n return this.loader.context;\n }\n }]);\n\n return CmcdPlaylistLoader;\n }();\n }\n /**\n * Create a playlist loader\n */\n ;\n\n _proto.createFragmentLoader = function createFragmentLoader() {\n var fLoader = this.config.fLoader;\n var apply = this.applyFragmentData;\n var Ctor = fLoader || this.config.loader;\n return /*#__PURE__*/function () {\n function CmcdFragmentLoader(config) {\n this.loader = void 0;\n this.loader = new Ctor(config);\n }\n\n var _proto3 = CmcdFragmentLoader.prototype;\n\n _proto3.destroy = function destroy() {\n this.loader.destroy();\n };\n\n _proto3.abort = function abort() {\n this.loader.abort();\n };\n\n _proto3.load = function load(context, config, callbacks) {\n apply(context);\n this.loader.load(context, config, callbacks);\n };\n\n _createClass(CmcdFragmentLoader, [{\n key: \"stats\",\n get: function get() {\n return this.loader.stats;\n }\n }, {\n key: \"context\",\n get: function get() {\n return this.loader.context;\n }\n }]);\n\n return CmcdFragmentLoader;\n }();\n }\n /**\n * Generate a random v4 UUI\n *\n * @returns {string}\n */\n ;\n\n CMCDController.uuid = function uuid() {\n var url = URL.createObjectURL(new Blob());\n var uuid = url.toString();\n URL.revokeObjectURL(url);\n return uuid.substr(uuid.lastIndexOf('/') + 1);\n }\n /**\n * Serialize a CMCD data object according to the rules defined in the\n * section 3.2 of\n * [CTA-5004](https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf).\n */\n ;\n\n CMCDController.serialize = function serialize(data) {\n var results = [];\n\n var isValid = function isValid(value) {\n return !Number.isNaN(value) && value != null && value !== '' && value !== false;\n };\n\n var toRounded = function toRounded(value) {\n return Math.round(value);\n };\n\n var toHundred = function toHundred(value) {\n return toRounded(value / 100) * 100;\n };\n\n var toUrlSafe = function toUrlSafe(value) {\n return encodeURIComponent(value);\n };\n\n var formatters = {\n br: toRounded,\n d: toRounded,\n bl: toHundred,\n dl: toHundred,\n mtp: toHundred,\n nor: toUrlSafe,\n rtp: toHundred,\n tb: toRounded\n };\n var keys = Object.keys(data || {}).sort();\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(keys), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n var value = data[key]; // ignore invalid values\n\n if (!isValid(value)) {\n continue;\n } // Version should only be reported if not equal to 1.\n\n\n if (key === 'v' && value === 1) {\n continue;\n } // Playback rate should only be sent if not equal to 1.\n\n\n if (key == 'pr' && value === 1) {\n continue;\n } // Certain values require special formatting\n\n\n var formatter = formatters[key];\n\n if (formatter) {\n value = formatter(value);\n } // Serialize the key/value pair\n\n\n var type = typeof value;\n var result = void 0;\n\n if (key === 'ot' || key === 'sf' || key === 'st') {\n result = key + \"=\" + value;\n } else if (type === 'boolean') {\n result = key;\n } else if (type === 'number') {\n result = key + \"=\" + value;\n } else {\n result = key + \"=\" + JSON.stringify(value);\n }\n\n results.push(result);\n }\n\n return results.join(',');\n }\n /**\n * Convert a CMCD data object to request headers according to the rules\n * defined in the section 2.1 and 3.2 of\n * [CTA-5004](https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf).\n */\n ;\n\n CMCDController.toHeaders = function toHeaders(data) {\n var keys = Object.keys(data);\n var headers = {};\n var headerNames = ['Object', 'Request', 'Session', 'Status'];\n var headerGroups = [{}, {}, {}, {}];\n var headerMap = {\n br: 0,\n d: 0,\n ot: 0,\n tb: 0,\n bl: 1,\n dl: 1,\n mtp: 1,\n nor: 1,\n nrr: 1,\n su: 1,\n cid: 2,\n pr: 2,\n sf: 2,\n sid: 2,\n st: 2,\n v: 2,\n bs: 3,\n rtp: 3\n };\n\n for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n var key = _keys[_i];\n // Unmapped fields are mapped to the Request header\n var index = headerMap[key] != null ? headerMap[key] : 1;\n headerGroups[index][key] = data[key];\n }\n\n for (var i = 0; i < headerGroups.length; i++) {\n var value = CMCDController.serialize(headerGroups[i]);\n\n if (value) {\n headers[\"CMCD-\" + headerNames[i]] = value;\n }\n }\n\n return headers;\n }\n /**\n * Convert a CMCD data object to query args according to the rules\n * defined in the section 2.2 and 3.2 of\n * [CTA-5004](https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf).\n */\n ;\n\n CMCDController.toQuery = function toQuery(data) {\n return \"CMCD=\" + encodeURIComponent(CMCDController.serialize(data));\n }\n /**\n * Append query args to a uri.\n */\n ;\n\n CMCDController.appendQueryToUri = function appendQueryToUri(uri, query) {\n if (!query) {\n return uri;\n }\n\n var separator = uri.includes('?') ? '&' : '?';\n return \"\" + uri + separator + query;\n };\n\n return CMCDController;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/eme-controller.ts\":\n/*!******************************************!*\\\n !*** ./src/controller/eme-controller.ts ***!\n \\******************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/mediakeys-helper */ \"./src/utils/mediakeys-helper.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * @author Stephan Hesse | \n *\n * DRM support for Hls.js\n */\n\n\n\n\nvar MAX_LICENSE_REQUEST_FAILURES = 3;\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemConfiguration\n * @param {Array} audioCodecs List of required audio codecs to support\n * @param {Array} videoCodecs List of required video codecs to support\n * @param {object} drmSystemOptions Optional parameters/requirements for the key-system\n * @returns {Array} An array of supported configurations\n */\n\nvar createWidevineMediaKeySystemConfigurations = function createWidevineMediaKeySystemConfigurations(audioCodecs, videoCodecs, drmSystemOptions) {\n /* jshint ignore:line */\n var baseConfig = {\n // initDataTypes: ['keyids', 'mp4'],\n // label: \"\",\n // persistentState: \"not-allowed\", // or \"required\" ?\n // distinctiveIdentifier: \"not-allowed\", // or \"required\" ?\n // sessionTypes: ['temporary'],\n audioCapabilities: [],\n // { contentType: 'audio/mp4; codecs=\"mp4a.40.2\"' }\n videoCapabilities: [] // { contentType: 'video/mp4; codecs=\"avc1.42E01E\"' }\n\n };\n audioCodecs.forEach(function (codec) {\n baseConfig.audioCapabilities.push({\n contentType: \"audio/mp4; codecs=\\\"\" + codec + \"\\\"\",\n robustness: drmSystemOptions.audioRobustness || ''\n });\n });\n videoCodecs.forEach(function (codec) {\n baseConfig.videoCapabilities.push({\n contentType: \"video/mp4; codecs=\\\"\" + codec + \"\\\"\",\n robustness: drmSystemOptions.videoRobustness || ''\n });\n });\n return [baseConfig];\n};\n/**\n * The idea here is to handle key-system (and their respective platforms) specific configuration differences\n * in order to work with the local requestMediaKeySystemAccess method.\n *\n * We can also rule-out platform-related key-system support at this point by throwing an error.\n *\n * @param {string} keySystem Identifier for the key-system, see `KeySystems` enum\n * @param {Array} audioCodecs List of required audio codecs to support\n * @param {Array} videoCodecs List of required video codecs to support\n * @throws will throw an error if a unknown key system is passed\n * @returns {Array} A non-empty Array of MediaKeySystemConfiguration objects\n */\n\n\nvar getSupportedMediaKeySystemConfigurations = function getSupportedMediaKeySystemConfigurations(keySystem, audioCodecs, videoCodecs, drmSystemOptions) {\n switch (keySystem) {\n case _utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_3__[\"KeySystems\"].WIDEVINE:\n return createWidevineMediaKeySystemConfigurations(audioCodecs, videoCodecs, drmSystemOptions);\n\n default:\n throw new Error(\"Unknown key-system: \" + keySystem);\n }\n};\n\n/**\n * Controller to deal with encrypted media extensions (EME)\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API\n *\n * @class\n * @constructor\n */\nvar EMEController = /*#__PURE__*/function () {\n /**\n * @constructs\n * @param {Hls} hls Our Hls.js instance\n */\n function EMEController(hls) {\n this.hls = void 0;\n this._widevineLicenseUrl = void 0;\n this._licenseXhrSetup = void 0;\n this._licenseResponseCallback = void 0;\n this._emeEnabled = void 0;\n this._requestMediaKeySystemAccess = void 0;\n this._drmSystemOptions = void 0;\n this._config = void 0;\n this._mediaKeysList = [];\n this._media = null;\n this._hasSetMediaKeys = false;\n this._requestLicenseFailureCount = 0;\n this.mediaKeysPromise = null;\n this._onMediaEncrypted = this.onMediaEncrypted.bind(this);\n this.hls = hls;\n this._config = hls.config;\n this._widevineLicenseUrl = this._config.widevineLicenseUrl;\n this._licenseXhrSetup = this._config.licenseXhrSetup;\n this._licenseResponseCallback = this._config.licenseResponseCallback;\n this._emeEnabled = this._config.emeEnabled;\n this._requestMediaKeySystemAccess = this._config.requestMediaKeySystemAccessFunc;\n this._drmSystemOptions = this._config.drmSystemOptions;\n\n this._registerListeners();\n }\n\n var _proto = EMEController.prototype;\n\n _proto.destroy = function destroy() {\n this._unregisterListeners(); // @ts-ignore\n\n\n this.hls = this._onMediaEncrypted = null;\n this._requestMediaKeySystemAccess = null;\n };\n\n _proto._registerListeners = function _registerListeners() {\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHED, this.onMediaDetached, this);\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHED, this.onMediaDetached, this);\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n }\n /**\n * @param {string} keySystem Identifier for the key-system, see `KeySystems` enum\n * @returns {string} License server URL for key-system (if any configured, otherwise causes error)\n * @throws if a unsupported keysystem is passed\n */\n ;\n\n _proto.getLicenseServerUrl = function getLicenseServerUrl(keySystem) {\n switch (keySystem) {\n case _utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_3__[\"KeySystems\"].WIDEVINE:\n if (!this._widevineLicenseUrl) {\n break;\n }\n\n return this._widevineLicenseUrl;\n }\n\n throw new Error(\"no license server URL configured for key-system \\\"\" + keySystem + \"\\\"\");\n }\n /**\n * Requests access object and adds it to our list upon success\n * @private\n * @param {string} keySystem System ID (see `KeySystems`)\n * @param {Array} audioCodecs List of required audio codecs to support\n * @param {Array} videoCodecs List of required video codecs to support\n * @throws When a unsupported KeySystem is passed\n */\n ;\n\n _proto._attemptKeySystemAccess = function _attemptKeySystemAccess(keySystem, audioCodecs, videoCodecs) {\n var _this = this;\n\n // This can throw, but is caught in event handler callpath\n var mediaKeySystemConfigs = getSupportedMediaKeySystemConfigurations(keySystem, audioCodecs, videoCodecs, this._drmSystemOptions);\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('Requesting encrypted media key-system access'); // expecting interface like window.navigator.requestMediaKeySystemAccess\n\n var keySystemAccessPromise = this.requestMediaKeySystemAccess(keySystem, mediaKeySystemConfigs);\n this.mediaKeysPromise = keySystemAccessPromise.then(function (mediaKeySystemAccess) {\n return _this._onMediaKeySystemAccessObtained(keySystem, mediaKeySystemAccess);\n });\n keySystemAccessPromise.catch(function (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(\"Failed to obtain key-system \\\"\" + keySystem + \"\\\" access:\", err);\n });\n };\n\n /**\n * Handles obtaining access to a key-system\n * @private\n * @param {string} keySystem\n * @param {MediaKeySystemAccess} mediaKeySystemAccess https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess\n */\n _proto._onMediaKeySystemAccessObtained = function _onMediaKeySystemAccessObtained(keySystem, mediaKeySystemAccess) {\n var _this2 = this;\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"Access for key-system \\\"\" + keySystem + \"\\\" obtained\");\n var mediaKeysListItem = {\n mediaKeysSessionInitialized: false,\n mediaKeySystemAccess: mediaKeySystemAccess,\n mediaKeySystemDomain: keySystem\n };\n\n this._mediaKeysList.push(mediaKeysListItem);\n\n var mediaKeysPromise = Promise.resolve().then(function () {\n return mediaKeySystemAccess.createMediaKeys();\n }).then(function (mediaKeys) {\n mediaKeysListItem.mediaKeys = mediaKeys;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"Media-keys created for key-system \\\"\" + keySystem + \"\\\"\");\n\n _this2._onMediaKeysCreated();\n\n return mediaKeys;\n });\n mediaKeysPromise.catch(function (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('Failed to create media-keys:', err);\n });\n return mediaKeysPromise;\n }\n /**\n * Handles key-creation (represents access to CDM). We are going to create key-sessions upon this\n * for all existing keys where no session exists yet.\n *\n * @private\n */\n ;\n\n _proto._onMediaKeysCreated = function _onMediaKeysCreated() {\n var _this3 = this;\n\n // check for all key-list items if a session exists, otherwise, create one\n this._mediaKeysList.forEach(function (mediaKeysListItem) {\n if (!mediaKeysListItem.mediaKeysSession) {\n // mediaKeys is definitely initialized here\n mediaKeysListItem.mediaKeysSession = mediaKeysListItem.mediaKeys.createSession();\n\n _this3._onNewMediaKeySession(mediaKeysListItem.mediaKeysSession);\n }\n });\n }\n /**\n * @private\n * @param {*} keySession\n */\n ;\n\n _proto._onNewMediaKeySession = function _onNewMediaKeySession(keySession) {\n var _this4 = this;\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"New key-system session \" + keySession.sessionId);\n keySession.addEventListener('message', function (event) {\n _this4._onKeySessionMessage(keySession, event.message);\n }, false);\n }\n /**\n * @private\n * @param {MediaKeySession} keySession\n * @param {ArrayBuffer} message\n */\n ;\n\n _proto._onKeySessionMessage = function _onKeySessionMessage(keySession, message) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('Got EME message event, creating license request');\n\n this._requestLicense(message, function (data) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"Received license data (length: \" + (data ? data.byteLength : data) + \"), updating key-session\");\n keySession.update(data);\n });\n }\n /**\n * @private\n * @param e {MediaEncryptedEvent}\n */\n ;\n\n _proto.onMediaEncrypted = function onMediaEncrypted(e) {\n var _this5 = this;\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"Media is encrypted using \\\"\" + e.initDataType + \"\\\" init data type\");\n\n if (!this.mediaKeysPromise) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('Fatal: Media is encrypted but no CDM access or no keys have been requested');\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_NO_KEYS,\n fatal: true\n });\n return;\n }\n\n var finallySetKeyAndStartSession = function finallySetKeyAndStartSession(mediaKeys) {\n if (!_this5._media) {\n return;\n }\n\n _this5._attemptSetMediaKeys(mediaKeys);\n\n _this5._generateRequestWithPreferredKeySession(e.initDataType, e.initData);\n }; // Could use `Promise.finally` but some Promise polyfills are missing it\n\n\n this.mediaKeysPromise.then(finallySetKeyAndStartSession).catch(finallySetKeyAndStartSession);\n }\n /**\n * @private\n */\n ;\n\n _proto._attemptSetMediaKeys = function _attemptSetMediaKeys(mediaKeys) {\n if (!this._media) {\n throw new Error('Attempted to set mediaKeys without first attaching a media element');\n }\n\n if (!this._hasSetMediaKeys) {\n // FIXME: see if we can/want/need-to really to deal with several potential key-sessions?\n var keysListItem = this._mediaKeysList[0];\n\n if (!keysListItem || !keysListItem.mediaKeys) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('Fatal: Media is encrypted but no CDM access or no keys have been obtained yet');\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_NO_KEYS,\n fatal: true\n });\n return;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('Setting keys for encrypted media');\n\n this._media.setMediaKeys(keysListItem.mediaKeys);\n\n this._hasSetMediaKeys = true;\n }\n }\n /**\n * @private\n */\n ;\n\n _proto._generateRequestWithPreferredKeySession = function _generateRequestWithPreferredKeySession(initDataType, initData) {\n var _this6 = this;\n\n // FIXME: see if we can/want/need-to really to deal with several potential key-sessions?\n var keysListItem = this._mediaKeysList[0];\n\n if (!keysListItem) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('Fatal: Media is encrypted but not any key-system access has been obtained yet');\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_NO_ACCESS,\n fatal: true\n });\n return;\n }\n\n if (keysListItem.mediaKeysSessionInitialized) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn('Key-Session already initialized but requested again');\n return;\n }\n\n var keySession = keysListItem.mediaKeysSession;\n\n if (!keySession) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('Fatal: Media is encrypted but no key-session existing');\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_NO_SESSION,\n fatal: true\n });\n return;\n } // initData is null if the media is not CORS-same-origin\n\n\n if (!initData) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn('Fatal: initData required for generating a key session is null');\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_NO_INIT_DATA,\n fatal: true\n });\n return;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"Generating key-session request for \\\"\" + initDataType + \"\\\" init data type\");\n keysListItem.mediaKeysSessionInitialized = true;\n keySession.generateRequest(initDataType, initData).then(function () {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].debug('Key-session generation succeeded');\n }).catch(function (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('Error generating key-session request:', err);\n\n _this6.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_NO_SESSION,\n fatal: false\n });\n });\n }\n /**\n * @private\n * @param {string} url License server URL\n * @param {ArrayBuffer} keyMessage Message data issued by key-system\n * @param {function} callback Called when XHR has succeeded\n * @returns {XMLHttpRequest} Unsent (but opened state) XHR object\n * @throws if XMLHttpRequest construction failed\n */\n ;\n\n _proto._createLicenseXhr = function _createLicenseXhr(url, keyMessage, callback) {\n var xhr = new XMLHttpRequest();\n xhr.responseType = 'arraybuffer';\n xhr.onreadystatechange = this._onLicenseRequestReadyStageChange.bind(this, xhr, url, keyMessage, callback);\n var licenseXhrSetup = this._licenseXhrSetup;\n\n if (licenseXhrSetup) {\n try {\n licenseXhrSetup.call(this.hls, xhr, url);\n licenseXhrSetup = undefined;\n } catch (e) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(e);\n }\n }\n\n try {\n // if licenseXhrSetup did not yet call open, let's do it now\n if (!xhr.readyState) {\n xhr.open('POST', url, true);\n }\n\n if (licenseXhrSetup) {\n licenseXhrSetup.call(this.hls, xhr, url);\n }\n } catch (e) {\n // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n throw new Error(\"issue setting up KeySystem license XHR \" + e);\n }\n\n return xhr;\n }\n /**\n * @private\n * @param {XMLHttpRequest} xhr\n * @param {string} url License server URL\n * @param {ArrayBuffer} keyMessage Message data issued by key-system\n * @param {function} callback Called when XHR has succeeded\n */\n ;\n\n _proto._onLicenseRequestReadyStageChange = function _onLicenseRequestReadyStageChange(xhr, url, keyMessage, callback) {\n switch (xhr.readyState) {\n case 4:\n if (xhr.status === 200) {\n this._requestLicenseFailureCount = 0;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('License request succeeded');\n var _data = xhr.response;\n var licenseResponseCallback = this._licenseResponseCallback;\n\n if (licenseResponseCallback) {\n try {\n _data = licenseResponseCallback.call(this.hls, xhr, url);\n } catch (e) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(e);\n }\n }\n\n callback(_data);\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(\"License Request XHR failed (\" + url + \"). Status: \" + xhr.status + \" (\" + xhr.statusText + \")\");\n this._requestLicenseFailureCount++;\n\n if (this._requestLicenseFailureCount > MAX_LICENSE_REQUEST_FAILURES) {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n fatal: true\n });\n return;\n }\n\n var attemptsLeft = MAX_LICENSE_REQUEST_FAILURES - this._requestLicenseFailureCount + 1;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"Retrying license request, \" + attemptsLeft + \" attempts left\");\n\n this._requestLicense(keyMessage, callback);\n }\n\n break;\n }\n }\n /**\n * @private\n * @param {MediaKeysListItem} keysListItem\n * @param {ArrayBuffer} keyMessage\n * @returns {ArrayBuffer} Challenge data posted to license server\n * @throws if KeySystem is unsupported\n */\n ;\n\n _proto._generateLicenseRequestChallenge = function _generateLicenseRequestChallenge(keysListItem, keyMessage) {\n switch (keysListItem.mediaKeySystemDomain) {\n // case KeySystems.PLAYREADY:\n // from https://github.com/MicrosoftEdge/Demos/blob/master/eme/scripts/demo.js\n\n /*\n if (this.licenseType !== this.LICENSE_TYPE_WIDEVINE) {\n // For PlayReady CDMs, we need to dig the Challenge out of the XML.\n var keyMessageXml = new DOMParser().parseFromString(String.fromCharCode.apply(null, new Uint16Array(keyMessage)), 'application/xml');\n if (keyMessageXml.getElementsByTagName('Challenge')[0]) {\n challenge = atob(keyMessageXml.getElementsByTagName('Challenge')[0].childNodes[0].nodeValue);\n } else {\n throw 'Cannot find in key message';\n }\n var headerNames = keyMessageXml.getElementsByTagName('name');\n var headerValues = keyMessageXml.getElementsByTagName('value');\n if (headerNames.length !== headerValues.length) {\n throw 'Mismatched header / pair in key message';\n }\n for (var i = 0; i < headerNames.length; i++) {\n xhr.setRequestHeader(headerNames[i].childNodes[0].nodeValue, headerValues[i].childNodes[0].nodeValue);\n }\n }\n break;\n */\n case _utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_3__[\"KeySystems\"].WIDEVINE:\n // For Widevine CDMs, the challenge is the keyMessage.\n return keyMessage;\n }\n\n throw new Error(\"unsupported key-system: \" + keysListItem.mediaKeySystemDomain);\n }\n /**\n * @private\n * @param keyMessage\n * @param callback\n */\n ;\n\n _proto._requestLicense = function _requestLicense(keyMessage, callback) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('Requesting content license for key-system');\n var keysListItem = this._mediaKeysList[0];\n\n if (!keysListItem) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('Fatal error: Media is encrypted but no key-system access has been obtained yet');\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_NO_ACCESS,\n fatal: true\n });\n return;\n }\n\n try {\n var _url = this.getLicenseServerUrl(keysListItem.mediaKeySystemDomain);\n\n var _xhr = this._createLicenseXhr(_url, keyMessage, callback);\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log(\"Sending license request to URL: \" + _url);\n\n var challenge = this._generateLicenseRequestChallenge(keysListItem, keyMessage);\n\n _xhr.send(challenge);\n } catch (e) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error(\"Failure requesting DRM license: \" + e);\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].KEY_SYSTEM_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n fatal: true\n });\n }\n };\n\n _proto.onMediaAttached = function onMediaAttached(event, data) {\n if (!this._emeEnabled) {\n return;\n }\n\n var media = data.media; // keep reference of media\n\n this._media = media;\n media.addEventListener('encrypted', this._onMediaEncrypted);\n };\n\n _proto.onMediaDetached = function onMediaDetached() {\n var media = this._media;\n var mediaKeysList = this._mediaKeysList;\n\n if (!media) {\n return;\n }\n\n media.removeEventListener('encrypted', this._onMediaEncrypted);\n this._media = null;\n this._mediaKeysList = []; // Close all sessions and remove media keys from the video element.\n\n Promise.all(mediaKeysList.map(function (mediaKeysListItem) {\n if (mediaKeysListItem.mediaKeysSession) {\n return mediaKeysListItem.mediaKeysSession.close().catch(function () {// Ignore errors when closing the sessions. Closing a session that\n // generated no key requests will throw an error.\n });\n }\n })).then(function () {\n return media.setMediaKeys(null);\n }).catch(function () {// Ignore any failures while removing media keys from the video element.\n });\n };\n\n _proto.onManifestParsed = function onManifestParsed(event, data) {\n if (!this._emeEnabled) {\n return;\n }\n\n var audioCodecs = data.levels.map(function (level) {\n return level.audioCodec;\n }).filter(function (audioCodec) {\n return !!audioCodec;\n });\n var videoCodecs = data.levels.map(function (level) {\n return level.videoCodec;\n }).filter(function (videoCodec) {\n return !!videoCodec;\n });\n\n this._attemptKeySystemAccess(_utils_mediakeys_helper__WEBPACK_IMPORTED_MODULE_3__[\"KeySystems\"].WIDEVINE, audioCodecs, videoCodecs);\n };\n\n _createClass(EMEController, [{\n key: \"requestMediaKeySystemAccess\",\n get: function get() {\n if (!this._requestMediaKeySystemAccess) {\n throw new Error('No requestMediaKeySystemAccess function configured');\n }\n\n return this._requestMediaKeySystemAccess;\n }\n }]);\n\n return EMEController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (EMEController);\n\n/***/ }),\n\n/***/ \"./src/controller/fps-controller.ts\":\n/*!******************************************!*\\\n !*** ./src/controller/fps-controller.ts ***!\n \\******************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\nvar FPSController = /*#__PURE__*/function () {\n // stream controller must be provided as a dependency!\n function FPSController(hls) {\n this.hls = void 0;\n this.isVideoPlaybackQualityAvailable = false;\n this.timer = void 0;\n this.media = null;\n this.lastTime = void 0;\n this.lastDroppedFrames = 0;\n this.lastDecodedFrames = 0;\n this.streamController = void 0;\n this.hls = hls;\n this.registerListeners();\n }\n\n var _proto = FPSController.prototype;\n\n _proto.setStreamController = function setStreamController(streamController) {\n this.streamController = streamController;\n };\n\n _proto.registerListeners = function registerListeners() {\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching);\n };\n\n _proto.destroy = function destroy() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.unregisterListeners();\n this.isVideoPlaybackQualityAvailable = false;\n this.media = null;\n };\n\n _proto.onMediaAttaching = function onMediaAttaching(event, data) {\n var config = this.hls.config;\n\n if (config.capLevelOnFPSDrop) {\n var media = data.media instanceof self.HTMLVideoElement ? data.media : null;\n this.media = media;\n\n if (media && typeof media.getVideoPlaybackQuality === 'function') {\n this.isVideoPlaybackQualityAvailable = true;\n }\n\n self.clearInterval(this.timer);\n this.timer = self.setInterval(this.checkFPSInterval.bind(this), config.fpsDroppedMonitoringPeriod);\n }\n };\n\n _proto.checkFPS = function checkFPS(video, decodedFrames, droppedFrames) {\n var currentTime = performance.now();\n\n if (decodedFrames) {\n if (this.lastTime) {\n var currentPeriod = currentTime - this.lastTime;\n var currentDropped = droppedFrames - this.lastDroppedFrames;\n var currentDecoded = decodedFrames - this.lastDecodedFrames;\n var droppedFPS = 1000 * currentDropped / currentPeriod;\n var hls = this.hls;\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FPS_DROP, {\n currentDropped: currentDropped,\n currentDecoded: currentDecoded,\n totalDroppedFrames: droppedFrames\n });\n\n if (droppedFPS > 0) {\n // logger.log('checkFPS : droppedFPS/decodedFPS:' + droppedFPS/(1000 * currentDecoded / currentPeriod));\n if (currentDropped > hls.config.fpsDroppedMonitoringThreshold * currentDecoded) {\n var currentLevel = hls.currentLevel;\n _utils_logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].warn('drop FPS ratio greater than max allowed value for currentLevel: ' + currentLevel);\n\n if (currentLevel > 0 && (hls.autoLevelCapping === -1 || hls.autoLevelCapping >= currentLevel)) {\n currentLevel = currentLevel - 1;\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FPS_DROP_LEVEL_CAPPING, {\n level: currentLevel,\n droppedLevel: hls.currentLevel\n });\n hls.autoLevelCapping = currentLevel;\n this.streamController.nextLevelSwitch();\n }\n }\n }\n }\n\n this.lastTime = currentTime;\n this.lastDroppedFrames = droppedFrames;\n this.lastDecodedFrames = decodedFrames;\n }\n };\n\n _proto.checkFPSInterval = function checkFPSInterval() {\n var video = this.media;\n\n if (video) {\n if (this.isVideoPlaybackQualityAvailable) {\n var videoPlaybackQuality = video.getVideoPlaybackQuality();\n this.checkFPS(video, videoPlaybackQuality.totalVideoFrames, videoPlaybackQuality.droppedVideoFrames);\n } else {\n // HTMLVideoElement doesn't include the webkit types\n this.checkFPS(video, video.webkitDecodedFrameCount, video.webkitDroppedFrameCount);\n }\n }\n };\n\n return FPSController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FPSController);\n\n/***/ }),\n\n/***/ \"./src/controller/fragment-finders.ts\":\n/*!********************************************!*\\\n !*** ./src/controller/fragment-finders.ts ***!\n \\********************************************/\n/*! exports provided: findFragmentByPDT, findFragmentByPTS, fragmentWithinToleranceTest, pdtWithinToleranceTest, findFragWithCC */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findFragmentByPDT\", function() { return findFragmentByPDT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findFragmentByPTS\", function() { return findFragmentByPTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fragmentWithinToleranceTest\", function() { return fragmentWithinToleranceTest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pdtWithinToleranceTest\", function() { return pdtWithinToleranceTest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findFragWithCC\", function() { return findFragWithCC; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _utils_binary_search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/binary-search */ \"./src/utils/binary-search.ts\");\n\n\n\n/**\n * Returns first fragment whose endPdt value exceeds the given PDT.\n * @param {Array} fragments - The array of candidate fragments\n * @param {number|null} [PDTValue = null] - The PDT value which must be exceeded\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns {*|null} fragment - The best matching fragment\n */\nfunction findFragmentByPDT(fragments, PDTValue, maxFragLookUpTolerance) {\n if (PDTValue === null || !Array.isArray(fragments) || !fragments.length || !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(PDTValue)) {\n return null;\n } // if less than start\n\n\n var startPDT = fragments[0].programDateTime;\n\n if (PDTValue < (startPDT || 0)) {\n return null;\n }\n\n var endPDT = fragments[fragments.length - 1].endProgramDateTime;\n\n if (PDTValue >= (endPDT || 0)) {\n return null;\n }\n\n maxFragLookUpTolerance = maxFragLookUpTolerance || 0;\n\n for (var seg = 0; seg < fragments.length; ++seg) {\n var frag = fragments[seg];\n\n if (pdtWithinToleranceTest(PDTValue, maxFragLookUpTolerance, frag)) {\n return frag;\n }\n }\n\n return null;\n}\n/**\n * Finds a fragment based on the SN of the previous fragment; or based on the needs of the current buffer.\n * This method compensates for small buffer gaps by applying a tolerance to the start of any candidate fragment, thus\n * breaking any traps which would cause the same fragment to be continuously selected within a small range.\n * @param {*} fragPrevious - The last frag successfully appended\n * @param {Array} fragments - The array of candidate fragments\n * @param {number} [bufferEnd = 0] - The end of the contiguous buffered range the playhead is currently within\n * @param {number} maxFragLookUpTolerance - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns {*} foundFrag - The best matching fragment\n */\n\nfunction findFragmentByPTS(fragPrevious, fragments, bufferEnd, maxFragLookUpTolerance) {\n if (bufferEnd === void 0) {\n bufferEnd = 0;\n }\n\n if (maxFragLookUpTolerance === void 0) {\n maxFragLookUpTolerance = 0;\n }\n\n var fragNext = null;\n\n if (fragPrevious) {\n fragNext = fragments[fragPrevious.sn - fragments[0].sn + 1] || null;\n } else if (bufferEnd === 0 && fragments[0].start === 0) {\n fragNext = fragments[0];\n } // Prefer the next fragment if it's within tolerance\n\n\n if (fragNext && fragmentWithinToleranceTest(bufferEnd, maxFragLookUpTolerance, fragNext) === 0) {\n return fragNext;\n } // We might be seeking past the tolerance so find the best match\n\n\n var foundFragment = _utils_binary_search__WEBPACK_IMPORTED_MODULE_1__[\"default\"].search(fragments, fragmentWithinToleranceTest.bind(null, bufferEnd, maxFragLookUpTolerance));\n\n if (foundFragment) {\n return foundFragment;\n } // If no match was found return the next fragment after fragPrevious, or null\n\n\n return fragNext;\n}\n/**\n * The test function used by the findFragmentBySn's BinarySearch to look for the best match to the current buffer conditions.\n * @param {*} candidate - The fragment to test\n * @param {number} [bufferEnd = 0] - The end of the current buffered range the playhead is currently within\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns {number} - 0 if it matches, 1 if too low, -1 if too high\n */\n\nfunction fragmentWithinToleranceTest(bufferEnd, maxFragLookUpTolerance, candidate) {\n if (bufferEnd === void 0) {\n bufferEnd = 0;\n }\n\n if (maxFragLookUpTolerance === void 0) {\n maxFragLookUpTolerance = 0;\n }\n\n // offset should be within fragment boundary - config.maxFragLookUpTolerance\n // this is to cope with situations like\n // bufferEnd = 9.991\n // frag[Ø] : [0,10]\n // frag[1] : [10,20]\n // bufferEnd is within frag[0] range ... although what we are expecting is to return frag[1] here\n // frag start frag start+duration\n // |-----------------------------|\n // <---> <--->\n // ...--------><-----------------------------><---------....\n // previous frag matching fragment next frag\n // return -1 return 0 return 1\n // logger.log(`level/sn/start/end/bufEnd:${level}/${candidate.sn}/${candidate.start}/${(candidate.start+candidate.duration)}/${bufferEnd}`);\n // Set the lookup tolerance to be small enough to detect the current segment - ensures we don't skip over very small segments\n var candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0));\n\n if (candidate.start + candidate.duration - candidateLookupTolerance <= bufferEnd) {\n return 1;\n } else if (candidate.start - candidateLookupTolerance > bufferEnd && candidate.start) {\n // if maxFragLookUpTolerance will have negative value then don't return -1 for first element\n return -1;\n }\n\n return 0;\n}\n/**\n * The test function used by the findFragmentByPdt's BinarySearch to look for the best match to the current buffer conditions.\n * This function tests the candidate's program date time values, as represented in Unix time\n * @param {*} candidate - The fragment to test\n * @param {number} [pdtBufferEnd = 0] - The Unix time representing the end of the current buffered range\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns {boolean} True if contiguous, false otherwise\n */\n\nfunction pdtWithinToleranceTest(pdtBufferEnd, maxFragLookUpTolerance, candidate) {\n var candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0)) * 1000; // endProgramDateTime can be null, default to zero\n\n var endProgramDateTime = candidate.endProgramDateTime || 0;\n return endProgramDateTime - candidateLookupTolerance > pdtBufferEnd;\n}\nfunction findFragWithCC(fragments, cc) {\n return _utils_binary_search__WEBPACK_IMPORTED_MODULE_1__[\"default\"].search(fragments, function (candidate) {\n if (candidate.cc < cc) {\n return 1;\n } else if (candidate.cc > cc) {\n return -1;\n } else {\n return 0;\n }\n });\n}\n\n/***/ }),\n\n/***/ \"./src/controller/fragment-tracker.ts\":\n/*!********************************************!*\\\n !*** ./src/controller/fragment-tracker.ts ***!\n \\********************************************/\n/*! exports provided: FragmentState, FragmentTracker */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FragmentState\", function() { return FragmentState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FragmentTracker\", function() { return FragmentTracker; });\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n\n\nvar FragmentState;\n\n(function (FragmentState) {\n FragmentState[\"NOT_LOADED\"] = \"NOT_LOADED\";\n FragmentState[\"BACKTRACKED\"] = \"BACKTRACKED\";\n FragmentState[\"APPENDING\"] = \"APPENDING\";\n FragmentState[\"PARTIAL\"] = \"PARTIAL\";\n FragmentState[\"OK\"] = \"OK\";\n})(FragmentState || (FragmentState = {}));\n\nvar FragmentTracker = /*#__PURE__*/function () {\n function FragmentTracker(hls) {\n this.activeFragment = null;\n this.activeParts = null;\n this.fragments = Object.create(null);\n this.timeRanges = Object.create(null);\n this.bufferPadding = 0.2;\n this.hls = void 0;\n this.hls = hls;\n\n this._registerListeners();\n }\n\n var _proto = FragmentTracker.prototype;\n\n _proto._registerListeners = function _registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_APPENDED, this.onBufferAppended, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_APPENDED, this.onBufferAppended, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n };\n\n _proto.destroy = function destroy() {\n this._unregisterListeners(); // @ts-ignore\n\n\n this.fragments = this.timeRanges = null;\n }\n /**\n * Return a Fragment with an appended range that matches the position and levelType.\n * If not found any Fragment, return null\n */\n ;\n\n _proto.getAppendedFrag = function getAppendedFrag(position, levelType) {\n if (levelType === _types_loader__WEBPACK_IMPORTED_MODULE_1__[\"PlaylistLevelType\"].MAIN) {\n var activeFragment = this.activeFragment,\n activeParts = this.activeParts;\n\n if (!activeFragment) {\n return null;\n }\n\n if (activeParts) {\n for (var i = activeParts.length; i--;) {\n var activePart = activeParts[i];\n var appendedPTS = activePart ? activePart.end : activeFragment.appendedPTS;\n\n if (activePart.start <= position && appendedPTS !== undefined && position <= appendedPTS) {\n // 9 is a magic number. remove parts from lookup after a match but keep some short seeks back.\n if (i > 9) {\n this.activeParts = activeParts.slice(i - 9);\n }\n\n return activePart;\n }\n }\n } else if (activeFragment.start <= position && activeFragment.appendedPTS !== undefined && position <= activeFragment.appendedPTS) {\n return activeFragment;\n }\n }\n\n return this.getBufferedFrag(position, levelType);\n }\n /**\n * Return a buffered Fragment that matches the position and levelType.\n * A buffered Fragment is one whose loading, parsing and appending is done (completed or \"partial\" meaning aborted).\n * If not found any Fragment, return null\n */\n ;\n\n _proto.getBufferedFrag = function getBufferedFrag(position, levelType) {\n var fragments = this.fragments;\n var keys = Object.keys(fragments);\n\n for (var i = keys.length; i--;) {\n var fragmentEntity = fragments[keys[i]];\n\n if ((fragmentEntity === null || fragmentEntity === void 0 ? void 0 : fragmentEntity.body.type) === levelType && fragmentEntity.buffered) {\n var frag = fragmentEntity.body;\n\n if (frag.start <= position && position <= frag.end) {\n return frag;\n }\n }\n }\n\n return null;\n }\n /**\n * Partial fragments effected by coded frame eviction will be removed\n * The browser will unload parts of the buffer to free up memory for new buffer data\n * Fragments will need to be reloaded when the buffer is freed up, removing partial fragments will allow them to reload(since there might be parts that are still playable)\n */\n ;\n\n _proto.detectEvictedFragments = function detectEvictedFragments(elementaryStream, timeRange, playlistType) {\n var _this = this;\n\n // Check if any flagged fragments have been unloaded\n Object.keys(this.fragments).forEach(function (key) {\n var fragmentEntity = _this.fragments[key];\n\n if (!fragmentEntity) {\n return;\n }\n\n if (!fragmentEntity.buffered) {\n if (fragmentEntity.body.type === playlistType) {\n _this.removeFragment(fragmentEntity.body);\n }\n\n return;\n }\n\n var esData = fragmentEntity.range[elementaryStream];\n\n if (!esData) {\n return;\n }\n\n esData.time.some(function (time) {\n var isNotBuffered = !_this.isTimeBuffered(time.startPTS, time.endPTS, timeRange);\n\n if (isNotBuffered) {\n // Unregister partial fragment as it needs to load again to be reused\n _this.removeFragment(fragmentEntity.body);\n }\n\n return isNotBuffered;\n });\n });\n }\n /**\n * Checks if the fragment passed in is loaded in the buffer properly\n * Partially loaded fragments will be registered as a partial fragment\n */\n ;\n\n _proto.detectPartialFragments = function detectPartialFragments(data) {\n var _this2 = this;\n\n var timeRanges = this.timeRanges;\n var frag = data.frag,\n part = data.part;\n\n if (!timeRanges || frag.sn === 'initSegment') {\n return;\n }\n\n var fragKey = getFragmentKey(frag);\n var fragmentEntity = this.fragments[fragKey];\n\n if (!fragmentEntity) {\n return;\n }\n\n Object.keys(timeRanges).forEach(function (elementaryStream) {\n var streamInfo = frag.elementaryStreams[elementaryStream];\n\n if (!streamInfo) {\n return;\n }\n\n var timeRange = timeRanges[elementaryStream];\n var partial = part !== null || streamInfo.partial === true;\n fragmentEntity.range[elementaryStream] = _this2.getBufferedTimes(frag, part, partial, timeRange);\n });\n fragmentEntity.backtrack = fragmentEntity.loaded = null;\n\n if (Object.keys(fragmentEntity.range).length) {\n fragmentEntity.buffered = true;\n } else {\n // remove fragment if nothing was appended\n this.removeFragment(fragmentEntity.body);\n }\n };\n\n _proto.fragBuffered = function fragBuffered(frag) {\n var fragKey = getFragmentKey(frag);\n var fragmentEntity = this.fragments[fragKey];\n\n if (fragmentEntity) {\n fragmentEntity.backtrack = fragmentEntity.loaded = null;\n fragmentEntity.buffered = true;\n }\n };\n\n _proto.getBufferedTimes = function getBufferedTimes(fragment, part, partial, timeRange) {\n var buffered = {\n time: [],\n partial: partial\n };\n var startPTS = part ? part.start : fragment.start;\n var endPTS = part ? part.end : fragment.end;\n var minEndPTS = fragment.minEndPTS || endPTS;\n var maxStartPTS = fragment.maxStartPTS || startPTS;\n\n for (var i = 0; i < timeRange.length; i++) {\n var startTime = timeRange.start(i) - this.bufferPadding;\n var endTime = timeRange.end(i) + this.bufferPadding;\n\n if (maxStartPTS >= startTime && minEndPTS <= endTime) {\n // Fragment is entirely contained in buffer\n // No need to check the other timeRange times since it's completely playable\n buffered.time.push({\n startPTS: Math.max(startPTS, timeRange.start(i)),\n endPTS: Math.min(endPTS, timeRange.end(i))\n });\n break;\n } else if (startPTS < endTime && endPTS > startTime) {\n buffered.partial = true; // Check for intersection with buffer\n // Get playable sections of the fragment\n\n buffered.time.push({\n startPTS: Math.max(startPTS, timeRange.start(i)),\n endPTS: Math.min(endPTS, timeRange.end(i))\n });\n } else if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n break;\n }\n }\n\n return buffered;\n }\n /**\n * Gets the partial fragment for a certain time\n */\n ;\n\n _proto.getPartialFragment = function getPartialFragment(time) {\n var bestFragment = null;\n var timePadding;\n var startTime;\n var endTime;\n var bestOverlap = 0;\n var bufferPadding = this.bufferPadding,\n fragments = this.fragments;\n Object.keys(fragments).forEach(function (key) {\n var fragmentEntity = fragments[key];\n\n if (!fragmentEntity) {\n return;\n }\n\n if (isPartial(fragmentEntity)) {\n startTime = fragmentEntity.body.start - bufferPadding;\n endTime = fragmentEntity.body.end + bufferPadding;\n\n if (time >= startTime && time <= endTime) {\n // Use the fragment that has the most padding from start and end time\n timePadding = Math.min(time - startTime, endTime - time);\n\n if (bestOverlap <= timePadding) {\n bestFragment = fragmentEntity.body;\n bestOverlap = timePadding;\n }\n }\n }\n });\n return bestFragment;\n };\n\n _proto.getState = function getState(fragment) {\n var fragKey = getFragmentKey(fragment);\n var fragmentEntity = this.fragments[fragKey];\n\n if (fragmentEntity) {\n if (!fragmentEntity.buffered) {\n if (fragmentEntity.backtrack) {\n return FragmentState.BACKTRACKED;\n }\n\n return FragmentState.APPENDING;\n } else if (isPartial(fragmentEntity)) {\n return FragmentState.PARTIAL;\n } else {\n return FragmentState.OK;\n }\n }\n\n return FragmentState.NOT_LOADED;\n };\n\n _proto.backtrack = function backtrack(frag, data) {\n var fragKey = getFragmentKey(frag);\n var fragmentEntity = this.fragments[fragKey];\n\n if (!fragmentEntity || fragmentEntity.backtrack) {\n return null;\n }\n\n var backtrack = fragmentEntity.backtrack = data ? data : fragmentEntity.loaded;\n fragmentEntity.loaded = null;\n return backtrack;\n };\n\n _proto.getBacktrackData = function getBacktrackData(fragment) {\n var fragKey = getFragmentKey(fragment);\n var fragmentEntity = this.fragments[fragKey];\n\n if (fragmentEntity) {\n var _backtrack$payload;\n\n var backtrack = fragmentEntity.backtrack; // If data was already sent to Worker it is detached no longer available\n\n if (backtrack !== null && backtrack !== void 0 && (_backtrack$payload = backtrack.payload) !== null && _backtrack$payload !== void 0 && _backtrack$payload.byteLength) {\n return backtrack;\n } else {\n this.removeFragment(fragment);\n }\n }\n\n return null;\n };\n\n _proto.isTimeBuffered = function isTimeBuffered(startPTS, endPTS, timeRange) {\n var startTime;\n var endTime;\n\n for (var i = 0; i < timeRange.length; i++) {\n startTime = timeRange.start(i) - this.bufferPadding;\n endTime = timeRange.end(i) + this.bufferPadding;\n\n if (startPTS >= startTime && endPTS <= endTime) {\n return true;\n }\n\n if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n return false;\n }\n }\n\n return false;\n };\n\n _proto.onFragLoaded = function onFragLoaded(event, data) {\n var frag = data.frag,\n part = data.part; // don't track initsegment (for which sn is not a number)\n // don't track frags used for bitrateTest, they're irrelevant.\n // don't track parts for memory efficiency\n\n if (frag.sn === 'initSegment' || frag.bitrateTest || part) {\n return;\n }\n\n var fragKey = getFragmentKey(frag);\n this.fragments[fragKey] = {\n body: frag,\n loaded: data,\n backtrack: null,\n buffered: false,\n range: Object.create(null)\n };\n };\n\n _proto.onBufferAppended = function onBufferAppended(event, data) {\n var _this3 = this;\n\n var frag = data.frag,\n part = data.part,\n timeRanges = data.timeRanges;\n\n if (frag.type === _types_loader__WEBPACK_IMPORTED_MODULE_1__[\"PlaylistLevelType\"].MAIN) {\n this.activeFragment = frag;\n\n if (part) {\n var activeParts = this.activeParts;\n\n if (!activeParts) {\n this.activeParts = activeParts = [];\n }\n\n activeParts.push(part);\n } else {\n this.activeParts = null;\n }\n } // Store the latest timeRanges loaded in the buffer\n\n\n this.timeRanges = timeRanges;\n Object.keys(timeRanges).forEach(function (elementaryStream) {\n var timeRange = timeRanges[elementaryStream];\n\n _this3.detectEvictedFragments(elementaryStream, timeRange);\n\n if (!part) {\n for (var i = 0; i < timeRange.length; i++) {\n frag.appendedPTS = Math.max(timeRange.end(i), frag.appendedPTS || 0);\n }\n }\n });\n };\n\n _proto.onFragBuffered = function onFragBuffered(event, data) {\n this.detectPartialFragments(data);\n };\n\n _proto.hasFragment = function hasFragment(fragment) {\n var fragKey = getFragmentKey(fragment);\n return !!this.fragments[fragKey];\n };\n\n _proto.removeFragmentsInRange = function removeFragmentsInRange(start, end, playlistType) {\n var _this4 = this;\n\n Object.keys(this.fragments).forEach(function (key) {\n var fragmentEntity = _this4.fragments[key];\n\n if (!fragmentEntity) {\n return;\n }\n\n if (fragmentEntity.buffered) {\n var frag = fragmentEntity.body;\n\n if (frag.type === playlistType && frag.start < end && frag.end > start) {\n _this4.removeFragment(frag);\n }\n }\n });\n };\n\n _proto.removeFragment = function removeFragment(fragment) {\n var fragKey = getFragmentKey(fragment);\n fragment.stats.loaded = 0;\n fragment.clearElementaryStreamInfo();\n delete this.fragments[fragKey];\n };\n\n _proto.removeAllFragments = function removeAllFragments() {\n this.fragments = Object.create(null);\n this.activeFragment = null;\n this.activeParts = null;\n };\n\n return FragmentTracker;\n}();\n\nfunction isPartial(fragmentEntity) {\n var _fragmentEntity$range, _fragmentEntity$range2;\n\n return fragmentEntity.buffered && (((_fragmentEntity$range = fragmentEntity.range.video) === null || _fragmentEntity$range === void 0 ? void 0 : _fragmentEntity$range.partial) || ((_fragmentEntity$range2 = fragmentEntity.range.audio) === null || _fragmentEntity$range2 === void 0 ? void 0 : _fragmentEntity$range2.partial));\n}\n\nfunction getFragmentKey(fragment) {\n return fragment.type + \"_\" + fragment.level + \"_\" + fragment.urlId + \"_\" + fragment.sn;\n}\n\n/***/ }),\n\n/***/ \"./src/controller/gap-controller.ts\":\n/*!******************************************!*\\\n !*** ./src/controller/gap-controller.ts ***!\n \\******************************************/\n/*! exports provided: STALL_MINIMUM_DURATION_MS, MAX_START_GAP_JUMP, SKIP_BUFFER_HOLE_STEP_SECONDS, SKIP_BUFFER_RANGE_START, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STALL_MINIMUM_DURATION_MS\", function() { return STALL_MINIMUM_DURATION_MS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_START_GAP_JUMP\", function() { return MAX_START_GAP_JUMP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SKIP_BUFFER_HOLE_STEP_SECONDS\", function() { return SKIP_BUFFER_HOLE_STEP_SECONDS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SKIP_BUFFER_RANGE_START\", function() { return SKIP_BUFFER_RANGE_START; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return GapController; });\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\n\nvar STALL_MINIMUM_DURATION_MS = 250;\nvar MAX_START_GAP_JUMP = 2.0;\nvar SKIP_BUFFER_HOLE_STEP_SECONDS = 0.1;\nvar SKIP_BUFFER_RANGE_START = 0.05;\n\nvar GapController = /*#__PURE__*/function () {\n function GapController(config, media, fragmentTracker, hls) {\n this.config = void 0;\n this.media = void 0;\n this.fragmentTracker = void 0;\n this.hls = void 0;\n this.nudgeRetry = 0;\n this.stallReported = false;\n this.stalled = null;\n this.moved = false;\n this.seeking = false;\n this.config = config;\n this.media = media;\n this.fragmentTracker = fragmentTracker;\n this.hls = hls;\n }\n\n var _proto = GapController.prototype;\n\n _proto.destroy = function destroy() {\n // @ts-ignore\n this.hls = this.fragmentTracker = this.media = null;\n }\n /**\n * Checks if the playhead is stuck within a gap, and if so, attempts to free it.\n * A gap is an unbuffered range between two buffered ranges (or the start and the first buffered range).\n *\n * @param {number} lastCurrentTime Previously read playhead position\n */\n ;\n\n _proto.poll = function poll(lastCurrentTime) {\n var config = this.config,\n media = this.media,\n stalled = this.stalled;\n var currentTime = media.currentTime,\n seeking = media.seeking;\n var seeked = this.seeking && !seeking;\n var beginSeek = !this.seeking && seeking;\n this.seeking = seeking; // The playhead is moving, no-op\n\n if (currentTime !== lastCurrentTime) {\n this.moved = true;\n\n if (stalled !== null) {\n // The playhead is now moving, but was previously stalled\n if (this.stallReported) {\n var _stalledDuration = self.performance.now() - stalled;\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn(\"playback not stuck anymore @\" + currentTime + \", after \" + Math.round(_stalledDuration) + \"ms\");\n this.stallReported = false;\n }\n\n this.stalled = null;\n this.nudgeRetry = 0;\n }\n\n return;\n } // Clear stalled state when beginning or finishing seeking so that we don't report stalls coming out of a seek\n\n\n if (beginSeek || seeked) {\n this.stalled = null;\n } // The playhead should not be moving\n\n\n if (media.paused || media.ended || media.playbackRate === 0 || !_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_0__[\"BufferHelper\"].getBuffered(media).length) {\n return;\n }\n\n var bufferInfo = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_0__[\"BufferHelper\"].bufferInfo(media, currentTime, 0);\n var isBuffered = bufferInfo.len > 0;\n var nextStart = bufferInfo.nextStart || 0; // There is no playable buffer (seeked, waiting for buffer)\n\n if (!isBuffered && !nextStart) {\n return;\n }\n\n if (seeking) {\n // Waiting for seeking in a buffered range to complete\n var hasEnoughBuffer = bufferInfo.len > MAX_START_GAP_JUMP; // Next buffered range is too far ahead to jump to while still seeking\n\n var noBufferGap = !nextStart || nextStart - currentTime > MAX_START_GAP_JUMP && !this.fragmentTracker.getPartialFragment(currentTime);\n\n if (hasEnoughBuffer || noBufferGap) {\n return;\n } // Reset moved state when seeking to a point in or before a gap\n\n\n this.moved = false;\n } // Skip start gaps if we haven't played, but the last poll detected the start of a stall\n // The addition poll gives the browser a chance to jump the gap for us\n\n\n if (!this.moved && this.stalled !== null) {\n var _level$details;\n\n // Jump start gaps within jump threshold\n var startJump = Math.max(nextStart, bufferInfo.start || 0) - currentTime; // When joining a live stream with audio tracks, account for live playlist window sliding by allowing\n // a larger jump over start gaps caused by the audio-stream-controller buffering a start fragment\n // that begins over 1 target duration after the video start position.\n\n var level = this.hls.levels ? this.hls.levels[this.hls.currentLevel] : null;\n var isLive = level === null || level === void 0 ? void 0 : (_level$details = level.details) === null || _level$details === void 0 ? void 0 : _level$details.live;\n var maxStartGapJump = isLive ? level.details.targetduration * 2 : MAX_START_GAP_JUMP;\n\n if (startJump > 0 && startJump <= maxStartGapJump) {\n this._trySkipBufferHole(null);\n\n return;\n }\n } // Start tracking stall time\n\n\n var tnow = self.performance.now();\n\n if (stalled === null) {\n this.stalled = tnow;\n return;\n }\n\n var stalledDuration = tnow - stalled;\n\n if (!seeking && stalledDuration >= STALL_MINIMUM_DURATION_MS) {\n // Report stalling after trying to fix\n this._reportStall(bufferInfo.len);\n }\n\n var bufferedWithHoles = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_0__[\"BufferHelper\"].bufferInfo(media, currentTime, config.maxBufferHole);\n\n this._tryFixBufferStall(bufferedWithHoles, stalledDuration);\n }\n /**\n * Detects and attempts to fix known buffer stalling issues.\n * @param bufferInfo - The properties of the current buffer.\n * @param stalledDurationMs - The amount of time Hls.js has been stalling for.\n * @private\n */\n ;\n\n _proto._tryFixBufferStall = function _tryFixBufferStall(bufferInfo, stalledDurationMs) {\n var config = this.config,\n fragmentTracker = this.fragmentTracker,\n media = this.media;\n var currentTime = media.currentTime;\n var partial = fragmentTracker.getPartialFragment(currentTime);\n\n if (partial) {\n // Try to skip over the buffer hole caused by a partial fragment\n // This method isn't limited by the size of the gap between buffered ranges\n var targetTime = this._trySkipBufferHole(partial); // we return here in this case, meaning\n // the branch below only executes when we don't handle a partial fragment\n\n\n if (targetTime) {\n return;\n }\n } // if we haven't had to skip over a buffer hole of a partial fragment\n // we may just have to \"nudge\" the playlist as the browser decoding/rendering engine\n // needs to cross some sort of threshold covering all source-buffers content\n // to start playing properly.\n\n\n if (bufferInfo.len > config.maxBufferHole && stalledDurationMs > config.highBufferWatchdogPeriod * 1000) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('Trying to nudge playhead over buffer-hole'); // Try to nudge currentTime over a buffer hole if we've been stalling for the configured amount of seconds\n // We only try to jump the hole if it's under the configured size\n // Reset stalled so to rearm watchdog timer\n\n this.stalled = null;\n\n this._tryNudgeBuffer();\n }\n }\n /**\n * Triggers a BUFFER_STALLED_ERROR event, but only once per stall period.\n * @param bufferLen - The playhead distance from the end of the current buffer segment.\n * @private\n */\n ;\n\n _proto._reportStall = function _reportStall(bufferLen) {\n var hls = this.hls,\n media = this.media,\n stallReported = this.stallReported;\n\n if (!stallReported) {\n // Report stalled error once\n this.stallReported = true;\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn(\"Playback stalling at @\" + media.currentTime + \" due to low buffer (buffer=\" + bufferLen + \")\");\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].BUFFER_STALLED_ERROR,\n fatal: false,\n buffer: bufferLen\n });\n }\n }\n /**\n * Attempts to fix buffer stalls by jumping over known gaps caused by partial fragments\n * @param partial - The partial fragment found at the current time (where playback is stalling).\n * @private\n */\n ;\n\n _proto._trySkipBufferHole = function _trySkipBufferHole(partial) {\n var config = this.config,\n hls = this.hls,\n media = this.media;\n var currentTime = media.currentTime;\n var lastEndTime = 0; // Check if currentTime is between unbuffered regions of partial fragments\n\n var buffered = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_0__[\"BufferHelper\"].getBuffered(media);\n\n for (var i = 0; i < buffered.length; i++) {\n var startTime = buffered.start(i);\n\n if (currentTime + config.maxBufferHole >= lastEndTime && currentTime < startTime) {\n var targetTime = Math.max(startTime + SKIP_BUFFER_RANGE_START, media.currentTime + SKIP_BUFFER_HOLE_STEP_SECONDS);\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn(\"skipping hole, adjusting currentTime from \" + currentTime + \" to \" + targetTime);\n this.moved = true;\n this.stalled = null;\n media.currentTime = targetTime;\n\n if (partial) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].BUFFER_SEEK_OVER_HOLE,\n fatal: false,\n reason: \"fragment loaded with buffer holes, seeking from \" + currentTime + \" to \" + targetTime,\n frag: partial\n });\n }\n\n return targetTime;\n }\n\n lastEndTime = buffered.end(i);\n }\n\n return 0;\n }\n /**\n * Attempts to fix buffer stalls by advancing the mediaElement's current time by a small amount.\n * @private\n */\n ;\n\n _proto._tryNudgeBuffer = function _tryNudgeBuffer() {\n var config = this.config,\n hls = this.hls,\n media = this.media;\n var currentTime = media.currentTime;\n var nudgeRetry = (this.nudgeRetry || 0) + 1;\n this.nudgeRetry = nudgeRetry;\n\n if (nudgeRetry < config.nudgeMaxRetry) {\n var targetTime = currentTime + nudgeRetry * config.nudgeOffset; // playback stalled in buffered area ... let's nudge currentTime to try to overcome this\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn(\"Nudging 'currentTime' from \" + currentTime + \" to \" + targetTime);\n media.currentTime = targetTime;\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].BUFFER_NUDGE_ON_STALL,\n fatal: false\n });\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].error(\"Playhead still not moving while enough data buffered @\" + currentTime + \" after \" + config.nudgeMaxRetry + \" nudges\");\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].BUFFER_STALLED_ERROR,\n fatal: true\n });\n }\n };\n\n return GapController;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/id3-track-controller.ts\":\n/*!************************************************!*\\\n !*** ./src/controller/id3-track-controller.ts ***!\n \\************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/texttrack-utils */ \"./src/utils/texttrack-utils.ts\");\n/* harmony import */ var _demux_id3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../demux/id3 */ \"./src/demux/id3.ts\");\n\n\n\nvar MIN_CUE_DURATION = 0.25;\n\nvar ID3TrackController = /*#__PURE__*/function () {\n function ID3TrackController(hls) {\n this.hls = void 0;\n this.id3Track = null;\n this.media = null;\n this.hls = hls;\n\n this._registerListeners();\n }\n\n var _proto = ID3TrackController.prototype;\n\n _proto.destroy = function destroy() {\n this._unregisterListeners();\n };\n\n _proto._registerListeners = function _registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this);\n } // Add ID3 metatadata text track.\n ;\n\n _proto.onMediaAttached = function onMediaAttached(event, data) {\n this.media = data.media;\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n if (!this.id3Track) {\n return;\n }\n\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_1__[\"clearCurrentCues\"])(this.id3Track);\n this.id3Track = null;\n this.media = null;\n };\n\n _proto.getID3Track = function getID3Track(textTracks) {\n if (!this.media) {\n return;\n }\n\n for (var i = 0; i < textTracks.length; i++) {\n var textTrack = textTracks[i];\n\n if (textTrack.kind === 'metadata' && textTrack.label === 'id3') {\n // send 'addtrack' when reusing the textTrack for metadata,\n // same as what we do for captions\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_1__[\"sendAddTrackEvent\"])(textTrack, this.media);\n return textTrack;\n }\n }\n\n return this.media.addTextTrack('metadata', 'id3');\n };\n\n _proto.onFragParsingMetadata = function onFragParsingMetadata(event, data) {\n if (!this.media) {\n return;\n }\n\n var fragment = data.frag;\n var samples = data.samples; // create track dynamically\n\n if (!this.id3Track) {\n this.id3Track = this.getID3Track(this.media.textTracks);\n this.id3Track.mode = 'hidden';\n } // Attempt to recreate Safari functionality by creating\n // WebKitDataCue objects when available and store the decoded\n // ID3 data in the value property of the cue\n\n\n var Cue = self.WebKitDataCue || self.VTTCue || self.TextTrackCue;\n\n for (var i = 0; i < samples.length; i++) {\n var frames = _demux_id3__WEBPACK_IMPORTED_MODULE_2__[\"getID3Frames\"](samples[i].data);\n\n if (frames) {\n var startTime = samples[i].pts;\n var endTime = i < samples.length - 1 ? samples[i + 1].pts : fragment.end;\n var timeDiff = endTime - startTime;\n\n if (timeDiff <= 0) {\n endTime = startTime + MIN_CUE_DURATION;\n }\n\n for (var j = 0; j < frames.length; j++) {\n var frame = frames[j]; // Safari doesn't put the timestamp frame in the TextTrack\n\n if (!_demux_id3__WEBPACK_IMPORTED_MODULE_2__[\"isTimeStampFrame\"](frame)) {\n var cue = new Cue(startTime, endTime, '');\n cue.value = frame;\n this.id3Track.addCue(cue);\n }\n }\n }\n }\n };\n\n _proto.onBufferFlushing = function onBufferFlushing(event, _ref) {\n var startOffset = _ref.startOffset,\n endOffset = _ref.endOffset,\n type = _ref.type;\n\n if (!type || type === 'audio') {\n // id3 cues come from parsed audio only remove cues when audio buffer is cleared\n var id3Track = this.id3Track;\n\n if (id3Track) {\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_1__[\"removeCuesInRange\"])(id3Track, startOffset, endOffset);\n }\n }\n };\n\n return ID3TrackController;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ID3TrackController);\n\n/***/ }),\n\n/***/ \"./src/controller/latency-controller.ts\":\n/*!**********************************************!*\\\n !*** ./src/controller/latency-controller.ts ***!\n \\**********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return LatencyController; });\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar LatencyController = /*#__PURE__*/function () {\n function LatencyController(hls) {\n var _this = this;\n\n this.hls = void 0;\n this.config = void 0;\n this.media = null;\n this.levelDetails = null;\n this.currentTime = 0;\n this.stallCount = 0;\n this._latency = null;\n\n this.timeupdateHandler = function () {\n return _this.timeupdate();\n };\n\n this.hls = hls;\n this.config = hls.config;\n this.registerListeners();\n }\n\n var _proto = LatencyController.prototype;\n\n _proto.destroy = function destroy() {\n this.unregisterListeners();\n this.onMediaDetaching();\n this.levelDetails = null; // @ts-ignore\n\n this.hls = this.timeupdateHandler = null;\n };\n\n _proto.registerListeners = function registerListeners() {\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_UPDATED, this.onLevelUpdated, this);\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached);\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching);\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading);\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_UPDATED, this.onLevelUpdated);\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, this.onError);\n };\n\n _proto.onMediaAttached = function onMediaAttached(event, data) {\n this.media = data.media;\n this.media.addEventListener('timeupdate', this.timeupdateHandler);\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n if (this.media) {\n this.media.removeEventListener('timeupdate', this.timeupdateHandler);\n this.media = null;\n }\n };\n\n _proto.onManifestLoading = function onManifestLoading() {\n this.levelDetails = null;\n this._latency = null;\n this.stallCount = 0;\n };\n\n _proto.onLevelUpdated = function onLevelUpdated(event, _ref) {\n var details = _ref.details;\n this.levelDetails = details;\n\n if (details.advanced) {\n this.timeupdate();\n }\n\n if (!details.live && this.media) {\n this.media.removeEventListener('timeupdate', this.timeupdateHandler);\n }\n };\n\n _proto.onError = function onError(event, data) {\n if (data.details !== _errors__WEBPACK_IMPORTED_MODULE_0__[\"ErrorDetails\"].BUFFER_STALLED_ERROR) {\n return;\n }\n\n this.stallCount++;\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn('[playback-rate-controller]: Stall detected, adjusting target latency');\n };\n\n _proto.timeupdate = function timeupdate() {\n var media = this.media,\n levelDetails = this.levelDetails;\n\n if (!media || !levelDetails) {\n return;\n }\n\n this.currentTime = media.currentTime;\n var latency = this.computeLatency();\n\n if (latency === null) {\n return;\n }\n\n this._latency = latency; // Adapt playbackRate to meet target latency in low-latency mode\n\n var _this$config = this.config,\n lowLatencyMode = _this$config.lowLatencyMode,\n maxLiveSyncPlaybackRate = _this$config.maxLiveSyncPlaybackRate;\n\n if (!lowLatencyMode || maxLiveSyncPlaybackRate === 1) {\n return;\n }\n\n var targetLatency = this.targetLatency;\n\n if (targetLatency === null) {\n return;\n }\n\n var distanceFromTarget = latency - targetLatency; // Only adjust playbackRate when within one target duration of targetLatency\n // and more than one second from under-buffering.\n // Playback further than one target duration from target can be considered DVR playback.\n\n var liveMinLatencyDuration = Math.min(this.maxLatency, targetLatency + levelDetails.targetduration);\n var inLiveRange = distanceFromTarget < liveMinLatencyDuration;\n\n if (levelDetails.live && inLiveRange && distanceFromTarget > 0.05 && this.forwardBufferLength > 1) {\n var max = Math.min(2, Math.max(1.0, maxLiveSyncPlaybackRate));\n var rate = Math.round(2 / (1 + Math.exp(-0.75 * distanceFromTarget - this.edgeStalled)) * 20) / 20;\n media.playbackRate = Math.min(max, Math.max(1, rate));\n } else if (media.playbackRate !== 1 && media.playbackRate !== 0) {\n media.playbackRate = 1;\n }\n };\n\n _proto.estimateLiveEdge = function estimateLiveEdge() {\n var levelDetails = this.levelDetails;\n\n if (levelDetails === null) {\n return null;\n }\n\n return levelDetails.edge + levelDetails.age;\n };\n\n _proto.computeLatency = function computeLatency() {\n var liveEdge = this.estimateLiveEdge();\n\n if (liveEdge === null) {\n return null;\n }\n\n return liveEdge - this.currentTime;\n };\n\n _createClass(LatencyController, [{\n key: \"latency\",\n get: function get() {\n return this._latency || 0;\n }\n }, {\n key: \"maxLatency\",\n get: function get() {\n var config = this.config,\n levelDetails = this.levelDetails;\n\n if (config.liveMaxLatencyDuration !== undefined) {\n return config.liveMaxLatencyDuration;\n }\n\n return levelDetails ? config.liveMaxLatencyDurationCount * levelDetails.targetduration : 0;\n }\n }, {\n key: \"targetLatency\",\n get: function get() {\n var levelDetails = this.levelDetails;\n\n if (levelDetails === null) {\n return null;\n }\n\n var holdBack = levelDetails.holdBack,\n partHoldBack = levelDetails.partHoldBack,\n targetduration = levelDetails.targetduration;\n var _this$config2 = this.config,\n liveSyncDuration = _this$config2.liveSyncDuration,\n liveSyncDurationCount = _this$config2.liveSyncDurationCount,\n lowLatencyMode = _this$config2.lowLatencyMode;\n var userConfig = this.hls.userConfig;\n var targetLatency = lowLatencyMode ? partHoldBack || holdBack : holdBack;\n\n if (userConfig.liveSyncDuration || userConfig.liveSyncDurationCount || targetLatency === 0) {\n targetLatency = liveSyncDuration !== undefined ? liveSyncDuration : liveSyncDurationCount * targetduration;\n }\n\n var maxLiveSyncOnStallIncrease = targetduration;\n var liveSyncOnStallIncrease = 1.0;\n return targetLatency + Math.min(this.stallCount * liveSyncOnStallIncrease, maxLiveSyncOnStallIncrease);\n }\n }, {\n key: \"liveSyncPosition\",\n get: function get() {\n var liveEdge = this.estimateLiveEdge();\n var targetLatency = this.targetLatency;\n var levelDetails = this.levelDetails;\n\n if (liveEdge === null || targetLatency === null || levelDetails === null) {\n return null;\n }\n\n var edge = levelDetails.edge;\n var syncPosition = liveEdge - targetLatency - this.edgeStalled;\n var min = edge - levelDetails.totalduration;\n var max = edge - (this.config.lowLatencyMode && levelDetails.partTarget || levelDetails.targetduration);\n return Math.min(Math.max(min, syncPosition), max);\n }\n }, {\n key: \"drift\",\n get: function get() {\n var levelDetails = this.levelDetails;\n\n if (levelDetails === null) {\n return 1;\n }\n\n return levelDetails.drift;\n }\n }, {\n key: \"edgeStalled\",\n get: function get() {\n var levelDetails = this.levelDetails;\n\n if (levelDetails === null) {\n return 0;\n }\n\n var maxLevelUpdateAge = (this.config.lowLatencyMode && levelDetails.partTarget || levelDetails.targetduration) * 3;\n return Math.max(levelDetails.age - maxLevelUpdateAge, 0);\n }\n }, {\n key: \"forwardBufferLength\",\n get: function get() {\n var media = this.media,\n levelDetails = this.levelDetails;\n\n if (!media || !levelDetails) {\n return 0;\n }\n\n var bufferedRanges = media.buffered.length;\n return bufferedRanges ? media.buffered.end(bufferedRanges - 1) : levelDetails.edge - this.currentTime;\n }\n }]);\n\n return LatencyController;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/level-controller.ts\":\n/*!********************************************!*\\\n !*** ./src/controller/level-controller.ts ***!\n \\********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return LevelController; });\n/* harmony import */ var _types_level__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types/level */ \"./src/types/level.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_codecs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/codecs */ \"./src/utils/codecs.ts\");\n/* harmony import */ var _level_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./level-helper */ \"./src/controller/level-helper.ts\");\n/* harmony import */ var _base_playlist_controller__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./base-playlist-controller */ \"./src/controller/base-playlist-controller.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * Level Controller\n */\n\n\n\n\n\n\n\nvar chromeOrFirefox = /chrome|firefox/.test(navigator.userAgent.toLowerCase());\n\nvar LevelController = /*#__PURE__*/function (_BasePlaylistControll) {\n _inheritsLoose(LevelController, _BasePlaylistControll);\n\n function LevelController(hls) {\n var _this;\n\n _this = _BasePlaylistControll.call(this, hls, '[level-controller]') || this;\n _this._levels = [];\n _this._firstLevel = -1;\n _this._startLevel = void 0;\n _this.currentLevelIndex = -1;\n _this.manualLevelIndex = -1;\n _this.onParsedComplete = void 0;\n\n _this._registerListeners();\n\n return _this;\n }\n\n var _proto = LevelController.prototype;\n\n _proto._registerListeners = function _registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto.destroy = function destroy() {\n this._unregisterListeners();\n\n this.manualLevelIndex = -1;\n this._levels.length = 0;\n\n _BasePlaylistControll.prototype.destroy.call(this);\n };\n\n _proto.startLoad = function startLoad() {\n var levels = this._levels; // clean up live level details to force reload them, and reset load errors\n\n levels.forEach(function (level) {\n level.loadError = 0;\n });\n\n _BasePlaylistControll.prototype.startLoad.call(this);\n };\n\n _proto.onManifestLoaded = function onManifestLoaded(event, data) {\n var levels = [];\n var audioTracks = [];\n var subtitleTracks = [];\n var bitrateStart;\n var levelSet = {};\n var levelFromSet;\n var resolutionFound = false;\n var videoCodecFound = false;\n var audioCodecFound = false; // regroup redundant levels together\n\n data.levels.forEach(function (levelParsed) {\n var attributes = levelParsed.attrs;\n resolutionFound = resolutionFound || !!(levelParsed.width && levelParsed.height);\n videoCodecFound = videoCodecFound || !!levelParsed.videoCodec;\n audioCodecFound = audioCodecFound || !!levelParsed.audioCodec; // erase audio codec info if browser does not support mp4a.40.34.\n // demuxer will autodetect codec and fallback to mpeg/audio\n\n if (chromeOrFirefox && levelParsed.audioCodec && levelParsed.audioCodec.indexOf('mp4a.40.34') !== -1) {\n levelParsed.audioCodec = undefined;\n }\n\n var levelKey = levelParsed.bitrate + \"-\" + levelParsed.attrs.RESOLUTION + \"-\" + levelParsed.attrs.CODECS;\n levelFromSet = levelSet[levelKey];\n\n if (!levelFromSet) {\n levelFromSet = new _types_level__WEBPACK_IMPORTED_MODULE_0__[\"Level\"](levelParsed);\n levelSet[levelKey] = levelFromSet;\n levels.push(levelFromSet);\n } else {\n levelFromSet.url.push(levelParsed.url);\n }\n\n if (attributes) {\n if (attributes.AUDIO) {\n Object(_level_helper__WEBPACK_IMPORTED_MODULE_4__[\"addGroupId\"])(levelFromSet, 'audio', attributes.AUDIO);\n }\n\n if (attributes.SUBTITLES) {\n Object(_level_helper__WEBPACK_IMPORTED_MODULE_4__[\"addGroupId\"])(levelFromSet, 'text', attributes.SUBTITLES);\n }\n }\n }); // remove audio-only level if we also have levels with video codecs or RESOLUTION signalled\n\n if ((resolutionFound || videoCodecFound) && audioCodecFound) {\n levels = levels.filter(function (_ref) {\n var videoCodec = _ref.videoCodec,\n width = _ref.width,\n height = _ref.height;\n return !!videoCodec || !!(width && height);\n });\n } // only keep levels with supported audio/video codecs\n\n\n levels = levels.filter(function (_ref2) {\n var audioCodec = _ref2.audioCodec,\n videoCodec = _ref2.videoCodec;\n return (!audioCodec || Object(_utils_codecs__WEBPACK_IMPORTED_MODULE_3__[\"isCodecSupportedInMp4\"])(audioCodec, 'audio')) && (!videoCodec || Object(_utils_codecs__WEBPACK_IMPORTED_MODULE_3__[\"isCodecSupportedInMp4\"])(videoCodec, 'video'));\n });\n\n if (data.audioTracks) {\n audioTracks = data.audioTracks.filter(function (track) {\n return !track.audioCodec || Object(_utils_codecs__WEBPACK_IMPORTED_MODULE_3__[\"isCodecSupportedInMp4\"])(track.audioCodec, 'audio');\n }); // Assign ids after filtering as array indices by group-id\n\n Object(_level_helper__WEBPACK_IMPORTED_MODULE_4__[\"assignTrackIdsByGroup\"])(audioTracks);\n }\n\n if (data.subtitles) {\n subtitleTracks = data.subtitles;\n Object(_level_helper__WEBPACK_IMPORTED_MODULE_4__[\"assignTrackIdsByGroup\"])(subtitleTracks);\n }\n\n if (levels.length > 0) {\n // start bitrate is the first bitrate of the manifest\n bitrateStart = levels[0].bitrate; // sort level on bitrate\n\n levels.sort(function (a, b) {\n return a.bitrate - b.bitrate;\n });\n this._levels = levels; // find index of first level in sorted levels\n\n for (var i = 0; i < levels.length; i++) {\n if (levels[i].bitrate === bitrateStart) {\n this._firstLevel = i;\n this.log(\"manifest loaded, \" + levels.length + \" level(s) found, first bitrate: \" + bitrateStart);\n break;\n }\n } // Audio is only alternate if manifest include a URI along with the audio group tag,\n // and this is not an audio-only stream where levels contain audio-only\n\n\n var audioOnly = audioCodecFound && !videoCodecFound;\n var edata = {\n levels: levels,\n audioTracks: audioTracks,\n subtitleTracks: subtitleTracks,\n firstLevel: this._firstLevel,\n stats: data.stats,\n audio: audioCodecFound,\n video: videoCodecFound,\n altAudio: !audioOnly && audioTracks.some(function (t) {\n return !!t.url;\n })\n };\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_PARSED, edata); // Initiate loading after all controllers have received MANIFEST_PARSED\n\n if (this.hls.config.autoStartLoad || this.hls.forceStartLoad) {\n this.hls.startLoad(this.hls.config.startPosition);\n }\n } else {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].MANIFEST_INCOMPATIBLE_CODECS_ERROR,\n fatal: true,\n url: data.url,\n reason: 'no level with compatible codecs found in manifest'\n });\n }\n };\n\n _proto.onError = function onError(event, data) {\n _BasePlaylistControll.prototype.onError.call(this, event, data);\n\n if (data.fatal) {\n return;\n } // Switch to redundant level when track fails to load\n\n\n var context = data.context;\n var level = this._levels[this.currentLevelIndex];\n\n if (context && (context.type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].AUDIO_TRACK && level.audioGroupIds && context.groupId === level.audioGroupIds[level.urlId] || context.type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].SUBTITLE_TRACK && level.textGroupIds && context.groupId === level.textGroupIds[level.urlId])) {\n this.redundantFailover(this.currentLevelIndex);\n return;\n }\n\n var levelError = false;\n var levelSwitch = true;\n var levelIndex; // try to recover not fatal errors\n\n switch (data.details) {\n case _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].FRAG_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].FRAG_LOAD_TIMEOUT:\n case _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].KEY_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].KEY_LOAD_TIMEOUT:\n if (data.frag) {\n var _level = this._levels[data.frag.level]; // Set levelIndex when we're out of fragment retries\n\n if (_level) {\n _level.fragmentError++;\n\n if (_level.fragmentError > this.hls.config.fragLoadingMaxRetry) {\n levelIndex = data.frag.level;\n }\n } else {\n levelIndex = data.frag.level;\n }\n }\n\n break;\n\n case _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].LEVEL_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].LEVEL_LOAD_TIMEOUT:\n // Do not perform level switch if an error occurred using delivery directives\n // Attempt to reload level without directives first\n if (context) {\n if (context.deliveryDirectives) {\n levelSwitch = false;\n }\n\n levelIndex = context.level;\n }\n\n levelError = true;\n break;\n\n case _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].REMUX_ALLOC_ERROR:\n levelIndex = data.level;\n levelError = true;\n break;\n }\n\n if (levelIndex !== undefined) {\n this.recoverLevel(data, levelIndex, levelError, levelSwitch);\n }\n }\n /**\n * Switch to a redundant stream if any available.\n * If redundant stream is not available, emergency switch down if ABR mode is enabled.\n */\n ;\n\n _proto.recoverLevel = function recoverLevel(errorEvent, levelIndex, levelError, levelSwitch) {\n var errorDetails = errorEvent.details;\n var level = this._levels[levelIndex];\n level.loadError++;\n\n if (levelError) {\n var retrying = this.retryLoadingOrFail(errorEvent);\n\n if (retrying) {\n // boolean used to inform stream controller not to switch back to IDLE on non fatal error\n errorEvent.levelRetry = true;\n } else {\n this.currentLevelIndex = -1;\n return;\n }\n }\n\n if (levelSwitch) {\n var redundantLevels = level.url.length; // Try redundant fail-over until level.loadError reaches redundantLevels\n\n if (redundantLevels > 1 && level.loadError < redundantLevels) {\n errorEvent.levelRetry = true;\n this.redundantFailover(levelIndex);\n } else if (this.manualLevelIndex === -1) {\n // Search for available level in auto level selection mode, cycling from highest to lowest bitrate\n var nextLevel = levelIndex === 0 ? this._levels.length - 1 : levelIndex - 1;\n\n if (this.currentLevelIndex !== nextLevel && this._levels[nextLevel].loadError === 0) {\n this.warn(errorDetails + \": switch to \" + nextLevel);\n errorEvent.levelRetry = true;\n this.hls.nextAutoLevel = nextLevel;\n }\n }\n }\n };\n\n _proto.redundantFailover = function redundantFailover(levelIndex) {\n var level = this._levels[levelIndex];\n var redundantLevels = level.url.length;\n\n if (redundantLevels > 1) {\n // Update the url id of all levels so that we stay on the same set of variants when level switching\n var newUrlId = (level.urlId + 1) % redundantLevels;\n this.warn(\"Switching to redundant URL-id \" + newUrlId);\n\n this._levels.forEach(function (level) {\n level.urlId = newUrlId;\n });\n\n this.level = levelIndex;\n }\n } // reset errors on the successful load of a fragment\n ;\n\n _proto.onFragLoaded = function onFragLoaded(event, _ref3) {\n var frag = _ref3.frag;\n\n if (frag !== undefined && frag.type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN) {\n var level = this._levels[frag.level];\n\n if (level !== undefined) {\n level.fragmentError = 0;\n level.loadError = 0;\n }\n }\n };\n\n _proto.onLevelLoaded = function onLevelLoaded(event, data) {\n var _data$deliveryDirecti2;\n\n var level = data.level,\n details = data.details;\n var curLevel = this._levels[level];\n\n if (!curLevel) {\n var _data$deliveryDirecti;\n\n this.warn(\"Invalid level index \" + level);\n\n if ((_data$deliveryDirecti = data.deliveryDirectives) !== null && _data$deliveryDirecti !== void 0 && _data$deliveryDirecti.skip) {\n details.deltaUpdateFailed = true;\n }\n\n return;\n } // only process level loaded events matching with expected level\n\n\n if (level === this.currentLevelIndex) {\n // reset level load error counter on successful level loaded only if there is no issues with fragments\n if (curLevel.fragmentError === 0) {\n curLevel.loadError = 0;\n this.retryCount = 0;\n }\n\n this.playlistLoaded(level, data, curLevel.details);\n } else if ((_data$deliveryDirecti2 = data.deliveryDirectives) !== null && _data$deliveryDirecti2 !== void 0 && _data$deliveryDirecti2.skip) {\n // received a delta playlist update that cannot be merged\n details.deltaUpdateFailed = true;\n }\n };\n\n _proto.onAudioTrackSwitched = function onAudioTrackSwitched(event, data) {\n var currentLevel = this.hls.levels[this.currentLevelIndex];\n\n if (!currentLevel) {\n return;\n }\n\n if (currentLevel.audioGroupIds) {\n var urlId = -1;\n var audioGroupId = this.hls.audioTracks[data.id].groupId;\n\n for (var i = 0; i < currentLevel.audioGroupIds.length; i++) {\n if (currentLevel.audioGroupIds[i] === audioGroupId) {\n urlId = i;\n break;\n }\n }\n\n if (urlId !== currentLevel.urlId) {\n currentLevel.urlId = urlId;\n this.startLoad();\n }\n }\n };\n\n _proto.loadPlaylist = function loadPlaylist(hlsUrlParameters) {\n var level = this.currentLevelIndex;\n var currentLevel = this._levels[level];\n\n if (this.canLoad && currentLevel && currentLevel.url.length > 0) {\n var id = currentLevel.urlId;\n var url = currentLevel.url[id];\n\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(\"Could not construct new URL with HLS Delivery Directives: \" + error);\n }\n }\n\n this.log(\"Attempt loading level index \" + level + (hlsUrlParameters ? ' at sn ' + hlsUrlParameters.msn + ' part ' + hlsUrlParameters.part : '') + \" with URL-id \" + id + \" \" + url); // console.log('Current audio track group ID:', this.hls.audioTracks[this.hls.audioTrack].groupId);\n // console.log('New video quality level audio group id:', levelObject.attrs.AUDIO, level);\n\n this.clearTimer();\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_LOADING, {\n url: url,\n level: level,\n id: id,\n deliveryDirectives: hlsUrlParameters || null\n });\n }\n };\n\n _proto.removeLevel = function removeLevel(levelIndex, urlId) {\n var filterLevelAndGroupByIdIndex = function filterLevelAndGroupByIdIndex(url, id) {\n return id !== urlId;\n };\n\n var levels = this._levels.filter(function (level, index) {\n if (index !== levelIndex) {\n return true;\n }\n\n if (level.url.length > 1 && urlId !== undefined) {\n level.url = level.url.filter(filterLevelAndGroupByIdIndex);\n\n if (level.audioGroupIds) {\n level.audioGroupIds = level.audioGroupIds.filter(filterLevelAndGroupByIdIndex);\n }\n\n if (level.textGroupIds) {\n level.textGroupIds = level.textGroupIds.filter(filterLevelAndGroupByIdIndex);\n }\n\n level.urlId = 0;\n return true;\n }\n\n return false;\n }).map(function (level, index) {\n var details = level.details;\n\n if (details !== null && details !== void 0 && details.fragments) {\n details.fragments.forEach(function (fragment) {\n fragment.level = index;\n });\n }\n\n return level;\n });\n\n this._levels = levels;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVELS_UPDATED, {\n levels: levels\n });\n };\n\n _createClass(LevelController, [{\n key: \"levels\",\n get: function get() {\n if (this._levels.length === 0) {\n return null;\n }\n\n return this._levels;\n }\n }, {\n key: \"level\",\n get: function get() {\n return this.currentLevelIndex;\n },\n set: function set(newLevel) {\n var _levels$newLevel;\n\n var levels = this._levels;\n\n if (levels.length === 0) {\n return;\n }\n\n if (this.currentLevelIndex === newLevel && (_levels$newLevel = levels[newLevel]) !== null && _levels$newLevel !== void 0 && _levels$newLevel.details) {\n return;\n } // check if level idx is valid\n\n\n if (newLevel < 0 || newLevel >= levels.length) {\n // invalid level id given, trigger error\n var fatal = newLevel < 0;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorTypes\"].OTHER_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].LEVEL_SWITCH_ERROR,\n level: newLevel,\n fatal: fatal,\n reason: 'invalid level idx'\n });\n\n if (fatal) {\n return;\n }\n\n newLevel = Math.min(newLevel, levels.length - 1);\n } // stopping live reloading timer if any\n\n\n this.clearTimer();\n var lastLevelIndex = this.currentLevelIndex;\n var lastLevel = levels[lastLevelIndex];\n var level = levels[newLevel];\n this.log(\"switching to level \" + newLevel + \" from \" + lastLevelIndex);\n this.currentLevelIndex = newLevel;\n\n var levelSwitchingData = _extends({}, level, {\n level: newLevel,\n maxBitrate: level.maxBitrate,\n uri: level.uri,\n urlId: level.urlId\n }); // @ts-ignore\n\n\n delete levelSwitchingData._urlId;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_SWITCHING, levelSwitchingData); // check if we need to load playlist for this level\n\n var levelDetails = level.details;\n\n if (!levelDetails || levelDetails.live) {\n // level not retrieved yet, or live playlist we need to (re)load it\n var hlsUrlParameters = this.switchParams(level.uri, lastLevel === null || lastLevel === void 0 ? void 0 : lastLevel.details);\n this.loadPlaylist(hlsUrlParameters);\n }\n }\n }, {\n key: \"manualLevel\",\n get: function get() {\n return this.manualLevelIndex;\n },\n set: function set(newLevel) {\n this.manualLevelIndex = newLevel;\n\n if (this._startLevel === undefined) {\n this._startLevel = newLevel;\n }\n\n if (newLevel !== -1) {\n this.level = newLevel;\n }\n }\n }, {\n key: \"firstLevel\",\n get: function get() {\n return this._firstLevel;\n },\n set: function set(newLevel) {\n this._firstLevel = newLevel;\n }\n }, {\n key: \"startLevel\",\n get: function get() {\n // hls.startLevel takes precedence over config.startLevel\n // if none of these values are defined, fallback on this._firstLevel (first quality level appearing in variant manifest)\n if (this._startLevel === undefined) {\n var configStartLevel = this.hls.config.startLevel;\n\n if (configStartLevel !== undefined) {\n return configStartLevel;\n } else {\n return this._firstLevel;\n }\n } else {\n return this._startLevel;\n }\n },\n set: function set(newLevel) {\n this._startLevel = newLevel;\n }\n }, {\n key: \"nextLoadLevel\",\n get: function get() {\n if (this.manualLevelIndex !== -1) {\n return this.manualLevelIndex;\n } else {\n return this.hls.nextAutoLevel;\n }\n },\n set: function set(nextLevel) {\n this.level = nextLevel;\n\n if (this.manualLevelIndex === -1) {\n this.hls.nextAutoLevel = nextLevel;\n }\n }\n }]);\n\n return LevelController;\n}(_base_playlist_controller__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/level-helper.ts\":\n/*!****************************************!*\\\n !*** ./src/controller/level-helper.ts ***!\n \\****************************************/\n/*! exports provided: addGroupId, assignTrackIdsByGroup, updatePTS, updateFragPTSDTS, mergeDetails, mapPartIntersection, mapFragmentIntersection, adjustSliding, addSliding, computeReloadInterval, getFragmentWithSN, getPartWith */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addGroupId\", function() { return addGroupId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assignTrackIdsByGroup\", function() { return assignTrackIdsByGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updatePTS\", function() { return updatePTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateFragPTSDTS\", function() { return updateFragPTSDTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeDetails\", function() { return mergeDetails; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapPartIntersection\", function() { return mapPartIntersection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapFragmentIntersection\", function() { return mapFragmentIntersection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"adjustSliding\", function() { return adjustSliding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addSliding\", function() { return addSliding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computeReloadInterval\", function() { return computeReloadInterval; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFragmentWithSN\", function() { return getFragmentWithSN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPartWith\", function() { return getPartWith; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\n\n\n\n/**\n * @module LevelHelper\n * Providing methods dealing with playlist sliding and drift\n * */\n\nfunction addGroupId(level, type, id) {\n switch (type) {\n case 'audio':\n if (!level.audioGroupIds) {\n level.audioGroupIds = [];\n }\n\n level.audioGroupIds.push(id);\n break;\n\n case 'text':\n if (!level.textGroupIds) {\n level.textGroupIds = [];\n }\n\n level.textGroupIds.push(id);\n break;\n }\n}\nfunction assignTrackIdsByGroup(tracks) {\n var groups = {};\n tracks.forEach(function (track) {\n var groupId = track.groupId || '';\n track.id = groups[groupId] = groups[groupId] || 0;\n groups[groupId]++;\n });\n}\nfunction updatePTS(fragments, fromIdx, toIdx) {\n var fragFrom = fragments[fromIdx];\n var fragTo = fragments[toIdx];\n updateFromToPTS(fragFrom, fragTo);\n}\n\nfunction updateFromToPTS(fragFrom, fragTo) {\n var fragToPTS = fragTo.startPTS; // if we know startPTS[toIdx]\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(fragToPTS)) {\n // update fragment duration.\n // it helps to fix drifts between playlist reported duration and fragment real duration\n var duration = 0;\n var frag;\n\n if (fragTo.sn > fragFrom.sn) {\n duration = fragToPTS - fragFrom.start;\n frag = fragFrom;\n } else {\n duration = fragFrom.start - fragToPTS;\n frag = fragTo;\n } // TODO? Drift can go either way, or the playlist could be completely accurate\n // console.assert(duration > 0,\n // `duration of ${duration} computed for frag ${frag.sn}, level ${frag.level}, there should be some duration drift between playlist and fragment!`);\n\n\n if (frag.duration !== duration) {\n frag.duration = duration;\n } // we dont know startPTS[toIdx]\n\n } else if (fragTo.sn > fragFrom.sn) {\n var contiguous = fragFrom.cc === fragTo.cc; // TODO: With part-loading end/durations we need to confirm the whole fragment is loaded before using (or setting) minEndPTS\n\n if (contiguous && fragFrom.minEndPTS) {\n fragTo.start = fragFrom.start + (fragFrom.minEndPTS - fragFrom.start);\n } else {\n fragTo.start = fragFrom.start + fragFrom.duration;\n }\n } else {\n fragTo.start = Math.max(fragFrom.start - fragTo.duration, 0);\n }\n}\n\nfunction updateFragPTSDTS(details, frag, startPTS, endPTS, startDTS, endDTS) {\n var parsedMediaDuration = endPTS - startPTS;\n\n if (parsedMediaDuration <= 0) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].warn('Fragment should have a positive duration', frag);\n endPTS = startPTS + frag.duration;\n endDTS = startDTS + frag.duration;\n }\n\n var maxStartPTS = startPTS;\n var minEndPTS = endPTS;\n var fragStartPts = frag.startPTS;\n var fragEndPts = frag.endPTS;\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(fragStartPts)) {\n // delta PTS between audio and video\n var deltaPTS = Math.abs(fragStartPts - startPTS);\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(frag.deltaPTS)) {\n frag.deltaPTS = deltaPTS;\n } else {\n frag.deltaPTS = Math.max(deltaPTS, frag.deltaPTS);\n }\n\n maxStartPTS = Math.max(startPTS, fragStartPts);\n startPTS = Math.min(startPTS, fragStartPts);\n startDTS = Math.min(startDTS, frag.startDTS);\n minEndPTS = Math.min(endPTS, fragEndPts);\n endPTS = Math.max(endPTS, fragEndPts);\n endDTS = Math.max(endDTS, frag.endDTS);\n }\n\n frag.duration = endPTS - startPTS;\n var drift = startPTS - frag.start;\n frag.appendedPTS = endPTS;\n frag.start = frag.startPTS = startPTS;\n frag.maxStartPTS = maxStartPTS;\n frag.startDTS = startDTS;\n frag.endPTS = endPTS;\n frag.minEndPTS = minEndPTS;\n frag.endDTS = endDTS;\n var sn = frag.sn; // 'initSegment'\n // exit if sn out of range\n\n if (!details || sn < details.startSN || sn > details.endSN) {\n return 0;\n }\n\n var i;\n var fragIdx = sn - details.startSN;\n var fragments = details.fragments; // update frag reference in fragments array\n // rationale is that fragments array might not contain this frag object.\n // this will happen if playlist has been refreshed between frag loading and call to updateFragPTSDTS()\n // if we don't update frag, we won't be able to propagate PTS info on the playlist\n // resulting in invalid sliding computation\n\n fragments[fragIdx] = frag; // adjust fragment PTS/duration from seqnum-1 to frag 0\n\n for (i = fragIdx; i > 0; i--) {\n updateFromToPTS(fragments[i], fragments[i - 1]);\n } // adjust fragment PTS/duration from seqnum to last frag\n\n\n for (i = fragIdx; i < fragments.length - 1; i++) {\n updateFromToPTS(fragments[i], fragments[i + 1]);\n }\n\n if (details.fragmentHint) {\n updateFromToPTS(fragments[fragments.length - 1], details.fragmentHint);\n }\n\n details.PTSKnown = details.alignedSliding = true;\n return drift;\n}\nfunction mergeDetails(oldDetails, newDetails) {\n // Track the last initSegment processed. Initialize it to the last one on the timeline.\n var currentInitSegment = null;\n var oldFragments = oldDetails.fragments;\n\n for (var i = oldFragments.length - 1; i >= 0; i--) {\n var oldInit = oldFragments[i].initSegment;\n\n if (oldInit) {\n currentInitSegment = oldInit;\n break;\n }\n }\n\n if (oldDetails.fragmentHint) {\n // prevent PTS and duration from being adjusted on the next hint\n delete oldDetails.fragmentHint.endPTS;\n } // check if old/new playlists have fragments in common\n // loop through overlapping SN and update startPTS , cc, and duration if any found\n\n\n var ccOffset = 0;\n var PTSFrag;\n mapFragmentIntersection(oldDetails, newDetails, function (oldFrag, newFrag) {\n if (oldFrag.relurl) {\n // Do not compare CC if the old fragment has no url. This is a level.fragmentHint used by LL-HLS parts.\n // It maybe be off by 1 if it was created before any parts or discontinuity tags were appended to the end\n // of the playlist.\n ccOffset = oldFrag.cc - newFrag.cc;\n }\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(oldFrag.startPTS) && Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(oldFrag.endPTS)) {\n newFrag.start = newFrag.startPTS = oldFrag.startPTS;\n newFrag.startDTS = oldFrag.startDTS;\n newFrag.appendedPTS = oldFrag.appendedPTS;\n newFrag.maxStartPTS = oldFrag.maxStartPTS;\n newFrag.endPTS = oldFrag.endPTS;\n newFrag.endDTS = oldFrag.endDTS;\n newFrag.minEndPTS = oldFrag.minEndPTS;\n newFrag.duration = oldFrag.endPTS - oldFrag.startPTS;\n\n if (newFrag.duration) {\n PTSFrag = newFrag;\n } // PTS is known when any segment has startPTS and endPTS\n\n\n newDetails.PTSKnown = newDetails.alignedSliding = true;\n }\n\n newFrag.elementaryStreams = oldFrag.elementaryStreams;\n newFrag.loader = oldFrag.loader;\n newFrag.stats = oldFrag.stats;\n newFrag.urlId = oldFrag.urlId;\n\n if (oldFrag.initSegment) {\n newFrag.initSegment = oldFrag.initSegment;\n currentInitSegment = oldFrag.initSegment;\n }\n });\n\n if (currentInitSegment) {\n var fragmentsToCheck = newDetails.fragmentHint ? newDetails.fragments.concat(newDetails.fragmentHint) : newDetails.fragments;\n fragmentsToCheck.forEach(function (frag) {\n var _currentInitSegment;\n\n if (!frag.initSegment || frag.initSegment.relurl === ((_currentInitSegment = currentInitSegment) === null || _currentInitSegment === void 0 ? void 0 : _currentInitSegment.relurl)) {\n frag.initSegment = currentInitSegment;\n }\n });\n }\n\n if (newDetails.skippedSegments) {\n newDetails.deltaUpdateFailed = newDetails.fragments.some(function (frag) {\n return !frag;\n });\n\n if (newDetails.deltaUpdateFailed) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].warn('[level-helper] Previous playlist missing segments skipped in delta playlist');\n\n for (var _i = newDetails.skippedSegments; _i--;) {\n newDetails.fragments.shift();\n }\n\n newDetails.startSN = newDetails.fragments[0].sn;\n newDetails.startCC = newDetails.fragments[0].cc;\n }\n }\n\n var newFragments = newDetails.fragments;\n\n if (ccOffset) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].warn('discontinuity sliding from playlist, take drift into account');\n\n for (var _i2 = 0; _i2 < newFragments.length; _i2++) {\n newFragments[_i2].cc += ccOffset;\n }\n }\n\n if (newDetails.skippedSegments) {\n newDetails.startCC = newDetails.fragments[0].cc;\n } // Merge parts\n\n\n mapPartIntersection(oldDetails.partList, newDetails.partList, function (oldPart, newPart) {\n newPart.elementaryStreams = oldPart.elementaryStreams;\n newPart.stats = oldPart.stats;\n }); // if at least one fragment contains PTS info, recompute PTS information for all fragments\n\n if (PTSFrag) {\n updateFragPTSDTS(newDetails, PTSFrag, PTSFrag.startPTS, PTSFrag.endPTS, PTSFrag.startDTS, PTSFrag.endDTS);\n } else {\n // ensure that delta is within oldFragments range\n // also adjust sliding in case delta is 0 (we could have old=[50-60] and new=old=[50-61])\n // in that case we also need to adjust start offset of all fragments\n adjustSliding(oldDetails, newDetails);\n }\n\n if (newFragments.length) {\n newDetails.totalduration = newDetails.edge - newFragments[0].start;\n }\n\n newDetails.driftStartTime = oldDetails.driftStartTime;\n newDetails.driftStart = oldDetails.driftStart;\n var advancedDateTime = newDetails.advancedDateTime;\n\n if (newDetails.advanced && advancedDateTime) {\n var edge = newDetails.edge;\n\n if (!newDetails.driftStart) {\n newDetails.driftStartTime = advancedDateTime;\n newDetails.driftStart = edge;\n }\n\n newDetails.driftEndTime = advancedDateTime;\n newDetails.driftEnd = edge;\n } else {\n newDetails.driftEndTime = oldDetails.driftEndTime;\n newDetails.driftEnd = oldDetails.driftEnd;\n newDetails.advancedDateTime = oldDetails.advancedDateTime;\n }\n}\nfunction mapPartIntersection(oldParts, newParts, intersectionFn) {\n if (oldParts && newParts) {\n var delta = 0;\n\n for (var i = 0, len = oldParts.length; i <= len; i++) {\n var _oldPart = oldParts[i];\n var _newPart = newParts[i + delta];\n\n if (_oldPart && _newPart && _oldPart.index === _newPart.index && _oldPart.fragment.sn === _newPart.fragment.sn) {\n intersectionFn(_oldPart, _newPart);\n } else {\n delta--;\n }\n }\n }\n}\nfunction mapFragmentIntersection(oldDetails, newDetails, intersectionFn) {\n var skippedSegments = newDetails.skippedSegments;\n var start = Math.max(oldDetails.startSN, newDetails.startSN) - newDetails.startSN;\n var end = (oldDetails.fragmentHint ? 1 : 0) + (skippedSegments ? newDetails.endSN : Math.min(oldDetails.endSN, newDetails.endSN)) - newDetails.startSN;\n var delta = newDetails.startSN - oldDetails.startSN;\n var newFrags = newDetails.fragmentHint ? newDetails.fragments.concat(newDetails.fragmentHint) : newDetails.fragments;\n var oldFrags = oldDetails.fragmentHint ? oldDetails.fragments.concat(oldDetails.fragmentHint) : oldDetails.fragments;\n\n for (var i = start; i <= end; i++) {\n var _oldFrag = oldFrags[delta + i];\n var _newFrag = newFrags[i];\n\n if (skippedSegments && !_newFrag && i < skippedSegments) {\n // Fill in skipped segments in delta playlist\n _newFrag = newDetails.fragments[i] = _oldFrag;\n }\n\n if (_oldFrag && _newFrag) {\n intersectionFn(_oldFrag, _newFrag);\n }\n }\n}\nfunction adjustSliding(oldDetails, newDetails) {\n var delta = newDetails.startSN + newDetails.skippedSegments - oldDetails.startSN;\n var oldFragments = oldDetails.fragments;\n\n if (delta < 0 || delta >= oldFragments.length) {\n return;\n }\n\n addSliding(newDetails, oldFragments[delta].start);\n}\nfunction addSliding(details, start) {\n if (start) {\n var fragments = details.fragments;\n\n for (var i = details.skippedSegments; i < fragments.length; i++) {\n fragments[i].start += start;\n }\n\n if (details.fragmentHint) {\n details.fragmentHint.start += start;\n }\n }\n}\nfunction computeReloadInterval(newDetails, stats) {\n var reloadInterval = 1000 * newDetails.levelTargetDuration;\n var reloadIntervalAfterMiss = reloadInterval / 2;\n var timeSinceLastModified = newDetails.age;\n var useLastModified = timeSinceLastModified > 0 && timeSinceLastModified < reloadInterval * 3;\n var roundTrip = stats.loading.end - stats.loading.start;\n var estimatedTimeUntilUpdate;\n var availabilityDelay = newDetails.availabilityDelay; // let estimate = 'average';\n\n if (newDetails.updated === false) {\n if (useLastModified) {\n // estimate = 'miss round trip';\n // We should have had a hit so try again in the time it takes to get a response,\n // but no less than 1/3 second.\n var minRetry = 333 * newDetails.misses;\n estimatedTimeUntilUpdate = Math.max(Math.min(reloadIntervalAfterMiss, roundTrip * 2), minRetry);\n newDetails.availabilityDelay = (newDetails.availabilityDelay || 0) + estimatedTimeUntilUpdate;\n } else {\n // estimate = 'miss half average';\n // follow HLS Spec, If the client reloads a Playlist file and finds that it has not\n // changed then it MUST wait for a period of one-half the target\n // duration before retrying.\n estimatedTimeUntilUpdate = reloadIntervalAfterMiss;\n }\n } else if (useLastModified) {\n // estimate = 'next modified date';\n // Get the closest we've been to timeSinceLastModified on update\n availabilityDelay = Math.min(availabilityDelay || reloadInterval / 2, timeSinceLastModified);\n newDetails.availabilityDelay = availabilityDelay;\n estimatedTimeUntilUpdate = availabilityDelay + reloadInterval - timeSinceLastModified;\n } else {\n estimatedTimeUntilUpdate = reloadInterval - roundTrip;\n } // console.log(`[computeReloadInterval] live reload ${newDetails.updated ? 'REFRESHED' : 'MISSED'}`,\n // '\\n method', estimate,\n // '\\n estimated time until update =>', estimatedTimeUntilUpdate,\n // '\\n average target duration', reloadInterval,\n // '\\n time since modified', timeSinceLastModified,\n // '\\n time round trip', roundTrip,\n // '\\n availability delay', availabilityDelay);\n\n\n return Math.round(estimatedTimeUntilUpdate);\n}\nfunction getFragmentWithSN(level, sn, fragCurrent) {\n if (!level || !level.details) {\n return null;\n }\n\n var levelDetails = level.details;\n var fragment = levelDetails.fragments[sn - levelDetails.startSN];\n\n if (fragment) {\n return fragment;\n }\n\n fragment = levelDetails.fragmentHint;\n\n if (fragment && fragment.sn === sn) {\n return fragment;\n }\n\n if (sn < levelDetails.startSN && fragCurrent && fragCurrent.sn === sn) {\n return fragCurrent;\n }\n\n return null;\n}\nfunction getPartWith(level, sn, partIndex) {\n if (!level || !level.details) {\n return null;\n }\n\n var partList = level.details.partList;\n\n if (partList) {\n for (var i = partList.length; i--;) {\n var part = partList[i];\n\n if (part.index === partIndex && part.fragment.sn === sn) {\n return part;\n }\n }\n }\n\n return null;\n}\n\n/***/ }),\n\n/***/ \"./src/controller/stream-controller.ts\":\n/*!*********************************************!*\\\n !*** ./src/controller/stream-controller.ts ***!\n \\*********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return StreamController; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base-stream-controller */ \"./src/controller/base-stream-controller.ts\");\n/* harmony import */ var _is_supported__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../is-supported */ \"./src/is-supported.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fragment-tracker */ \"./src/controller/fragment-tracker.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n/* harmony import */ var _loader_fragment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../loader/fragment */ \"./src/loader/fragment.ts\");\n/* harmony import */ var _demux_transmuxer_interface__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../demux/transmuxer-interface */ \"./src/demux/transmuxer-interface.ts\");\n/* harmony import */ var _types_transmuxer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../types/transmuxer */ \"./src/types/transmuxer.ts\");\n/* harmony import */ var _gap_controller__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./gap-controller */ \"./src/controller/gap-controller.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TICK_INTERVAL = 100; // how often to tick in ms\n\nvar StreamController = /*#__PURE__*/function (_BaseStreamController) {\n _inheritsLoose(StreamController, _BaseStreamController);\n\n function StreamController(hls, fragmentTracker) {\n var _this;\n\n _this = _BaseStreamController.call(this, hls, fragmentTracker, '[stream-controller]') || this;\n _this.audioCodecSwap = false;\n _this.gapController = null;\n _this.level = -1;\n _this._forceStartLoad = false;\n _this.altAudio = false;\n _this.audioOnly = false;\n _this.fragPlaying = null;\n _this.onvplaying = null;\n _this.onvseeked = null;\n _this.fragLastKbps = 0;\n _this.stalled = false;\n _this.couldBacktrack = false;\n _this.audioCodecSwitch = false;\n _this.videoBuffer = null;\n\n _this._registerListeners();\n\n return _this;\n }\n\n var _proto = StreamController.prototype;\n\n _proto._registerListeners = function _registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].ERROR, this.onError, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_CREATED, this.onBufferCreated, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].ERROR, this.onError, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_CREATED, this.onBufferCreated, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_BUFFERED, this.onFragBuffered, this);\n };\n\n _proto.onHandlerDestroying = function onHandlerDestroying() {\n this._unregisterListeners();\n\n this.onMediaDetaching();\n };\n\n _proto.startLoad = function startLoad(startPosition) {\n if (this.levels) {\n var lastCurrentTime = this.lastCurrentTime,\n hls = this.hls;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL);\n this.level = -1;\n this.fragLoadError = 0;\n\n if (!this.startFragRequested) {\n // determine load level\n var startLevel = hls.startLevel;\n\n if (startLevel === -1) {\n if (hls.config.testBandwidth) {\n // -1 : guess start Level by doing a bitrate test by loading first fragment of lowest quality level\n startLevel = 0;\n this.bitrateTest = true;\n } else {\n startLevel = hls.nextAutoLevel;\n }\n } // set new level to playlist loader : this will trigger start level load\n // hls.nextLoadLevel remains until it is set to a new value or until a new frag is successfully loaded\n\n\n this.level = hls.nextLoadLevel = startLevel;\n this.loadedmetadata = false;\n } // if startPosition undefined but lastCurrentTime set, set startPosition to last currentTime\n\n\n if (lastCurrentTime > 0 && startPosition === -1) {\n this.log(\"Override startPosition with lastCurrentTime @\" + lastCurrentTime.toFixed(3));\n startPosition = lastCurrentTime;\n }\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n this.nextLoadPosition = this.startPosition = this.lastCurrentTime = startPosition;\n this.tick();\n } else {\n this._forceStartLoad = true;\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].STOPPED;\n }\n };\n\n _proto.stopLoad = function stopLoad() {\n this._forceStartLoad = false;\n\n _BaseStreamController.prototype.stopLoad.call(this);\n };\n\n _proto.doTick = function doTick() {\n switch (this.state) {\n case _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE:\n this.doTickIdle();\n break;\n\n case _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_LEVEL:\n {\n var _levels$level;\n\n var levels = this.levels,\n level = this.level;\n var details = levels === null || levels === void 0 ? void 0 : (_levels$level = levels[level]) === null || _levels$level === void 0 ? void 0 : _levels$level.details;\n\n if (details && (!details.live || this.levelLastLoaded === this.level)) {\n if (this.waitForCdnTuneIn(details)) {\n break;\n }\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n break;\n }\n\n break;\n }\n\n case _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].FRAG_LOADING_WAITING_RETRY:\n {\n var _this$media;\n\n var now = self.performance.now();\n var retryDate = this.retryDate; // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n\n if (!retryDate || now >= retryDate || (_this$media = this.media) !== null && _this$media !== void 0 && _this$media.seeking) {\n this.log('retryDate reached, switch back to IDLE state');\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n }\n break;\n\n default:\n break;\n } // check buffer\n // check/update current fragment\n\n\n this.onTickEnd();\n };\n\n _proto.onTickEnd = function onTickEnd() {\n _BaseStreamController.prototype.onTickEnd.call(this);\n\n this.checkBuffer();\n this.checkFragmentChanged();\n };\n\n _proto.doTickIdle = function doTickIdle() {\n var _frag$decryptdata, _frag$decryptdata2;\n\n var hls = this.hls,\n levelLastLoaded = this.levelLastLoaded,\n levels = this.levels,\n media = this.media;\n var config = hls.config,\n level = hls.nextLoadLevel; // if start level not parsed yet OR\n // if video not attached AND start fragment already requested OR start frag prefetch not enabled\n // exit loop, as we either need more info (level not parsed) or we need media to be attached to load new fragment\n\n if (levelLastLoaded === null || !media && (this.startFragRequested || !config.startFragPrefetch)) {\n return;\n } // If the \"main\" level is audio-only but we are loading an alternate track in the same group, do not load anything\n\n\n if (this.altAudio && this.audioOnly) {\n return;\n }\n\n if (!levels || !levels[level]) {\n return;\n }\n\n var levelInfo = levels[level]; // if buffer length is less than maxBufLen try to load a new fragment\n // set next load level : this will trigger a playlist load if needed\n\n this.level = hls.nextLoadLevel = level;\n var levelDetails = levelInfo.details; // if level info not retrieved yet, switch state and wait for level retrieval\n // if live playlist, ensure that new playlist has been refreshed to avoid loading/try to load\n // a useless and outdated fragment (that might even introduce load error if it is already out of the live playlist)\n\n if (!levelDetails || this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_LEVEL || levelDetails.live && this.levelLastLoaded !== level) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_LEVEL;\n return;\n }\n\n var bufferInfo = this.getFwdBufferInfo(this.mediaBuffer ? this.mediaBuffer : media, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN);\n\n if (bufferInfo === null) {\n return;\n }\n\n var bufferLen = bufferInfo.len; // compute max Buffer Length that we could get from this load level, based on level bitrate. don't buffer more than 60 MB and more than 30s\n\n var maxBufLen = this.getMaxBufferLength(levelInfo.maxBitrate); // Stay idle if we are still with buffer margins\n\n if (bufferLen >= maxBufLen) {\n return;\n }\n\n if (this._streamEnded(bufferInfo, levelDetails)) {\n var data = {};\n\n if (this.altAudio) {\n data.type = 'video';\n }\n\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_EOS, data);\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].ENDED;\n return;\n }\n\n var targetBufferTime = bufferInfo.end;\n var frag = this.getNextFragment(targetBufferTime, levelDetails); // Avoid backtracking after seeking or switching by loading an earlier segment in streams that could backtrack\n\n if (this.couldBacktrack && !this.fragPrevious && frag && frag.sn !== 'initSegment') {\n var fragIdx = frag.sn - levelDetails.startSN;\n\n if (fragIdx > 1) {\n frag = levelDetails.fragments[fragIdx - 1];\n this.fragmentTracker.removeFragment(frag);\n }\n } // Avoid loop loading by using nextLoadPosition set for backtracking\n\n\n if (frag && this.fragmentTracker.getState(frag) === _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__[\"FragmentState\"].OK && this.nextLoadPosition > targetBufferTime) {\n // Cleanup the fragment tracker before trying to find the next unbuffered fragment\n var type = this.audioOnly && !this.altAudio ? _loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO : _loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].VIDEO;\n this.afterBufferFlushed(media, type, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN);\n frag = this.getNextFragment(this.nextLoadPosition, levelDetails);\n }\n\n if (!frag) {\n return;\n }\n\n if (frag.initSegment && !frag.initSegment.data && !this.bitrateTest) {\n frag = frag.initSegment;\n } // We want to load the key if we're dealing with an identity key, because we will decrypt\n // this content using the key we fetch. Other keys will be handled by the DRM CDM via EME.\n\n\n if (((_frag$decryptdata = frag.decryptdata) === null || _frag$decryptdata === void 0 ? void 0 : _frag$decryptdata.keyFormat) === 'identity' && !((_frag$decryptdata2 = frag.decryptdata) !== null && _frag$decryptdata2 !== void 0 && _frag$decryptdata2.key)) {\n this.loadKey(frag, levelDetails);\n } else {\n this.loadFragment(frag, levelDetails, targetBufferTime);\n }\n };\n\n _proto.loadFragment = function loadFragment(frag, levelDetails, targetBufferTime) {\n var _this$media2;\n\n // Check if fragment is not loaded\n var fragState = this.fragmentTracker.getState(frag);\n this.fragCurrent = frag; // Use data from loaded backtracked fragment if available\n\n if (fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__[\"FragmentState\"].BACKTRACKED) {\n var data = this.fragmentTracker.getBacktrackData(frag);\n\n if (data) {\n this._handleFragmentLoadProgress(data);\n\n this._handleFragmentLoadComplete(data);\n\n return;\n } else {\n fragState = _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__[\"FragmentState\"].NOT_LOADED;\n }\n }\n\n if (fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__[\"FragmentState\"].NOT_LOADED || fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__[\"FragmentState\"].PARTIAL) {\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag);\n } else if (this.bitrateTest) {\n frag.bitrateTest = true;\n this.log(\"Fragment \" + frag.sn + \" of level \" + frag.level + \" is being downloaded to test bitrate and will not be buffered\");\n\n this._loadBitrateTestFrag(frag);\n } else {\n this.startFragRequested = true;\n\n _BaseStreamController.prototype.loadFragment.call(this, frag, levelDetails, targetBufferTime);\n }\n } else if (fragState === _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__[\"FragmentState\"].APPENDING) {\n // Lower the buffer size and try again\n if (this.reduceMaxBufferLength(frag.duration)) {\n this.fragmentTracker.removeFragment(frag);\n }\n } else if (((_this$media2 = this.media) === null || _this$media2 === void 0 ? void 0 : _this$media2.buffered.length) === 0) {\n // Stop gap for bad tracker / buffer flush behavior\n this.fragmentTracker.removeAllFragments();\n }\n };\n\n _proto.getAppendedFrag = function getAppendedFrag(position) {\n var fragOrPart = this.fragmentTracker.getAppendedFrag(position, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN);\n\n if (fragOrPart && 'fragment' in fragOrPart) {\n return fragOrPart.fragment;\n }\n\n return fragOrPart;\n };\n\n _proto.getBufferedFrag = function getBufferedFrag(position) {\n return this.fragmentTracker.getBufferedFrag(position, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN);\n };\n\n _proto.followingBufferedFrag = function followingBufferedFrag(frag) {\n if (frag) {\n // try to get range of next fragment (500ms after this range)\n return this.getBufferedFrag(frag.end + 0.5);\n }\n\n return null;\n }\n /*\n on immediate level switch :\n - pause playback if playing\n - cancel any pending load request\n - and trigger a buffer flush\n */\n ;\n\n _proto.immediateLevelSwitch = function immediateLevelSwitch() {\n this.abortCurrentFrag();\n this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n }\n /**\n * try to switch ASAP without breaking video playback:\n * in order to ensure smooth but quick level switching,\n * we need to find the next flushable buffer range\n * we should take into account new segment fetch time\n */\n ;\n\n _proto.nextLevelSwitch = function nextLevelSwitch() {\n var levels = this.levels,\n media = this.media; // ensure that media is defined and that metadata are available (to retrieve currentTime)\n\n if (media !== null && media !== void 0 && media.readyState) {\n var fetchdelay;\n var fragPlayingCurrent = this.getAppendedFrag(media.currentTime);\n\n if (fragPlayingCurrent && fragPlayingCurrent.start > 1) {\n // flush buffer preceding current fragment (flush until current fragment start offset)\n // minus 1s to avoid video freezing, that could happen if we flush keyframe of current video ...\n this.flushMainBuffer(0, fragPlayingCurrent.start - 1);\n }\n\n if (!media.paused && levels) {\n // add a safety delay of 1s\n var nextLevelId = this.hls.nextLoadLevel;\n var nextLevel = levels[nextLevelId];\n var fragLastKbps = this.fragLastKbps;\n\n if (fragLastKbps && this.fragCurrent) {\n fetchdelay = this.fragCurrent.duration * nextLevel.maxBitrate / (1000 * fragLastKbps) + 1;\n } else {\n fetchdelay = 0;\n }\n } else {\n fetchdelay = 0;\n } // this.log('fetchdelay:'+fetchdelay);\n // find buffer range that will be reached once new fragment will be fetched\n\n\n var bufferedFrag = this.getBufferedFrag(media.currentTime + fetchdelay);\n\n if (bufferedFrag) {\n // we can flush buffer range following this one without stalling playback\n var nextBufferedFrag = this.followingBufferedFrag(bufferedFrag);\n\n if (nextBufferedFrag) {\n // if we are here, we can also cancel any loading/demuxing in progress, as they are useless\n this.abortCurrentFrag(); // start flush position is in next buffered frag. Leave some padding for non-independent segments and smoother playback.\n\n var maxStart = nextBufferedFrag.maxStartPTS ? nextBufferedFrag.maxStartPTS : nextBufferedFrag.start;\n var fragDuration = nextBufferedFrag.duration;\n var startPts = Math.max(bufferedFrag.end, maxStart + Math.min(Math.max(fragDuration - this.config.maxFragLookUpTolerance, fragDuration * 0.5), fragDuration * 0.75));\n this.flushMainBuffer(startPts, Number.POSITIVE_INFINITY);\n }\n }\n }\n };\n\n _proto.abortCurrentFrag = function abortCurrentFrag() {\n var fragCurrent = this.fragCurrent;\n this.fragCurrent = null;\n\n if (fragCurrent !== null && fragCurrent !== void 0 && fragCurrent.loader) {\n fragCurrent.loader.abort();\n }\n\n if (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].KEY_LOADING) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n\n this.nextLoadPosition = this.getLoadPosition();\n };\n\n _proto.flushMainBuffer = function flushMainBuffer(startOffset, endOffset) {\n _BaseStreamController.prototype.flushMainBuffer.call(this, startOffset, endOffset, this.altAudio ? 'video' : null);\n };\n\n _proto.onMediaAttached = function onMediaAttached(event, data) {\n _BaseStreamController.prototype.onMediaAttached.call(this, event, data);\n\n var media = data.media;\n this.onvplaying = this.onMediaPlaying.bind(this);\n this.onvseeked = this.onMediaSeeked.bind(this);\n media.addEventListener('playing', this.onvplaying);\n media.addEventListener('seeked', this.onvseeked);\n this.gapController = new _gap_controller__WEBPACK_IMPORTED_MODULE_10__[\"default\"](this.config, media, this.fragmentTracker, this.hls);\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n var media = this.media;\n\n if (media) {\n media.removeEventListener('playing', this.onvplaying);\n media.removeEventListener('seeked', this.onvseeked);\n this.onvplaying = this.onvseeked = null;\n this.videoBuffer = null;\n }\n\n this.fragPlaying = null;\n\n if (this.gapController) {\n this.gapController.destroy();\n this.gapController = null;\n }\n\n _BaseStreamController.prototype.onMediaDetaching.call(this);\n };\n\n _proto.onMediaPlaying = function onMediaPlaying() {\n // tick to speed up FRAG_CHANGED triggering\n this.tick();\n };\n\n _proto.onMediaSeeked = function onMediaSeeked() {\n var media = this.media;\n var currentTime = media ? media.currentTime : null;\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(currentTime)) {\n this.log(\"Media seeked to \" + currentTime.toFixed(3));\n } // tick to speed up FRAG_CHANGED triggering\n\n\n this.tick();\n };\n\n _proto.onManifestLoading = function onManifestLoading() {\n // reset buffer on manifest loading\n this.log('Trigger BUFFER_RESET');\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_RESET, undefined);\n this.fragmentTracker.removeAllFragments();\n this.couldBacktrack = this.stalled = false;\n this.startPosition = this.lastCurrentTime = 0;\n this.fragPlaying = null;\n };\n\n _proto.onManifestParsed = function onManifestParsed(event, data) {\n var aac = false;\n var heaac = false;\n var codec;\n data.levels.forEach(function (level) {\n // detect if we have different kind of audio codecs used amongst playlists\n codec = level.audioCodec;\n\n if (codec) {\n if (codec.indexOf('mp4a.40.2') !== -1) {\n aac = true;\n }\n\n if (codec.indexOf('mp4a.40.5') !== -1) {\n heaac = true;\n }\n }\n });\n this.audioCodecSwitch = aac && heaac && !Object(_is_supported__WEBPACK_IMPORTED_MODULE_2__[\"changeTypeSupported\"])();\n\n if (this.audioCodecSwitch) {\n this.log('Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC');\n }\n\n this.levels = data.levels;\n this.startFragRequested = false;\n };\n\n _proto.onLevelLoading = function onLevelLoading(event, data) {\n var levels = this.levels;\n\n if (!levels || this.state !== _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE) {\n return;\n }\n\n var level = levels[data.level];\n\n if (!level.details || level.details.live && this.levelLastLoaded !== data.level || this.waitForCdnTuneIn(level.details)) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_LEVEL;\n }\n };\n\n _proto.onLevelLoaded = function onLevelLoaded(event, data) {\n var _curLevel$details;\n\n var levels = this.levels;\n var newLevelId = data.level;\n var newDetails = data.details;\n var duration = newDetails.totalduration;\n\n if (!levels) {\n this.warn(\"Levels were reset while loading level \" + newLevelId);\n return;\n }\n\n this.log(\"Level \" + newLevelId + \" loaded [\" + newDetails.startSN + \",\" + newDetails.endSN + \"], cc [\" + newDetails.startCC + \", \" + newDetails.endCC + \"] duration:\" + duration);\n var fragCurrent = this.fragCurrent;\n\n if (fragCurrent && (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].FRAG_LOADING || this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].FRAG_LOADING_WAITING_RETRY)) {\n if (fragCurrent.level !== data.level && fragCurrent.loader) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n fragCurrent.loader.abort();\n }\n }\n\n var curLevel = levels[newLevelId];\n var sliding = 0;\n\n if (newDetails.live || (_curLevel$details = curLevel.details) !== null && _curLevel$details !== void 0 && _curLevel$details.live) {\n if (!newDetails.fragments[0]) {\n newDetails.deltaUpdateFailed = true;\n }\n\n if (newDetails.deltaUpdateFailed) {\n return;\n }\n\n sliding = this.alignPlaylists(newDetails, curLevel.details);\n } // override level info\n\n\n curLevel.details = newDetails;\n this.levelLastLoaded = newLevelId;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].LEVEL_UPDATED, {\n details: newDetails,\n level: newLevelId\n }); // only switch back to IDLE state if we were waiting for level to start downloading a new fragment\n\n if (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_LEVEL) {\n if (this.waitForCdnTuneIn(newDetails)) {\n // Wait for Low-Latency CDN Tune-in\n return;\n }\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n\n if (!this.startFragRequested) {\n this.setStartPosition(newDetails, sliding);\n } else if (newDetails.live) {\n this.synchronizeToLiveEdge(newDetails);\n } // trigger handler right now\n\n\n this.tick();\n };\n\n _proto._handleFragmentLoadProgress = function _handleFragmentLoadProgress(data) {\n var _frag$initSegment;\n\n var frag = data.frag,\n part = data.part,\n payload = data.payload;\n var levels = this.levels;\n\n if (!levels) {\n this.warn(\"Levels were reset while fragment load was in progress. Fragment \" + frag.sn + \" of level \" + frag.level + \" will not be buffered\");\n return;\n }\n\n var currentLevel = levels[frag.level];\n var details = currentLevel.details;\n\n if (!details) {\n this.warn(\"Dropping fragment \" + frag.sn + \" of level \" + frag.level + \" after level details were reset\");\n return;\n }\n\n var videoCodec = currentLevel.videoCodec; // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n\n var accurateTimeOffset = details.PTSKnown || !details.live;\n var initSegmentData = (_frag$initSegment = frag.initSegment) === null || _frag$initSegment === void 0 ? void 0 : _frag$initSegment.data;\n\n var audioCodec = this._getAudioCodec(currentLevel); // transmux the MPEG-TS data to ISO-BMFF segments\n // this.log(`Transmuxing ${frag.sn} of [${details.startSN} ,${details.endSN}],level ${frag.level}, cc ${frag.cc}`);\n\n\n var transmuxer = this.transmuxer = this.transmuxer || new _demux_transmuxer_interface__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.hls, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this));\n var partIndex = part ? part.index : -1;\n var partial = partIndex !== -1;\n var chunkMeta = new _types_transmuxer__WEBPACK_IMPORTED_MODULE_9__[\"ChunkMetadata\"](frag.level, frag.sn, frag.stats.chunkCount, payload.byteLength, partIndex, partial);\n var initPTS = this.initPTS[frag.cc];\n transmuxer.push(payload, initSegmentData, audioCodec, videoCodec, frag, part, details.totalduration, accurateTimeOffset, chunkMeta, initPTS);\n };\n\n _proto.onAudioTrackSwitching = function onAudioTrackSwitching(event, data) {\n // if any URL found on new audio track, it is an alternate audio track\n var fromAltAudio = this.altAudio;\n var altAudio = !!data.url;\n var trackId = data.id; // if we switch on main audio, ensure that main fragment scheduling is synced with media.buffered\n // don't do anything if we switch to alt audio: audio stream controller is handling it.\n // we will just have to change buffer scheduling on audioTrackSwitched\n\n if (!altAudio) {\n if (this.mediaBuffer !== this.media) {\n this.log('Switching on main audio, use media.buffered to schedule main fragment loading');\n this.mediaBuffer = this.media;\n var fragCurrent = this.fragCurrent; // we need to refill audio buffer from main: cancel any frag loading to speed up audio switch\n\n if (fragCurrent !== null && fragCurrent !== void 0 && fragCurrent.loader) {\n this.log('Switching to main audio track, cancel main fragment load');\n fragCurrent.loader.abort();\n } // destroy transmuxer to force init segment generation (following audio switch)\n\n\n this.resetTransmuxer(); // switch to IDLE state to load new fragment\n\n this.resetLoadingState();\n } else if (this.audioOnly) {\n // Reset audio transmuxer so when switching back to main audio we're not still appending where we left off\n this.resetTransmuxer();\n }\n\n var hls = this.hls; // If switching from alt to main audio, flush all audio and trigger track switched\n\n if (fromAltAudio) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_FLUSHING, {\n startOffset: 0,\n endOffset: Number.POSITIVE_INFINITY,\n type: 'audio'\n });\n }\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].AUDIO_TRACK_SWITCHED, {\n id: trackId\n });\n }\n };\n\n _proto.onAudioTrackSwitched = function onAudioTrackSwitched(event, data) {\n var trackId = data.id;\n var altAudio = !!this.hls.audioTracks[trackId].url;\n\n if (altAudio) {\n var videoBuffer = this.videoBuffer; // if we switched on alternate audio, ensure that main fragment scheduling is synced with video sourcebuffer buffered\n\n if (videoBuffer && this.mediaBuffer !== videoBuffer) {\n this.log('Switching on alternate audio, use video.buffered to schedule main fragment loading');\n this.mediaBuffer = videoBuffer;\n }\n }\n\n this.altAudio = altAudio;\n this.tick();\n };\n\n _proto.onBufferCreated = function onBufferCreated(event, data) {\n var tracks = data.tracks;\n var mediaTrack;\n var name;\n var alternate = false;\n\n for (var type in tracks) {\n var track = tracks[type];\n\n if (track.id === 'main') {\n name = type;\n mediaTrack = track; // keep video source buffer reference\n\n if (type === 'video') {\n var videoTrack = tracks[type];\n\n if (videoTrack) {\n this.videoBuffer = videoTrack.buffer;\n }\n }\n } else {\n alternate = true;\n }\n }\n\n if (alternate && mediaTrack) {\n this.log(\"Alternate track found, use \" + name + \".buffered to schedule main fragment loading\");\n this.mediaBuffer = mediaTrack.buffer;\n } else {\n this.mediaBuffer = this.media;\n }\n };\n\n _proto.onFragBuffered = function onFragBuffered(event, data) {\n var frag = data.frag,\n part = data.part;\n\n if (frag && frag.type !== _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN) {\n return;\n }\n\n if (this.fragContextChanged(frag)) {\n // If a level switch was requested while a fragment was buffering, it will emit the FRAG_BUFFERED event upon completion\n // Avoid setting state back to IDLE, since that will interfere with a level switch\n this.warn(\"Fragment \" + frag.sn + (part ? ' p: ' + part.index : '') + \" of level \" + frag.level + \" finished buffering, but was aborted. state: \" + this.state);\n\n if (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSED) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n\n return;\n }\n\n var stats = part ? part.stats : frag.stats;\n this.fragLastKbps = Math.round(8 * stats.total / (stats.buffering.end - stats.loading.first));\n\n if (frag.sn !== 'initSegment') {\n this.fragPrevious = frag;\n }\n\n this.fragBufferedComplete(frag, part);\n };\n\n _proto.onError = function onError(event, data) {\n switch (data.details) {\n case _errors__WEBPACK_IMPORTED_MODULE_11__[\"ErrorDetails\"].FRAG_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_11__[\"ErrorDetails\"].FRAG_LOAD_TIMEOUT:\n case _errors__WEBPACK_IMPORTED_MODULE_11__[\"ErrorDetails\"].KEY_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_11__[\"ErrorDetails\"].KEY_LOAD_TIMEOUT:\n this.onFragmentOrKeyLoadError(_types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN, data);\n break;\n\n case _errors__WEBPACK_IMPORTED_MODULE_11__[\"ErrorDetails\"].LEVEL_LOAD_ERROR:\n case _errors__WEBPACK_IMPORTED_MODULE_11__[\"ErrorDetails\"].LEVEL_LOAD_TIMEOUT:\n if (this.state !== _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].ERROR) {\n if (data.fatal) {\n // if fatal error, stop processing\n this.warn(\"\" + data.details);\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].ERROR;\n } else {\n // in case of non fatal error while loading level, if level controller is not retrying to load level , switch back to IDLE\n if (!data.levelRetry && this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].WAITING_LEVEL) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n }\n }\n }\n\n break;\n\n case _errors__WEBPACK_IMPORTED_MODULE_11__[\"ErrorDetails\"].BUFFER_FULL_ERROR:\n // if in appending state\n if (data.parent === 'main' && (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSING || this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSED)) {\n var flushBuffer = true;\n var bufferedInfo = this.getFwdBufferInfo(this.media, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN); // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end\n // reduce max buf len if current position is buffered\n\n if (bufferedInfo && bufferedInfo.len > 0.5) {\n flushBuffer = !this.reduceMaxBufferLength(bufferedInfo.len);\n }\n\n if (flushBuffer) {\n // current position is not buffered, but browser is still complaining about buffer full error\n // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n // in that case flush the whole buffer to recover\n this.warn('buffer full error also media.currentTime is not buffered, flush main'); // flush main buffer\n\n this.immediateLevelSwitch();\n }\n\n this.resetLoadingState();\n }\n\n break;\n\n default:\n break;\n }\n } // Checks the health of the buffer and attempts to resolve playback stalls.\n ;\n\n _proto.checkBuffer = function checkBuffer() {\n var media = this.media,\n gapController = this.gapController;\n\n if (!media || !gapController || !media.readyState) {\n // Exit early if we don't have media or if the media hasn't buffered anything yet (readyState 0)\n return;\n } // Check combined buffer\n\n\n var buffered = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__[\"BufferHelper\"].getBuffered(media);\n\n if (!this.loadedmetadata && buffered.length) {\n this.loadedmetadata = true;\n this.seekToStartPos();\n } else {\n // Resolve gaps using the main buffer, whose ranges are the intersections of the A/V sourcebuffers\n gapController.poll(this.lastCurrentTime);\n }\n\n this.lastCurrentTime = media.currentTime;\n };\n\n _proto.onFragLoadEmergencyAborted = function onFragLoadEmergencyAborted() {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE; // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n // in that case, reset startFragRequested flag\n\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n this.nextLoadPosition = this.startPosition;\n }\n\n this.tickImmediate();\n };\n\n _proto.onBufferFlushed = function onBufferFlushed(event, _ref) {\n var type = _ref.type;\n\n if (type !== _loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO || this.audioOnly && !this.altAudio) {\n var media = (type === _loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].VIDEO ? this.videoBuffer : this.mediaBuffer) || this.media;\n this.afterBufferFlushed(media, type, _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN);\n }\n };\n\n _proto.onLevelsUpdated = function onLevelsUpdated(event, data) {\n this.levels = data.levels;\n };\n\n _proto.swapAudioCodec = function swapAudioCodec() {\n this.audioCodecSwap = !this.audioCodecSwap;\n }\n /**\n * Seeks to the set startPosition if not equal to the mediaElement's current time.\n * @private\n */\n ;\n\n _proto.seekToStartPos = function seekToStartPos() {\n var media = this.media;\n var currentTime = media.currentTime;\n var startPosition = this.startPosition; // only adjust currentTime if different from startPosition or if startPosition not buffered\n // at that stage, there should be only one buffered range, as we reach that code after first fragment has been buffered\n\n if (startPosition >= 0 && currentTime < startPosition) {\n if (media.seeking) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_12__[\"logger\"].log(\"could not seek to \" + startPosition + \", already seeking at \" + currentTime);\n return;\n }\n\n var buffered = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__[\"BufferHelper\"].getBuffered(media);\n var bufferStart = buffered.length ? buffered.start(0) : 0;\n var delta = bufferStart - startPosition;\n\n if (delta > 0 && (delta < this.config.maxBufferHole || delta < this.config.maxFragLookUpTolerance)) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_12__[\"logger\"].log(\"adjusting start position by \" + delta + \" to match buffer start\");\n startPosition += delta;\n this.startPosition = startPosition;\n }\n\n this.log(\"seek to target start position \" + startPosition + \" from current time \" + currentTime);\n media.currentTime = startPosition;\n }\n };\n\n _proto._getAudioCodec = function _getAudioCodec(currentLevel) {\n var audioCodec = this.config.defaultAudioCodec || currentLevel.audioCodec;\n\n if (this.audioCodecSwap && audioCodec) {\n this.log('Swapping audio codec');\n\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n }\n\n return audioCodec;\n };\n\n _proto._loadBitrateTestFrag = function _loadBitrateTestFrag(frag) {\n var _this2 = this;\n\n this._doFragLoad(frag).then(function (data) {\n var hls = _this2.hls;\n\n if (!data || hls.nextLoadLevel || _this2.fragContextChanged(frag)) {\n return;\n }\n\n _this2.fragLoadError = 0;\n _this2.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].IDLE;\n _this2.startFragRequested = false;\n _this2.bitrateTest = false;\n var stats = frag.stats; // Bitrate tests fragments are neither parsed nor buffered\n\n stats.parsing.start = stats.parsing.end = stats.buffering.start = stats.buffering.end = self.performance.now();\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_LOADED, data);\n });\n };\n\n _proto._handleTransmuxComplete = function _handleTransmuxComplete(transmuxResult) {\n var _id3$samples;\n\n var id = 'main';\n var hls = this.hls;\n var remuxResult = transmuxResult.remuxResult,\n chunkMeta = transmuxResult.chunkMeta;\n var context = this.getCurrentContext(chunkMeta);\n\n if (!context) {\n this.warn(\"The loading context changed while buffering fragment \" + chunkMeta.sn + \" of level \" + chunkMeta.level + \". This chunk will not be buffered.\");\n this.resetLiveStartWhenNotLoaded(chunkMeta.level);\n return;\n }\n\n var frag = context.frag,\n part = context.part,\n level = context.level;\n var video = remuxResult.video,\n text = remuxResult.text,\n id3 = remuxResult.id3,\n initSegment = remuxResult.initSegment; // The audio-stream-controller handles audio buffering if Hls.js is playing an alternate audio track\n\n var audio = this.altAudio ? undefined : remuxResult.audio; // Check if the current fragment has been aborted. We check this by first seeing if we're still playing the current level.\n // If we are, subsequently check if the currently loading fragment (fragCurrent) has changed.\n\n if (this.fragContextChanged(frag)) {\n return;\n }\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSING;\n\n if (initSegment) {\n if (initSegment.tracks) {\n this._bufferInitSegment(level, initSegment.tracks, frag, chunkMeta);\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_PARSING_INIT_SEGMENT, {\n frag: frag,\n id: id,\n tracks: initSegment.tracks\n });\n } // This would be nice if Number.isFinite acted as a typeguard, but it doesn't. See: https://github.com/Microsoft/TypeScript/issues/10038\n\n\n var initPTS = initSegment.initPTS;\n var timescale = initSegment.timescale;\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(initPTS)) {\n this.initPTS[frag.cc] = initPTS;\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].INIT_PTS_FOUND, {\n frag: frag,\n id: id,\n initPTS: initPTS,\n timescale: timescale\n });\n }\n } // Avoid buffering if backtracking this fragment\n\n\n if (video && remuxResult.independent !== false) {\n if (level.details) {\n var startPTS = video.startPTS,\n endPTS = video.endPTS,\n startDTS = video.startDTS,\n endDTS = video.endDTS;\n\n if (part) {\n part.elementaryStreams[video.type] = {\n startPTS: startPTS,\n endPTS: endPTS,\n startDTS: startDTS,\n endDTS: endDTS\n };\n } else {\n if (video.firstKeyFrame && video.independent) {\n this.couldBacktrack = true;\n }\n\n if (video.dropped && video.independent) {\n // Backtrack if dropped frames create a gap after currentTime\n var pos = this.getLoadPosition() + this.config.maxBufferHole;\n\n if (pos < startPTS) {\n this.backtrack(frag);\n return;\n } // Set video stream start to fragment start so that truncated samples do not distort the timeline, and mark it partial\n\n\n frag.setElementaryStreamInfo(video.type, frag.start, endPTS, frag.start, endDTS, true);\n }\n }\n\n frag.setElementaryStreamInfo(video.type, startPTS, endPTS, startDTS, endDTS);\n this.bufferFragmentData(video, frag, part, chunkMeta);\n }\n } else if (remuxResult.independent === false) {\n this.backtrack(frag);\n return;\n }\n\n if (audio) {\n var _startPTS = audio.startPTS,\n _endPTS = audio.endPTS,\n _startDTS = audio.startDTS,\n _endDTS = audio.endDTS;\n\n if (part) {\n part.elementaryStreams[_loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO] = {\n startPTS: _startPTS,\n endPTS: _endPTS,\n startDTS: _startDTS,\n endDTS: _endDTS\n };\n }\n\n frag.setElementaryStreamInfo(_loader_fragment__WEBPACK_IMPORTED_MODULE_7__[\"ElementaryStreamTypes\"].AUDIO, _startPTS, _endPTS, _startDTS, _endDTS);\n this.bufferFragmentData(audio, frag, part, chunkMeta);\n }\n\n if (id3 !== null && id3 !== void 0 && (_id3$samples = id3.samples) !== null && _id3$samples !== void 0 && _id3$samples.length) {\n var emittedID3 = {\n frag: frag,\n id: id,\n samples: id3.samples\n };\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_PARSING_METADATA, emittedID3);\n }\n\n if (text) {\n var emittedText = {\n frag: frag,\n id: id,\n samples: text.samples\n };\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_PARSING_USERDATA, emittedText);\n }\n };\n\n _proto._bufferInitSegment = function _bufferInitSegment(currentLevel, tracks, frag, chunkMeta) {\n var _this3 = this;\n\n if (this.state !== _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].PARSING) {\n return;\n }\n\n this.audioOnly = !!tracks.audio && !tracks.video; // if audio track is expected to come from audio stream controller, discard any coming from main\n\n if (this.altAudio && !this.audioOnly) {\n delete tracks.audio;\n } // include levelCodec in audio and video tracks\n\n\n var audio = tracks.audio,\n video = tracks.video,\n audiovideo = tracks.audiovideo;\n\n if (audio) {\n var audioCodec = currentLevel.audioCodec;\n var ua = navigator.userAgent.toLowerCase();\n\n if (this.audioCodecSwitch) {\n if (audioCodec) {\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n } // In the case that AAC and HE-AAC audio codecs are signalled in manifest,\n // force HE-AAC, as it seems that most browsers prefers it.\n // don't force HE-AAC if mono stream, or in Firefox\n\n\n if (audio.metadata.channelCount !== 1 && ua.indexOf('firefox') === -1) {\n audioCodec = 'mp4a.40.5';\n }\n } // HE-AAC is broken on Android, always signal audio codec as AAC even if variant manifest states otherwise\n\n\n if (ua.indexOf('android') !== -1 && audio.container !== 'audio/mpeg') {\n // Exclude mpeg audio\n audioCodec = 'mp4a.40.2';\n this.log(\"Android: force audio codec to \" + audioCodec);\n }\n\n if (currentLevel.audioCodec && currentLevel.audioCodec !== audioCodec) {\n this.log(\"Swapping manifest audio codec \\\"\" + currentLevel.audioCodec + \"\\\" for \\\"\" + audioCodec + \"\\\"\");\n }\n\n audio.levelCodec = audioCodec;\n audio.id = 'main';\n this.log(\"Init audio buffer, container:\" + audio.container + \", codecs[selected/level/parsed]=[\" + (audioCodec || '') + \"/\" + (currentLevel.audioCodec || '') + \"/\" + audio.codec + \"]\");\n }\n\n if (video) {\n video.levelCodec = currentLevel.videoCodec;\n video.id = 'main';\n this.log(\"Init video buffer, container:\" + video.container + \", codecs[level/parsed]=[\" + (currentLevel.videoCodec || '') + \"/\" + video.codec + \"]\");\n }\n\n if (audiovideo) {\n this.log(\"Init audiovideo buffer, container:\" + audiovideo.container + \", codecs[level/parsed]=[\" + (currentLevel.attrs.CODECS || '') + \"/\" + audiovideo.codec + \"]\");\n }\n\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_CODECS, tracks); // loop through tracks that are going to be provided to bufferController\n\n Object.keys(tracks).forEach(function (trackName) {\n var track = tracks[trackName];\n var initSegment = track.initSegment;\n\n if (initSegment !== null && initSegment !== void 0 && initSegment.byteLength) {\n _this3.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].BUFFER_APPENDING, {\n type: trackName,\n data: initSegment,\n frag: frag,\n part: null,\n chunkMeta: chunkMeta,\n parent: frag.type\n });\n }\n }); // trigger handler right now\n\n this.tick();\n };\n\n _proto.backtrack = function backtrack(frag) {\n this.couldBacktrack = true; // Causes findFragments to backtrack through fragments to find the keyframe\n\n this.resetTransmuxer();\n this.flushBufferGap(frag);\n var data = this.fragmentTracker.backtrack(frag);\n this.fragPrevious = null;\n this.nextLoadPosition = frag.start;\n\n if (data) {\n this.resetFragmentLoading(frag);\n } else {\n // Change state to BACKTRACKING so that fragmentEntity.backtrack data can be added after _doFragLoad\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"State\"].BACKTRACKING;\n }\n };\n\n _proto.checkFragmentChanged = function checkFragmentChanged() {\n var video = this.media;\n var fragPlayingCurrent = null;\n\n if (video && video.readyState > 1 && video.seeking === false) {\n var currentTime = video.currentTime;\n /* if video element is in seeked state, currentTime can only increase.\n (assuming that playback rate is positive ...)\n As sometimes currentTime jumps back to zero after a\n media decode error, check this, to avoid seeking back to\n wrong position after a media decode error\n */\n\n if (_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__[\"BufferHelper\"].isBuffered(video, currentTime)) {\n fragPlayingCurrent = this.getAppendedFrag(currentTime);\n } else if (_utils_buffer_helper__WEBPACK_IMPORTED_MODULE_4__[\"BufferHelper\"].isBuffered(video, currentTime + 0.1)) {\n /* ensure that FRAG_CHANGED event is triggered at startup,\n when first video frame is displayed and playback is paused.\n add a tolerance of 100ms, in case current position is not buffered,\n check if current pos+100ms is buffered and use that buffer range\n for FRAG_CHANGED event reporting */\n fragPlayingCurrent = this.getAppendedFrag(currentTime + 0.1);\n }\n\n if (fragPlayingCurrent) {\n var fragPlaying = this.fragPlaying;\n var fragCurrentLevel = fragPlayingCurrent.level;\n\n if (!fragPlaying || fragPlayingCurrent.sn !== fragPlaying.sn || fragPlaying.level !== fragCurrentLevel || fragPlayingCurrent.urlId !== fragPlaying.urlId) {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].FRAG_CHANGED, {\n frag: fragPlayingCurrent\n });\n\n if (!fragPlaying || fragPlaying.level !== fragCurrentLevel) {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].LEVEL_SWITCHED, {\n level: fragCurrentLevel\n });\n }\n\n this.fragPlaying = fragPlayingCurrent;\n }\n }\n }\n };\n\n _createClass(StreamController, [{\n key: \"nextLevel\",\n get: function get() {\n var frag = this.nextBufferedFrag;\n\n if (frag) {\n return frag.level;\n } else {\n return -1;\n }\n }\n }, {\n key: \"currentLevel\",\n get: function get() {\n var media = this.media;\n\n if (media) {\n var fragPlayingCurrent = this.getAppendedFrag(media.currentTime);\n\n if (fragPlayingCurrent) {\n return fragPlayingCurrent.level;\n }\n }\n\n return -1;\n }\n }, {\n key: \"nextBufferedFrag\",\n get: function get() {\n var media = this.media;\n\n if (media) {\n // first get end range of current fragment\n var fragPlayingCurrent = this.getAppendedFrag(media.currentTime);\n return this.followingBufferedFrag(fragPlayingCurrent);\n } else {\n return null;\n }\n }\n }, {\n key: \"forceStartLoad\",\n get: function get() {\n return this._forceStartLoad;\n }\n }]);\n\n return StreamController;\n}(_base_stream_controller__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n\n/***/ }),\n\n/***/ \"./src/controller/subtitle-stream-controller.ts\":\n/*!******************************************************!*\\\n !*** ./src/controller/subtitle-stream-controller.ts ***!\n \\******************************************************/\n/*! exports provided: SubtitleStreamController */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SubtitleStreamController\", function() { return SubtitleStreamController; });\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/buffer-helper */ \"./src/utils/buffer-helper.ts\");\n/* harmony import */ var _fragment_finders__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fragment-finders */ \"./src/controller/fragment-finders.ts\");\n/* harmony import */ var _utils_discontinuities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/discontinuities */ \"./src/utils/discontinuities.ts\");\n/* harmony import */ var _level_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./level-helper */ \"./src/controller/level-helper.ts\");\n/* harmony import */ var _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fragment-tracker */ \"./src/controller/fragment-tracker.ts\");\n/* harmony import */ var _base_stream_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base-stream-controller */ \"./src/controller/base-stream-controller.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n/* harmony import */ var _types_level__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../types/level */ \"./src/types/level.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\nvar TICK_INTERVAL = 500; // how often to tick in ms\n\nvar SubtitleStreamController = /*#__PURE__*/function (_BaseStreamController) {\n _inheritsLoose(SubtitleStreamController, _BaseStreamController);\n\n function SubtitleStreamController(hls, fragmentTracker) {\n var _this;\n\n _this = _BaseStreamController.call(this, hls, fragmentTracker, '[subtitle-stream-controller]') || this;\n _this.levels = [];\n _this.currentTrackId = -1;\n _this.tracksBuffered = [];\n _this.mainDetails = null;\n\n _this._registerListeners();\n\n return _this;\n }\n\n var _proto = SubtitleStreamController.prototype;\n\n _proto.onHandlerDestroying = function onHandlerDestroying() {\n this._unregisterListeners();\n\n this.mainDetails = null;\n };\n\n _proto._registerListeners = function _registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, this.onError, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, this.onError, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this);\n };\n\n _proto.startLoad = function startLoad() {\n this.stopLoad();\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_6__[\"State\"].IDLE;\n this.setInterval(TICK_INTERVAL);\n this.tick();\n };\n\n _proto.onManifestLoading = function onManifestLoading() {\n this.mainDetails = null;\n this.fragmentTracker.removeAllFragments();\n };\n\n _proto.onLevelLoaded = function onLevelLoaded(event, data) {\n this.mainDetails = data.details;\n };\n\n _proto.onSubtitleFragProcessed = function onSubtitleFragProcessed(event, data) {\n var frag = data.frag,\n success = data.success;\n this.fragPrevious = frag;\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_6__[\"State\"].IDLE;\n\n if (!success) {\n return;\n }\n\n var buffered = this.tracksBuffered[this.currentTrackId];\n\n if (!buffered) {\n return;\n } // Create/update a buffered array matching the interface used by BufferHelper.bufferedInfo\n // so we can re-use the logic used to detect how much has been buffered\n\n\n var timeRange;\n var fragStart = frag.start;\n\n for (var i = 0; i < buffered.length; i++) {\n if (fragStart >= buffered[i].start && fragStart <= buffered[i].end) {\n timeRange = buffered[i];\n break;\n }\n }\n\n var fragEnd = frag.start + frag.duration;\n\n if (timeRange) {\n timeRange.end = fragEnd;\n } else {\n timeRange = {\n start: fragStart,\n end: fragEnd\n };\n buffered.push(timeRange);\n }\n\n this.fragmentTracker.fragBuffered(frag);\n };\n\n _proto.onBufferFlushing = function onBufferFlushing(event, data) {\n var startOffset = data.startOffset,\n endOffset = data.endOffset;\n\n if (startOffset === 0 && endOffset !== Number.POSITIVE_INFINITY) {\n var currentTrackId = this.currentTrackId,\n levels = this.levels;\n\n if (!levels.length || !levels[currentTrackId] || !levels[currentTrackId].details) {\n return;\n }\n\n var trackDetails = levels[currentTrackId].details;\n var targetDuration = trackDetails.targetduration;\n var endOffsetSubtitles = endOffset - targetDuration;\n\n if (endOffsetSubtitles <= 0) {\n return;\n }\n\n data.endOffsetSubtitles = Math.max(0, endOffsetSubtitles);\n this.tracksBuffered.forEach(function (buffered) {\n for (var i = 0; i < buffered.length;) {\n if (buffered[i].end <= endOffsetSubtitles) {\n buffered.shift();\n continue;\n } else if (buffered[i].start < endOffsetSubtitles) {\n buffered[i].start = endOffsetSubtitles;\n } else {\n break;\n }\n\n i++;\n }\n });\n this.fragmentTracker.removeFragmentsInRange(startOffset, endOffsetSubtitles, _types_loader__WEBPACK_IMPORTED_MODULE_7__[\"PlaylistLevelType\"].SUBTITLE);\n }\n } // If something goes wrong, proceed to next frag, if we were processing one.\n ;\n\n _proto.onError = function onError(event, data) {\n var _this$fragCurrent;\n\n var frag = data.frag; // don't handle error not related to subtitle fragment\n\n if (!frag || frag.type !== _types_loader__WEBPACK_IMPORTED_MODULE_7__[\"PlaylistLevelType\"].SUBTITLE) {\n return;\n }\n\n if ((_this$fragCurrent = this.fragCurrent) !== null && _this$fragCurrent !== void 0 && _this$fragCurrent.loader) {\n this.fragCurrent.loader.abort();\n }\n\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_6__[\"State\"].IDLE;\n } // Got all new subtitle levels.\n ;\n\n _proto.onSubtitleTracksUpdated = function onSubtitleTracksUpdated(event, _ref) {\n var _this2 = this;\n\n var subtitleTracks = _ref.subtitleTracks;\n this.tracksBuffered = [];\n this.levels = subtitleTracks.map(function (mediaPlaylist) {\n return new _types_level__WEBPACK_IMPORTED_MODULE_8__[\"Level\"](mediaPlaylist);\n });\n this.fragmentTracker.removeAllFragments();\n this.fragPrevious = null;\n this.levels.forEach(function (level) {\n _this2.tracksBuffered[level.id] = [];\n });\n this.mediaBuffer = null;\n };\n\n _proto.onSubtitleTrackSwitch = function onSubtitleTrackSwitch(event, data) {\n this.currentTrackId = data.id;\n\n if (!this.levels.length || this.currentTrackId === -1) {\n this.clearInterval();\n return;\n } // Check if track has the necessary details to load fragments\n\n\n var currentTrack = this.levels[this.currentTrackId];\n\n if (currentTrack !== null && currentTrack !== void 0 && currentTrack.details) {\n this.mediaBuffer = this.mediaBufferTimeRanges;\n } else {\n this.mediaBuffer = null;\n }\n\n if (currentTrack) {\n this.setInterval(TICK_INTERVAL);\n }\n } // Got a new set of subtitle fragments.\n ;\n\n _proto.onSubtitleTrackLoaded = function onSubtitleTrackLoaded(event, data) {\n var _track$details;\n\n var newDetails = data.details,\n trackId = data.id;\n var currentTrackId = this.currentTrackId,\n levels = this.levels;\n\n if (!levels.length) {\n return;\n }\n\n var track = levels[currentTrackId];\n\n if (trackId >= levels.length || trackId !== currentTrackId || !track) {\n return;\n }\n\n this.mediaBuffer = this.mediaBufferTimeRanges;\n\n if (newDetails.live || (_track$details = track.details) !== null && _track$details !== void 0 && _track$details.live) {\n var mainDetails = this.mainDetails;\n\n if (newDetails.deltaUpdateFailed || !mainDetails) {\n return;\n }\n\n var mainSlidingStartFragment = mainDetails.fragments[0];\n\n if (!track.details) {\n if (newDetails.hasProgramDateTime && mainDetails.hasProgramDateTime) {\n Object(_utils_discontinuities__WEBPACK_IMPORTED_MODULE_3__[\"alignMediaPlaylistByPDT\"])(newDetails, mainDetails);\n } else if (mainSlidingStartFragment) {\n // line up live playlist with main so that fragments in range are loaded\n Object(_level_helper__WEBPACK_IMPORTED_MODULE_4__[\"addSliding\"])(newDetails, mainSlidingStartFragment.start);\n }\n } else {\n var sliding = this.alignPlaylists(newDetails, track.details);\n\n if (sliding === 0 && mainSlidingStartFragment) {\n // realign with main when there is no overlap with last refresh\n Object(_level_helper__WEBPACK_IMPORTED_MODULE_4__[\"addSliding\"])(newDetails, mainSlidingStartFragment.start);\n }\n }\n }\n\n track.details = newDetails;\n this.levelLastLoaded = trackId; // trigger handler right now\n\n this.tick(); // If playlist is misaligned because of bad PDT or drift, delete details to resync with main on reload\n\n if (newDetails.live && !this.fragCurrent && this.media && this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_6__[\"State\"].IDLE) {\n var foundFrag = Object(_fragment_finders__WEBPACK_IMPORTED_MODULE_2__[\"findFragmentByPTS\"])(null, newDetails.fragments, this.media.currentTime, 0);\n\n if (!foundFrag) {\n this.warn('Subtitle playlist not aligned with playback');\n track.details = undefined;\n }\n }\n };\n\n _proto._handleFragmentLoadComplete = function _handleFragmentLoadComplete(fragLoadedData) {\n var frag = fragLoadedData.frag,\n payload = fragLoadedData.payload;\n var decryptData = frag.decryptdata;\n var hls = this.hls;\n\n if (this.fragContextChanged(frag)) {\n return;\n } // check to see if the payload needs to be decrypted\n\n\n if (payload && payload.byteLength > 0 && decryptData && decryptData.key && decryptData.iv && decryptData.method === 'AES-128') {\n var startTime = performance.now(); // decrypt the subtitles\n\n this.decrypter.webCryptoDecrypt(new Uint8Array(payload), decryptData.key.buffer, decryptData.iv.buffer).then(function (decryptedData) {\n var endTime = performance.now();\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].FRAG_DECRYPTED, {\n frag: frag,\n payload: decryptedData,\n stats: {\n tstart: startTime,\n tdecrypt: endTime\n }\n });\n });\n }\n };\n\n _proto.doTick = function doTick() {\n if (!this.media) {\n this.state = _base_stream_controller__WEBPACK_IMPORTED_MODULE_6__[\"State\"].IDLE;\n return;\n }\n\n if (this.state === _base_stream_controller__WEBPACK_IMPORTED_MODULE_6__[\"State\"].IDLE) {\n var _foundFrag;\n\n var currentTrackId = this.currentTrackId,\n levels = this.levels;\n\n if (!levels.length || !levels[currentTrackId] || !levels[currentTrackId].details) {\n return;\n } // Expand range of subs loaded by one target-duration in either direction to make up for misaligned playlists\n\n\n var trackDetails = levels[currentTrackId].details;\n var targetDuration = trackDetails.targetduration;\n var config = this.config,\n media = this.media;\n var bufferedInfo = _utils_buffer_helper__WEBPACK_IMPORTED_MODULE_1__[\"BufferHelper\"].bufferedInfo(this.mediaBufferTimeRanges, media.currentTime - targetDuration, config.maxBufferHole);\n var targetBufferTime = bufferedInfo.end,\n bufferLen = bufferedInfo.len;\n var maxBufLen = this.getMaxBufferLength() + targetDuration;\n\n if (bufferLen > maxBufLen) {\n return;\n }\n\n console.assert(trackDetails, 'Subtitle track details are defined on idle subtitle stream controller tick');\n var fragments = trackDetails.fragments;\n var fragLen = fragments.length;\n var end = trackDetails.edge;\n var foundFrag;\n var fragPrevious = this.fragPrevious;\n\n if (targetBufferTime < end) {\n var maxFragLookUpTolerance = config.maxFragLookUpTolerance;\n foundFrag = Object(_fragment_finders__WEBPACK_IMPORTED_MODULE_2__[\"findFragmentByPTS\"])(fragPrevious, fragments, targetBufferTime, maxFragLookUpTolerance);\n\n if (!foundFrag && fragPrevious && fragPrevious.start < fragments[0].start) {\n foundFrag = fragments[0];\n }\n } else {\n foundFrag = fragments[fragLen - 1];\n }\n\n if ((_foundFrag = foundFrag) !== null && _foundFrag !== void 0 && _foundFrag.encrypted) {\n this.loadKey(foundFrag, trackDetails);\n } else if (foundFrag && this.fragmentTracker.getState(foundFrag) === _fragment_tracker__WEBPACK_IMPORTED_MODULE_5__[\"FragmentState\"].NOT_LOADED) {\n // only load if fragment is not loaded\n this.loadFragment(foundFrag, trackDetails, targetBufferTime);\n }\n }\n };\n\n _proto.loadFragment = function loadFragment(frag, levelDetails, targetBufferTime) {\n this.fragCurrent = frag;\n\n _BaseStreamController.prototype.loadFragment.call(this, frag, levelDetails, targetBufferTime);\n };\n\n _createClass(SubtitleStreamController, [{\n key: \"mediaBufferTimeRanges\",\n get: function get() {\n return this.tracksBuffered[this.currentTrackId] || [];\n }\n }]);\n\n return SubtitleStreamController;\n}(_base_stream_controller__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n\n/***/ }),\n\n/***/ \"./src/controller/subtitle-track-controller.ts\":\n/*!*****************************************************!*\\\n !*** ./src/controller/subtitle-track-controller.ts ***!\n \\*****************************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/texttrack-utils */ \"./src/utils/texttrack-utils.ts\");\n/* harmony import */ var _base_playlist_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base-playlist-controller */ \"./src/controller/base-playlist-controller.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\nvar SubtitleTrackController = /*#__PURE__*/function (_BasePlaylistControll) {\n _inheritsLoose(SubtitleTrackController, _BasePlaylistControll);\n\n // Enable/disable subtitle display rendering\n function SubtitleTrackController(hls) {\n var _this;\n\n _this = _BasePlaylistControll.call(this, hls, '[subtitle-track-controller]') || this;\n _this.media = null;\n _this.tracks = [];\n _this.groupId = null;\n _this.tracksInGroup = [];\n _this.trackId = -1;\n _this.selectDefaultTrack = true;\n _this.queuedDefaultTrack = -1;\n\n _this.trackChangeListener = function () {\n return _this.onTextTracksChanged();\n };\n\n _this.asyncPollTrackChange = function () {\n return _this.pollTrackChange(0);\n };\n\n _this.useTextTrackPolling = false;\n _this.subtitlePollingInterval = -1;\n _this.subtitleDisplay = true;\n\n _this.registerListeners();\n\n return _this;\n }\n\n var _proto = SubtitleTrackController.prototype;\n\n _proto.destroy = function destroy() {\n this.unregisterListeners();\n this.tracks.length = 0;\n this.tracksInGroup.length = 0;\n this.trackChangeListener = this.asyncPollTrackChange = null;\n\n _BasePlaylistControll.prototype.destroy.call(this);\n };\n\n _proto.registerListeners = function registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, this.onError, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, this.onError, this);\n } // Listen for subtitle track change, then extract the current track ID.\n ;\n\n _proto.onMediaAttached = function onMediaAttached(event, data) {\n this.media = data.media;\n\n if (!this.media) {\n return;\n }\n\n if (this.queuedDefaultTrack > -1) {\n this.subtitleTrack = this.queuedDefaultTrack;\n this.queuedDefaultTrack = -1;\n }\n\n this.useTextTrackPolling = !(this.media.textTracks && 'onchange' in this.media.textTracks);\n\n if (this.useTextTrackPolling) {\n this.pollTrackChange(500);\n } else {\n this.media.textTracks.addEventListener('change', this.asyncPollTrackChange);\n }\n };\n\n _proto.pollTrackChange = function pollTrackChange(timeout) {\n self.clearInterval(this.subtitlePollingInterval);\n this.subtitlePollingInterval = self.setInterval(this.trackChangeListener, timeout);\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n if (!this.media) {\n return;\n }\n\n self.clearInterval(this.subtitlePollingInterval);\n\n if (!this.useTextTrackPolling) {\n this.media.textTracks.removeEventListener('change', this.asyncPollTrackChange);\n }\n\n if (this.trackId > -1) {\n this.queuedDefaultTrack = this.trackId;\n }\n\n var textTracks = filterSubtitleTracks(this.media.textTracks); // Clear loaded cues on media detachment from tracks\n\n textTracks.forEach(function (track) {\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_1__[\"clearCurrentCues\"])(track);\n }); // Disable all subtitle tracks before detachment so when reattached only tracks in that content are enabled.\n\n this.subtitleTrack = -1;\n this.media = null;\n };\n\n _proto.onManifestLoading = function onManifestLoading() {\n this.tracks = [];\n this.groupId = null;\n this.tracksInGroup = [];\n this.trackId = -1;\n this.selectDefaultTrack = true;\n } // Fired whenever a new manifest is loaded.\n ;\n\n _proto.onManifestParsed = function onManifestParsed(event, data) {\n this.tracks = data.subtitleTracks;\n };\n\n _proto.onSubtitleTrackLoaded = function onSubtitleTrackLoaded(event, data) {\n var id = data.id,\n details = data.details;\n var trackId = this.trackId;\n var currentTrack = this.tracksInGroup[trackId];\n\n if (!currentTrack) {\n this.warn(\"Invalid subtitle track id \" + id);\n return;\n }\n\n var curDetails = currentTrack.details;\n currentTrack.details = data.details;\n this.log(\"subtitle track \" + id + \" loaded [\" + details.startSN + \"-\" + details.endSN + \"]\");\n\n if (id === this.trackId) {\n this.retryCount = 0;\n this.playlistLoaded(id, data, curDetails);\n }\n };\n\n _proto.onLevelLoading = function onLevelLoading(event, data) {\n this.switchLevel(data.level);\n };\n\n _proto.onLevelSwitching = function onLevelSwitching(event, data) {\n this.switchLevel(data.level);\n };\n\n _proto.switchLevel = function switchLevel(levelIndex) {\n var levelInfo = this.hls.levels[levelIndex];\n\n if (!(levelInfo !== null && levelInfo !== void 0 && levelInfo.textGroupIds)) {\n return;\n }\n\n var textGroupId = levelInfo.textGroupIds[levelInfo.urlId];\n\n if (this.groupId !== textGroupId) {\n var lastTrack = this.tracksInGroup ? this.tracksInGroup[this.trackId] : undefined;\n var subtitleTracks = this.tracks.filter(function (track) {\n return !textGroupId || track.groupId === textGroupId;\n });\n this.tracksInGroup = subtitleTracks;\n var initialTrackId = this.findTrackId(lastTrack === null || lastTrack === void 0 ? void 0 : lastTrack.name) || this.findTrackId();\n this.groupId = textGroupId;\n var subtitleTracksUpdated = {\n subtitleTracks: subtitleTracks\n };\n this.log(\"Updating subtitle tracks, \" + subtitleTracks.length + \" track(s) found in \\\"\" + textGroupId + \"\\\" group-id\");\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACKS_UPDATED, subtitleTracksUpdated);\n\n if (initialTrackId !== -1) {\n this.setSubtitleTrack(initialTrackId, lastTrack);\n }\n }\n };\n\n _proto.findTrackId = function findTrackId(name) {\n var textTracks = this.tracksInGroup;\n\n for (var i = 0; i < textTracks.length; i++) {\n var track = textTracks[i];\n\n if (!this.selectDefaultTrack || track.default) {\n if (!name || name === track.name) {\n return track.id;\n }\n }\n }\n\n return -1;\n };\n\n _proto.onError = function onError(event, data) {\n _BasePlaylistControll.prototype.onError.call(this, event, data);\n\n if (data.fatal || !data.context) {\n return;\n }\n\n if (data.context.type === _types_loader__WEBPACK_IMPORTED_MODULE_3__[\"PlaylistContextType\"].SUBTITLE_TRACK && data.context.id === this.trackId && data.context.groupId === this.groupId) {\n this.retryLoadingOrFail(data);\n }\n }\n /** get alternate subtitle tracks list from playlist **/\n ;\n\n _proto.loadPlaylist = function loadPlaylist(hlsUrlParameters) {\n var currentTrack = this.tracksInGroup[this.trackId];\n\n if (this.shouldLoadTrack(currentTrack)) {\n var id = currentTrack.id;\n var groupId = currentTrack.groupId;\n var url = currentTrack.url;\n\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(\"Could not construct new URL with HLS Delivery Directives: \" + error);\n }\n }\n\n this.log(\"Loading subtitle playlist for id \" + id);\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_LOADING, {\n url: url,\n id: id,\n groupId: groupId,\n deliveryDirectives: hlsUrlParameters || null\n });\n }\n }\n /**\n * Disables the old subtitleTrack and sets current mode on the next subtitleTrack.\n * This operates on the DOM textTracks.\n * A value of -1 will disable all subtitle tracks.\n */\n ;\n\n _proto.toggleTrackModes = function toggleTrackModes(newId) {\n var _this2 = this;\n\n var media = this.media,\n subtitleDisplay = this.subtitleDisplay,\n trackId = this.trackId;\n\n if (!media) {\n return;\n }\n\n var textTracks = filterSubtitleTracks(media.textTracks);\n var groupTracks = textTracks.filter(function (track) {\n return track.groupId === _this2.groupId;\n });\n\n if (newId === -1) {\n [].slice.call(textTracks).forEach(function (track) {\n track.mode = 'disabled';\n });\n } else {\n var oldTrack = groupTracks[trackId];\n\n if (oldTrack) {\n oldTrack.mode = 'disabled';\n }\n }\n\n var nextTrack = groupTracks[newId];\n\n if (nextTrack) {\n nextTrack.mode = subtitleDisplay ? 'showing' : 'hidden';\n }\n }\n /**\n * This method is responsible for validating the subtitle index and periodically reloading if live.\n * Dispatches the SUBTITLE_TRACK_SWITCH event, which instructs the subtitle-stream-controller to load the selected track.\n */\n ;\n\n _proto.setSubtitleTrack = function setSubtitleTrack(newId, lastTrack) {\n var _tracks$newId;\n\n var tracks = this.tracksInGroup; // setting this.subtitleTrack will trigger internal logic\n // if media has not been attached yet, it will fail\n // we keep a reference to the default track id\n // and we'll set subtitleTrack when onMediaAttached is triggered\n\n if (!this.media) {\n this.queuedDefaultTrack = newId;\n return;\n }\n\n if (this.trackId !== newId) {\n this.toggleTrackModes(newId);\n } // exit if track id as already set or invalid\n\n\n if (this.trackId === newId && (newId === -1 || (_tracks$newId = tracks[newId]) !== null && _tracks$newId !== void 0 && _tracks$newId.details) || newId < -1 || newId >= tracks.length) {\n return;\n } // stopping live reloading timer if any\n\n\n this.clearTimer();\n var track = tracks[newId];\n this.log(\"Switching to subtitle track \" + newId);\n this.trackId = newId;\n\n if (track) {\n var id = track.id,\n _track$groupId = track.groupId,\n groupId = _track$groupId === void 0 ? '' : _track$groupId,\n name = track.name,\n type = track.type,\n url = track.url;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_SWITCH, {\n id: id,\n groupId: groupId,\n name: name,\n type: type,\n url: url\n });\n var hlsUrlParameters = this.switchParams(track.url, lastTrack === null || lastTrack === void 0 ? void 0 : lastTrack.details);\n this.loadPlaylist(hlsUrlParameters);\n } else {\n // switch to -1\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].SUBTITLE_TRACK_SWITCH, {\n id: newId\n });\n }\n };\n\n _proto.onTextTracksChanged = function onTextTracksChanged() {\n if (!this.useTextTrackPolling) {\n self.clearInterval(this.subtitlePollingInterval);\n } // Media is undefined when switching streams via loadSource()\n\n\n if (!this.media || !this.hls.config.renderTextTracksNatively) {\n return;\n }\n\n var trackId = -1;\n var tracks = filterSubtitleTracks(this.media.textTracks);\n\n for (var id = 0; id < tracks.length; id++) {\n if (tracks[id].mode === 'hidden') {\n // Do not break in case there is a following track with showing.\n trackId = id;\n } else if (tracks[id].mode === 'showing') {\n trackId = id;\n break;\n }\n } // Setting current subtitleTrack will invoke code.\n\n\n if (this.subtitleTrack !== trackId) {\n this.subtitleTrack = trackId;\n }\n };\n\n _createClass(SubtitleTrackController, [{\n key: \"subtitleTracks\",\n get: function get() {\n return this.tracksInGroup;\n }\n /** get/set index of the selected subtitle track (based on index in subtitle track lists) **/\n\n }, {\n key: \"subtitleTrack\",\n get: function get() {\n return this.trackId;\n },\n set: function set(newId) {\n this.selectDefaultTrack = false;\n var lastTrack = this.tracksInGroup ? this.tracksInGroup[this.trackId] : undefined;\n this.setSubtitleTrack(newId, lastTrack);\n }\n }]);\n\n return SubtitleTrackController;\n}(_base_playlist_controller__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\nfunction filterSubtitleTracks(textTrackList) {\n var tracks = [];\n\n for (var i = 0; i < textTrackList.length; i++) {\n var track = textTrackList[i]; // Edge adds a track without a label; we don't want to use it\n\n if (track.kind === 'subtitles' && track.label) {\n tracks.push(textTrackList[i]);\n }\n }\n\n return tracks;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SubtitleTrackController);\n\n/***/ }),\n\n/***/ \"./src/controller/timeline-controller.ts\":\n/*!***********************************************!*\\\n !*** ./src/controller/timeline-controller.ts ***!\n \\***********************************************/\n/*! exports provided: TimelineController */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimelineController\", function() { return TimelineController; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_cea_608_parser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/cea-608-parser */ \"./src/utils/cea-608-parser.ts\");\n/* harmony import */ var _utils_output_filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/output-filter */ \"./src/utils/output-filter.ts\");\n/* harmony import */ var _utils_webvtt_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/webvtt-parser */ \"./src/utils/webvtt-parser.ts\");\n/* harmony import */ var _utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/texttrack-utils */ \"./src/utils/texttrack-utils.ts\");\n/* harmony import */ var _utils_imsc1_ttml_parser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/imsc1-ttml-parser */ \"./src/utils/imsc1-ttml-parser.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\n\n\n\n\n\n\n\nvar TimelineController = /*#__PURE__*/function () {\n function TimelineController(hls) {\n this.hls = void 0;\n this.media = null;\n this.config = void 0;\n this.enabled = true;\n this.Cues = void 0;\n this.textTracks = [];\n this.tracks = [];\n this.initPTS = [];\n this.timescale = [];\n this.unparsedVttFrags = [];\n this.captionsTracks = {};\n this.nonNativeCaptionsTracks = {};\n this.cea608Parser1 = void 0;\n this.cea608Parser2 = void 0;\n this.lastSn = -1;\n this.lastPartIndex = -1;\n this.prevCC = -1;\n this.vttCCs = newVTTCCs();\n this.captionsProperties = void 0;\n this.hls = hls;\n this.config = hls.config;\n this.Cues = hls.config.cueHandler;\n this.captionsProperties = {\n textTrack1: {\n label: this.config.captionsTextTrack1Label,\n languageCode: this.config.captionsTextTrack1LanguageCode\n },\n textTrack2: {\n label: this.config.captionsTextTrack2Label,\n languageCode: this.config.captionsTextTrack2LanguageCode\n },\n textTrack3: {\n label: this.config.captionsTextTrack3Label,\n languageCode: this.config.captionsTextTrack3LanguageCode\n },\n textTrack4: {\n label: this.config.captionsTextTrack4Label,\n languageCode: this.config.captionsTextTrack4LanguageCode\n }\n };\n\n if (this.config.enableCEA708Captions) {\n var channel1 = new _utils_output_filter__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this, 'textTrack1');\n var channel2 = new _utils_output_filter__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this, 'textTrack2');\n var channel3 = new _utils_output_filter__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this, 'textTrack3');\n var channel4 = new _utils_output_filter__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this, 'textTrack4');\n this.cea608Parser1 = new _utils_cea_608_parser__WEBPACK_IMPORTED_MODULE_2__[\"default\"](1, channel1, channel2);\n this.cea608Parser2 = new _utils_cea_608_parser__WEBPACK_IMPORTED_MODULE_2__[\"default\"](3, channel3, channel4);\n }\n\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADING, this.onFragLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_DECRYPTED, this.onFragDecrypted, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this);\n }\n\n var _proto = TimelineController.prototype;\n\n _proto.destroy = function destroy() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADING, this.onFragLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADED, this.onFragLoaded, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_DECRYPTED, this.onFragDecrypted, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].BUFFER_FLUSHING, this.onBufferFlushing, this); // @ts-ignore\n\n this.hls = this.config = this.cea608Parser1 = this.cea608Parser2 = null;\n };\n\n _proto.addCues = function addCues(trackName, startTime, endTime, screen, cueRanges) {\n // skip cues which overlap more than 50% with previously parsed time ranges\n var merged = false;\n\n for (var i = cueRanges.length; i--;) {\n var cueRange = cueRanges[i];\n var overlap = intersection(cueRange[0], cueRange[1], startTime, endTime);\n\n if (overlap >= 0) {\n cueRange[0] = Math.min(cueRange[0], startTime);\n cueRange[1] = Math.max(cueRange[1], endTime);\n merged = true;\n\n if (overlap / (endTime - startTime) > 0.5) {\n return;\n }\n }\n }\n\n if (!merged) {\n cueRanges.push([startTime, endTime]);\n }\n\n if (this.config.renderTextTracksNatively) {\n var track = this.captionsTracks[trackName];\n this.Cues.newCue(track, startTime, endTime, screen);\n } else {\n var cues = this.Cues.newCue(null, startTime, endTime, screen);\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].CUES_PARSED, {\n type: 'captions',\n cues: cues,\n track: trackName\n });\n }\n } // Triggered when an initial PTS is found; used for synchronisation of WebVTT.\n ;\n\n _proto.onInitPtsFound = function onInitPtsFound(event, _ref) {\n var _this = this;\n\n var frag = _ref.frag,\n id = _ref.id,\n initPTS = _ref.initPTS,\n timescale = _ref.timescale;\n var unparsedVttFrags = this.unparsedVttFrags;\n\n if (id === 'main') {\n this.initPTS[frag.cc] = initPTS;\n this.timescale[frag.cc] = timescale;\n } // Due to asynchronous processing, initial PTS may arrive later than the first VTT fragments are loaded.\n // Parse any unparsed fragments upon receiving the initial PTS.\n\n\n if (unparsedVttFrags.length) {\n this.unparsedVttFrags = [];\n unparsedVttFrags.forEach(function (frag) {\n _this.onFragLoaded(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADED, frag);\n });\n }\n };\n\n _proto.getExistingTrack = function getExistingTrack(trackName) {\n var media = this.media;\n\n if (media) {\n for (var i = 0; i < media.textTracks.length; i++) {\n var textTrack = media.textTracks[i];\n\n if (textTrack[trackName]) {\n return textTrack;\n }\n }\n }\n\n return null;\n };\n\n _proto.createCaptionsTrack = function createCaptionsTrack(trackName) {\n if (this.config.renderTextTracksNatively) {\n this.createNativeTrack(trackName);\n } else {\n this.createNonNativeTrack(trackName);\n }\n };\n\n _proto.createNativeTrack = function createNativeTrack(trackName) {\n if (this.captionsTracks[trackName]) {\n return;\n }\n\n var captionsProperties = this.captionsProperties,\n captionsTracks = this.captionsTracks,\n media = this.media;\n var _captionsProperties$t = captionsProperties[trackName],\n label = _captionsProperties$t.label,\n languageCode = _captionsProperties$t.languageCode; // Enable reuse of existing text track.\n\n var existingTrack = this.getExistingTrack(trackName);\n\n if (!existingTrack) {\n var textTrack = this.createTextTrack('captions', label, languageCode);\n\n if (textTrack) {\n // Set a special property on the track so we know it's managed by Hls.js\n textTrack[trackName] = true;\n captionsTracks[trackName] = textTrack;\n }\n } else {\n captionsTracks[trackName] = existingTrack;\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"clearCurrentCues\"])(captionsTracks[trackName]);\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"sendAddTrackEvent\"])(captionsTracks[trackName], media);\n }\n };\n\n _proto.createNonNativeTrack = function createNonNativeTrack(trackName) {\n if (this.nonNativeCaptionsTracks[trackName]) {\n return;\n } // Create a list of a single track for the provider to consume\n\n\n var trackProperties = this.captionsProperties[trackName];\n\n if (!trackProperties) {\n return;\n }\n\n var label = trackProperties.label;\n var track = {\n _id: trackName,\n label: label,\n kind: 'captions',\n default: trackProperties.media ? !!trackProperties.media.default : false,\n closedCaptions: trackProperties.media\n };\n this.nonNativeCaptionsTracks[trackName] = track;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].NON_NATIVE_TEXT_TRACKS_FOUND, {\n tracks: [track]\n });\n };\n\n _proto.createTextTrack = function createTextTrack(kind, label, lang) {\n var media = this.media;\n\n if (!media) {\n return;\n }\n\n return media.addTextTrack(kind, label, lang);\n };\n\n _proto.onMediaAttaching = function onMediaAttaching(event, data) {\n this.media = data.media;\n\n this._cleanTracks();\n };\n\n _proto.onMediaDetaching = function onMediaDetaching() {\n var captionsTracks = this.captionsTracks;\n Object.keys(captionsTracks).forEach(function (trackName) {\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"clearCurrentCues\"])(captionsTracks[trackName]);\n delete captionsTracks[trackName];\n });\n this.nonNativeCaptionsTracks = {};\n };\n\n _proto.onManifestLoading = function onManifestLoading() {\n this.lastSn = -1; // Detect discontinuity in fragment parsing\n\n this.lastPartIndex = -1;\n this.prevCC = -1;\n this.vttCCs = newVTTCCs(); // Detect discontinuity in subtitle manifests\n\n this._cleanTracks();\n\n this.tracks = [];\n this.captionsTracks = {};\n this.nonNativeCaptionsTracks = {};\n this.textTracks = [];\n this.unparsedVttFrags = this.unparsedVttFrags || [];\n this.initPTS = [];\n this.timescale = [];\n\n if (this.cea608Parser1 && this.cea608Parser2) {\n this.cea608Parser1.reset();\n this.cea608Parser2.reset();\n }\n };\n\n _proto._cleanTracks = function _cleanTracks() {\n // clear outdated subtitles\n var media = this.media;\n\n if (!media) {\n return;\n }\n\n var textTracks = media.textTracks;\n\n if (textTracks) {\n for (var i = 0; i < textTracks.length; i++) {\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"clearCurrentCues\"])(textTracks[i]);\n }\n }\n };\n\n _proto.onSubtitleTracksUpdated = function onSubtitleTracksUpdated(event, data) {\n var _this2 = this;\n\n this.textTracks = [];\n var tracks = data.subtitleTracks || [];\n var hasIMSC1 = tracks.some(function (track) {\n return track.textCodec === _utils_imsc1_ttml_parser__WEBPACK_IMPORTED_MODULE_6__[\"IMSC1_CODEC\"];\n });\n\n if (this.config.enableWebVTT || hasIMSC1 && this.config.enableIMSC1) {\n var sameTracks = this.tracks && tracks && this.tracks.length === tracks.length;\n this.tracks = tracks || [];\n\n if (this.config.renderTextTracksNatively) {\n var inUseTracks = this.media ? this.media.textTracks : [];\n this.tracks.forEach(function (track, index) {\n var textTrack;\n\n if (index < inUseTracks.length) {\n var inUseTrack = null;\n\n for (var i = 0; i < inUseTracks.length; i++) {\n if (canReuseVttTextTrack(inUseTracks[i], track)) {\n inUseTrack = inUseTracks[i];\n break;\n }\n } // Reuse tracks with the same label, but do not reuse 608/708 tracks\n\n\n if (inUseTrack) {\n textTrack = inUseTrack;\n }\n }\n\n if (textTrack) {\n Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"clearCurrentCues\"])(textTrack);\n } else {\n textTrack = _this2.createTextTrack('subtitles', track.name, track.lang);\n\n if (textTrack) {\n textTrack.mode = 'disabled';\n }\n }\n\n if (textTrack) {\n textTrack.groupId = track.groupId;\n\n _this2.textTracks.push(textTrack);\n }\n });\n } else if (!sameTracks && this.tracks && this.tracks.length) {\n // Create a list of tracks for the provider to consume\n var tracksList = this.tracks.map(function (track) {\n return {\n label: track.name,\n kind: track.type.toLowerCase(),\n default: track.default,\n subtitleTrack: track\n };\n });\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].NON_NATIVE_TEXT_TRACKS_FOUND, {\n tracks: tracksList\n });\n }\n }\n };\n\n _proto.onManifestLoaded = function onManifestLoaded(event, data) {\n var _this3 = this;\n\n if (this.config.enableCEA708Captions && data.captions) {\n data.captions.forEach(function (captionsTrack) {\n var instreamIdMatch = /(?:CC|SERVICE)([1-4])/.exec(captionsTrack.instreamId);\n\n if (!instreamIdMatch) {\n return;\n }\n\n var trackName = \"textTrack\" + instreamIdMatch[1];\n var trackProperties = _this3.captionsProperties[trackName];\n\n if (!trackProperties) {\n return;\n }\n\n trackProperties.label = captionsTrack.name;\n\n if (captionsTrack.lang) {\n // optional attribute\n trackProperties.languageCode = captionsTrack.lang;\n }\n\n trackProperties.media = captionsTrack;\n });\n }\n };\n\n _proto.onFragLoading = function onFragLoading(event, data) {\n var cea608Parser1 = this.cea608Parser1,\n cea608Parser2 = this.cea608Parser2,\n lastSn = this.lastSn,\n lastPartIndex = this.lastPartIndex;\n\n if (!this.enabled || !(cea608Parser1 && cea608Parser2)) {\n return;\n } // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack\n\n\n if (data.frag.type === _types_loader__WEBPACK_IMPORTED_MODULE_7__[\"PlaylistLevelType\"].MAIN) {\n var _data$part$index, _data$part;\n\n var sn = data.frag.sn;\n var partIndex = (_data$part$index = data === null || data === void 0 ? void 0 : (_data$part = data.part) === null || _data$part === void 0 ? void 0 : _data$part.index) != null ? _data$part$index : -1;\n\n if (!(sn === lastSn + 1 || sn === lastSn && partIndex === lastPartIndex + 1)) {\n cea608Parser1.reset();\n cea608Parser2.reset();\n }\n\n this.lastSn = sn;\n this.lastPartIndex = partIndex;\n }\n };\n\n _proto.onFragLoaded = function onFragLoaded(event, data) {\n var frag = data.frag,\n payload = data.payload;\n var initPTS = this.initPTS,\n unparsedVttFrags = this.unparsedVttFrags;\n\n if (frag.type === _types_loader__WEBPACK_IMPORTED_MODULE_7__[\"PlaylistLevelType\"].SUBTITLE) {\n // If fragment is subtitle type, parse as WebVTT.\n if (payload.byteLength) {\n // We need an initial synchronisation PTS. Store fragments as long as none has arrived.\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(initPTS[frag.cc])) {\n unparsedVttFrags.push(data);\n\n if (initPTS.length) {\n // finish unsuccessfully, otherwise the subtitle-stream-controller could be blocked from loading new frags.\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error: new Error('Missing initial subtitle PTS')\n });\n }\n\n return;\n }\n\n var decryptData = frag.decryptdata; // fragment after decryption has a stats object\n\n var decrypted = ('stats' in data); // If the subtitles are not encrypted, parse VTTs now. Otherwise, we need to wait.\n\n if (decryptData == null || decryptData.key == null || decryptData.method !== 'AES-128' || decrypted) {\n var trackPlaylistMedia = this.tracks[frag.level];\n var vttCCs = this.vttCCs;\n\n if (!vttCCs[frag.cc]) {\n vttCCs[frag.cc] = {\n start: frag.start,\n prevCC: this.prevCC,\n new: true\n };\n this.prevCC = frag.cc;\n }\n\n if (trackPlaylistMedia && trackPlaylistMedia.textCodec === _utils_imsc1_ttml_parser__WEBPACK_IMPORTED_MODULE_6__[\"IMSC1_CODEC\"]) {\n this._parseIMSC1(frag, payload);\n } else {\n this._parseVTTs(frag, payload, vttCCs);\n }\n }\n } else {\n // In case there is no payload, finish unsuccessfully.\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error: new Error('Empty subtitle payload')\n });\n }\n }\n };\n\n _proto._parseIMSC1 = function _parseIMSC1(frag, payload) {\n var _this4 = this;\n\n var hls = this.hls;\n Object(_utils_imsc1_ttml_parser__WEBPACK_IMPORTED_MODULE_6__[\"parseIMSC1\"])(payload, this.initPTS[frag.cc], this.timescale[frag.cc], function (cues) {\n _this4._appendCues(cues, frag.level);\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_FRAG_PROCESSED, {\n success: true,\n frag: frag\n });\n }, function (error) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_8__[\"logger\"].log(\"Failed to parse IMSC1: \" + error);\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error: error\n });\n });\n };\n\n _proto._parseVTTs = function _parseVTTs(frag, payload, vttCCs) {\n var _this5 = this;\n\n var hls = this.hls; // Parse the WebVTT file contents.\n\n Object(_utils_webvtt_parser__WEBPACK_IMPORTED_MODULE_4__[\"parseWebVTT\"])(payload, this.initPTS[frag.cc], this.timescale[frag.cc], vttCCs, frag.cc, frag.start, function (cues) {\n _this5._appendCues(cues, frag.level);\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_FRAG_PROCESSED, {\n success: true,\n frag: frag\n });\n }, function (error) {\n _this5._fallbackToIMSC1(frag, payload); // Something went wrong while parsing. Trigger event with success false.\n\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_8__[\"logger\"].log(\"Failed to parse VTT cue: \" + error);\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error: error\n });\n });\n };\n\n _proto._fallbackToIMSC1 = function _fallbackToIMSC1(frag, payload) {\n var _this6 = this;\n\n // If textCodec is unknown, try parsing as IMSC1. Set textCodec based on the result\n var trackPlaylistMedia = this.tracks[frag.level];\n\n if (!trackPlaylistMedia.textCodec) {\n Object(_utils_imsc1_ttml_parser__WEBPACK_IMPORTED_MODULE_6__[\"parseIMSC1\"])(payload, this.initPTS[frag.cc], this.timescale[frag.cc], function () {\n trackPlaylistMedia.textCodec = _utils_imsc1_ttml_parser__WEBPACK_IMPORTED_MODULE_6__[\"IMSC1_CODEC\"];\n\n _this6._parseIMSC1(frag, payload);\n }, function () {\n trackPlaylistMedia.textCodec = 'wvtt';\n });\n }\n };\n\n _proto._appendCues = function _appendCues(cues, fragLevel) {\n var hls = this.hls;\n\n if (this.config.renderTextTracksNatively) {\n var textTrack = this.textTracks[fragLevel]; // WebVTTParser.parse is an async method and if the currently selected text track mode is set to \"disabled\"\n // before parsing is done then don't try to access currentTrack.cues.getCueById as cues will be null\n // and trying to access getCueById method of cues will throw an exception\n // Because we check if the mode is disabled, we can force check `cues` below. They can't be null.\n\n if (textTrack.mode === 'disabled') {\n return;\n }\n\n cues.forEach(function (cue) {\n return Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"addCueToTrack\"])(textTrack, cue);\n });\n } else {\n var currentTrack = this.tracks[fragLevel];\n var track = currentTrack.default ? 'default' : 'subtitles' + fragLevel;\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].CUES_PARSED, {\n type: 'subtitles',\n cues: cues,\n track: track\n });\n }\n };\n\n _proto.onFragDecrypted = function onFragDecrypted(event, data) {\n var frag = data.frag;\n\n if (frag.type === _types_loader__WEBPACK_IMPORTED_MODULE_7__[\"PlaylistLevelType\"].SUBTITLE) {\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(this.initPTS[frag.cc])) {\n this.unparsedVttFrags.push(data);\n return;\n }\n\n this.onFragLoaded(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_LOADED, data);\n }\n };\n\n _proto.onSubtitleTracksCleared = function onSubtitleTracksCleared() {\n this.tracks = [];\n this.captionsTracks = {};\n };\n\n _proto.onFragParsingUserdata = function onFragParsingUserdata(event, data) {\n var cea608Parser1 = this.cea608Parser1,\n cea608Parser2 = this.cea608Parser2;\n\n if (!this.enabled || !(cea608Parser1 && cea608Parser2)) {\n return;\n } // If the event contains captions (found in the bytes property), push all bytes into the parser immediately\n // It will create the proper timestamps based on the PTS value\n\n\n for (var i = 0; i < data.samples.length; i++) {\n var ccBytes = data.samples[i].bytes;\n\n if (ccBytes) {\n var ccdatas = this.extractCea608Data(ccBytes);\n cea608Parser1.addData(data.samples[i].pts, ccdatas[0]);\n cea608Parser2.addData(data.samples[i].pts, ccdatas[1]);\n }\n }\n };\n\n _proto.onBufferFlushing = function onBufferFlushing(event, _ref2) {\n var startOffset = _ref2.startOffset,\n endOffset = _ref2.endOffset,\n endOffsetSubtitles = _ref2.endOffsetSubtitles,\n type = _ref2.type;\n var media = this.media;\n\n if (!media || media.currentTime < endOffset) {\n return;\n } // Clear 608 caption cues from the captions TextTracks when the video back buffer is flushed\n // Forward cues are never removed because we can loose streamed 608 content from recent fragments\n\n\n if (!type || type === 'video') {\n var captionsTracks = this.captionsTracks;\n Object.keys(captionsTracks).forEach(function (trackName) {\n return Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"removeCuesInRange\"])(captionsTracks[trackName], startOffset, endOffset);\n });\n }\n\n if (this.config.renderTextTracksNatively) {\n // Clear VTT/IMSC1 subtitle cues from the subtitle TextTracks when the back buffer is flushed\n if (startOffset === 0 && endOffsetSubtitles !== undefined) {\n var textTracks = this.textTracks;\n Object.keys(textTracks).forEach(function (trackName) {\n return Object(_utils_texttrack_utils__WEBPACK_IMPORTED_MODULE_5__[\"removeCuesInRange\"])(textTracks[trackName], startOffset, endOffsetSubtitles);\n });\n }\n }\n };\n\n _proto.extractCea608Data = function extractCea608Data(byteArray) {\n var count = byteArray[0] & 31;\n var position = 2;\n var actualCCBytes = [[], []];\n\n for (var j = 0; j < count; j++) {\n var tmpByte = byteArray[position++];\n var ccbyte1 = 0x7f & byteArray[position++];\n var ccbyte2 = 0x7f & byteArray[position++];\n var ccValid = (4 & tmpByte) !== 0;\n var ccType = 3 & tmpByte;\n\n if (ccbyte1 === 0 && ccbyte2 === 0) {\n continue;\n }\n\n if (ccValid) {\n if (ccType === 0 || ccType === 1) {\n actualCCBytes[ccType].push(ccbyte1);\n actualCCBytes[ccType].push(ccbyte2);\n }\n }\n }\n\n return actualCCBytes;\n };\n\n return TimelineController;\n}();\n\nfunction canReuseVttTextTrack(inUseTrack, manifestTrack) {\n return inUseTrack && inUseTrack.label === manifestTrack.name && !(inUseTrack.textTrack1 || inUseTrack.textTrack2);\n}\n\nfunction intersection(x1, x2, y1, y2) {\n return Math.min(x2, y2) - Math.max(x1, y1);\n}\n\nfunction newVTTCCs() {\n return {\n ccOffset: 0,\n presentationOffset: 0,\n 0: {\n start: 0,\n prevCC: -1,\n new: false\n }\n };\n}\n\n/***/ }),\n\n/***/ \"./src/crypt/aes-crypto.ts\":\n/*!*********************************!*\\\n !*** ./src/crypt/aes-crypto.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AESCrypto; });\nvar AESCrypto = /*#__PURE__*/function () {\n function AESCrypto(subtle, iv) {\n this.subtle = void 0;\n this.aesIV = void 0;\n this.subtle = subtle;\n this.aesIV = iv;\n }\n\n var _proto = AESCrypto.prototype;\n\n _proto.decrypt = function decrypt(data, key) {\n return this.subtle.decrypt({\n name: 'AES-CBC',\n iv: this.aesIV\n }, key, data);\n };\n\n return AESCrypto;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/crypt/aes-decryptor.ts\":\n/*!************************************!*\\\n !*** ./src/crypt/aes-decryptor.ts ***!\n \\************************************/\n/*! exports provided: removePadding, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removePadding\", function() { return removePadding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return AESDecryptor; });\n/* harmony import */ var _utils_typed_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/typed-array */ \"./src/utils/typed-array.ts\");\n // PKCS7\n\nfunction removePadding(array) {\n var outputBytes = array.byteLength;\n var paddingBytes = outputBytes && new DataView(array.buffer).getUint8(outputBytes - 1);\n\n if (paddingBytes) {\n return Object(_utils_typed_array__WEBPACK_IMPORTED_MODULE_0__[\"sliceUint8\"])(array, 0, outputBytes - paddingBytes);\n }\n\n return array;\n}\n\nvar AESDecryptor = /*#__PURE__*/function () {\n function AESDecryptor() {\n this.rcon = [0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n this.sBox = new Uint32Array(256);\n this.invSBox = new Uint32Array(256);\n this.key = new Uint32Array(0);\n this.ksRows = 0;\n this.keySize = 0;\n this.keySchedule = void 0;\n this.invKeySchedule = void 0;\n this.initTable();\n } // Using view.getUint32() also swaps the byte order.\n\n\n var _proto = AESDecryptor.prototype;\n\n _proto.uint8ArrayToUint32Array_ = function uint8ArrayToUint32Array_(arrayBuffer) {\n var view = new DataView(arrayBuffer);\n var newArray = new Uint32Array(4);\n\n for (var i = 0; i < 4; i++) {\n newArray[i] = view.getUint32(i * 4);\n }\n\n return newArray;\n };\n\n _proto.initTable = function initTable() {\n var sBox = this.sBox;\n var invSBox = this.invSBox;\n var subMix = this.subMix;\n var subMix0 = subMix[0];\n var subMix1 = subMix[1];\n var subMix2 = subMix[2];\n var subMix3 = subMix[3];\n var invSubMix = this.invSubMix;\n var invSubMix0 = invSubMix[0];\n var invSubMix1 = invSubMix[1];\n var invSubMix2 = invSubMix[2];\n var invSubMix3 = invSubMix[3];\n var d = new Uint32Array(256);\n var x = 0;\n var xi = 0;\n var i = 0;\n\n for (i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = i << 1 ^ 0x11b;\n }\n }\n\n for (i = 0; i < 256; i++) {\n var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n sBox[x] = sx;\n invSBox[sx] = x; // Compute multiplication\n\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4]; // Compute sub/invSub bytes, mix columns tables\n\n var t = d[sx] * 0x101 ^ sx * 0x1010100;\n subMix0[x] = t << 24 | t >>> 8;\n subMix1[x] = t << 16 | t >>> 16;\n subMix2[x] = t << 8 | t >>> 24;\n subMix3[x] = t; // Compute inv sub bytes, inv mix columns tables\n\n t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n invSubMix0[sx] = t << 24 | t >>> 8;\n invSubMix1[sx] = t << 16 | t >>> 16;\n invSubMix2[sx] = t << 8 | t >>> 24;\n invSubMix3[sx] = t; // Compute next counter\n\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n };\n\n _proto.expandKey = function expandKey(keyBuffer) {\n // convert keyBuffer to Uint32Array\n var key = this.uint8ArrayToUint32Array_(keyBuffer);\n var sameKey = true;\n var offset = 0;\n\n while (offset < key.length && sameKey) {\n sameKey = key[offset] === this.key[offset];\n offset++;\n }\n\n if (sameKey) {\n return;\n }\n\n this.key = key;\n var keySize = this.keySize = key.length;\n\n if (keySize !== 4 && keySize !== 6 && keySize !== 8) {\n throw new Error('Invalid aes key size=' + keySize);\n }\n\n var ksRows = this.ksRows = (keySize + 6 + 1) * 4;\n var ksRow;\n var invKsRow;\n var keySchedule = this.keySchedule = new Uint32Array(ksRows);\n var invKeySchedule = this.invKeySchedule = new Uint32Array(ksRows);\n var sbox = this.sBox;\n var rcon = this.rcon;\n var invSubMix = this.invSubMix;\n var invSubMix0 = invSubMix[0];\n var invSubMix1 = invSubMix[1];\n var invSubMix2 = invSubMix[2];\n var invSubMix3 = invSubMix[3];\n var prev;\n var t;\n\n for (ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n prev = keySchedule[ksRow] = key[ksRow];\n continue;\n }\n\n t = prev;\n\n if (ksRow % keySize === 0) {\n // Rot word\n t = t << 8 | t >>> 24; // Sub word\n\n t = sbox[t >>> 24] << 24 | sbox[t >>> 16 & 0xff] << 16 | sbox[t >>> 8 & 0xff] << 8 | sbox[t & 0xff]; // Mix Rcon\n\n t ^= rcon[ksRow / keySize | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize === 4) {\n // Sub word\n t = sbox[t >>> 24] << 24 | sbox[t >>> 16 & 0xff] << 16 | sbox[t >>> 8 & 0xff] << 8 | sbox[t & 0xff];\n }\n\n keySchedule[ksRow] = prev = (keySchedule[ksRow - keySize] ^ t) >>> 0;\n }\n\n for (invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n ksRow = ksRows - invKsRow;\n\n if (invKsRow & 3) {\n t = keySchedule[ksRow];\n } else {\n t = keySchedule[ksRow - 4];\n }\n\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] = invSubMix0[sbox[t >>> 24]] ^ invSubMix1[sbox[t >>> 16 & 0xff]] ^ invSubMix2[sbox[t >>> 8 & 0xff]] ^ invSubMix3[sbox[t & 0xff]];\n }\n\n invKeySchedule[invKsRow] = invKeySchedule[invKsRow] >>> 0;\n }\n } // Adding this as a method greatly improves performance.\n ;\n\n _proto.networkToHostOrderSwap = function networkToHostOrderSwap(word) {\n return word << 24 | (word & 0xff00) << 8 | (word & 0xff0000) >> 8 | word >>> 24;\n };\n\n _proto.decrypt = function decrypt(inputArrayBuffer, offset, aesIV) {\n var nRounds = this.keySize + 6;\n var invKeySchedule = this.invKeySchedule;\n var invSBOX = this.invSBox;\n var invSubMix = this.invSubMix;\n var invSubMix0 = invSubMix[0];\n var invSubMix1 = invSubMix[1];\n var invSubMix2 = invSubMix[2];\n var invSubMix3 = invSubMix[3];\n var initVector = this.uint8ArrayToUint32Array_(aesIV);\n var initVector0 = initVector[0];\n var initVector1 = initVector[1];\n var initVector2 = initVector[2];\n var initVector3 = initVector[3];\n var inputInt32 = new Int32Array(inputArrayBuffer);\n var outputInt32 = new Int32Array(inputInt32.length);\n var t0, t1, t2, t3;\n var s0, s1, s2, s3;\n var inputWords0, inputWords1, inputWords2, inputWords3;\n var ksRow, i;\n var swapWord = this.networkToHostOrderSwap;\n\n while (offset < inputInt32.length) {\n inputWords0 = swapWord(inputInt32[offset]);\n inputWords1 = swapWord(inputInt32[offset + 1]);\n inputWords2 = swapWord(inputInt32[offset + 2]);\n inputWords3 = swapWord(inputInt32[offset + 3]);\n s0 = inputWords0 ^ invKeySchedule[0];\n s1 = inputWords3 ^ invKeySchedule[1];\n s2 = inputWords2 ^ invKeySchedule[2];\n s3 = inputWords1 ^ invKeySchedule[3];\n ksRow = 4; // Iterate through the rounds of decryption\n\n for (i = 1; i < nRounds; i++) {\n t0 = invSubMix0[s0 >>> 24] ^ invSubMix1[s1 >> 16 & 0xff] ^ invSubMix2[s2 >> 8 & 0xff] ^ invSubMix3[s3 & 0xff] ^ invKeySchedule[ksRow];\n t1 = invSubMix0[s1 >>> 24] ^ invSubMix1[s2 >> 16 & 0xff] ^ invSubMix2[s3 >> 8 & 0xff] ^ invSubMix3[s0 & 0xff] ^ invKeySchedule[ksRow + 1];\n t2 = invSubMix0[s2 >>> 24] ^ invSubMix1[s3 >> 16 & 0xff] ^ invSubMix2[s0 >> 8 & 0xff] ^ invSubMix3[s1 & 0xff] ^ invKeySchedule[ksRow + 2];\n t3 = invSubMix0[s3 >>> 24] ^ invSubMix1[s0 >> 16 & 0xff] ^ invSubMix2[s1 >> 8 & 0xff] ^ invSubMix3[s2 & 0xff] ^ invKeySchedule[ksRow + 3]; // Update state\n\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n ksRow = ksRow + 4;\n } // Shift rows, sub bytes, add round key\n\n\n t0 = invSBOX[s0 >>> 24] << 24 ^ invSBOX[s1 >> 16 & 0xff] << 16 ^ invSBOX[s2 >> 8 & 0xff] << 8 ^ invSBOX[s3 & 0xff] ^ invKeySchedule[ksRow];\n t1 = invSBOX[s1 >>> 24] << 24 ^ invSBOX[s2 >> 16 & 0xff] << 16 ^ invSBOX[s3 >> 8 & 0xff] << 8 ^ invSBOX[s0 & 0xff] ^ invKeySchedule[ksRow + 1];\n t2 = invSBOX[s2 >>> 24] << 24 ^ invSBOX[s3 >> 16 & 0xff] << 16 ^ invSBOX[s0 >> 8 & 0xff] << 8 ^ invSBOX[s1 & 0xff] ^ invKeySchedule[ksRow + 2];\n t3 = invSBOX[s3 >>> 24] << 24 ^ invSBOX[s0 >> 16 & 0xff] << 16 ^ invSBOX[s1 >> 8 & 0xff] << 8 ^ invSBOX[s2 & 0xff] ^ invKeySchedule[ksRow + 3]; // Write\n\n outputInt32[offset] = swapWord(t0 ^ initVector0);\n outputInt32[offset + 1] = swapWord(t3 ^ initVector1);\n outputInt32[offset + 2] = swapWord(t2 ^ initVector2);\n outputInt32[offset + 3] = swapWord(t1 ^ initVector3); // reset initVector to last 4 unsigned int\n\n initVector0 = inputWords0;\n initVector1 = inputWords1;\n initVector2 = inputWords2;\n initVector3 = inputWords3;\n offset = offset + 4;\n }\n\n return outputInt32.buffer;\n };\n\n return AESDecryptor;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/crypt/decrypter.ts\":\n/*!********************************!*\\\n !*** ./src/crypt/decrypter.ts ***!\n \\********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Decrypter; });\n/* harmony import */ var _aes_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./aes-crypto */ \"./src/crypt/aes-crypto.ts\");\n/* harmony import */ var _fast_aes_key__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fast-aes-key */ \"./src/crypt/fast-aes-key.ts\");\n/* harmony import */ var _aes_decryptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./aes-decryptor */ \"./src/crypt/aes-decryptor.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _utils_typed_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/typed-array */ \"./src/utils/typed-array.ts\");\n\n\n\n\n\n\nvar CHUNK_SIZE = 16; // 16 bytes, 128 bits\n\nvar Decrypter = /*#__PURE__*/function () {\n function Decrypter(observer, config, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$removePKCS7Paddi = _ref.removePKCS7Padding,\n removePKCS7Padding = _ref$removePKCS7Paddi === void 0 ? true : _ref$removePKCS7Paddi;\n\n this.logEnabled = true;\n this.observer = void 0;\n this.config = void 0;\n this.removePKCS7Padding = void 0;\n this.subtle = null;\n this.softwareDecrypter = null;\n this.key = null;\n this.fastAesKey = null;\n this.remainderData = null;\n this.currentIV = null;\n this.currentResult = null;\n this.observer = observer;\n this.config = config;\n this.removePKCS7Padding = removePKCS7Padding; // built in decryptor expects PKCS7 padding\n\n if (removePKCS7Padding) {\n try {\n var browserCrypto = self.crypto;\n\n if (browserCrypto) {\n this.subtle = browserCrypto.subtle || browserCrypto.webkitSubtle;\n }\n } catch (e) {\n /* no-op */\n }\n }\n\n if (this.subtle === null) {\n this.config.enableSoftwareAES = true;\n }\n }\n\n var _proto = Decrypter.prototype;\n\n _proto.destroy = function destroy() {\n // @ts-ignore\n this.observer = null;\n };\n\n _proto.isSync = function isSync() {\n return this.config.enableSoftwareAES;\n };\n\n _proto.flush = function flush() {\n var currentResult = this.currentResult;\n\n if (!currentResult) {\n this.reset();\n return;\n }\n\n var data = new Uint8Array(currentResult);\n this.reset();\n\n if (this.removePKCS7Padding) {\n return Object(_aes_decryptor__WEBPACK_IMPORTED_MODULE_2__[\"removePadding\"])(data);\n }\n\n return data;\n };\n\n _proto.reset = function reset() {\n this.currentResult = null;\n this.currentIV = null;\n this.remainderData = null;\n\n if (this.softwareDecrypter) {\n this.softwareDecrypter = null;\n }\n };\n\n _proto.decrypt = function decrypt(data, key, iv, callback) {\n if (this.config.enableSoftwareAES) {\n this.softwareDecrypt(new Uint8Array(data), key, iv);\n var decryptResult = this.flush();\n\n if (decryptResult) {\n callback(decryptResult.buffer);\n }\n } else {\n this.webCryptoDecrypt(new Uint8Array(data), key, iv).then(callback);\n }\n };\n\n _proto.softwareDecrypt = function softwareDecrypt(data, key, iv) {\n var currentIV = this.currentIV,\n currentResult = this.currentResult,\n remainderData = this.remainderData;\n this.logOnce('JS AES decrypt'); // The output is staggered during progressive parsing - the current result is cached, and emitted on the next call\n // This is done in order to strip PKCS7 padding, which is found at the end of each segment. We only know we've reached\n // the end on flush(), but by that time we have already received all bytes for the segment.\n // Progressive decryption does not work with WebCrypto\n\n if (remainderData) {\n data = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_4__[\"appendUint8Array\"])(remainderData, data);\n this.remainderData = null;\n } // Byte length must be a multiple of 16 (AES-128 = 128 bit blocks = 16 bytes)\n\n\n var currentChunk = this.getValidChunk(data);\n\n if (!currentChunk.length) {\n return null;\n }\n\n if (currentIV) {\n iv = currentIV;\n }\n\n var softwareDecrypter = this.softwareDecrypter;\n\n if (!softwareDecrypter) {\n softwareDecrypter = this.softwareDecrypter = new _aes_decryptor__WEBPACK_IMPORTED_MODULE_2__[\"default\"]();\n }\n\n softwareDecrypter.expandKey(key);\n var result = currentResult;\n this.currentResult = softwareDecrypter.decrypt(currentChunk.buffer, 0, iv);\n this.currentIV = Object(_utils_typed_array__WEBPACK_IMPORTED_MODULE_5__[\"sliceUint8\"])(currentChunk, -16).buffer;\n\n if (!result) {\n return null;\n }\n\n return result;\n };\n\n _proto.webCryptoDecrypt = function webCryptoDecrypt(data, key, iv) {\n var _this = this;\n\n var subtle = this.subtle;\n\n if (this.key !== key || !this.fastAesKey) {\n this.key = key;\n this.fastAesKey = new _fast_aes_key__WEBPACK_IMPORTED_MODULE_1__[\"default\"](subtle, key);\n }\n\n return this.fastAesKey.expandKey().then(function (aesKey) {\n // decrypt using web crypto\n if (!subtle) {\n return Promise.reject(new Error('web crypto not initialized'));\n }\n\n var crypto = new _aes_crypto__WEBPACK_IMPORTED_MODULE_0__[\"default\"](subtle, iv);\n return crypto.decrypt(data.buffer, aesKey);\n }).catch(function (err) {\n return _this.onWebCryptoError(err, data, key, iv);\n });\n };\n\n _proto.onWebCryptoError = function onWebCryptoError(err, data, key, iv) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('[decrypter.ts]: WebCrypto Error, disable WebCrypto API:', err);\n this.config.enableSoftwareAES = true;\n this.logEnabled = true;\n return this.softwareDecrypt(data, key, iv);\n };\n\n _proto.getValidChunk = function getValidChunk(data) {\n var currentChunk = data;\n var splitPoint = data.length - data.length % CHUNK_SIZE;\n\n if (splitPoint !== data.length) {\n currentChunk = Object(_utils_typed_array__WEBPACK_IMPORTED_MODULE_5__[\"sliceUint8\"])(data, 0, splitPoint);\n this.remainderData = Object(_utils_typed_array__WEBPACK_IMPORTED_MODULE_5__[\"sliceUint8\"])(data, splitPoint);\n }\n\n return currentChunk;\n };\n\n _proto.logOnce = function logOnce(msg) {\n if (!this.logEnabled) {\n return;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].log(\"[decrypter.ts]: \" + msg);\n this.logEnabled = false;\n };\n\n return Decrypter;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/crypt/fast-aes-key.ts\":\n/*!***********************************!*\\\n !*** ./src/crypt/fast-aes-key.ts ***!\n \\***********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FastAESKey; });\nvar FastAESKey = /*#__PURE__*/function () {\n function FastAESKey(subtle, key) {\n this.subtle = void 0;\n this.key = void 0;\n this.subtle = subtle;\n this.key = key;\n }\n\n var _proto = FastAESKey.prototype;\n\n _proto.expandKey = function expandKey() {\n return this.subtle.importKey('raw', this.key, {\n name: 'AES-CBC'\n }, false, ['encrypt', 'decrypt']);\n };\n\n return FastAESKey;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/demux/aacdemuxer.ts\":\n/*!*********************************!*\\\n !*** ./src/demux/aacdemuxer.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_audio_demuxer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-audio-demuxer */ \"./src/demux/base-audio-demuxer.ts\");\n/* harmony import */ var _adts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./adts */ \"./src/demux/adts.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _demux_id3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../demux/id3 */ \"./src/demux/id3.ts\");\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * AAC demuxer\n */\n\n\n\n\n\nvar AACDemuxer = /*#__PURE__*/function (_BaseAudioDemuxer) {\n _inheritsLoose(AACDemuxer, _BaseAudioDemuxer);\n\n function AACDemuxer(observer, config) {\n var _this;\n\n _this = _BaseAudioDemuxer.call(this) || this;\n _this.observer = void 0;\n _this.config = void 0;\n _this.observer = observer;\n _this.config = config;\n return _this;\n }\n\n var _proto = AACDemuxer.prototype;\n\n _proto.resetInitSegment = function resetInitSegment(audioCodec, videoCodec, duration) {\n _BaseAudioDemuxer.prototype.resetInitSegment.call(this, audioCodec, videoCodec, duration);\n\n this._audioTrack = {\n container: 'audio/adts',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n isAAC: true,\n samples: [],\n manifestCodec: audioCodec,\n duration: duration,\n inputTimeScale: 90000,\n dropped: 0\n };\n } // Source for probe info - https://wiki.multimedia.cx/index.php?title=ADTS\n ;\n\n AACDemuxer.probe = function probe(data) {\n if (!data) {\n return false;\n } // Check for the ADTS sync word\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n\n\n var id3Data = _demux_id3__WEBPACK_IMPORTED_MODULE_3__[\"getID3Data\"](data, 0) || [];\n var offset = id3Data.length;\n\n for (var length = data.length; offset < length; offset++) {\n if (_adts__WEBPACK_IMPORTED_MODULE_1__[\"probe\"](data, offset)) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('ADTS sync word found !');\n return true;\n }\n }\n\n return false;\n };\n\n _proto.canParse = function canParse(data, offset) {\n return _adts__WEBPACK_IMPORTED_MODULE_1__[\"canParse\"](data, offset);\n };\n\n _proto.appendFrame = function appendFrame(track, data, offset) {\n _adts__WEBPACK_IMPORTED_MODULE_1__[\"initTrackConfig\"](track, this.observer, data, offset, track.manifestCodec);\n var frame = _adts__WEBPACK_IMPORTED_MODULE_1__[\"appendFrame\"](track, data, offset, this.initPTS, this.frameIndex);\n\n if (frame && frame.missing === 0) {\n return frame;\n }\n };\n\n return AACDemuxer;\n}(_base_audio_demuxer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\nAACDemuxer.minProbeByteLength = 9;\n/* harmony default export */ __webpack_exports__[\"default\"] = (AACDemuxer);\n\n/***/ }),\n\n/***/ \"./src/demux/adts.ts\":\n/*!***************************!*\\\n !*** ./src/demux/adts.ts ***!\n \\***************************/\n/*! exports provided: getAudioConfig, isHeaderPattern, getHeaderLength, getFullFrameLength, canGetFrameLength, isHeader, canParse, probe, initTrackConfig, getFrameDuration, parseFrameHeader, appendFrame */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAudioConfig\", function() { return getAudioConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHeaderPattern\", function() { return isHeaderPattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHeaderLength\", function() { return getHeaderLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFullFrameLength\", function() { return getFullFrameLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canGetFrameLength\", function() { return canGetFrameLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHeader\", function() { return isHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canParse\", function() { return canParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"probe\", function() { return probe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initTrackConfig\", function() { return initTrackConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFrameDuration\", function() { return getFrameDuration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseFrameHeader\", function() { return parseFrameHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"appendFrame\", function() { return appendFrame; });\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/**\n * ADTS parser helper\n * @link https://wiki.multimedia.cx/index.php?title=ADTS\n */\n\n\n\nfunction getAudioConfig(observer, data, offset, audioCodec) {\n var adtsObjectType;\n var adtsExtensionSamplingIndex;\n var adtsChanelConfig;\n var config;\n var userAgent = navigator.userAgent.toLowerCase();\n var manifestCodec = audioCodec;\n var adtsSampleingRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350]; // byte 2\n\n adtsObjectType = ((data[offset + 2] & 0xc0) >>> 6) + 1;\n var adtsSamplingIndex = (data[offset + 2] & 0x3c) >>> 2;\n\n if (adtsSamplingIndex > adtsSampleingRates.length - 1) {\n observer.trigger(_events__WEBPACK_IMPORTED_MODULE_2__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].FRAG_PARSING_ERROR,\n fatal: true,\n reason: \"invalid ADTS sampling index:\" + adtsSamplingIndex\n });\n return;\n }\n\n adtsChanelConfig = (data[offset + 2] & 0x01) << 2; // byte 3\n\n adtsChanelConfig |= (data[offset + 3] & 0xc0) >>> 6;\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].log(\"manifest codec:\" + audioCodec + \", ADTS type:\" + adtsObjectType + \", samplingIndex:\" + adtsSamplingIndex); // firefox: freq less than 24kHz = AAC SBR (HE-AAC)\n\n if (/firefox/i.test(userAgent)) {\n if (adtsSamplingIndex >= 6) {\n adtsObjectType = 5;\n config = new Array(4); // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n\n adtsExtensionSamplingIndex = adtsSamplingIndex - 3;\n } else {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n } // Android : always use AAC\n\n } else if (userAgent.indexOf('android') !== -1) {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n } else {\n /* for other browsers (Chrome/Vivaldi/Opera ...)\n always force audio type to be HE-AAC SBR, as some browsers do not support audio codec switch properly (like Chrome ...)\n */\n adtsObjectType = 5;\n config = new Array(4); // if (manifest codec is HE-AAC or HE-AACv2) OR (manifest codec not specified AND frequency less than 24kHz)\n\n if (audioCodec && (audioCodec.indexOf('mp4a.40.29') !== -1 || audioCodec.indexOf('mp4a.40.5') !== -1) || !audioCodec && adtsSamplingIndex >= 6) {\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSamplingIndex = adtsSamplingIndex - 3;\n } else {\n // if (manifest codec is AAC) AND (frequency less than 24kHz AND nb channel is 1) OR (manifest codec not specified and mono audio)\n // Chrome fails to play back with low frequency AAC LC mono when initialized with HE-AAC. This is not a problem with stereo.\n if (audioCodec && audioCodec.indexOf('mp4a.40.2') !== -1 && (adtsSamplingIndex >= 6 && adtsChanelConfig === 1 || /vivaldi/i.test(userAgent)) || !audioCodec && adtsChanelConfig === 1) {\n adtsObjectType = 2;\n config = new Array(2);\n }\n\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n }\n }\n /* refer to http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Specific_Config\n ISO 14496-3 (AAC).pdf - Table 1.13 — Syntax of AudioSpecificConfig()\n Audio Profile / Audio Object Type\n 0: Null\n 1: AAC Main\n 2: AAC LC (Low Complexity)\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: SBR (Spectral Band Replication)\n 6: AAC Scalable\n sampling freq\n 0: 96000 Hz\n 1: 88200 Hz\n 2: 64000 Hz\n 3: 48000 Hz\n 4: 44100 Hz\n 5: 32000 Hz\n 6: 24000 Hz\n 7: 22050 Hz\n 8: 16000 Hz\n 9: 12000 Hz\n 10: 11025 Hz\n 11: 8000 Hz\n 12: 7350 Hz\n 13: Reserved\n 14: Reserved\n 15: frequency is written explictly\n Channel Configurations\n These are the channel configurations:\n 0: Defined in AOT Specifc Config\n 1: 1 channel: front-center\n 2: 2 channels: front-left, front-right\n */\n // audioObjectType = profile => profile, the MPEG-4 Audio Object Type minus 1\n\n\n config[0] = adtsObjectType << 3; // samplingFrequencyIndex\n\n config[0] |= (adtsSamplingIndex & 0x0e) >> 1;\n config[1] |= (adtsSamplingIndex & 0x01) << 7; // channelConfiguration\n\n config[1] |= adtsChanelConfig << 3;\n\n if (adtsObjectType === 5) {\n // adtsExtensionSampleingIndex\n config[1] |= (adtsExtensionSamplingIndex & 0x0e) >> 1;\n config[2] = (adtsExtensionSamplingIndex & 0x01) << 7; // adtsObjectType (force to 2, chrome is checking that object type is less than 5 ???\n // https://chromium.googlesource.com/chromium/src.git/+/master/media/formats/mp4/aac.cc\n\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n\n return {\n config: config,\n samplerate: adtsSampleingRates[adtsSamplingIndex],\n channelCount: adtsChanelConfig,\n codec: 'mp4a.40.' + adtsObjectType,\n manifestCodec: manifestCodec\n };\n}\nfunction isHeaderPattern(data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;\n}\nfunction getHeaderLength(data, offset) {\n return data[offset + 1] & 0x01 ? 7 : 9;\n}\nfunction getFullFrameLength(data, offset) {\n return (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xe0) >>> 5;\n}\nfunction canGetFrameLength(data, offset) {\n return offset + 5 < data.length;\n}\nfunction isHeader(data, offset) {\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n return offset + 1 < data.length && isHeaderPattern(data, offset);\n}\nfunction canParse(data, offset) {\n return canGetFrameLength(data, offset) && isHeaderPattern(data, offset) && getFullFrameLength(data, offset) <= data.length - offset;\n}\nfunction probe(data, offset) {\n // same as isHeader but we also check that ADTS frame follows last ADTS frame\n // or end of data is reached\n if (isHeader(data, offset)) {\n // ADTS header Length\n var headerLength = getHeaderLength(data, offset);\n\n if (offset + headerLength >= data.length) {\n return false;\n } // ADTS frame Length\n\n\n var frameLength = getFullFrameLength(data, offset);\n\n if (frameLength <= headerLength) {\n return false;\n }\n\n var newOffset = offset + frameLength;\n return newOffset === data.length || isHeader(data, newOffset);\n }\n\n return false;\n}\nfunction initTrackConfig(track, observer, data, offset, audioCodec) {\n if (!track.samplerate) {\n var config = getAudioConfig(observer, data, offset, audioCodec);\n\n if (!config) {\n return;\n }\n\n track.config = config.config;\n track.samplerate = config.samplerate;\n track.channelCount = config.channelCount;\n track.codec = config.codec;\n track.manifestCodec = config.manifestCodec;\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].log(\"parsed codec:\" + track.codec + \", rate:\" + config.samplerate + \", channels:\" + config.channelCount);\n }\n}\nfunction getFrameDuration(samplerate) {\n return 1024 * 90000 / samplerate;\n}\nfunction parseFrameHeader(data, offset, pts, frameIndex, frameDuration) {\n // The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header\n var headerLength = getHeaderLength(data, offset); // retrieve frame size\n\n var frameLength = getFullFrameLength(data, offset);\n frameLength -= headerLength;\n\n if (frameLength > 0) {\n var stamp = pts + frameIndex * frameDuration; // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n\n return {\n headerLength: headerLength,\n frameLength: frameLength,\n stamp: stamp\n };\n }\n}\nfunction appendFrame(track, data, offset, pts, frameIndex) {\n var frameDuration = getFrameDuration(track.samplerate);\n var header = parseFrameHeader(data, offset, pts, frameIndex, frameDuration);\n\n if (header) {\n var frameLength = header.frameLength,\n headerLength = header.headerLength,\n stamp = header.stamp;\n var length = headerLength + frameLength;\n var missing = Math.max(0, offset + length - data.length); // logger.log(`AAC frame ${frameIndex}, pts:${stamp} length@offset/total: ${frameLength}@${offset+headerLength}/${data.byteLength} missing: ${missing}`);\n\n var unit;\n\n if (missing) {\n unit = new Uint8Array(length - headerLength);\n unit.set(data.subarray(offset + headerLength, data.length), 0);\n } else {\n unit = data.subarray(offset + headerLength, offset + length);\n }\n\n var sample = {\n unit: unit,\n pts: stamp\n };\n\n if (!missing) {\n track.samples.push(sample);\n }\n\n return {\n sample: sample,\n length: length,\n missing: missing\n };\n }\n}\n\n/***/ }),\n\n/***/ \"./src/demux/base-audio-demuxer.ts\":\n/*!*****************************************!*\\\n !*** ./src/demux/base-audio-demuxer.ts ***!\n \\*****************************************/\n/*! exports provided: initPTSFn, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initPTSFn\", function() { return initPTSFn; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _demux_id3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../demux/id3 */ \"./src/demux/id3.ts\");\n/* harmony import */ var _dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dummy-demuxed-track */ \"./src/demux/dummy-demuxed-track.ts\");\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _utils_typed_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/typed-array */ \"./src/utils/typed-array.ts\");\n\n\n\n\n\n\nvar BaseAudioDemuxer = /*#__PURE__*/function () {\n function BaseAudioDemuxer() {\n this._audioTrack = void 0;\n this._id3Track = void 0;\n this.frameIndex = 0;\n this.cachedData = null;\n this.initPTS = null;\n }\n\n var _proto = BaseAudioDemuxer.prototype;\n\n _proto.resetInitSegment = function resetInitSegment(audioCodec, videoCodec, duration) {\n this._id3Track = {\n type: 'id3',\n id: 3,\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: 0\n };\n };\n\n _proto.resetTimeStamp = function resetTimeStamp() {};\n\n _proto.resetContiguity = function resetContiguity() {};\n\n _proto.canParse = function canParse(data, offset) {\n return false;\n };\n\n _proto.appendFrame = function appendFrame(track, data, offset) {} // feed incoming data to the front of the parsing pipeline\n ;\n\n _proto.demux = function demux(data, timeOffset) {\n if (this.cachedData) {\n data = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_3__[\"appendUint8Array\"])(this.cachedData, data);\n this.cachedData = null;\n }\n\n var id3Data = _demux_id3__WEBPACK_IMPORTED_MODULE_1__[\"getID3Data\"](data, 0);\n var offset = id3Data ? id3Data.length : 0;\n var lastDataIndex;\n var pts;\n var track = this._audioTrack;\n var id3Track = this._id3Track;\n var timestamp = id3Data ? _demux_id3__WEBPACK_IMPORTED_MODULE_1__[\"getTimeStamp\"](id3Data) : undefined;\n var length = data.length;\n\n if (this.frameIndex === 0 || this.initPTS === null) {\n this.initPTS = initPTSFn(timestamp, timeOffset);\n } // more expressive than alternative: id3Data?.length\n\n\n if (id3Data && id3Data.length > 0) {\n id3Track.samples.push({\n pts: this.initPTS,\n dts: this.initPTS,\n data: id3Data\n });\n }\n\n pts = this.initPTS;\n\n while (offset < length) {\n if (this.canParse(data, offset)) {\n var frame = this.appendFrame(track, data, offset);\n\n if (frame) {\n this.frameIndex++;\n pts = frame.sample.pts;\n offset += frame.length;\n lastDataIndex = offset;\n } else {\n offset = length;\n }\n } else if (_demux_id3__WEBPACK_IMPORTED_MODULE_1__[\"canParse\"](data, offset)) {\n // after a ID3.canParse, a call to ID3.getID3Data *should* always returns some data\n id3Data = _demux_id3__WEBPACK_IMPORTED_MODULE_1__[\"getID3Data\"](data, offset);\n id3Track.samples.push({\n pts: pts,\n dts: pts,\n data: id3Data\n });\n offset += id3Data.length;\n lastDataIndex = offset;\n } else {\n offset++;\n }\n\n if (offset === length && lastDataIndex !== length) {\n var partialData = Object(_utils_typed_array__WEBPACK_IMPORTED_MODULE_4__[\"sliceUint8\"])(data, lastDataIndex);\n\n if (this.cachedData) {\n this.cachedData = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_3__[\"appendUint8Array\"])(this.cachedData, partialData);\n } else {\n this.cachedData = partialData;\n }\n }\n }\n\n return {\n audioTrack: track,\n avcTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_2__[\"dummyTrack\"])(),\n id3Track: id3Track,\n textTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_2__[\"dummyTrack\"])()\n };\n };\n\n _proto.demuxSampleAes = function demuxSampleAes(data, keyData, timeOffset) {\n return Promise.reject(new Error(\"[\" + this + \"] This demuxer does not support Sample-AES decryption\"));\n };\n\n _proto.flush = function flush(timeOffset) {\n // Parse cache in case of remaining frames.\n var cachedData = this.cachedData;\n\n if (cachedData) {\n this.cachedData = null;\n this.demux(cachedData, 0);\n }\n\n this.frameIndex = 0;\n return {\n audioTrack: this._audioTrack,\n avcTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_2__[\"dummyTrack\"])(),\n id3Track: this._id3Track,\n textTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_2__[\"dummyTrack\"])()\n };\n };\n\n _proto.destroy = function destroy() {};\n\n return BaseAudioDemuxer;\n}();\n/**\n * Initialize PTS\n *

\n * use timestamp unless it is undefined, NaN or Infinity\n *

\n */\n\n\nvar initPTSFn = function initPTSFn(timestamp, timeOffset) {\n return Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(timestamp) ? timestamp * 90 : timeOffset * 90000;\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (BaseAudioDemuxer);\n\n/***/ }),\n\n/***/ \"./src/demux/chunk-cache.ts\":\n/*!**********************************!*\\\n !*** ./src/demux/chunk-cache.ts ***!\n \\**********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ChunkCache; });\nvar ChunkCache = /*#__PURE__*/function () {\n function ChunkCache() {\n this.chunks = [];\n this.dataLength = 0;\n }\n\n var _proto = ChunkCache.prototype;\n\n _proto.push = function push(chunk) {\n this.chunks.push(chunk);\n this.dataLength += chunk.length;\n };\n\n _proto.flush = function flush() {\n var chunks = this.chunks,\n dataLength = this.dataLength;\n var result;\n\n if (!chunks.length) {\n return new Uint8Array(0);\n } else if (chunks.length === 1) {\n result = chunks[0];\n } else {\n result = concatUint8Arrays(chunks, dataLength);\n }\n\n this.reset();\n return result;\n };\n\n _proto.reset = function reset() {\n this.chunks.length = 0;\n this.dataLength = 0;\n };\n\n return ChunkCache;\n}();\n\n\n\nfunction concatUint8Arrays(chunks, dataLength) {\n var result = new Uint8Array(dataLength);\n var offset = 0;\n\n for (var i = 0; i < chunks.length; i++) {\n var chunk = chunks[i];\n result.set(chunk, offset);\n offset += chunk.length;\n }\n\n return result;\n}\n\n/***/ }),\n\n/***/ \"./src/demux/dummy-demuxed-track.ts\":\n/*!******************************************!*\\\n !*** ./src/demux/dummy-demuxed-track.ts ***!\n \\******************************************/\n/*! exports provided: dummyTrack */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dummyTrack\", function() { return dummyTrack; });\nfunction dummyTrack() {\n return {\n type: '',\n id: -1,\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: -1,\n samples: [],\n dropped: 0\n };\n}\n\n/***/ }),\n\n/***/ \"./src/demux/exp-golomb.ts\":\n/*!*********************************!*\\\n !*** ./src/demux/exp-golomb.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/**\n * Parser for exponential Golomb codes, a variable-bitwidth number encoding scheme used by h264.\n */\n\n\nvar ExpGolomb = /*#__PURE__*/function () {\n function ExpGolomb(data) {\n this.data = void 0;\n this.bytesAvailable = void 0;\n this.word = void 0;\n this.bitsAvailable = void 0;\n this.data = data; // the number of bytes left to examine in this.data\n\n this.bytesAvailable = data.byteLength; // the current word being examined\n\n this.word = 0; // :uint\n // the number of bits left to examine in the current word\n\n this.bitsAvailable = 0; // :uint\n } // ():void\n\n\n var _proto = ExpGolomb.prototype;\n\n _proto.loadWord = function loadWord() {\n var data = this.data;\n var bytesAvailable = this.bytesAvailable;\n var position = data.byteLength - bytesAvailable;\n var workingBytes = new Uint8Array(4);\n var availableBytes = Math.min(4, bytesAvailable);\n\n if (availableBytes === 0) {\n throw new Error('no bytes available');\n }\n\n workingBytes.set(data.subarray(position, position + availableBytes));\n this.word = new DataView(workingBytes.buffer).getUint32(0); // track the amount of this.data that has been processed\n\n this.bitsAvailable = availableBytes * 8;\n this.bytesAvailable -= availableBytes;\n } // (count:int):void\n ;\n\n _proto.skipBits = function skipBits(count) {\n var skipBytes; // :int\n\n if (this.bitsAvailable > count) {\n this.word <<= count;\n this.bitsAvailable -= count;\n } else {\n count -= this.bitsAvailable;\n skipBytes = count >> 3;\n count -= skipBytes >> 3;\n this.bytesAvailable -= skipBytes;\n this.loadWord();\n this.word <<= count;\n this.bitsAvailable -= count;\n }\n } // (size:int):uint\n ;\n\n _proto.readBits = function readBits(size) {\n var bits = Math.min(this.bitsAvailable, size); // :uint\n\n var valu = this.word >>> 32 - bits; // :uint\n\n if (size > 32) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].error('Cannot read more than 32 bits at a time');\n }\n\n this.bitsAvailable -= bits;\n\n if (this.bitsAvailable > 0) {\n this.word <<= bits;\n } else if (this.bytesAvailable > 0) {\n this.loadWord();\n }\n\n bits = size - bits;\n\n if (bits > 0 && this.bitsAvailable) {\n return valu << bits | this.readBits(bits);\n } else {\n return valu;\n }\n } // ():uint\n ;\n\n _proto.skipLZ = function skipLZ() {\n var leadingZeroCount; // :uint\n\n for (leadingZeroCount = 0; leadingZeroCount < this.bitsAvailable; ++leadingZeroCount) {\n if ((this.word & 0x80000000 >>> leadingZeroCount) !== 0) {\n // the first bit of working word is 1\n this.word <<= leadingZeroCount;\n this.bitsAvailable -= leadingZeroCount;\n return leadingZeroCount;\n }\n } // we exhausted word and still have not found a 1\n\n\n this.loadWord();\n return leadingZeroCount + this.skipLZ();\n } // ():void\n ;\n\n _proto.skipUEG = function skipUEG() {\n this.skipBits(1 + this.skipLZ());\n } // ():void\n ;\n\n _proto.skipEG = function skipEG() {\n this.skipBits(1 + this.skipLZ());\n } // ():uint\n ;\n\n _proto.readUEG = function readUEG() {\n var clz = this.skipLZ(); // :uint\n\n return this.readBits(clz + 1) - 1;\n } // ():int\n ;\n\n _proto.readEG = function readEG() {\n var valu = this.readUEG(); // :int\n\n if (0x01 & valu) {\n // the number is odd if the low order bit is set\n return 1 + valu >>> 1; // add 1 to make it even, and divide by 2\n } else {\n return -1 * (valu >>> 1); // divide by two then make it negative\n }\n } // Some convenience functions\n // :Boolean\n ;\n\n _proto.readBoolean = function readBoolean() {\n return this.readBits(1) === 1;\n } // ():int\n ;\n\n _proto.readUByte = function readUByte() {\n return this.readBits(8);\n } // ():int\n ;\n\n _proto.readUShort = function readUShort() {\n return this.readBits(16);\n } // ():int\n ;\n\n _proto.readUInt = function readUInt() {\n return this.readBits(32);\n }\n /**\n * Advance the ExpGolomb decoder past a scaling list. The scaling\n * list is optionally transmitted as part of a sequence parameter\n * set and is not relevant to transmuxing.\n * @param count the number of entries in this scaling list\n * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1\n */\n ;\n\n _proto.skipScalingList = function skipScalingList(count) {\n var lastScale = 8;\n var nextScale = 8;\n var deltaScale;\n\n for (var j = 0; j < count; j++) {\n if (nextScale !== 0) {\n deltaScale = this.readEG();\n nextScale = (lastScale + deltaScale + 256) % 256;\n }\n\n lastScale = nextScale === 0 ? lastScale : nextScale;\n }\n }\n /**\n * Read a sequence parameter set and return some interesting video\n * properties. A sequence parameter set is the H264 metadata that\n * describes the properties of upcoming video frames.\n * @param data {Uint8Array} the bytes of a sequence parameter set\n * @return {object} an object with configuration parsed from the\n * sequence parameter set, including the dimensions of the\n * associated video frames.\n */\n ;\n\n _proto.readSPS = function readSPS() {\n var frameCropLeftOffset = 0;\n var frameCropRightOffset = 0;\n var frameCropTopOffset = 0;\n var frameCropBottomOffset = 0;\n var numRefFramesInPicOrderCntCycle;\n var scalingListCount;\n var i;\n var readUByte = this.readUByte.bind(this);\n var readBits = this.readBits.bind(this);\n var readUEG = this.readUEG.bind(this);\n var readBoolean = this.readBoolean.bind(this);\n var skipBits = this.skipBits.bind(this);\n var skipEG = this.skipEG.bind(this);\n var skipUEG = this.skipUEG.bind(this);\n var skipScalingList = this.skipScalingList.bind(this);\n readUByte();\n var profileIdc = readUByte(); // profile_idc\n\n readBits(5); // profileCompat constraint_set[0-4]_flag, u(5)\n\n skipBits(3); // reserved_zero_3bits u(3),\n\n readUByte(); // level_idc u(8)\n\n skipUEG(); // seq_parameter_set_id\n // some profiles have more optional data we don't need\n\n if (profileIdc === 100 || profileIdc === 110 || profileIdc === 122 || profileIdc === 244 || profileIdc === 44 || profileIdc === 83 || profileIdc === 86 || profileIdc === 118 || profileIdc === 128) {\n var chromaFormatIdc = readUEG();\n\n if (chromaFormatIdc === 3) {\n skipBits(1);\n } // separate_colour_plane_flag\n\n\n skipUEG(); // bit_depth_luma_minus8\n\n skipUEG(); // bit_depth_chroma_minus8\n\n skipBits(1); // qpprime_y_zero_transform_bypass_flag\n\n if (readBoolean()) {\n // seq_scaling_matrix_present_flag\n scalingListCount = chromaFormatIdc !== 3 ? 8 : 12;\n\n for (i = 0; i < scalingListCount; i++) {\n if (readBoolean()) {\n // seq_scaling_list_present_flag[ i ]\n if (i < 6) {\n skipScalingList(16);\n } else {\n skipScalingList(64);\n }\n }\n }\n }\n }\n\n skipUEG(); // log2_max_frame_num_minus4\n\n var picOrderCntType = readUEG();\n\n if (picOrderCntType === 0) {\n readUEG(); // log2_max_pic_order_cnt_lsb_minus4\n } else if (picOrderCntType === 1) {\n skipBits(1); // delta_pic_order_always_zero_flag\n\n skipEG(); // offset_for_non_ref_pic\n\n skipEG(); // offset_for_top_to_bottom_field\n\n numRefFramesInPicOrderCntCycle = readUEG();\n\n for (i = 0; i < numRefFramesInPicOrderCntCycle; i++) {\n skipEG();\n } // offset_for_ref_frame[ i ]\n\n }\n\n skipUEG(); // max_num_ref_frames\n\n skipBits(1); // gaps_in_frame_num_value_allowed_flag\n\n var picWidthInMbsMinus1 = readUEG();\n var picHeightInMapUnitsMinus1 = readUEG();\n var frameMbsOnlyFlag = readBits(1);\n\n if (frameMbsOnlyFlag === 0) {\n skipBits(1);\n } // mb_adaptive_frame_field_flag\n\n\n skipBits(1); // direct_8x8_inference_flag\n\n if (readBoolean()) {\n // frame_cropping_flag\n frameCropLeftOffset = readUEG();\n frameCropRightOffset = readUEG();\n frameCropTopOffset = readUEG();\n frameCropBottomOffset = readUEG();\n }\n\n var pixelRatio = [1, 1];\n\n if (readBoolean()) {\n // vui_parameters_present_flag\n if (readBoolean()) {\n // aspect_ratio_info_present_flag\n var aspectRatioIdc = readUByte();\n\n switch (aspectRatioIdc) {\n case 1:\n pixelRatio = [1, 1];\n break;\n\n case 2:\n pixelRatio = [12, 11];\n break;\n\n case 3:\n pixelRatio = [10, 11];\n break;\n\n case 4:\n pixelRatio = [16, 11];\n break;\n\n case 5:\n pixelRatio = [40, 33];\n break;\n\n case 6:\n pixelRatio = [24, 11];\n break;\n\n case 7:\n pixelRatio = [20, 11];\n break;\n\n case 8:\n pixelRatio = [32, 11];\n break;\n\n case 9:\n pixelRatio = [80, 33];\n break;\n\n case 10:\n pixelRatio = [18, 11];\n break;\n\n case 11:\n pixelRatio = [15, 11];\n break;\n\n case 12:\n pixelRatio = [64, 33];\n break;\n\n case 13:\n pixelRatio = [160, 99];\n break;\n\n case 14:\n pixelRatio = [4, 3];\n break;\n\n case 15:\n pixelRatio = [3, 2];\n break;\n\n case 16:\n pixelRatio = [2, 1];\n break;\n\n case 255:\n {\n pixelRatio = [readUByte() << 8 | readUByte(), readUByte() << 8 | readUByte()];\n break;\n }\n }\n }\n }\n\n return {\n width: Math.ceil((picWidthInMbsMinus1 + 1) * 16 - frameCropLeftOffset * 2 - frameCropRightOffset * 2),\n height: (2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16 - (frameMbsOnlyFlag ? 2 : 4) * (frameCropTopOffset + frameCropBottomOffset),\n pixelRatio: pixelRatio\n };\n };\n\n _proto.readSliceType = function readSliceType() {\n // skip NALu type\n this.readUByte(); // discard first_mb_in_slice\n\n this.readUEG(); // return slice_type\n\n return this.readUEG();\n };\n\n return ExpGolomb;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExpGolomb);\n\n/***/ }),\n\n/***/ \"./src/demux/id3.ts\":\n/*!**************************!*\\\n !*** ./src/demux/id3.ts ***!\n \\**************************/\n/*! exports provided: isHeader, isFooter, getID3Data, canParse, getTimeStamp, isTimeStampFrame, getID3Frames, decodeFrame, utf8ArrayToStr, testables */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHeader\", function() { return isHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFooter\", function() { return isFooter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getID3Data\", function() { return getID3Data; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canParse\", function() { return canParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTimeStamp\", function() { return getTimeStamp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTimeStampFrame\", function() { return isTimeStampFrame; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getID3Frames\", function() { return getID3Frames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decodeFrame\", function() { return decodeFrame; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utf8ArrayToStr\", function() { return utf8ArrayToStr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"testables\", function() { return testables; });\n// breaking up those two types in order to clarify what is happening in the decoding path.\n\n/**\n * Returns true if an ID3 header can be found at offset in data\n * @param {Uint8Array} data - The data to search in\n * @param {number} offset - The offset at which to start searching\n * @return {boolean} - True if an ID3 header is found\n */\nvar isHeader = function isHeader(data, offset) {\n /*\n * http://id3.org/id3v2.3.0\n * [0] = 'I'\n * [1] = 'D'\n * [2] = '3'\n * [3,4] = {Version}\n * [5] = {Flags}\n * [6-9] = {ID3 Size}\n *\n * An ID3v2 tag can be detected with the following pattern:\n * $49 44 33 yy yy xx zz zz zz zz\n * Where yy is less than $FF, xx is the 'flags' byte and zz is less than $80\n */\n if (offset + 10 <= data.length) {\n // look for 'ID3' identifier\n if (data[offset] === 0x49 && data[offset + 1] === 0x44 && data[offset + 2] === 0x33) {\n // check version is within range\n if (data[offset + 3] < 0xff && data[offset + 4] < 0xff) {\n // check size is within range\n if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n return true;\n }\n }\n }\n }\n\n return false;\n};\n/**\n * Returns true if an ID3 footer can be found at offset in data\n * @param {Uint8Array} data - The data to search in\n * @param {number} offset - The offset at which to start searching\n * @return {boolean} - True if an ID3 footer is found\n */\n\nvar isFooter = function isFooter(data, offset) {\n /*\n * The footer is a copy of the header, but with a different identifier\n */\n if (offset + 10 <= data.length) {\n // look for '3DI' identifier\n if (data[offset] === 0x33 && data[offset + 1] === 0x44 && data[offset + 2] === 0x49) {\n // check version is within range\n if (data[offset + 3] < 0xff && data[offset + 4] < 0xff) {\n // check size is within range\n if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n return true;\n }\n }\n }\n }\n\n return false;\n};\n/**\n * Returns any adjacent ID3 tags found in data starting at offset, as one block of data\n * @param {Uint8Array} data - The data to search in\n * @param {number} offset - The offset at which to start searching\n * @return {Uint8Array | undefined} - The block of data containing any ID3 tags found\n * or *undefined* if no header is found at the starting offset\n */\n\nvar getID3Data = function getID3Data(data, offset) {\n var front = offset;\n var length = 0;\n\n while (isHeader(data, offset)) {\n // ID3 header is 10 bytes\n length += 10;\n var size = readSize(data, offset + 6);\n length += size;\n\n if (isFooter(data, offset + 10)) {\n // ID3 footer is 10 bytes\n length += 10;\n }\n\n offset += length;\n }\n\n if (length > 0) {\n return data.subarray(front, front + length);\n }\n\n return undefined;\n};\n\nvar readSize = function readSize(data, offset) {\n var size = 0;\n size = (data[offset] & 0x7f) << 21;\n size |= (data[offset + 1] & 0x7f) << 14;\n size |= (data[offset + 2] & 0x7f) << 7;\n size |= data[offset + 3] & 0x7f;\n return size;\n};\n\nvar canParse = function canParse(data, offset) {\n return isHeader(data, offset) && readSize(data, offset + 6) + 10 <= data.length - offset;\n};\n/**\n * Searches for the Elementary Stream timestamp found in the ID3 data chunk\n * @param {Uint8Array} data - Block of data containing one or more ID3 tags\n * @return {number | undefined} - The timestamp\n */\n\nvar getTimeStamp = function getTimeStamp(data) {\n var frames = getID3Frames(data);\n\n for (var i = 0; i < frames.length; i++) {\n var frame = frames[i];\n\n if (isTimeStampFrame(frame)) {\n return readTimeStamp(frame);\n }\n }\n\n return undefined;\n};\n/**\n * Returns true if the ID3 frame is an Elementary Stream timestamp frame\n * @param {ID3 frame} frame\n */\n\nvar isTimeStampFrame = function isTimeStampFrame(frame) {\n return frame && frame.key === 'PRIV' && frame.info === 'com.apple.streaming.transportStreamTimestamp';\n};\n\nvar getFrameData = function getFrameData(data) {\n /*\n Frame ID $xx xx xx xx (four characters)\n Size $xx xx xx xx\n Flags $xx xx\n */\n var type = String.fromCharCode(data[0], data[1], data[2], data[3]);\n var size = readSize(data, 4); // skip frame id, size, and flags\n\n var offset = 10;\n return {\n type: type,\n size: size,\n data: data.subarray(offset, offset + size)\n };\n};\n/**\n * Returns an array of ID3 frames found in all the ID3 tags in the id3Data\n * @param {Uint8Array} id3Data - The ID3 data containing one or more ID3 tags\n * @return {ID3.Frame[]} - Array of ID3 frame objects\n */\n\n\nvar getID3Frames = function getID3Frames(id3Data) {\n var offset = 0;\n var frames = [];\n\n while (isHeader(id3Data, offset)) {\n var size = readSize(id3Data, offset + 6); // skip past ID3 header\n\n offset += 10;\n var end = offset + size; // loop through frames in the ID3 tag\n\n while (offset + 8 < end) {\n var frameData = getFrameData(id3Data.subarray(offset));\n var frame = decodeFrame(frameData);\n\n if (frame) {\n frames.push(frame);\n } // skip frame header and frame data\n\n\n offset += frameData.size + 10;\n }\n\n if (isFooter(id3Data, offset)) {\n offset += 10;\n }\n }\n\n return frames;\n};\nvar decodeFrame = function decodeFrame(frame) {\n if (frame.type === 'PRIV') {\n return decodePrivFrame(frame);\n } else if (frame.type[0] === 'W') {\n return decodeURLFrame(frame);\n }\n\n return decodeTextFrame(frame);\n};\n\nvar decodePrivFrame = function decodePrivFrame(frame) {\n /*\n Format: \\0\n */\n if (frame.size < 2) {\n return undefined;\n }\n\n var owner = utf8ArrayToStr(frame.data, true);\n var privateData = new Uint8Array(frame.data.subarray(owner.length + 1));\n return {\n key: frame.type,\n info: owner,\n data: privateData.buffer\n };\n};\n\nvar decodeTextFrame = function decodeTextFrame(frame) {\n if (frame.size < 2) {\n return undefined;\n }\n\n if (frame.type === 'TXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{Value}\n */\n var index = 1;\n var description = utf8ArrayToStr(frame.data.subarray(index), true);\n index += description.length + 1;\n var value = utf8ArrayToStr(frame.data.subarray(index));\n return {\n key: frame.type,\n info: description,\n data: value\n };\n }\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Value}\n */\n\n\n var text = utf8ArrayToStr(frame.data.subarray(1));\n return {\n key: frame.type,\n data: text\n };\n};\n\nvar decodeURLFrame = function decodeURLFrame(frame) {\n if (frame.type === 'WXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{URL}\n */\n if (frame.size < 2) {\n return undefined;\n }\n\n var index = 1;\n var description = utf8ArrayToStr(frame.data.subarray(index), true);\n index += description.length + 1;\n var value = utf8ArrayToStr(frame.data.subarray(index));\n return {\n key: frame.type,\n info: description,\n data: value\n };\n }\n /*\n Format:\n [0-?] = {URL}\n */\n\n\n var url = utf8ArrayToStr(frame.data);\n return {\n key: frame.type,\n data: url\n };\n};\n\nvar readTimeStamp = function readTimeStamp(timeStampFrame) {\n if (timeStampFrame.data.byteLength === 8) {\n var data = new Uint8Array(timeStampFrame.data); // timestamp is 33 bit expressed as a big-endian eight-octet number,\n // with the upper 31 bits set to zero.\n\n var pts33Bit = data[3] & 0x1;\n var timestamp = (data[4] << 23) + (data[5] << 15) + (data[6] << 7) + data[7];\n timestamp /= 45;\n\n if (pts33Bit) {\n timestamp += 47721858.84;\n } // 2^32 / 90\n\n\n return Math.round(timestamp);\n }\n\n return undefined;\n}; // http://stackoverflow.com/questions/8936984/uint8array-to-string-in-javascript/22373197\n// http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt\n\n/* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo \n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\n\n\nvar utf8ArrayToStr = function utf8ArrayToStr(array, exitOnNull) {\n if (exitOnNull === void 0) {\n exitOnNull = false;\n }\n\n var decoder = getTextDecoder();\n\n if (decoder) {\n var decoded = decoder.decode(array);\n\n if (exitOnNull) {\n // grab up to the first null\n var idx = decoded.indexOf('\\0');\n return idx !== -1 ? decoded.substring(0, idx) : decoded;\n } // remove any null characters\n\n\n return decoded.replace(/\\0/g, '');\n }\n\n var len = array.length;\n var c;\n var char2;\n var char3;\n var out = '';\n var i = 0;\n\n while (i < len) {\n c = array[i++];\n\n if (c === 0x00 && exitOnNull) {\n return out;\n } else if (c === 0x00 || c === 0x03) {\n // If the character is 3 (END_OF_TEXT) or 0 (NULL) then skip it\n continue;\n }\n\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++];\n out += String.fromCharCode((c & 0x1f) << 6 | char2 & 0x3f);\n break;\n\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++];\n char3 = array[i++];\n out += String.fromCharCode((c & 0x0f) << 12 | (char2 & 0x3f) << 6 | (char3 & 0x3f) << 0);\n break;\n\n default:\n }\n }\n\n return out;\n};\nvar testables = {\n decodeTextFrame: decodeTextFrame\n};\nvar decoder;\n\nfunction getTextDecoder() {\n if (!decoder && typeof self.TextDecoder !== 'undefined') {\n decoder = new self.TextDecoder('utf-8');\n }\n\n return decoder;\n}\n\n/***/ }),\n\n/***/ \"./src/demux/mp3demuxer.ts\":\n/*!*********************************!*\\\n !*** ./src/demux/mp3demuxer.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base_audio_demuxer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-audio-demuxer */ \"./src/demux/base-audio-demuxer.ts\");\n/* harmony import */ var _demux_id3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../demux/id3 */ \"./src/demux/id3.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _mpegaudio__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./mpegaudio */ \"./src/demux/mpegaudio.ts\");\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * MP3 demuxer\n */\n\n\n\n\n\nvar MP3Demuxer = /*#__PURE__*/function (_BaseAudioDemuxer) {\n _inheritsLoose(MP3Demuxer, _BaseAudioDemuxer);\n\n function MP3Demuxer() {\n return _BaseAudioDemuxer.apply(this, arguments) || this;\n }\n\n var _proto = MP3Demuxer.prototype;\n\n _proto.resetInitSegment = function resetInitSegment(audioCodec, videoCodec, duration) {\n _BaseAudioDemuxer.prototype.resetInitSegment.call(this, audioCodec, videoCodec, duration);\n\n this._audioTrack = {\n container: 'audio/mpeg',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n isAAC: false,\n samples: [],\n manifestCodec: audioCodec,\n duration: duration,\n inputTimeScale: 90000,\n dropped: 0\n };\n };\n\n MP3Demuxer.probe = function probe(data) {\n if (!data) {\n return false;\n } // check if data contains ID3 timestamp and MPEG sync word\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n\n\n var id3Data = _demux_id3__WEBPACK_IMPORTED_MODULE_1__[\"getID3Data\"](data, 0) || [];\n var offset = id3Data.length;\n\n for (var length = data.length; offset < length; offset++) {\n if (_mpegaudio__WEBPACK_IMPORTED_MODULE_3__[\"probe\"](data, offset)) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].log('MPEG Audio sync word found !');\n return true;\n }\n }\n\n return false;\n };\n\n _proto.canParse = function canParse(data, offset) {\n return _mpegaudio__WEBPACK_IMPORTED_MODULE_3__[\"canParse\"](data, offset);\n };\n\n _proto.appendFrame = function appendFrame(track, data, offset) {\n if (this.initPTS === null) {\n return;\n }\n\n return _mpegaudio__WEBPACK_IMPORTED_MODULE_3__[\"appendFrame\"](track, data, offset, this.initPTS, this.frameIndex);\n };\n\n return MP3Demuxer;\n}(_base_audio_demuxer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\nMP3Demuxer.minProbeByteLength = 4;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MP3Demuxer);\n\n/***/ }),\n\n/***/ \"./src/demux/mp4demuxer.ts\":\n/*!*********************************!*\\\n !*** ./src/demux/mp4demuxer.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dummy-demuxed-track */ \"./src/demux/dummy-demuxed-track.ts\");\n/**\n * MP4 demuxer\n */\n\n\n\nvar MP4Demuxer = /*#__PURE__*/function () {\n function MP4Demuxer(observer, config) {\n this.remainderData = null;\n this.config = void 0;\n this.config = config;\n }\n\n var _proto = MP4Demuxer.prototype;\n\n _proto.resetTimeStamp = function resetTimeStamp() {};\n\n _proto.resetInitSegment = function resetInitSegment() {};\n\n _proto.resetContiguity = function resetContiguity() {};\n\n MP4Demuxer.probe = function probe(data) {\n // ensure we find a moof box in the first 16 kB\n return Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_0__[\"findBox\"])({\n data: data,\n start: 0,\n end: Math.min(data.length, 16384)\n }, ['moof']).length > 0;\n };\n\n _proto.demux = function demux(data) {\n // Load all data into the avc track. The CMAF remuxer will look for the data in the samples object; the rest of the fields do not matter\n var avcSamples = data;\n var avcTrack = Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])();\n\n if (this.config.progressive) {\n // Split the bytestream into two ranges: one encompassing all data up until the start of the last moof, and everything else.\n // This is done to guarantee that we're sending valid data to MSE - when demuxing progressively, we have no guarantee\n // that the fetch loader gives us flush moof+mdat pairs. If we push jagged data to MSE, it will throw an exception.\n if (this.remainderData) {\n avcSamples = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_0__[\"appendUint8Array\"])(this.remainderData, data);\n }\n\n var segmentedData = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_0__[\"segmentValidRange\"])(avcSamples);\n this.remainderData = segmentedData.remainder;\n avcTrack.samples = segmentedData.valid || new Uint8Array();\n } else {\n avcTrack.samples = avcSamples;\n }\n\n return {\n audioTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])(),\n avcTrack: avcTrack,\n id3Track: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])(),\n textTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])()\n };\n };\n\n _proto.flush = function flush() {\n var avcTrack = Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])();\n avcTrack.samples = this.remainderData || new Uint8Array();\n this.remainderData = null;\n return {\n audioTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])(),\n avcTrack: avcTrack,\n id3Track: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])(),\n textTrack: Object(_dummy_demuxed_track__WEBPACK_IMPORTED_MODULE_1__[\"dummyTrack\"])()\n };\n };\n\n _proto.demuxSampleAes = function demuxSampleAes(data, keyData, timeOffset) {\n return Promise.reject(new Error('The MP4 demuxer does not support SAMPLE-AES decryption'));\n };\n\n _proto.destroy = function destroy() {};\n\n return MP4Demuxer;\n}();\n\nMP4Demuxer.minProbeByteLength = 1024;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MP4Demuxer);\n\n/***/ }),\n\n/***/ \"./src/demux/mpegaudio.ts\":\n/*!********************************!*\\\n !*** ./src/demux/mpegaudio.ts ***!\n \\********************************/\n/*! exports provided: appendFrame, parseHeader, isHeaderPattern, isHeader, canParse, probe */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"appendFrame\", function() { return appendFrame; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseHeader\", function() { return parseHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHeaderPattern\", function() { return isHeaderPattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHeader\", function() { return isHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canParse\", function() { return canParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"probe\", function() { return probe; });\n/**\n * MPEG parser helper\n */\nvar chromeVersion = null;\nvar BitratesMap = [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160];\nvar SamplingRateMap = [44100, 48000, 32000, 22050, 24000, 16000, 11025, 12000, 8000];\nvar SamplesCoefficients = [// MPEG 2.5\n[0, // Reserved\n72, // Layer3\n144, // Layer2\n12 // Layer1\n], // Reserved\n[0, // Reserved\n0, // Layer3\n0, // Layer2\n0 // Layer1\n], // MPEG 2\n[0, // Reserved\n72, // Layer3\n144, // Layer2\n12 // Layer1\n], // MPEG 1\n[0, // Reserved\n144, // Layer3\n144, // Layer2\n12 // Layer1\n]];\nvar BytesInSlot = [0, // Reserved\n1, // Layer3\n1, // Layer2\n4 // Layer1\n];\nfunction appendFrame(track, data, offset, pts, frameIndex) {\n // Using http://www.datavoyage.com/mpgscript/mpeghdr.htm as a reference\n if (offset + 24 > data.length) {\n return;\n }\n\n var header = parseHeader(data, offset);\n\n if (header && offset + header.frameLength <= data.length) {\n var frameDuration = header.samplesPerFrame * 90000 / header.sampleRate;\n var stamp = pts + frameIndex * frameDuration;\n var sample = {\n unit: data.subarray(offset, offset + header.frameLength),\n pts: stamp,\n dts: stamp\n };\n track.config = [];\n track.channelCount = header.channelCount;\n track.samplerate = header.sampleRate;\n track.samples.push(sample);\n return {\n sample: sample,\n length: header.frameLength,\n missing: 0\n };\n }\n}\nfunction parseHeader(data, offset) {\n var mpegVersion = data[offset + 1] >> 3 & 3;\n var mpegLayer = data[offset + 1] >> 1 & 3;\n var bitRateIndex = data[offset + 2] >> 4 & 15;\n var sampleRateIndex = data[offset + 2] >> 2 & 3;\n\n if (mpegVersion !== 1 && bitRateIndex !== 0 && bitRateIndex !== 15 && sampleRateIndex !== 3) {\n var paddingBit = data[offset + 2] >> 1 & 1;\n var channelMode = data[offset + 3] >> 6;\n var columnInBitrates = mpegVersion === 3 ? 3 - mpegLayer : mpegLayer === 3 ? 3 : 4;\n var bitRate = BitratesMap[columnInBitrates * 14 + bitRateIndex - 1] * 1000;\n var columnInSampleRates = mpegVersion === 3 ? 0 : mpegVersion === 2 ? 1 : 2;\n var sampleRate = SamplingRateMap[columnInSampleRates * 3 + sampleRateIndex];\n var channelCount = channelMode === 3 ? 1 : 2; // If bits of channel mode are `11` then it is a single channel (Mono)\n\n var sampleCoefficient = SamplesCoefficients[mpegVersion][mpegLayer];\n var bytesInSlot = BytesInSlot[mpegLayer];\n var samplesPerFrame = sampleCoefficient * 8 * bytesInSlot;\n var frameLength = Math.floor(sampleCoefficient * bitRate / sampleRate + paddingBit) * bytesInSlot;\n\n if (chromeVersion === null) {\n var userAgent = navigator.userAgent || '';\n var result = userAgent.match(/Chrome\\/(\\d+)/i);\n chromeVersion = result ? parseInt(result[1]) : 0;\n }\n\n var needChromeFix = !!chromeVersion && chromeVersion <= 87;\n\n if (needChromeFix && mpegLayer === 2 && bitRate >= 224000 && channelMode === 0) {\n // Work around bug in Chromium by setting channelMode to dual-channel (01) instead of stereo (00)\n data[offset + 3] = data[offset + 3] | 0x80;\n }\n\n return {\n sampleRate: sampleRate,\n channelCount: channelCount,\n frameLength: frameLength,\n samplesPerFrame: samplesPerFrame\n };\n }\n}\nfunction isHeaderPattern(data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xe0) === 0xe0 && (data[offset + 1] & 0x06) !== 0x00;\n}\nfunction isHeader(data, offset) {\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n return offset + 1 < data.length && isHeaderPattern(data, offset);\n}\nfunction canParse(data, offset) {\n var headerSize = 4;\n return isHeaderPattern(data, offset) && headerSize <= data.length - offset;\n}\nfunction probe(data, offset) {\n // same as isHeader but we also check that MPEG frame follows last MPEG frame\n // or end of data is reached\n if (offset + 1 < data.length && isHeaderPattern(data, offset)) {\n // MPEG header Length\n var headerLength = 4; // MPEG frame Length\n\n var header = parseHeader(data, offset);\n var frameLength = headerLength;\n\n if (header !== null && header !== void 0 && header.frameLength) {\n frameLength = header.frameLength;\n }\n\n var newOffset = offset + frameLength;\n return newOffset === data.length || isHeader(data, newOffset);\n }\n\n return false;\n}\n\n/***/ }),\n\n/***/ \"./src/demux/sample-aes.ts\":\n/*!*********************************!*\\\n !*** ./src/demux/sample-aes.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _crypt_decrypter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../crypt/decrypter */ \"./src/crypt/decrypter.ts\");\n/* harmony import */ var _tsdemuxer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tsdemuxer */ \"./src/demux/tsdemuxer.ts\");\n/**\n * SAMPLE-AES decrypter\n */\n\n\n\nvar SampleAesDecrypter = /*#__PURE__*/function () {\n function SampleAesDecrypter(observer, config, keyData) {\n this.keyData = void 0;\n this.decrypter = void 0;\n this.keyData = keyData;\n this.decrypter = new _crypt_decrypter__WEBPACK_IMPORTED_MODULE_0__[\"default\"](observer, config, {\n removePKCS7Padding: false\n });\n }\n\n var _proto = SampleAesDecrypter.prototype;\n\n _proto.decryptBuffer = function decryptBuffer(encryptedData, callback) {\n this.decrypter.decrypt(encryptedData, this.keyData.key.buffer, this.keyData.iv.buffer, callback);\n } // AAC - encrypt all full 16 bytes blocks starting from offset 16\n ;\n\n _proto.decryptAacSample = function decryptAacSample(samples, sampleIndex, callback, sync) {\n var curUnit = samples[sampleIndex].unit;\n var encryptedData = curUnit.subarray(16, curUnit.length - curUnit.length % 16);\n var encryptedBuffer = encryptedData.buffer.slice(encryptedData.byteOffset, encryptedData.byteOffset + encryptedData.length);\n var localthis = this;\n this.decryptBuffer(encryptedBuffer, function (decryptedBuffer) {\n var decryptedData = new Uint8Array(decryptedBuffer);\n curUnit.set(decryptedData, 16);\n\n if (!sync) {\n localthis.decryptAacSamples(samples, sampleIndex + 1, callback);\n }\n });\n };\n\n _proto.decryptAacSamples = function decryptAacSamples(samples, sampleIndex, callback) {\n for (;; sampleIndex++) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n\n if (samples[sampleIndex].unit.length < 32) {\n continue;\n }\n\n var sync = this.decrypter.isSync();\n this.decryptAacSample(samples, sampleIndex, callback, sync);\n\n if (!sync) {\n return;\n }\n }\n } // AVC - encrypt one 16 bytes block out of ten, starting from offset 32\n ;\n\n _proto.getAvcEncryptedData = function getAvcEncryptedData(decodedData) {\n var encryptedDataLen = Math.floor((decodedData.length - 48) / 160) * 16 + 16;\n var encryptedData = new Int8Array(encryptedDataLen);\n var outputPos = 0;\n\n for (var inputPos = 32; inputPos < decodedData.length - 16; inputPos += 160, outputPos += 16) {\n encryptedData.set(decodedData.subarray(inputPos, inputPos + 16), outputPos);\n }\n\n return encryptedData;\n };\n\n _proto.getAvcDecryptedUnit = function getAvcDecryptedUnit(decodedData, decryptedData) {\n var uint8DecryptedData = new Uint8Array(decryptedData);\n var inputPos = 0;\n\n for (var outputPos = 32; outputPos < decodedData.length - 16; outputPos += 160, inputPos += 16) {\n decodedData.set(uint8DecryptedData.subarray(inputPos, inputPos + 16), outputPos);\n }\n\n return decodedData;\n };\n\n _proto.decryptAvcSample = function decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit, sync) {\n var decodedData = Object(_tsdemuxer__WEBPACK_IMPORTED_MODULE_1__[\"discardEPB\"])(curUnit.data);\n var encryptedData = this.getAvcEncryptedData(decodedData);\n var localthis = this;\n this.decryptBuffer(encryptedData.buffer, function (decryptedBuffer) {\n curUnit.data = localthis.getAvcDecryptedUnit(decodedData, decryptedBuffer);\n\n if (!sync) {\n localthis.decryptAvcSamples(samples, sampleIndex, unitIndex + 1, callback);\n }\n });\n };\n\n _proto.decryptAvcSamples = function decryptAvcSamples(samples, sampleIndex, unitIndex, callback) {\n if (samples instanceof Uint8Array) {\n throw new Error('Cannot decrypt samples of type Uint8Array');\n }\n\n for (;; sampleIndex++, unitIndex = 0) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n\n var curUnits = samples[sampleIndex].units;\n\n for (;; unitIndex++) {\n if (unitIndex >= curUnits.length) {\n break;\n }\n\n var curUnit = curUnits[unitIndex];\n\n if (curUnit.data.length <= 48 || curUnit.type !== 1 && curUnit.type !== 5) {\n continue;\n }\n\n var sync = this.decrypter.isSync();\n this.decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit, sync);\n\n if (!sync) {\n return;\n }\n }\n }\n };\n\n return SampleAesDecrypter;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (SampleAesDecrypter);\n\n/***/ }),\n\n/***/ \"./src/demux/transmuxer-interface.ts\":\n/*!*******************************************!*\\\n !*** ./src/demux/transmuxer-interface.ts ***!\n \\*******************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TransmuxerInterface; });\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! webworkify-webpack */ \"./node_modules/webworkify-webpack/index.js\");\n/* harmony import */ var webworkify_webpack__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(webworkify_webpack__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../demux/transmuxer */ \"./src/demux/transmuxer.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/mediasource-helper */ \"./src/utils/mediasource-helper.ts\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! eventemitter3 */ \"./node_modules/eventemitter3/index.js\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_6__);\n\n\n\n\n\n\n\nvar MediaSource = Object(_utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_5__[\"getMediaSource\"])() || {\n isTypeSupported: function isTypeSupported() {\n return false;\n }\n};\n\nvar TransmuxerInterface = /*#__PURE__*/function () {\n function TransmuxerInterface(hls, id, onTransmuxComplete, onFlush) {\n var _this = this;\n\n this.hls = void 0;\n this.id = void 0;\n this.observer = void 0;\n this.frag = null;\n this.part = null;\n this.worker = void 0;\n this.onwmsg = void 0;\n this.transmuxer = null;\n this.onTransmuxComplete = void 0;\n this.onFlush = void 0;\n this.hls = hls;\n this.id = id;\n this.onTransmuxComplete = onTransmuxComplete;\n this.onFlush = onFlush;\n var config = hls.config;\n\n var forwardMessage = function forwardMessage(ev, data) {\n data = data || {};\n data.frag = _this.frag;\n data.id = _this.id;\n hls.trigger(ev, data);\n }; // forward events to main thread\n\n\n this.observer = new eventemitter3__WEBPACK_IMPORTED_MODULE_6__[\"EventEmitter\"]();\n this.observer.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_DECRYPTED, forwardMessage);\n this.observer.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, forwardMessage);\n var typeSupported = {\n mp4: MediaSource.isTypeSupported('video/mp4'),\n mpeg: MediaSource.isTypeSupported('audio/mpeg'),\n mp3: MediaSource.isTypeSupported('audio/mp4; codecs=\"mp3\"')\n }; // navigator.vendor is not always available in Web Worker\n // refer to https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/navigator\n\n var vendor = navigator.vendor;\n\n if (config.enableWorker && typeof Worker !== 'undefined') {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].log('demuxing in webworker');\n var worker;\n\n try {\n worker = this.worker = webworkify_webpack__WEBPACK_IMPORTED_MODULE_0__(/*require.resolve*/(/*! ../demux/transmuxer-worker.ts */ \"./src/demux/transmuxer-worker.ts\"));\n this.onwmsg = this.onWorkerMessage.bind(this);\n worker.addEventListener('message', this.onwmsg);\n\n worker.onerror = function (event) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorTypes\"].OTHER_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorDetails\"].INTERNAL_EXCEPTION,\n fatal: true,\n event: 'demuxerWorker',\n error: new Error(event.message + \" (\" + event.filename + \":\" + event.lineno + \")\")\n });\n };\n\n worker.postMessage({\n cmd: 'init',\n typeSupported: typeSupported,\n vendor: vendor,\n id: id,\n config: JSON.stringify(config)\n });\n } catch (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('Error in worker:', err);\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].error('Error while initializing DemuxerWorker, fallback to inline');\n\n if (worker) {\n // revoke the Object URL that was used to create transmuxer worker, so as not to leak it\n self.URL.revokeObjectURL(worker.objectURL);\n }\n\n this.transmuxer = new _demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.observer, typeSupported, config, vendor, id);\n this.worker = null;\n }\n } else {\n this.transmuxer = new _demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.observer, typeSupported, config, vendor, id);\n }\n }\n\n var _proto = TransmuxerInterface.prototype;\n\n _proto.destroy = function destroy() {\n var w = this.worker;\n\n if (w) {\n w.removeEventListener('message', this.onwmsg);\n w.terminate();\n this.worker = null;\n } else {\n var transmuxer = this.transmuxer;\n\n if (transmuxer) {\n transmuxer.destroy();\n this.transmuxer = null;\n }\n }\n\n var observer = this.observer;\n\n if (observer) {\n observer.removeAllListeners();\n } // @ts-ignore\n\n\n this.observer = null;\n };\n\n _proto.push = function push(data, initSegmentData, audioCodec, videoCodec, frag, part, duration, accurateTimeOffset, chunkMeta, defaultInitPTS) {\n var _frag$initSegment,\n _lastFrag$initSegment,\n _this2 = this;\n\n chunkMeta.transmuxing.start = self.performance.now();\n var transmuxer = this.transmuxer,\n worker = this.worker;\n var timeOffset = part ? part.start : frag.start;\n var decryptdata = frag.decryptdata;\n var lastFrag = this.frag;\n var discontinuity = !(lastFrag && frag.cc === lastFrag.cc);\n var trackSwitch = !(lastFrag && chunkMeta.level === lastFrag.level);\n var snDiff = lastFrag ? chunkMeta.sn - lastFrag.sn : -1;\n var partDiff = this.part ? chunkMeta.part - this.part.index : 1;\n var contiguous = !trackSwitch && (snDiff === 1 || snDiff === 0 && partDiff === 1);\n var now = self.performance.now();\n\n if (trackSwitch || snDiff || frag.stats.parsing.start === 0) {\n frag.stats.parsing.start = now;\n }\n\n if (part && (partDiff || !contiguous)) {\n part.stats.parsing.start = now;\n }\n\n var initSegmentChange = !(lastFrag && ((_frag$initSegment = frag.initSegment) === null || _frag$initSegment === void 0 ? void 0 : _frag$initSegment.url) === ((_lastFrag$initSegment = lastFrag.initSegment) === null || _lastFrag$initSegment === void 0 ? void 0 : _lastFrag$initSegment.url));\n var state = new _demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__[\"TransmuxState\"](discontinuity, contiguous, accurateTimeOffset, trackSwitch, timeOffset, initSegmentChange);\n\n if (!contiguous || discontinuity || initSegmentChange) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].log(\"[transmuxer-interface, \" + frag.type + \"]: Starting new transmux session for sn: \" + chunkMeta.sn + \" p: \" + chunkMeta.part + \" level: \" + chunkMeta.level + \" id: \" + chunkMeta.id + \"\\n discontinuity: \" + discontinuity + \"\\n trackSwitch: \" + trackSwitch + \"\\n contiguous: \" + contiguous + \"\\n accurateTimeOffset: \" + accurateTimeOffset + \"\\n timeOffset: \" + timeOffset + \"\\n initSegmentChange: \" + initSegmentChange);\n var config = new _demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__[\"TransmuxConfig\"](audioCodec, videoCodec, initSegmentData, duration, defaultInitPTS);\n this.configureTransmuxer(config);\n }\n\n this.frag = frag;\n this.part = part; // Frags with sn of 'initSegment' are not transmuxed\n\n if (worker) {\n // post fragment payload as transferable objects for ArrayBuffer (no copy)\n worker.postMessage({\n cmd: 'demux',\n data: data,\n decryptdata: decryptdata,\n chunkMeta: chunkMeta,\n state: state\n }, data instanceof ArrayBuffer ? [data] : []);\n } else if (transmuxer) {\n var _transmuxResult = transmuxer.push(data, decryptdata, chunkMeta, state);\n\n if (Object(_demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__[\"isPromise\"])(_transmuxResult)) {\n _transmuxResult.then(function (data) {\n _this2.handleTransmuxComplete(data);\n });\n } else {\n this.handleTransmuxComplete(_transmuxResult);\n }\n }\n };\n\n _proto.flush = function flush(chunkMeta) {\n var _this3 = this;\n\n chunkMeta.transmuxing.start = self.performance.now();\n var transmuxer = this.transmuxer,\n worker = this.worker;\n\n if (worker) {\n worker.postMessage({\n cmd: 'flush',\n chunkMeta: chunkMeta\n });\n } else if (transmuxer) {\n var _transmuxResult2 = transmuxer.flush(chunkMeta);\n\n if (Object(_demux_transmuxer__WEBPACK_IMPORTED_MODULE_2__[\"isPromise\"])(_transmuxResult2)) {\n _transmuxResult2.then(function (data) {\n _this3.handleFlushResult(data, chunkMeta);\n });\n } else {\n this.handleFlushResult(_transmuxResult2, chunkMeta);\n }\n }\n };\n\n _proto.handleFlushResult = function handleFlushResult(results, chunkMeta) {\n var _this4 = this;\n\n results.forEach(function (result) {\n _this4.handleTransmuxComplete(result);\n });\n this.onFlush(chunkMeta);\n };\n\n _proto.onWorkerMessage = function onWorkerMessage(ev) {\n var data = ev.data;\n var hls = this.hls;\n\n switch (data.event) {\n case 'init':\n {\n // revoke the Object URL that was used to create transmuxer worker, so as not to leak it\n self.URL.revokeObjectURL(this.worker.objectURL);\n break;\n }\n\n case 'transmuxComplete':\n {\n this.handleTransmuxComplete(data.data);\n break;\n }\n\n case 'flush':\n {\n this.onFlush(data.data);\n break;\n }\n\n /* falls through */\n\n default:\n {\n data.data = data.data || {};\n data.data.frag = this.frag;\n data.data.id = this.id;\n hls.trigger(data.event, data.data);\n break;\n }\n }\n };\n\n _proto.configureTransmuxer = function configureTransmuxer(config) {\n var worker = this.worker,\n transmuxer = this.transmuxer;\n\n if (worker) {\n worker.postMessage({\n cmd: 'configure',\n config: config\n });\n } else if (transmuxer) {\n transmuxer.configure(config);\n }\n };\n\n _proto.handleTransmuxComplete = function handleTransmuxComplete(result) {\n result.chunkMeta.transmuxing.end = self.performance.now();\n this.onTransmuxComplete(result);\n };\n\n return TransmuxerInterface;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/demux/transmuxer-worker.ts\":\n/*!****************************************!*\\\n !*** ./src/demux/transmuxer-worker.ts ***!\n \\****************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TransmuxerWorker; });\n/* harmony import */ var _demux_transmuxer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../demux/transmuxer */ \"./src/demux/transmuxer.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! eventemitter3 */ \"./node_modules/eventemitter3/index.js\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nfunction TransmuxerWorker(self) {\n var observer = new eventemitter3__WEBPACK_IMPORTED_MODULE_3__[\"EventEmitter\"]();\n\n var forwardMessage = function forwardMessage(ev, data) {\n self.postMessage({\n event: ev,\n data: data\n });\n }; // forward events to main thread\n\n\n observer.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].FRAG_DECRYPTED, forwardMessage);\n observer.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, forwardMessage);\n self.addEventListener('message', function (ev) {\n var data = ev.data;\n\n switch (data.cmd) {\n case 'init':\n {\n var config = JSON.parse(data.config);\n self.transmuxer = new _demux_transmuxer__WEBPACK_IMPORTED_MODULE_0__[\"default\"](observer, data.typeSupported, config, data.vendor, data.id);\n Object(_utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"enableLogs\"])(config.debug);\n forwardMessage('init', null);\n break;\n }\n\n case 'configure':\n {\n self.transmuxer.configure(data.config);\n break;\n }\n\n case 'demux':\n {\n var transmuxResult = self.transmuxer.push(data.data, data.decryptdata, data.chunkMeta, data.state);\n\n if (Object(_demux_transmuxer__WEBPACK_IMPORTED_MODULE_0__[\"isPromise\"])(transmuxResult)) {\n transmuxResult.then(function (data) {\n emitTransmuxComplete(self, data);\n });\n } else {\n emitTransmuxComplete(self, transmuxResult);\n }\n\n break;\n }\n\n case 'flush':\n {\n var id = data.chunkMeta;\n\n var _transmuxResult = self.transmuxer.flush(id);\n\n if (Object(_demux_transmuxer__WEBPACK_IMPORTED_MODULE_0__[\"isPromise\"])(_transmuxResult)) {\n _transmuxResult.then(function (results) {\n handleFlushResult(self, results, id);\n });\n } else {\n handleFlushResult(self, _transmuxResult, id);\n }\n\n break;\n }\n\n default:\n break;\n }\n });\n}\n\nfunction emitTransmuxComplete(self, transmuxResult) {\n if (isEmptyResult(transmuxResult.remuxResult)) {\n return;\n }\n\n var transferable = [];\n var _transmuxResult$remux = transmuxResult.remuxResult,\n audio = _transmuxResult$remux.audio,\n video = _transmuxResult$remux.video;\n\n if (audio) {\n addToTransferable(transferable, audio);\n }\n\n if (video) {\n addToTransferable(transferable, video);\n }\n\n self.postMessage({\n event: 'transmuxComplete',\n data: transmuxResult\n }, transferable);\n} // Converts data to a transferable object https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast)\n// in order to minimize message passing overhead\n\n\nfunction addToTransferable(transferable, track) {\n if (track.data1) {\n transferable.push(track.data1.buffer);\n }\n\n if (track.data2) {\n transferable.push(track.data2.buffer);\n }\n}\n\nfunction handleFlushResult(self, results, chunkMeta) {\n results.forEach(function (result) {\n emitTransmuxComplete(self, result);\n });\n self.postMessage({\n event: 'flush',\n data: chunkMeta\n });\n}\n\nfunction isEmptyResult(remuxResult) {\n return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;\n}\n\n/***/ }),\n\n/***/ \"./src/demux/transmuxer.ts\":\n/*!*********************************!*\\\n !*** ./src/demux/transmuxer.ts ***!\n \\*********************************/\n/*! exports provided: default, isPromise, TransmuxConfig, TransmuxState */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Transmuxer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPromise\", function() { return isPromise; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TransmuxConfig\", function() { return TransmuxConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TransmuxState\", function() { return TransmuxState; });\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _crypt_decrypter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../crypt/decrypter */ \"./src/crypt/decrypter.ts\");\n/* harmony import */ var _demux_aacdemuxer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../demux/aacdemuxer */ \"./src/demux/aacdemuxer.ts\");\n/* harmony import */ var _demux_mp4demuxer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../demux/mp4demuxer */ \"./src/demux/mp4demuxer.ts\");\n/* harmony import */ var _demux_tsdemuxer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../demux/tsdemuxer */ \"./src/demux/tsdemuxer.ts\");\n/* harmony import */ var _demux_mp3demuxer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../demux/mp3demuxer */ \"./src/demux/mp3demuxer.ts\");\n/* harmony import */ var _remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../remux/mp4-remuxer */ \"./src/remux/mp4-remuxer.ts\");\n/* harmony import */ var _remux_passthrough_remuxer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../remux/passthrough-remuxer */ \"./src/remux/passthrough-remuxer.ts\");\n/* harmony import */ var _chunk_cache__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./chunk-cache */ \"./src/demux/chunk-cache.ts\");\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar now; // performance.now() not available on WebWorker, at least on Safari Desktop\n\ntry {\n now = self.performance.now.bind(self.performance);\n} catch (err) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_11__[\"logger\"].debug('Unable to use Performance API on this environment');\n now = self.Date.now;\n}\n\nvar muxConfig = [{\n demux: _demux_tsdemuxer__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n remux: _remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n}, {\n demux: _demux_mp4demuxer__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n remux: _remux_passthrough_remuxer__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n}, {\n demux: _demux_aacdemuxer__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n remux: _remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n}, {\n demux: _demux_mp3demuxer__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n remux: _remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n}];\nvar minProbeByteLength = 1024;\nmuxConfig.forEach(function (_ref) {\n var demux = _ref.demux;\n minProbeByteLength = Math.max(minProbeByteLength, demux.minProbeByteLength);\n});\n\nvar Transmuxer = /*#__PURE__*/function () {\n function Transmuxer(observer, typeSupported, config, vendor, id) {\n this.observer = void 0;\n this.typeSupported = void 0;\n this.config = void 0;\n this.vendor = void 0;\n this.id = void 0;\n this.demuxer = void 0;\n this.remuxer = void 0;\n this.decrypter = void 0;\n this.probe = void 0;\n this.decryptionPromise = null;\n this.transmuxConfig = void 0;\n this.currentTransmuxState = void 0;\n this.cache = new _chunk_cache__WEBPACK_IMPORTED_MODULE_9__[\"default\"]();\n this.observer = observer;\n this.typeSupported = typeSupported;\n this.config = config;\n this.vendor = vendor;\n this.id = id;\n }\n\n var _proto = Transmuxer.prototype;\n\n _proto.configure = function configure(transmuxConfig) {\n this.transmuxConfig = transmuxConfig;\n\n if (this.decrypter) {\n this.decrypter.reset();\n }\n };\n\n _proto.push = function push(data, decryptdata, chunkMeta, state) {\n var _this = this;\n\n var stats = chunkMeta.transmuxing;\n stats.executeStart = now();\n var uintData = new Uint8Array(data);\n var cache = this.cache,\n config = this.config,\n currentTransmuxState = this.currentTransmuxState,\n transmuxConfig = this.transmuxConfig;\n\n if (state) {\n this.currentTransmuxState = state;\n }\n\n var keyData = getEncryptionType(uintData, decryptdata);\n\n if (keyData && keyData.method === 'AES-128') {\n var decrypter = this.getDecrypter(); // Software decryption is synchronous; webCrypto is not\n\n if (config.enableSoftwareAES) {\n // Software decryption is progressive. Progressive decryption may not return a result on each call. Any cached\n // data is handled in the flush() call\n var decryptedData = decrypter.softwareDecrypt(uintData, keyData.key.buffer, keyData.iv.buffer);\n\n if (!decryptedData) {\n stats.executeEnd = now();\n return emptyResult(chunkMeta);\n }\n\n uintData = new Uint8Array(decryptedData);\n } else {\n this.decryptionPromise = decrypter.webCryptoDecrypt(uintData, keyData.key.buffer, keyData.iv.buffer).then(function (decryptedData) {\n // Calling push here is important; if flush() is called while this is still resolving, this ensures that\n // the decrypted data has been transmuxed\n var result = _this.push(decryptedData, null, chunkMeta);\n\n _this.decryptionPromise = null;\n return result;\n });\n return this.decryptionPromise;\n }\n }\n\n var _ref2 = state || currentTransmuxState,\n contiguous = _ref2.contiguous,\n discontinuity = _ref2.discontinuity,\n trackSwitch = _ref2.trackSwitch,\n accurateTimeOffset = _ref2.accurateTimeOffset,\n timeOffset = _ref2.timeOffset,\n initSegmentChange = _ref2.initSegmentChange;\n\n var audioCodec = transmuxConfig.audioCodec,\n videoCodec = transmuxConfig.videoCodec,\n defaultInitPts = transmuxConfig.defaultInitPts,\n duration = transmuxConfig.duration,\n initSegmentData = transmuxConfig.initSegmentData; // Reset muxers before probing to ensure that their state is clean, even if flushing occurs before a successful probe\n\n if (discontinuity || trackSwitch || initSegmentChange) {\n this.resetInitSegment(initSegmentData, audioCodec, videoCodec, duration);\n }\n\n if (discontinuity || initSegmentChange) {\n this.resetInitialTimestamp(defaultInitPts);\n }\n\n if (!contiguous) {\n this.resetContiguity();\n }\n\n if (this.needsProbing(uintData, discontinuity, trackSwitch)) {\n if (cache.dataLength) {\n var cachedData = cache.flush();\n uintData = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_10__[\"appendUint8Array\"])(cachedData, uintData);\n }\n\n this.configureTransmuxer(uintData, transmuxConfig);\n }\n\n var result = this.transmux(uintData, keyData, timeOffset, accurateTimeOffset, chunkMeta);\n var currentState = this.currentTransmuxState;\n currentState.contiguous = true;\n currentState.discontinuity = false;\n currentState.trackSwitch = false;\n stats.executeEnd = now();\n return result;\n } // Due to data caching, flush calls can produce more than one TransmuxerResult (hence the Array type)\n ;\n\n _proto.flush = function flush(chunkMeta) {\n var _this2 = this;\n\n var stats = chunkMeta.transmuxing;\n stats.executeStart = now();\n var decrypter = this.decrypter,\n cache = this.cache,\n currentTransmuxState = this.currentTransmuxState,\n decryptionPromise = this.decryptionPromise;\n\n if (decryptionPromise) {\n // Upon resolution, the decryption promise calls push() and returns its TransmuxerResult up the stack. Therefore\n // only flushing is required for async decryption\n return decryptionPromise.then(function () {\n return _this2.flush(chunkMeta);\n });\n }\n\n var transmuxResults = [];\n var timeOffset = currentTransmuxState.timeOffset;\n\n if (decrypter) {\n // The decrypter may have data cached, which needs to be demuxed. In this case we'll have two TransmuxResults\n // This happens in the case that we receive only 1 push call for a segment (either for non-progressive downloads,\n // or for progressive downloads with small segments)\n var decryptedData = decrypter.flush();\n\n if (decryptedData) {\n // Push always returns a TransmuxerResult if decryptdata is null\n transmuxResults.push(this.push(decryptedData, null, chunkMeta));\n }\n }\n\n var bytesSeen = cache.dataLength;\n cache.reset();\n var demuxer = this.demuxer,\n remuxer = this.remuxer;\n\n if (!demuxer || !remuxer) {\n // If probing failed, and each demuxer saw enough bytes to be able to probe, then Hls.js has been given content its not able to handle\n if (bytesSeen >= minProbeByteLength) {\n this.observer.emit(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, _events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].FRAG_PARSING_ERROR,\n fatal: true,\n reason: 'no demux matching with content found'\n });\n }\n\n stats.executeEnd = now();\n return [emptyResult(chunkMeta)];\n }\n\n var demuxResultOrPromise = demuxer.flush(timeOffset);\n\n if (isPromise(demuxResultOrPromise)) {\n // Decrypt final SAMPLE-AES samples\n return demuxResultOrPromise.then(function (demuxResult) {\n _this2.flushRemux(transmuxResults, demuxResult, chunkMeta);\n\n return transmuxResults;\n });\n }\n\n this.flushRemux(transmuxResults, demuxResultOrPromise, chunkMeta);\n return transmuxResults;\n };\n\n _proto.flushRemux = function flushRemux(transmuxResults, demuxResult, chunkMeta) {\n var audioTrack = demuxResult.audioTrack,\n avcTrack = demuxResult.avcTrack,\n id3Track = demuxResult.id3Track,\n textTrack = demuxResult.textTrack;\n var _this$currentTransmux = this.currentTransmuxState,\n accurateTimeOffset = _this$currentTransmux.accurateTimeOffset,\n timeOffset = _this$currentTransmux.timeOffset;\n _utils_logger__WEBPACK_IMPORTED_MODULE_11__[\"logger\"].log(\"[transmuxer.ts]: Flushed fragment \" + chunkMeta.sn + (chunkMeta.part > -1 ? ' p: ' + chunkMeta.part : '') + \" of level \" + chunkMeta.level);\n var remuxResult = this.remuxer.remux(audioTrack, avcTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, true, this.id);\n transmuxResults.push({\n remuxResult: remuxResult,\n chunkMeta: chunkMeta\n });\n chunkMeta.transmuxing.executeEnd = now();\n };\n\n _proto.resetInitialTimestamp = function resetInitialTimestamp(defaultInitPts) {\n var demuxer = this.demuxer,\n remuxer = this.remuxer;\n\n if (!demuxer || !remuxer) {\n return;\n }\n\n demuxer.resetTimeStamp(defaultInitPts);\n remuxer.resetTimeStamp(defaultInitPts);\n };\n\n _proto.resetContiguity = function resetContiguity() {\n var demuxer = this.demuxer,\n remuxer = this.remuxer;\n\n if (!demuxer || !remuxer) {\n return;\n }\n\n demuxer.resetContiguity();\n remuxer.resetNextTimestamp();\n };\n\n _proto.resetInitSegment = function resetInitSegment(initSegmentData, audioCodec, videoCodec, duration) {\n var demuxer = this.demuxer,\n remuxer = this.remuxer;\n\n if (!demuxer || !remuxer) {\n return;\n }\n\n demuxer.resetInitSegment(audioCodec, videoCodec, duration);\n remuxer.resetInitSegment(initSegmentData, audioCodec, videoCodec);\n };\n\n _proto.destroy = function destroy() {\n if (this.demuxer) {\n this.demuxer.destroy();\n this.demuxer = undefined;\n }\n\n if (this.remuxer) {\n this.remuxer.destroy();\n this.remuxer = undefined;\n }\n };\n\n _proto.transmux = function transmux(data, keyData, timeOffset, accurateTimeOffset, chunkMeta) {\n var result;\n\n if (keyData && keyData.method === 'SAMPLE-AES') {\n result = this.transmuxSampleAes(data, keyData, timeOffset, accurateTimeOffset, chunkMeta);\n } else {\n result = this.transmuxUnencrypted(data, timeOffset, accurateTimeOffset, chunkMeta);\n }\n\n return result;\n };\n\n _proto.transmuxUnencrypted = function transmuxUnencrypted(data, timeOffset, accurateTimeOffset, chunkMeta) {\n var _demux = this.demuxer.demux(data, timeOffset, false, !this.config.progressive),\n audioTrack = _demux.audioTrack,\n avcTrack = _demux.avcTrack,\n id3Track = _demux.id3Track,\n textTrack = _demux.textTrack;\n\n var remuxResult = this.remuxer.remux(audioTrack, avcTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, false, this.id);\n return {\n remuxResult: remuxResult,\n chunkMeta: chunkMeta\n };\n };\n\n _proto.transmuxSampleAes = function transmuxSampleAes(data, decryptData, timeOffset, accurateTimeOffset, chunkMeta) {\n var _this3 = this;\n\n return this.demuxer.demuxSampleAes(data, decryptData, timeOffset).then(function (demuxResult) {\n var remuxResult = _this3.remuxer.remux(demuxResult.audioTrack, demuxResult.avcTrack, demuxResult.id3Track, demuxResult.textTrack, timeOffset, accurateTimeOffset, false, _this3.id);\n\n return {\n remuxResult: remuxResult,\n chunkMeta: chunkMeta\n };\n });\n };\n\n _proto.configureTransmuxer = function configureTransmuxer(data, transmuxConfig) {\n var config = this.config,\n observer = this.observer,\n typeSupported = this.typeSupported,\n vendor = this.vendor;\n var audioCodec = transmuxConfig.audioCodec,\n defaultInitPts = transmuxConfig.defaultInitPts,\n duration = transmuxConfig.duration,\n initSegmentData = transmuxConfig.initSegmentData,\n videoCodec = transmuxConfig.videoCodec; // probe for content type\n\n var mux;\n\n for (var i = 0, len = muxConfig.length; i < len; i++) {\n if (muxConfig[i].demux.probe(data)) {\n mux = muxConfig[i];\n break;\n }\n }\n\n if (!mux) {\n // If probing previous configs fail, use mp4 passthrough\n _utils_logger__WEBPACK_IMPORTED_MODULE_11__[\"logger\"].warn('Failed to find demuxer by probing frag, treating as mp4 passthrough');\n mux = {\n demux: _demux_mp4demuxer__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n remux: _remux_passthrough_remuxer__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n };\n } // so let's check that current remuxer and demuxer are still valid\n\n\n var demuxer = this.demuxer;\n var remuxer = this.remuxer;\n var Remuxer = mux.remux;\n var Demuxer = mux.demux;\n\n if (!remuxer || !(remuxer instanceof Remuxer)) {\n this.remuxer = new Remuxer(observer, config, typeSupported, vendor);\n }\n\n if (!demuxer || !(demuxer instanceof Demuxer)) {\n this.demuxer = new Demuxer(observer, config, typeSupported);\n this.probe = Demuxer.probe;\n } // Ensure that muxers are always initialized with an initSegment\n\n\n this.resetInitSegment(initSegmentData, audioCodec, videoCodec, duration);\n this.resetInitialTimestamp(defaultInitPts);\n };\n\n _proto.needsProbing = function needsProbing(data, discontinuity, trackSwitch) {\n // in case of continuity change, or track switch\n // we might switch from content type (AAC container to TS container, or TS to fmp4 for example)\n return !this.demuxer || !this.remuxer || discontinuity || trackSwitch;\n };\n\n _proto.getDecrypter = function getDecrypter() {\n var decrypter = this.decrypter;\n\n if (!decrypter) {\n decrypter = this.decrypter = new _crypt_decrypter__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this.observer, this.config);\n }\n\n return decrypter;\n };\n\n return Transmuxer;\n}();\n\n\n\nfunction getEncryptionType(data, decryptData) {\n var encryptionType = null;\n\n if (data.byteLength > 0 && decryptData != null && decryptData.key != null && decryptData.iv !== null && decryptData.method != null) {\n encryptionType = decryptData;\n }\n\n return encryptionType;\n}\n\nvar emptyResult = function emptyResult(chunkMeta) {\n return {\n remuxResult: {},\n chunkMeta: chunkMeta\n };\n};\n\nfunction isPromise(p) {\n return 'then' in p && p.then instanceof Function;\n}\nvar TransmuxConfig = function TransmuxConfig(audioCodec, videoCodec, initSegmentData, duration, defaultInitPts) {\n this.audioCodec = void 0;\n this.videoCodec = void 0;\n this.initSegmentData = void 0;\n this.duration = void 0;\n this.defaultInitPts = void 0;\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this.initSegmentData = initSegmentData;\n this.duration = duration;\n this.defaultInitPts = defaultInitPts;\n};\nvar TransmuxState = function TransmuxState(discontinuity, contiguous, accurateTimeOffset, trackSwitch, timeOffset, initSegmentChange) {\n this.discontinuity = void 0;\n this.contiguous = void 0;\n this.accurateTimeOffset = void 0;\n this.trackSwitch = void 0;\n this.timeOffset = void 0;\n this.initSegmentChange = void 0;\n this.discontinuity = discontinuity;\n this.contiguous = contiguous;\n this.accurateTimeOffset = accurateTimeOffset;\n this.trackSwitch = trackSwitch;\n this.timeOffset = timeOffset;\n this.initSegmentChange = initSegmentChange;\n};\n\n/***/ }),\n\n/***/ \"./src/demux/tsdemuxer.ts\":\n/*!********************************!*\\\n !*** ./src/demux/tsdemuxer.ts ***!\n \\********************************/\n/*! exports provided: discardEPB, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"discardEPB\", function() { return discardEPB; });\n/* harmony import */ var _adts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./adts */ \"./src/demux/adts.ts\");\n/* harmony import */ var _mpegaudio__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mpegaudio */ \"./src/demux/mpegaudio.ts\");\n/* harmony import */ var _exp_golomb__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./exp-golomb */ \"./src/demux/exp-golomb.ts\");\n/* harmony import */ var _id3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./id3 */ \"./src/demux/id3.ts\");\n/* harmony import */ var _sample_aes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sample-aes */ \"./src/demux/sample-aes.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/**\n * highly optimized TS demuxer:\n * parse PAT, PMT\n * extract PES packet from audio and video PIDs\n * extract AVC/H264 NAL units and AAC/ADTS samples from PES packet\n * trigger the remuxer upon parsing completion\n * it also tries to workaround as best as it can audio codec switch (HE-AAC to AAC and vice versa), without having to restart the MediaSource.\n * it also controls the remuxing process :\n * upon discontinuity or level switch detection, it will also notifies the remuxer so that it can reset its state.\n */\n\n\n\n\n\n\n\n\n\n// We are using fixed track IDs for driving the MP4 remuxer\n// instead of following the TS PIDs.\n// There is no reason not to do this and some browsers/SourceBuffer-demuxers\n// may not like if there are TrackID \"switches\"\n// See https://github.com/video-dev/hls.js/issues/1331\n// Here we are mapping our internal track types to constant MP4 track IDs\n// With MSE currently one can only have one track of each, and we are muxing\n// whatever video/audio rendition in them.\nvar RemuxerTrackIdConfig = {\n video: 1,\n audio: 2,\n id3: 3,\n text: 4\n};\n\nvar TSDemuxer = /*#__PURE__*/function () {\n function TSDemuxer(observer, config, typeSupported) {\n this.observer = void 0;\n this.config = void 0;\n this.typeSupported = void 0;\n this.sampleAes = null;\n this.pmtParsed = false;\n this.audioCodec = void 0;\n this.videoCodec = void 0;\n this._duration = 0;\n this.aacLastPTS = null;\n this._initPTS = null;\n this._initDTS = null;\n this._pmtId = -1;\n this._avcTrack = void 0;\n this._audioTrack = void 0;\n this._id3Track = void 0;\n this._txtTrack = void 0;\n this.aacOverFlow = null;\n this.avcSample = null;\n this.remainderData = null;\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n }\n\n TSDemuxer.probe = function probe(data) {\n var syncOffset = TSDemuxer.syncOffset(data);\n\n if (syncOffset < 0) {\n return false;\n } else {\n if (syncOffset) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].warn(\"MPEG2-TS detected but first sync word found @ offset \" + syncOffset + \", junk ahead ?\");\n }\n\n return true;\n }\n };\n\n TSDemuxer.syncOffset = function syncOffset(data) {\n // scan 1000 first bytes\n var scanwindow = Math.min(1000, data.length - 3 * 188);\n var i = 0;\n\n while (i < scanwindow) {\n // a TS fragment should contain at least 3 TS packets, a PAT, a PMT, and one PID, each starting with 0x47\n if (data[i] === 0x47 && data[i + 188] === 0x47 && data[i + 2 * 188] === 0x47) {\n return i;\n } else {\n i++;\n }\n }\n\n return -1;\n }\n /**\n * Creates a track model internal to demuxer used to drive remuxing input\n *\n * @param type 'audio' | 'video' | 'id3' | 'text'\n * @param duration\n * @return TSDemuxer's internal track model\n */\n ;\n\n TSDemuxer.createTrack = function createTrack(type, duration) {\n return {\n container: type === 'video' || type === 'audio' ? 'video/mp2t' : undefined,\n type: type,\n id: RemuxerTrackIdConfig[type],\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: 0,\n duration: type === 'audio' ? duration : undefined\n };\n }\n /**\n * Initializes a new init segment on the demuxer/remuxer interface. Needed for discontinuities/track-switches (or at stream start)\n * Resets all internal track instances of the demuxer.\n */\n ;\n\n var _proto = TSDemuxer.prototype;\n\n _proto.resetInitSegment = function resetInitSegment(audioCodec, videoCodec, duration) {\n this.pmtParsed = false;\n this._pmtId = -1;\n this._avcTrack = TSDemuxer.createTrack('video', duration);\n this._audioTrack = TSDemuxer.createTrack('audio', duration);\n this._id3Track = TSDemuxer.createTrack('id3', duration);\n this._txtTrack = TSDemuxer.createTrack('text', duration);\n this._audioTrack.isAAC = true; // flush any partial content\n\n this.aacOverFlow = null;\n this.aacLastPTS = null;\n this.avcSample = null;\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this._duration = duration;\n };\n\n _proto.resetTimeStamp = function resetTimeStamp() {};\n\n _proto.resetContiguity = function resetContiguity() {\n var _audioTrack = this._audioTrack,\n _avcTrack = this._avcTrack,\n _id3Track = this._id3Track;\n\n if (_audioTrack) {\n _audioTrack.pesData = null;\n }\n\n if (_avcTrack) {\n _avcTrack.pesData = null;\n }\n\n if (_id3Track) {\n _id3Track.pesData = null;\n }\n\n this.aacOverFlow = null;\n this.aacLastPTS = null;\n };\n\n _proto.demux = function demux(data, timeOffset, isSampleAes, flush) {\n if (isSampleAes === void 0) {\n isSampleAes = false;\n }\n\n if (flush === void 0) {\n flush = false;\n }\n\n if (!isSampleAes) {\n this.sampleAes = null;\n }\n\n var pes;\n var avcTrack = this._avcTrack;\n var audioTrack = this._audioTrack;\n var id3Track = this._id3Track;\n var avcId = avcTrack.pid;\n var avcData = avcTrack.pesData;\n var audioId = audioTrack.pid;\n var id3Id = id3Track.pid;\n var audioData = audioTrack.pesData;\n var id3Data = id3Track.pesData;\n var unknownPIDs = false;\n var pmtParsed = this.pmtParsed;\n var pmtId = this._pmtId;\n var len = data.length;\n\n if (this.remainderData) {\n data = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_6__[\"appendUint8Array\"])(this.remainderData, data);\n len = data.length;\n this.remainderData = null;\n }\n\n if (len < 188 && !flush) {\n this.remainderData = data;\n return {\n audioTrack: audioTrack,\n avcTrack: avcTrack,\n id3Track: id3Track,\n textTrack: this._txtTrack\n };\n }\n\n var syncOffset = Math.max(0, TSDemuxer.syncOffset(data));\n len -= (len + syncOffset) % 188;\n\n if (len < data.byteLength && !flush) {\n this.remainderData = new Uint8Array(data.buffer, len, data.buffer.byteLength - len);\n } // loop through TS packets\n\n\n var tsPacketErrors = 0;\n\n for (var start = syncOffset; start < len; start += 188) {\n if (data[start] === 0x47) {\n var stt = !!(data[start + 1] & 0x40); // pid is a 13-bit field starting at the last bit of TS[1]\n\n var pid = ((data[start + 1] & 0x1f) << 8) + data[start + 2];\n var atf = (data[start + 3] & 0x30) >> 4; // if an adaption field is present, its length is specified by the fifth byte of the TS packet header.\n\n var offset = void 0;\n\n if (atf > 1) {\n offset = start + 5 + data[start + 4]; // continue if there is only adaptation field\n\n if (offset === start + 188) {\n continue;\n }\n } else {\n offset = start + 4;\n }\n\n switch (pid) {\n case avcId:\n if (stt) {\n if (avcData && (pes = parsePES(avcData))) {\n this.parseAVCPES(pes, false);\n }\n\n avcData = {\n data: [],\n size: 0\n };\n }\n\n if (avcData) {\n avcData.data.push(data.subarray(offset, start + 188));\n avcData.size += start + 188 - offset;\n }\n\n break;\n\n case audioId:\n if (stt) {\n if (audioData && (pes = parsePES(audioData))) {\n if (audioTrack.isAAC) {\n this.parseAACPES(pes);\n } else {\n this.parseMPEGPES(pes);\n }\n }\n\n audioData = {\n data: [],\n size: 0\n };\n }\n\n if (audioData) {\n audioData.data.push(data.subarray(offset, start + 188));\n audioData.size += start + 188 - offset;\n }\n\n break;\n\n case id3Id:\n if (stt) {\n if (id3Data && (pes = parsePES(id3Data))) {\n this.parseID3PES(pes);\n }\n\n id3Data = {\n data: [],\n size: 0\n };\n }\n\n if (id3Data) {\n id3Data.data.push(data.subarray(offset, start + 188));\n id3Data.size += start + 188 - offset;\n }\n\n break;\n\n case 0:\n if (stt) {\n offset += data[offset] + 1;\n }\n\n pmtId = this._pmtId = parsePAT(data, offset);\n break;\n\n case pmtId:\n {\n if (stt) {\n offset += data[offset] + 1;\n }\n\n var parsedPIDs = parsePMT(data, offset, this.typeSupported.mpeg === true || this.typeSupported.mp3 === true, isSampleAes); // only update track id if track PID found while parsing PMT\n // this is to avoid resetting the PID to -1 in case\n // track PID transiently disappears from the stream\n // this could happen in case of transient missing audio samples for example\n // NOTE this is only the PID of the track as found in TS,\n // but we are not using this for MP4 track IDs.\n\n avcId = parsedPIDs.avc;\n\n if (avcId > 0) {\n avcTrack.pid = avcId;\n }\n\n audioId = parsedPIDs.audio;\n\n if (audioId > 0) {\n audioTrack.pid = audioId;\n audioTrack.isAAC = parsedPIDs.isAAC;\n }\n\n id3Id = parsedPIDs.id3;\n\n if (id3Id > 0) {\n id3Track.pid = id3Id;\n }\n\n if (unknownPIDs && !pmtParsed) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].log('reparse from beginning');\n unknownPIDs = false; // we set it to -188, the += 188 in the for loop will reset start to 0\n\n start = syncOffset - 188;\n }\n\n pmtParsed = this.pmtParsed = true;\n break;\n }\n\n case 17:\n case 0x1fff:\n break;\n\n default:\n unknownPIDs = true;\n break;\n }\n } else {\n tsPacketErrors++;\n }\n }\n\n if (tsPacketErrors > 0) {\n this.observer.emit(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].ERROR, _events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_8__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_8__[\"ErrorDetails\"].FRAG_PARSING_ERROR,\n fatal: false,\n reason: \"Found \" + tsPacketErrors + \" TS packet/s that do not start with 0x47\"\n });\n }\n\n avcTrack.pesData = avcData;\n audioTrack.pesData = audioData;\n id3Track.pesData = id3Data;\n var demuxResult = {\n audioTrack: audioTrack,\n avcTrack: avcTrack,\n id3Track: id3Track,\n textTrack: this._txtTrack\n };\n\n if (flush) {\n this.extractRemainingSamples(demuxResult);\n }\n\n return demuxResult;\n };\n\n _proto.flush = function flush() {\n var remainderData = this.remainderData;\n this.remainderData = null;\n var result;\n\n if (remainderData) {\n result = this.demux(remainderData, -1, false, true);\n } else {\n result = {\n audioTrack: this._audioTrack,\n avcTrack: this._avcTrack,\n textTrack: this._txtTrack,\n id3Track: this._id3Track\n };\n }\n\n this.extractRemainingSamples(result);\n\n if (this.sampleAes) {\n return this.decrypt(result, this.sampleAes);\n }\n\n return result;\n };\n\n _proto.extractRemainingSamples = function extractRemainingSamples(demuxResult) {\n var audioTrack = demuxResult.audioTrack,\n avcTrack = demuxResult.avcTrack,\n id3Track = demuxResult.id3Track;\n var avcData = avcTrack.pesData;\n var audioData = audioTrack.pesData;\n var id3Data = id3Track.pesData; // try to parse last PES packets\n\n var pes;\n\n if (avcData && (pes = parsePES(avcData))) {\n this.parseAVCPES(pes, true);\n avcTrack.pesData = null;\n } else {\n // either avcData null or PES truncated, keep it for next frag parsing\n avcTrack.pesData = avcData;\n }\n\n if (audioData && (pes = parsePES(audioData))) {\n if (audioTrack.isAAC) {\n this.parseAACPES(pes);\n } else {\n this.parseMPEGPES(pes);\n }\n\n audioTrack.pesData = null;\n } else {\n if (audioData !== null && audioData !== void 0 && audioData.size) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].log('last AAC PES packet truncated,might overlap between fragments');\n } // either audioData null or PES truncated, keep it for next frag parsing\n\n\n audioTrack.pesData = audioData;\n }\n\n if (id3Data && (pes = parsePES(id3Data))) {\n this.parseID3PES(pes);\n id3Track.pesData = null;\n } else {\n // either id3Data null or PES truncated, keep it for next frag parsing\n id3Track.pesData = id3Data;\n }\n };\n\n _proto.demuxSampleAes = function demuxSampleAes(data, keyData, timeOffset) {\n var demuxResult = this.demux(data, timeOffset, true, !this.config.progressive);\n var sampleAes = this.sampleAes = new _sample_aes__WEBPACK_IMPORTED_MODULE_4__[\"default\"](this.observer, this.config, keyData);\n return this.decrypt(demuxResult, sampleAes);\n };\n\n _proto.decrypt = function decrypt(demuxResult, sampleAes) {\n return new Promise(function (resolve) {\n var audioTrack = demuxResult.audioTrack,\n avcTrack = demuxResult.avcTrack;\n\n if (audioTrack.samples && audioTrack.isAAC) {\n sampleAes.decryptAacSamples(audioTrack.samples, 0, function () {\n if (avcTrack.samples) {\n sampleAes.decryptAvcSamples(avcTrack.samples, 0, 0, function () {\n resolve(demuxResult);\n });\n } else {\n resolve(demuxResult);\n }\n });\n } else if (avcTrack.samples) {\n sampleAes.decryptAvcSamples(avcTrack.samples, 0, 0, function () {\n resolve(demuxResult);\n });\n }\n });\n };\n\n _proto.destroy = function destroy() {\n this._initPTS = this._initDTS = null;\n this._duration = 0;\n };\n\n _proto.parseAVCPES = function parseAVCPES(pes, last) {\n var _this = this;\n\n var track = this._avcTrack;\n var units = this.parseAVCNALu(pes.data);\n var debug = false;\n var avcSample = this.avcSample;\n var push;\n var spsfound = false; // free pes.data to save up some memory\n\n pes.data = null; // if new NAL units found and last sample still there, let's push ...\n // this helps parsing streams with missing AUD (only do this if AUD never found)\n\n if (avcSample && units.length && !track.audFound) {\n pushAccessUnit(avcSample, track);\n avcSample = this.avcSample = createAVCSample(false, pes.pts, pes.dts, '');\n }\n\n units.forEach(function (unit) {\n switch (unit.type) {\n // NDR\n case 1:\n {\n push = true;\n\n if (!avcSample) {\n avcSample = _this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n }\n\n if (debug) {\n avcSample.debug += 'NDR ';\n }\n\n avcSample.frame = true;\n var data = unit.data; // only check slice type to detect KF in case SPS found in same packet (any keyframe is preceded by SPS ...)\n\n if (spsfound && data.length > 4) {\n // retrieve slice type by parsing beginning of NAL unit (follow H264 spec, slice_header definition) to detect keyframe embedded in NDR\n var sliceType = new _exp_golomb__WEBPACK_IMPORTED_MODULE_2__[\"default\"](data).readSliceType(); // 2 : I slice, 4 : SI slice, 7 : I slice, 9: SI slice\n // SI slice : A slice that is coded using intra prediction only and using quantisation of the prediction samples.\n // An SI slice can be coded such that its decoded samples can be constructed identically to an SP slice.\n // I slice: A slice that is not an SI slice that is decoded using intra prediction only.\n // if (sliceType === 2 || sliceType === 7) {\n\n if (sliceType === 2 || sliceType === 4 || sliceType === 7 || sliceType === 9) {\n avcSample.key = true;\n }\n }\n\n break; // IDR\n }\n\n case 5:\n push = true; // handle PES not starting with AUD\n\n if (!avcSample) {\n avcSample = _this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n }\n\n if (debug) {\n avcSample.debug += 'IDR ';\n }\n\n avcSample.key = true;\n avcSample.frame = true;\n break;\n // SEI\n\n case 6:\n {\n push = true;\n\n if (debug && avcSample) {\n avcSample.debug += 'SEI ';\n }\n\n var expGolombDecoder = new _exp_golomb__WEBPACK_IMPORTED_MODULE_2__[\"default\"](discardEPB(unit.data)); // skip frameType\n\n expGolombDecoder.readUByte();\n var payloadType = 0;\n var payloadSize = 0;\n var endOfCaptions = false;\n var b = 0;\n\n while (!endOfCaptions && expGolombDecoder.bytesAvailable > 1) {\n payloadType = 0;\n\n do {\n b = expGolombDecoder.readUByte();\n payloadType += b;\n } while (b === 0xff); // Parse payload size.\n\n\n payloadSize = 0;\n\n do {\n b = expGolombDecoder.readUByte();\n payloadSize += b;\n } while (b === 0xff); // TODO: there can be more than one payload in an SEI packet...\n // TODO: need to read type and size in a while loop to get them all\n\n\n if (payloadType === 4 && expGolombDecoder.bytesAvailable !== 0) {\n endOfCaptions = true;\n var countryCode = expGolombDecoder.readUByte();\n\n if (countryCode === 181) {\n var providerCode = expGolombDecoder.readUShort();\n\n if (providerCode === 49) {\n var userStructure = expGolombDecoder.readUInt();\n\n if (userStructure === 0x47413934) {\n var userDataType = expGolombDecoder.readUByte(); // Raw CEA-608 bytes wrapped in CEA-708 packet\n\n if (userDataType === 3) {\n var firstByte = expGolombDecoder.readUByte();\n var secondByte = expGolombDecoder.readUByte();\n var totalCCs = 31 & firstByte;\n var byteArray = [firstByte, secondByte];\n\n for (var i = 0; i < totalCCs; i++) {\n // 3 bytes per CC\n byteArray.push(expGolombDecoder.readUByte());\n byteArray.push(expGolombDecoder.readUByte());\n byteArray.push(expGolombDecoder.readUByte());\n }\n\n insertSampleInOrder(_this._txtTrack.samples, {\n type: 3,\n pts: pes.pts,\n bytes: byteArray\n });\n }\n }\n }\n }\n } else if (payloadType === 5 && expGolombDecoder.bytesAvailable !== 0) {\n endOfCaptions = true;\n\n if (payloadSize > 16) {\n var uuidStrArray = [];\n\n for (var _i = 0; _i < 16; _i++) {\n uuidStrArray.push(expGolombDecoder.readUByte().toString(16));\n\n if (_i === 3 || _i === 5 || _i === 7 || _i === 9) {\n uuidStrArray.push('-');\n }\n }\n\n var length = payloadSize - 16;\n var userDataPayloadBytes = new Uint8Array(length);\n\n for (var _i2 = 0; _i2 < length; _i2++) {\n userDataPayloadBytes[_i2] = expGolombDecoder.readUByte();\n }\n\n insertSampleInOrder(_this._txtTrack.samples, {\n pts: pes.pts,\n payloadType: payloadType,\n uuid: uuidStrArray.join(''),\n userData: Object(_id3__WEBPACK_IMPORTED_MODULE_3__[\"utf8ArrayToStr\"])(userDataPayloadBytes),\n userDataBytes: userDataPayloadBytes\n });\n }\n } else if (payloadSize < expGolombDecoder.bytesAvailable) {\n for (var _i3 = 0; _i3 < payloadSize; _i3++) {\n expGolombDecoder.readUByte();\n }\n }\n }\n\n break; // SPS\n }\n\n case 7:\n push = true;\n spsfound = true;\n\n if (debug && avcSample) {\n avcSample.debug += 'SPS ';\n }\n\n if (!track.sps) {\n var _expGolombDecoder = new _exp_golomb__WEBPACK_IMPORTED_MODULE_2__[\"default\"](unit.data);\n\n var config = _expGolombDecoder.readSPS();\n\n track.width = config.width;\n track.height = config.height;\n track.pixelRatio = config.pixelRatio; // TODO: `track.sps` is defined as a `number[]`, but we're setting it to a `Uint8Array[]`.\n\n track.sps = [unit.data];\n track.duration = _this._duration;\n var codecarray = unit.data.subarray(1, 4);\n var codecstring = 'avc1.';\n\n for (var _i4 = 0; _i4 < 3; _i4++) {\n var h = codecarray[_i4].toString(16);\n\n if (h.length < 2) {\n h = '0' + h;\n }\n\n codecstring += h;\n }\n\n track.codec = codecstring;\n }\n\n break;\n // PPS\n\n case 8:\n push = true;\n\n if (debug && avcSample) {\n avcSample.debug += 'PPS ';\n }\n\n if (!track.pps) {\n // TODO: `track.pss` is defined as a `number[]`, but we're setting it to a `Uint8Array[]`.\n track.pps = [unit.data];\n }\n\n break;\n // AUD\n\n case 9:\n push = false;\n track.audFound = true;\n\n if (avcSample) {\n pushAccessUnit(avcSample, track);\n }\n\n avcSample = _this.avcSample = createAVCSample(false, pes.pts, pes.dts, debug ? 'AUD ' : '');\n break;\n // Filler Data\n\n case 12:\n push = false;\n break;\n\n default:\n push = false;\n\n if (avcSample) {\n avcSample.debug += 'unknown NAL ' + unit.type + ' ';\n }\n\n break;\n }\n\n if (avcSample && push) {\n var _units = avcSample.units;\n\n _units.push(unit);\n }\n }); // if last PES packet, push samples\n\n if (last && avcSample) {\n pushAccessUnit(avcSample, track);\n this.avcSample = null;\n }\n };\n\n _proto.getLastNalUnit = function getLastNalUnit() {\n var _avcSample;\n\n var avcSample = this.avcSample;\n var lastUnit; // try to fallback to previous sample if current one is empty\n\n if (!avcSample || avcSample.units.length === 0) {\n var samples = this._avcTrack.samples;\n avcSample = samples[samples.length - 1];\n }\n\n if ((_avcSample = avcSample) !== null && _avcSample !== void 0 && _avcSample.units) {\n var units = avcSample.units;\n lastUnit = units[units.length - 1];\n }\n\n return lastUnit;\n };\n\n _proto.parseAVCNALu = function parseAVCNALu(array) {\n var len = array.byteLength;\n var track = this._avcTrack;\n var state = track.naluState || 0;\n var lastState = state;\n var units = [];\n var i = 0;\n var value;\n var overflow;\n var unitType;\n var lastUnitStart = -1;\n var lastUnitType = 0; // logger.log('PES:' + Hex.hexDump(array));\n\n if (state === -1) {\n // special use case where we found 3 or 4-byte start codes exactly at the end of previous PES packet\n lastUnitStart = 0; // NALu type is value read from offset 0\n\n lastUnitType = array[0] & 0x1f;\n state = 0;\n i = 1;\n }\n\n while (i < len) {\n value = array[i++]; // optimization. state 0 and 1 are the predominant case. let's handle them outside of the switch/case\n\n if (!state) {\n state = value ? 0 : 1;\n continue;\n }\n\n if (state === 1) {\n state = value ? 0 : 2;\n continue;\n } // here we have state either equal to 2 or 3\n\n\n if (!value) {\n state = 3;\n } else if (value === 1) {\n if (lastUnitStart >= 0) {\n var unit = {\n data: array.subarray(lastUnitStart, i - state - 1),\n type: lastUnitType\n }; // logger.log('pushing NALU, type/size:' + unit.type + '/' + unit.data.byteLength);\n\n units.push(unit);\n } else {\n // lastUnitStart is undefined => this is the first start code found in this PES packet\n // first check if start code delimiter is overlapping between 2 PES packets,\n // ie it started in last packet (lastState not zero)\n // and ended at the beginning of this PES packet (i <= 4 - lastState)\n var lastUnit = this.getLastNalUnit();\n\n if (lastUnit) {\n if (lastState && i <= 4 - lastState) {\n // start delimiter overlapping between PES packets\n // strip start delimiter bytes from the end of last NAL unit\n // check if lastUnit had a state different from zero\n if (lastUnit.state) {\n // strip last bytes\n lastUnit.data = lastUnit.data.subarray(0, lastUnit.data.byteLength - lastState);\n }\n } // If NAL units are not starting right at the beginning of the PES packet, push preceding data into previous NAL unit.\n\n\n overflow = i - state - 1;\n\n if (overflow > 0) {\n // logger.log('first NALU found with overflow:' + overflow);\n var tmp = new Uint8Array(lastUnit.data.byteLength + overflow);\n tmp.set(lastUnit.data, 0);\n tmp.set(array.subarray(0, overflow), lastUnit.data.byteLength);\n lastUnit.data = tmp;\n lastUnit.state = 0;\n }\n }\n } // check if we can read unit type\n\n\n if (i < len) {\n unitType = array[i] & 0x1f; // logger.log('find NALU @ offset:' + i + ',type:' + unitType);\n\n lastUnitStart = i;\n lastUnitType = unitType;\n state = 0;\n } else {\n // not enough byte to read unit type. let's read it on next PES parsing\n state = -1;\n }\n } else {\n state = 0;\n }\n }\n\n if (lastUnitStart >= 0 && state >= 0) {\n var _unit = {\n data: array.subarray(lastUnitStart, len),\n type: lastUnitType,\n state: state\n };\n units.push(_unit); // logger.log('pushing NALU, type/size/state:' + unit.type + '/' + unit.data.byteLength + '/' + state);\n } // no NALu found\n\n\n if (units.length === 0) {\n // append pes.data to previous NAL unit\n var _lastUnit = this.getLastNalUnit();\n\n if (_lastUnit) {\n var _tmp = new Uint8Array(_lastUnit.data.byteLength + array.byteLength);\n\n _tmp.set(_lastUnit.data, 0);\n\n _tmp.set(array, _lastUnit.data.byteLength);\n\n _lastUnit.data = _tmp;\n }\n }\n\n track.naluState = state;\n return units;\n };\n\n _proto.parseAACPES = function parseAACPES(pes) {\n var startOffset = 0;\n var track = this._audioTrack;\n var aacOverFlow = this.aacOverFlow;\n var data = pes.data;\n\n if (aacOverFlow) {\n this.aacOverFlow = null;\n var sampleLength = aacOverFlow.sample.unit.byteLength;\n var frameMissingBytes = Math.min(aacOverFlow.missing, sampleLength);\n var frameOverflowBytes = sampleLength - frameMissingBytes;\n aacOverFlow.sample.unit.set(data.subarray(0, frameMissingBytes), frameOverflowBytes);\n track.samples.push(aacOverFlow.sample); // logger.log(`AAC: append overflowing ${frameOverflowBytes} bytes to beginning of new PES`);\n\n startOffset = aacOverFlow.missing;\n } // look for ADTS header (0xFFFx)\n\n\n var offset;\n var len;\n\n for (offset = startOffset, len = data.length; offset < len - 1; offset++) {\n if (_adts__WEBPACK_IMPORTED_MODULE_0__[\"isHeader\"](data, offset)) {\n break;\n }\n } // if ADTS header does not start straight from the beginning of the PES payload, raise an error\n\n\n if (offset !== startOffset) {\n var reason;\n var fatal;\n\n if (offset < len - 1) {\n reason = \"AAC PES did not start with ADTS header,offset:\" + offset;\n fatal = false;\n } else {\n reason = 'no ADTS header found in AAC PES';\n fatal = true;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].warn(\"parsing error:\" + reason);\n this.observer.emit(_events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].ERROR, _events__WEBPACK_IMPORTED_MODULE_5__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_8__[\"ErrorTypes\"].MEDIA_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_8__[\"ErrorDetails\"].FRAG_PARSING_ERROR,\n fatal: fatal,\n reason: reason\n });\n\n if (fatal) {\n return;\n }\n }\n\n _adts__WEBPACK_IMPORTED_MODULE_0__[\"initTrackConfig\"](track, this.observer, data, offset, this.audioCodec);\n var pts;\n\n if (pes.pts !== undefined) {\n pts = pes.pts;\n } else if (aacOverFlow) {\n // if last AAC frame is overflowing, we should ensure timestamps are contiguous:\n // first sample PTS should be equal to last sample PTS + frameDuration\n var frameDuration = _adts__WEBPACK_IMPORTED_MODULE_0__[\"getFrameDuration\"](track.samplerate);\n pts = aacOverFlow.sample.pts + frameDuration;\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].warn('[tsdemuxer]: AAC PES unknown PTS');\n return;\n } // scan for aac samples\n\n\n var frameIndex = 0;\n\n while (offset < len) {\n if (_adts__WEBPACK_IMPORTED_MODULE_0__[\"isHeader\"](data, offset)) {\n if (offset + 5 < len) {\n var frame = _adts__WEBPACK_IMPORTED_MODULE_0__[\"appendFrame\"](track, data, offset, pts, frameIndex);\n\n if (frame) {\n if (frame.missing) {\n this.aacOverFlow = frame;\n } else {\n offset += frame.length;\n frameIndex++;\n continue;\n }\n }\n } // We are at an ADTS header, but do not have enough data for a frame\n // Remaining data will be added to aacOverFlow\n\n\n break;\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n };\n\n _proto.parseMPEGPES = function parseMPEGPES(pes) {\n var data = pes.data;\n var length = data.length;\n var frameIndex = 0;\n var offset = 0;\n var pts = pes.pts;\n\n if (pts === undefined) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].warn('[tsdemuxer]: MPEG PES unknown PTS');\n return;\n }\n\n while (offset < length) {\n if (_mpegaudio__WEBPACK_IMPORTED_MODULE_1__[\"isHeader\"](data, offset)) {\n var frame = _mpegaudio__WEBPACK_IMPORTED_MODULE_1__[\"appendFrame\"](this._audioTrack, data, offset, pts, frameIndex);\n\n if (frame) {\n offset += frame.length;\n frameIndex++;\n } else {\n // logger.log('Unable to parse Mpeg audio frame');\n break;\n }\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n };\n\n _proto.parseID3PES = function parseID3PES(pes) {\n if (pes.pts === undefined) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].warn('[tsdemuxer]: ID3 PES unknown PTS');\n return;\n }\n\n this._id3Track.samples.push(pes);\n };\n\n return TSDemuxer;\n}();\n\nTSDemuxer.minProbeByteLength = 188;\n\nfunction createAVCSample(key, pts, dts, debug) {\n return {\n key: key,\n frame: false,\n pts: pts,\n dts: dts,\n units: [],\n debug: debug,\n length: 0\n };\n}\n\nfunction parsePAT(data, offset) {\n // skip the PSI header and parse the first PMT entry\n return (data[offset + 10] & 0x1f) << 8 | data[offset + 11]; // logger.log('PMT PID:' + this._pmtId);\n}\n\nfunction parsePMT(data, offset, mpegSupported, isSampleAes) {\n var result = {\n audio: -1,\n avc: -1,\n id3: -1,\n isAAC: true\n };\n var sectionLength = (data[offset + 1] & 0x0f) << 8 | data[offset + 2];\n var tableEnd = offset + 3 + sectionLength - 4; // to determine where the table is, we have to figure out how\n // long the program info descriptors are\n\n var programInfoLength = (data[offset + 10] & 0x0f) << 8 | data[offset + 11]; // advance the offset to the first entry in the mapping table\n\n offset += 12 + programInfoLength;\n\n while (offset < tableEnd) {\n var pid = (data[offset + 1] & 0x1f) << 8 | data[offset + 2];\n\n switch (data[offset]) {\n case 0xcf:\n // SAMPLE-AES AAC\n if (!isSampleAes) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].log('ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream');\n break;\n }\n\n /* falls through */\n\n case 0x0f:\n // ISO/IEC 13818-7 ADTS AAC (MPEG-2 lower bit-rate audio)\n // logger.log('AAC PID:' + pid);\n if (result.audio === -1) {\n result.audio = pid;\n }\n\n break;\n // Packetized metadata (ID3)\n\n case 0x15:\n // logger.log('ID3 PID:' + pid);\n if (result.id3 === -1) {\n result.id3 = pid;\n }\n\n break;\n\n case 0xdb:\n // SAMPLE-AES AVC\n if (!isSampleAes) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].log('H.264 with AES-128-CBC slice encryption found in unencrypted stream');\n break;\n }\n\n /* falls through */\n\n case 0x1b:\n // ITU-T Rec. H.264 and ISO/IEC 14496-10 (lower bit-rate video)\n // logger.log('AVC PID:' + pid);\n if (result.avc === -1) {\n result.avc = pid;\n }\n\n break;\n // ISO/IEC 11172-3 (MPEG-1 audio)\n // or ISO/IEC 13818-3 (MPEG-2 halved sample rate audio)\n\n case 0x03:\n case 0x04:\n // logger.log('MPEG PID:' + pid);\n if (!mpegSupported) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].log('MPEG audio found, not supported in this browser');\n } else if (result.audio === -1) {\n result.audio = pid;\n result.isAAC = false;\n }\n\n break;\n\n case 0x24:\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].warn('Unsupported HEVC stream type found');\n break;\n\n default:\n // logger.log('unknown stream type:' + data[offset]);\n break;\n } // move to the next table entry\n // skip past the elementary stream descriptors, if present\n\n\n offset += ((data[offset + 3] & 0x0f) << 8 | data[offset + 4]) + 5;\n }\n\n return result;\n}\n\nfunction parsePES(stream) {\n var i = 0;\n var frag;\n var pesLen;\n var pesHdrLen;\n var pesPts;\n var pesDts;\n var data = stream.data; // safety check\n\n if (!stream || stream.size === 0) {\n return null;\n } // we might need up to 19 bytes to read PES header\n // if first chunk of data is less than 19 bytes, let's merge it with following ones until we get 19 bytes\n // usually only one merge is needed (and this is rare ...)\n\n\n while (data[0].length < 19 && data.length > 1) {\n var newData = new Uint8Array(data[0].length + data[1].length);\n newData.set(data[0]);\n newData.set(data[1], data[0].length);\n data[0] = newData;\n data.splice(1, 1);\n } // retrieve PTS/DTS from first fragment\n\n\n frag = data[0];\n var pesPrefix = (frag[0] << 16) + (frag[1] << 8) + frag[2];\n\n if (pesPrefix === 1) {\n pesLen = (frag[4] << 8) + frag[5]; // if PES parsed length is not zero and greater than total received length, stop parsing. PES might be truncated\n // minus 6 : PES header size\n\n if (pesLen && pesLen > stream.size - 6) {\n return null;\n }\n\n var pesFlags = frag[7];\n\n if (pesFlags & 0xc0) {\n /* PES header described here : http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n as PTS / DTS is 33 bit we cannot use bitwise operator in JS,\n as Bitwise operators treat their operands as a sequence of 32 bits */\n pesPts = (frag[9] & 0x0e) * 536870912 + // 1 << 29\n (frag[10] & 0xff) * 4194304 + // 1 << 22\n (frag[11] & 0xfe) * 16384 + // 1 << 14\n (frag[12] & 0xff) * 128 + // 1 << 7\n (frag[13] & 0xfe) / 2;\n\n if (pesFlags & 0x40) {\n pesDts = (frag[14] & 0x0e) * 536870912 + // 1 << 29\n (frag[15] & 0xff) * 4194304 + // 1 << 22\n (frag[16] & 0xfe) * 16384 + // 1 << 14\n (frag[17] & 0xff) * 128 + // 1 << 7\n (frag[18] & 0xfe) / 2;\n\n if (pesPts - pesDts > 60 * 90000) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].warn(Math.round((pesPts - pesDts) / 90000) + \"s delta between PTS and DTS, align them\");\n pesPts = pesDts;\n }\n } else {\n pesDts = pesPts;\n }\n }\n\n pesHdrLen = frag[8]; // 9 bytes : 6 bytes for PES header + 3 bytes for PES extension\n\n var payloadStartOffset = pesHdrLen + 9;\n\n if (stream.size <= payloadStartOffset) {\n return null;\n }\n\n stream.size -= payloadStartOffset; // reassemble PES packet\n\n var pesData = new Uint8Array(stream.size);\n\n for (var j = 0, dataLen = data.length; j < dataLen; j++) {\n frag = data[j];\n var len = frag.byteLength;\n\n if (payloadStartOffset) {\n if (payloadStartOffset > len) {\n // trim full frag if PES header bigger than frag\n payloadStartOffset -= len;\n continue;\n } else {\n // trim partial frag if PES header smaller than frag\n frag = frag.subarray(payloadStartOffset);\n len -= payloadStartOffset;\n payloadStartOffset = 0;\n }\n }\n\n pesData.set(frag, i);\n i += len;\n }\n\n if (pesLen) {\n // payload size : remove PES header + PES extension\n pesLen -= pesHdrLen + 3;\n }\n\n return {\n data: pesData,\n pts: pesPts,\n dts: pesDts,\n len: pesLen\n };\n }\n\n return null;\n}\n\nfunction pushAccessUnit(avcSample, avcTrack) {\n if (avcSample.units.length && avcSample.frame) {\n // if sample does not have PTS/DTS, patch with last sample PTS/DTS\n if (avcSample.pts === undefined) {\n var samples = avcTrack.samples;\n var nbSamples = samples.length;\n\n if (nbSamples) {\n var lastSample = samples[nbSamples - 1];\n avcSample.pts = lastSample.pts;\n avcSample.dts = lastSample.dts;\n } else {\n // dropping samples, no timestamp found\n avcTrack.dropped++;\n return;\n }\n }\n\n avcTrack.samples.push(avcSample);\n }\n\n if (avcSample.debug.length) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_7__[\"logger\"].log(avcSample.pts + '/' + avcSample.dts + ':' + avcSample.debug);\n }\n}\n\nfunction insertSampleInOrder(arr, data) {\n var len = arr.length;\n\n if (len > 0) {\n if (data.pts >= arr[len - 1].pts) {\n arr.push(data);\n } else {\n for (var pos = len - 1; pos >= 0; pos--) {\n if (data.pts < arr[pos].pts) {\n arr.splice(pos, 0, data);\n break;\n }\n }\n }\n } else {\n arr.push(data);\n }\n}\n/**\n * remove Emulation Prevention bytes from a RBSP\n */\n\n\nfunction discardEPB(data) {\n var length = data.byteLength;\n var EPBPositions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < length - 2) {\n if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) {\n EPBPositions.push(i + 2);\n i += 2;\n } else {\n i++;\n }\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (EPBPositions.length === 0) {\n return data;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = length - EPBPositions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === EPBPositions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n EPBPositions.shift();\n }\n\n newData[i] = data[sourceIndex];\n }\n\n return newData;\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (TSDemuxer);\n\n/***/ }),\n\n/***/ \"./src/errors.ts\":\n/*!***********************!*\\\n !*** ./src/errors.ts ***!\n \\***********************/\n/*! exports provided: ErrorTypes, ErrorDetails */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ErrorTypes\", function() { return ErrorTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ErrorDetails\", function() { return ErrorDetails; });\nvar ErrorTypes;\n/**\n * @enum {ErrorDetails}\n * @typedef {string} ErrorDetail\n */\n\n(function (ErrorTypes) {\n ErrorTypes[\"NETWORK_ERROR\"] = \"networkError\";\n ErrorTypes[\"MEDIA_ERROR\"] = \"mediaError\";\n ErrorTypes[\"KEY_SYSTEM_ERROR\"] = \"keySystemError\";\n ErrorTypes[\"MUX_ERROR\"] = \"muxError\";\n ErrorTypes[\"OTHER_ERROR\"] = \"otherError\";\n})(ErrorTypes || (ErrorTypes = {}));\n\nvar ErrorDetails;\n\n(function (ErrorDetails) {\n ErrorDetails[\"KEY_SYSTEM_NO_KEYS\"] = \"keySystemNoKeys\";\n ErrorDetails[\"KEY_SYSTEM_NO_ACCESS\"] = \"keySystemNoAccess\";\n ErrorDetails[\"KEY_SYSTEM_NO_SESSION\"] = \"keySystemNoSession\";\n ErrorDetails[\"KEY_SYSTEM_LICENSE_REQUEST_FAILED\"] = \"keySystemLicenseRequestFailed\";\n ErrorDetails[\"KEY_SYSTEM_NO_INIT_DATA\"] = \"keySystemNoInitData\";\n ErrorDetails[\"MANIFEST_LOAD_ERROR\"] = \"manifestLoadError\";\n ErrorDetails[\"MANIFEST_LOAD_TIMEOUT\"] = \"manifestLoadTimeOut\";\n ErrorDetails[\"MANIFEST_PARSING_ERROR\"] = \"manifestParsingError\";\n ErrorDetails[\"MANIFEST_INCOMPATIBLE_CODECS_ERROR\"] = \"manifestIncompatibleCodecsError\";\n ErrorDetails[\"LEVEL_EMPTY_ERROR\"] = \"levelEmptyError\";\n ErrorDetails[\"LEVEL_LOAD_ERROR\"] = \"levelLoadError\";\n ErrorDetails[\"LEVEL_LOAD_TIMEOUT\"] = \"levelLoadTimeOut\";\n ErrorDetails[\"LEVEL_SWITCH_ERROR\"] = \"levelSwitchError\";\n ErrorDetails[\"AUDIO_TRACK_LOAD_ERROR\"] = \"audioTrackLoadError\";\n ErrorDetails[\"AUDIO_TRACK_LOAD_TIMEOUT\"] = \"audioTrackLoadTimeOut\";\n ErrorDetails[\"SUBTITLE_LOAD_ERROR\"] = \"subtitleTrackLoadError\";\n ErrorDetails[\"SUBTITLE_TRACK_LOAD_TIMEOUT\"] = \"subtitleTrackLoadTimeOut\";\n ErrorDetails[\"FRAG_LOAD_ERROR\"] = \"fragLoadError\";\n ErrorDetails[\"FRAG_LOAD_TIMEOUT\"] = \"fragLoadTimeOut\";\n ErrorDetails[\"FRAG_DECRYPT_ERROR\"] = \"fragDecryptError\";\n ErrorDetails[\"FRAG_PARSING_ERROR\"] = \"fragParsingError\";\n ErrorDetails[\"REMUX_ALLOC_ERROR\"] = \"remuxAllocError\";\n ErrorDetails[\"KEY_LOAD_ERROR\"] = \"keyLoadError\";\n ErrorDetails[\"KEY_LOAD_TIMEOUT\"] = \"keyLoadTimeOut\";\n ErrorDetails[\"BUFFER_ADD_CODEC_ERROR\"] = \"bufferAddCodecError\";\n ErrorDetails[\"BUFFER_INCOMPATIBLE_CODECS_ERROR\"] = \"bufferIncompatibleCodecsError\";\n ErrorDetails[\"BUFFER_APPEND_ERROR\"] = \"bufferAppendError\";\n ErrorDetails[\"BUFFER_APPENDING_ERROR\"] = \"bufferAppendingError\";\n ErrorDetails[\"BUFFER_STALLED_ERROR\"] = \"bufferStalledError\";\n ErrorDetails[\"BUFFER_FULL_ERROR\"] = \"bufferFullError\";\n ErrorDetails[\"BUFFER_SEEK_OVER_HOLE\"] = \"bufferSeekOverHole\";\n ErrorDetails[\"BUFFER_NUDGE_ON_STALL\"] = \"bufferNudgeOnStall\";\n ErrorDetails[\"INTERNAL_EXCEPTION\"] = \"internalException\";\n ErrorDetails[\"INTERNAL_ABORTED\"] = \"aborted\";\n ErrorDetails[\"UNKNOWN\"] = \"unknown\";\n})(ErrorDetails || (ErrorDetails = {}));\n\n/***/ }),\n\n/***/ \"./src/events.ts\":\n/*!***********************!*\\\n !*** ./src/events.ts ***!\n \\***********************/\n/*! exports provided: Events */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Events\", function() { return Events; });\n/**\n * @readonly\n * @enum {string}\n */\nvar Events;\n\n(function (Events) {\n Events[\"MEDIA_ATTACHING\"] = \"hlsMediaAttaching\";\n Events[\"MEDIA_ATTACHED\"] = \"hlsMediaAttached\";\n Events[\"MEDIA_DETACHING\"] = \"hlsMediaDetaching\";\n Events[\"MEDIA_DETACHED\"] = \"hlsMediaDetached\";\n Events[\"BUFFER_RESET\"] = \"hlsBufferReset\";\n Events[\"BUFFER_CODECS\"] = \"hlsBufferCodecs\";\n Events[\"BUFFER_CREATED\"] = \"hlsBufferCreated\";\n Events[\"BUFFER_APPENDING\"] = \"hlsBufferAppending\";\n Events[\"BUFFER_APPENDED\"] = \"hlsBufferAppended\";\n Events[\"BUFFER_EOS\"] = \"hlsBufferEos\";\n Events[\"BUFFER_FLUSHING\"] = \"hlsBufferFlushing\";\n Events[\"BUFFER_FLUSHED\"] = \"hlsBufferFlushed\";\n Events[\"MANIFEST_LOADING\"] = \"hlsManifestLoading\";\n Events[\"MANIFEST_LOADED\"] = \"hlsManifestLoaded\";\n Events[\"MANIFEST_PARSED\"] = \"hlsManifestParsed\";\n Events[\"LEVEL_SWITCHING\"] = \"hlsLevelSwitching\";\n Events[\"LEVEL_SWITCHED\"] = \"hlsLevelSwitched\";\n Events[\"LEVEL_LOADING\"] = \"hlsLevelLoading\";\n Events[\"LEVEL_LOADED\"] = \"hlsLevelLoaded\";\n Events[\"LEVEL_UPDATED\"] = \"hlsLevelUpdated\";\n Events[\"LEVEL_PTS_UPDATED\"] = \"hlsLevelPtsUpdated\";\n Events[\"LEVELS_UPDATED\"] = \"hlsLevelsUpdated\";\n Events[\"AUDIO_TRACKS_UPDATED\"] = \"hlsAudioTracksUpdated\";\n Events[\"AUDIO_TRACK_SWITCHING\"] = \"hlsAudioTrackSwitching\";\n Events[\"AUDIO_TRACK_SWITCHED\"] = \"hlsAudioTrackSwitched\";\n Events[\"AUDIO_TRACK_LOADING\"] = \"hlsAudioTrackLoading\";\n Events[\"AUDIO_TRACK_LOADED\"] = \"hlsAudioTrackLoaded\";\n Events[\"SUBTITLE_TRACKS_UPDATED\"] = \"hlsSubtitleTracksUpdated\";\n Events[\"SUBTITLE_TRACKS_CLEARED\"] = \"hlsSubtitleTracksCleared\";\n Events[\"SUBTITLE_TRACK_SWITCH\"] = \"hlsSubtitleTrackSwitch\";\n Events[\"SUBTITLE_TRACK_LOADING\"] = \"hlsSubtitleTrackLoading\";\n Events[\"SUBTITLE_TRACK_LOADED\"] = \"hlsSubtitleTrackLoaded\";\n Events[\"SUBTITLE_FRAG_PROCESSED\"] = \"hlsSubtitleFragProcessed\";\n Events[\"CUES_PARSED\"] = \"hlsCuesParsed\";\n Events[\"NON_NATIVE_TEXT_TRACKS_FOUND\"] = \"hlsNonNativeTextTracksFound\";\n Events[\"INIT_PTS_FOUND\"] = \"hlsInitPtsFound\";\n Events[\"FRAG_LOADING\"] = \"hlsFragLoading\";\n Events[\"FRAG_LOAD_EMERGENCY_ABORTED\"] = \"hlsFragLoadEmergencyAborted\";\n Events[\"FRAG_LOADED\"] = \"hlsFragLoaded\";\n Events[\"FRAG_DECRYPTED\"] = \"hlsFragDecrypted\";\n Events[\"FRAG_PARSING_INIT_SEGMENT\"] = \"hlsFragParsingInitSegment\";\n Events[\"FRAG_PARSING_USERDATA\"] = \"hlsFragParsingUserdata\";\n Events[\"FRAG_PARSING_METADATA\"] = \"hlsFragParsingMetadata\";\n Events[\"FRAG_PARSED\"] = \"hlsFragParsed\";\n Events[\"FRAG_BUFFERED\"] = \"hlsFragBuffered\";\n Events[\"FRAG_CHANGED\"] = \"hlsFragChanged\";\n Events[\"FPS_DROP\"] = \"hlsFpsDrop\";\n Events[\"FPS_DROP_LEVEL_CAPPING\"] = \"hlsFpsDropLevelCapping\";\n Events[\"ERROR\"] = \"hlsError\";\n Events[\"DESTROYING\"] = \"hlsDestroying\";\n Events[\"KEY_LOADING\"] = \"hlsKeyLoading\";\n Events[\"KEY_LOADED\"] = \"hlsKeyLoaded\";\n Events[\"LIVE_BACK_BUFFER_REACHED\"] = \"hlsLiveBackBufferReached\";\n Events[\"BACK_BUFFER_REACHED\"] = \"hlsBackBufferReached\";\n})(Events || (Events = {}));\n\n/***/ }),\n\n/***/ \"./src/hls.ts\":\n/*!********************!*\\\n !*** ./src/hls.ts ***!\n \\********************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Hls; });\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! url-toolkit */ \"./node_modules/url-toolkit/src/url-toolkit.js\");\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(url_toolkit__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _loader_playlist_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loader/playlist-loader */ \"./src/loader/playlist-loader.ts\");\n/* harmony import */ var _loader_key_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loader/key-loader */ \"./src/loader/key-loader.ts\");\n/* harmony import */ var _controller_id3_track_controller__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./controller/id3-track-controller */ \"./src/controller/id3-track-controller.ts\");\n/* harmony import */ var _controller_latency_controller__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./controller/latency-controller */ \"./src/controller/latency-controller.ts\");\n/* harmony import */ var _controller_level_controller__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./controller/level-controller */ \"./src/controller/level-controller.ts\");\n/* harmony import */ var _controller_fragment_tracker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./controller/fragment-tracker */ \"./src/controller/fragment-tracker.ts\");\n/* harmony import */ var _controller_stream_controller__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./controller/stream-controller */ \"./src/controller/stream-controller.ts\");\n/* harmony import */ var _is_supported__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./is-supported */ \"./src/is-supported.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./config */ \"./src/config.ts\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! eventemitter3 */ \"./node_modules/eventemitter3/index.js\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./errors */ \"./src/errors.ts\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * @module Hls\n * @class\n * @constructor\n */\nvar Hls = /*#__PURE__*/function () {\n Hls.isSupported = function isSupported() {\n return Object(_is_supported__WEBPACK_IMPORTED_MODULE_8__[\"isSupported\"])();\n };\n\n /**\n * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.\n *\n * @constructs Hls\n * @param {HlsConfig} config\n */\n function Hls(userConfig) {\n if (userConfig === void 0) {\n userConfig = {};\n }\n\n this.config = void 0;\n this.userConfig = void 0;\n this.coreComponents = void 0;\n this.networkControllers = void 0;\n this._emitter = new eventemitter3__WEBPACK_IMPORTED_MODULE_11__[\"EventEmitter\"]();\n this._autoLevelCapping = void 0;\n this.abrController = void 0;\n this.bufferController = void 0;\n this.capLevelController = void 0;\n this.latencyController = void 0;\n this.levelController = void 0;\n this.streamController = void 0;\n this.audioTrackController = void 0;\n this.subtitleTrackController = void 0;\n this.emeController = void 0;\n this.cmcdController = void 0;\n this._media = null;\n this.url = null;\n var config = this.config = Object(_config__WEBPACK_IMPORTED_MODULE_10__[\"mergeConfig\"])(Hls.DefaultConfig, userConfig);\n this.userConfig = userConfig;\n Object(_utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"enableLogs\"])(config.debug);\n this._autoLevelCapping = -1;\n\n if (config.progressive) {\n Object(_config__WEBPACK_IMPORTED_MODULE_10__[\"enableStreamingMode\"])(config);\n } // core controllers and network loaders\n\n\n var ConfigAbrController = config.abrController,\n ConfigBufferController = config.bufferController,\n ConfigCapLevelController = config.capLevelController,\n ConfigFpsController = config.fpsController;\n var abrController = this.abrController = new ConfigAbrController(this);\n var bufferController = this.bufferController = new ConfigBufferController(this);\n var capLevelController = this.capLevelController = new ConfigCapLevelController(this);\n var fpsController = new ConfigFpsController(this);\n var playListLoader = new _loader_playlist_loader__WEBPACK_IMPORTED_MODULE_1__[\"default\"](this);\n var keyLoader = new _loader_key_loader__WEBPACK_IMPORTED_MODULE_2__[\"default\"](this);\n var id3TrackController = new _controller_id3_track_controller__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this); // network controllers\n\n var levelController = this.levelController = new _controller_level_controller__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this); // FragmentTracker must be defined before StreamController because the order of event handling is important\n\n var fragmentTracker = new _controller_fragment_tracker__WEBPACK_IMPORTED_MODULE_6__[\"FragmentTracker\"](this);\n var streamController = this.streamController = new _controller_stream_controller__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this, fragmentTracker); // Cap level controller uses streamController to flush the buffer\n\n capLevelController.setStreamController(streamController); // fpsController uses streamController to switch when frames are being dropped\n\n fpsController.setStreamController(streamController);\n var networkControllers = [levelController, streamController];\n this.networkControllers = networkControllers;\n var coreComponents = [playListLoader, keyLoader, abrController, bufferController, capLevelController, fpsController, id3TrackController, fragmentTracker];\n this.audioTrackController = this.createController(config.audioTrackController, null, networkControllers);\n this.createController(config.audioStreamController, fragmentTracker, networkControllers); // subtitleTrackController must be defined before because the order of event handling is important\n\n this.subtitleTrackController = this.createController(config.subtitleTrackController, null, networkControllers);\n this.createController(config.subtitleStreamController, fragmentTracker, networkControllers);\n this.createController(config.timelineController, null, coreComponents);\n this.emeController = this.createController(config.emeController, null, coreComponents);\n this.cmcdController = this.createController(config.cmcdController, null, coreComponents);\n this.latencyController = this.createController(_controller_latency_controller__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null, coreComponents);\n this.coreComponents = coreComponents;\n }\n\n var _proto = Hls.prototype;\n\n _proto.createController = function createController(ControllerClass, fragmentTracker, components) {\n if (ControllerClass) {\n var controllerInstance = fragmentTracker ? new ControllerClass(this, fragmentTracker) : new ControllerClass(this);\n\n if (components) {\n components.push(controllerInstance);\n }\n\n return controllerInstance;\n }\n\n return null;\n } // Delegate the EventEmitter through the public API of Hls.js\n ;\n\n _proto.on = function on(event, listener, context) {\n if (context === void 0) {\n context = this;\n }\n\n this._emitter.on(event, listener, context);\n };\n\n _proto.once = function once(event, listener, context) {\n if (context === void 0) {\n context = this;\n }\n\n this._emitter.once(event, listener, context);\n };\n\n _proto.removeAllListeners = function removeAllListeners(event) {\n this._emitter.removeAllListeners(event);\n };\n\n _proto.off = function off(event, listener, context, once) {\n if (context === void 0) {\n context = this;\n }\n\n this._emitter.off(event, listener, context, once);\n };\n\n _proto.listeners = function listeners(event) {\n return this._emitter.listeners(event);\n };\n\n _proto.emit = function emit(event, name, eventObject) {\n return this._emitter.emit(event, name, eventObject);\n };\n\n _proto.trigger = function trigger(event, eventObject) {\n if (this.config.debug) {\n return this.emit(event, event, eventObject);\n } else {\n try {\n return this.emit(event, event, eventObject);\n } catch (e) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].error('An internal error happened while handling event ' + event + '. Error message: \"' + e.message + '\". Here is a stacktrace:', e);\n this.trigger(_events__WEBPACK_IMPORTED_MODULE_12__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorTypes\"].OTHER_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"].INTERNAL_EXCEPTION,\n fatal: false,\n event: event,\n error: e\n });\n }\n }\n\n return false;\n };\n\n _proto.listenerCount = function listenerCount(event) {\n return this._emitter.listenerCount(event);\n }\n /**\n * Dispose of the instance\n */\n ;\n\n _proto.destroy = function destroy() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log('destroy');\n this.trigger(_events__WEBPACK_IMPORTED_MODULE_12__[\"Events\"].DESTROYING, undefined);\n this.detachMedia();\n this.removeAllListeners();\n this._autoLevelCapping = -1;\n this.url = null;\n this.networkControllers.forEach(function (component) {\n return component.destroy();\n });\n this.networkControllers.length = 0;\n this.coreComponents.forEach(function (component) {\n return component.destroy();\n });\n this.coreComponents.length = 0;\n }\n /**\n * Attaches Hls.js to a media element\n * @param {HTMLMediaElement} media\n */\n ;\n\n _proto.attachMedia = function attachMedia(media) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log('attachMedia');\n this._media = media;\n this.trigger(_events__WEBPACK_IMPORTED_MODULE_12__[\"Events\"].MEDIA_ATTACHING, {\n media: media\n });\n }\n /**\n * Detach Hls.js from the media\n */\n ;\n\n _proto.detachMedia = function detachMedia() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log('detachMedia');\n this.trigger(_events__WEBPACK_IMPORTED_MODULE_12__[\"Events\"].MEDIA_DETACHING, undefined);\n this._media = null;\n }\n /**\n * Set the source URL. Can be relative or absolute.\n * @param {string} url\n */\n ;\n\n _proto.loadSource = function loadSource(url) {\n this.stopLoad();\n var media = this.media;\n var loadedSource = this.url;\n var loadingSource = this.url = url_toolkit__WEBPACK_IMPORTED_MODULE_0__[\"buildAbsoluteURL\"](self.location.href, url, {\n alwaysNormalize: true\n });\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"loadSource:\" + loadingSource);\n\n if (media && loadedSource && loadedSource !== loadingSource && this.bufferController.hasSourceTypes()) {\n this.detachMedia();\n this.attachMedia(media);\n } // when attaching to a source URL, trigger a playlist load\n\n\n this.trigger(_events__WEBPACK_IMPORTED_MODULE_12__[\"Events\"].MANIFEST_LOADING, {\n url: url\n });\n }\n /**\n * Start loading data from the stream source.\n * Depending on default config, client starts loading automatically when a source is set.\n *\n * @param {number} startPosition Set the start position to stream from\n * @default -1 None (from earliest point)\n */\n ;\n\n _proto.startLoad = function startLoad(startPosition) {\n if (startPosition === void 0) {\n startPosition = -1;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"startLoad(\" + startPosition + \")\");\n this.networkControllers.forEach(function (controller) {\n controller.startLoad(startPosition);\n });\n }\n /**\n * Stop loading of any stream data.\n */\n ;\n\n _proto.stopLoad = function stopLoad() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log('stopLoad');\n this.networkControllers.forEach(function (controller) {\n controller.stopLoad();\n });\n }\n /**\n * Swap through possible audio codecs in the stream (for example to switch from stereo to 5.1)\n */\n ;\n\n _proto.swapAudioCodec = function swapAudioCodec() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log('swapAudioCodec');\n this.streamController.swapAudioCodec();\n }\n /**\n * When the media-element fails, this allows to detach and then re-attach it\n * as one call (convenience method).\n *\n * Automatic recovery of media-errors by this process is configurable.\n */\n ;\n\n _proto.recoverMediaError = function recoverMediaError() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log('recoverMediaError');\n var media = this._media;\n this.detachMedia();\n\n if (media) {\n this.attachMedia(media);\n }\n };\n\n _proto.removeLevel = function removeLevel(levelIndex, urlId) {\n if (urlId === void 0) {\n urlId = 0;\n }\n\n this.levelController.removeLevel(levelIndex, urlId);\n }\n /**\n * @type {Level[]}\n */\n ;\n\n _createClass(Hls, [{\n key: \"levels\",\n get: function get() {\n var levels = this.levelController.levels;\n return levels ? levels : [];\n }\n /**\n * Index of quality level currently played\n * @type {number}\n */\n\n }, {\n key: \"currentLevel\",\n get: function get() {\n return this.streamController.currentLevel;\n }\n /**\n * Set quality level index immediately .\n * This will flush the current buffer to replace the quality asap.\n * That means playback will interrupt at least shortly to re-buffer and re-sync eventually.\n * @type {number} -1 for automatic level selection\n */\n ,\n set: function set(newLevel) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"set currentLevel:\" + newLevel);\n this.loadLevel = newLevel;\n this.abrController.clearTimer();\n this.streamController.immediateLevelSwitch();\n }\n /**\n * Index of next quality level loaded as scheduled by stream controller.\n * @type {number}\n */\n\n }, {\n key: \"nextLevel\",\n get: function get() {\n return this.streamController.nextLevel;\n }\n /**\n * Set quality level index for next loaded data.\n * This will switch the video quality asap, without interrupting playback.\n * May abort current loading of data, and flush parts of buffer (outside currently played fragment region).\n * @type {number} -1 for automatic level selection\n */\n ,\n set: function set(newLevel) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"set nextLevel:\" + newLevel);\n this.levelController.manualLevel = newLevel;\n this.streamController.nextLevelSwitch();\n }\n /**\n * Return the quality level of the currently or last (of none is loaded currently) segment\n * @type {number}\n */\n\n }, {\n key: \"loadLevel\",\n get: function get() {\n return this.levelController.level;\n }\n /**\n * Set quality level index for next loaded data in a conservative way.\n * This will switch the quality without flushing, but interrupt current loading.\n * Thus the moment when the quality switch will appear in effect will only be after the already existing buffer.\n * @type {number} newLevel -1 for automatic level selection\n */\n ,\n set: function set(newLevel) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"set loadLevel:\" + newLevel);\n this.levelController.manualLevel = newLevel;\n }\n /**\n * get next quality level loaded\n * @type {number}\n */\n\n }, {\n key: \"nextLoadLevel\",\n get: function get() {\n return this.levelController.nextLoadLevel;\n }\n /**\n * Set quality level of next loaded segment in a fully \"non-destructive\" way.\n * Same as `loadLevel` but will wait for next switch (until current loading is done).\n * @type {number} level\n */\n ,\n set: function set(level) {\n this.levelController.nextLoadLevel = level;\n }\n /**\n * Return \"first level\": like a default level, if not set,\n * falls back to index of first level referenced in manifest\n * @type {number}\n */\n\n }, {\n key: \"firstLevel\",\n get: function get() {\n return Math.max(this.levelController.firstLevel, this.minAutoLevel);\n }\n /**\n * Sets \"first-level\", see getter.\n * @type {number}\n */\n ,\n set: function set(newLevel) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"set firstLevel:\" + newLevel);\n this.levelController.firstLevel = newLevel;\n }\n /**\n * Return start level (level of first fragment that will be played back)\n * if not overrided by user, first level appearing in manifest will be used as start level\n * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n * (determined from download of first segment)\n * @type {number}\n */\n\n }, {\n key: \"startLevel\",\n get: function get() {\n return this.levelController.startLevel;\n }\n /**\n * set start level (level of first fragment that will be played back)\n * if not overrided by user, first level appearing in manifest will be used as start level\n * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n * (determined from download of first segment)\n * @type {number} newLevel\n */\n ,\n set: function set(newLevel) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"set startLevel:\" + newLevel); // if not in automatic start level detection, ensure startLevel is greater than minAutoLevel\n\n if (newLevel !== -1) {\n newLevel = Math.max(newLevel, this.minAutoLevel);\n }\n\n this.levelController.startLevel = newLevel;\n }\n /**\n * Get the current setting for capLevelToPlayerSize\n *\n * @type {boolean}\n */\n\n }, {\n key: \"capLevelToPlayerSize\",\n get: function get() {\n return this.config.capLevelToPlayerSize;\n }\n /**\n * set dynamically set capLevelToPlayerSize against (`CapLevelController`)\n *\n * @type {boolean}\n */\n ,\n set: function set(shouldStartCapping) {\n var newCapLevelToPlayerSize = !!shouldStartCapping;\n\n if (newCapLevelToPlayerSize !== this.config.capLevelToPlayerSize) {\n if (newCapLevelToPlayerSize) {\n this.capLevelController.startCapping(); // If capping occurs, nextLevelSwitch will happen based on size.\n } else {\n this.capLevelController.stopCapping();\n this.autoLevelCapping = -1;\n this.streamController.nextLevelSwitch(); // Now we're uncapped, get the next level asap.\n }\n\n this.config.capLevelToPlayerSize = newCapLevelToPlayerSize;\n }\n }\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n * @type {number}\n */\n\n }, {\n key: \"autoLevelCapping\",\n get: function get() {\n return this._autoLevelCapping;\n }\n /**\n * get bandwidth estimate\n * @type {number}\n */\n ,\n set:\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n * @type {number}\n */\n function set(newLevel) {\n if (this._autoLevelCapping !== newLevel) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_9__[\"logger\"].log(\"set autoLevelCapping:\" + newLevel);\n this._autoLevelCapping = newLevel;\n }\n }\n /**\n * True when automatic level selection enabled\n * @type {boolean}\n */\n\n }, {\n key: \"bandwidthEstimate\",\n get: function get() {\n var bwEstimator = this.abrController.bwEstimator;\n\n if (!bwEstimator) {\n return NaN;\n }\n\n return bwEstimator.getEstimate();\n }\n }, {\n key: \"autoLevelEnabled\",\n get: function get() {\n return this.levelController.manualLevel === -1;\n }\n /**\n * Level set manually (if any)\n * @type {number}\n */\n\n }, {\n key: \"manualLevel\",\n get: function get() {\n return this.levelController.manualLevel;\n }\n /**\n * min level selectable in auto mode according to config.minAutoBitrate\n * @type {number}\n */\n\n }, {\n key: \"minAutoLevel\",\n get: function get() {\n var levels = this.levels,\n minAutoBitrate = this.config.minAutoBitrate;\n if (!levels) return 0;\n var len = levels.length;\n\n for (var i = 0; i < len; i++) {\n if (levels[i].maxBitrate > minAutoBitrate) {\n return i;\n }\n }\n\n return 0;\n }\n /**\n * max level selectable in auto mode according to autoLevelCapping\n * @type {number}\n */\n\n }, {\n key: \"maxAutoLevel\",\n get: function get() {\n var levels = this.levels,\n autoLevelCapping = this.autoLevelCapping;\n var maxAutoLevel;\n\n if (autoLevelCapping === -1 && levels && levels.length) {\n maxAutoLevel = levels.length - 1;\n } else {\n maxAutoLevel = autoLevelCapping;\n }\n\n return maxAutoLevel;\n }\n /**\n * next automatically selected quality level\n * @type {number}\n */\n\n }, {\n key: \"nextAutoLevel\",\n get: function get() {\n // ensure next auto level is between min and max auto level\n return Math.min(Math.max(this.abrController.nextAutoLevel, this.minAutoLevel), this.maxAutoLevel);\n }\n /**\n * this setter is used to force next auto level.\n * this is useful to force a switch down in auto mode:\n * in case of load error on level N, hls.js can set nextAutoLevel to N-1 for example)\n * forced value is valid for one fragment. upon successful frag loading at forced level,\n * this value will be resetted to -1 by ABR controller.\n * @type {number}\n */\n ,\n set: function set(nextLevel) {\n this.abrController.nextAutoLevel = Math.max(this.minAutoLevel, nextLevel);\n }\n /**\n * @type {AudioTrack[]}\n */\n\n }, {\n key: \"audioTracks\",\n get: function get() {\n var audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTracks : [];\n }\n /**\n * index of the selected audio track (index in audio track lists)\n * @type {number}\n */\n\n }, {\n key: \"audioTrack\",\n get: function get() {\n var audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTrack : -1;\n }\n /**\n * selects an audio track, based on its index in audio track lists\n * @type {number}\n */\n ,\n set: function set(audioTrackId) {\n var audioTrackController = this.audioTrackController;\n\n if (audioTrackController) {\n audioTrackController.audioTrack = audioTrackId;\n }\n }\n /**\n * get alternate subtitle tracks list from playlist\n * @type {MediaPlaylist[]}\n */\n\n }, {\n key: \"subtitleTracks\",\n get: function get() {\n var subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleTracks : [];\n }\n /**\n * index of the selected subtitle track (index in subtitle track lists)\n * @type {number}\n */\n\n }, {\n key: \"subtitleTrack\",\n get: function get() {\n var subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleTrack : -1;\n },\n set:\n /**\n * select an subtitle track, based on its index in subtitle track lists\n * @type {number}\n */\n function set(subtitleTrackId) {\n var subtitleTrackController = this.subtitleTrackController;\n\n if (subtitleTrackController) {\n subtitleTrackController.subtitleTrack = subtitleTrackId;\n }\n }\n /**\n * @type {boolean}\n */\n\n }, {\n key: \"media\",\n get: function get() {\n return this._media;\n }\n }, {\n key: \"subtitleDisplay\",\n get: function get() {\n var subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleDisplay : false;\n }\n /**\n * Enable/disable subtitle display rendering\n * @type {boolean}\n */\n ,\n set: function set(value) {\n var subtitleTrackController = this.subtitleTrackController;\n\n if (subtitleTrackController) {\n subtitleTrackController.subtitleDisplay = value;\n }\n }\n /**\n * get mode for Low-Latency HLS loading\n * @type {boolean}\n */\n\n }, {\n key: \"lowLatencyMode\",\n get: function get() {\n return this.config.lowLatencyMode;\n }\n /**\n * Enable/disable Low-Latency HLS part playlist and segment loading, and start live streams at playlist PART-HOLD-BACK rather than HOLD-BACK.\n * @type {boolean}\n */\n ,\n set: function set(mode) {\n this.config.lowLatencyMode = mode;\n }\n /**\n * position (in seconds) of live sync point (ie edge of live position minus safety delay defined by ```hls.config.liveSyncDuration```)\n * @type {number}\n */\n\n }, {\n key: \"liveSyncPosition\",\n get: function get() {\n return this.latencyController.liveSyncPosition;\n }\n /**\n * estimated position (in seconds) of live edge (ie edge of live playlist plus time sync playlist advanced)\n * returns 0 before first playlist is loaded\n * @type {number}\n */\n\n }, {\n key: \"latency\",\n get: function get() {\n return this.latencyController.latency;\n }\n /**\n * maximum distance from the edge before the player seeks forward to ```hls.liveSyncPosition```\n * configured using ```liveMaxLatencyDurationCount``` (multiple of target duration) or ```liveMaxLatencyDuration```\n * returns 0 before first playlist is loaded\n * @type {number}\n */\n\n }, {\n key: \"maxLatency\",\n get: function get() {\n return this.latencyController.maxLatency;\n }\n /**\n * target distance from the edge as calculated by the latency controller\n * @type {number}\n */\n\n }, {\n key: \"targetLatency\",\n get: function get() {\n return this.latencyController.targetLatency;\n }\n /**\n * the rate at which the edge of the current live playlist is advancing or 1 if there is none\n * @type {number}\n */\n\n }, {\n key: \"drift\",\n get: function get() {\n return this.latencyController.drift;\n }\n /**\n * set to true when startLoad is called before MANIFEST_PARSED event\n * @type {boolean}\n */\n\n }, {\n key: \"forceStartLoad\",\n get: function get() {\n return this.streamController.forceStartLoad;\n }\n }], [{\n key: \"version\",\n get: function get() {\n return \"1.1.5\";\n }\n }, {\n key: \"Events\",\n get: function get() {\n return _events__WEBPACK_IMPORTED_MODULE_12__[\"Events\"];\n }\n }, {\n key: \"ErrorTypes\",\n get: function get() {\n return _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorTypes\"];\n }\n }, {\n key: \"ErrorDetails\",\n get: function get() {\n return _errors__WEBPACK_IMPORTED_MODULE_13__[\"ErrorDetails\"];\n }\n }, {\n key: \"DefaultConfig\",\n get: function get() {\n if (!Hls.defaultConfig) {\n return _config__WEBPACK_IMPORTED_MODULE_10__[\"hlsDefaultConfig\"];\n }\n\n return Hls.defaultConfig;\n }\n /**\n * @type {HlsConfig}\n */\n ,\n set: function set(defaultConfig) {\n Hls.defaultConfig = defaultConfig;\n }\n }]);\n\n return Hls;\n}();\n\nHls.defaultConfig = void 0;\n\n\n/***/ }),\n\n/***/ \"./src/is-supported.ts\":\n/*!*****************************!*\\\n !*** ./src/is-supported.ts ***!\n \\*****************************/\n/*! exports provided: isSupported, changeTypeSupported */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSupported\", function() { return isSupported; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"changeTypeSupported\", function() { return changeTypeSupported; });\n/* harmony import */ var _utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/mediasource-helper */ \"./src/utils/mediasource-helper.ts\");\n\n\nfunction getSourceBuffer() {\n return self.SourceBuffer || self.WebKitSourceBuffer;\n}\n\nfunction isSupported() {\n var mediaSource = Object(_utils_mediasource_helper__WEBPACK_IMPORTED_MODULE_0__[\"getMediaSource\"])();\n\n if (!mediaSource) {\n return false;\n }\n\n var sourceBuffer = getSourceBuffer();\n var isTypeSupported = mediaSource && typeof mediaSource.isTypeSupported === 'function' && mediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"'); // if SourceBuffer is exposed ensure its API is valid\n // safari and old version of Chrome doe not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible\n\n var sourceBufferValidAPI = !sourceBuffer || sourceBuffer.prototype && typeof sourceBuffer.prototype.appendBuffer === 'function' && typeof sourceBuffer.prototype.remove === 'function';\n return !!isTypeSupported && !!sourceBufferValidAPI;\n}\nfunction changeTypeSupported() {\n var _sourceBuffer$prototy;\n\n var sourceBuffer = getSourceBuffer();\n return typeof (sourceBuffer === null || sourceBuffer === void 0 ? void 0 : (_sourceBuffer$prototy = sourceBuffer.prototype) === null || _sourceBuffer$prototy === void 0 ? void 0 : _sourceBuffer$prototy.changeType) === 'function';\n}\n\n/***/ }),\n\n/***/ \"./src/loader/fragment-loader.ts\":\n/*!***************************************!*\\\n !*** ./src/loader/fragment-loader.ts ***!\n \\***************************************/\n/*! exports provided: default, LoadError */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FragmentLoader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LoadError\", function() { return LoadError; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n\n\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\nvar MIN_CHUNK_SIZE = Math.pow(2, 17); // 128kb\n\nvar FragmentLoader = /*#__PURE__*/function () {\n function FragmentLoader(config) {\n this.config = void 0;\n this.loader = null;\n this.partLoadTimeout = -1;\n this.config = config;\n }\n\n var _proto = FragmentLoader.prototype;\n\n _proto.destroy = function destroy() {\n if (this.loader) {\n this.loader.destroy();\n this.loader = null;\n }\n };\n\n _proto.abort = function abort() {\n if (this.loader) {\n // Abort the loader for current fragment. Only one may load at any given time\n this.loader.abort();\n }\n };\n\n _proto.load = function load(frag, _onProgress) {\n var _this = this;\n\n var url = frag.url;\n\n if (!url) {\n return Promise.reject(new LoadError({\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].FRAG_LOAD_ERROR,\n fatal: false,\n frag: frag,\n networkDetails: null\n }, \"Fragment does not have a \" + (url ? 'part list' : 'url')));\n }\n\n this.abort();\n var config = this.config;\n var FragmentILoader = config.fLoader;\n var DefaultILoader = config.loader;\n return new Promise(function (resolve, reject) {\n if (_this.loader) {\n _this.loader.destroy();\n }\n\n var loader = _this.loader = frag.loader = FragmentILoader ? new FragmentILoader(config) : new DefaultILoader(config);\n var loaderContext = createLoaderContext(frag);\n var loaderConfig = {\n timeout: config.fragLoadingTimeOut,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: config.fragLoadingMaxRetryTimeout,\n highWaterMark: MIN_CHUNK_SIZE\n }; // Assign frag stats to the loader's stats reference\n\n frag.stats = loader.stats;\n loader.load(loaderContext, loaderConfig, {\n onSuccess: function onSuccess(response, stats, context, networkDetails) {\n _this.resetLoader(frag, loader);\n\n resolve({\n frag: frag,\n part: null,\n payload: response.data,\n networkDetails: networkDetails\n });\n },\n onError: function onError(response, context, networkDetails) {\n _this.resetLoader(frag, loader);\n\n reject(new LoadError({\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].FRAG_LOAD_ERROR,\n fatal: false,\n frag: frag,\n response: response,\n networkDetails: networkDetails\n }));\n },\n onAbort: function onAbort(stats, context, networkDetails) {\n _this.resetLoader(frag, loader);\n\n reject(new LoadError({\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].INTERNAL_ABORTED,\n fatal: false,\n frag: frag,\n networkDetails: networkDetails\n }));\n },\n onTimeout: function onTimeout(response, context, networkDetails) {\n _this.resetLoader(frag, loader);\n\n reject(new LoadError({\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].FRAG_LOAD_TIMEOUT,\n fatal: false,\n frag: frag,\n networkDetails: networkDetails\n }));\n },\n onProgress: function onProgress(stats, context, data, networkDetails) {\n if (_onProgress) {\n _onProgress({\n frag: frag,\n part: null,\n payload: data,\n networkDetails: networkDetails\n });\n }\n }\n });\n });\n };\n\n _proto.loadPart = function loadPart(frag, part, onProgress) {\n var _this2 = this;\n\n this.abort();\n var config = this.config;\n var FragmentILoader = config.fLoader;\n var DefaultILoader = config.loader;\n return new Promise(function (resolve, reject) {\n if (_this2.loader) {\n _this2.loader.destroy();\n }\n\n var loader = _this2.loader = frag.loader = FragmentILoader ? new FragmentILoader(config) : new DefaultILoader(config);\n var loaderContext = createLoaderContext(frag, part);\n var loaderConfig = {\n timeout: config.fragLoadingTimeOut,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: config.fragLoadingMaxRetryTimeout,\n highWaterMark: MIN_CHUNK_SIZE\n }; // Assign part stats to the loader's stats reference\n\n part.stats = loader.stats;\n loader.load(loaderContext, loaderConfig, {\n onSuccess: function onSuccess(response, stats, context, networkDetails) {\n _this2.resetLoader(frag, loader);\n\n _this2.updateStatsFromPart(frag, part);\n\n var partLoadedData = {\n frag: frag,\n part: part,\n payload: response.data,\n networkDetails: networkDetails\n };\n onProgress(partLoadedData);\n resolve(partLoadedData);\n },\n onError: function onError(response, context, networkDetails) {\n _this2.resetLoader(frag, loader);\n\n reject(new LoadError({\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].FRAG_LOAD_ERROR,\n fatal: false,\n frag: frag,\n part: part,\n response: response,\n networkDetails: networkDetails\n }));\n },\n onAbort: function onAbort(stats, context, networkDetails) {\n frag.stats.aborted = part.stats.aborted;\n\n _this2.resetLoader(frag, loader);\n\n reject(new LoadError({\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].INTERNAL_ABORTED,\n fatal: false,\n frag: frag,\n part: part,\n networkDetails: networkDetails\n }));\n },\n onTimeout: function onTimeout(response, context, networkDetails) {\n _this2.resetLoader(frag, loader);\n\n reject(new LoadError({\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].FRAG_LOAD_TIMEOUT,\n fatal: false,\n frag: frag,\n part: part,\n networkDetails: networkDetails\n }));\n }\n });\n });\n };\n\n _proto.updateStatsFromPart = function updateStatsFromPart(frag, part) {\n var fragStats = frag.stats;\n var partStats = part.stats;\n var partTotal = partStats.total;\n fragStats.loaded += partStats.loaded;\n\n if (partTotal) {\n var estTotalParts = Math.round(frag.duration / part.duration);\n var estLoadedParts = Math.min(Math.round(fragStats.loaded / partTotal), estTotalParts);\n var estRemainingParts = estTotalParts - estLoadedParts;\n var estRemainingBytes = estRemainingParts * Math.round(fragStats.loaded / estLoadedParts);\n fragStats.total = fragStats.loaded + estRemainingBytes;\n } else {\n fragStats.total = Math.max(fragStats.loaded, fragStats.total);\n }\n\n var fragLoading = fragStats.loading;\n var partLoading = partStats.loading;\n\n if (fragLoading.start) {\n // add to fragment loader latency\n fragLoading.first += partLoading.first - partLoading.start;\n } else {\n fragLoading.start = partLoading.start;\n fragLoading.first = partLoading.first;\n }\n\n fragLoading.end = partLoading.end;\n };\n\n _proto.resetLoader = function resetLoader(frag, loader) {\n frag.loader = null;\n\n if (this.loader === loader) {\n self.clearTimeout(this.partLoadTimeout);\n this.loader = null;\n }\n\n loader.destroy();\n };\n\n return FragmentLoader;\n}();\n\n\n\nfunction createLoaderContext(frag, part) {\n if (part === void 0) {\n part = null;\n }\n\n var segment = part || frag;\n var loaderContext = {\n frag: frag,\n part: part,\n responseType: 'arraybuffer',\n url: segment.url,\n headers: {},\n rangeStart: 0,\n rangeEnd: 0\n };\n var start = segment.byteRangeStartOffset;\n var end = segment.byteRangeEndOffset;\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(start) && Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(end)) {\n loaderContext.rangeStart = start;\n loaderContext.rangeEnd = end;\n }\n\n return loaderContext;\n}\n\nvar LoadError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(LoadError, _Error);\n\n function LoadError(data) {\n var _this3;\n\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n\n _this3 = _Error.call.apply(_Error, [this].concat(params)) || this;\n _this3.data = void 0;\n _this3.data = data;\n return _this3;\n }\n\n return LoadError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\n/***/ }),\n\n/***/ \"./src/loader/fragment.ts\":\n/*!********************************!*\\\n !*** ./src/loader/fragment.ts ***!\n \\********************************/\n/*! exports provided: ElementaryStreamTypes, BaseSegment, Fragment, Part */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ElementaryStreamTypes\", function() { return ElementaryStreamTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BaseSegment\", function() { return BaseSegment; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Fragment\", function() { return Fragment; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Part\", function() { return Part; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! url-toolkit */ \"./node_modules/url-toolkit/src/url-toolkit.js\");\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(url_toolkit__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _level_key__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./level-key */ \"./src/loader/level-key.ts\");\n/* harmony import */ var _load_stats__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./load-stats */ \"./src/loader/load-stats.ts\");\n\n\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\n\n\n\nvar ElementaryStreamTypes;\n\n(function (ElementaryStreamTypes) {\n ElementaryStreamTypes[\"AUDIO\"] = \"audio\";\n ElementaryStreamTypes[\"VIDEO\"] = \"video\";\n ElementaryStreamTypes[\"AUDIOVIDEO\"] = \"audiovideo\";\n})(ElementaryStreamTypes || (ElementaryStreamTypes = {}));\n\nvar BaseSegment = /*#__PURE__*/function () {\n // baseurl is the URL to the playlist\n // relurl is the portion of the URL that comes from inside the playlist.\n // Holds the types of data this fragment supports\n function BaseSegment(baseurl) {\n var _this$elementaryStrea;\n\n this._byteRange = null;\n this._url = null;\n this.baseurl = void 0;\n this.relurl = void 0;\n this.elementaryStreams = (_this$elementaryStrea = {}, _this$elementaryStrea[ElementaryStreamTypes.AUDIO] = null, _this$elementaryStrea[ElementaryStreamTypes.VIDEO] = null, _this$elementaryStrea[ElementaryStreamTypes.AUDIOVIDEO] = null, _this$elementaryStrea);\n this.baseurl = baseurl;\n } // setByteRange converts a EXT-X-BYTERANGE attribute into a two element array\n\n\n var _proto = BaseSegment.prototype;\n\n _proto.setByteRange = function setByteRange(value, previous) {\n var params = value.split('@', 2);\n var byteRange = [];\n\n if (params.length === 1) {\n byteRange[0] = previous ? previous.byteRangeEndOffset : 0;\n } else {\n byteRange[0] = parseInt(params[1]);\n }\n\n byteRange[1] = parseInt(params[0]) + byteRange[0];\n this._byteRange = byteRange;\n };\n\n _createClass(BaseSegment, [{\n key: \"byteRange\",\n get: function get() {\n if (!this._byteRange) {\n return [];\n }\n\n return this._byteRange;\n }\n }, {\n key: \"byteRangeStartOffset\",\n get: function get() {\n return this.byteRange[0];\n }\n }, {\n key: \"byteRangeEndOffset\",\n get: function get() {\n return this.byteRange[1];\n }\n }, {\n key: \"url\",\n get: function get() {\n if (!this._url && this.baseurl && this.relurl) {\n this._url = Object(url_toolkit__WEBPACK_IMPORTED_MODULE_1__[\"buildAbsoluteURL\"])(this.baseurl, this.relurl, {\n alwaysNormalize: true\n });\n }\n\n return this._url || '';\n },\n set: function set(value) {\n this._url = value;\n }\n }]);\n\n return BaseSegment;\n}();\nvar Fragment = /*#__PURE__*/function (_BaseSegment) {\n _inheritsLoose(Fragment, _BaseSegment);\n\n // EXTINF has to be present for a m38 to be considered valid\n // sn notates the sequence number for a segment, and if set to a string can be 'initSegment'\n // levelkey is the EXT-X-KEY that applies to this segment for decryption\n // core difference from the private field _decryptdata is the lack of the initialized IV\n // _decryptdata will set the IV for this segment based on the segment number in the fragment\n // A string representing the fragment type\n // A reference to the loader. Set while the fragment is loading, and removed afterwards. Used to abort fragment loading\n // The level/track index to which the fragment belongs\n // The continuity counter of the fragment\n // The starting Presentation Time Stamp (PTS) of the fragment. Set after transmux complete.\n // The ending Presentation Time Stamp (PTS) of the fragment. Set after transmux complete.\n // The latest Presentation Time Stamp (PTS) appended to the buffer.\n // The starting Decode Time Stamp (DTS) of the fragment. Set after transmux complete.\n // The ending Decode Time Stamp (DTS) of the fragment. Set after transmux complete.\n // The start time of the fragment, as listed in the manifest. Updated after transmux complete.\n // Set by `updateFragPTSDTS` in level-helper\n // The maximum starting Presentation Time Stamp (audio/video PTS) of the fragment. Set after transmux complete.\n // The minimum ending Presentation Time Stamp (audio/video PTS) of the fragment. Set after transmux complete.\n // Load/parse timing information\n // A flag indicating whether the segment was downloaded in order to test bitrate, and was not buffered\n // #EXTINF segment title\n // The Media Initialization Section for this segment\n function Fragment(type, baseurl) {\n var _this;\n\n _this = _BaseSegment.call(this, baseurl) || this;\n _this._decryptdata = null;\n _this.rawProgramDateTime = null;\n _this.programDateTime = null;\n _this.tagList = [];\n _this.duration = 0;\n _this.sn = 0;\n _this.levelkey = void 0;\n _this.type = void 0;\n _this.loader = null;\n _this.level = -1;\n _this.cc = 0;\n _this.startPTS = void 0;\n _this.endPTS = void 0;\n _this.appendedPTS = void 0;\n _this.startDTS = void 0;\n _this.endDTS = void 0;\n _this.start = 0;\n _this.deltaPTS = void 0;\n _this.maxStartPTS = void 0;\n _this.minEndPTS = void 0;\n _this.stats = new _load_stats__WEBPACK_IMPORTED_MODULE_4__[\"LoadStats\"]();\n _this.urlId = 0;\n _this.data = void 0;\n _this.bitrateTest = false;\n _this.title = null;\n _this.initSegment = null;\n _this.type = type;\n return _this;\n }\n\n var _proto2 = Fragment.prototype;\n\n /**\n * Utility method for parseLevelPlaylist to create an initialization vector for a given segment\n * @param {number} segmentNumber - segment number to generate IV with\n * @returns {Uint8Array}\n */\n _proto2.createInitializationVector = function createInitializationVector(segmentNumber) {\n var uint8View = new Uint8Array(16);\n\n for (var i = 12; i < 16; i++) {\n uint8View[i] = segmentNumber >> 8 * (15 - i) & 0xff;\n }\n\n return uint8View;\n }\n /**\n * Utility method for parseLevelPlaylist to get a fragment's decryption data from the currently parsed encryption key data\n * @param levelkey - a playlist's encryption info\n * @param segmentNumber - the fragment's segment number\n * @returns {LevelKey} - an object to be applied as a fragment's decryptdata\n */\n ;\n\n _proto2.setDecryptDataFromLevelKey = function setDecryptDataFromLevelKey(levelkey, segmentNumber) {\n var decryptdata = levelkey;\n\n if ((levelkey === null || levelkey === void 0 ? void 0 : levelkey.method) === 'AES-128' && levelkey.uri && !levelkey.iv) {\n decryptdata = _level_key__WEBPACK_IMPORTED_MODULE_3__[\"LevelKey\"].fromURI(levelkey.uri);\n decryptdata.method = levelkey.method;\n decryptdata.iv = this.createInitializationVector(segmentNumber);\n decryptdata.keyFormat = 'identity';\n }\n\n return decryptdata;\n };\n\n _proto2.setElementaryStreamInfo = function setElementaryStreamInfo(type, startPTS, endPTS, startDTS, endDTS, partial) {\n if (partial === void 0) {\n partial = false;\n }\n\n var elementaryStreams = this.elementaryStreams;\n var info = elementaryStreams[type];\n\n if (!info) {\n elementaryStreams[type] = {\n startPTS: startPTS,\n endPTS: endPTS,\n startDTS: startDTS,\n endDTS: endDTS,\n partial: partial\n };\n return;\n }\n\n info.startPTS = Math.min(info.startPTS, startPTS);\n info.endPTS = Math.max(info.endPTS, endPTS);\n info.startDTS = Math.min(info.startDTS, startDTS);\n info.endDTS = Math.max(info.endDTS, endDTS);\n };\n\n _proto2.clearElementaryStreamInfo = function clearElementaryStreamInfo() {\n var elementaryStreams = this.elementaryStreams;\n elementaryStreams[ElementaryStreamTypes.AUDIO] = null;\n elementaryStreams[ElementaryStreamTypes.VIDEO] = null;\n elementaryStreams[ElementaryStreamTypes.AUDIOVIDEO] = null;\n };\n\n _createClass(Fragment, [{\n key: \"decryptdata\",\n get: function get() {\n if (!this.levelkey && !this._decryptdata) {\n return null;\n }\n\n if (!this._decryptdata && this.levelkey) {\n var sn = this.sn;\n\n if (typeof sn !== 'number') {\n // We are fetching decryption data for a initialization segment\n // If the segment was encrypted with AES-128\n // It must have an IV defined. We cannot substitute the Segment Number in.\n if (this.levelkey && this.levelkey.method === 'AES-128' && !this.levelkey.iv) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"missing IV for initialization segment with method=\\\"\" + this.levelkey.method + \"\\\" - compliance issue\");\n }\n /*\n Be converted to a Number.\n 'initSegment' will become NaN.\n NaN, which when converted through ToInt32() -> +0.\n ---\n Explicitly set sn to resulting value from implicit conversions 'initSegment' values for IV generation.\n */\n\n\n sn = 0;\n }\n\n this._decryptdata = this.setDecryptDataFromLevelKey(this.levelkey, sn);\n }\n\n return this._decryptdata;\n }\n }, {\n key: \"end\",\n get: function get() {\n return this.start + this.duration;\n }\n }, {\n key: \"endProgramDateTime\",\n get: function get() {\n if (this.programDateTime === null) {\n return null;\n }\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(this.programDateTime)) {\n return null;\n }\n\n var duration = !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(this.duration) ? 0 : this.duration;\n return this.programDateTime + duration * 1000;\n }\n }, {\n key: \"encrypted\",\n get: function get() {\n var _this$decryptdata;\n\n // At the m3u8-parser level we need to add support for manifest signalled keyformats\n // when we want the fragment to start reporting that it is encrypted.\n // Currently, keyFormat will only be set for identity keys\n if ((_this$decryptdata = this.decryptdata) !== null && _this$decryptdata !== void 0 && _this$decryptdata.keyFormat && this.decryptdata.uri) {\n return true;\n }\n\n return false;\n }\n }]);\n\n return Fragment;\n}(BaseSegment);\nvar Part = /*#__PURE__*/function (_BaseSegment2) {\n _inheritsLoose(Part, _BaseSegment2);\n\n function Part(partAttrs, frag, baseurl, index, previous) {\n var _this2;\n\n _this2 = _BaseSegment2.call(this, baseurl) || this;\n _this2.fragOffset = 0;\n _this2.duration = 0;\n _this2.gap = false;\n _this2.independent = false;\n _this2.relurl = void 0;\n _this2.fragment = void 0;\n _this2.index = void 0;\n _this2.stats = new _load_stats__WEBPACK_IMPORTED_MODULE_4__[\"LoadStats\"]();\n _this2.duration = partAttrs.decimalFloatingPoint('DURATION');\n _this2.gap = partAttrs.bool('GAP');\n _this2.independent = partAttrs.bool('INDEPENDENT');\n _this2.relurl = partAttrs.enumeratedString('URI');\n _this2.fragment = frag;\n _this2.index = index;\n var byteRange = partAttrs.enumeratedString('BYTERANGE');\n\n if (byteRange) {\n _this2.setByteRange(byteRange, previous);\n }\n\n if (previous) {\n _this2.fragOffset = previous.fragOffset + previous.duration;\n }\n\n return _this2;\n }\n\n _createClass(Part, [{\n key: \"start\",\n get: function get() {\n return this.fragment.start + this.fragOffset;\n }\n }, {\n key: \"end\",\n get: function get() {\n return this.start + this.duration;\n }\n }, {\n key: \"loaded\",\n get: function get() {\n var elementaryStreams = this.elementaryStreams;\n return !!(elementaryStreams.audio || elementaryStreams.video || elementaryStreams.audiovideo);\n }\n }]);\n\n return Part;\n}(BaseSegment);\n\n/***/ }),\n\n/***/ \"./src/loader/key-loader.ts\":\n/*!**********************************!*\\\n !*** ./src/loader/key-loader.ts ***!\n \\**********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return KeyLoader; });\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/*\n * Decrypt key Loader\n */\n\n\n\n\nvar KeyLoader = /*#__PURE__*/function () {\n function KeyLoader(hls) {\n this.hls = void 0;\n this.loaders = {};\n this.decryptkey = null;\n this.decrypturl = null;\n this.hls = hls;\n\n this._registerListeners();\n }\n\n var _proto = KeyLoader.prototype;\n\n _proto._registerListeners = function _registerListeners() {\n this.hls.on(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].KEY_LOADING, this.onKeyLoading, this);\n };\n\n _proto._unregisterListeners = function _unregisterListeners() {\n this.hls.off(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].KEY_LOADING, this.onKeyLoading);\n };\n\n _proto.destroy = function destroy() {\n this._unregisterListeners();\n\n for (var loaderName in this.loaders) {\n var loader = this.loaders[loaderName];\n\n if (loader) {\n loader.destroy();\n }\n }\n\n this.loaders = {};\n };\n\n _proto.onKeyLoading = function onKeyLoading(event, data) {\n var frag = data.frag;\n var type = frag.type;\n var loader = this.loaders[type];\n\n if (!frag.decryptdata) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn('Missing decryption data on fragment in onKeyLoading');\n return;\n } // Load the key if the uri is different from previous one, or if the decrypt key has not yet been retrieved\n\n\n var uri = frag.decryptdata.uri;\n\n if (uri !== this.decrypturl || this.decryptkey === null) {\n var config = this.hls.config;\n\n if (loader) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn(\"abort previous key loader for type:\" + type);\n loader.abort();\n }\n\n if (!uri) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].warn('key uri is falsy');\n return;\n }\n\n var Loader = config.loader;\n var fragLoader = frag.loader = this.loaders[type] = new Loader(config);\n this.decrypturl = uri;\n this.decryptkey = null;\n var loaderContext = {\n url: uri,\n frag: frag,\n responseType: 'arraybuffer'\n }; // maxRetry is 0 so that instead of retrying the same key on the same variant multiple times,\n // key-loader will trigger an error and rely on stream-controller to handle retry logic.\n // this will also align retry logic with fragment-loader\n\n var loaderConfig = {\n timeout: config.fragLoadingTimeOut,\n maxRetry: 0,\n retryDelay: config.fragLoadingRetryDelay,\n maxRetryDelay: config.fragLoadingMaxRetryTimeout,\n highWaterMark: 0\n };\n var loaderCallbacks = {\n onSuccess: this.loadsuccess.bind(this),\n onError: this.loaderror.bind(this),\n onTimeout: this.loadtimeout.bind(this)\n };\n fragLoader.load(loaderContext, loaderConfig, loaderCallbacks);\n } else if (this.decryptkey) {\n // Return the key if it's already been loaded\n frag.decryptdata.key = this.decryptkey;\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].KEY_LOADED, {\n frag: frag\n });\n }\n };\n\n _proto.loadsuccess = function loadsuccess(response, stats, context) {\n var frag = context.frag;\n\n if (!frag.decryptdata) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_2__[\"logger\"].error('after key load, decryptdata unset');\n return;\n }\n\n this.decryptkey = frag.decryptdata.key = new Uint8Array(response.data); // detach fragment loader on load success\n\n frag.loader = null;\n delete this.loaders[frag.type];\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].KEY_LOADED, {\n frag: frag\n });\n };\n\n _proto.loaderror = function loaderror(response, context) {\n var frag = context.frag;\n var loader = frag.loader;\n\n if (loader) {\n loader.abort();\n }\n\n delete this.loaders[frag.type];\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_LOAD_ERROR,\n fatal: false,\n frag: frag,\n response: response\n });\n };\n\n _proto.loadtimeout = function loadtimeout(stats, context) {\n var frag = context.frag;\n var loader = frag.loader;\n\n if (loader) {\n loader.abort();\n }\n\n delete this.loaders[frag.type];\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_0__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_1__[\"ErrorDetails\"].KEY_LOAD_TIMEOUT,\n fatal: false,\n frag: frag\n });\n };\n\n return KeyLoader;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/loader/level-details.ts\":\n/*!*************************************!*\\\n !*** ./src/loader/level-details.ts ***!\n \\*************************************/\n/*! exports provided: LevelDetails */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LevelDetails\", function() { return LevelDetails; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DEFAULT_TARGET_DURATION = 10;\nvar LevelDetails = /*#__PURE__*/function () {\n // Manifest reload synchronization\n function LevelDetails(baseUrl) {\n this.PTSKnown = false;\n this.alignedSliding = false;\n this.averagetargetduration = void 0;\n this.endCC = 0;\n this.endSN = 0;\n this.fragments = void 0;\n this.fragmentHint = void 0;\n this.partList = null;\n this.live = true;\n this.ageHeader = 0;\n this.advancedDateTime = void 0;\n this.updated = true;\n this.advanced = true;\n this.availabilityDelay = void 0;\n this.misses = 0;\n this.needSidxRanges = false;\n this.startCC = 0;\n this.startSN = 0;\n this.startTimeOffset = null;\n this.targetduration = 0;\n this.totalduration = 0;\n this.type = null;\n this.url = void 0;\n this.m3u8 = '';\n this.version = null;\n this.canBlockReload = false;\n this.canSkipUntil = 0;\n this.canSkipDateRanges = false;\n this.skippedSegments = 0;\n this.recentlyRemovedDateranges = void 0;\n this.partHoldBack = 0;\n this.holdBack = 0;\n this.partTarget = 0;\n this.preloadHint = void 0;\n this.renditionReports = void 0;\n this.tuneInGoal = 0;\n this.deltaUpdateFailed = void 0;\n this.driftStartTime = 0;\n this.driftEndTime = 0;\n this.driftStart = 0;\n this.driftEnd = 0;\n this.fragments = [];\n this.url = baseUrl;\n }\n\n var _proto = LevelDetails.prototype;\n\n _proto.reloaded = function reloaded(previous) {\n if (!previous) {\n this.advanced = true;\n this.updated = true;\n return;\n }\n\n var partSnDiff = this.lastPartSn - previous.lastPartSn;\n var partIndexDiff = this.lastPartIndex - previous.lastPartIndex;\n this.updated = this.endSN !== previous.endSN || !!partIndexDiff || !!partSnDiff;\n this.advanced = this.endSN > previous.endSN || partSnDiff > 0 || partSnDiff === 0 && partIndexDiff > 0;\n\n if (this.updated || this.advanced) {\n this.misses = Math.floor(previous.misses * 0.6);\n } else {\n this.misses = previous.misses + 1;\n }\n\n this.availabilityDelay = previous.availabilityDelay;\n };\n\n _createClass(LevelDetails, [{\n key: \"hasProgramDateTime\",\n get: function get() {\n if (this.fragments.length) {\n return Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(this.fragments[this.fragments.length - 1].programDateTime);\n }\n\n return false;\n }\n }, {\n key: \"levelTargetDuration\",\n get: function get() {\n return this.averagetargetduration || this.targetduration || DEFAULT_TARGET_DURATION;\n }\n }, {\n key: \"drift\",\n get: function get() {\n var runTime = this.driftEndTime - this.driftStartTime;\n\n if (runTime > 0) {\n var runDuration = this.driftEnd - this.driftStart;\n return runDuration * 1000 / runTime;\n }\n\n return 1;\n }\n }, {\n key: \"edge\",\n get: function get() {\n return this.partEnd || this.fragmentEnd;\n }\n }, {\n key: \"partEnd\",\n get: function get() {\n var _this$partList;\n\n if ((_this$partList = this.partList) !== null && _this$partList !== void 0 && _this$partList.length) {\n return this.partList[this.partList.length - 1].end;\n }\n\n return this.fragmentEnd;\n }\n }, {\n key: \"fragmentEnd\",\n get: function get() {\n var _this$fragments;\n\n if ((_this$fragments = this.fragments) !== null && _this$fragments !== void 0 && _this$fragments.length) {\n return this.fragments[this.fragments.length - 1].end;\n }\n\n return 0;\n }\n }, {\n key: \"age\",\n get: function get() {\n if (this.advancedDateTime) {\n return Math.max(Date.now() - this.advancedDateTime, 0) / 1000;\n }\n\n return 0;\n }\n }, {\n key: \"lastPartIndex\",\n get: function get() {\n var _this$partList2;\n\n if ((_this$partList2 = this.partList) !== null && _this$partList2 !== void 0 && _this$partList2.length) {\n return this.partList[this.partList.length - 1].index;\n }\n\n return -1;\n }\n }, {\n key: \"lastPartSn\",\n get: function get() {\n var _this$partList3;\n\n if ((_this$partList3 = this.partList) !== null && _this$partList3 !== void 0 && _this$partList3.length) {\n return this.partList[this.partList.length - 1].fragment.sn;\n }\n\n return this.endSN;\n }\n }]);\n\n return LevelDetails;\n}();\n\n/***/ }),\n\n/***/ \"./src/loader/level-key.ts\":\n/*!*********************************!*\\\n !*** ./src/loader/level-key.ts ***!\n \\*********************************/\n/*! exports provided: LevelKey */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LevelKey\", function() { return LevelKey; });\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! url-toolkit */ \"./node_modules/url-toolkit/src/url-toolkit.js\");\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(url_toolkit__WEBPACK_IMPORTED_MODULE_0__);\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n\nvar LevelKey = /*#__PURE__*/function () {\n LevelKey.fromURL = function fromURL(baseUrl, relativeUrl) {\n return new LevelKey(baseUrl, relativeUrl);\n };\n\n LevelKey.fromURI = function fromURI(uri) {\n return new LevelKey(uri);\n };\n\n function LevelKey(absoluteOrBaseURI, relativeURL) {\n this._uri = null;\n this.method = null;\n this.keyFormat = null;\n this.keyFormatVersions = null;\n this.keyID = null;\n this.key = null;\n this.iv = null;\n\n if (relativeURL) {\n this._uri = Object(url_toolkit__WEBPACK_IMPORTED_MODULE_0__[\"buildAbsoluteURL\"])(absoluteOrBaseURI, relativeURL, {\n alwaysNormalize: true\n });\n } else {\n this._uri = absoluteOrBaseURI;\n }\n }\n\n _createClass(LevelKey, [{\n key: \"uri\",\n get: function get() {\n return this._uri;\n }\n }]);\n\n return LevelKey;\n}();\n\n/***/ }),\n\n/***/ \"./src/loader/load-stats.ts\":\n/*!**********************************!*\\\n !*** ./src/loader/load-stats.ts ***!\n \\**********************************/\n/*! exports provided: LoadStats */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LoadStats\", function() { return LoadStats; });\nvar LoadStats = function LoadStats() {\n this.aborted = false;\n this.loaded = 0;\n this.retry = 0;\n this.total = 0;\n this.chunkCount = 0;\n this.bwEstimate = 0;\n this.loading = {\n start: 0,\n first: 0,\n end: 0\n };\n this.parsing = {\n start: 0,\n end: 0\n };\n this.buffering = {\n start: 0,\n first: 0,\n end: 0\n };\n};\n\n/***/ }),\n\n/***/ \"./src/loader/m3u8-parser.ts\":\n/*!***********************************!*\\\n !*** ./src/loader/m3u8-parser.ts ***!\n \\***********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return M3U8Parser; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! url-toolkit */ \"./node_modules/url-toolkit/src/url-toolkit.js\");\n/* harmony import */ var url_toolkit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(url_toolkit__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _fragment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fragment */ \"./src/loader/fragment.ts\");\n/* harmony import */ var _level_details__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./level-details */ \"./src/loader/level-details.ts\");\n/* harmony import */ var _level_key__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./level-key */ \"./src/loader/level-key.ts\");\n/* harmony import */ var _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/attr-list */ \"./src/utils/attr-list.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _utils_codecs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/codecs */ \"./src/utils/codecs.ts\");\n\n\n\n\n\n\n\n\n\n\n\n// https://regex101.com is your friend\nvar MASTER_PLAYLIST_REGEX = /#EXT-X-STREAM-INF:([^\\r\\n]*)(?:[\\r\\n](?:#[^\\r\\n]*)?)*([^\\r\\n]+)|#EXT-X-SESSION-DATA:([^\\r\\n]*)[\\r\\n]+/g;\nvar MASTER_PLAYLIST_MEDIA_REGEX = /#EXT-X-MEDIA:(.*)/g;\nvar LEVEL_PLAYLIST_REGEX_FAST = new RegExp([/#EXTINF:\\s*(\\d*(?:\\.\\d+)?)(?:,(.*)\\s+)?/.source, // duration (#EXTINF:,), group 1 => duration, group 2 => title\n/(?!#) *(\\S[\\S ]*)/.source, // segment URI, group 3 => the URI (note newline is not eaten)\n/#EXT-X-BYTERANGE:*(.+)/.source, // next segment's byterange, group 4 => range spec (x@y)\n/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source, // next segment's program date/time group 5 => the datetime spec\n/#.*/.source // All other non-segment oriented tags will match with all groups empty\n].join('|'), 'g');\nvar LEVEL_PLAYLIST_REGEX_SLOW = new RegExp([/#(EXTM3U)/.source, /#EXT-X-(PLAYLIST-TYPE):(.+)/.source, /#EXT-X-(MEDIA-SEQUENCE): *(\\d+)/.source, /#EXT-X-(SKIP):(.+)/.source, /#EXT-X-(TARGETDURATION): *(\\d+)/.source, /#EXT-X-(KEY):(.+)/.source, /#EXT-X-(START):(.+)/.source, /#EXT-X-(ENDLIST)/.source, /#EXT-X-(DISCONTINUITY-SEQ)UENCE: *(\\d+)/.source, /#EXT-X-(DIS)CONTINUITY/.source, /#EXT-X-(VERSION):(\\d+)/.source, /#EXT-X-(MAP):(.+)/.source, /#EXT-X-(SERVER-CONTROL):(.+)/.source, /#EXT-X-(PART-INF):(.+)/.source, /#EXT-X-(GAP)/.source, /#EXT-X-(BITRATE):\\s*(\\d+)/.source, /#EXT-X-(PART):(.+)/.source, /#EXT-X-(PRELOAD-HINT):(.+)/.source, /#EXT-X-(RENDITION-REPORT):(.+)/.source, /(#)([^:]*):(.*)/.source, /(#)(.*)(?:.*)\\r?\\n?/.source].join('|'));\nvar MP4_REGEX_SUFFIX = /\\.(mp4|m4s|m4v|m4a)$/i;\n\nfunction isMP4Url(url) {\n var _URLToolkit$parseURL$, _URLToolkit$parseURL;\n\n return MP4_REGEX_SUFFIX.test((_URLToolkit$parseURL$ = (_URLToolkit$parseURL = url_toolkit__WEBPACK_IMPORTED_MODULE_1__[\"parseURL\"](url)) === null || _URLToolkit$parseURL === void 0 ? void 0 : _URLToolkit$parseURL.path) != null ? _URLToolkit$parseURL$ : '');\n}\n\nvar M3U8Parser = /*#__PURE__*/function () {\n function M3U8Parser() {}\n\n M3U8Parser.findGroup = function findGroup(groups, mediaGroupId) {\n for (var i = 0; i < groups.length; i++) {\n var group = groups[i];\n\n if (group.id === mediaGroupId) {\n return group;\n }\n }\n };\n\n M3U8Parser.convertAVC1ToAVCOTI = function convertAVC1ToAVCOTI(codec) {\n // Convert avc1 codec string from RFC-4281 to RFC-6381 for MediaSource.isTypeSupported\n var avcdata = codec.split('.');\n\n if (avcdata.length > 2) {\n var result = avcdata.shift() + '.';\n result += parseInt(avcdata.shift()).toString(16);\n result += ('000' + parseInt(avcdata.shift()).toString(16)).substr(-4);\n return result;\n }\n\n return codec;\n };\n\n M3U8Parser.resolve = function resolve(url, baseUrl) {\n return url_toolkit__WEBPACK_IMPORTED_MODULE_1__[\"buildAbsoluteURL\"](baseUrl, url, {\n alwaysNormalize: true\n });\n };\n\n M3U8Parser.parseMasterPlaylist = function parseMasterPlaylist(string, baseurl) {\n var levels = [];\n var sessionData = {};\n var hasSessionData = false;\n MASTER_PLAYLIST_REGEX.lastIndex = 0;\n var result;\n\n while ((result = MASTER_PLAYLIST_REGEX.exec(string)) != null) {\n if (result[1]) {\n // '#EXT-X-STREAM-INF' is found, parse level tag in group 1\n var attrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](result[1]);\n var level = {\n attrs: attrs,\n bitrate: attrs.decimalInteger('AVERAGE-BANDWIDTH') || attrs.decimalInteger('BANDWIDTH'),\n name: attrs.NAME,\n url: M3U8Parser.resolve(result[2], baseurl)\n };\n var resolution = attrs.decimalResolution('RESOLUTION');\n\n if (resolution) {\n level.width = resolution.width;\n level.height = resolution.height;\n }\n\n setCodecs((attrs.CODECS || '').split(/[ ,]+/).filter(function (c) {\n return c;\n }), level);\n\n if (level.videoCodec && level.videoCodec.indexOf('avc1') !== -1) {\n level.videoCodec = M3U8Parser.convertAVC1ToAVCOTI(level.videoCodec);\n }\n\n levels.push(level);\n } else if (result[3]) {\n // '#EXT-X-SESSION-DATA' is found, parse session data in group 3\n var sessionAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](result[3]);\n\n if (sessionAttrs['DATA-ID']) {\n hasSessionData = true;\n sessionData[sessionAttrs['DATA-ID']] = sessionAttrs;\n }\n }\n }\n\n return {\n levels: levels,\n sessionData: hasSessionData ? sessionData : null\n };\n };\n\n M3U8Parser.parseMasterPlaylistMedia = function parseMasterPlaylistMedia(string, baseurl, type, groups) {\n if (groups === void 0) {\n groups = [];\n }\n\n var result;\n var medias = [];\n var id = 0;\n MASTER_PLAYLIST_MEDIA_REGEX.lastIndex = 0;\n\n while ((result = MASTER_PLAYLIST_MEDIA_REGEX.exec(string)) !== null) {\n var attrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](result[1]);\n\n if (attrs.TYPE === type) {\n var media = {\n attrs: attrs,\n bitrate: 0,\n id: id++,\n groupId: attrs['GROUP-ID'],\n instreamId: attrs['INSTREAM-ID'],\n name: attrs.NAME || attrs.LANGUAGE || '',\n type: type,\n default: attrs.bool('DEFAULT'),\n autoselect: attrs.bool('AUTOSELECT'),\n forced: attrs.bool('FORCED'),\n lang: attrs.LANGUAGE,\n url: attrs.URI ? M3U8Parser.resolve(attrs.URI, baseurl) : ''\n };\n\n if (groups.length) {\n // If there are audio or text groups signalled in the manifest, let's look for a matching codec string for this track\n // If we don't find the track signalled, lets use the first audio groups codec we have\n // Acting as a best guess\n var groupCodec = M3U8Parser.findGroup(groups, media.groupId) || groups[0];\n assignCodec(media, groupCodec, 'audioCodec');\n assignCodec(media, groupCodec, 'textCodec');\n }\n\n medias.push(media);\n }\n }\n\n return medias;\n };\n\n M3U8Parser.parseLevelPlaylist = function parseLevelPlaylist(string, baseurl, id, type, levelUrlId) {\n var level = new _level_details__WEBPACK_IMPORTED_MODULE_3__[\"LevelDetails\"](baseurl);\n var fragments = level.fragments; // The most recent init segment seen (applies to all subsequent segments)\n\n var currentInitSegment = null;\n var currentSN = 0;\n var currentPart = 0;\n var totalduration = 0;\n var discontinuityCounter = 0;\n var prevFrag = null;\n var frag = new _fragment__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"](type, baseurl);\n var result;\n var i;\n var levelkey;\n var firstPdtIndex = -1;\n var createNextFrag = false;\n LEVEL_PLAYLIST_REGEX_FAST.lastIndex = 0;\n level.m3u8 = string;\n\n while ((result = LEVEL_PLAYLIST_REGEX_FAST.exec(string)) !== null) {\n if (createNextFrag) {\n createNextFrag = false;\n frag = new _fragment__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"](type, baseurl); // setup the next fragment for part loading\n\n frag.start = totalduration;\n frag.sn = currentSN;\n frag.cc = discontinuityCounter;\n frag.level = id;\n\n if (currentInitSegment) {\n frag.initSegment = currentInitSegment;\n frag.rawProgramDateTime = currentInitSegment.rawProgramDateTime;\n }\n }\n\n var duration = result[1];\n\n if (duration) {\n // INF\n frag.duration = parseFloat(duration); // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n\n var title = (' ' + result[2]).slice(1);\n frag.title = title || null;\n frag.tagList.push(title ? ['INF', duration, title] : ['INF', duration]);\n } else if (result[3]) {\n // url\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(frag.duration)) {\n frag.start = totalduration;\n\n if (levelkey) {\n frag.levelkey = levelkey;\n }\n\n frag.sn = currentSN;\n frag.level = id;\n frag.cc = discontinuityCounter;\n frag.urlId = levelUrlId;\n fragments.push(frag); // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n\n frag.relurl = (' ' + result[3]).slice(1);\n assignProgramDateTime(frag, prevFrag);\n prevFrag = frag;\n totalduration += frag.duration;\n currentSN++;\n currentPart = 0;\n createNextFrag = true;\n }\n } else if (result[4]) {\n // X-BYTERANGE\n var data = (' ' + result[4]).slice(1);\n\n if (prevFrag) {\n frag.setByteRange(data, prevFrag);\n } else {\n frag.setByteRange(data);\n }\n } else if (result[5]) {\n // PROGRAM-DATE-TIME\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n frag.rawProgramDateTime = (' ' + result[5]).slice(1);\n frag.tagList.push(['PROGRAM-DATE-TIME', frag.rawProgramDateTime]);\n\n if (firstPdtIndex === -1) {\n firstPdtIndex = fragments.length;\n }\n } else {\n result = result[0].match(LEVEL_PLAYLIST_REGEX_SLOW);\n\n if (!result) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].warn('No matches on slow regex match for level playlist!');\n continue;\n }\n\n for (i = 1; i < result.length; i++) {\n if (typeof result[i] !== 'undefined') {\n break;\n }\n } // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n\n\n var tag = (' ' + result[i]).slice(1);\n var value1 = (' ' + result[i + 1]).slice(1);\n var value2 = result[i + 2] ? (' ' + result[i + 2]).slice(1) : '';\n\n switch (tag) {\n case 'PLAYLIST-TYPE':\n level.type = value1.toUpperCase();\n break;\n\n case 'MEDIA-SEQUENCE':\n currentSN = level.startSN = parseInt(value1);\n break;\n\n case 'SKIP':\n {\n var skipAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n var skippedSegments = skipAttrs.decimalInteger('SKIPPED-SEGMENTS');\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(skippedSegments)) {\n level.skippedSegments = skippedSegments; // This will result in fragments[] containing undefined values, which we will fill in with `mergeDetails`\n\n for (var _i = skippedSegments; _i--;) {\n fragments.unshift(null);\n }\n\n currentSN += skippedSegments;\n }\n\n var recentlyRemovedDateranges = skipAttrs.enumeratedString('RECENTLY-REMOVED-DATERANGES');\n\n if (recentlyRemovedDateranges) {\n level.recentlyRemovedDateranges = recentlyRemovedDateranges.split('\\t');\n }\n\n break;\n }\n\n case 'TARGETDURATION':\n level.targetduration = parseFloat(value1);\n break;\n\n case 'VERSION':\n level.version = parseInt(value1);\n break;\n\n case 'EXTM3U':\n break;\n\n case 'ENDLIST':\n level.live = false;\n break;\n\n case '#':\n if (value1 || value2) {\n frag.tagList.push(value2 ? [value1, value2] : [value1]);\n }\n\n break;\n\n case 'DIS':\n discontinuityCounter++;\n\n /* falls through */\n\n case 'GAP':\n frag.tagList.push([tag]);\n break;\n\n case 'BITRATE':\n frag.tagList.push([tag, value1]);\n break;\n\n case 'DISCONTINUITY-SEQ':\n discontinuityCounter = parseInt(value1);\n break;\n\n case 'KEY':\n {\n var _keyAttrs$enumeratedS;\n\n // https://tools.ietf.org/html/rfc8216#section-4.3.2.4\n var keyAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n var decryptmethod = keyAttrs.enumeratedString('METHOD');\n var decrypturi = keyAttrs.URI;\n var decryptiv = keyAttrs.hexadecimalInteger('IV');\n var decryptkeyformatversions = keyAttrs.enumeratedString('KEYFORMATVERSIONS');\n var decryptkeyid = keyAttrs.enumeratedString('KEYID'); // From RFC: This attribute is OPTIONAL; its absence indicates an implicit value of \"identity\".\n\n var decryptkeyformat = (_keyAttrs$enumeratedS = keyAttrs.enumeratedString('KEYFORMAT')) != null ? _keyAttrs$enumeratedS : 'identity';\n var unsupportedKnownKeyformatsInManifest = ['com.apple.streamingkeydelivery', 'com.microsoft.playready', 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed', // widevine (v2)\n 'com.widevine' // earlier widevine (v1)\n ];\n\n if (unsupportedKnownKeyformatsInManifest.indexOf(decryptkeyformat) > -1) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].warn(\"Keyformat \" + decryptkeyformat + \" is not supported from the manifest\");\n continue;\n } else if (decryptkeyformat !== 'identity') {\n // We are supposed to skip keys we don't understand.\n // As we currently only officially support identity keys\n // from the manifest we shouldn't save any other key.\n continue;\n } // TODO: multiple keys can be defined on a fragment, and we need to support this\n // for clients that support both playready and widevine\n\n\n if (decryptmethod) {\n // TODO: need to determine if the level key is actually a relative URL\n // if it isn't, then we should instead construct the LevelKey using fromURI.\n levelkey = _level_key__WEBPACK_IMPORTED_MODULE_4__[\"LevelKey\"].fromURL(baseurl, decrypturi);\n\n if (decrypturi && ['AES-128', 'SAMPLE-AES', 'SAMPLE-AES-CENC'].indexOf(decryptmethod) >= 0) {\n levelkey.method = decryptmethod;\n levelkey.keyFormat = decryptkeyformat;\n\n if (decryptkeyid) {\n levelkey.keyID = decryptkeyid;\n }\n\n if (decryptkeyformatversions) {\n levelkey.keyFormatVersions = decryptkeyformatversions;\n } // Initialization Vector (IV)\n\n\n levelkey.iv = decryptiv;\n }\n }\n\n break;\n }\n\n case 'START':\n {\n var startAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n var startTimeOffset = startAttrs.decimalFloatingPoint('TIME-OFFSET'); // TIME-OFFSET can be 0\n\n if (Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(startTimeOffset)) {\n level.startTimeOffset = startTimeOffset;\n }\n\n break;\n }\n\n case 'MAP':\n {\n var mapAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n frag.relurl = mapAttrs.URI;\n\n if (mapAttrs.BYTERANGE) {\n frag.setByteRange(mapAttrs.BYTERANGE);\n }\n\n frag.level = id;\n frag.sn = 'initSegment';\n\n if (levelkey) {\n frag.levelkey = levelkey;\n }\n\n frag.initSegment = null;\n currentInitSegment = frag;\n createNextFrag = true;\n break;\n }\n\n case 'SERVER-CONTROL':\n {\n var serverControlAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n level.canBlockReload = serverControlAttrs.bool('CAN-BLOCK-RELOAD');\n level.canSkipUntil = serverControlAttrs.optionalFloat('CAN-SKIP-UNTIL', 0);\n level.canSkipDateRanges = level.canSkipUntil > 0 && serverControlAttrs.bool('CAN-SKIP-DATERANGES');\n level.partHoldBack = serverControlAttrs.optionalFloat('PART-HOLD-BACK', 0);\n level.holdBack = serverControlAttrs.optionalFloat('HOLD-BACK', 0);\n break;\n }\n\n case 'PART-INF':\n {\n var partInfAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n level.partTarget = partInfAttrs.decimalFloatingPoint('PART-TARGET');\n break;\n }\n\n case 'PART':\n {\n var partList = level.partList;\n\n if (!partList) {\n partList = level.partList = [];\n }\n\n var previousFragmentPart = currentPart > 0 ? partList[partList.length - 1] : undefined;\n var index = currentPart++;\n var part = new _fragment__WEBPACK_IMPORTED_MODULE_2__[\"Part\"](new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1), frag, baseurl, index, previousFragmentPart);\n partList.push(part);\n frag.duration += part.duration;\n break;\n }\n\n case 'PRELOAD-HINT':\n {\n var preloadHintAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n level.preloadHint = preloadHintAttrs;\n break;\n }\n\n case 'RENDITION-REPORT':\n {\n var renditionReportAttrs = new _utils_attr_list__WEBPACK_IMPORTED_MODULE_5__[\"AttrList\"](value1);\n level.renditionReports = level.renditionReports || [];\n level.renditionReports.push(renditionReportAttrs);\n break;\n }\n\n default:\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].warn(\"line parsed but not handled: \" + result);\n break;\n }\n }\n }\n\n if (prevFrag && !prevFrag.relurl) {\n fragments.pop();\n totalduration -= prevFrag.duration;\n\n if (level.partList) {\n level.fragmentHint = prevFrag;\n }\n } else if (level.partList) {\n assignProgramDateTime(frag, prevFrag);\n frag.cc = discontinuityCounter;\n level.fragmentHint = frag;\n }\n\n var fragmentLength = fragments.length;\n var firstFragment = fragments[0];\n var lastFragment = fragments[fragmentLength - 1];\n totalduration += level.skippedSegments * level.targetduration;\n\n if (totalduration > 0 && fragmentLength && lastFragment) {\n level.averagetargetduration = totalduration / fragmentLength;\n var lastSn = lastFragment.sn;\n level.endSN = lastSn !== 'initSegment' ? lastSn : 0;\n\n if (firstFragment) {\n level.startCC = firstFragment.cc;\n\n if (!firstFragment.initSegment) {\n // this is a bit lurky but HLS really has no other way to tell us\n // if the fragments are TS or MP4, except if we download them :/\n // but this is to be able to handle SIDX.\n if (level.fragments.every(function (frag) {\n return frag.relurl && isMP4Url(frag.relurl);\n })) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_6__[\"logger\"].warn('MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX');\n frag = new _fragment__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"](type, baseurl);\n frag.relurl = lastFragment.relurl;\n frag.level = id;\n frag.sn = 'initSegment';\n firstFragment.initSegment = frag;\n level.needSidxRanges = true;\n }\n }\n }\n } else {\n level.endSN = 0;\n level.startCC = 0;\n }\n\n if (level.fragmentHint) {\n totalduration += level.fragmentHint.duration;\n }\n\n level.totalduration = totalduration;\n level.endCC = discontinuityCounter;\n /**\n * Backfill any missing PDT values\n * \"If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after\n * one or more Media Segment URIs, the client SHOULD extrapolate\n * backward from that tag (using EXTINF durations and/or media\n * timestamps) to associate dates with those segments.\"\n * We have already extrapolated forward, but all fragments up to the first instance of PDT do not have their PDTs\n * computed.\n */\n\n if (firstPdtIndex > 0) {\n backfillProgramDateTimes(fragments, firstPdtIndex);\n }\n\n return level;\n };\n\n return M3U8Parser;\n}();\n\n\n\nfunction setCodecs(codecs, level) {\n ['video', 'audio', 'text'].forEach(function (type) {\n var filtered = codecs.filter(function (codec) {\n return Object(_utils_codecs__WEBPACK_IMPORTED_MODULE_7__[\"isCodecType\"])(codec, type);\n });\n\n if (filtered.length) {\n var preferred = filtered.filter(function (codec) {\n return codec.lastIndexOf('avc1', 0) === 0 || codec.lastIndexOf('mp4a', 0) === 0;\n });\n level[type + \"Codec\"] = preferred.length > 0 ? preferred[0] : filtered[0]; // remove from list\n\n codecs = codecs.filter(function (codec) {\n return filtered.indexOf(codec) === -1;\n });\n }\n });\n level.unknownCodecs = codecs;\n}\n\nfunction assignCodec(media, groupItem, codecProperty) {\n var codecValue = groupItem[codecProperty];\n\n if (codecValue) {\n media[codecProperty] = codecValue;\n }\n}\n\nfunction backfillProgramDateTimes(fragments, firstPdtIndex) {\n var fragPrev = fragments[firstPdtIndex];\n\n for (var i = firstPdtIndex; i--;) {\n var frag = fragments[i]; // Exit on delta-playlist skipped segments\n\n if (!frag) {\n return;\n }\n\n frag.programDateTime = fragPrev.programDateTime - frag.duration * 1000;\n fragPrev = frag;\n }\n}\n\nfunction assignProgramDateTime(frag, prevFrag) {\n if (frag.rawProgramDateTime) {\n frag.programDateTime = Date.parse(frag.rawProgramDateTime);\n } else if (prevFrag !== null && prevFrag !== void 0 && prevFrag.programDateTime) {\n frag.programDateTime = prevFrag.endProgramDateTime;\n }\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(frag.programDateTime)) {\n frag.programDateTime = null;\n frag.rawProgramDateTime = null;\n }\n}\n\n/***/ }),\n\n/***/ \"./src/loader/playlist-loader.ts\":\n/*!***************************************!*\\\n !*** ./src/loader/playlist-loader.ts ***!\n \\***************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _m3u8_parser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./m3u8-parser */ \"./src/loader/m3u8-parser.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n/* harmony import */ var _utils_attr_list__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/attr-list */ \"./src/utils/attr-list.ts\");\n\n\n\n/**\n * PlaylistLoader - delegate for media manifest/playlist loading tasks. Takes care of parsing media to internal data-models.\n *\n * Once loaded, dispatches events with parsed data-models of manifest/levels/audio/subtitle tracks.\n *\n * Uses loader(s) set in config to do actual internal loading of resource tasks.\n *\n * @module\n *\n */\n\n\n\n\n\n\n\n\nfunction mapContextToLevelType(context) {\n var type = context.type;\n\n switch (type) {\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].AUDIO_TRACK:\n return _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO;\n\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].SUBTITLE_TRACK:\n return _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].SUBTITLE;\n\n default:\n return _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].MAIN;\n }\n}\n\nfunction getResponseUrl(response, context) {\n var url = response.url; // responseURL not supported on some browsers (it is used to detect URL redirection)\n // data-uri mode also not supported (but no need to detect redirection)\n\n if (url === undefined || url.indexOf('data:') === 0) {\n // fallback to initial URL\n url = context.url;\n }\n\n return url;\n}\n\nvar PlaylistLoader = /*#__PURE__*/function () {\n function PlaylistLoader(hls) {\n this.hls = void 0;\n this.loaders = Object.create(null);\n this.hls = hls;\n this.registerListeners();\n }\n\n var _proto = PlaylistLoader.prototype;\n\n _proto.registerListeners = function registerListeners() {\n var hls = this.hls;\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);\n hls.on(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);\n };\n\n _proto.unregisterListeners = function unregisterListeners() {\n var hls = this.hls;\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);\n hls.off(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);\n }\n /**\n * Returns defaults or configured loader-type overloads (pLoader and loader config params)\n */\n ;\n\n _proto.createInternalLoader = function createInternalLoader(context) {\n var config = this.hls.config;\n var PLoader = config.pLoader;\n var Loader = config.loader;\n var InternalLoader = PLoader || Loader;\n var loader = new InternalLoader(config);\n context.loader = loader;\n this.loaders[context.type] = loader;\n return loader;\n };\n\n _proto.getInternalLoader = function getInternalLoader(context) {\n return this.loaders[context.type];\n };\n\n _proto.resetInternalLoader = function resetInternalLoader(contextType) {\n if (this.loaders[contextType]) {\n delete this.loaders[contextType];\n }\n }\n /**\n * Call `destroy` on all internal loader instances mapped (one per context type)\n */\n ;\n\n _proto.destroyInternalLoaders = function destroyInternalLoaders() {\n for (var contextType in this.loaders) {\n var loader = this.loaders[contextType];\n\n if (loader) {\n loader.destroy();\n }\n\n this.resetInternalLoader(contextType);\n }\n };\n\n _proto.destroy = function destroy() {\n this.unregisterListeners();\n this.destroyInternalLoaders();\n };\n\n _proto.onManifestLoading = function onManifestLoading(event, data) {\n var url = data.url;\n this.load({\n id: null,\n groupId: null,\n level: 0,\n responseType: 'text',\n type: _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].MANIFEST,\n url: url,\n deliveryDirectives: null\n });\n };\n\n _proto.onLevelLoading = function onLevelLoading(event, data) {\n var id = data.id,\n level = data.level,\n url = data.url,\n deliveryDirectives = data.deliveryDirectives;\n this.load({\n id: id,\n groupId: null,\n level: level,\n responseType: 'text',\n type: _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].LEVEL,\n url: url,\n deliveryDirectives: deliveryDirectives\n });\n };\n\n _proto.onAudioTrackLoading = function onAudioTrackLoading(event, data) {\n var id = data.id,\n groupId = data.groupId,\n url = data.url,\n deliveryDirectives = data.deliveryDirectives;\n this.load({\n id: id,\n groupId: groupId,\n level: null,\n responseType: 'text',\n type: _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].AUDIO_TRACK,\n url: url,\n deliveryDirectives: deliveryDirectives\n });\n };\n\n _proto.onSubtitleTrackLoading = function onSubtitleTrackLoading(event, data) {\n var id = data.id,\n groupId = data.groupId,\n url = data.url,\n deliveryDirectives = data.deliveryDirectives;\n this.load({\n id: id,\n groupId: groupId,\n level: null,\n responseType: 'text',\n type: _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].SUBTITLE_TRACK,\n url: url,\n deliveryDirectives: deliveryDirectives\n });\n };\n\n _proto.load = function load(context) {\n var _context$deliveryDire;\n\n var config = this.hls.config; // logger.debug(`[playlist-loader]: Loading playlist of type ${context.type}, level: ${context.level}, id: ${context.id}`);\n // Check if a loader for this context already exists\n\n var loader = this.getInternalLoader(context);\n\n if (loader) {\n var loaderContext = loader.context;\n\n if (loaderContext && loaderContext.url === context.url) {\n // same URL can't overlap\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].trace('[playlist-loader]: playlist request ongoing');\n return;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].log(\"[playlist-loader]: aborting previous loader for type: \" + context.type);\n loader.abort();\n }\n\n var maxRetry;\n var timeout;\n var retryDelay;\n var maxRetryDelay; // apply different configs for retries depending on\n // context (manifest, level, audio/subs playlist)\n\n switch (context.type) {\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].MANIFEST:\n maxRetry = config.manifestLoadingMaxRetry;\n timeout = config.manifestLoadingTimeOut;\n retryDelay = config.manifestLoadingRetryDelay;\n maxRetryDelay = config.manifestLoadingMaxRetryTimeout;\n break;\n\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].LEVEL:\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].AUDIO_TRACK:\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].SUBTITLE_TRACK:\n // Manage retries in Level/Track Controller\n maxRetry = 0;\n timeout = config.levelLoadingTimeOut;\n break;\n\n default:\n maxRetry = config.levelLoadingMaxRetry;\n timeout = config.levelLoadingTimeOut;\n retryDelay = config.levelLoadingRetryDelay;\n maxRetryDelay = config.levelLoadingMaxRetryTimeout;\n break;\n }\n\n loader = this.createInternalLoader(context); // Override level/track timeout for LL-HLS requests\n // (the default of 10000ms is counter productive to blocking playlist reload requests)\n\n if ((_context$deliveryDire = context.deliveryDirectives) !== null && _context$deliveryDire !== void 0 && _context$deliveryDire.part) {\n var levelDetails;\n\n if (context.type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].LEVEL && context.level !== null) {\n levelDetails = this.hls.levels[context.level].details;\n } else if (context.type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].AUDIO_TRACK && context.id !== null) {\n levelDetails = this.hls.audioTracks[context.id].details;\n } else if (context.type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].SUBTITLE_TRACK && context.id !== null) {\n levelDetails = this.hls.subtitleTracks[context.id].details;\n }\n\n if (levelDetails) {\n var partTarget = levelDetails.partTarget;\n var targetDuration = levelDetails.targetduration;\n\n if (partTarget && targetDuration) {\n timeout = Math.min(Math.max(partTarget * 3, targetDuration * 0.8) * 1000, timeout);\n }\n }\n }\n\n var loaderConfig = {\n timeout: timeout,\n maxRetry: maxRetry,\n retryDelay: retryDelay,\n maxRetryDelay: maxRetryDelay,\n highWaterMark: 0\n };\n var loaderCallbacks = {\n onSuccess: this.loadsuccess.bind(this),\n onError: this.loaderror.bind(this),\n onTimeout: this.loadtimeout.bind(this)\n }; // logger.debug(`[playlist-loader]: Calling internal loader delegate for URL: ${context.url}`);\n\n loader.load(context, loaderConfig, loaderCallbacks);\n };\n\n _proto.loadsuccess = function loadsuccess(response, stats, context, networkDetails) {\n if (networkDetails === void 0) {\n networkDetails = null;\n }\n\n if (context.isSidxRequest) {\n this.handleSidxRequest(response, context);\n this.handlePlaylistLoaded(response, stats, context, networkDetails);\n return;\n }\n\n this.resetInternalLoader(context.type);\n var string = response.data; // Validate if it is an M3U8 at all\n\n if (string.indexOf('#EXTM3U') !== 0) {\n this.handleManifestParsingError(response, context, 'no EXTM3U delimiter', networkDetails);\n return;\n }\n\n stats.parsing.start = performance.now(); // Check if chunk-list or master. handle empty chunk list case (first EXTINF not signaled, but TARGETDURATION present)\n\n if (string.indexOf('#EXTINF:') > 0 || string.indexOf('#EXT-X-TARGETDURATION:') > 0) {\n this.handleTrackOrLevelPlaylist(response, stats, context, networkDetails);\n } else {\n this.handleMasterPlaylist(response, stats, context, networkDetails);\n }\n };\n\n _proto.loaderror = function loaderror(response, context, networkDetails) {\n if (networkDetails === void 0) {\n networkDetails = null;\n }\n\n this.handleNetworkError(context, networkDetails, false, response);\n };\n\n _proto.loadtimeout = function loadtimeout(stats, context, networkDetails) {\n if (networkDetails === void 0) {\n networkDetails = null;\n }\n\n this.handleNetworkError(context, networkDetails, true);\n };\n\n _proto.handleMasterPlaylist = function handleMasterPlaylist(response, stats, context, networkDetails) {\n var hls = this.hls;\n var string = response.data;\n var url = getResponseUrl(response, context);\n\n var _M3U8Parser$parseMast = _m3u8_parser__WEBPACK_IMPORTED_MODULE_5__[\"default\"].parseMasterPlaylist(string, url),\n levels = _M3U8Parser$parseMast.levels,\n sessionData = _M3U8Parser$parseMast.sessionData;\n\n if (!levels.length) {\n this.handleManifestParsingError(response, context, 'no level found in manifest', networkDetails);\n return;\n } // multi level playlist, parse level info\n\n\n var audioGroups = levels.map(function (level) {\n return {\n id: level.attrs.AUDIO,\n audioCodec: level.audioCodec\n };\n });\n var subtitleGroups = levels.map(function (level) {\n return {\n id: level.attrs.SUBTITLES,\n textCodec: level.textCodec\n };\n });\n var audioTracks = _m3u8_parser__WEBPACK_IMPORTED_MODULE_5__[\"default\"].parseMasterPlaylistMedia(string, url, 'AUDIO', audioGroups);\n var subtitles = _m3u8_parser__WEBPACK_IMPORTED_MODULE_5__[\"default\"].parseMasterPlaylistMedia(string, url, 'SUBTITLES', subtitleGroups);\n var captions = _m3u8_parser__WEBPACK_IMPORTED_MODULE_5__[\"default\"].parseMasterPlaylistMedia(string, url, 'CLOSED-CAPTIONS');\n\n if (audioTracks.length) {\n // check if we have found an audio track embedded in main playlist (audio track without URI attribute)\n var embeddedAudioFound = audioTracks.some(function (audioTrack) {\n return !audioTrack.url;\n }); // if no embedded audio track defined, but audio codec signaled in quality level,\n // we need to signal this main audio track this could happen with playlists with\n // alt audio rendition in which quality levels (main)\n // contains both audio+video. but with mixed audio track not signaled\n\n if (!embeddedAudioFound && levels[0].audioCodec && !levels[0].attrs.AUDIO) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].log('[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one');\n audioTracks.unshift({\n type: 'main',\n name: 'main',\n default: false,\n autoselect: false,\n forced: false,\n id: -1,\n attrs: new _utils_attr_list__WEBPACK_IMPORTED_MODULE_7__[\"AttrList\"]({}),\n bitrate: 0,\n url: ''\n });\n }\n }\n\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADED, {\n levels: levels,\n audioTracks: audioTracks,\n subtitles: subtitles,\n captions: captions,\n url: url,\n stats: stats,\n networkDetails: networkDetails,\n sessionData: sessionData\n });\n };\n\n _proto.handleTrackOrLevelPlaylist = function handleTrackOrLevelPlaylist(response, stats, context, networkDetails) {\n var hls = this.hls;\n var id = context.id,\n level = context.level,\n type = context.type;\n var url = getResponseUrl(response, context);\n var levelUrlId = Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(id) ? id : 0;\n var levelId = Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(level) ? level : levelUrlId;\n var levelType = mapContextToLevelType(context);\n var levelDetails = _m3u8_parser__WEBPACK_IMPORTED_MODULE_5__[\"default\"].parseLevelPlaylist(response.data, url, levelId, levelType, levelUrlId);\n\n if (!levelDetails.fragments.length) {\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].LEVEL_EMPTY_ERROR,\n fatal: false,\n url: url,\n reason: 'no fragments found in level',\n level: typeof context.level === 'number' ? context.level : undefined\n });\n return;\n } // We have done our first request (Manifest-type) and receive\n // not a master playlist but a chunk-list (track/level)\n // We fire the manifest-loaded event anyway with the parsed level-details\n // by creating a single-level structure for it.\n\n\n if (type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].MANIFEST) {\n var singleLevel = {\n attrs: new _utils_attr_list__WEBPACK_IMPORTED_MODULE_7__[\"AttrList\"]({}),\n bitrate: 0,\n details: levelDetails,\n name: '',\n url: url\n };\n hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].MANIFEST_LOADED, {\n levels: [singleLevel],\n audioTracks: [],\n url: url,\n stats: stats,\n networkDetails: networkDetails,\n sessionData: null\n });\n } // save parsing time\n\n\n stats.parsing.end = performance.now(); // in case we need SIDX ranges\n // return early after calling load for\n // the SIDX box.\n\n if (levelDetails.needSidxRanges) {\n var _levelDetails$fragmen;\n\n var sidxUrl = (_levelDetails$fragmen = levelDetails.fragments[0].initSegment) === null || _levelDetails$fragmen === void 0 ? void 0 : _levelDetails$fragmen.url;\n this.load({\n url: sidxUrl,\n isSidxRequest: true,\n type: type,\n level: level,\n levelDetails: levelDetails,\n id: id,\n groupId: null,\n rangeStart: 0,\n rangeEnd: 2048,\n responseType: 'arraybuffer',\n deliveryDirectives: null\n });\n return;\n } // extend the context with the new levelDetails property\n\n\n context.levelDetails = levelDetails;\n this.handlePlaylistLoaded(response, stats, context, networkDetails);\n };\n\n _proto.handleSidxRequest = function handleSidxRequest(response, context) {\n var sidxInfo = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_4__[\"parseSegmentIndex\"])(new Uint8Array(response.data)); // if provided fragment does not contain sidx, early return\n\n if (!sidxInfo) {\n return;\n }\n\n var sidxReferences = sidxInfo.references;\n var levelDetails = context.levelDetails;\n sidxReferences.forEach(function (segmentRef, index) {\n var segRefInfo = segmentRef.info;\n var frag = levelDetails.fragments[index];\n\n if (frag.byteRange.length === 0) {\n frag.setByteRange(String(1 + segRefInfo.end - segRefInfo.start) + '@' + String(segRefInfo.start));\n }\n\n if (frag.initSegment) {\n frag.initSegment.setByteRange(String(sidxInfo.moovEndOffset) + '@0');\n }\n });\n };\n\n _proto.handleManifestParsingError = function handleManifestParsingError(response, context, reason, networkDetails) {\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorTypes\"].NETWORK_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].MANIFEST_PARSING_ERROR,\n fatal: context.type === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].MANIFEST,\n url: response.url,\n reason: reason,\n response: response,\n context: context,\n networkDetails: networkDetails\n });\n };\n\n _proto.handleNetworkError = function handleNetworkError(context, networkDetails, timeout, response) {\n if (timeout === void 0) {\n timeout = false;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn(\"[playlist-loader]: A network \" + (timeout ? 'timeout' : 'error') + \" occurred while loading \" + context.type + \" level: \" + context.level + \" id: \" + context.id + \" group-id: \\\"\" + context.groupId + \"\\\"\");\n var details = _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].UNKNOWN;\n var fatal = false;\n var loader = this.getInternalLoader(context);\n\n switch (context.type) {\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].MANIFEST:\n details = timeout ? _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].MANIFEST_LOAD_TIMEOUT : _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].MANIFEST_LOAD_ERROR;\n fatal = true;\n break;\n\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].LEVEL:\n details = timeout ? _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].LEVEL_LOAD_TIMEOUT : _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].LEVEL_LOAD_ERROR;\n fatal = false;\n break;\n\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].AUDIO_TRACK:\n details = timeout ? _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].AUDIO_TRACK_LOAD_TIMEOUT : _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].AUDIO_TRACK_LOAD_ERROR;\n fatal = false;\n break;\n\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].SUBTITLE_TRACK:\n details = timeout ? _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].SUBTITLE_TRACK_LOAD_TIMEOUT : _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorDetails\"].SUBTITLE_LOAD_ERROR;\n fatal = false;\n break;\n }\n\n if (loader) {\n this.resetInternalLoader(context.type);\n }\n\n var errorData = {\n type: _errors__WEBPACK_IMPORTED_MODULE_2__[\"ErrorTypes\"].NETWORK_ERROR,\n details: details,\n fatal: fatal,\n url: context.url,\n loader: loader,\n context: context,\n networkDetails: networkDetails\n };\n\n if (response) {\n errorData.response = response;\n }\n\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].ERROR, errorData);\n };\n\n _proto.handlePlaylistLoaded = function handlePlaylistLoaded(response, stats, context, networkDetails) {\n var type = context.type,\n level = context.level,\n id = context.id,\n groupId = context.groupId,\n loader = context.loader,\n levelDetails = context.levelDetails,\n deliveryDirectives = context.deliveryDirectives;\n\n if (!(levelDetails !== null && levelDetails !== void 0 && levelDetails.targetduration)) {\n this.handleManifestParsingError(response, context, 'invalid target duration', networkDetails);\n return;\n }\n\n if (!loader) {\n return;\n }\n\n if (levelDetails.live) {\n if (loader.getCacheAge) {\n levelDetails.ageHeader = loader.getCacheAge() || 0;\n }\n\n if (!loader.getCacheAge || isNaN(levelDetails.ageHeader)) {\n levelDetails.ageHeader = 0;\n }\n }\n\n switch (type) {\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].MANIFEST:\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].LEVEL:\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].LEVEL_LOADED, {\n details: levelDetails,\n level: level || 0,\n id: id || 0,\n stats: stats,\n networkDetails: networkDetails,\n deliveryDirectives: deliveryDirectives\n });\n break;\n\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].AUDIO_TRACK:\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].AUDIO_TRACK_LOADED, {\n details: levelDetails,\n id: id || 0,\n groupId: groupId || '',\n stats: stats,\n networkDetails: networkDetails,\n deliveryDirectives: deliveryDirectives\n });\n break;\n\n case _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistContextType\"].SUBTITLE_TRACK:\n this.hls.trigger(_events__WEBPACK_IMPORTED_MODULE_1__[\"Events\"].SUBTITLE_TRACK_LOADED, {\n details: levelDetails,\n id: id || 0,\n groupId: groupId || '',\n stats: stats,\n networkDetails: networkDetails,\n deliveryDirectives: deliveryDirectives\n });\n break;\n }\n };\n\n return PlaylistLoader;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (PlaylistLoader);\n\n/***/ }),\n\n/***/ \"./src/polyfills/number.ts\":\n/*!*********************************!*\\\n !*** ./src/polyfills/number.ts ***!\n \\*********************************/\n/*! exports provided: isFiniteNumber, MAX_SAFE_INTEGER */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFiniteNumber\", function() { return isFiniteNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_SAFE_INTEGER\", function() { return MAX_SAFE_INTEGER; });\nvar isFiniteNumber = Number.isFinite || function (value) {\n return typeof value === 'number' && isFinite(value);\n};\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\n/***/ }),\n\n/***/ \"./src/remux/aac-helper.ts\":\n/*!*********************************!*\\\n !*** ./src/remux/aac-helper.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/**\n * AAC helper\n */\nvar AAC = /*#__PURE__*/function () {\n function AAC() {}\n\n AAC.getSilentFrame = function getSilentFrame(codec, channelCount) {\n switch (codec) {\n case 'mp4a.40.2':\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n } else if (channelCount === 2) {\n return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n } else if (channelCount === 3) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n } else if (channelCount === 4) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n } else if (channelCount === 5) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n } else if (channelCount === 6) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n }\n\n break;\n // handle HE-AAC below (mp4a.40.5 / mp4a.40.29)\n\n default:\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n\n break;\n }\n\n return undefined;\n };\n\n return AAC;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AAC);\n\n/***/ }),\n\n/***/ \"./src/remux/mp4-generator.ts\":\n/*!************************************!*\\\n !*** ./src/remux/mp4-generator.ts ***!\n \\************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/**\n * Generate MP4 Box\n */\nvar UINT32_MAX = Math.pow(2, 32) - 1;\n\nvar MP4 = /*#__PURE__*/function () {\n function MP4() {}\n\n MP4.init = function init() {\n MP4.types = {\n avc1: [],\n // codingname\n avcC: [],\n btrt: [],\n dinf: [],\n dref: [],\n esds: [],\n ftyp: [],\n hdlr: [],\n mdat: [],\n mdhd: [],\n mdia: [],\n mfhd: [],\n minf: [],\n moof: [],\n moov: [],\n mp4a: [],\n '.mp3': [],\n mvex: [],\n mvhd: [],\n pasp: [],\n sdtp: [],\n stbl: [],\n stco: [],\n stsc: [],\n stsd: [],\n stsz: [],\n stts: [],\n tfdt: [],\n tfhd: [],\n traf: [],\n trak: [],\n trun: [],\n trex: [],\n tkhd: [],\n vmhd: [],\n smhd: []\n };\n var i;\n\n for (i in MP4.types) {\n if (MP4.types.hasOwnProperty(i)) {\n MP4.types[i] = [i.charCodeAt(0), i.charCodeAt(1), i.charCodeAt(2), i.charCodeAt(3)];\n }\n }\n\n var videoHdlr = new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'\n ]);\n var audioHdlr = new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x73, 0x6f, 0x75, 0x6e, // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'\n ]);\n MP4.HDLR_TYPES = {\n video: videoHdlr,\n audio: audioHdlr\n };\n var dref = new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0c, // entry_size\n 0x75, 0x72, 0x6c, 0x20, // 'url' type\n 0x00, // version 0\n 0x00, 0x00, 0x01 // entry_flags\n ]);\n var stco = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n MP4.STTS = MP4.STSC = MP4.STCO = stco;\n MP4.STSZ = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n MP4.VMHD = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x01, // flags\n 0x00, 0x00, // graphicsmode\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor\n ]);\n MP4.SMHD = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, // balance\n 0x00, 0x00 // reserved\n ]);\n MP4.STSD = new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x01]); // entry_count\n\n var majorBrand = new Uint8Array([105, 115, 111, 109]); // isom\n\n var avc1Brand = new Uint8Array([97, 118, 99, 49]); // avc1\n\n var minorVersion = new Uint8Array([0, 0, 0, 1]);\n MP4.FTYP = MP4.box(MP4.types.ftyp, majorBrand, minorVersion, majorBrand, avc1Brand);\n MP4.DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, dref));\n };\n\n MP4.box = function box(type) {\n var size = 8;\n\n for (var _len = arguments.length, payload = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n payload[_key - 1] = arguments[_key];\n }\n\n var i = payload.length;\n var len = i; // calculate the total size we need to allocate\n\n while (i--) {\n size += payload[i].byteLength;\n }\n\n var result = new Uint8Array(size);\n result[0] = size >> 24 & 0xff;\n result[1] = size >> 16 & 0xff;\n result[2] = size >> 8 & 0xff;\n result[3] = size & 0xff;\n result.set(type, 4); // copy the payload into the result\n\n for (i = 0, size = 8; i < len; i++) {\n // copy payload[i] array @ offset size\n result.set(payload[i], size);\n size += payload[i].byteLength;\n }\n\n return result;\n };\n\n MP4.hdlr = function hdlr(type) {\n return MP4.box(MP4.types.hdlr, MP4.HDLR_TYPES[type]);\n };\n\n MP4.mdat = function mdat(data) {\n return MP4.box(MP4.types.mdat, data);\n };\n\n MP4.mdhd = function mdhd(timescale, duration) {\n duration *= timescale;\n var upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n var lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(MP4.types.mdhd, new Uint8Array([0x01, // version 1\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n timescale >> 24 & 0xff, timescale >> 16 & 0xff, timescale >> 8 & 0xff, timescale & 0xff, // timescale\n upperWordDuration >> 24, upperWordDuration >> 16 & 0xff, upperWordDuration >> 8 & 0xff, upperWordDuration & 0xff, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xff, lowerWordDuration >> 8 & 0xff, lowerWordDuration & 0xff, 0x55, 0xc4, // 'und' language (undetermined)\n 0x00, 0x00]));\n };\n\n MP4.mdia = function mdia(track) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(track.timescale, track.duration), MP4.hdlr(track.type), MP4.minf(track));\n };\n\n MP4.mfhd = function mfhd(sequenceNumber) {\n return MP4.box(MP4.types.mfhd, new Uint8Array([0x00, 0x00, 0x00, 0x00, // flags\n sequenceNumber >> 24, sequenceNumber >> 16 & 0xff, sequenceNumber >> 8 & 0xff, sequenceNumber & 0xff // sequence_number\n ]));\n };\n\n MP4.minf = function minf(track) {\n if (track.type === 'audio') {\n return MP4.box(MP4.types.minf, MP4.box(MP4.types.smhd, MP4.SMHD), MP4.DINF, MP4.stbl(track));\n } else {\n return MP4.box(MP4.types.minf, MP4.box(MP4.types.vmhd, MP4.VMHD), MP4.DINF, MP4.stbl(track));\n }\n };\n\n MP4.moof = function moof(sn, baseMediaDecodeTime, track) {\n return MP4.box(MP4.types.moof, MP4.mfhd(sn), MP4.traf(track, baseMediaDecodeTime));\n }\n /**\n * @param tracks... (optional) {array} the tracks associated with this movie\n */\n ;\n\n MP4.moov = function moov(tracks) {\n var i = tracks.length;\n var boxes = [];\n\n while (i--) {\n boxes[i] = MP4.trak(tracks[i]);\n }\n\n return MP4.box.apply(null, [MP4.types.moov, MP4.mvhd(tracks[0].timescale, tracks[0].duration)].concat(boxes).concat(MP4.mvex(tracks)));\n };\n\n MP4.mvex = function mvex(tracks) {\n var i = tracks.length;\n var boxes = [];\n\n while (i--) {\n boxes[i] = MP4.trex(tracks[i]);\n }\n\n return MP4.box.apply(null, [MP4.types.mvex].concat(boxes));\n };\n\n MP4.mvhd = function mvhd(timescale, duration) {\n duration *= timescale;\n var upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n var lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n var bytes = new Uint8Array([0x01, // version 1\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n timescale >> 24 & 0xff, timescale >> 16 & 0xff, timescale >> 8 & 0xff, timescale & 0xff, // timescale\n upperWordDuration >> 24, upperWordDuration >> 16 & 0xff, upperWordDuration >> 8 & 0xff, upperWordDuration & 0xff, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xff, lowerWordDuration >> 8 & 0xff, lowerWordDuration & 0xff, 0x00, 0x01, 0x00, 0x00, // 1.0 rate\n 0x01, 0x00, // 1.0 volume\n 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0xff, 0xff, 0xff, 0xff // next_track_ID\n ]);\n return MP4.box(MP4.types.mvhd, bytes);\n };\n\n MP4.sdtp = function sdtp(track) {\n var samples = track.samples || [];\n var bytes = new Uint8Array(4 + samples.length);\n var i;\n var flags; // leave the full box header (4 bytes) all zero\n // write the sample table\n\n for (i = 0; i < samples.length; i++) {\n flags = samples[i].flags;\n bytes[i + 4] = flags.dependsOn << 4 | flags.isDependedOn << 2 | flags.hasRedundancy;\n }\n\n return MP4.box(MP4.types.sdtp, bytes);\n };\n\n MP4.stbl = function stbl(track) {\n return MP4.box(MP4.types.stbl, MP4.stsd(track), MP4.box(MP4.types.stts, MP4.STTS), MP4.box(MP4.types.stsc, MP4.STSC), MP4.box(MP4.types.stsz, MP4.STSZ), MP4.box(MP4.types.stco, MP4.STCO));\n };\n\n MP4.avc1 = function avc1(track) {\n var sps = [];\n var pps = [];\n var i;\n var data;\n var len; // assemble the SPSs\n\n for (i = 0; i < track.sps.length; i++) {\n data = track.sps[i];\n len = data.byteLength;\n sps.push(len >>> 8 & 0xff);\n sps.push(len & 0xff); // SPS\n\n sps = sps.concat(Array.prototype.slice.call(data));\n } // assemble the PPSs\n\n\n for (i = 0; i < track.pps.length; i++) {\n data = track.pps[i];\n len = data.byteLength;\n pps.push(len >>> 8 & 0xff);\n pps.push(len & 0xff);\n pps = pps.concat(Array.prototype.slice.call(data));\n }\n\n var avcc = MP4.box(MP4.types.avcC, new Uint8Array([0x01, // version\n sps[3], // profile\n sps[4], // profile compat\n sps[5], // level\n 0xfc | 3, // lengthSizeMinusOne, hard-coded to 4 bytes\n 0xe0 | track.sps.length // 3bit reserved (111) + numOfSequenceParameterSets\n ].concat(sps).concat([track.pps.length // numOfPictureParameterSets\n ]).concat(pps))); // \"PPS\"\n\n var width = track.width;\n var height = track.height;\n var hSpacing = track.pixelRatio[0];\n var vSpacing = track.pixelRatio[1];\n return MP4.box(MP4.types.avc1, new Uint8Array([0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, // pre_defined\n 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined\n width >> 8 & 0xff, width & 0xff, // width\n height >> 8 & 0xff, height & 0xff, // height\n 0x00, 0x48, 0x00, 0x00, // horizresolution\n 0x00, 0x48, 0x00, 0x00, // vertresolution\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // frame_count\n 0x12, 0x64, 0x61, 0x69, 0x6c, // dailymotion/hls.js\n 0x79, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x6c, 0x73, 0x2e, 0x6a, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // compressorname\n 0x00, 0x18, // depth = 24\n 0x11, 0x11]), // pre_defined = -1\n avcc, MP4.box(MP4.types.btrt, new Uint8Array([0x00, 0x1c, 0x9c, 0x80, // bufferSizeDB\n 0x00, 0x2d, 0xc6, 0xc0, // maxBitrate\n 0x00, 0x2d, 0xc6, 0xc0])), // avgBitrate\n MP4.box(MP4.types.pasp, new Uint8Array([hSpacing >> 24, // hSpacing\n hSpacing >> 16 & 0xff, hSpacing >> 8 & 0xff, hSpacing & 0xff, vSpacing >> 24, // vSpacing\n vSpacing >> 16 & 0xff, vSpacing >> 8 & 0xff, vSpacing & 0xff])));\n };\n\n MP4.esds = function esds(track) {\n var configlen = track.config.length;\n return new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x03, // descriptor_type\n 0x17 + configlen, // length\n 0x00, 0x01, // es_id\n 0x00, // stream_priority\n 0x04, // descriptor_type\n 0x0f + configlen, // length\n 0x40, // codec : mpeg4_audio\n 0x15, // stream_type\n 0x00, 0x00, 0x00, // buffer_size\n 0x00, 0x00, 0x00, 0x00, // maxBitrate\n 0x00, 0x00, 0x00, 0x00, // avgBitrate\n 0x05 // descriptor_type\n ].concat([configlen]).concat(track.config).concat([0x06, 0x01, 0x02])); // GASpecificConfig)); // length + audio config descriptor\n };\n\n MP4.mp4a = function mp4a(track) {\n var samplerate = track.samplerate;\n return MP4.box(MP4.types.mp4a, new Uint8Array([0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, track.channelCount, // channelcount\n 0x00, 0x10, // sampleSize:16bits\n 0x00, 0x00, 0x00, 0x00, // reserved2\n samplerate >> 8 & 0xff, samplerate & 0xff, //\n 0x00, 0x00]), MP4.box(MP4.types.esds, MP4.esds(track)));\n };\n\n MP4.mp3 = function mp3(track) {\n var samplerate = track.samplerate;\n return MP4.box(MP4.types['.mp3'], new Uint8Array([0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, track.channelCount, // channelcount\n 0x00, 0x10, // sampleSize:16bits\n 0x00, 0x00, 0x00, 0x00, // reserved2\n samplerate >> 8 & 0xff, samplerate & 0xff, //\n 0x00, 0x00]));\n };\n\n MP4.stsd = function stsd(track) {\n if (track.type === 'audio') {\n if (!track.isAAC && track.codec === 'mp3') {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp3(track));\n }\n\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp4a(track));\n } else {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.avc1(track));\n }\n };\n\n MP4.tkhd = function tkhd(track) {\n var id = track.id;\n var duration = track.duration * track.timescale;\n var width = track.width;\n var height = track.height;\n var upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n var lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(MP4.types.tkhd, new Uint8Array([0x01, // version 1\n 0x00, 0x00, 0x07, // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n id >> 24 & 0xff, id >> 16 & 0xff, id >> 8 & 0xff, id & 0xff, // track_ID\n 0x00, 0x00, 0x00, 0x00, // reserved\n upperWordDuration >> 24, upperWordDuration >> 16 & 0xff, upperWordDuration >> 8 & 0xff, upperWordDuration & 0xff, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xff, lowerWordDuration >> 8 & 0xff, lowerWordDuration & 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, // layer\n 0x00, 0x00, // alternate_group\n 0x00, 0x00, // non-audio track volume\n 0x00, 0x00, // reserved\n 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix\n width >> 8 & 0xff, width & 0xff, 0x00, 0x00, // width\n height >> 8 & 0xff, height & 0xff, 0x00, 0x00 // height\n ]));\n };\n\n MP4.traf = function traf(track, baseMediaDecodeTime) {\n var sampleDependencyTable = MP4.sdtp(track);\n var id = track.id;\n var upperWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1));\n var lowerWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n return MP4.box(MP4.types.traf, MP4.box(MP4.types.tfhd, new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n id >> 24, id >> 16 & 0xff, id >> 8 & 0xff, id & 0xff // track_ID\n ])), MP4.box(MP4.types.tfdt, new Uint8Array([0x01, // version 1\n 0x00, 0x00, 0x00, // flags\n upperWordBaseMediaDecodeTime >> 24, upperWordBaseMediaDecodeTime >> 16 & 0xff, upperWordBaseMediaDecodeTime >> 8 & 0xff, upperWordBaseMediaDecodeTime & 0xff, lowerWordBaseMediaDecodeTime >> 24, lowerWordBaseMediaDecodeTime >> 16 & 0xff, lowerWordBaseMediaDecodeTime >> 8 & 0xff, lowerWordBaseMediaDecodeTime & 0xff])), MP4.trun(track, sampleDependencyTable.length + 16 + // tfhd\n 20 + // tfdt\n 8 + // traf header\n 16 + // mfhd\n 8 + // moof header\n 8), // mdat header\n sampleDependencyTable);\n }\n /**\n * Generate a track box.\n * @param track {object} a track definition\n * @return {Uint8Array} the track box\n */\n ;\n\n MP4.trak = function trak(track) {\n track.duration = track.duration || 0xffffffff;\n return MP4.box(MP4.types.trak, MP4.tkhd(track), MP4.mdia(track));\n };\n\n MP4.trex = function trex(track) {\n var id = track.id;\n return MP4.box(MP4.types.trex, new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n id >> 24, id >> 16 & 0xff, id >> 8 & 0xff, id & 0xff, // track_ID\n 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]));\n };\n\n MP4.trun = function trun(track, offset) {\n var samples = track.samples || [];\n var len = samples.length;\n var arraylen = 12 + 16 * len;\n var array = new Uint8Array(arraylen);\n var i;\n var sample;\n var duration;\n var size;\n var flags;\n var cts;\n offset += 8 + arraylen;\n array.set([0x00, // version 0\n 0x00, 0x0f, 0x01, // flags\n len >>> 24 & 0xff, len >>> 16 & 0xff, len >>> 8 & 0xff, len & 0xff, // sample_count\n offset >>> 24 & 0xff, offset >>> 16 & 0xff, offset >>> 8 & 0xff, offset & 0xff // data_offset\n ], 0);\n\n for (i = 0; i < len; i++) {\n sample = samples[i];\n duration = sample.duration;\n size = sample.size;\n flags = sample.flags;\n cts = sample.cts;\n array.set([duration >>> 24 & 0xff, duration >>> 16 & 0xff, duration >>> 8 & 0xff, duration & 0xff, // sample_duration\n size >>> 24 & 0xff, size >>> 16 & 0xff, size >>> 8 & 0xff, size & 0xff, // sample_size\n flags.isLeading << 2 | flags.dependsOn, flags.isDependedOn << 6 | flags.hasRedundancy << 4 | flags.paddingValue << 1 | flags.isNonSync, flags.degradPrio & 0xf0 << 8, flags.degradPrio & 0x0f, // sample_flags\n cts >>> 24 & 0xff, cts >>> 16 & 0xff, cts >>> 8 & 0xff, cts & 0xff // sample_composition_time_offset\n ], 12 + 16 * i);\n }\n\n return MP4.box(MP4.types.trun, array);\n };\n\n MP4.initSegment = function initSegment(tracks) {\n if (!MP4.types) {\n MP4.init();\n }\n\n var movie = MP4.moov(tracks);\n var result = new Uint8Array(MP4.FTYP.byteLength + movie.byteLength);\n result.set(MP4.FTYP);\n result.set(movie, MP4.FTYP.byteLength);\n return result;\n };\n\n return MP4;\n}();\n\nMP4.types = void 0;\nMP4.HDLR_TYPES = void 0;\nMP4.STTS = void 0;\nMP4.STSC = void 0;\nMP4.STCO = void 0;\nMP4.STSZ = void 0;\nMP4.VMHD = void 0;\nMP4.SMHD = void 0;\nMP4.STSD = void 0;\nMP4.FTYP = void 0;\nMP4.DINF = void 0;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MP4);\n\n/***/ }),\n\n/***/ \"./src/remux/mp4-remuxer.ts\":\n/*!**********************************!*\\\n !*** ./src/remux/mp4-remuxer.ts ***!\n \\**********************************/\n/*! exports provided: default, normalizePts */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return MP4Remuxer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizePts\", function() { return normalizePts; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _aac_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aac-helper */ \"./src/remux/aac-helper.ts\");\n/* harmony import */ var _mp4_generator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mp4-generator */ \"./src/remux/mp4-generator.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../events */ \"./src/events.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../errors */ \"./src/errors.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _types_loader__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types/loader */ \"./src/types/loader.ts\");\n/* harmony import */ var _utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/timescale-conversion */ \"./src/utils/timescale-conversion.ts\");\n\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\nvar MAX_SILENT_FRAME_DURATION = 10 * 1000; // 10 seconds\n\nvar AAC_SAMPLES_PER_FRAME = 1024;\nvar MPEG_AUDIO_SAMPLE_PER_FRAME = 1152;\nvar chromeVersion = null;\nvar safariWebkitVersion = null;\nvar requiresPositiveDts = false;\n\nvar MP4Remuxer = /*#__PURE__*/function () {\n function MP4Remuxer(observer, config, typeSupported, vendor) {\n if (vendor === void 0) {\n vendor = '';\n }\n\n this.observer = void 0;\n this.config = void 0;\n this.typeSupported = void 0;\n this.ISGenerated = false;\n this._initPTS = void 0;\n this._initDTS = void 0;\n this.nextAvcDts = null;\n this.nextAudioPts = null;\n this.isAudioContiguous = false;\n this.isVideoContiguous = false;\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n this.ISGenerated = false;\n\n if (chromeVersion === null) {\n var userAgent = navigator.userAgent || '';\n var result = userAgent.match(/Chrome\\/(\\d+)/i);\n chromeVersion = result ? parseInt(result[1]) : 0;\n }\n\n if (safariWebkitVersion === null) {\n var _result = navigator.userAgent.match(/Safari\\/(\\d+)/i);\n\n safariWebkitVersion = _result ? parseInt(_result[1]) : 0;\n }\n\n requiresPositiveDts = !!chromeVersion && chromeVersion < 75 || !!safariWebkitVersion && safariWebkitVersion < 600;\n }\n\n var _proto = MP4Remuxer.prototype;\n\n _proto.destroy = function destroy() {};\n\n _proto.resetTimeStamp = function resetTimeStamp(defaultTimeStamp) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].log('[mp4-remuxer]: initPTS & initDTS reset');\n this._initPTS = this._initDTS = defaultTimeStamp;\n };\n\n _proto.resetNextTimestamp = function resetNextTimestamp() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].log('[mp4-remuxer]: reset next timestamp');\n this.isVideoContiguous = false;\n this.isAudioContiguous = false;\n };\n\n _proto.resetInitSegment = function resetInitSegment() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].log('[mp4-remuxer]: ISGenerated flag reset');\n this.ISGenerated = false;\n };\n\n _proto.getVideoStartPts = function getVideoStartPts(videoSamples) {\n var rolloverDetected = false;\n var startPTS = videoSamples.reduce(function (minPTS, sample) {\n var delta = sample.pts - minPTS;\n\n if (delta < -4294967296) {\n // 2^32, see PTSNormalize for reasoning, but we're hitting a rollover here, and we don't want that to impact the timeOffset calculation\n rolloverDetected = true;\n return normalizePts(minPTS, sample.pts);\n } else if (delta > 0) {\n return minPTS;\n } else {\n return sample.pts;\n }\n }, videoSamples[0].pts);\n\n if (rolloverDetected) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].debug('PTS rollover detected');\n }\n\n return startPTS;\n };\n\n _proto.remux = function remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, flush, playlistType) {\n var video;\n var audio;\n var initSegment;\n var text;\n var id3;\n var independent;\n var audioTimeOffset = timeOffset;\n var videoTimeOffset = timeOffset; // If we're remuxing audio and video progressively, wait until we've received enough samples for each track before proceeding.\n // This is done to synchronize the audio and video streams. We know if the current segment will have samples if the \"pid\"\n // parameter is greater than -1. The pid is set when the PMT is parsed, which contains the tracks list.\n // However, if the initSegment has already been generated, or we've reached the end of a segment (flush),\n // then we can remux one track without waiting for the other.\n\n var hasAudio = audioTrack.pid > -1;\n var hasVideo = videoTrack.pid > -1;\n var length = videoTrack.samples.length;\n var enoughAudioSamples = audioTrack.samples.length > 0;\n var enoughVideoSamples = length > 1;\n var canRemuxAvc = (!hasAudio || enoughAudioSamples) && (!hasVideo || enoughVideoSamples) || this.ISGenerated || flush;\n\n if (canRemuxAvc) {\n if (!this.ISGenerated) {\n initSegment = this.generateIS(audioTrack, videoTrack, timeOffset);\n }\n\n var isVideoContiguous = this.isVideoContiguous;\n var firstKeyFrameIndex = -1;\n\n if (enoughVideoSamples) {\n firstKeyFrameIndex = findKeyframeIndex(videoTrack.samples);\n\n if (!isVideoContiguous && this.config.forceKeyFrameOnDiscontinuity) {\n independent = true;\n\n if (firstKeyFrameIndex > 0) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"[mp4-remuxer]: Dropped \" + firstKeyFrameIndex + \" out of \" + length + \" video samples due to a missing keyframe\");\n var startPTS = this.getVideoStartPts(videoTrack.samples);\n videoTrack.samples = videoTrack.samples.slice(firstKeyFrameIndex);\n videoTrack.dropped += firstKeyFrameIndex;\n videoTimeOffset += (videoTrack.samples[0].pts - startPTS) / (videoTrack.timescale || 90000);\n } else if (firstKeyFrameIndex === -1) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"[mp4-remuxer]: No keyframe found out of \" + length + \" video samples\");\n independent = false;\n }\n }\n }\n\n if (this.ISGenerated) {\n if (enoughAudioSamples && enoughVideoSamples) {\n // timeOffset is expected to be the offset of the first timestamp of this fragment (first DTS)\n // if first audio DTS is not aligned with first video DTS then we need to take that into account\n // when providing timeOffset to remuxAudio / remuxVideo. if we don't do that, there might be a permanent / small\n // drift between audio and video streams\n var _startPTS = this.getVideoStartPts(videoTrack.samples);\n\n var tsDelta = normalizePts(audioTrack.samples[0].pts, _startPTS) - _startPTS;\n\n var audiovideoTimestampDelta = tsDelta / videoTrack.inputTimeScale;\n audioTimeOffset += Math.max(0, audiovideoTimestampDelta);\n videoTimeOffset += Math.max(0, -audiovideoTimestampDelta);\n } // Purposefully remuxing audio before video, so that remuxVideo can use nextAudioPts, which is calculated in remuxAudio.\n\n\n if (enoughAudioSamples) {\n // if initSegment was generated without audio samples, regenerate it again\n if (!audioTrack.samplerate) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn('[mp4-remuxer]: regenerate InitSegment as audio detected');\n initSegment = this.generateIS(audioTrack, videoTrack, timeOffset);\n }\n\n audio = this.remuxAudio(audioTrack, audioTimeOffset, this.isAudioContiguous, accurateTimeOffset, hasVideo || enoughVideoSamples || playlistType === _types_loader__WEBPACK_IMPORTED_MODULE_6__[\"PlaylistLevelType\"].AUDIO ? videoTimeOffset : undefined);\n\n if (enoughVideoSamples) {\n var audioTrackLength = audio ? audio.endPTS - audio.startPTS : 0; // if initSegment was generated without video samples, regenerate it again\n\n if (!videoTrack.inputTimeScale) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn('[mp4-remuxer]: regenerate InitSegment as video detected');\n initSegment = this.generateIS(audioTrack, videoTrack, timeOffset);\n }\n\n video = this.remuxVideo(videoTrack, videoTimeOffset, isVideoContiguous, audioTrackLength);\n }\n } else if (enoughVideoSamples) {\n video = this.remuxVideo(videoTrack, videoTimeOffset, isVideoContiguous, 0);\n }\n\n if (video) {\n video.firstKeyFrame = firstKeyFrameIndex;\n video.independent = firstKeyFrameIndex !== -1;\n }\n }\n } // Allow ID3 and text to remux, even if more audio/video samples are required\n\n\n if (this.ISGenerated) {\n if (id3Track.samples.length) {\n id3 = this.remuxID3(id3Track, timeOffset);\n }\n\n if (textTrack.samples.length) {\n text = this.remuxText(textTrack, timeOffset);\n }\n }\n\n return {\n audio: audio,\n video: video,\n initSegment: initSegment,\n independent: independent,\n text: text,\n id3: id3\n };\n };\n\n _proto.generateIS = function generateIS(audioTrack, videoTrack, timeOffset) {\n var audioSamples = audioTrack.samples;\n var videoSamples = videoTrack.samples;\n var typeSupported = this.typeSupported;\n var tracks = {};\n var computePTSDTS = !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(this._initPTS);\n var container = 'audio/mp4';\n var initPTS;\n var initDTS;\n var timescale;\n\n if (computePTSDTS) {\n initPTS = initDTS = Infinity;\n }\n\n if (audioTrack.config && audioSamples.length) {\n // let's use audio sampling rate as MP4 time scale.\n // rationale is that there is a integer nb of audio frames per audio sample (1024 for AAC)\n // using audio sampling rate here helps having an integer MP4 frame duration\n // this avoids potential rounding issue and AV sync issue\n audioTrack.timescale = audioTrack.samplerate;\n\n if (!audioTrack.isAAC) {\n if (typeSupported.mpeg) {\n // Chrome and Safari\n container = 'audio/mpeg';\n audioTrack.codec = '';\n } else if (typeSupported.mp3) {\n // Firefox\n audioTrack.codec = 'mp3';\n }\n }\n\n tracks.audio = {\n id: 'audio',\n container: container,\n codec: audioTrack.codec,\n initSegment: !audioTrack.isAAC && typeSupported.mpeg ? new Uint8Array(0) : _mp4_generator__WEBPACK_IMPORTED_MODULE_2__[\"default\"].initSegment([audioTrack]),\n metadata: {\n channelCount: audioTrack.channelCount\n }\n };\n\n if (computePTSDTS) {\n timescale = audioTrack.inputTimeScale; // remember first PTS of this demuxing context. for audio, PTS = DTS\n\n initPTS = initDTS = audioSamples[0].pts - Math.round(timescale * timeOffset);\n }\n }\n\n if (videoTrack.sps && videoTrack.pps && videoSamples.length) {\n // let's use input time scale as MP4 video timescale\n // we use input time scale straight away to avoid rounding issues on frame duration / cts computation\n videoTrack.timescale = videoTrack.inputTimeScale;\n tracks.video = {\n id: 'main',\n container: 'video/mp4',\n codec: videoTrack.codec,\n initSegment: _mp4_generator__WEBPACK_IMPORTED_MODULE_2__[\"default\"].initSegment([videoTrack]),\n metadata: {\n width: videoTrack.width,\n height: videoTrack.height\n }\n };\n\n if (computePTSDTS) {\n timescale = videoTrack.inputTimeScale;\n var startPTS = this.getVideoStartPts(videoSamples);\n var startOffset = Math.round(timescale * timeOffset);\n initDTS = Math.min(initDTS, normalizePts(videoSamples[0].dts, startPTS) - startOffset);\n initPTS = Math.min(initPTS, startPTS - startOffset);\n }\n }\n\n if (Object.keys(tracks).length) {\n this.ISGenerated = true;\n\n if (computePTSDTS) {\n this._initPTS = initPTS;\n this._initDTS = initDTS;\n }\n\n return {\n tracks: tracks,\n initPTS: initPTS,\n timescale: timescale\n };\n }\n };\n\n _proto.remuxVideo = function remuxVideo(track, timeOffset, contiguous, audioTrackLength) {\n var timeScale = track.inputTimeScale;\n var inputSamples = track.samples;\n var outputSamples = [];\n var nbSamples = inputSamples.length;\n var initPTS = this._initPTS;\n var nextAvcDts = this.nextAvcDts;\n var offset = 8;\n var mp4SampleDuration;\n var firstDTS;\n var lastDTS;\n var minPTS = Number.POSITIVE_INFINITY;\n var maxPTS = Number.NEGATIVE_INFINITY;\n var ptsDtsShift = 0;\n var sortSamples = false; // if parsed fragment is contiguous with last one, let's use last DTS value as reference\n\n if (!contiguous || nextAvcDts === null) {\n var pts = timeOffset * timeScale;\n var cts = inputSamples[0].pts - normalizePts(inputSamples[0].dts, inputSamples[0].pts); // if not contiguous, let's use target timeOffset\n\n nextAvcDts = pts - cts;\n } // PTS is coded on 33bits, and can loop from -2^32 to 2^32\n // PTSNormalize will make PTS/DTS value monotonic, we use last known DTS value as reference value\n\n\n for (var i = 0; i < nbSamples; i++) {\n var sample = inputSamples[i];\n sample.pts = normalizePts(sample.pts - initPTS, nextAvcDts);\n sample.dts = normalizePts(sample.dts - initPTS, nextAvcDts);\n\n if (sample.dts > sample.pts) {\n var PTS_DTS_SHIFT_TOLERANCE_90KHZ = 90000 * 0.2;\n ptsDtsShift = Math.max(Math.min(ptsDtsShift, sample.pts - sample.dts), -1 * PTS_DTS_SHIFT_TOLERANCE_90KHZ);\n }\n\n if (sample.dts < inputSamples[i > 0 ? i - 1 : i].dts) {\n sortSamples = true;\n }\n } // sort video samples by DTS then PTS then demux id order\n\n\n if (sortSamples) {\n inputSamples.sort(function (a, b) {\n var deltadts = a.dts - b.dts;\n var deltapts = a.pts - b.pts;\n return deltadts || deltapts;\n });\n } // Get first/last DTS\n\n\n firstDTS = inputSamples[0].dts;\n lastDTS = inputSamples[inputSamples.length - 1].dts; // on Safari let's signal the same sample duration for all samples\n // sample duration (as expected by trun MP4 boxes), should be the delta between sample DTS\n // set this constant duration as being the avg delta between consecutive DTS.\n\n var averageSampleDuration = Math.round((lastDTS - firstDTS) / (nbSamples - 1)); // handle broken streams with PTS < DTS, tolerance up 0.2 seconds\n\n if (ptsDtsShift < 0) {\n if (ptsDtsShift < averageSampleDuration * -2) {\n // Fix for \"CNN special report, with CC\" in test-streams (including Safari browser)\n // With large PTS < DTS errors such as this, we want to correct CTS while maintaining increasing DTS values\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"PTS < DTS detected in video samples, offsetting DTS from PTS by \" + Object(_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__[\"toMsFromMpegTsClock\"])(-averageSampleDuration, true) + \" ms\");\n var lastDts = ptsDtsShift;\n\n for (var _i = 0; _i < nbSamples; _i++) {\n inputSamples[_i].dts = lastDts = Math.max(lastDts, inputSamples[_i].pts - averageSampleDuration);\n inputSamples[_i].pts = Math.max(lastDts, inputSamples[_i].pts);\n }\n } else {\n // Fix for \"Custom IV with bad PTS DTS\" in test-streams\n // With smaller PTS < DTS errors we can simply move all DTS back. This increases CTS without causing buffer gaps or decode errors in Safari\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"PTS < DTS detected in video samples, shifting DTS by \" + Object(_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__[\"toMsFromMpegTsClock\"])(ptsDtsShift, true) + \" ms to overcome this issue\");\n\n for (var _i2 = 0; _i2 < nbSamples; _i2++) {\n inputSamples[_i2].dts = inputSamples[_i2].dts + ptsDtsShift;\n }\n }\n\n firstDTS = inputSamples[0].dts;\n } // if fragment are contiguous, detect hole/overlapping between fragments\n\n\n if (contiguous) {\n // check timestamp continuity across consecutive fragments (this is to remove inter-fragment gap/hole)\n var delta = firstDTS - nextAvcDts;\n var foundHole = delta > averageSampleDuration;\n var foundOverlap = delta < -1;\n\n if (foundHole || foundOverlap) {\n if (foundHole) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"AVC: \" + Object(_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__[\"toMsFromMpegTsClock\"])(delta, true) + \" ms (\" + delta + \"dts) hole between fragments detected, filling it\");\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"AVC: \" + Object(_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__[\"toMsFromMpegTsClock\"])(-delta, true) + \" ms (\" + delta + \"dts) overlapping between fragments detected\");\n }\n\n firstDTS = nextAvcDts;\n var firstPTS = inputSamples[0].pts - delta;\n inputSamples[0].dts = firstDTS;\n inputSamples[0].pts = firstPTS;\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].log(\"Video: First PTS/DTS adjusted: \" + Object(_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__[\"toMsFromMpegTsClock\"])(firstPTS, true) + \"/\" + Object(_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__[\"toMsFromMpegTsClock\"])(firstDTS, true) + \", delta: \" + Object(_utils_timescale_conversion__WEBPACK_IMPORTED_MODULE_7__[\"toMsFromMpegTsClock\"])(delta, true) + \" ms\");\n }\n }\n\n if (requiresPositiveDts) {\n firstDTS = Math.max(0, firstDTS);\n }\n\n var nbNalu = 0;\n var naluLen = 0;\n\n for (var _i3 = 0; _i3 < nbSamples; _i3++) {\n // compute total/avc sample length and nb of NAL units\n var _sample = inputSamples[_i3];\n var units = _sample.units;\n var nbUnits = units.length;\n var sampleLen = 0;\n\n for (var j = 0; j < nbUnits; j++) {\n sampleLen += units[j].data.length;\n }\n\n naluLen += sampleLen;\n nbNalu += nbUnits;\n _sample.length = sampleLen; // normalize PTS/DTS\n // ensure sample monotonic DTS\n\n _sample.dts = Math.max(_sample.dts, firstDTS); // ensure that computed value is greater or equal than sample DTS\n\n _sample.pts = Math.max(_sample.pts, _sample.dts, 0);\n minPTS = Math.min(_sample.pts, minPTS);\n maxPTS = Math.max(_sample.pts, maxPTS);\n }\n\n lastDTS = inputSamples[nbSamples - 1].dts;\n /* concatenate the video data and construct the mdat in place\n (need 8 more bytes to fill length and mpdat type) */\n\n var mdatSize = naluLen + 4 * nbNalu + 8;\n var mdat;\n\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.emit(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].ERROR, _events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorTypes\"].MUX_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorDetails\"].REMUX_ALLOC_ERROR,\n fatal: false,\n bytes: mdatSize,\n reason: \"fail allocating video mdat \" + mdatSize\n });\n return;\n }\n\n var view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(_mp4_generator__WEBPACK_IMPORTED_MODULE_2__[\"default\"].types.mdat, 4);\n\n for (var _i4 = 0; _i4 < nbSamples; _i4++) {\n var avcSample = inputSamples[_i4];\n var avcSampleUnits = avcSample.units;\n var mp4SampleLength = 0; // convert NALU bitstream to MP4 format (prepend NALU with size field)\n\n for (var _j = 0, _nbUnits = avcSampleUnits.length; _j < _nbUnits; _j++) {\n var unit = avcSampleUnits[_j];\n var unitData = unit.data;\n var unitDataLen = unit.data.byteLength;\n view.setUint32(offset, unitDataLen);\n offset += 4;\n mdat.set(unitData, offset);\n offset += unitDataLen;\n mp4SampleLength += 4 + unitDataLen;\n } // expected sample duration is the Decoding Timestamp diff of consecutive samples\n\n\n if (_i4 < nbSamples - 1) {\n mp4SampleDuration = inputSamples[_i4 + 1].dts - avcSample.dts;\n } else {\n var config = this.config;\n var lastFrameDuration = avcSample.dts - inputSamples[_i4 > 0 ? _i4 - 1 : _i4].dts;\n\n if (config.stretchShortVideoTrack && this.nextAudioPts !== null) {\n // In some cases, a segment's audio track duration may exceed the video track duration.\n // Since we've already remuxed audio, and we know how long the audio track is, we look to\n // see if the delta to the next segment is longer than maxBufferHole.\n // If so, playback would potentially get stuck, so we artificially inflate\n // the duration of the last frame to minimize any potential gap between segments.\n var gapTolerance = Math.floor(config.maxBufferHole * timeScale);\n var deltaToFrameEnd = (audioTrackLength ? minPTS + audioTrackLength * timeScale : this.nextAudioPts) - avcSample.pts;\n\n if (deltaToFrameEnd > gapTolerance) {\n // We subtract lastFrameDuration from deltaToFrameEnd to try to prevent any video\n // frame overlap. maxBufferHole should be >> lastFrameDuration anyway.\n mp4SampleDuration = deltaToFrameEnd - lastFrameDuration;\n\n if (mp4SampleDuration < 0) {\n mp4SampleDuration = lastFrameDuration;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].log(\"[mp4-remuxer]: It is approximately \" + deltaToFrameEnd / 90 + \" ms to the next segment; using duration \" + mp4SampleDuration / 90 + \" ms for the last video frame.\");\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n }\n\n var compositionTimeOffset = Math.round(avcSample.pts - avcSample.dts);\n outputSamples.push(new Mp4Sample(avcSample.key, mp4SampleDuration, mp4SampleLength, compositionTimeOffset));\n }\n\n if (outputSamples.length && chromeVersion && chromeVersion < 70) {\n // Chrome workaround, mark first sample as being a Random Access Point (keyframe) to avoid sourcebuffer append issue\n // https://code.google.com/p/chromium/issues/detail?id=229412\n var flags = outputSamples[0].flags;\n flags.dependsOn = 2;\n flags.isNonSync = 0;\n }\n\n console.assert(mp4SampleDuration !== undefined, 'mp4SampleDuration must be computed'); // next AVC sample DTS should be equal to last sample DTS + last sample duration (in PES timescale)\n\n this.nextAvcDts = nextAvcDts = lastDTS + mp4SampleDuration;\n this.isVideoContiguous = true;\n var moof = _mp4_generator__WEBPACK_IMPORTED_MODULE_2__[\"default\"].moof(track.sequenceNumber++, firstDTS, _extends({}, track, {\n samples: outputSamples\n }));\n var type = 'video';\n var data = {\n data1: moof,\n data2: mdat,\n startPTS: minPTS / timeScale,\n endPTS: (maxPTS + mp4SampleDuration) / timeScale,\n startDTS: firstDTS / timeScale,\n endDTS: nextAvcDts / timeScale,\n type: type,\n hasAudio: false,\n hasVideo: true,\n nb: outputSamples.length,\n dropped: track.dropped\n };\n track.samples = [];\n track.dropped = 0;\n console.assert(mdat.length, 'MDAT length must not be zero');\n return data;\n };\n\n _proto.remuxAudio = function remuxAudio(track, timeOffset, contiguous, accurateTimeOffset, videoTimeOffset) {\n var inputTimeScale = track.inputTimeScale;\n var mp4timeScale = track.samplerate ? track.samplerate : inputTimeScale;\n var scaleFactor = inputTimeScale / mp4timeScale;\n var mp4SampleDuration = track.isAAC ? AAC_SAMPLES_PER_FRAME : MPEG_AUDIO_SAMPLE_PER_FRAME;\n var inputSampleDuration = mp4SampleDuration * scaleFactor;\n var initPTS = this._initPTS;\n var rawMPEG = !track.isAAC && this.typeSupported.mpeg;\n var outputSamples = [];\n var inputSamples = track.samples;\n var offset = rawMPEG ? 0 : 8;\n var nextAudioPts = this.nextAudioPts || -1; // window.audioSamples ? window.audioSamples.push(inputSamples.map(s => s.pts)) : (window.audioSamples = [inputSamples.map(s => s.pts)]);\n // for audio samples, also consider consecutive fragments as being contiguous (even if a level switch occurs),\n // for sake of clarity:\n // consecutive fragments are frags with\n // - less than 100ms gaps between new time offset (if accurate) and next expected PTS OR\n // - less than 20 audio frames distance\n // contiguous fragments are consecutive fragments from same quality level (same level, new SN = old SN + 1)\n // this helps ensuring audio continuity\n // and this also avoids audio glitches/cut when switching quality, or reporting wrong duration on first audio frame\n\n var timeOffsetMpegTS = timeOffset * inputTimeScale;\n this.isAudioContiguous = contiguous = contiguous || inputSamples.length && nextAudioPts > 0 && (accurateTimeOffset && Math.abs(timeOffsetMpegTS - nextAudioPts) < 9000 || Math.abs(normalizePts(inputSamples[0].pts - initPTS, timeOffsetMpegTS) - nextAudioPts) < 20 * inputSampleDuration); // compute normalized PTS\n\n inputSamples.forEach(function (sample) {\n sample.pts = normalizePts(sample.pts - initPTS, timeOffsetMpegTS);\n });\n\n if (!contiguous || nextAudioPts < 0) {\n // filter out sample with negative PTS that are not playable anyway\n // if we don't remove these negative samples, they will shift all audio samples forward.\n // leading to audio overlap between current / next fragment\n inputSamples = inputSamples.filter(function (sample) {\n return sample.pts >= 0;\n }); // in case all samples have negative PTS, and have been filtered out, return now\n\n if (!inputSamples.length) {\n return;\n }\n\n if (videoTimeOffset === 0) {\n // Set the start to 0 to match video so that start gaps larger than inputSampleDuration are filled with silence\n nextAudioPts = 0;\n } else if (accurateTimeOffset) {\n // When not seeking, not live, and LevelDetails.PTSKnown, use fragment start as predicted next audio PTS\n nextAudioPts = Math.max(0, timeOffsetMpegTS);\n } else {\n // if frags are not contiguous and if we cant trust time offset, let's use first sample PTS as next audio PTS\n nextAudioPts = inputSamples[0].pts;\n }\n } // If the audio track is missing samples, the frames seem to get \"left-shifted\" within the\n // resulting mp4 segment, causing sync issues and leaving gaps at the end of the audio segment.\n // In an effort to prevent this from happening, we inject frames here where there are gaps.\n // When possible, we inject a silent frame; when that's not possible, we duplicate the last\n // frame.\n\n\n if (track.isAAC) {\n var alignedWithVideo = videoTimeOffset !== undefined;\n var maxAudioFramesDrift = this.config.maxAudioFramesDrift;\n\n for (var i = 0, nextPts = nextAudioPts; i < inputSamples.length; i++) {\n // First, let's see how far off this frame is from where we expect it to be\n var sample = inputSamples[i];\n var pts = sample.pts;\n var delta = pts - nextPts;\n var duration = Math.abs(1000 * delta / inputTimeScale); // When remuxing with video, if we're overlapping by more than a duration, drop this sample to stay in sync\n\n if (delta <= -maxAudioFramesDrift * inputSampleDuration && alignedWithVideo) {\n if (i === 0) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"Audio frame @ \" + (pts / inputTimeScale).toFixed(3) + \"s overlaps nextAudioPts by \" + Math.round(1000 * delta / inputTimeScale) + \" ms.\");\n this.nextAudioPts = nextAudioPts = nextPts = pts;\n }\n } // eslint-disable-line brace-style\n // Insert missing frames if:\n // 1: We're more than maxAudioFramesDrift frame away\n // 2: Not more than MAX_SILENT_FRAME_DURATION away\n // 3: currentTime (aka nextPtsNorm) is not 0\n // 4: remuxing with video (videoTimeOffset !== undefined)\n else if (delta >= maxAudioFramesDrift * inputSampleDuration && duration < MAX_SILENT_FRAME_DURATION && alignedWithVideo) {\n var missing = Math.round(delta / inputSampleDuration); // Adjust nextPts so that silent samples are aligned with media pts. This will prevent media samples from\n // later being shifted if nextPts is based on timeOffset and delta is not a multiple of inputSampleDuration.\n\n nextPts = pts - missing * inputSampleDuration;\n\n if (nextPts < 0) {\n missing--;\n nextPts += inputSampleDuration;\n }\n\n if (i === 0) {\n this.nextAudioPts = nextAudioPts = nextPts;\n }\n\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn(\"[mp4-remuxer]: Injecting \" + missing + \" audio frame @ \" + (nextPts / inputTimeScale).toFixed(3) + \"s due to \" + Math.round(1000 * delta / inputTimeScale) + \" ms gap.\");\n\n for (var j = 0; j < missing; j++) {\n var newStamp = Math.max(nextPts, 0);\n var fillFrame = _aac_helper__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n\n if (!fillFrame) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].log('[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead.');\n fillFrame = sample.unit.subarray();\n }\n\n inputSamples.splice(i, 0, {\n unit: fillFrame,\n pts: newStamp\n });\n nextPts += inputSampleDuration;\n i++;\n }\n }\n\n sample.pts = nextPts;\n nextPts += inputSampleDuration;\n }\n }\n\n var firstPTS = null;\n var lastPTS = null;\n var mdat;\n var mdatSize = 0;\n var sampleLength = inputSamples.length;\n\n while (sampleLength--) {\n mdatSize += inputSamples[sampleLength].unit.byteLength;\n }\n\n for (var _j2 = 0, _nbSamples = inputSamples.length; _j2 < _nbSamples; _j2++) {\n var audioSample = inputSamples[_j2];\n var unit = audioSample.unit;\n var _pts = audioSample.pts;\n\n if (lastPTS !== null) {\n // If we have more than one sample, set the duration of the sample to the \"real\" duration; the PTS diff with\n // the previous sample\n var prevSample = outputSamples[_j2 - 1];\n prevSample.duration = Math.round((_pts - lastPTS) / scaleFactor);\n } else {\n if (contiguous && track.isAAC) {\n // set PTS/DTS to expected PTS/DTS\n _pts = nextAudioPts;\n } // remember first PTS of our audioSamples\n\n\n firstPTS = _pts;\n\n if (mdatSize > 0) {\n /* concatenate the audio data and construct the mdat in place\n (need 8 more bytes to fill length and mdat type) */\n mdatSize += offset;\n\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.emit(_events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].ERROR, _events__WEBPACK_IMPORTED_MODULE_3__[\"Events\"].ERROR, {\n type: _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorTypes\"].MUX_ERROR,\n details: _errors__WEBPACK_IMPORTED_MODULE_4__[\"ErrorDetails\"].REMUX_ALLOC_ERROR,\n fatal: false,\n bytes: mdatSize,\n reason: \"fail allocating audio mdat \" + mdatSize\n });\n return;\n }\n\n if (!rawMPEG) {\n var view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(_mp4_generator__WEBPACK_IMPORTED_MODULE_2__[\"default\"].types.mdat, 4);\n }\n } else {\n // no audio samples\n return;\n }\n }\n\n mdat.set(unit, offset);\n var unitLen = unit.byteLength;\n offset += unitLen; // Default the sample's duration to the computed mp4SampleDuration, which will either be 1024 for AAC or 1152 for MPEG\n // In the case that we have 1 sample, this will be the duration. If we have more than one sample, the duration\n // becomes the PTS diff with the previous sample\n\n outputSamples.push(new Mp4Sample(true, mp4SampleDuration, unitLen, 0));\n lastPTS = _pts;\n } // We could end up with no audio samples if all input samples were overlapping with the previously remuxed ones\n\n\n var nbSamples = outputSamples.length;\n\n if (!nbSamples) {\n return;\n } // The next audio sample PTS should be equal to last sample PTS + duration\n\n\n var lastSample = outputSamples[outputSamples.length - 1];\n this.nextAudioPts = nextAudioPts = lastPTS + scaleFactor * lastSample.duration; // Set the track samples from inputSamples to outputSamples before remuxing\n\n var moof = rawMPEG ? new Uint8Array(0) : _mp4_generator__WEBPACK_IMPORTED_MODULE_2__[\"default\"].moof(track.sequenceNumber++, firstPTS / scaleFactor, _extends({}, track, {\n samples: outputSamples\n })); // Clear the track samples. This also clears the samples array in the demuxer, since the reference is shared\n\n track.samples = [];\n var start = firstPTS / inputTimeScale;\n var end = nextAudioPts / inputTimeScale;\n var type = 'audio';\n var audioData = {\n data1: moof,\n data2: mdat,\n startPTS: start,\n endPTS: end,\n startDTS: start,\n endDTS: end,\n type: type,\n hasAudio: true,\n hasVideo: false,\n nb: nbSamples\n };\n this.isAudioContiguous = true;\n console.assert(mdat.length, 'MDAT length must not be zero');\n return audioData;\n };\n\n _proto.remuxEmptyAudio = function remuxEmptyAudio(track, timeOffset, contiguous, videoData) {\n var inputTimeScale = track.inputTimeScale;\n var mp4timeScale = track.samplerate ? track.samplerate : inputTimeScale;\n var scaleFactor = inputTimeScale / mp4timeScale;\n var nextAudioPts = this.nextAudioPts; // sync with video's timestamp\n\n var startDTS = (nextAudioPts !== null ? nextAudioPts : videoData.startDTS * inputTimeScale) + this._initDTS;\n var endDTS = videoData.endDTS * inputTimeScale + this._initDTS; // one sample's duration value\n\n var frameDuration = scaleFactor * AAC_SAMPLES_PER_FRAME; // samples count of this segment's duration\n\n var nbSamples = Math.ceil((endDTS - startDTS) / frameDuration); // silent frame\n\n var silentFrame = _aac_helper__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].warn('[mp4-remuxer]: remux empty Audio'); // Can't remux if we can't generate a silent frame...\n\n if (!silentFrame) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_5__[\"logger\"].trace('[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec');\n return;\n }\n\n var samples = [];\n\n for (var i = 0; i < nbSamples; i++) {\n var stamp = startDTS + i * frameDuration;\n samples.push({\n unit: silentFrame,\n pts: stamp,\n dts: stamp\n });\n }\n\n track.samples = samples;\n return this.remuxAudio(track, timeOffset, contiguous, false);\n };\n\n _proto.remuxID3 = function remuxID3(track, timeOffset) {\n var length = track.samples.length;\n\n if (!length) {\n return;\n }\n\n var inputTimeScale = track.inputTimeScale;\n var initPTS = this._initPTS;\n var initDTS = this._initDTS;\n\n for (var index = 0; index < length; index++) {\n var sample = track.samples[index]; // setting id3 pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n\n sample.pts = normalizePts(sample.pts - initPTS, timeOffset * inputTimeScale) / inputTimeScale;\n sample.dts = normalizePts(sample.dts - initDTS, timeOffset * inputTimeScale) / inputTimeScale;\n }\n\n var samples = track.samples;\n track.samples = [];\n return {\n samples: samples\n };\n };\n\n _proto.remuxText = function remuxText(track, timeOffset) {\n var length = track.samples.length;\n\n if (!length) {\n return;\n }\n\n var inputTimeScale = track.inputTimeScale;\n var initPTS = this._initPTS;\n\n for (var index = 0; index < length; index++) {\n var sample = track.samples[index]; // setting text pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n\n sample.pts = normalizePts(sample.pts - initPTS, timeOffset * inputTimeScale) / inputTimeScale;\n }\n\n track.samples.sort(function (a, b) {\n return a.pts - b.pts;\n });\n var samples = track.samples;\n track.samples = [];\n return {\n samples: samples\n };\n };\n\n return MP4Remuxer;\n}();\n\n\nfunction normalizePts(value, reference) {\n var offset;\n\n if (reference === null) {\n return value;\n }\n\n if (reference < value) {\n // - 2^33\n offset = -8589934592;\n } else {\n // + 2^33\n offset = 8589934592;\n }\n /* PTS is 33bit (from 0 to 2^33 -1)\n if diff between value and reference is bigger than half of the amplitude (2^32) then it means that\n PTS looping occured. fill the gap */\n\n\n while (Math.abs(value - reference) > 4294967296) {\n value += offset;\n }\n\n return value;\n}\n\nfunction findKeyframeIndex(samples) {\n for (var i = 0; i < samples.length; i++) {\n if (samples[i].key) {\n return i;\n }\n }\n\n return -1;\n}\n\nvar Mp4Sample = function Mp4Sample(isKeyframe, duration, size, cts) {\n this.size = void 0;\n this.duration = void 0;\n this.cts = void 0;\n this.flags = void 0;\n this.duration = duration;\n this.size = size;\n this.cts = cts;\n this.flags = new Mp4SampleFlags(isKeyframe);\n};\n\nvar Mp4SampleFlags = function Mp4SampleFlags(isKeyframe) {\n this.isLeading = 0;\n this.isDependedOn = 0;\n this.hasRedundancy = 0;\n this.degradPrio = 0;\n this.dependsOn = 1;\n this.isNonSync = 1;\n this.dependsOn = isKeyframe ? 2 : 1;\n this.isNonSync = isKeyframe ? 0 : 1;\n};\n\n/***/ }),\n\n/***/ \"./src/remux/passthrough-remuxer.ts\":\n/*!******************************************!*\\\n !*** ./src/remux/passthrough-remuxer.ts ***!\n \\******************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _utils_mp4_tools__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _loader_fragment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../loader/fragment */ \"./src/loader/fragment.ts\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n\n\n\n\n\nvar PassThroughRemuxer = /*#__PURE__*/function () {\n function PassThroughRemuxer() {\n this.emitInitSegment = false;\n this.audioCodec = void 0;\n this.videoCodec = void 0;\n this.initData = void 0;\n this.initPTS = void 0;\n this.initTracks = void 0;\n this.lastEndDTS = null;\n }\n\n var _proto = PassThroughRemuxer.prototype;\n\n _proto.destroy = function destroy() {};\n\n _proto.resetTimeStamp = function resetTimeStamp(defaultInitPTS) {\n this.initPTS = defaultInitPTS;\n this.lastEndDTS = null;\n };\n\n _proto.resetNextTimestamp = function resetNextTimestamp() {\n this.lastEndDTS = null;\n };\n\n _proto.resetInitSegment = function resetInitSegment(initSegment, audioCodec, videoCodec) {\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this.generateInitSegment(initSegment);\n this.emitInitSegment = true;\n };\n\n _proto.generateInitSegment = function generateInitSegment(initSegment) {\n var audioCodec = this.audioCodec,\n videoCodec = this.videoCodec;\n\n if (!initSegment || !initSegment.byteLength) {\n this.initTracks = undefined;\n this.initData = undefined;\n return;\n }\n\n var initData = this.initData = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_1__[\"parseInitSegment\"])(initSegment); // Get codec from initSegment or fallback to default\n\n if (!audioCodec) {\n audioCodec = getParsedTrackCodec(initData.audio, _loader_fragment__WEBPACK_IMPORTED_MODULE_2__[\"ElementaryStreamTypes\"].AUDIO);\n }\n\n if (!videoCodec) {\n videoCodec = getParsedTrackCodec(initData.video, _loader_fragment__WEBPACK_IMPORTED_MODULE_2__[\"ElementaryStreamTypes\"].VIDEO);\n }\n\n var tracks = {};\n\n if (initData.audio && initData.video) {\n tracks.audiovideo = {\n container: 'video/mp4',\n codec: audioCodec + ',' + videoCodec,\n initSegment: initSegment,\n id: 'main'\n };\n } else if (initData.audio) {\n tracks.audio = {\n container: 'audio/mp4',\n codec: audioCodec,\n initSegment: initSegment,\n id: 'audio'\n };\n } else if (initData.video) {\n tracks.video = {\n container: 'video/mp4',\n codec: videoCodec,\n initSegment: initSegment,\n id: 'main'\n };\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes.');\n }\n\n this.initTracks = tracks;\n };\n\n _proto.remux = function remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset) {\n var initPTS = this.initPTS,\n lastEndDTS = this.lastEndDTS;\n var result = {\n audio: undefined,\n video: undefined,\n text: textTrack,\n id3: id3Track,\n initSegment: undefined\n }; // If we haven't yet set a lastEndDTS, or it was reset, set it to the provided timeOffset. We want to use the\n // lastEndDTS over timeOffset whenever possible; during progressive playback, the media source will not update\n // the media duration (which is what timeOffset is provided as) before we need to process the next chunk.\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(lastEndDTS)) {\n lastEndDTS = this.lastEndDTS = timeOffset || 0;\n } // The binary segment data is added to the videoTrack in the mp4demuxer. We don't check to see if the data is only\n // audio or video (or both); adding it to video was an arbitrary choice.\n\n\n var data = videoTrack.samples;\n\n if (!data || !data.length) {\n return result;\n }\n\n var initSegment = {\n initPTS: undefined,\n timescale: 1\n };\n var initData = this.initData;\n\n if (!initData || !initData.length) {\n this.generateInitSegment(data);\n initData = this.initData;\n }\n\n if (!initData || !initData.length) {\n // We can't remux if the initSegment could not be generated\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('[passthrough-remuxer.ts]: Failed to generate initSegment.');\n return result;\n }\n\n if (this.emitInitSegment) {\n initSegment.tracks = this.initTracks;\n this.emitInitSegment = false;\n }\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(initPTS)) {\n this.initPTS = initSegment.initPTS = initPTS = computeInitPTS(initData, data, lastEndDTS);\n }\n\n var duration = Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_1__[\"getDuration\"])(data, initData);\n var startDTS = lastEndDTS;\n var endDTS = duration + startDTS;\n Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_1__[\"offsetStartDTS\"])(initData, data, initPTS);\n\n if (duration > 0) {\n this.lastEndDTS = endDTS;\n } else {\n _utils_logger__WEBPACK_IMPORTED_MODULE_3__[\"logger\"].warn('Duration parsed from mp4 should be greater than zero');\n this.resetNextTimestamp();\n }\n\n var hasAudio = !!initData.audio;\n var hasVideo = !!initData.video;\n var type = '';\n\n if (hasAudio) {\n type += 'audio';\n }\n\n if (hasVideo) {\n type += 'video';\n }\n\n var track = {\n data1: data,\n startPTS: startDTS,\n startDTS: startDTS,\n endPTS: endDTS,\n endDTS: endDTS,\n type: type,\n hasAudio: hasAudio,\n hasVideo: hasVideo,\n nb: 1,\n dropped: 0\n };\n result.audio = track.type === 'audio' ? track : undefined;\n result.video = track.type !== 'audio' ? track : undefined;\n result.text = textTrack;\n result.id3 = id3Track;\n result.initSegment = initSegment;\n return result;\n };\n\n return PassThroughRemuxer;\n}();\n\nvar computeInitPTS = function computeInitPTS(initData, data, timeOffset) {\n return Object(_utils_mp4_tools__WEBPACK_IMPORTED_MODULE_1__[\"getStartDTS\"])(initData, data) - timeOffset;\n};\n\nfunction getParsedTrackCodec(track, type) {\n var parsedCodec = track === null || track === void 0 ? void 0 : track.codec;\n\n if (parsedCodec && parsedCodec.length > 4) {\n return parsedCodec;\n } // Since mp4-tools cannot parse full codec string (see 'TODO: Parse codec details'... in mp4-tools)\n // Provide defaults based on codec type\n // This allows for some playback of some fmp4 playlists without CODECS defined in manifest\n\n\n if (parsedCodec === 'hvc1') {\n return 'hvc1.1.c.L120.90';\n }\n\n if (parsedCodec === 'av01') {\n return 'av01.0.04M.08';\n }\n\n if (parsedCodec === 'avc1' || type === _loader_fragment__WEBPACK_IMPORTED_MODULE_2__[\"ElementaryStreamTypes\"].VIDEO) {\n return 'avc1.42e01e';\n }\n\n return 'mp4a.40.5';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (PassThroughRemuxer);\n\n/***/ }),\n\n/***/ \"./src/task-loop.ts\":\n/*!**************************!*\\\n !*** ./src/task-loop.ts ***!\n \\**************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TaskLoop; });\n/**\n * Sub-class specialization of EventHandler base class.\n *\n * TaskLoop allows to schedule a task function being called (optionnaly repeatedly) on the main loop,\n * scheduled asynchroneously, avoiding recursive calls in the same tick.\n *\n * The task itself is implemented in `doTick`. It can be requested and called for single execution\n * using the `tick` method.\n *\n * It will be assured that the task execution method (`tick`) only gets called once per main loop \"tick\",\n * no matter how often it gets requested for execution. Execution in further ticks will be scheduled accordingly.\n *\n * If further execution requests have already been scheduled on the next tick, it can be checked with `hasNextTick`,\n * and cancelled with `clearNextTick`.\n *\n * The task can be scheduled as an interval repeatedly with a period as parameter (see `setInterval`, `clearInterval`).\n *\n * Sub-classes need to implement the `doTick` method which will effectively have the task execution routine.\n *\n * Further explanations:\n *\n * The baseclass has a `tick` method that will schedule the doTick call. It may be called synchroneously\n * only for a stack-depth of one. On re-entrant calls, sub-sequent calls are scheduled for next main loop ticks.\n *\n * When the task execution (`tick` method) is called in re-entrant way this is detected and\n * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further\n * task processing on the next main loop iteration (also known as \"next tick\" in the Node/JS runtime lingo).\n */\nvar TaskLoop = /*#__PURE__*/function () {\n function TaskLoop() {\n this._boundTick = void 0;\n this._tickTimer = null;\n this._tickInterval = null;\n this._tickCallCount = 0;\n this._boundTick = this.tick.bind(this);\n }\n\n var _proto = TaskLoop.prototype;\n\n _proto.destroy = function destroy() {\n this.onHandlerDestroying();\n this.onHandlerDestroyed();\n };\n\n _proto.onHandlerDestroying = function onHandlerDestroying() {\n // clear all timers before unregistering from event bus\n this.clearNextTick();\n this.clearInterval();\n };\n\n _proto.onHandlerDestroyed = function onHandlerDestroyed() {}\n /**\n * @returns {boolean}\n */\n ;\n\n _proto.hasInterval = function hasInterval() {\n return !!this._tickInterval;\n }\n /**\n * @returns {boolean}\n */\n ;\n\n _proto.hasNextTick = function hasNextTick() {\n return !!this._tickTimer;\n }\n /**\n * @param {number} millis Interval time (ms)\n * @returns {boolean} True when interval has been scheduled, false when already scheduled (no effect)\n */\n ;\n\n _proto.setInterval = function setInterval(millis) {\n if (!this._tickInterval) {\n this._tickInterval = self.setInterval(this._boundTick, millis);\n return true;\n }\n\n return false;\n }\n /**\n * @returns {boolean} True when interval was cleared, false when none was set (no effect)\n */\n ;\n\n _proto.clearInterval = function clearInterval() {\n if (this._tickInterval) {\n self.clearInterval(this._tickInterval);\n this._tickInterval = null;\n return true;\n }\n\n return false;\n }\n /**\n * @returns {boolean} True when timeout was cleared, false when none was set (no effect)\n */\n ;\n\n _proto.clearNextTick = function clearNextTick() {\n if (this._tickTimer) {\n self.clearTimeout(this._tickTimer);\n this._tickTimer = null;\n return true;\n }\n\n return false;\n }\n /**\n * Will call the subclass doTick implementation in this main loop tick\n * or in the next one (via setTimeout(,0)) in case it has already been called\n * in this tick (in case this is a re-entrant call).\n */\n ;\n\n _proto.tick = function tick() {\n this._tickCallCount++;\n\n if (this._tickCallCount === 1) {\n this.doTick(); // re-entrant call to tick from previous doTick call stack\n // -> schedule a call on the next main loop iteration to process this task processing request\n\n if (this._tickCallCount > 1) {\n // make sure only one timer exists at any time at max\n this.tickImmediate();\n }\n\n this._tickCallCount = 0;\n }\n };\n\n _proto.tickImmediate = function tickImmediate() {\n this.clearNextTick();\n this._tickTimer = self.setTimeout(this._boundTick, 0);\n }\n /**\n * For subclass to implement task logic\n * @abstract\n */\n ;\n\n _proto.doTick = function doTick() {};\n\n return TaskLoop;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/types/cmcd.ts\":\n/*!***************************!*\\\n !*** ./src/types/cmcd.ts ***!\n \\***************************/\n/*! exports provided: CMCDVersion, CMCDObjectType, CMCDStreamingFormat, CMCDStreamType */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CMCDVersion\", function() { return CMCDVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CMCDObjectType\", function() { return CMCDObjectType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CMCDStreamingFormat\", function() { return CMCDStreamingFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CMCDStreamType\", function() { return CMCDStreamType; });\n/**\n * CMCD spec version\n */\nvar CMCDVersion = 1;\n/**\n * CMCD Object Type\n */\n\nvar CMCDObjectType;\n/**\n * CMCD Streaming Format\n */\n\n(function (CMCDObjectType) {\n CMCDObjectType[\"MANIFEST\"] = \"m\";\n CMCDObjectType[\"AUDIO\"] = \"a\";\n CMCDObjectType[\"VIDEO\"] = \"v\";\n CMCDObjectType[\"MUXED\"] = \"av\";\n CMCDObjectType[\"INIT\"] = \"i\";\n CMCDObjectType[\"CAPTION\"] = \"c\";\n CMCDObjectType[\"TIMED_TEXT\"] = \"tt\";\n CMCDObjectType[\"KEY\"] = \"k\";\n CMCDObjectType[\"OTHER\"] = \"o\";\n})(CMCDObjectType || (CMCDObjectType = {}));\n\nvar CMCDStreamingFormat;\n/**\n * CMCD Streaming Type\n */\n\n(function (CMCDStreamingFormat) {\n CMCDStreamingFormat[\"DASH\"] = \"d\";\n CMCDStreamingFormat[\"HLS\"] = \"h\";\n CMCDStreamingFormat[\"SMOOTH\"] = \"s\";\n CMCDStreamingFormat[\"OTHER\"] = \"o\";\n})(CMCDStreamingFormat || (CMCDStreamingFormat = {}));\n\nvar CMCDStreamType;\n/**\n * CMCD Headers\n */\n\n(function (CMCDStreamType) {\n CMCDStreamType[\"VOD\"] = \"v\";\n CMCDStreamType[\"LIVE\"] = \"l\";\n})(CMCDStreamType || (CMCDStreamType = {}));\n\n/***/ }),\n\n/***/ \"./src/types/level.ts\":\n/*!****************************!*\\\n !*** ./src/types/level.ts ***!\n \\****************************/\n/*! exports provided: HlsSkip, getSkipValue, HlsUrlParameters, Level */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HlsSkip\", function() { return HlsSkip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSkipValue\", function() { return getSkipValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HlsUrlParameters\", function() { return HlsUrlParameters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Level\", function() { return Level; });\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar HlsSkip;\n\n(function (HlsSkip) {\n HlsSkip[\"No\"] = \"\";\n HlsSkip[\"Yes\"] = \"YES\";\n HlsSkip[\"v2\"] = \"v2\";\n})(HlsSkip || (HlsSkip = {}));\n\nfunction getSkipValue(details, msn) {\n var canSkipUntil = details.canSkipUntil,\n canSkipDateRanges = details.canSkipDateRanges,\n endSN = details.endSN;\n var snChangeGoal = msn !== undefined ? msn - endSN : 0;\n\n if (canSkipUntil && snChangeGoal < canSkipUntil) {\n if (canSkipDateRanges) {\n return HlsSkip.v2;\n }\n\n return HlsSkip.Yes;\n }\n\n return HlsSkip.No;\n}\nvar HlsUrlParameters = /*#__PURE__*/function () {\n function HlsUrlParameters(msn, part, skip) {\n this.msn = void 0;\n this.part = void 0;\n this.skip = void 0;\n this.msn = msn;\n this.part = part;\n this.skip = skip;\n }\n\n var _proto = HlsUrlParameters.prototype;\n\n _proto.addDirectives = function addDirectives(uri) {\n var url = new self.URL(uri);\n\n if (this.msn !== undefined) {\n url.searchParams.set('_HLS_msn', this.msn.toString());\n }\n\n if (this.part !== undefined) {\n url.searchParams.set('_HLS_part', this.part.toString());\n }\n\n if (this.skip) {\n url.searchParams.set('_HLS_skip', this.skip);\n }\n\n return url.toString();\n };\n\n return HlsUrlParameters;\n}();\nvar Level = /*#__PURE__*/function () {\n function Level(data) {\n this.attrs = void 0;\n this.audioCodec = void 0;\n this.bitrate = void 0;\n this.codecSet = void 0;\n this.height = void 0;\n this.id = void 0;\n this.name = void 0;\n this.videoCodec = void 0;\n this.width = void 0;\n this.unknownCodecs = void 0;\n this.audioGroupIds = void 0;\n this.details = void 0;\n this.fragmentError = 0;\n this.loadError = 0;\n this.loaded = void 0;\n this.realBitrate = 0;\n this.textGroupIds = void 0;\n this.url = void 0;\n this._urlId = 0;\n this.url = [data.url];\n this.attrs = data.attrs;\n this.bitrate = data.bitrate;\n\n if (data.details) {\n this.details = data.details;\n }\n\n this.id = data.id || 0;\n this.name = data.name;\n this.width = data.width || 0;\n this.height = data.height || 0;\n this.audioCodec = data.audioCodec;\n this.videoCodec = data.videoCodec;\n this.unknownCodecs = data.unknownCodecs;\n this.codecSet = [data.videoCodec, data.audioCodec].filter(function (c) {\n return c;\n }).join(',').replace(/\\.[^.,]+/g, '');\n }\n\n _createClass(Level, [{\n key: \"maxBitrate\",\n get: function get() {\n return Math.max(this.realBitrate, this.bitrate);\n }\n }, {\n key: \"uri\",\n get: function get() {\n return this.url[this._urlId] || '';\n }\n }, {\n key: \"urlId\",\n get: function get() {\n return this._urlId;\n },\n set: function set(value) {\n var newValue = value % this.url.length;\n\n if (this._urlId !== newValue) {\n this.details = undefined;\n this._urlId = newValue;\n }\n }\n }]);\n\n return Level;\n}();\n\n/***/ }),\n\n/***/ \"./src/types/loader.ts\":\n/*!*****************************!*\\\n !*** ./src/types/loader.ts ***!\n \\*****************************/\n/*! exports provided: PlaylistContextType, PlaylistLevelType */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PlaylistContextType\", function() { return PlaylistContextType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PlaylistLevelType\", function() { return PlaylistLevelType; });\nvar PlaylistContextType;\n\n(function (PlaylistContextType) {\n PlaylistContextType[\"MANIFEST\"] = \"manifest\";\n PlaylistContextType[\"LEVEL\"] = \"level\";\n PlaylistContextType[\"AUDIO_TRACK\"] = \"audioTrack\";\n PlaylistContextType[\"SUBTITLE_TRACK\"] = \"subtitleTrack\";\n})(PlaylistContextType || (PlaylistContextType = {}));\n\nvar PlaylistLevelType;\n\n(function (PlaylistLevelType) {\n PlaylistLevelType[\"MAIN\"] = \"main\";\n PlaylistLevelType[\"AUDIO\"] = \"audio\";\n PlaylistLevelType[\"SUBTITLE\"] = \"subtitle\";\n})(PlaylistLevelType || (PlaylistLevelType = {}));\n\n/***/ }),\n\n/***/ \"./src/types/transmuxer.ts\":\n/*!*********************************!*\\\n !*** ./src/types/transmuxer.ts ***!\n \\*********************************/\n/*! exports provided: ChunkMetadata */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ChunkMetadata\", function() { return ChunkMetadata; });\nvar ChunkMetadata = function ChunkMetadata(level, sn, id, size, part, partial) {\n if (size === void 0) {\n size = 0;\n }\n\n if (part === void 0) {\n part = -1;\n }\n\n if (partial === void 0) {\n partial = false;\n }\n\n this.level = void 0;\n this.sn = void 0;\n this.part = void 0;\n this.id = void 0;\n this.size = void 0;\n this.partial = void 0;\n this.transmuxing = getNewPerformanceTiming();\n this.buffering = {\n audio: getNewPerformanceTiming(),\n video: getNewPerformanceTiming(),\n audiovideo: getNewPerformanceTiming()\n };\n this.level = level;\n this.sn = sn;\n this.id = id;\n this.size = size;\n this.part = part;\n this.partial = partial;\n};\n\nfunction getNewPerformanceTiming() {\n return {\n start: 0,\n executeStart: 0,\n executeEnd: 0,\n end: 0\n };\n}\n\n/***/ }),\n\n/***/ \"./src/utils/attr-list.ts\":\n/*!********************************!*\\\n !*** ./src/utils/attr-list.ts ***!\n \\********************************/\n/*! exports provided: AttrList */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AttrList\", function() { return AttrList; });\nvar DECIMAL_RESOLUTION_REGEX = /^(\\d+)x(\\d+)$/; // eslint-disable-line no-useless-escape\n\nvar ATTR_LIST_REGEX = /\\s*(.+?)\\s*=((?:\\\".*?\\\")|.*?)(?:,|$)/g; // eslint-disable-line no-useless-escape\n// adapted from https://github.com/kanongil/node-m3u8parse/blob/master/attrlist.js\n\nvar AttrList = /*#__PURE__*/function () {\n function AttrList(attrs) {\n if (typeof attrs === 'string') {\n attrs = AttrList.parseAttrList(attrs);\n }\n\n for (var attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n this[attr] = attrs[attr];\n }\n }\n }\n\n var _proto = AttrList.prototype;\n\n _proto.decimalInteger = function decimalInteger(attrName) {\n var intValue = parseInt(this[attrName], 10);\n\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n\n return intValue;\n };\n\n _proto.hexadecimalInteger = function hexadecimalInteger(attrName) {\n if (this[attrName]) {\n var stringValue = (this[attrName] || '0x').slice(2);\n stringValue = (stringValue.length & 1 ? '0' : '') + stringValue;\n var value = new Uint8Array(stringValue.length / 2);\n\n for (var i = 0; i < stringValue.length / 2; i++) {\n value[i] = parseInt(stringValue.slice(i * 2, i * 2 + 2), 16);\n }\n\n return value;\n } else {\n return null;\n }\n };\n\n _proto.hexadecimalIntegerAsNumber = function hexadecimalIntegerAsNumber(attrName) {\n var intValue = parseInt(this[attrName], 16);\n\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n\n return intValue;\n };\n\n _proto.decimalFloatingPoint = function decimalFloatingPoint(attrName) {\n return parseFloat(this[attrName]);\n };\n\n _proto.optionalFloat = function optionalFloat(attrName, defaultValue) {\n var value = this[attrName];\n return value ? parseFloat(value) : defaultValue;\n };\n\n _proto.enumeratedString = function enumeratedString(attrName) {\n return this[attrName];\n };\n\n _proto.bool = function bool(attrName) {\n return this[attrName] === 'YES';\n };\n\n _proto.decimalResolution = function decimalResolution(attrName) {\n var res = DECIMAL_RESOLUTION_REGEX.exec(this[attrName]);\n\n if (res === null) {\n return undefined;\n }\n\n return {\n width: parseInt(res[1], 10),\n height: parseInt(res[2], 10)\n };\n };\n\n AttrList.parseAttrList = function parseAttrList(input) {\n var match;\n var attrs = {};\n var quote = '\"';\n ATTR_LIST_REGEX.lastIndex = 0;\n\n while ((match = ATTR_LIST_REGEX.exec(input)) !== null) {\n var value = match[2];\n\n if (value.indexOf(quote) === 0 && value.lastIndexOf(quote) === value.length - 1) {\n value = value.slice(1, -1);\n }\n\n attrs[match[1]] = value;\n }\n\n return attrs;\n };\n\n return AttrList;\n}();\n\n/***/ }),\n\n/***/ \"./src/utils/binary-search.ts\":\n/*!************************************!*\\\n !*** ./src/utils/binary-search.ts ***!\n \\************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\nvar BinarySearch = {\n /**\n * Searches for an item in an array which matches a certain condition.\n * This requires the condition to only match one item in the array,\n * and for the array to be ordered.\n *\n * @param {Array<T>} list The array to search.\n * @param {BinarySearchComparison<T>} comparisonFn\n * Called and provided a candidate item as the first argument.\n * Should return:\n * > -1 if the item should be located at a lower index than the provided item.\n * > 1 if the item should be located at a higher index than the provided item.\n * > 0 if the item is the item you're looking for.\n *\n * @return {T | null} The object if it is found or null otherwise.\n */\n search: function search(list, comparisonFn) {\n var minIndex = 0;\n var maxIndex = list.length - 1;\n var currentIndex = null;\n var currentElement = null;\n\n while (minIndex <= maxIndex) {\n currentIndex = (minIndex + maxIndex) / 2 | 0;\n currentElement = list[currentIndex];\n var comparisonResult = comparisonFn(currentElement);\n\n if (comparisonResult > 0) {\n minIndex = currentIndex + 1;\n } else if (comparisonResult < 0) {\n maxIndex = currentIndex - 1;\n } else {\n return currentElement;\n }\n }\n\n return null;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (BinarySearch);\n\n/***/ }),\n\n/***/ \"./src/utils/buffer-helper.ts\":\n/*!************************************!*\\\n !*** ./src/utils/buffer-helper.ts ***!\n \\************************************/\n/*! exports provided: BufferHelper */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BufferHelper\", function() { return BufferHelper; });\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logger */ \"./src/utils/logger.ts\");\n/**\n * @module BufferHelper\n *\n * Providing methods dealing with buffer length retrieval for example.\n *\n * In general, a helper around HTML5 MediaElement TimeRanges gathered from `buffered` property.\n *\n * Also @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered\n */\n\nvar noopBuffered = {\n length: 0,\n start: function start() {\n return 0;\n },\n end: function end() {\n return 0;\n }\n};\nvar BufferHelper = /*#__PURE__*/function () {\n function BufferHelper() {}\n\n /**\n * Return true if `media`'s buffered include `position`\n * @param {Bufferable} media\n * @param {number} position\n * @returns {boolean}\n */\n BufferHelper.isBuffered = function isBuffered(media, position) {\n try {\n if (media) {\n var buffered = BufferHelper.getBuffered(media);\n\n for (var i = 0; i < buffered.length; i++) {\n if (position >= buffered.start(i) && position <= buffered.end(i)) {\n return true;\n }\n }\n }\n } catch (error) {// this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n\n return false;\n };\n\n BufferHelper.bufferInfo = function bufferInfo(media, pos, maxHoleDuration) {\n try {\n if (media) {\n var vbuffered = BufferHelper.getBuffered(media);\n var buffered = [];\n var i;\n\n for (i = 0; i < vbuffered.length; i++) {\n buffered.push({\n start: vbuffered.start(i),\n end: vbuffered.end(i)\n });\n }\n\n return this.bufferedInfo(buffered, pos, maxHoleDuration);\n }\n } catch (error) {// this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n\n return {\n len: 0,\n start: pos,\n end: pos,\n nextStart: undefined\n };\n };\n\n BufferHelper.bufferedInfo = function bufferedInfo(buffered, pos, maxHoleDuration) {\n pos = Math.max(0, pos); // sort on buffer.start/smaller end (IE does not always return sorted buffered range)\n\n buffered.sort(function (a, b) {\n var diff = a.start - b.start;\n\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n var buffered2 = [];\n\n if (maxHoleDuration) {\n // there might be some small holes between buffer time range\n // consider that holes smaller than maxHoleDuration are irrelevant and build another\n // buffer time range representations that discards those holes\n for (var i = 0; i < buffered.length; i++) {\n var buf2len = buffered2.length;\n\n if (buf2len) {\n var buf2end = buffered2[buf2len - 1].end; // if small hole (value between 0 or maxHoleDuration ) or overlapping (negative)\n\n if (buffered[i].start - buf2end < maxHoleDuration) {\n // merge overlapping time ranges\n // update lastRange.end only if smaller than item.end\n // e.g. [ 1, 15] with [ 2,8] => [ 1,15] (no need to modify lastRange.end)\n // whereas [ 1, 8] with [ 2,15] => [ 1,15] ( lastRange should switch from [1,8] to [1,15])\n if (buffered[i].end > buf2end) {\n buffered2[buf2len - 1].end = buffered[i].end;\n }\n } else {\n // big hole\n buffered2.push(buffered[i]);\n }\n } else {\n // first value\n buffered2.push(buffered[i]);\n }\n }\n } else {\n buffered2 = buffered;\n }\n\n var bufferLen = 0; // bufferStartNext can possibly be undefined based on the conditional logic below\n\n var bufferStartNext; // bufferStart and bufferEnd are buffer boundaries around current video position\n\n var bufferStart = pos;\n var bufferEnd = pos;\n\n for (var _i = 0; _i < buffered2.length; _i++) {\n var start = buffered2[_i].start;\n var end = buffered2[_i].end; // logger.log('buf start/end:' + buffered.start(i) + '/' + buffered.end(i));\n\n if (pos + maxHoleDuration >= start && pos < end) {\n // play position is inside this buffer TimeRange, retrieve end of buffer position and buffer length\n bufferStart = start;\n bufferEnd = end;\n bufferLen = bufferEnd - pos;\n } else if (pos + maxHoleDuration < start) {\n bufferStartNext = start;\n break;\n }\n }\n\n return {\n len: bufferLen,\n start: bufferStart || 0,\n end: bufferEnd || 0,\n nextStart: bufferStartNext\n };\n }\n /**\n * Safe method to get buffered property.\n * SourceBuffer.buffered may throw if SourceBuffer is removed from it's MediaSource\n */\n ;\n\n BufferHelper.getBuffered = function getBuffered(media) {\n try {\n return media.buffered;\n } catch (e) {\n _logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].log('failed to get media.buffered', e);\n return noopBuffered;\n }\n };\n\n return BufferHelper;\n}();\n\n/***/ }),\n\n/***/ \"./src/utils/cea-608-parser.ts\":\n/*!*************************************!*\\\n !*** ./src/utils/cea-608-parser.ts ***!\n \\*************************************/\n/*! exports provided: Row, CaptionScreen, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Row\", function() { return Row; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CaptionScreen\", function() { return CaptionScreen; });\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n\n/**\n *\n * This code was ported from the dash.js project at:\n * https://github.com/Dash-Industry-Forum/dash.js/blob/development/externals/cea608-parser.js\n * https://github.com/Dash-Industry-Forum/dash.js/commit/8269b26a761e0853bb21d78780ed945144ecdd4d#diff-71bc295a2d6b6b7093a1d3290d53a4b2\n *\n * The original copyright appears below:\n *\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2015-2016, DASH Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * 2. Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * Exceptions from regular ASCII. CodePoints are mapped to UTF-16 codes\n */\n\nvar specialCea608CharsCodes = {\n 0x2a: 0xe1,\n // lowercase a, acute accent\n 0x5c: 0xe9,\n // lowercase e, acute accent\n 0x5e: 0xed,\n // lowercase i, acute accent\n 0x5f: 0xf3,\n // lowercase o, acute accent\n 0x60: 0xfa,\n // lowercase u, acute accent\n 0x7b: 0xe7,\n // lowercase c with cedilla\n 0x7c: 0xf7,\n // division symbol\n 0x7d: 0xd1,\n // uppercase N tilde\n 0x7e: 0xf1,\n // lowercase n tilde\n 0x7f: 0x2588,\n // Full block\n // THIS BLOCK INCLUDES THE 16 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x11 AND LOW BETWEEN 0x30 AND 0x3F\n // THIS MEANS THAT \\x50 MUST BE ADDED TO THE VALUES\n 0x80: 0xae,\n // Registered symbol (R)\n 0x81: 0xb0,\n // degree sign\n 0x82: 0xbd,\n // 1/2 symbol\n 0x83: 0xbf,\n // Inverted (open) question mark\n 0x84: 0x2122,\n // Trademark symbol (TM)\n 0x85: 0xa2,\n // Cents symbol\n 0x86: 0xa3,\n // Pounds sterling\n 0x87: 0x266a,\n // Music 8'th note\n 0x88: 0xe0,\n // lowercase a, grave accent\n 0x89: 0x20,\n // transparent space (regular)\n 0x8a: 0xe8,\n // lowercase e, grave accent\n 0x8b: 0xe2,\n // lowercase a, circumflex accent\n 0x8c: 0xea,\n // lowercase e, circumflex accent\n 0x8d: 0xee,\n // lowercase i, circumflex accent\n 0x8e: 0xf4,\n // lowercase o, circumflex accent\n 0x8f: 0xfb,\n // lowercase u, circumflex accent\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x12 AND LOW BETWEEN 0x20 AND 0x3F\n 0x90: 0xc1,\n // capital letter A with acute\n 0x91: 0xc9,\n // capital letter E with acute\n 0x92: 0xd3,\n // capital letter O with acute\n 0x93: 0xda,\n // capital letter U with acute\n 0x94: 0xdc,\n // capital letter U with diaresis\n 0x95: 0xfc,\n // lowercase letter U with diaeresis\n 0x96: 0x2018,\n // opening single quote\n 0x97: 0xa1,\n // inverted exclamation mark\n 0x98: 0x2a,\n // asterisk\n 0x99: 0x2019,\n // closing single quote\n 0x9a: 0x2501,\n // box drawings heavy horizontal\n 0x9b: 0xa9,\n // copyright sign\n 0x9c: 0x2120,\n // Service mark\n 0x9d: 0x2022,\n // (round) bullet\n 0x9e: 0x201c,\n // Left double quotation mark\n 0x9f: 0x201d,\n // Right double quotation mark\n 0xa0: 0xc0,\n // uppercase A, grave accent\n 0xa1: 0xc2,\n // uppercase A, circumflex\n 0xa2: 0xc7,\n // uppercase C with cedilla\n 0xa3: 0xc8,\n // uppercase E, grave accent\n 0xa4: 0xca,\n // uppercase E, circumflex\n 0xa5: 0xcb,\n // capital letter E with diaresis\n 0xa6: 0xeb,\n // lowercase letter e with diaresis\n 0xa7: 0xce,\n // uppercase I, circumflex\n 0xa8: 0xcf,\n // uppercase I, with diaresis\n 0xa9: 0xef,\n // lowercase i, with diaresis\n 0xaa: 0xd4,\n // uppercase O, circumflex\n 0xab: 0xd9,\n // uppercase U, grave accent\n 0xac: 0xf9,\n // lowercase u, grave accent\n 0xad: 0xdb,\n // uppercase U, circumflex\n 0xae: 0xab,\n // left-pointing double angle quotation mark\n 0xaf: 0xbb,\n // right-pointing double angle quotation mark\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x13 AND LOW BETWEEN 0x20 AND 0x3F\n 0xb0: 0xc3,\n // Uppercase A, tilde\n 0xb1: 0xe3,\n // Lowercase a, tilde\n 0xb2: 0xcd,\n // Uppercase I, acute accent\n 0xb3: 0xcc,\n // Uppercase I, grave accent\n 0xb4: 0xec,\n // Lowercase i, grave accent\n 0xb5: 0xd2,\n // Uppercase O, grave accent\n 0xb6: 0xf2,\n // Lowercase o, grave accent\n 0xb7: 0xd5,\n // Uppercase O, tilde\n 0xb8: 0xf5,\n // Lowercase o, tilde\n 0xb9: 0x7b,\n // Open curly brace\n 0xba: 0x7d,\n // Closing curly brace\n 0xbb: 0x5c,\n // Backslash\n 0xbc: 0x5e,\n // Caret\n 0xbd: 0x5f,\n // Underscore\n 0xbe: 0x7c,\n // Pipe (vertical line)\n 0xbf: 0x223c,\n // Tilde operator\n 0xc0: 0xc4,\n // Uppercase A, umlaut\n 0xc1: 0xe4,\n // Lowercase A, umlaut\n 0xc2: 0xd6,\n // Uppercase O, umlaut\n 0xc3: 0xf6,\n // Lowercase o, umlaut\n 0xc4: 0xdf,\n // Esszett (sharp S)\n 0xc5: 0xa5,\n // Yen symbol\n 0xc6: 0xa4,\n // Generic currency sign\n 0xc7: 0x2503,\n // Box drawings heavy vertical\n 0xc8: 0xc5,\n // Uppercase A, ring\n 0xc9: 0xe5,\n // Lowercase A, ring\n 0xca: 0xd8,\n // Uppercase O, stroke\n 0xcb: 0xf8,\n // Lowercase o, strok\n 0xcc: 0x250f,\n // Box drawings heavy down and right\n 0xcd: 0x2513,\n // Box drawings heavy down and left\n 0xce: 0x2517,\n // Box drawings heavy up and right\n 0xcf: 0x251b // Box drawings heavy up and left\n\n};\n/**\n * Utils\n */\n\nvar getCharForByte = function getCharForByte(_byte) {\n var charCode = _byte;\n\n if (specialCea608CharsCodes.hasOwnProperty(_byte)) {\n charCode = specialCea608CharsCodes[_byte];\n }\n\n return String.fromCharCode(charCode);\n};\n\nvar NR_ROWS = 15;\nvar NR_COLS = 100; // Tables to look up row from PAC data\n\nvar rowsLowCh1 = {\n 0x11: 1,\n 0x12: 3,\n 0x15: 5,\n 0x16: 7,\n 0x17: 9,\n 0x10: 11,\n 0x13: 12,\n 0x14: 14\n};\nvar rowsHighCh1 = {\n 0x11: 2,\n 0x12: 4,\n 0x15: 6,\n 0x16: 8,\n 0x17: 10,\n 0x13: 13,\n 0x14: 15\n};\nvar rowsLowCh2 = {\n 0x19: 1,\n 0x1a: 3,\n 0x1d: 5,\n 0x1e: 7,\n 0x1f: 9,\n 0x18: 11,\n 0x1b: 12,\n 0x1c: 14\n};\nvar rowsHighCh2 = {\n 0x19: 2,\n 0x1a: 4,\n 0x1d: 6,\n 0x1e: 8,\n 0x1f: 10,\n 0x1b: 13,\n 0x1c: 15\n};\nvar backgroundColors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'black', 'transparent'];\nvar VerboseLevel;\n\n(function (VerboseLevel) {\n VerboseLevel[VerboseLevel[\"ERROR\"] = 0] = \"ERROR\";\n VerboseLevel[VerboseLevel[\"TEXT\"] = 1] = \"TEXT\";\n VerboseLevel[VerboseLevel[\"WARNING\"] = 2] = \"WARNING\";\n VerboseLevel[VerboseLevel[\"INFO\"] = 2] = \"INFO\";\n VerboseLevel[VerboseLevel[\"DEBUG\"] = 3] = \"DEBUG\";\n VerboseLevel[VerboseLevel[\"DATA\"] = 3] = \"DATA\";\n})(VerboseLevel || (VerboseLevel = {}));\n\nvar CaptionsLogger = /*#__PURE__*/function () {\n function CaptionsLogger() {\n this.time = null;\n this.verboseLevel = VerboseLevel.ERROR;\n }\n\n var _proto = CaptionsLogger.prototype;\n\n _proto.log = function log(severity, msg) {\n if (this.verboseLevel >= severity) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].log(this.time + \" [\" + severity + \"] \" + msg);\n }\n };\n\n return CaptionsLogger;\n}();\n\nvar numArrayToHexArray = function numArrayToHexArray(numArray) {\n var hexArray = [];\n\n for (var j = 0; j < numArray.length; j++) {\n hexArray.push(numArray[j].toString(16));\n }\n\n return hexArray;\n};\n\nvar PenState = /*#__PURE__*/function () {\n function PenState(foreground, underline, italics, background, flash) {\n this.foreground = void 0;\n this.underline = void 0;\n this.italics = void 0;\n this.background = void 0;\n this.flash = void 0;\n this.foreground = foreground || 'white';\n this.underline = underline || false;\n this.italics = italics || false;\n this.background = background || 'black';\n this.flash = flash || false;\n }\n\n var _proto2 = PenState.prototype;\n\n _proto2.reset = function reset() {\n this.foreground = 'white';\n this.underline = false;\n this.italics = false;\n this.background = 'black';\n this.flash = false;\n };\n\n _proto2.setStyles = function setStyles(styles) {\n var attribs = ['foreground', 'underline', 'italics', 'background', 'flash'];\n\n for (var i = 0; i < attribs.length; i++) {\n var style = attribs[i];\n\n if (styles.hasOwnProperty(style)) {\n this[style] = styles[style];\n }\n }\n };\n\n _proto2.isDefault = function isDefault() {\n return this.foreground === 'white' && !this.underline && !this.italics && this.background === 'black' && !this.flash;\n };\n\n _proto2.equals = function equals(other) {\n return this.foreground === other.foreground && this.underline === other.underline && this.italics === other.italics && this.background === other.background && this.flash === other.flash;\n };\n\n _proto2.copy = function copy(newPenState) {\n this.foreground = newPenState.foreground;\n this.underline = newPenState.underline;\n this.italics = newPenState.italics;\n this.background = newPenState.background;\n this.flash = newPenState.flash;\n };\n\n _proto2.toString = function toString() {\n return 'color=' + this.foreground + ', underline=' + this.underline + ', italics=' + this.italics + ', background=' + this.background + ', flash=' + this.flash;\n };\n\n return PenState;\n}();\n/**\n * Unicode character with styling and background.\n * @constructor\n */\n\n\nvar StyledUnicodeChar = /*#__PURE__*/function () {\n function StyledUnicodeChar(uchar, foreground, underline, italics, background, flash) {\n this.uchar = void 0;\n this.penState = void 0;\n this.uchar = uchar || ' '; // unicode character\n\n this.penState = new PenState(foreground, underline, italics, background, flash);\n }\n\n var _proto3 = StyledUnicodeChar.prototype;\n\n _proto3.reset = function reset() {\n this.uchar = ' ';\n this.penState.reset();\n };\n\n _proto3.setChar = function setChar(uchar, newPenState) {\n this.uchar = uchar;\n this.penState.copy(newPenState);\n };\n\n _proto3.setPenState = function setPenState(newPenState) {\n this.penState.copy(newPenState);\n };\n\n _proto3.equals = function equals(other) {\n return this.uchar === other.uchar && this.penState.equals(other.penState);\n };\n\n _proto3.copy = function copy(newChar) {\n this.uchar = newChar.uchar;\n this.penState.copy(newChar.penState);\n };\n\n _proto3.isEmpty = function isEmpty() {\n return this.uchar === ' ' && this.penState.isDefault();\n };\n\n return StyledUnicodeChar;\n}();\n/**\n * CEA-608 row consisting of NR_COLS instances of StyledUnicodeChar.\n * @constructor\n */\n\n\nvar Row = /*#__PURE__*/function () {\n function Row(logger) {\n this.chars = void 0;\n this.pos = void 0;\n this.currPenState = void 0;\n this.cueStartTime = void 0;\n this.logger = void 0;\n this.chars = [];\n\n for (var i = 0; i < NR_COLS; i++) {\n this.chars.push(new StyledUnicodeChar());\n }\n\n this.logger = logger;\n this.pos = 0;\n this.currPenState = new PenState();\n }\n\n var _proto4 = Row.prototype;\n\n _proto4.equals = function equals(other) {\n var equal = true;\n\n for (var i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].equals(other.chars[i])) {\n equal = false;\n break;\n }\n }\n\n return equal;\n };\n\n _proto4.copy = function copy(other) {\n for (var i = 0; i < NR_COLS; i++) {\n this.chars[i].copy(other.chars[i]);\n }\n };\n\n _proto4.isEmpty = function isEmpty() {\n var empty = true;\n\n for (var i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n\n return empty;\n }\n /**\n * Set the cursor to a valid column.\n */\n ;\n\n _proto4.setCursor = function setCursor(absPos) {\n if (this.pos !== absPos) {\n this.pos = absPos;\n }\n\n if (this.pos < 0) {\n this.logger.log(VerboseLevel.DEBUG, 'Negative cursor position ' + this.pos);\n this.pos = 0;\n } else if (this.pos > NR_COLS) {\n this.logger.log(VerboseLevel.DEBUG, 'Too large cursor position ' + this.pos);\n this.pos = NR_COLS;\n }\n }\n /**\n * Move the cursor relative to current position.\n */\n ;\n\n _proto4.moveCursor = function moveCursor(relPos) {\n var newPos = this.pos + relPos;\n\n if (relPos > 1) {\n for (var i = this.pos + 1; i < newPos + 1; i++) {\n this.chars[i].setPenState(this.currPenState);\n }\n }\n\n this.setCursor(newPos);\n }\n /**\n * Backspace, move one step back and clear character.\n */\n ;\n\n _proto4.backSpace = function backSpace() {\n this.moveCursor(-1);\n this.chars[this.pos].setChar(' ', this.currPenState);\n };\n\n _proto4.insertChar = function insertChar(_byte2) {\n if (_byte2 >= 0x90) {\n // Extended char\n this.backSpace();\n }\n\n var _char = getCharForByte(_byte2);\n\n if (this.pos >= NR_COLS) {\n this.logger.log(VerboseLevel.ERROR, 'Cannot insert ' + _byte2.toString(16) + ' (' + _char + ') at position ' + this.pos + '. Skipping it!');\n return;\n }\n\n this.chars[this.pos].setChar(_char, this.currPenState);\n this.moveCursor(1);\n };\n\n _proto4.clearFromPos = function clearFromPos(startPos) {\n var i;\n\n for (i = startPos; i < NR_COLS; i++) {\n this.chars[i].reset();\n }\n };\n\n _proto4.clear = function clear() {\n this.clearFromPos(0);\n this.pos = 0;\n this.currPenState.reset();\n };\n\n _proto4.clearToEndOfRow = function clearToEndOfRow() {\n this.clearFromPos(this.pos);\n };\n\n _proto4.getTextString = function getTextString() {\n var chars = [];\n var empty = true;\n\n for (var i = 0; i < NR_COLS; i++) {\n var _char2 = this.chars[i].uchar;\n\n if (_char2 !== ' ') {\n empty = false;\n }\n\n chars.push(_char2);\n }\n\n if (empty) {\n return '';\n } else {\n return chars.join('');\n }\n };\n\n _proto4.setPenStyles = function setPenStyles(styles) {\n this.currPenState.setStyles(styles);\n var currChar = this.chars[this.pos];\n currChar.setPenState(this.currPenState);\n };\n\n return Row;\n}();\n/**\n * Keep a CEA-608 screen of 32x15 styled characters\n * @constructor\n */\n\nvar CaptionScreen = /*#__PURE__*/function () {\n function CaptionScreen(logger) {\n this.rows = void 0;\n this.currRow = void 0;\n this.nrRollUpRows = void 0;\n this.lastOutputScreen = void 0;\n this.logger = void 0;\n this.rows = [];\n\n for (var i = 0; i < NR_ROWS; i++) {\n this.rows.push(new Row(logger));\n } // Note that we use zero-based numbering (0-14)\n\n\n this.logger = logger;\n this.currRow = NR_ROWS - 1;\n this.nrRollUpRows = null;\n this.lastOutputScreen = null;\n this.reset();\n }\n\n var _proto5 = CaptionScreen.prototype;\n\n _proto5.reset = function reset() {\n for (var i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n }\n\n this.currRow = NR_ROWS - 1;\n };\n\n _proto5.equals = function equals(other) {\n var equal = true;\n\n for (var i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].equals(other.rows[i])) {\n equal = false;\n break;\n }\n }\n\n return equal;\n };\n\n _proto5.copy = function copy(other) {\n for (var i = 0; i < NR_ROWS; i++) {\n this.rows[i].copy(other.rows[i]);\n }\n };\n\n _proto5.isEmpty = function isEmpty() {\n var empty = true;\n\n for (var i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n\n return empty;\n };\n\n _proto5.backSpace = function backSpace() {\n var row = this.rows[this.currRow];\n row.backSpace();\n };\n\n _proto5.clearToEndOfRow = function clearToEndOfRow() {\n var row = this.rows[this.currRow];\n row.clearToEndOfRow();\n }\n /**\n * Insert a character (without styling) in the current row.\n */\n ;\n\n _proto5.insertChar = function insertChar(_char3) {\n var row = this.rows[this.currRow];\n row.insertChar(_char3);\n };\n\n _proto5.setPen = function setPen(styles) {\n var row = this.rows[this.currRow];\n row.setPenStyles(styles);\n };\n\n _proto5.moveCursor = function moveCursor(relPos) {\n var row = this.rows[this.currRow];\n row.moveCursor(relPos);\n };\n\n _proto5.setCursor = function setCursor(absPos) {\n this.logger.log(VerboseLevel.INFO, 'setCursor: ' + absPos);\n var row = this.rows[this.currRow];\n row.setCursor(absPos);\n };\n\n _proto5.setPAC = function setPAC(pacData) {\n this.logger.log(VerboseLevel.INFO, 'pacData = ' + JSON.stringify(pacData));\n var newRow = pacData.row - 1;\n\n if (this.nrRollUpRows && newRow < this.nrRollUpRows - 1) {\n newRow = this.nrRollUpRows - 1;\n } // Make sure this only affects Roll-up Captions by checking this.nrRollUpRows\n\n\n if (this.nrRollUpRows && this.currRow !== newRow) {\n // clear all rows first\n for (var i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n } // Copy this.nrRollUpRows rows from lastOutputScreen and place it in the newRow location\n // topRowIndex - the start of rows to copy (inclusive index)\n\n\n var topRowIndex = this.currRow + 1 - this.nrRollUpRows; // We only copy if the last position was already shown.\n // We use the cueStartTime value to check this.\n\n var lastOutputScreen = this.lastOutputScreen;\n\n if (lastOutputScreen) {\n var prevLineTime = lastOutputScreen.rows[topRowIndex].cueStartTime;\n var time = this.logger.time;\n\n if (prevLineTime && time !== null && prevLineTime < time) {\n for (var _i = 0; _i < this.nrRollUpRows; _i++) {\n this.rows[newRow - this.nrRollUpRows + _i + 1].copy(lastOutputScreen.rows[topRowIndex + _i]);\n }\n }\n }\n }\n\n this.currRow = newRow;\n var row = this.rows[this.currRow];\n\n if (pacData.indent !== null) {\n var indent = pacData.indent;\n var prevPos = Math.max(indent - 1, 0);\n row.setCursor(pacData.indent);\n pacData.color = row.chars[prevPos].penState.foreground;\n }\n\n var styles = {\n foreground: pacData.color,\n underline: pacData.underline,\n italics: pacData.italics,\n background: 'black',\n flash: false\n };\n this.setPen(styles);\n }\n /**\n * Set background/extra foreground, but first do back_space, and then insert space (backwards compatibility).\n */\n ;\n\n _proto5.setBkgData = function setBkgData(bkgData) {\n this.logger.log(VerboseLevel.INFO, 'bkgData = ' + JSON.stringify(bkgData));\n this.backSpace();\n this.setPen(bkgData);\n this.insertChar(0x20); // Space\n };\n\n _proto5.setRollUpRows = function setRollUpRows(nrRows) {\n this.nrRollUpRows = nrRows;\n };\n\n _proto5.rollUp = function rollUp() {\n if (this.nrRollUpRows === null) {\n this.logger.log(VerboseLevel.DEBUG, 'roll_up but nrRollUpRows not set yet');\n return; // Not properly setup\n }\n\n this.logger.log(VerboseLevel.TEXT, this.getDisplayText());\n var topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n var topRow = this.rows.splice(topRowIndex, 1)[0];\n topRow.clear();\n this.rows.splice(this.currRow, 0, topRow);\n this.logger.log(VerboseLevel.INFO, 'Rolling up'); // this.logger.log(VerboseLevel.TEXT, this.get_display_text())\n }\n /**\n * Get all non-empty rows with as unicode text.\n */\n ;\n\n _proto5.getDisplayText = function getDisplayText(asOneRow) {\n asOneRow = asOneRow || false;\n var displayText = [];\n var text = '';\n var rowNr = -1;\n\n for (var i = 0; i < NR_ROWS; i++) {\n var rowText = this.rows[i].getTextString();\n\n if (rowText) {\n rowNr = i + 1;\n\n if (asOneRow) {\n displayText.push('Row ' + rowNr + \": '\" + rowText + \"'\");\n } else {\n displayText.push(rowText.trim());\n }\n }\n }\n\n if (displayText.length > 0) {\n if (asOneRow) {\n text = '[' + displayText.join(' | ') + ']';\n } else {\n text = displayText.join('\\n');\n }\n }\n\n return text;\n };\n\n _proto5.getTextAndFormat = function getTextAndFormat() {\n return this.rows;\n };\n\n return CaptionScreen;\n}(); // var modes = ['MODE_ROLL-UP', 'MODE_POP-ON', 'MODE_PAINT-ON', 'MODE_TEXT'];\n\nvar Cea608Channel = /*#__PURE__*/function () {\n function Cea608Channel(channelNumber, outputFilter, logger) {\n this.chNr = void 0;\n this.outputFilter = void 0;\n this.mode = void 0;\n this.verbose = void 0;\n this.displayedMemory = void 0;\n this.nonDisplayedMemory = void 0;\n this.lastOutputScreen = void 0;\n this.currRollUpRow = void 0;\n this.writeScreen = void 0;\n this.cueStartTime = void 0;\n this.logger = void 0;\n this.chNr = channelNumber;\n this.outputFilter = outputFilter;\n this.mode = null;\n this.verbose = 0;\n this.displayedMemory = new CaptionScreen(logger);\n this.nonDisplayedMemory = new CaptionScreen(logger);\n this.lastOutputScreen = new CaptionScreen(logger);\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null; // Keeps track of where a cue started.\n\n this.logger = logger;\n }\n\n var _proto6 = Cea608Channel.prototype;\n\n _proto6.reset = function reset() {\n this.mode = null;\n this.displayedMemory.reset();\n this.nonDisplayedMemory.reset();\n this.lastOutputScreen.reset();\n this.outputFilter.reset();\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null;\n };\n\n _proto6.getHandler = function getHandler() {\n return this.outputFilter;\n };\n\n _proto6.setHandler = function setHandler(newHandler) {\n this.outputFilter = newHandler;\n };\n\n _proto6.setPAC = function setPAC(pacData) {\n this.writeScreen.setPAC(pacData);\n };\n\n _proto6.setBkgData = function setBkgData(bkgData) {\n this.writeScreen.setBkgData(bkgData);\n };\n\n _proto6.setMode = function setMode(newMode) {\n if (newMode === this.mode) {\n return;\n }\n\n this.mode = newMode;\n this.logger.log(VerboseLevel.INFO, 'MODE=' + newMode);\n\n if (this.mode === 'MODE_POP-ON') {\n this.writeScreen = this.nonDisplayedMemory;\n } else {\n this.writeScreen = this.displayedMemory;\n this.writeScreen.reset();\n }\n\n if (this.mode !== 'MODE_ROLL-UP') {\n this.displayedMemory.nrRollUpRows = null;\n this.nonDisplayedMemory.nrRollUpRows = null;\n }\n\n this.mode = newMode;\n };\n\n _proto6.insertChars = function insertChars(chars) {\n for (var i = 0; i < chars.length; i++) {\n this.writeScreen.insertChar(chars[i]);\n }\n\n var screen = this.writeScreen === this.displayedMemory ? 'DISP' : 'NON_DISP';\n this.logger.log(VerboseLevel.INFO, screen + ': ' + this.writeScreen.getDisplayText(true));\n\n if (this.mode === 'MODE_PAINT-ON' || this.mode === 'MODE_ROLL-UP') {\n this.logger.log(VerboseLevel.TEXT, 'DISPLAYED: ' + this.displayedMemory.getDisplayText(true));\n this.outputDataUpdate();\n }\n };\n\n _proto6.ccRCL = function ccRCL() {\n // Resume Caption Loading (switch mode to Pop On)\n this.logger.log(VerboseLevel.INFO, 'RCL - Resume Caption Loading');\n this.setMode('MODE_POP-ON');\n };\n\n _proto6.ccBS = function ccBS() {\n // BackSpace\n this.logger.log(VerboseLevel.INFO, 'BS - BackSpace');\n\n if (this.mode === 'MODE_TEXT') {\n return;\n }\n\n this.writeScreen.backSpace();\n\n if (this.writeScreen === this.displayedMemory) {\n this.outputDataUpdate();\n }\n };\n\n _proto6.ccAOF = function ccAOF() {// Reserved (formerly Alarm Off)\n };\n\n _proto6.ccAON = function ccAON() {// Reserved (formerly Alarm On)\n };\n\n _proto6.ccDER = function ccDER() {\n // Delete to End of Row\n this.logger.log(VerboseLevel.INFO, 'DER- Delete to End of Row');\n this.writeScreen.clearToEndOfRow();\n this.outputDataUpdate();\n };\n\n _proto6.ccRU = function ccRU(nrRows) {\n // Roll-Up Captions-2,3,or 4 Rows\n this.logger.log(VerboseLevel.INFO, 'RU(' + nrRows + ') - Roll Up');\n this.writeScreen = this.displayedMemory;\n this.setMode('MODE_ROLL-UP');\n this.writeScreen.setRollUpRows(nrRows);\n };\n\n _proto6.ccFON = function ccFON() {\n // Flash On\n this.logger.log(VerboseLevel.INFO, 'FON - Flash On');\n this.writeScreen.setPen({\n flash: true\n });\n };\n\n _proto6.ccRDC = function ccRDC() {\n // Resume Direct Captioning (switch mode to PaintOn)\n this.logger.log(VerboseLevel.INFO, 'RDC - Resume Direct Captioning');\n this.setMode('MODE_PAINT-ON');\n };\n\n _proto6.ccTR = function ccTR() {\n // Text Restart in text mode (not supported, however)\n this.logger.log(VerboseLevel.INFO, 'TR');\n this.setMode('MODE_TEXT');\n };\n\n _proto6.ccRTD = function ccRTD() {\n // Resume Text Display in Text mode (not supported, however)\n this.logger.log(VerboseLevel.INFO, 'RTD');\n this.setMode('MODE_TEXT');\n };\n\n _proto6.ccEDM = function ccEDM() {\n // Erase Displayed Memory\n this.logger.log(VerboseLevel.INFO, 'EDM - Erase Displayed Memory');\n this.displayedMemory.reset();\n this.outputDataUpdate(true);\n };\n\n _proto6.ccCR = function ccCR() {\n // Carriage Return\n this.logger.log(VerboseLevel.INFO, 'CR - Carriage Return');\n this.writeScreen.rollUp();\n this.outputDataUpdate(true);\n };\n\n _proto6.ccENM = function ccENM() {\n // Erase Non-Displayed Memory\n this.logger.log(VerboseLevel.INFO, 'ENM - Erase Non-displayed Memory');\n this.nonDisplayedMemory.reset();\n };\n\n _proto6.ccEOC = function ccEOC() {\n // End of Caption (Flip Memories)\n this.logger.log(VerboseLevel.INFO, 'EOC - End Of Caption');\n\n if (this.mode === 'MODE_POP-ON') {\n var tmp = this.displayedMemory;\n this.displayedMemory = this.nonDisplayedMemory;\n this.nonDisplayedMemory = tmp;\n this.writeScreen = this.nonDisplayedMemory;\n this.logger.log(VerboseLevel.TEXT, 'DISP: ' + this.displayedMemory.getDisplayText());\n }\n\n this.outputDataUpdate(true);\n };\n\n _proto6.ccTO = function ccTO(nrCols) {\n // Tab Offset 1,2, or 3 columns\n this.logger.log(VerboseLevel.INFO, 'TO(' + nrCols + ') - Tab Offset');\n this.writeScreen.moveCursor(nrCols);\n };\n\n _proto6.ccMIDROW = function ccMIDROW(secondByte) {\n // Parse MIDROW command\n var styles = {\n flash: false\n };\n styles.underline = secondByte % 2 === 1;\n styles.italics = secondByte >= 0x2e;\n\n if (!styles.italics) {\n var colorIndex = Math.floor(secondByte / 2) - 0x10;\n var colors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta'];\n styles.foreground = colors[colorIndex];\n } else {\n styles.foreground = 'white';\n }\n\n this.logger.log(VerboseLevel.INFO, 'MIDROW: ' + JSON.stringify(styles));\n this.writeScreen.setPen(styles);\n };\n\n _proto6.outputDataUpdate = function outputDataUpdate(dispatch) {\n if (dispatch === void 0) {\n dispatch = false;\n }\n\n var time = this.logger.time;\n\n if (time === null) {\n return;\n }\n\n if (this.outputFilter) {\n if (this.cueStartTime === null && !this.displayedMemory.isEmpty()) {\n // Start of a new cue\n this.cueStartTime = time;\n } else {\n if (!this.displayedMemory.equals(this.lastOutputScreen)) {\n this.outputFilter.newCue(this.cueStartTime, time, this.lastOutputScreen);\n\n if (dispatch && this.outputFilter.dispatchCue) {\n this.outputFilter.dispatchCue();\n }\n\n this.cueStartTime = this.displayedMemory.isEmpty() ? null : time;\n }\n }\n\n this.lastOutputScreen.copy(this.displayedMemory);\n }\n };\n\n _proto6.cueSplitAtTime = function cueSplitAtTime(t) {\n if (this.outputFilter) {\n if (!this.displayedMemory.isEmpty()) {\n if (this.outputFilter.newCue) {\n this.outputFilter.newCue(this.cueStartTime, t, this.displayedMemory);\n }\n\n this.cueStartTime = t;\n }\n }\n };\n\n return Cea608Channel;\n}();\n\nvar Cea608Parser = /*#__PURE__*/function () {\n function Cea608Parser(field, out1, out2) {\n this.channels = void 0;\n this.currentChannel = 0;\n this.cmdHistory = void 0;\n this.logger = void 0;\n var logger = new CaptionsLogger();\n this.channels = [null, new Cea608Channel(field, out1, logger), new Cea608Channel(field + 1, out2, logger)];\n this.cmdHistory = createCmdHistory();\n this.logger = logger;\n }\n\n var _proto7 = Cea608Parser.prototype;\n\n _proto7.getHandler = function getHandler(channel) {\n return this.channels[channel].getHandler();\n };\n\n _proto7.setHandler = function setHandler(channel, newHandler) {\n this.channels[channel].setHandler(newHandler);\n }\n /**\n * Add data for time t in forms of list of bytes (unsigned ints). The bytes are treated as pairs.\n */\n ;\n\n _proto7.addData = function addData(time, byteList) {\n var cmdFound;\n var a;\n var b;\n var charsFound = false;\n this.logger.time = time;\n\n for (var i = 0; i < byteList.length; i += 2) {\n a = byteList[i] & 0x7f;\n b = byteList[i + 1] & 0x7f;\n\n if (a === 0 && b === 0) {\n continue;\n } else {\n this.logger.log(VerboseLevel.DATA, '[' + numArrayToHexArray([byteList[i], byteList[i + 1]]) + '] -> (' + numArrayToHexArray([a, b]) + ')');\n }\n\n cmdFound = this.parseCmd(a, b);\n\n if (!cmdFound) {\n cmdFound = this.parseMidrow(a, b);\n }\n\n if (!cmdFound) {\n cmdFound = this.parsePAC(a, b);\n }\n\n if (!cmdFound) {\n cmdFound = this.parseBackgroundAttributes(a, b);\n }\n\n if (!cmdFound) {\n charsFound = this.parseChars(a, b);\n\n if (charsFound) {\n var currChNr = this.currentChannel;\n\n if (currChNr && currChNr > 0) {\n var channel = this.channels[currChNr];\n channel.insertChars(charsFound);\n } else {\n this.logger.log(VerboseLevel.WARNING, 'No channel found yet. TEXT-MODE?');\n }\n }\n }\n\n if (!cmdFound && !charsFound) {\n this.logger.log(VerboseLevel.WARNING, \"Couldn't parse cleaned data \" + numArrayToHexArray([a, b]) + ' orig: ' + numArrayToHexArray([byteList[i], byteList[i + 1]]));\n }\n }\n }\n /**\n * Parse Command.\n * @returns {Boolean} Tells if a command was found\n */\n ;\n\n _proto7.parseCmd = function parseCmd(a, b) {\n var cmdHistory = this.cmdHistory;\n var cond1 = (a === 0x14 || a === 0x1c || a === 0x15 || a === 0x1d) && b >= 0x20 && b <= 0x2f;\n var cond2 = (a === 0x17 || a === 0x1f) && b >= 0x21 && b <= 0x23;\n\n if (!(cond1 || cond2)) {\n return false;\n }\n\n if (hasCmdRepeated(a, b, cmdHistory)) {\n setLastCmd(null, null, cmdHistory);\n this.logger.log(VerboseLevel.DEBUG, 'Repeated command (' + numArrayToHexArray([a, b]) + ') is dropped');\n return true;\n }\n\n var chNr = a === 0x14 || a === 0x15 || a === 0x17 ? 1 : 2;\n var channel = this.channels[chNr];\n\n if (a === 0x14 || a === 0x15 || a === 0x1c || a === 0x1d) {\n if (b === 0x20) {\n channel.ccRCL();\n } else if (b === 0x21) {\n channel.ccBS();\n } else if (b === 0x22) {\n channel.ccAOF();\n } else if (b === 0x23) {\n channel.ccAON();\n } else if (b === 0x24) {\n channel.ccDER();\n } else if (b === 0x25) {\n channel.ccRU(2);\n } else if (b === 0x26) {\n channel.ccRU(3);\n } else if (b === 0x27) {\n channel.ccRU(4);\n } else if (b === 0x28) {\n channel.ccFON();\n } else if (b === 0x29) {\n channel.ccRDC();\n } else if (b === 0x2a) {\n channel.ccTR();\n } else if (b === 0x2b) {\n channel.ccRTD();\n } else if (b === 0x2c) {\n channel.ccEDM();\n } else if (b === 0x2d) {\n channel.ccCR();\n } else if (b === 0x2e) {\n channel.ccENM();\n } else if (b === 0x2f) {\n channel.ccEOC();\n }\n } else {\n // a == 0x17 || a == 0x1F\n channel.ccTO(b - 0x20);\n }\n\n setLastCmd(a, b, cmdHistory);\n this.currentChannel = chNr;\n return true;\n }\n /**\n * Parse midrow styling command\n * @returns {Boolean}\n */\n ;\n\n _proto7.parseMidrow = function parseMidrow(a, b) {\n var chNr = 0;\n\n if ((a === 0x11 || a === 0x19) && b >= 0x20 && b <= 0x2f) {\n if (a === 0x11) {\n chNr = 1;\n } else {\n chNr = 2;\n }\n\n if (chNr !== this.currentChannel) {\n this.logger.log(VerboseLevel.ERROR, 'Mismatch channel in midrow parsing');\n return false;\n }\n\n var channel = this.channels[chNr];\n\n if (!channel) {\n return false;\n }\n\n channel.ccMIDROW(b);\n this.logger.log(VerboseLevel.DEBUG, 'MIDROW (' + numArrayToHexArray([a, b]) + ')');\n return true;\n }\n\n return false;\n }\n /**\n * Parse Preable Access Codes (Table 53).\n * @returns {Boolean} Tells if PAC found\n */\n ;\n\n _proto7.parsePAC = function parsePAC(a, b) {\n var row;\n var cmdHistory = this.cmdHistory;\n var case1 = (a >= 0x11 && a <= 0x17 || a >= 0x19 && a <= 0x1f) && b >= 0x40 && b <= 0x7f;\n var case2 = (a === 0x10 || a === 0x18) && b >= 0x40 && b <= 0x5f;\n\n if (!(case1 || case2)) {\n return false;\n }\n\n if (hasCmdRepeated(a, b, cmdHistory)) {\n setLastCmd(null, null, cmdHistory);\n return true; // Repeated commands are dropped (once)\n }\n\n var chNr = a <= 0x17 ? 1 : 2;\n\n if (b >= 0x40 && b <= 0x5f) {\n row = chNr === 1 ? rowsLowCh1[a] : rowsLowCh2[a];\n } else {\n // 0x60 <= b <= 0x7F\n row = chNr === 1 ? rowsHighCh1[a] : rowsHighCh2[a];\n }\n\n var channel = this.channels[chNr];\n\n if (!channel) {\n return false;\n }\n\n channel.setPAC(this.interpretPAC(row, b));\n setLastCmd(a, b, cmdHistory);\n this.currentChannel = chNr;\n return true;\n }\n /**\n * Interpret the second byte of the pac, and return the information.\n * @returns {Object} pacData with style parameters.\n */\n ;\n\n _proto7.interpretPAC = function interpretPAC(row, _byte3) {\n var pacIndex;\n var pacData = {\n color: null,\n italics: false,\n indent: null,\n underline: false,\n row: row\n };\n\n if (_byte3 > 0x5f) {\n pacIndex = _byte3 - 0x60;\n } else {\n pacIndex = _byte3 - 0x40;\n }\n\n pacData.underline = (pacIndex & 1) === 1;\n\n if (pacIndex <= 0xd) {\n pacData.color = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'white'][Math.floor(pacIndex / 2)];\n } else if (pacIndex <= 0xf) {\n pacData.italics = true;\n pacData.color = 'white';\n } else {\n pacData.indent = Math.floor((pacIndex - 0x10) / 2) * 4;\n }\n\n return pacData; // Note that row has zero offset. The spec uses 1.\n }\n /**\n * Parse characters.\n * @returns An array with 1 to 2 codes corresponding to chars, if found. null otherwise.\n */\n ;\n\n _proto7.parseChars = function parseChars(a, b) {\n var channelNr;\n var charCodes = null;\n var charCode1 = null;\n\n if (a >= 0x19) {\n channelNr = 2;\n charCode1 = a - 8;\n } else {\n channelNr = 1;\n charCode1 = a;\n }\n\n if (charCode1 >= 0x11 && charCode1 <= 0x13) {\n // Special character\n var oneCode;\n\n if (charCode1 === 0x11) {\n oneCode = b + 0x50;\n } else if (charCode1 === 0x12) {\n oneCode = b + 0x70;\n } else {\n oneCode = b + 0x90;\n }\n\n this.logger.log(VerboseLevel.INFO, \"Special char '\" + getCharForByte(oneCode) + \"' in channel \" + channelNr);\n charCodes = [oneCode];\n } else if (a >= 0x20 && a <= 0x7f) {\n charCodes = b === 0 ? [a] : [a, b];\n }\n\n if (charCodes) {\n var hexCodes = numArrayToHexArray(charCodes);\n this.logger.log(VerboseLevel.DEBUG, 'Char codes = ' + hexCodes.join(','));\n setLastCmd(a, b, this.cmdHistory);\n }\n\n return charCodes;\n }\n /**\n * Parse extended background attributes as well as new foreground color black.\n * @returns {Boolean} Tells if background attributes are found\n */\n ;\n\n _proto7.parseBackgroundAttributes = function parseBackgroundAttributes(a, b) {\n var case1 = (a === 0x10 || a === 0x18) && b >= 0x20 && b <= 0x2f;\n var case2 = (a === 0x17 || a === 0x1f) && b >= 0x2d && b <= 0x2f;\n\n if (!(case1 || case2)) {\n return false;\n }\n\n var index;\n var bkgData = {};\n\n if (a === 0x10 || a === 0x18) {\n index = Math.floor((b - 0x20) / 2);\n bkgData.background = backgroundColors[index];\n\n if (b % 2 === 1) {\n bkgData.background = bkgData.background + '_semi';\n }\n } else if (b === 0x2d) {\n bkgData.background = 'transparent';\n } else {\n bkgData.foreground = 'black';\n\n if (b === 0x2f) {\n bkgData.underline = true;\n }\n }\n\n var chNr = a <= 0x17 ? 1 : 2;\n var channel = this.channels[chNr];\n channel.setBkgData(bkgData);\n setLastCmd(a, b, this.cmdHistory);\n return true;\n }\n /**\n * Reset state of parser and its channels.\n */\n ;\n\n _proto7.reset = function reset() {\n for (var i = 0; i < Object.keys(this.channels).length; i++) {\n var channel = this.channels[i];\n\n if (channel) {\n channel.reset();\n }\n }\n\n this.cmdHistory = createCmdHistory();\n }\n /**\n * Trigger the generation of a cue, and the start of a new one if displayScreens are not empty.\n */\n ;\n\n _proto7.cueSplitAtTime = function cueSplitAtTime(t) {\n for (var i = 0; i < this.channels.length; i++) {\n var channel = this.channels[i];\n\n if (channel) {\n channel.cueSplitAtTime(t);\n }\n }\n };\n\n return Cea608Parser;\n}();\n\nfunction setLastCmd(a, b, cmdHistory) {\n cmdHistory.a = a;\n cmdHistory.b = b;\n}\n\nfunction hasCmdRepeated(a, b, cmdHistory) {\n return cmdHistory.a === a && cmdHistory.b === b;\n}\n\nfunction createCmdHistory() {\n return {\n a: null,\n b: null\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Cea608Parser);\n\n/***/ }),\n\n/***/ \"./src/utils/codecs.ts\":\n/*!*****************************!*\\\n !*** ./src/utils/codecs.ts ***!\n \\*****************************/\n/*! exports provided: isCodecType, isCodecSupportedInMp4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCodecType\", function() { return isCodecType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCodecSupportedInMp4\", function() { return isCodecSupportedInMp4; });\n// from http://mp4ra.org/codecs.html\nvar sampleEntryCodesISO = {\n audio: {\n a3ds: true,\n 'ac-3': true,\n 'ac-4': true,\n alac: true,\n alaw: true,\n dra1: true,\n 'dts+': true,\n 'dts-': true,\n dtsc: true,\n dtse: true,\n dtsh: true,\n 'ec-3': true,\n enca: true,\n g719: true,\n g726: true,\n m4ae: true,\n mha1: true,\n mha2: true,\n mhm1: true,\n mhm2: true,\n mlpa: true,\n mp4a: true,\n 'raw ': true,\n Opus: true,\n samr: true,\n sawb: true,\n sawp: true,\n sevc: true,\n sqcp: true,\n ssmv: true,\n twos: true,\n ulaw: true\n },\n video: {\n avc1: true,\n avc2: true,\n avc3: true,\n avc4: true,\n avcp: true,\n av01: true,\n drac: true,\n dvav: true,\n dvhe: true,\n encv: true,\n hev1: true,\n hvc1: true,\n mjp2: true,\n mp4v: true,\n mvc1: true,\n mvc2: true,\n mvc3: true,\n mvc4: true,\n resv: true,\n rv60: true,\n s263: true,\n svc1: true,\n svc2: true,\n 'vc-1': true,\n vp08: true,\n vp09: true\n },\n text: {\n stpp: true,\n wvtt: true\n }\n};\nfunction isCodecType(codec, type) {\n var typeCodes = sampleEntryCodesISO[type];\n return !!typeCodes && typeCodes[codec.slice(0, 4)] === true;\n}\nfunction isCodecSupportedInMp4(codec, type) {\n return MediaSource.isTypeSupported((type || 'video') + \"/mp4;codecs=\\\"\" + codec + \"\\\"\");\n}\n\n/***/ }),\n\n/***/ \"./src/utils/cues.ts\":\n/*!***************************!*\\\n !*** ./src/utils/cues.ts ***!\n \\***************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _vttparser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./vttparser */ \"./src/utils/vttparser.ts\");\n/* harmony import */ var _webvtt_parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./webvtt-parser */ \"./src/utils/webvtt-parser.ts\");\n/* harmony import */ var _texttrack_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./texttrack-utils */ \"./src/utils/texttrack-utils.ts\");\n\n\n\nvar WHITESPACE_CHAR = /\\s/;\nvar Cues = {\n newCue: function newCue(track, startTime, endTime, captionScreen) {\n var result = [];\n var row; // the type data states this is VTTCue, but it can potentially be a TextTrackCue on old browsers\n\n var cue;\n var indenting;\n var indent;\n var text;\n var Cue = self.VTTCue || self.TextTrackCue;\n\n for (var r = 0; r < captionScreen.rows.length; r++) {\n row = captionScreen.rows[r];\n indenting = true;\n indent = 0;\n text = '';\n\n if (!row.isEmpty()) {\n for (var c = 0; c < row.chars.length; c++) {\n if (WHITESPACE_CHAR.test(row.chars[c].uchar) && indenting) {\n indent++;\n } else {\n text += row.chars[c].uchar;\n indenting = false;\n }\n } // To be used for cleaning-up orphaned roll-up captions\n\n\n row.cueStartTime = startTime; // Give a slight bump to the endTime if it's equal to startTime to avoid a SyntaxError in IE\n\n if (startTime === endTime) {\n endTime += 0.0001;\n }\n\n if (indent >= 16) {\n indent--;\n } else {\n indent++;\n }\n\n var cueText = Object(_vttparser__WEBPACK_IMPORTED_MODULE_0__[\"fixLineBreaks\"])(text.trim());\n var id = Object(_webvtt_parser__WEBPACK_IMPORTED_MODULE_1__[\"generateCueId\"])(startTime, endTime, cueText); // If this cue already exists in the track do not push it\n\n if (!track || !track.cues || !track.cues.getCueById(id)) {\n cue = new Cue(startTime, endTime, cueText);\n cue.id = id;\n cue.line = r + 1;\n cue.align = 'left'; // Clamp the position between 10 and 80 percent (CEA-608 PAC indent code)\n // https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/608toVTT.html#positioning-in-cea-608\n // Firefox throws an exception and captions break with out of bounds 0-100 values\n\n cue.position = 10 + Math.min(80, Math.floor(indent * 8 / 32) * 10);\n result.push(cue);\n }\n }\n }\n\n if (track && result.length) {\n // Sort bottom cues in reverse order so that they render in line order when overlapping in Chrome\n result.sort(function (cueA, cueB) {\n if (cueA.line === 'auto' || cueB.line === 'auto') {\n return 0;\n }\n\n if (cueA.line > 8 && cueB.line > 8) {\n return cueB.line - cueA.line;\n }\n\n return cueA.line - cueB.line;\n });\n result.forEach(function (cue) {\n return Object(_texttrack_utils__WEBPACK_IMPORTED_MODULE_2__[\"addCueToTrack\"])(track, cue);\n });\n }\n\n return result;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Cues);\n\n/***/ }),\n\n/***/ \"./src/utils/discontinuities.ts\":\n/*!**************************************!*\\\n !*** ./src/utils/discontinuities.ts ***!\n \\**************************************/\n/*! exports provided: findFirstFragWithCC, shouldAlignOnDiscontinuities, findDiscontinuousReferenceFrag, adjustSlidingStart, alignStream, alignPDT, alignFragmentByPDTDelta, alignMediaPlaylistByPDT */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findFirstFragWithCC\", function() { return findFirstFragWithCC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shouldAlignOnDiscontinuities\", function() { return shouldAlignOnDiscontinuities; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findDiscontinuousReferenceFrag\", function() { return findDiscontinuousReferenceFrag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"adjustSlidingStart\", function() { return adjustSlidingStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignStream\", function() { return alignStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignPDT\", function() { return alignPDT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignFragmentByPDTDelta\", function() { return alignFragmentByPDTDelta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignMediaPlaylistByPDT\", function() { return alignMediaPlaylistByPDT; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _controller_level_helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../controller/level-helper */ \"./src/controller/level-helper.ts\");\n\n\n\n\nfunction findFirstFragWithCC(fragments, cc) {\n var firstFrag = null;\n\n for (var i = 0, len = fragments.length; i < len; i++) {\n var currentFrag = fragments[i];\n\n if (currentFrag && currentFrag.cc === cc) {\n firstFrag = currentFrag;\n break;\n }\n }\n\n return firstFrag;\n}\nfunction shouldAlignOnDiscontinuities(lastFrag, lastLevel, details) {\n if (lastLevel.details) {\n if (details.endCC > details.startCC || lastFrag && lastFrag.cc < details.startCC) {\n return true;\n }\n }\n\n return false;\n} // Find the first frag in the previous level which matches the CC of the first frag of the new level\n\nfunction findDiscontinuousReferenceFrag(prevDetails, curDetails) {\n var prevFrags = prevDetails.fragments;\n var curFrags = curDetails.fragments;\n\n if (!curFrags.length || !prevFrags.length) {\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].log('No fragments to align');\n return;\n }\n\n var prevStartFrag = findFirstFragWithCC(prevFrags, curFrags[0].cc);\n\n if (!prevStartFrag || prevStartFrag && !prevStartFrag.startPTS) {\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].log('No frag in previous level to align on');\n return;\n }\n\n return prevStartFrag;\n}\n\nfunction adjustFragmentStart(frag, sliding) {\n if (frag) {\n var start = frag.start + sliding;\n frag.start = frag.startPTS = start;\n frag.endPTS = start + frag.duration;\n }\n}\n\nfunction adjustSlidingStart(sliding, details) {\n // Update segments\n var fragments = details.fragments;\n\n for (var i = 0, len = fragments.length; i < len; i++) {\n adjustFragmentStart(fragments[i], sliding);\n } // Update LL-HLS parts at the end of the playlist\n\n\n if (details.fragmentHint) {\n adjustFragmentStart(details.fragmentHint, sliding);\n }\n\n details.alignedSliding = true;\n}\n/**\n * Using the parameters of the last level, this function computes PTS' of the new fragments so that they form a\n * contiguous stream with the last fragments.\n * The PTS of a fragment lets Hls.js know where it fits into a stream - by knowing every PTS, we know which fragment to\n * download at any given time. PTS is normally computed when the fragment is demuxed, so taking this step saves us time\n * and an extra download.\n * @param lastFrag\n * @param lastLevel\n * @param details\n */\n\nfunction alignStream(lastFrag, lastLevel, details) {\n if (!lastLevel) {\n return;\n }\n\n alignDiscontinuities(lastFrag, details, lastLevel);\n\n if (!details.alignedSliding && lastLevel.details) {\n // If the PTS wasn't figured out via discontinuity sequence that means there was no CC increase within the level.\n // Aligning via Program Date Time should therefore be reliable, since PDT should be the same within the same\n // discontinuity sequence.\n alignPDT(details, lastLevel.details);\n }\n\n if (!details.alignedSliding && lastLevel.details && !details.skippedSegments) {\n // Try to align on sn so that we pick a better start fragment.\n // Do not perform this on playlists with delta updates as this is only to align levels on switch\n // and adjustSliding only adjusts fragments after skippedSegments.\n Object(_controller_level_helper__WEBPACK_IMPORTED_MODULE_2__[\"adjustSliding\"])(lastLevel.details, details);\n }\n}\n/**\n * Computes the PTS if a new level's fragments using the PTS of a fragment in the last level which shares the same\n * discontinuity sequence.\n * @param lastFrag - The last Fragment which shares the same discontinuity sequence\n * @param lastLevel - The details of the last loaded level\n * @param details - The details of the new level\n */\n\nfunction alignDiscontinuities(lastFrag, details, lastLevel) {\n if (shouldAlignOnDiscontinuities(lastFrag, lastLevel, details)) {\n var referenceFrag = findDiscontinuousReferenceFrag(lastLevel.details, details);\n\n if (referenceFrag && Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(referenceFrag.start)) {\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].log(\"Adjusting PTS using last level due to CC increase within current level \" + details.url);\n adjustSlidingStart(referenceFrag.start, details);\n }\n }\n}\n/**\n * Computes the PTS of a new level's fragments using the difference in Program Date Time from the last level.\n * @param details - The details of the new level\n * @param lastDetails - The details of the last loaded level\n */\n\n\nfunction alignPDT(details, lastDetails) {\n // This check protects the unsafe \"!\" usage below for null program date time access.\n if (!lastDetails.fragments.length || !details.hasProgramDateTime || !lastDetails.hasProgramDateTime) {\n return;\n } // if last level sliding is 1000 and its first frag PROGRAM-DATE-TIME is 2017-08-20 1:10:00 AM\n // and if new details first frag PROGRAM DATE-TIME is 2017-08-20 1:10:08 AM\n // then we can deduce that playlist B sliding is 1000+8 = 1008s\n\n\n var lastPDT = lastDetails.fragments[0].programDateTime; // hasProgramDateTime check above makes this safe.\n\n var newPDT = details.fragments[0].programDateTime; // date diff is in ms. frag.start is in seconds\n\n var sliding = (newPDT - lastPDT) / 1000 + lastDetails.fragments[0].start;\n\n if (sliding && Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(sliding)) {\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"logger\"].log(\"Adjusting PTS using programDateTime delta \" + (newPDT - lastPDT) + \"ms, sliding:\" + sliding.toFixed(3) + \" \" + details.url + \" \");\n adjustSlidingStart(sliding, details);\n }\n}\nfunction alignFragmentByPDTDelta(frag, delta) {\n var programDateTime = frag.programDateTime;\n if (!programDateTime) return;\n var start = (programDateTime - delta) / 1000;\n frag.start = frag.startPTS = start;\n frag.endPTS = start + frag.duration;\n}\n/**\n * Ensures appropriate time-alignment between renditions based on PDT. Unlike `alignPDT`, which adjusts\n * the timeline based on the delta between PDTs of the 0th fragment of two playlists/`LevelDetails`,\n * this function assumes the timelines represented in `refDetails` are accurate, including the PDTs,\n * and uses the \"wallclock\"/PDT timeline as a cross-reference to `details`, adjusting the presentation\n * times/timelines of `details` accordingly.\n * Given the asynchronous nature of fetches and initial loads of live `main` and audio/subtitle tracks,\n * the primary purpose of this function is to ensure the \"local timelines\" of audio/subtitle tracks\n * are aligned to the main/video timeline, using PDT as the cross-reference/\"anchor\" that should\n * be consistent across playlists, per the HLS spec.\n * @param details - The details of the rendition you'd like to time-align (e.g. an audio rendition).\n * @param refDetails - The details of the reference rendition with start and PDT times for alignment.\n */\n\nfunction alignMediaPlaylistByPDT(details, refDetails) {\n // This check protects the unsafe \"!\" usage below for null program date time access.\n if (!refDetails.fragments.length || !details.hasProgramDateTime || !refDetails.hasProgramDateTime) {\n return;\n }\n\n var refPDT = refDetails.fragments[0].programDateTime; // hasProgramDateTime check above makes this safe.\n\n var refStart = refDetails.fragments[0].start; // Use the delta between the reference details' presentation timeline's start time and its PDT\n // to align the other rendtion's timeline.\n\n var delta = refPDT - refStart * 1000; // Per spec: \"If any Media Playlist in a Master Playlist contains an EXT-X-PROGRAM-DATE-TIME tag, then all\n // Media Playlists in that Master Playlist MUST contain EXT-X-PROGRAM-DATE-TIME tags with consistent mappings\n // of date and time to media timestamps.\"\n // So we should be able to use each rendition's PDT as a reference time and use the delta to compute our relevant\n // start and end times.\n // NOTE: This code assumes each level/details timelines have already been made \"internally consistent\"\n\n details.fragments.forEach(function (frag) {\n alignFragmentByPDTDelta(frag, delta);\n });\n\n if (details.fragmentHint) {\n alignFragmentByPDTDelta(details.fragmentHint, delta);\n }\n\n details.alignedSliding = true;\n}\n\n/***/ }),\n\n/***/ \"./src/utils/ewma-bandwidth-estimator.ts\":\n/*!***********************************************!*\\\n !*** ./src/utils/ewma-bandwidth-estimator.ts ***!\n \\***********************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_ewma__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/ewma */ \"./src/utils/ewma.ts\");\n/*\n * EWMA Bandwidth Estimator\n * - heavily inspired from shaka-player\n * Tracks bandwidth samples and estimates available bandwidth.\n * Based on the minimum of two exponentially-weighted moving averages with\n * different half-lives.\n */\n\n\nvar EwmaBandWidthEstimator = /*#__PURE__*/function () {\n function EwmaBandWidthEstimator(slow, fast, defaultEstimate) {\n this.defaultEstimate_ = void 0;\n this.minWeight_ = void 0;\n this.minDelayMs_ = void 0;\n this.slow_ = void 0;\n this.fast_ = void 0;\n this.defaultEstimate_ = defaultEstimate;\n this.minWeight_ = 0.001;\n this.minDelayMs_ = 50;\n this.slow_ = new _utils_ewma__WEBPACK_IMPORTED_MODULE_0__[\"default\"](slow);\n this.fast_ = new _utils_ewma__WEBPACK_IMPORTED_MODULE_0__[\"default\"](fast);\n }\n\n var _proto = EwmaBandWidthEstimator.prototype;\n\n _proto.update = function update(slow, fast) {\n var slow_ = this.slow_,\n fast_ = this.fast_;\n\n if (this.slow_.halfLife !== slow) {\n this.slow_ = new _utils_ewma__WEBPACK_IMPORTED_MODULE_0__[\"default\"](slow, slow_.getEstimate(), slow_.getTotalWeight());\n }\n\n if (this.fast_.halfLife !== fast) {\n this.fast_ = new _utils_ewma__WEBPACK_IMPORTED_MODULE_0__[\"default\"](fast, fast_.getEstimate(), fast_.getTotalWeight());\n }\n };\n\n _proto.sample = function sample(durationMs, numBytes) {\n durationMs = Math.max(durationMs, this.minDelayMs_);\n var numBits = 8 * numBytes; // weight is duration in seconds\n\n var durationS = durationMs / 1000; // value is bandwidth in bits/s\n\n var bandwidthInBps = numBits / durationS;\n this.fast_.sample(durationS, bandwidthInBps);\n this.slow_.sample(durationS, bandwidthInBps);\n };\n\n _proto.canEstimate = function canEstimate() {\n var fast = this.fast_;\n return fast && fast.getTotalWeight() >= this.minWeight_;\n };\n\n _proto.getEstimate = function getEstimate() {\n if (this.canEstimate()) {\n // console.log('slow estimate:'+ Math.round(this.slow_.getEstimate()));\n // console.log('fast estimate:'+ Math.round(this.fast_.getEstimate()));\n // Take the minimum of these two estimates. This should have the effect of\n // adapting down quickly, but up more slowly.\n return Math.min(this.fast_.getEstimate(), this.slow_.getEstimate());\n } else {\n return this.defaultEstimate_;\n }\n };\n\n _proto.destroy = function destroy() {};\n\n return EwmaBandWidthEstimator;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (EwmaBandWidthEstimator);\n\n/***/ }),\n\n/***/ \"./src/utils/ewma.ts\":\n/*!***************************!*\\\n !*** ./src/utils/ewma.ts ***!\n \\***************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/*\n * compute an Exponential Weighted moving average\n * - https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average\n * - heavily inspired from shaka-player\n */\nvar EWMA = /*#__PURE__*/function () {\n // About half of the estimated value will be from the last |halfLife| samples by weight.\n function EWMA(halfLife, estimate, weight) {\n if (estimate === void 0) {\n estimate = 0;\n }\n\n if (weight === void 0) {\n weight = 0;\n }\n\n this.halfLife = void 0;\n this.alpha_ = void 0;\n this.estimate_ = void 0;\n this.totalWeight_ = void 0;\n this.halfLife = halfLife; // Larger values of alpha expire historical data more slowly.\n\n this.alpha_ = halfLife ? Math.exp(Math.log(0.5) / halfLife) : 0;\n this.estimate_ = estimate;\n this.totalWeight_ = weight;\n }\n\n var _proto = EWMA.prototype;\n\n _proto.sample = function sample(weight, value) {\n var adjAlpha = Math.pow(this.alpha_, weight);\n this.estimate_ = value * (1 - adjAlpha) + adjAlpha * this.estimate_;\n this.totalWeight_ += weight;\n };\n\n _proto.getTotalWeight = function getTotalWeight() {\n return this.totalWeight_;\n };\n\n _proto.getEstimate = function getEstimate() {\n if (this.alpha_) {\n var zeroFactor = 1 - Math.pow(this.alpha_, this.totalWeight_);\n\n if (zeroFactor) {\n return this.estimate_ / zeroFactor;\n }\n }\n\n return this.estimate_;\n };\n\n return EWMA;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (EWMA);\n\n/***/ }),\n\n/***/ \"./src/utils/fetch-loader.ts\":\n/*!***********************************!*\\\n !*** ./src/utils/fetch-loader.ts ***!\n \\***********************************/\n/*! exports provided: fetchSupported, default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchSupported\", function() { return fetchSupported; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _loader_load_stats__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../loader/load-stats */ \"./src/loader/load-stats.ts\");\n/* harmony import */ var _demux_chunk_cache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../demux/chunk-cache */ \"./src/demux/chunk-cache.ts\");\n\n\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\nfunction fetchSupported() {\n if ( // @ts-ignore\n self.fetch && self.AbortController && self.ReadableStream && self.Request) {\n try {\n new self.ReadableStream({}); // eslint-disable-line no-new\n\n return true;\n } catch (e) {\n /* noop */\n }\n }\n\n return false;\n}\n\nvar FetchLoader = /*#__PURE__*/function () {\n function FetchLoader(config\n /* HlsConfig */\n ) {\n this.fetchSetup = void 0;\n this.requestTimeout = void 0;\n this.request = void 0;\n this.response = void 0;\n this.controller = void 0;\n this.context = void 0;\n this.config = null;\n this.callbacks = null;\n this.stats = void 0;\n this.loader = null;\n this.fetchSetup = config.fetchSetup || getRequest;\n this.controller = new self.AbortController();\n this.stats = new _loader_load_stats__WEBPACK_IMPORTED_MODULE_1__[\"LoadStats\"]();\n }\n\n var _proto = FetchLoader.prototype;\n\n _proto.destroy = function destroy() {\n this.loader = this.callbacks = null;\n this.abortInternal();\n };\n\n _proto.abortInternal = function abortInternal() {\n var response = this.response;\n\n if (!response || !response.ok) {\n this.stats.aborted = true;\n this.controller.abort();\n }\n };\n\n _proto.abort = function abort() {\n var _this$callbacks;\n\n this.abortInternal();\n\n if ((_this$callbacks = this.callbacks) !== null && _this$callbacks !== void 0 && _this$callbacks.onAbort) {\n this.callbacks.onAbort(this.stats, this.context, this.response);\n }\n };\n\n _proto.load = function load(context, config, callbacks) {\n var _this = this;\n\n var stats = this.stats;\n\n if (stats.loading.start) {\n throw new Error('Loader can only be used once.');\n }\n\n stats.loading.start = self.performance.now();\n var initParams = getRequestParameters(context, this.controller.signal);\n var onProgress = callbacks.onProgress;\n var isArrayBuffer = context.responseType === 'arraybuffer';\n var LENGTH = isArrayBuffer ? 'byteLength' : 'length';\n this.context = context;\n this.config = config;\n this.callbacks = callbacks;\n this.request = this.fetchSetup(context, initParams);\n self.clearTimeout(this.requestTimeout);\n this.requestTimeout = self.setTimeout(function () {\n _this.abortInternal();\n\n callbacks.onTimeout(stats, context, _this.response);\n }, config.timeout);\n self.fetch(this.request).then(function (response) {\n _this.response = _this.loader = response;\n\n if (!response.ok) {\n var status = response.status,\n statusText = response.statusText;\n throw new FetchError(statusText || 'fetch, bad network response', status, response);\n }\n\n stats.loading.first = Math.max(self.performance.now(), stats.loading.start);\n stats.total = parseInt(response.headers.get('Content-Length') || '0');\n\n if (onProgress && Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(config.highWaterMark)) {\n return _this.loadProgressively(response, stats, context, config.highWaterMark, onProgress);\n }\n\n if (isArrayBuffer) {\n return response.arrayBuffer();\n }\n\n return response.text();\n }).then(function (responseData) {\n var response = _this.response;\n self.clearTimeout(_this.requestTimeout);\n stats.loading.end = Math.max(self.performance.now(), stats.loading.first);\n stats.loaded = stats.total = responseData[LENGTH];\n var loaderResponse = {\n url: response.url,\n data: responseData\n };\n\n if (onProgress && !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(config.highWaterMark)) {\n onProgress(stats, context, responseData, response);\n }\n\n callbacks.onSuccess(loaderResponse, stats, context, response);\n }).catch(function (error) {\n self.clearTimeout(_this.requestTimeout);\n\n if (stats.aborted) {\n return;\n } // CORS errors result in an undefined code. Set it to 0 here to align with XHR's behavior\n\n\n var code = error.code || 0;\n callbacks.onError({\n code: code,\n text: error.message\n }, context, error.details);\n });\n };\n\n _proto.getCacheAge = function getCacheAge() {\n var result = null;\n\n if (this.response) {\n var ageHeader = this.response.headers.get('age');\n result = ageHeader ? parseFloat(ageHeader) : null;\n }\n\n return result;\n };\n\n _proto.loadProgressively = function loadProgressively(response, stats, context, highWaterMark, onProgress) {\n if (highWaterMark === void 0) {\n highWaterMark = 0;\n }\n\n var chunkCache = new _demux_chunk_cache__WEBPACK_IMPORTED_MODULE_2__[\"default\"]();\n var reader = response.body.getReader();\n\n var pump = function pump() {\n return reader.read().then(function (data) {\n if (data.done) {\n if (chunkCache.dataLength) {\n onProgress(stats, context, chunkCache.flush(), response);\n }\n\n return Promise.resolve(new ArrayBuffer(0));\n }\n\n var chunk = data.value;\n var len = chunk.length;\n stats.loaded += len;\n\n if (len < highWaterMark || chunkCache.dataLength) {\n // The current chunk is too small to to be emitted or the cache already has data\n // Push it to the cache\n chunkCache.push(chunk);\n\n if (chunkCache.dataLength >= highWaterMark) {\n // flush in order to join the typed arrays\n onProgress(stats, context, chunkCache.flush(), response);\n }\n } else {\n // If there's nothing cached already, and the chache is large enough\n // just emit the progress event\n onProgress(stats, context, chunk, response);\n }\n\n return pump();\n }).catch(function () {\n /* aborted */\n return Promise.reject();\n });\n };\n\n return pump();\n };\n\n return FetchLoader;\n}();\n\nfunction getRequestParameters(context, signal) {\n var initParams = {\n method: 'GET',\n mode: 'cors',\n credentials: 'same-origin',\n signal: signal,\n headers: new self.Headers(_extends({}, context.headers))\n };\n\n if (context.rangeEnd) {\n initParams.headers.set('Range', 'bytes=' + context.rangeStart + '-' + String(context.rangeEnd - 1));\n }\n\n return initParams;\n}\n\nfunction getRequest(context, initParams) {\n return new self.Request(context.url, initParams);\n}\n\nvar FetchError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(FetchError, _Error);\n\n function FetchError(message, code, details) {\n var _this2;\n\n _this2 = _Error.call(this, message) || this;\n _this2.code = void 0;\n _this2.details = void 0;\n _this2.code = code;\n _this2.details = details;\n return _this2;\n }\n\n return FetchError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FetchLoader);\n\n/***/ }),\n\n/***/ \"./src/utils/imsc1-ttml-parser.ts\":\n/*!****************************************!*\\\n !*** ./src/utils/imsc1-ttml-parser.ts ***!\n \\****************************************/\n/*! exports provided: IMSC1_CODEC, parseIMSC1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IMSC1_CODEC\", function() { return IMSC1_CODEC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseIMSC1\", function() { return parseIMSC1; });\n/* harmony import */ var _mp4_tools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mp4-tools */ \"./src/utils/mp4-tools.ts\");\n/* harmony import */ var _vttparser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vttparser */ \"./src/utils/vttparser.ts\");\n/* harmony import */ var _vttcue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vttcue */ \"./src/utils/vttcue.ts\");\n/* harmony import */ var _demux_id3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../demux/id3 */ \"./src/demux/id3.ts\");\n/* harmony import */ var _timescale_conversion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./timescale-conversion */ \"./src/utils/timescale-conversion.ts\");\n/* harmony import */ var _webvtt_parser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./webvtt-parser */ \"./src/utils/webvtt-parser.ts\");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\nvar IMSC1_CODEC = 'stpp.ttml.im1t'; // Time format: h:m:s:frames(.subframes)\n\nvar HMSF_REGEX = /^(\\d{2,}):(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d+)?$/; // Time format: hours, minutes, seconds, milliseconds, frames, ticks\n\nvar TIME_UNIT_REGEX = /^(\\d*(?:\\.\\d*)?)(h|m|s|ms|f|t)$/;\nvar textAlignToLineAlign = {\n left: 'start',\n center: 'center',\n right: 'end',\n start: 'start',\n end: 'end'\n};\nfunction parseIMSC1(payload, initPTS, timescale, callBack, errorCallBack) {\n var results = Object(_mp4_tools__WEBPACK_IMPORTED_MODULE_0__[\"findBox\"])(new Uint8Array(payload), ['mdat']);\n\n if (results.length === 0) {\n errorCallBack(new Error('Could not parse IMSC1 mdat'));\n return;\n }\n\n var mdat = results[0];\n var ttml = Object(_demux_id3__WEBPACK_IMPORTED_MODULE_3__[\"utf8ArrayToStr\"])(new Uint8Array(payload, mdat.start, mdat.end - mdat.start));\n var syncTime = Object(_timescale_conversion__WEBPACK_IMPORTED_MODULE_4__[\"toTimescaleFromScale\"])(initPTS, 1, timescale);\n\n try {\n callBack(parseTTML(ttml, syncTime));\n } catch (error) {\n errorCallBack(error);\n }\n}\n\nfunction parseTTML(ttml, syncTime) {\n var parser = new DOMParser();\n var xmlDoc = parser.parseFromString(ttml, 'text/xml');\n var tt = xmlDoc.getElementsByTagName('tt')[0];\n\n if (!tt) {\n throw new Error('Invalid ttml');\n }\n\n var defaultRateInfo = {\n frameRate: 30,\n subFrameRate: 1,\n frameRateMultiplier: 0,\n tickRate: 0\n };\n var rateInfo = Object.keys(defaultRateInfo).reduce(function (result, key) {\n result[key] = tt.getAttribute(\"ttp:\" + key) || defaultRateInfo[key];\n return result;\n }, {});\n var trim = tt.getAttribute('xml:space') !== 'preserve';\n var styleElements = collectionToDictionary(getElementCollection(tt, 'styling', 'style'));\n var regionElements = collectionToDictionary(getElementCollection(tt, 'layout', 'region'));\n var cueElements = getElementCollection(tt, 'body', '[begin]');\n return [].map.call(cueElements, function (cueElement) {\n var cueText = getTextContent(cueElement, trim);\n\n if (!cueText || !cueElement.hasAttribute('begin')) {\n return null;\n }\n\n var startTime = parseTtmlTime(cueElement.getAttribute('begin'), rateInfo);\n var duration = parseTtmlTime(cueElement.getAttribute('dur'), rateInfo);\n var endTime = parseTtmlTime(cueElement.getAttribute('end'), rateInfo);\n\n if (startTime === null) {\n throw timestampParsingError(cueElement);\n }\n\n if (endTime === null) {\n if (duration === null) {\n throw timestampParsingError(cueElement);\n }\n\n endTime = startTime + duration;\n }\n\n var cue = new _vttcue__WEBPACK_IMPORTED_MODULE_2__[\"default\"](startTime - syncTime, endTime - syncTime, cueText);\n cue.id = Object(_webvtt_parser__WEBPACK_IMPORTED_MODULE_5__[\"generateCueId\"])(cue.startTime, cue.endTime, cue.text);\n var region = regionElements[cueElement.getAttribute('region')];\n var style = styleElements[cueElement.getAttribute('style')]; // TODO: Add regions to track and cue (origin and extend)\n // These values are hard-coded (for now) to simulate region settings in the demo\n\n cue.position = 10;\n cue.size = 80; // Apply styles to cue\n\n var styles = getTtmlStyles(region, style);\n var textAlign = styles.textAlign;\n\n if (textAlign) {\n // cue.positionAlign not settable in FF~2016\n var lineAlign = textAlignToLineAlign[textAlign];\n\n if (lineAlign) {\n cue.lineAlign = lineAlign;\n }\n\n cue.align = textAlign;\n }\n\n _extends(cue, styles);\n\n return cue;\n }).filter(function (cue) {\n return cue !== null;\n });\n}\n\nfunction getElementCollection(fromElement, parentName, childName) {\n var parent = fromElement.getElementsByTagName(parentName)[0];\n\n if (parent) {\n return [].slice.call(parent.querySelectorAll(childName));\n }\n\n return [];\n}\n\nfunction collectionToDictionary(elementsWithId) {\n return elementsWithId.reduce(function (dict, element) {\n var id = element.getAttribute('xml:id');\n\n if (id) {\n dict[id] = element;\n }\n\n return dict;\n }, {});\n}\n\nfunction getTextContent(element, trim) {\n return [].slice.call(element.childNodes).reduce(function (str, node, i) {\n var _node$childNodes;\n\n if (node.nodeName === 'br' && i) {\n return str + '\\n';\n }\n\n if ((_node$childNodes = node.childNodes) !== null && _node$childNodes !== void 0 && _node$childNodes.length) {\n return getTextContent(node, trim);\n } else if (trim) {\n return str + node.textContent.trim().replace(/\\s+/g, ' ');\n }\n\n return str + node.textContent;\n }, '');\n}\n\nfunction getTtmlStyles(region, style) {\n var ttsNs = 'http://www.w3.org/ns/ttml#styling';\n var styleAttributes = ['displayAlign', 'textAlign', 'color', 'backgroundColor', 'fontSize', 'fontFamily' // 'fontWeight',\n // 'lineHeight',\n // 'wrapOption',\n // 'fontStyle',\n // 'direction',\n // 'writingMode'\n ];\n return styleAttributes.reduce(function (styles, name) {\n var value = getAttributeNS(style, ttsNs, name) || getAttributeNS(region, ttsNs, name);\n\n if (value) {\n styles[name] = value;\n }\n\n return styles;\n }, {});\n}\n\nfunction getAttributeNS(element, ns, name) {\n return element.hasAttributeNS(ns, name) ? element.getAttributeNS(ns, name) : null;\n}\n\nfunction timestampParsingError(node) {\n return new Error(\"Could not parse ttml timestamp \" + node);\n}\n\nfunction parseTtmlTime(timeAttributeValue, rateInfo) {\n if (!timeAttributeValue) {\n return null;\n }\n\n var seconds = Object(_vttparser__WEBPACK_IMPORTED_MODULE_1__[\"parseTimeStamp\"])(timeAttributeValue);\n\n if (seconds === null) {\n if (HMSF_REGEX.test(timeAttributeValue)) {\n seconds = parseHoursMinutesSecondsFrames(timeAttributeValue, rateInfo);\n } else if (TIME_UNIT_REGEX.test(timeAttributeValue)) {\n seconds = parseTimeUnits(timeAttributeValue, rateInfo);\n }\n }\n\n return seconds;\n}\n\nfunction parseHoursMinutesSecondsFrames(timeAttributeValue, rateInfo) {\n var m = HMSF_REGEX.exec(timeAttributeValue);\n var frames = (m[4] | 0) + (m[5] | 0) / rateInfo.subFrameRate;\n return (m[1] | 0) * 3600 + (m[2] | 0) * 60 + (m[3] | 0) + frames / rateInfo.frameRate;\n}\n\nfunction parseTimeUnits(timeAttributeValue, rateInfo) {\n var m = TIME_UNIT_REGEX.exec(timeAttributeValue);\n var value = Number(m[1]);\n var unit = m[2];\n\n switch (unit) {\n case 'h':\n return value * 3600;\n\n case 'm':\n return value * 60;\n\n case 'ms':\n return value * 1000;\n\n case 'f':\n return value / rateInfo.frameRate;\n\n case 't':\n return value / rateInfo.tickRate;\n }\n\n return value;\n}\n\n/***/ }),\n\n/***/ \"./src/utils/logger.ts\":\n/*!*****************************!*\\\n !*** ./src/utils/logger.ts ***!\n \\*****************************/\n/*! exports provided: enableLogs, logger */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enableLogs\", function() { return enableLogs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logger\", function() { return logger; });\nvar noop = function noop() {};\n\nvar fakeLogger = {\n trace: noop,\n debug: noop,\n log: noop,\n warn: noop,\n info: noop,\n error: noop\n};\nvar exportedLogger = fakeLogger; // let lastCallTime;\n// function formatMsgWithTimeInfo(type, msg) {\n// const now = Date.now();\n// const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';\n// lastCallTime = now;\n// msg = (new Date(now)).toISOString() + ' | [' + type + '] > ' + msg + ' ( ' + diff + ' ms )';\n// return msg;\n// }\n\nfunction consolePrintFn(type) {\n var func = self.console[type];\n\n if (func) {\n return func.bind(self.console, \"[\" + type + \"] >\");\n }\n\n return noop;\n}\n\nfunction exportLoggerFunctions(debugConfig) {\n for (var _len = arguments.length, functions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n functions[_key - 1] = arguments[_key];\n }\n\n functions.forEach(function (type) {\n exportedLogger[type] = debugConfig[type] ? debugConfig[type].bind(debugConfig) : consolePrintFn(type);\n });\n}\n\nfunction enableLogs(debugConfig) {\n // check that console is available\n if (self.console && debugConfig === true || typeof debugConfig === 'object') {\n exportLoggerFunctions(debugConfig, // Remove out from list here to hard-disable a log-level\n // 'trace',\n 'debug', 'log', 'info', 'warn', 'error'); // Some browsers don't allow to use bind on console object anyway\n // fallback to default if needed\n\n try {\n exportedLogger.log();\n } catch (e) {\n exportedLogger = fakeLogger;\n }\n } else {\n exportedLogger = fakeLogger;\n }\n}\nvar logger = exportedLogger;\n\n/***/ }),\n\n/***/ \"./src/utils/mediakeys-helper.ts\":\n/*!***************************************!*\\\n !*** ./src/utils/mediakeys-helper.ts ***!\n \\***************************************/\n/*! exports provided: KeySystems, requestMediaKeySystemAccess */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KeySystems\", function() { return KeySystems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"requestMediaKeySystemAccess\", function() { return requestMediaKeySystemAccess; });\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess\n */\nvar KeySystems;\n\n(function (KeySystems) {\n KeySystems[\"WIDEVINE\"] = \"com.widevine.alpha\";\n KeySystems[\"PLAYREADY\"] = \"com.microsoft.playready\";\n})(KeySystems || (KeySystems = {}));\n\nvar requestMediaKeySystemAccess = function () {\n if (typeof self !== 'undefined' && self.navigator && self.navigator.requestMediaKeySystemAccess) {\n return self.navigator.requestMediaKeySystemAccess.bind(self.navigator);\n } else {\n return null;\n }\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/utils/mediasource-helper.ts\":\n/*!*****************************************!*\\\n !*** ./src/utils/mediasource-helper.ts ***!\n \\*****************************************/\n/*! exports provided: getMediaSource */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMediaSource\", function() { return getMediaSource; });\n/**\n * MediaSource helper\n */\nfunction getMediaSource() {\n return self.MediaSource || self.WebKitMediaSource;\n}\n\n/***/ }),\n\n/***/ \"./src/utils/mp4-tools.ts\":\n/*!********************************!*\\\n !*** ./src/utils/mp4-tools.ts ***!\n \\********************************/\n/*! exports provided: bin2str, readUint16, readUint32, writeUint32, findBox, parseSegmentIndex, parseInitSegment, getStartDTS, getDuration, computeRawDurationFromSamples, offsetStartDTS, segmentValidRange, appendUint8Array */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bin2str\", function() { return bin2str; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"readUint16\", function() { return readUint16; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"readUint32\", function() { return readUint32; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"writeUint32\", function() { return writeUint32; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findBox\", function() { return findBox; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseSegmentIndex\", function() { return parseSegmentIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseInitSegment\", function() { return parseInitSegment; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getStartDTS\", function() { return getStartDTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDuration\", function() { return getDuration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computeRawDurationFromSamples\", function() { return computeRawDurationFromSamples; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"offsetStartDTS\", function() { return offsetStartDTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"segmentValidRange\", function() { return segmentValidRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"appendUint8Array\", function() { return appendUint8Array; });\n/* harmony import */ var _typed_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typed-array */ \"./src/utils/typed-array.ts\");\n/* harmony import */ var _loader_fragment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../loader/fragment */ \"./src/loader/fragment.ts\");\n\n\nvar UINT32_MAX = Math.pow(2, 32) - 1;\nvar push = [].push;\nfunction bin2str(data) {\n return String.fromCharCode.apply(null, data);\n}\nfunction readUint16(buffer, offset) {\n if ('data' in buffer) {\n offset += buffer.start;\n buffer = buffer.data;\n }\n\n var val = buffer[offset] << 8 | buffer[offset + 1];\n return val < 0 ? 65536 + val : val;\n}\nfunction readUint32(buffer, offset) {\n if ('data' in buffer) {\n offset += buffer.start;\n buffer = buffer.data;\n }\n\n var val = buffer[offset] << 24 | buffer[offset + 1] << 16 | buffer[offset + 2] << 8 | buffer[offset + 3];\n return val < 0 ? 4294967296 + val : val;\n}\nfunction writeUint32(buffer, offset, value) {\n if ('data' in buffer) {\n offset += buffer.start;\n buffer = buffer.data;\n }\n\n buffer[offset] = value >> 24;\n buffer[offset + 1] = value >> 16 & 0xff;\n buffer[offset + 2] = value >> 8 & 0xff;\n buffer[offset + 3] = value & 0xff;\n} // Find the data for a box specified by its path\n\nfunction findBox(input, path) {\n var results = [];\n\n if (!path.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var data;\n var start;\n var end;\n\n if ('data' in input) {\n data = input.data;\n start = input.start;\n end = input.end;\n } else {\n data = input;\n start = 0;\n end = data.byteLength;\n }\n\n for (var i = start; i < end;) {\n var size = readUint32(data, i);\n var type = bin2str(data.subarray(i + 4, i + 8));\n var endbox = size > 1 ? i + size : end;\n\n if (type === path[0]) {\n if (path.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push({\n data: data,\n start: i + 8,\n end: endbox\n });\n } else {\n // recursively search for the next box along the path\n var subresults = findBox({\n data: data,\n start: i + 8,\n end: endbox\n }, path.slice(1));\n\n if (subresults.length) {\n push.apply(results, subresults);\n }\n }\n }\n\n i = endbox;\n } // we've finished searching all of data\n\n\n return results;\n}\nfunction parseSegmentIndex(initSegment) {\n var moovBox = findBox(initSegment, ['moov']);\n var moov = moovBox[0];\n var moovEndOffset = moov ? moov.end : null; // we need this in case we need to chop of garbage of the end of current data\n\n var sidxBox = findBox(initSegment, ['sidx']);\n\n if (!sidxBox || !sidxBox[0]) {\n return null;\n }\n\n var references = [];\n var sidx = sidxBox[0];\n var version = sidx.data[0]; // set initial offset, we skip the reference ID (not needed)\n\n var index = version === 0 ? 8 : 16;\n var timescale = readUint32(sidx, index);\n index += 4; // TODO: parse earliestPresentationTime and firstOffset\n // usually zero in our case\n\n var earliestPresentationTime = 0;\n var firstOffset = 0;\n\n if (version === 0) {\n index += 8;\n } else {\n index += 16;\n } // skip reserved\n\n\n index += 2;\n var startByte = sidx.end + firstOffset;\n var referencesCount = readUint16(sidx, index);\n index += 2;\n\n for (var i = 0; i < referencesCount; i++) {\n var referenceIndex = index;\n var referenceInfo = readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n var referenceSize = referenceInfo & 0x7fffffff;\n var referenceType = (referenceInfo & 0x80000000) >>> 31;\n\n if (referenceType === 1) {\n // eslint-disable-next-line no-console\n console.warn('SIDX has hierarchical references (not supported)');\n return null;\n }\n\n var subsegmentDuration = readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n references.push({\n referenceSize: referenceSize,\n subsegmentDuration: subsegmentDuration,\n // unscaled\n info: {\n duration: subsegmentDuration / timescale,\n start: startByte,\n end: startByte + referenceSize - 1\n }\n });\n startByte += referenceSize; // Skipping 1 bit for |startsWithSap|, 3 bits for |sapType|, and 28 bits\n // for |sapDelta|.\n\n referenceIndex += 4; // skip to next ref\n\n index = referenceIndex;\n }\n\n return {\n earliestPresentationTime: earliestPresentationTime,\n timescale: timescale,\n version: version,\n referencesCount: referencesCount,\n references: references,\n moovEndOffset: moovEndOffset\n };\n}\n/**\n * Parses an MP4 initialization segment and extracts stream type and\n * timescale values for any declared tracks. Timescale values indicate the\n * number of clock ticks per second to assume for time-based values\n * elsewhere in the MP4.\n *\n * To determine the start time of an MP4, you need two pieces of\n * information: the timescale unit and the earliest base media decode\n * time. Multiple timescales can be specified within an MP4 but the\n * base media decode time is always expressed in the timescale from\n * the media header box for the track:\n * ```\n * moov > trak > mdia > mdhd.timescale\n * moov > trak > mdia > hdlr\n * ```\n * @param initSegment {Uint8Array} the bytes of the init segment\n * @return {InitData} a hash of track type to timescale values or null if\n * the init segment is malformed.\n */\n\nfunction parseInitSegment(initSegment) {\n var result = [];\n var traks = findBox(initSegment, ['moov', 'trak']);\n\n for (var i = 0; i < traks.length; i++) {\n var trak = traks[i];\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var version = tkhd.data[tkhd.start];\n\n var _index = version === 0 ? 12 : 20;\n\n var trackId = readUint32(tkhd, _index);\n var mdhd = findBox(trak, ['mdia', 'mdhd'])[0];\n\n if (mdhd) {\n version = mdhd.data[mdhd.start];\n _index = version === 0 ? 12 : 20;\n var timescale = readUint32(mdhd, _index);\n var hdlr = findBox(trak, ['mdia', 'hdlr'])[0];\n\n if (hdlr) {\n var hdlrType = bin2str(hdlr.data.subarray(hdlr.start + 8, hdlr.start + 12));\n var type = {\n soun: _loader_fragment__WEBPACK_IMPORTED_MODULE_1__[\"ElementaryStreamTypes\"].AUDIO,\n vide: _loader_fragment__WEBPACK_IMPORTED_MODULE_1__[\"ElementaryStreamTypes\"].VIDEO\n }[hdlrType];\n\n if (type) {\n // Parse codec details\n var stsd = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];\n var codec = void 0;\n\n if (stsd) {\n codec = bin2str(stsd.data.subarray(stsd.start + 12, stsd.start + 16)); // TODO: Parse codec details to be able to build MIME type.\n // stsd.start += 8;\n // const codecBox = findBox(stsd, [codec])[0];\n // if (codecBox) {\n // TODO: Codec parsing support for avc1, mp4a, hevc, av01...\n // }\n }\n\n result[trackId] = {\n timescale: timescale,\n type: type\n };\n result[type] = {\n timescale: timescale,\n id: trackId,\n codec: codec\n };\n }\n }\n }\n }\n }\n\n var trex = findBox(initSegment, ['moov', 'mvex', 'trex']);\n trex.forEach(function (trex) {\n var trackId = readUint32(trex, 4);\n var track = result[trackId];\n\n if (track) {\n track.default = {\n duration: readUint32(trex, 12),\n flags: readUint32(trex, 20)\n };\n }\n });\n return result;\n}\n/**\n * Determine the base media decode start time, in seconds, for an MP4\n * fragment. If multiple fragments are specified, the earliest time is\n * returned.\n *\n * The base media decode time can be parsed from track fragment\n * metadata:\n * ```\n * moof > traf > tfdt.baseMediaDecodeTime\n * ```\n * It requires the timescale value from the mdhd to interpret.\n *\n * @param initData {InitData} a hash of track type to timescale values\n * @param fmp4 {Uint8Array} the bytes of the mp4 fragment\n * @return {number} the earliest base media decode start time for the\n * fragment, in seconds\n */\n\nfunction getStartDTS(initData, fmp4) {\n // we need info from two children of each track fragment box\n return findBox(fmp4, ['moof', 'traf']).reduce(function (result, traf) {\n var tfdt = findBox(traf, ['tfdt'])[0];\n var version = tfdt.data[tfdt.start];\n var start = findBox(traf, ['tfhd']).reduce(function (result, tfhd) {\n // get the track id from the tfhd\n var id = readUint32(tfhd, 4);\n var track = initData[id];\n\n if (track) {\n var baseTime = readUint32(tfdt, 4);\n\n if (version === 1) {\n baseTime *= Math.pow(2, 32);\n baseTime += readUint32(tfdt, 8);\n } // assume a 90kHz clock if no timescale was specified\n\n\n var scale = track.timescale || 90e3; // convert base time to seconds\n\n var startTime = baseTime / scale;\n\n if (isFinite(startTime) && (result === null || startTime < result)) {\n return startTime;\n }\n }\n\n return result;\n }, null);\n\n if (start !== null && isFinite(start) && (result === null || start < result)) {\n return start;\n }\n\n return result;\n }, null) || 0;\n}\n/*\n For Reference:\n aligned(8) class TrackFragmentHeaderBox\n extends FullBox(‘tfhd’, 0, tf_flags){\n unsigned int(32) track_ID;\n // all the following are optional fields\n unsigned int(64) base_data_offset;\n unsigned int(32) sample_description_index;\n unsigned int(32) default_sample_duration;\n unsigned int(32) default_sample_size;\n unsigned int(32) default_sample_flags\n }\n */\n\nfunction getDuration(data, initData) {\n var rawDuration = 0;\n var videoDuration = 0;\n var audioDuration = 0;\n var trafs = findBox(data, ['moof', 'traf']);\n\n for (var i = 0; i < trafs.length; i++) {\n var traf = trafs[i]; // There is only one tfhd & trun per traf\n // This is true for CMAF style content, and we should perhaps check the ftyp\n // and only look for a single trun then, but for ISOBMFF we should check\n // for multiple track runs.\n\n var tfhd = findBox(traf, ['tfhd'])[0]; // get the track id from the tfhd\n\n var id = readUint32(tfhd, 4);\n var track = initData[id];\n\n if (!track) {\n continue;\n }\n\n var trackDefault = track.default;\n var tfhdFlags = readUint32(tfhd, 0) | (trackDefault === null || trackDefault === void 0 ? void 0 : trackDefault.flags);\n var sampleDuration = trackDefault === null || trackDefault === void 0 ? void 0 : trackDefault.duration;\n\n if (tfhdFlags & 0x000008) {\n // 0x000008 indicates the presence of the default_sample_duration field\n if (tfhdFlags & 0x000002) {\n // 0x000002 indicates the presence of the sample_description_index field, which precedes default_sample_duration\n // If present, the default_sample_duration exists at byte offset 12\n sampleDuration = readUint32(tfhd, 12);\n } else {\n // Otherwise, the duration is at byte offset 8\n sampleDuration = readUint32(tfhd, 8);\n }\n } // assume a 90kHz clock if no timescale was specified\n\n\n var timescale = track.timescale || 90e3;\n var truns = findBox(traf, ['trun']);\n\n for (var j = 0; j < truns.length; j++) {\n rawDuration = computeRawDurationFromSamples(truns[j]);\n\n if (!rawDuration && sampleDuration) {\n var sampleCount = readUint32(truns[j], 4);\n rawDuration = sampleDuration * sampleCount;\n }\n\n if (track.type === _loader_fragment__WEBPACK_IMPORTED_MODULE_1__[\"ElementaryStreamTypes\"].VIDEO) {\n videoDuration += rawDuration / timescale;\n } else if (track.type === _loader_fragment__WEBPACK_IMPORTED_MODULE_1__[\"ElementaryStreamTypes\"].AUDIO) {\n audioDuration += rawDuration / timescale;\n }\n }\n }\n\n if (videoDuration === 0 && audioDuration === 0) {\n // If duration samples are not available in the traf use sidx subsegment_duration\n var sidx = parseSegmentIndex(data);\n\n if (sidx !== null && sidx !== void 0 && sidx.references) {\n return sidx.references.reduce(function (dur, ref) {\n return dur + ref.info.duration || 0;\n }, 0);\n }\n }\n\n if (videoDuration) {\n return videoDuration;\n }\n\n return audioDuration;\n}\n/*\n For Reference:\n aligned(8) class TrackRunBox\n extends FullBox(‘trun’, version, tr_flags) {\n unsigned int(32) sample_count;\n // the following are optional fields\n signed int(32) data_offset;\n unsigned int(32) first_sample_flags;\n // all fields in the following array are optional\n {\n unsigned int(32) sample_duration;\n unsigned int(32) sample_size;\n unsigned int(32) sample_flags\n if (version == 0)\n { unsigned int(32)\n else\n { signed int(32)\n }[ sample_count ]\n }\n */\n\nfunction computeRawDurationFromSamples(trun) {\n var flags = readUint32(trun, 0); // Flags are at offset 0, non-optional sample_count is at offset 4. Therefore we start 8 bytes in.\n // Each field is an int32, which is 4 bytes\n\n var offset = 8; // data-offset-present flag\n\n if (flags & 0x000001) {\n offset += 4;\n } // first-sample-flags-present flag\n\n\n if (flags & 0x000004) {\n offset += 4;\n }\n\n var duration = 0;\n var sampleCount = readUint32(trun, 4);\n\n for (var i = 0; i < sampleCount; i++) {\n // sample-duration-present flag\n if (flags & 0x000100) {\n var sampleDuration = readUint32(trun, offset);\n duration += sampleDuration;\n offset += 4;\n } // sample-size-present flag\n\n\n if (flags & 0x000200) {\n offset += 4;\n } // sample-flags-present flag\n\n\n if (flags & 0x000400) {\n offset += 4;\n } // sample-composition-time-offsets-present flag\n\n\n if (flags & 0x000800) {\n offset += 4;\n }\n }\n\n return duration;\n}\nfunction offsetStartDTS(initData, fmp4, timeOffset) {\n findBox(fmp4, ['moof', 'traf']).forEach(function (traf) {\n findBox(traf, ['tfhd']).forEach(function (tfhd) {\n // get the track id from the tfhd\n var id = readUint32(tfhd, 4);\n var track = initData[id];\n\n if (!track) {\n return;\n } // assume a 90kHz clock if no timescale was specified\n\n\n var timescale = track.timescale || 90e3; // get the base media decode time from the tfdt\n\n findBox(traf, ['tfdt']).forEach(function (tfdt) {\n var version = tfdt.data[tfdt.start];\n var baseMediaDecodeTime = readUint32(tfdt, 4);\n\n if (version === 0) {\n writeUint32(tfdt, 4, baseMediaDecodeTime - timeOffset * timescale);\n } else {\n baseMediaDecodeTime *= Math.pow(2, 32);\n baseMediaDecodeTime += readUint32(tfdt, 8);\n baseMediaDecodeTime -= timeOffset * timescale;\n baseMediaDecodeTime = Math.max(baseMediaDecodeTime, 0);\n var upper = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1));\n var lower = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n writeUint32(tfdt, 4, upper);\n writeUint32(tfdt, 8, lower);\n }\n });\n });\n });\n} // TODO: Check if the last moof+mdat pair is part of the valid range\n\nfunction segmentValidRange(data) {\n var segmentedRange = {\n valid: null,\n remainder: null\n };\n var moofs = findBox(data, ['moof']);\n\n if (!moofs) {\n return segmentedRange;\n } else if (moofs.length < 2) {\n segmentedRange.remainder = data;\n return segmentedRange;\n }\n\n var last = moofs[moofs.length - 1]; // Offset by 8 bytes; findBox offsets the start by as much\n\n segmentedRange.valid = Object(_typed_array__WEBPACK_IMPORTED_MODULE_0__[\"sliceUint8\"])(data, 0, last.start - 8);\n segmentedRange.remainder = Object(_typed_array__WEBPACK_IMPORTED_MODULE_0__[\"sliceUint8\"])(data, last.start - 8);\n return segmentedRange;\n}\nfunction appendUint8Array(data1, data2) {\n var temp = new Uint8Array(data1.length + data2.length);\n temp.set(data1);\n temp.set(data2, data1.length);\n return temp;\n}\n\n/***/ }),\n\n/***/ \"./src/utils/output-filter.ts\":\n/*!************************************!*\\\n !*** ./src/utils/output-filter.ts ***!\n \\************************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return OutputFilter; });\nvar OutputFilter = /*#__PURE__*/function () {\n function OutputFilter(timelineController, trackName) {\n this.timelineController = void 0;\n this.cueRanges = [];\n this.trackName = void 0;\n this.startTime = null;\n this.endTime = null;\n this.screen = null;\n this.timelineController = timelineController;\n this.trackName = trackName;\n }\n\n var _proto = OutputFilter.prototype;\n\n _proto.dispatchCue = function dispatchCue() {\n if (this.startTime === null) {\n return;\n }\n\n this.timelineController.addCues(this.trackName, this.startTime, this.endTime, this.screen, this.cueRanges);\n this.startTime = null;\n };\n\n _proto.newCue = function newCue(startTime, endTime, screen) {\n if (this.startTime === null || this.startTime > startTime) {\n this.startTime = startTime;\n }\n\n this.endTime = endTime;\n this.screen = screen;\n this.timelineController.createCaptionsTrack(this.trackName);\n };\n\n _proto.reset = function reset() {\n this.cueRanges = [];\n this.startTime = null;\n };\n\n return OutputFilter;\n}();\n\n\n\n/***/ }),\n\n/***/ \"./src/utils/texttrack-utils.ts\":\n/*!**************************************!*\\\n !*** ./src/utils/texttrack-utils.ts ***!\n \\**************************************/\n/*! exports provided: sendAddTrackEvent, addCueToTrack, clearCurrentCues, removeCuesInRange, getCuesInRange */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sendAddTrackEvent\", function() { return sendAddTrackEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addCueToTrack\", function() { return addCueToTrack; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clearCurrentCues\", function() { return clearCurrentCues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeCuesInRange\", function() { return removeCuesInRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCuesInRange\", function() { return getCuesInRange; });\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logger */ \"./src/utils/logger.ts\");\n\nfunction sendAddTrackEvent(track, videoEl) {\n var event;\n\n try {\n event = new Event('addtrack');\n } catch (err) {\n // for IE11\n event = document.createEvent('Event');\n event.initEvent('addtrack', false, false);\n }\n\n event.track = track;\n videoEl.dispatchEvent(event);\n}\nfunction addCueToTrack(track, cue) {\n // Sometimes there are cue overlaps on segmented vtts so the same\n // cue can appear more than once in different vtt files.\n // This avoid showing duplicated cues with same timecode and text.\n var mode = track.mode;\n\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n\n if (track.cues && !track.cues.getCueById(cue.id)) {\n try {\n track.addCue(cue);\n\n if (!track.cues.getCueById(cue.id)) {\n throw new Error(\"addCue is failed for: \" + cue);\n }\n } catch (err) {\n _logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].debug(\"[texttrack-utils]: \" + err);\n var textTrackCue = new self.TextTrackCue(cue.startTime, cue.endTime, cue.text);\n textTrackCue.id = cue.id;\n track.addCue(textTrackCue);\n }\n }\n\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\nfunction clearCurrentCues(track) {\n // When track.mode is disabled, track.cues will be null.\n // To guarantee the removal of cues, we need to temporarily\n // change the mode to hidden\n var mode = track.mode;\n\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n\n if (track.cues) {\n for (var i = track.cues.length; i--;) {\n track.removeCue(track.cues[i]);\n }\n }\n\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\nfunction removeCuesInRange(track, start, end) {\n var mode = track.mode;\n\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n\n if (track.cues && track.cues.length > 0) {\n var cues = getCuesInRange(track.cues, start, end);\n\n for (var i = 0; i < cues.length; i++) {\n track.removeCue(cues[i]);\n }\n }\n\n if (mode === 'disabled') {\n track.mode = mode;\n }\n} // Find first cue starting after given time.\n// Modified version of binary search O(log(n)).\n\nfunction getFirstCueIndexAfterTime(cues, time) {\n // If first cue starts after time, start there\n if (time < cues[0].startTime) {\n return 0;\n } // If the last cue ends before time there is no overlap\n\n\n var len = cues.length - 1;\n\n if (time > cues[len].endTime) {\n return -1;\n }\n\n var left = 0;\n var right = len;\n\n while (left <= right) {\n var mid = Math.floor((right + left) / 2);\n\n if (time < cues[mid].startTime) {\n right = mid - 1;\n } else if (time > cues[mid].startTime && left < len) {\n left = mid + 1;\n } else {\n // If it's not lower or higher, it must be equal.\n return mid;\n }\n } // At this point, left and right have swapped.\n // No direct match was found, left or right element must be the closest. Check which one has the smallest diff.\n\n\n return cues[left].startTime - time < time - cues[right].startTime ? left : right;\n}\n\nfunction getCuesInRange(cues, start, end) {\n var cuesFound = [];\n var firstCueInRange = getFirstCueIndexAfterTime(cues, start);\n\n if (firstCueInRange > -1) {\n for (var i = firstCueInRange, len = cues.length; i < len; i++) {\n var cue = cues[i];\n\n if (cue.startTime >= start && cue.endTime <= end) {\n cuesFound.push(cue);\n } else if (cue.startTime > end) {\n return cuesFound;\n }\n }\n }\n\n return cuesFound;\n}\n\n/***/ }),\n\n/***/ \"./src/utils/time-ranges.ts\":\n/*!**********************************!*\\\n !*** ./src/utils/time-ranges.ts ***!\n \\**********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/**\n * TimeRanges to string helper\n */\nvar TimeRanges = {\n toString: function toString(r) {\n var log = '';\n var len = r.length;\n\n for (var i = 0; i < len; i++) {\n log += '[' + r.start(i).toFixed(3) + ',' + r.end(i).toFixed(3) + ']';\n }\n\n return log;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (TimeRanges);\n\n/***/ }),\n\n/***/ \"./src/utils/timescale-conversion.ts\":\n/*!*******************************************!*\\\n !*** ./src/utils/timescale-conversion.ts ***!\n \\*******************************************/\n/*! exports provided: toTimescaleFromBase, toTimescaleFromScale, toMsFromMpegTsClock, toMpegTsClockFromTimescale */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toTimescaleFromBase\", function() { return toTimescaleFromBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toTimescaleFromScale\", function() { return toTimescaleFromScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toMsFromMpegTsClock\", function() { return toMsFromMpegTsClock; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toMpegTsClockFromTimescale\", function() { return toMpegTsClockFromTimescale; });\nvar MPEG_TS_CLOCK_FREQ_HZ = 90000;\nfunction toTimescaleFromBase(value, destScale, srcBase, round) {\n if (srcBase === void 0) {\n srcBase = 1;\n }\n\n if (round === void 0) {\n round = false;\n }\n\n var result = value * destScale * srcBase; // equivalent to `(value * scale) / (1 / base)`\n\n return round ? Math.round(result) : result;\n}\nfunction toTimescaleFromScale(value, destScale, srcScale, round) {\n if (srcScale === void 0) {\n srcScale = 1;\n }\n\n if (round === void 0) {\n round = false;\n }\n\n return toTimescaleFromBase(value, destScale, 1 / srcScale, round);\n}\nfunction toMsFromMpegTsClock(value, round) {\n if (round === void 0) {\n round = false;\n }\n\n return toTimescaleFromBase(value, 1000, 1 / MPEG_TS_CLOCK_FREQ_HZ, round);\n}\nfunction toMpegTsClockFromTimescale(value, srcScale) {\n if (srcScale === void 0) {\n srcScale = 1;\n }\n\n return toTimescaleFromBase(value, MPEG_TS_CLOCK_FREQ_HZ, 1 / srcScale);\n}\n\n/***/ }),\n\n/***/ \"./src/utils/typed-array.ts\":\n/*!**********************************!*\\\n !*** ./src/utils/typed-array.ts ***!\n \\**********************************/\n/*! exports provided: sliceUint8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sliceUint8\", function() { return sliceUint8; });\nfunction sliceUint8(array, start, end) {\n // @ts-expect-error This polyfills IE11 usage of Uint8Array slice.\n // It always exists in the TypeScript definition so fails, but it fails at runtime on IE11.\n return Uint8Array.prototype.slice ? array.slice(start, end) : new Uint8Array(Array.prototype.slice.call(array, start, end));\n}\n\n/***/ }),\n\n/***/ \"./src/utils/vttcue.ts\":\n/*!*****************************!*\\\n !*** ./src/utils/vttcue.ts ***!\n \\*****************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function () {\n if (typeof self !== 'undefined' && self.VTTCue) {\n return self.VTTCue;\n }\n\n var AllowedDirections = ['', 'lr', 'rl'];\n var AllowedAlignments = ['start', 'middle', 'end', 'left', 'right'];\n\n function isAllowedValue(allowed, value) {\n if (typeof value !== 'string') {\n return false;\n } // necessary for assuring the generic conforms to the Array interface\n\n\n if (!Array.isArray(allowed)) {\n return false;\n } // reset the type so that the next narrowing works well\n\n\n var lcValue = value.toLowerCase(); // use the allow list to narrow the type to a specific subset of strings\n\n if (~allowed.indexOf(lcValue)) {\n return lcValue;\n }\n\n return false;\n }\n\n function findDirectionSetting(value) {\n return isAllowedValue(AllowedDirections, value);\n }\n\n function findAlignSetting(value) {\n return isAllowedValue(AllowedAlignments, value);\n }\n\n function extend(obj) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var i = 1;\n\n for (; i < arguments.length; i++) {\n var cobj = arguments[i];\n\n for (var p in cobj) {\n obj[p] = cobj[p];\n }\n }\n\n return obj;\n }\n\n function VTTCue(startTime, endTime, text) {\n var cue = this;\n var baseObj = {\n enumerable: true\n };\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n\n cue.hasBeenReset = false;\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n var _id = '';\n var _pauseOnExit = false;\n var _startTime = startTime;\n var _endTime = endTime;\n var _text = text;\n var _region = null;\n var _vertical = '';\n var _snapToLines = true;\n var _line = 'auto';\n var _lineAlign = 'start';\n var _position = 50;\n var _positionAlign = 'middle';\n var _size = 50;\n var _align = 'middle';\n Object.defineProperty(cue, 'id', extend({}, baseObj, {\n get: function get() {\n return _id;\n },\n set: function set(value) {\n _id = '' + value;\n }\n }));\n Object.defineProperty(cue, 'pauseOnExit', extend({}, baseObj, {\n get: function get() {\n return _pauseOnExit;\n },\n set: function set(value) {\n _pauseOnExit = !!value;\n }\n }));\n Object.defineProperty(cue, 'startTime', extend({}, baseObj, {\n get: function get() {\n return _startTime;\n },\n set: function set(value) {\n if (typeof value !== 'number') {\n throw new TypeError('Start time must be set to a number.');\n }\n\n _startTime = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'endTime', extend({}, baseObj, {\n get: function get() {\n return _endTime;\n },\n set: function set(value) {\n if (typeof value !== 'number') {\n throw new TypeError('End time must be set to a number.');\n }\n\n _endTime = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'text', extend({}, baseObj, {\n get: function get() {\n return _text;\n },\n set: function set(value) {\n _text = '' + value;\n this.hasBeenReset = true;\n }\n })); // todo: implement VTTRegion polyfill?\n\n Object.defineProperty(cue, 'region', extend({}, baseObj, {\n get: function get() {\n return _region;\n },\n set: function set(value) {\n _region = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'vertical', extend({}, baseObj, {\n get: function get() {\n return _vertical;\n },\n set: function set(value) {\n var setting = findDirectionSetting(value); // Have to check for false because the setting an be an empty string.\n\n if (setting === false) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _vertical = setting;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'snapToLines', extend({}, baseObj, {\n get: function get() {\n return _snapToLines;\n },\n set: function set(value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'line', extend({}, baseObj, {\n get: function get() {\n return _line;\n },\n set: function set(value) {\n if (typeof value !== 'number' && value !== 'auto') {\n throw new SyntaxError('An invalid number or illegal string was specified.');\n }\n\n _line = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'lineAlign', extend({}, baseObj, {\n get: function get() {\n return _lineAlign;\n },\n set: function set(value) {\n var setting = findAlignSetting(value);\n\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'position', extend({}, baseObj, {\n get: function get() {\n return _position;\n },\n set: function set(value) {\n if (value < 0 || value > 100) {\n throw new Error('Position must be between 0 and 100.');\n }\n\n _position = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'positionAlign', extend({}, baseObj, {\n get: function get() {\n return _positionAlign;\n },\n set: function set(value) {\n var setting = findAlignSetting(value);\n\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'size', extend({}, baseObj, {\n get: function get() {\n return _size;\n },\n set: function set(value) {\n if (value < 0 || value > 100) {\n throw new Error('Size must be between 0 and 100.');\n }\n\n _size = value;\n this.hasBeenReset = true;\n }\n }));\n Object.defineProperty(cue, 'align', extend({}, baseObj, {\n get: function get() {\n return _align;\n },\n set: function set(value) {\n var setting = findAlignSetting(value);\n\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _align = setting;\n this.hasBeenReset = true;\n }\n }));\n /**\n * Other <track> spec defined properties\n */\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n\n cue.displayState = undefined;\n }\n /**\n * VTTCue methods\n */\n\n\n VTTCue.prototype.getCueAsHTML = function () {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n var WebVTT = self.WebVTT;\n return WebVTT.convertCueToDOMTree(self, this.text);\n }; // this is a polyfill hack\n\n\n return VTTCue;\n})());\n\n/***/ }),\n\n/***/ \"./src/utils/vttparser.ts\":\n/*!********************************!*\\\n !*** ./src/utils/vttparser.ts ***!\n \\********************************/\n/*! exports provided: parseTimeStamp, fixLineBreaks, VTTParser */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseTimeStamp\", function() { return parseTimeStamp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fixLineBreaks\", function() { return fixLineBreaks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VTTParser\", function() { return VTTParser; });\n/* harmony import */ var _vttcue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./vttcue */ \"./src/utils/vttcue.ts\");\n/*\n * Source: https://github.com/mozilla/vtt.js/blob/master/dist/vtt.js\n */\n\n\nvar StringDecoder = /*#__PURE__*/function () {\n function StringDecoder() {}\n\n var _proto = StringDecoder.prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _proto.decode = function decode(data, options) {\n if (!data) {\n return '';\n }\n\n if (typeof data !== 'string') {\n throw new Error('Error - expected string data.');\n }\n\n return decodeURIComponent(encodeURIComponent(data));\n };\n\n return StringDecoder;\n}(); // Try to parse input as a time stamp.\n\n\nfunction parseTimeStamp(input) {\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + parseFloat(f || 0);\n }\n\n var m = input.match(/^(?:(\\d+):)?(\\d{2}):(\\d{2})(\\.\\d+)?/);\n\n if (!m) {\n return null;\n }\n\n if (parseFloat(m[2]) > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[2], m[3], 0, m[4]);\n } // Timestamp takes the form of [hours (optional)]:[minutes]:[seconds].[milliseconds]\n\n\n return computeSeconds(m[1], m[2], m[3], m[4]);\n} // A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\n\nvar Settings = /*#__PURE__*/function () {\n function Settings() {\n this.values = Object.create(null);\n }\n\n var _proto2 = Settings.prototype;\n\n // Only accept the first assignment to any key.\n _proto2.set = function set(k, v) {\n if (!this.get(k) && v !== '') {\n this.values[k] = v;\n }\n } // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n ;\n\n _proto2.get = function get(k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n\n return this.has(k) ? this.values[k] : dflt;\n } // Check whether we have a value for a key.\n ;\n\n _proto2.has = function has(k) {\n return k in this.values;\n } // Accept a setting if its one of the given alternatives.\n ;\n\n _proto2.alt = function alt(k, v, a) {\n for (var n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n } // Accept a setting if its a valid (signed) integer.\n ;\n\n _proto2.integer = function integer(k, v) {\n if (/^-?\\d+$/.test(v)) {\n // integer\n this.set(k, parseInt(v, 10));\n }\n } // Accept a setting if its a valid percentage.\n ;\n\n _proto2.percent = function percent(k, v) {\n if (/^([\\d]{1,3})(\\.[\\d]*)?%$/.test(v)) {\n var percent = parseFloat(v);\n\n if (percent >= 0 && percent <= 100) {\n this.set(k, percent);\n return true;\n }\n }\n\n return false;\n };\n\n return Settings;\n}(); // Helper function to parse input into groups separated by 'groupDelim', and\n// interpret each group as a key/value pair separated by 'keyValueDelim'.\n\n\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\n var groups = groupDelim ? input.split(groupDelim) : [input];\n\n for (var i in groups) {\n if (typeof groups[i] !== 'string') {\n continue;\n }\n\n var kv = groups[i].split(keyValueDelim);\n\n if (kv.length !== 2) {\n continue;\n }\n\n var _k = kv[0];\n var _v = kv[1];\n callback(_k, _v);\n }\n}\n\nvar defaults = new _vttcue__WEBPACK_IMPORTED_MODULE_0__[\"default\"](0, 0, ''); // 'middle' was changed to 'center' in the spec: https://github.com/w3c/webvtt/pull/244\n// Safari doesn't yet support this change, but FF and Chrome do.\n\nvar center = defaults.align === 'middle' ? 'middle' : 'center';\n\nfunction parseCue(input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n var oInput = input; // 4.1 WebVTT timestamp\n\n function consumeTimeStamp() {\n var ts = parseTimeStamp(input);\n\n if (ts === null) {\n throw new Error('Malformed timestamp: ' + oInput);\n } // Remove time stamp from input.\n\n\n input = input.replace(/^[^\\sa-zA-Z-]+/, '');\n return ts;\n } // 4.4.2 WebVTT cue settings\n\n\n function consumeCueSettings(input, cue) {\n var settings = new Settings();\n parseOptions(input, function (k, v) {\n var vals;\n\n switch (k) {\n case 'region':\n // Find the last region we parsed with the same region id.\n for (var i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n\n break;\n\n case 'vertical':\n settings.alt(k, v, ['rl', 'lr']);\n break;\n\n case 'line':\n vals = v.split(',');\n settings.integer(k, vals[0]);\n\n if (settings.percent(k, vals[0])) {\n settings.set('snapToLines', false);\n }\n\n settings.alt(k, vals[0], ['auto']);\n\n if (vals.length === 2) {\n settings.alt('lineAlign', vals[1], ['start', center, 'end']);\n }\n\n break;\n\n case 'position':\n vals = v.split(',');\n settings.percent(k, vals[0]);\n\n if (vals.length === 2) {\n settings.alt('positionAlign', vals[1], ['start', center, 'end', 'line-left', 'line-right', 'auto']);\n }\n\n break;\n\n case 'size':\n settings.percent(k, v);\n break;\n\n case 'align':\n settings.alt(k, v, ['start', center, 'end', 'left', 'right']);\n break;\n }\n }, /:/, /\\s/); // Apply default values for any missing fields.\n\n cue.region = settings.get('region', null);\n cue.vertical = settings.get('vertical', '');\n var line = settings.get('line', 'auto');\n\n if (line === 'auto' && defaults.line === -1) {\n // set numeric line number for Safari\n line = -1;\n }\n\n cue.line = line;\n cue.lineAlign = settings.get('lineAlign', 'start');\n cue.snapToLines = settings.get('snapToLines', true);\n cue.size = settings.get('size', 100);\n cue.align = settings.get('align', center);\n var position = settings.get('position', 'auto');\n\n if (position === 'auto' && defaults.position === 50) {\n // set numeric position for Safari\n position = cue.align === 'start' || cue.align === 'left' ? 0 : cue.align === 'end' || cue.align === 'right' ? 100 : 50;\n }\n\n cue.position = position;\n }\n\n function skipWhitespace() {\n input = input.replace(/^\\s+/, '');\n } // 4.1 WebVTT cue timings.\n\n\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n\n skipWhitespace();\n\n if (input.substr(0, 3) !== '-->') {\n // (3) next characters must match '-->'\n throw new Error(\"Malformed time stamp (time stamps must be separated by '-->'): \" + oInput);\n }\n\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n // 4.1 WebVTT cue settings list.\n\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\nfunction fixLineBreaks(input) {\n return input.replace(/<br(?: \\/)?>/gi, '\\n');\n}\nvar VTTParser = /*#__PURE__*/function () {\n function VTTParser() {\n this.state = 'INITIAL';\n this.buffer = '';\n this.decoder = new StringDecoder();\n this.regionList = [];\n this.cue = null;\n this.oncue = void 0;\n this.onparsingerror = void 0;\n this.onflush = void 0;\n }\n\n var _proto3 = VTTParser.prototype;\n\n _proto3.parse = function parse(data) {\n var _this = this; // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n\n\n if (data) {\n // Try to decode the data that we received.\n _this.buffer += _this.decoder.decode(data, {\n stream: true\n });\n }\n\n function collectNextLine() {\n var buffer = _this.buffer;\n var pos = 0;\n buffer = fixLineBreaks(buffer);\n\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n\n var line = buffer.substr(0, pos); // Advance the buffer early in case we fail below.\n\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n\n _this.buffer = buffer.substr(pos);\n return line;\n } // 3.2 WebVTT metadata header syntax\n\n\n function parseHeader(input) {\n parseOptions(input, function (k, v) {// switch (k) {\n // case 'region':\n // 3.3 WebVTT region metadata header syntax\n // console.log('parse region', v);\n // parseRegion(v);\n // break;\n // }\n }, /:/);\n } // 5.1 WebVTT file parsing.\n\n\n try {\n var line = '';\n\n if (_this.state === 'INITIAL') {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(_this.buffer)) {\n return this;\n }\n\n line = collectNextLine(); // strip of UTF-8 BOM if any\n // https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8\n\n var m = line.match(/^()?WEBVTT([ \\t].*)?$/);\n\n if (!m || !m[0]) {\n throw new Error('Malformed WebVTT signature.');\n }\n\n _this.state = 'HEADER';\n }\n\n var alreadyCollectedLine = false;\n\n while (_this.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(_this.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (_this.state) {\n case 'HEADER':\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n _this.state = 'ID';\n }\n\n continue;\n\n case 'NOTE':\n // Ignore NOTE blocks.\n if (!line) {\n _this.state = 'ID';\n }\n\n continue;\n\n case 'ID':\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n _this.state = 'NOTE';\n break;\n } // 19-29 - Allow any number of line terminators, then initialize new cue values.\n\n\n if (!line) {\n continue;\n }\n\n _this.cue = new _vttcue__WEBPACK_IMPORTED_MODULE_0__[\"default\"](0, 0, '');\n _this.state = 'CUE'; // 30-39 - Check if self line contains an optional identifier or timing data.\n\n if (line.indexOf('-->') === -1) {\n _this.cue.id = line;\n continue;\n }\n\n // Process line as start of a cue.\n\n /* falls through */\n\n case 'CUE':\n // 40 - Collect cue timings and settings.\n if (!_this.cue) {\n _this.state = 'BADCUE';\n continue;\n }\n\n try {\n parseCue(line, _this.cue, _this.regionList);\n } catch (e) {\n // In case of an error ignore rest of the cue.\n _this.cue = null;\n _this.state = 'BADCUE';\n continue;\n }\n\n _this.state = 'CUETEXT';\n continue;\n\n case 'CUETEXT':\n {\n var hasSubstring = line.indexOf('-->') !== -1; // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n if (_this.oncue && _this.cue) {\n _this.oncue(_this.cue);\n }\n\n _this.cue = null;\n _this.state = 'ID';\n continue;\n }\n\n if (_this.cue === null) {\n continue;\n }\n\n if (_this.cue.text) {\n _this.cue.text += '\\n';\n }\n\n _this.cue.text += line;\n }\n continue;\n\n case 'BADCUE':\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n _this.state = 'ID';\n }\n\n }\n }\n } catch (e) {\n // If we are currently parsing a cue, report what we have.\n if (_this.state === 'CUETEXT' && _this.cue && _this.oncue) {\n _this.oncue(_this.cue);\n }\n\n _this.cue = null; // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n\n _this.state = _this.state === 'INITIAL' ? 'BADWEBVTT' : 'BADCUE';\n }\n\n return this;\n };\n\n _proto3.flush = function flush() {\n var _this = this;\n\n try {\n // Finish decoding the stream.\n // _this.buffer += _this.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (_this.cue || _this.state === 'HEADER') {\n _this.buffer += '\\n\\n';\n\n _this.parse();\n } // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n\n\n if (_this.state === 'INITIAL' || _this.state === 'BADWEBVTT') {\n throw new Error('Malformed WebVTT signature.');\n }\n } catch (e) {\n if (_this.onparsingerror) {\n _this.onparsingerror(e);\n }\n }\n\n if (_this.onflush) {\n _this.onflush();\n }\n\n return this;\n };\n\n return VTTParser;\n}();\n\n/***/ }),\n\n/***/ \"./src/utils/webvtt-parser.ts\":\n/*!************************************!*\\\n !*** ./src/utils/webvtt-parser.ts ***!\n \\************************************/\n/*! exports provided: generateCueId, parseWebVTT */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generateCueId\", function() { return generateCueId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseWebVTT\", function() { return parseWebVTT; });\n/* harmony import */ var _home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/polyfills/number */ \"./src/polyfills/number.ts\");\n/* harmony import */ var _vttparser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vttparser */ \"./src/utils/vttparser.ts\");\n/* harmony import */ var _demux_id3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../demux/id3 */ \"./src/demux/id3.ts\");\n/* harmony import */ var _timescale_conversion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./timescale-conversion */ \"./src/utils/timescale-conversion.ts\");\n/* harmony import */ var _remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../remux/mp4-remuxer */ \"./src/remux/mp4-remuxer.ts\");\n\n\n\n\n\n\n\n\nvar LINEBREAKS = /\\r\\n|\\n\\r|\\n|\\r/g; // String.prototype.startsWith is not supported in IE11\n\nvar startsWith = function startsWith(inputString, searchString, position) {\n if (position === void 0) {\n position = 0;\n }\n\n return inputString.substr(position, searchString.length) === searchString;\n};\n\nvar cueString2millis = function cueString2millis(timeString) {\n var ts = parseInt(timeString.substr(-3));\n var secs = parseInt(timeString.substr(-6, 2));\n var mins = parseInt(timeString.substr(-9, 2));\n var hours = timeString.length > 9 ? parseInt(timeString.substr(0, timeString.indexOf(':'))) : 0;\n\n if (!Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(ts) || !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(secs) || !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(mins) || !Object(_home_runner_work_hls_js_hls_js_src_polyfills_number__WEBPACK_IMPORTED_MODULE_0__[\"isFiniteNumber\"])(hours)) {\n throw Error(\"Malformed X-TIMESTAMP-MAP: Local:\" + timeString);\n }\n\n ts += 1000 * secs;\n ts += 60 * 1000 * mins;\n ts += 60 * 60 * 1000 * hours;\n return ts;\n}; // From https://github.com/darkskyapp/string-hash\n\n\nvar hash = function hash(text) {\n var hash = 5381;\n var i = text.length;\n\n while (i) {\n hash = hash * 33 ^ text.charCodeAt(--i);\n }\n\n return (hash >>> 0).toString();\n}; // Create a unique hash id for a cue based on start/end times and text.\n// This helps timeline-controller to avoid showing repeated captions.\n\n\nfunction generateCueId(startTime, endTime, text) {\n return hash(startTime.toString()) + hash(endTime.toString()) + hash(text);\n}\n\nvar calculateOffset = function calculateOffset(vttCCs, cc, presentationTime) {\n var currCC = vttCCs[cc];\n var prevCC = vttCCs[currCC.prevCC]; // This is the first discontinuity or cues have been processed since the last discontinuity\n // Offset = current discontinuity time\n\n if (!prevCC || !prevCC.new && currCC.new) {\n vttCCs.ccOffset = vttCCs.presentationOffset = currCC.start;\n currCC.new = false;\n return;\n } // There have been discontinuities since cues were last parsed.\n // Offset = time elapsed\n\n\n while ((_prevCC = prevCC) !== null && _prevCC !== void 0 && _prevCC.new) {\n var _prevCC;\n\n vttCCs.ccOffset += currCC.start - prevCC.start;\n currCC.new = false;\n currCC = prevCC;\n prevCC = vttCCs[currCC.prevCC];\n }\n\n vttCCs.presentationOffset = presentationTime;\n};\n\nfunction parseWebVTT(vttByteArray, initPTS, timescale, vttCCs, cc, timeOffset, callBack, errorCallBack) {\n var parser = new _vttparser__WEBPACK_IMPORTED_MODULE_1__[\"VTTParser\"](); // Convert byteArray into string, replacing any somewhat exotic linefeeds with \"\\n\", then split on that character.\n // Uint8Array.prototype.reduce is not implemented in IE11\n\n var vttLines = Object(_demux_id3__WEBPACK_IMPORTED_MODULE_2__[\"utf8ArrayToStr\"])(new Uint8Array(vttByteArray)).trim().replace(LINEBREAKS, '\\n').split('\\n');\n var cues = [];\n var initPTS90Hz = Object(_timescale_conversion__WEBPACK_IMPORTED_MODULE_3__[\"toMpegTsClockFromTimescale\"])(initPTS, timescale);\n var cueTime = '00:00.000';\n var timestampMapMPEGTS = 0;\n var timestampMapLOCAL = 0;\n var parsingError;\n var inHeader = true;\n var timestampMap = false;\n\n parser.oncue = function (cue) {\n // Adjust cue timing; clamp cues to start no earlier than - and drop cues that don't end after - 0 on timeline.\n var currCC = vttCCs[cc];\n var cueOffset = vttCCs.ccOffset; // Calculate subtitle PTS offset\n\n var webVttMpegTsMapOffset = (timestampMapMPEGTS - initPTS90Hz) / 90000; // Update offsets for new discontinuities\n\n if (currCC !== null && currCC !== void 0 && currCC.new) {\n if (timestampMapLOCAL !== undefined) {\n // When local time is provided, offset = discontinuity start time - local time\n cueOffset = vttCCs.ccOffset = currCC.start;\n } else {\n calculateOffset(vttCCs, cc, webVttMpegTsMapOffset);\n }\n }\n\n if (webVttMpegTsMapOffset) {\n // If we have MPEGTS, offset = presentation time + discontinuity offset\n cueOffset = webVttMpegTsMapOffset - vttCCs.presentationOffset;\n }\n\n if (timestampMap) {\n var duration = cue.endTime - cue.startTime;\n var startTime = Object(_remux_mp4_remuxer__WEBPACK_IMPORTED_MODULE_4__[\"normalizePts\"])((cue.startTime + cueOffset - timestampMapLOCAL) * 90000, timeOffset * 90000) / 90000;\n cue.startTime = startTime;\n cue.endTime = startTime + duration;\n } //trim trailing webvtt block whitespaces\n\n\n var text = cue.text.trim(); // Fix encoding of special characters\n\n cue.text = decodeURIComponent(encodeURIComponent(text)); // If the cue was not assigned an id from the VTT file (line above the content), create one.\n\n if (!cue.id) {\n cue.id = generateCueId(cue.startTime, cue.endTime, text);\n }\n\n if (cue.endTime > 0) {\n cues.push(cue);\n }\n };\n\n parser.onparsingerror = function (error) {\n parsingError = error;\n };\n\n parser.onflush = function () {\n if (parsingError) {\n errorCallBack(parsingError);\n return;\n }\n\n callBack(cues);\n }; // Go through contents line by line.\n\n\n vttLines.forEach(function (line) {\n if (inHeader) {\n // Look for X-TIMESTAMP-MAP in header.\n if (startsWith(line, 'X-TIMESTAMP-MAP=')) {\n // Once found, no more are allowed anyway, so stop searching.\n inHeader = false;\n timestampMap = true; // Extract LOCAL and MPEGTS.\n\n line.substr(16).split(',').forEach(function (timestamp) {\n if (startsWith(timestamp, 'LOCAL:')) {\n cueTime = timestamp.substr(6);\n } else if (startsWith(timestamp, 'MPEGTS:')) {\n timestampMapMPEGTS = parseInt(timestamp.substr(7));\n }\n });\n\n try {\n // Convert cue time to seconds\n timestampMapLOCAL = cueString2millis(cueTime) / 1000;\n } catch (error) {\n timestampMap = false;\n parsingError = error;\n } // Return without parsing X-TIMESTAMP-MAP line.\n\n\n return;\n } else if (line === '') {\n inHeader = false;\n }\n } // Parse line by default.\n\n\n parser.parse(line + '\\n');\n });\n parser.flush();\n}\n\n/***/ }),\n\n/***/ \"./src/utils/xhr-loader.ts\":\n/*!*********************************!*\\\n !*** ./src/utils/xhr-loader.ts ***!\n \\*********************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\n/* harmony import */ var _loader_load_stats__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../loader/load-stats */ \"./src/loader/load-stats.ts\");\n\n\nvar AGE_HEADER_LINE_REGEX = /^age:\\s*[\\d.]+\\s*$/m;\n\nvar XhrLoader = /*#__PURE__*/function () {\n function XhrLoader(config\n /* HlsConfig */\n ) {\n this.xhrSetup = void 0;\n this.requestTimeout = void 0;\n this.retryTimeout = void 0;\n this.retryDelay = void 0;\n this.config = null;\n this.callbacks = null;\n this.context = void 0;\n this.loader = null;\n this.stats = void 0;\n this.xhrSetup = config ? config.xhrSetup : null;\n this.stats = new _loader_load_stats__WEBPACK_IMPORTED_MODULE_1__[\"LoadStats\"]();\n this.retryDelay = 0;\n }\n\n var _proto = XhrLoader.prototype;\n\n _proto.destroy = function destroy() {\n this.callbacks = null;\n this.abortInternal();\n this.loader = null;\n this.config = null;\n };\n\n _proto.abortInternal = function abortInternal() {\n var loader = this.loader;\n self.clearTimeout(this.requestTimeout);\n self.clearTimeout(this.retryTimeout);\n\n if (loader) {\n loader.onreadystatechange = null;\n loader.onprogress = null;\n\n if (loader.readyState !== 4) {\n this.stats.aborted = true;\n loader.abort();\n }\n }\n };\n\n _proto.abort = function abort() {\n var _this$callbacks;\n\n this.abortInternal();\n\n if ((_this$callbacks = this.callbacks) !== null && _this$callbacks !== void 0 && _this$callbacks.onAbort) {\n this.callbacks.onAbort(this.stats, this.context, this.loader);\n }\n };\n\n _proto.load = function load(context, config, callbacks) {\n if (this.stats.loading.start) {\n throw new Error('Loader can only be used once.');\n }\n\n this.stats.loading.start = self.performance.now();\n this.context = context;\n this.config = config;\n this.callbacks = callbacks;\n this.retryDelay = config.retryDelay;\n this.loadInternal();\n };\n\n _proto.loadInternal = function loadInternal() {\n var config = this.config,\n context = this.context;\n\n if (!config) {\n return;\n }\n\n var xhr = this.loader = new self.XMLHttpRequest();\n var stats = this.stats;\n stats.loading.first = 0;\n stats.loaded = 0;\n var xhrSetup = this.xhrSetup;\n\n try {\n if (xhrSetup) {\n try {\n xhrSetup(xhr, context.url);\n } catch (e) {\n // fix xhrSetup: (xhr, url) => {xhr.setRequestHeader(\"Content-Language\", \"test\");}\n // not working, as xhr.setRequestHeader expects xhr.readyState === OPEN\n xhr.open('GET', context.url, true);\n xhrSetup(xhr, context.url);\n }\n }\n\n if (!xhr.readyState) {\n xhr.open('GET', context.url, true);\n }\n\n var headers = this.context.headers;\n\n if (headers) {\n for (var header in headers) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n } catch (e) {\n // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n this.callbacks.onError({\n code: xhr.status,\n text: e.message\n }, context, xhr);\n return;\n }\n\n if (context.rangeEnd) {\n xhr.setRequestHeader('Range', 'bytes=' + context.rangeStart + '-' + (context.rangeEnd - 1));\n }\n\n xhr.onreadystatechange = this.readystatechange.bind(this);\n xhr.onprogress = this.loadprogress.bind(this);\n xhr.responseType = context.responseType; // setup timeout before we perform request\n\n self.clearTimeout(this.requestTimeout);\n this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), config.timeout);\n xhr.send();\n };\n\n _proto.readystatechange = function readystatechange() {\n var context = this.context,\n xhr = this.loader,\n stats = this.stats;\n\n if (!context || !xhr) {\n return;\n }\n\n var readyState = xhr.readyState;\n var config = this.config; // don't proceed if xhr has been aborted\n\n if (stats.aborted) {\n return;\n } // >= HEADERS_RECEIVED\n\n\n if (readyState >= 2) {\n // clear xhr timeout and rearm it if readyState less than 4\n self.clearTimeout(this.requestTimeout);\n\n if (stats.loading.first === 0) {\n stats.loading.first = Math.max(self.performance.now(), stats.loading.start);\n }\n\n if (readyState === 4) {\n xhr.onreadystatechange = null;\n xhr.onprogress = null;\n var status = xhr.status; // http status between 200 to 299 are all successful\n\n if (status >= 200 && status < 300) {\n stats.loading.end = Math.max(self.performance.now(), stats.loading.first);\n var data;\n var len;\n\n if (context.responseType === 'arraybuffer') {\n data = xhr.response;\n len = data.byteLength;\n } else {\n data = xhr.responseText;\n len = data.length;\n }\n\n stats.loaded = stats.total = len;\n\n if (!this.callbacks) {\n return;\n }\n\n var onProgress = this.callbacks.onProgress;\n\n if (onProgress) {\n onProgress(stats, context, data, xhr);\n }\n\n if (!this.callbacks) {\n return;\n }\n\n var response = {\n url: xhr.responseURL,\n data: data\n };\n this.callbacks.onSuccess(response, stats, context, xhr);\n } else {\n // if max nb of retries reached or if http status between 400 and 499 (such error cannot be recovered, retrying is useless), return error\n if (stats.retry >= config.maxRetry || status >= 400 && status < 499) {\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].error(status + \" while loading \" + context.url);\n this.callbacks.onError({\n code: status,\n text: xhr.statusText\n }, context, xhr);\n } else {\n // retry\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].warn(status + \" while loading \" + context.url + \", retrying in \" + this.retryDelay + \"...\"); // abort and reset internal state\n\n this.abortInternal();\n this.loader = null; // schedule retry\n\n self.clearTimeout(this.retryTimeout);\n this.retryTimeout = self.setTimeout(this.loadInternal.bind(this), this.retryDelay); // set exponential backoff\n\n this.retryDelay = Math.min(2 * this.retryDelay, config.maxRetryDelay);\n stats.retry++;\n }\n }\n } else {\n // readyState >= 2 AND readyState !==4 (readyState = HEADERS_RECEIVED || LOADING) rearm timeout as xhr not finished yet\n self.clearTimeout(this.requestTimeout);\n this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), config.timeout);\n }\n }\n };\n\n _proto.loadtimeout = function loadtimeout() {\n _utils_logger__WEBPACK_IMPORTED_MODULE_0__[\"logger\"].warn(\"timeout while loading \" + this.context.url);\n var callbacks = this.callbacks;\n\n if (callbacks) {\n this.abortInternal();\n callbacks.onTimeout(this.stats, this.context, this.loader);\n }\n };\n\n _proto.loadprogress = function loadprogress(event) {\n var stats = this.stats;\n stats.loaded = event.loaded;\n\n if (event.lengthComputable) {\n stats.total = event.total;\n }\n };\n\n _proto.getCacheAge = function getCacheAge() {\n var result = null;\n\n if (this.loader && AGE_HEADER_LINE_REGEX.test(this.loader.getAllResponseHeaders())) {\n var ageHeader = this.loader.getResponseHeader('age');\n result = ageHeader ? parseFloat(ageHeader) : null;\n }\n\n return result;\n };\n\n return XhrLoader;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (XhrLoader);\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=hls.js.map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcssValueParser = require('postcss-value-parser');\n\nvar _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);\n\nvar _parser = require('./parser');\n\nvar _reducer = require('./lib/reducer');\n\nvar _reducer2 = _interopRequireDefault(_reducer);\n\nvar _stringifier = require('./lib/stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eslint-disable-line\nvar MATCH_CALC = /((?:\\-[a-z]+\\-)?calc)/;\n\nexports.default = function (value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n\n return (0, _postcssValueParser2.default)(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;\n\n // stringify calc expression and produce an AST\n var contents = _postcssValueParser2.default.stringify(node.nodes);\n\n // skip constant() and env()\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents);\n\n // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n var reducedAst = (0, _reducer2.default)(ast, precision);\n\n // stringify AST and write it back\n node.type = 'word';\n node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = '_zero';\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val.trim();\n if (val.trim() === 'false') formatOptions[key.trim()] = false;\n if (val.trim() === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val.trim())) formatOptions[key.trim()] = parseInt(val.trim(), 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n};\n\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = getCoordinate(props);\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\n\nReferenceDot.renderDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n};","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/types';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n}; // TODO: ScaleHelper\n\n\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n\n if (isSegment) {\n var segment = props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n};\n\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n\n if (!endPoints) {\n return null;\n }\n\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","import _isFunction from \"lodash/isFunction\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/types';\n\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n};\n\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\n\nReferenceArea.renderRect = function (option, props) {\n var rect;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n};","import { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine.displayName);\n var dots = findAllByType(children, ReferenceDot.displayName);\n var elements = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea.displayName);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/types';\n\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n\n if (!data || !data.length) {\n return {};\n }\n\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\n\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\n\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n var _super = _createSuper(Brush);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _super.call(this, props);\n _this.leaveTimer = void 0;\n _this.travellerDragStartHandlers = void 0;\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n\n _this.detachDragEndListener();\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n\n _this.attachDragEndListener();\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n\n return false;\n };\n\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\nBrush.displayName = 'Brush';\nBrush.defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n};","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\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\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst constants = require('./constants')\nconst SHIFT32 = constants.SHIFT32\nconst SHIFT16 = constants.SHIFT16\nconst MAX_SAFE_HIGH = 0x1fffff\n\nexports.parseHalf = function parseHalf (buf) {\n var exp, mant, sign\n sign = buf[0] & 0x80 ? -1 : 1\n exp = (buf[0] & 0x7C) >> 2\n mant = ((buf[0] & 0x03) << 8) | buf[1]\n if (!exp) {\n return sign * 5.9604644775390625e-8 * mant\n } else if (exp === 0x1f) {\n return sign * (mant ? 0 / 0 : 2e308)\n } else {\n return sign * Math.pow(2, exp - 25) * (1024 + mant)\n }\n}\n\nfunction toHex (n) {\n if (n < 16) {\n return '0' + n.toString(16)\n }\n\n return n.toString(16)\n}\n\nexports.arrayBufferToBignumber = function (buf) {\n const len = buf.byteLength\n let res = ''\n for (let i = 0; i < len; i++) {\n res += toHex(buf[i])\n }\n\n return new Bignumber(res, 16)\n}\n\n// convert an Object into a Map\nexports.buildMap = (obj) => {\n const res = new Map()\n const keys = Object.keys(obj)\n const length = keys.length\n for (let i = 0; i < length; i++) {\n res.set(keys[i], obj[keys[i]])\n }\n return res\n}\n\nexports.buildInt32 = (f, g) => {\n return f * SHIFT16 + g\n}\n\nexports.buildInt64 = (f1, f2, g1, g2) => {\n const f = exports.buildInt32(f1, f2)\n const g = exports.buildInt32(g1, g2)\n\n if (f > MAX_SAFE_HIGH) {\n return new Bignumber(f).times(SHIFT32).plus(g)\n } else {\n return (f * SHIFT32) + g\n }\n}\n\nexports.writeHalf = function writeHalf (buf, half) {\n // assume 0, -0, NaN, Infinity, and -Infinity have already been caught\n\n // HACK: everyone settle in. This isn't going to be pretty.\n // Translate cn-cbor's C code (from Carsten Borman):\n\n // uint32_t be32;\n // uint16_t be16, u16;\n // union {\n // float f;\n // uint32_t u;\n // } u32;\n // u32.f = float_val;\n\n const u32 = Buffer.allocUnsafe(4)\n u32.writeFloatBE(half, 0)\n const u = u32.readUInt32BE(0)\n\n // if ((u32.u & 0x1FFF) == 0) { /* worth trying half */\n\n // hildjj: If the lower 13 bits are 0, we won't lose anything in the conversion\n if ((u & 0x1FFF) !== 0) {\n return false\n }\n\n // int s16 = (u32.u >> 16) & 0x8000;\n // int exp = (u32.u >> 23) & 0xff;\n // int mant = u32.u & 0x7fffff;\n\n var s16 = (u >> 16) & 0x8000 // top bit is sign\n const exp = (u >> 23) & 0xff // then 5 bits of exponent\n const mant = u & 0x7fffff\n\n // if (exp == 0 && mant == 0)\n // ; /* 0.0, -0.0 */\n\n // hildjj: zeros already handled. Assert if you don't believe me.\n\n // else if (exp >= 113 && exp <= 142) /* normalized */\n // s16 += ((exp - 112) << 10) + (mant >> 13);\n if ((exp >= 113) && (exp <= 142)) {\n s16 += ((exp - 112) << 10) + (mant >> 13)\n\n // else if (exp >= 103 && exp < 113) { /* denorm, exp16 = 0 */\n // if (mant & ((1 << (126 - exp)) - 1))\n // goto float32; /* loss of precision */\n // s16 += ((mant + 0x800000) >> (126 - exp));\n } else if ((exp >= 103) && (exp < 113)) {\n if (mant & ((1 << (126 - exp)) - 1)) {\n return false\n }\n s16 += ((mant + 0x800000) >> (126 - exp))\n\n // } else if (exp == 255 && mant == 0) { /* Inf */\n // s16 += 0x7c00;\n\n // hildjj: Infinity already handled\n\n // } else\n // goto float32; /* loss of range */\n } else {\n return false\n }\n\n // ensure_writable(3);\n // u16 = s16;\n // be16 = hton16p((const uint8_t*)&u16);\n buf.writeUInt16BE(s16, 0)\n return true\n}\n\nexports.keySorter = function (a, b) {\n var lenA = a[0].byteLength\n var lenB = b[0].byteLength\n\n if (lenA > lenB) {\n return 1\n }\n\n if (lenB > lenA) {\n return -1\n }\n\n return a[0].compare(b[0])\n}\n\n// Adapted from http://www.2ality.com/2012/03/signedzero.html\nexports.isNegativeZero = (x) => {\n return x === 0 && (1 / x < 0)\n}\n\nexports.nextPowerOf2 = (n) => {\n let count = 0\n // First n in the below condition is for\n // the case where n is 0\n if (n && !(n & (n - 1))) {\n return n\n }\n\n while (n !== 0) {\n n >>= 1\n count += 1\n }\n\n return 1 << count\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base32 = base.rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nconst base32upper = base.rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nconst base32pad = base.rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nconst base32padupper = base.rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nconst base32hex = base.rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nconst base32hexupper = base.rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nconst base32hexpad = base.rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nconst base32hexpadupper = base.rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nconst base32z = base.rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});\n\nexports.base32 = base32;\nexports.base32hex = base32hex;\nexports.base32hexpad = base32hexpad;\nexports.base32hexpadupper = base32hexpadupper;\nexports.base32hexupper = base32hexupper;\nexports.base32pad = base32pad;\nexports.base32padupper = base32padupper;\nexports.base32upper = base32upper;\nexports.base32z = base32z;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar common = require('./common.js');\nvar _0uint = require('./0uint.js');\nvar byteUtils = require('./byte-utils.js');\n\nfunction toToken(data, pos, prefix, length) {\n common.assertEnoughData(data, pos, prefix + length);\n const buf = byteUtils.slice(data, pos + prefix, pos + prefix + length);\n return new token.Token(token.Type.bytes, buf, prefix + length);\n}\nfunction decodeBytesCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nfunction decodeBytes8(data, pos, _minor, options) {\n return toToken(data, pos, 2, _0uint.readUint8(data, pos + 1, options));\n}\nfunction decodeBytes16(data, pos, _minor, options) {\n return toToken(data, pos, 3, _0uint.readUint16(data, pos + 1, options));\n}\nfunction decodeBytes32(data, pos, _minor, options) {\n return toToken(data, pos, 5, _0uint.readUint32(data, pos + 1, options));\n}\nfunction decodeBytes64(data, pos, _minor, options) {\n const l = _0uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ common.decodeErrPrefix } 64-bit integer bytes lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nfunction tokenBytes(token$1) {\n if (token$1.encodedBytes === undefined) {\n token$1.encodedBytes = token$1.type === token.Type.string ? byteUtils.fromString(token$1.value) : token$1.value;\n }\n return token$1.encodedBytes;\n}\nfunction encodeBytes(buf, token) {\n const bytes = tokenBytes(token);\n _0uint.encodeUintValue(buf, token.type.majorEncoded, bytes.length);\n buf.push(bytes);\n}\nencodeBytes.encodedSize = function encodedSize(token) {\n const bytes = tokenBytes(token);\n return _0uint.encodeUintValue.encodedSize(bytes.length) + bytes.length;\n};\nencodeBytes.compareTokens = function compareTokens(tok1, tok2) {\n return compareBytes(tokenBytes(tok1), tokenBytes(tok2));\n};\nfunction compareBytes(b1, b2) {\n return b1.length < b2.length ? -1 : b1.length > b2.length ? 1 : byteUtils.compare(b1, b2);\n}\n\nexports.compareBytes = compareBytes;\nexports.decodeBytes16 = decodeBytes16;\nexports.decodeBytes32 = decodeBytes32;\nexports.decodeBytes64 = decodeBytes64;\nexports.decodeBytes8 = decodeBytes8;\nexports.decodeBytesCompact = decodeBytesCompact;\nexports.encodeBytes = encodeBytes;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar digest = require('./digest.js');\n\nconst from = ({name, code, encode}) => new Hasher(name, code, encode);\nclass Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? digest.create(this.code, result) : result.then(digest$1 => digest.create(this.code, digest$1));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\n\nexports.Hasher = Hasher;\nexports.from = from;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar env_js = require('ipfs-utils/src/env.js');\nvar parseDuration = require('parse-duration');\nvar debug = require('debug');\nvar HTTP = require('ipfs-utils/src/http.js');\nvar mergeOpts = require('merge-options');\nvar toUrlString = require('ipfs-core-utils/to-url-string');\nvar getAgent = require('ipfs-core-utils/agent');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar parseDuration__default = /*#__PURE__*/_interopDefaultLegacy(parseDuration);\nvar debug__default = /*#__PURE__*/_interopDefaultLegacy(debug);\nvar HTTP__default = /*#__PURE__*/_interopDefaultLegacy(HTTP);\nvar mergeOpts__default = /*#__PURE__*/_interopDefaultLegacy(mergeOpts);\nvar getAgent__default = /*#__PURE__*/_interopDefaultLegacy(getAgent);\n\nconst log = debug__default['default']('ipfs-http-client:lib:error-handler');\nconst merge = mergeOpts__default['default'].bind({ ignoreUndefined: true });\nconst DEFAULT_PROTOCOL = env_js.isBrowser || env_js.isWebWorker ? location.protocol : 'http';\nconst DEFAULT_HOST = env_js.isBrowser || env_js.isWebWorker ? location.hostname : 'localhost';\nconst DEFAULT_PORT = env_js.isBrowser || env_js.isWebWorker ? location.port : '5001';\nconst normalizeOptions = (options = {}) => {\n let url;\n let opts = {};\n let agent;\n if (typeof options === 'string' || multiaddr.Multiaddr.isMultiaddr(options)) {\n url = new URL(toUrlString.toUrlString(options));\n } else if (options instanceof URL) {\n url = options;\n } else if (typeof options.url === 'string' || multiaddr.Multiaddr.isMultiaddr(options.url)) {\n url = new URL(toUrlString.toUrlString(options.url));\n opts = options;\n } else if (options.url instanceof URL) {\n url = options.url;\n opts = options;\n } else {\n opts = options || {};\n const protocol = (opts.protocol || DEFAULT_PROTOCOL).replace(':', '');\n const host = (opts.host || DEFAULT_HOST).split(':')[0];\n const port = opts.port || DEFAULT_PORT;\n url = new URL(`${ protocol }://${ host }:${ port }`);\n }\n if (opts.apiPath) {\n url.pathname = opts.apiPath;\n } else if (url.pathname === '/' || url.pathname === undefined) {\n url.pathname = 'api/v0';\n }\n if (env_js.isNode) {\n const Agent = getAgent__default['default'](url);\n agent = opts.agent || new Agent({\n keepAlive: true,\n maxSockets: 6\n });\n }\n return {\n ...opts,\n host: url.host,\n protocol: url.protocol.replace(':', ''),\n port: Number(url.port),\n apiPath: url.pathname,\n url,\n agent\n };\n};\nconst errorHandler = async response => {\n let msg;\n try {\n if ((response.headers.get('Content-Type') || '').startsWith('application/json')) {\n const data = await response.json();\n log(data);\n msg = data.Message || data.message;\n } else {\n msg = await response.text();\n }\n } catch (err) {\n log('Failed to parse error response', err);\n msg = err.message;\n }\n let error = new HTTP__default['default'].HTTPError(response);\n if (msg) {\n if (msg.includes('deadline has elapsed')) {\n error = new HTTP__default['default'].TimeoutError();\n }\n if (msg && msg.includes('context deadline exceeded')) {\n error = new HTTP__default['default'].TimeoutError();\n }\n }\n if (msg && msg.includes('request timed out')) {\n error = new HTTP__default['default'].TimeoutError();\n }\n if (msg) {\n error.message = msg;\n }\n throw error;\n};\nconst KEBAB_REGEX = /[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g;\nconst kebabCase = str => {\n return str.replace(KEBAB_REGEX, function (match) {\n return '-' + match.toLowerCase();\n });\n};\nconst parseTimeout = value => {\n return typeof value === 'string' ? parseDuration__default['default'](value) : value;\n};\nclass Client extends HTTP__default['default'] {\n constructor(options = {}) {\n const opts = normalizeOptions(options);\n super({\n timeout: parseTimeout(opts.timeout || 0) || undefined,\n headers: opts.headers,\n base: `${ opts.url }`,\n handleError: errorHandler,\n transformSearchParams: search => {\n const out = new URLSearchParams();\n for (const [key, value] of search) {\n if (value !== 'undefined' && value !== 'null' && key !== 'signal') {\n out.append(kebabCase(key), value);\n }\n if (key === 'timeout' && !isNaN(value)) {\n out.append(kebabCase(key), value);\n }\n }\n return out;\n },\n agent: opts.agent\n });\n delete this.get;\n delete this.put;\n delete this.delete;\n delete this.options;\n const fetch = this.fetch;\n this.fetch = (resource, options = {}) => {\n if (typeof resource === 'string' && !resource.startsWith('/')) {\n resource = `${ opts.url }/${ resource }`;\n }\n return fetch.call(this, resource, merge(options, { method: 'POST' }));\n };\n }\n}\nconst HTTPError = HTTP__default['default'].HTTPError;\n\nexports.Client = Client;\nexports.HTTPError = HTTPError;\nexports.errorHandler = errorHandler;\n","'use strict'\n/** @typedef {import(\"./types\").Protocol} Protocol */\n\n/**\n * Protocols\n *\n * @param {number | string} proto\n * @returns {Protocol}\n */\nfunction Protocols (proto) {\n if (typeof (proto) === 'number') {\n if (Protocols.codes[proto]) {\n return Protocols.codes[proto]\n }\n\n throw new Error('no protocol with code: ' + proto)\n } else if (typeof (proto) === 'string') {\n if (Protocols.names[proto]) {\n return Protocols.names[proto]\n }\n\n throw new Error('no protocol with name: ' + proto)\n }\n\n throw new Error('invalid protocol id type: ' + proto)\n}\n\nconst V = -1\nProtocols.lengthPrefixedVarSize = V\nProtocols.V = V\n\n/** @type {Array<[number, number, string, (string|boolean)?, string?]>} */\nProtocols.table = [\n [4, 32, 'ip4'],\n [6, 16, 'tcp'],\n [33, 16, 'dccp'],\n [41, 128, 'ip6'],\n [42, V, 'ip6zone'],\n [53, V, 'dns', 'resolvable'],\n [54, V, 'dns4', 'resolvable'],\n [55, V, 'dns6', 'resolvable'],\n [56, V, 'dnsaddr', 'resolvable'],\n [132, 16, 'sctp'],\n [273, 16, 'udp'],\n [275, 0, 'p2p-webrtc-star'],\n [276, 0, 'p2p-webrtc-direct'],\n [277, 0, 'p2p-stardust'],\n [290, 0, 'p2p-circuit'],\n [301, 0, 'udt'],\n [302, 0, 'utp'],\n [400, V, 'unix', false, 'path'],\n // `ipfs` is added before `p2p` for legacy support.\n // All text representations will default to `p2p`, but `ipfs` will\n // still be supported\n [421, V, 'ipfs'],\n // `p2p` is the preferred name for 421, and is now the default\n [421, V, 'p2p'],\n [443, 0, 'https'],\n [444, 96, 'onion'],\n [445, 296, 'onion3'],\n [446, V, 'garlic64'],\n [460, 0, 'quic'],\n [477, 0, 'ws'],\n [478, 0, 'wss'],\n [479, 0, 'p2p-websocket-star'],\n [480, 0, 'http'],\n [777, V, 'memory']\n]\n/** @type {Record<string,Protocol>} */\nProtocols.names = {}\n/** @type {Record<number,Protocol>} */\nProtocols.codes = {}\n\n// populate tables\nProtocols.table.map(row => {\n const proto = p.apply(null, row)\n Protocols.codes[proto.code] = proto\n Protocols.names[proto.name] = proto\n return null\n})\n\nProtocols.object = p\n\n/**\n *\n * Create a protocol\n *\n * @param {number} code\n * @param {number} size\n * @param {string} name\n * @param {any} [resolvable]\n * @param {any} [path]\n * @returns {Protocol}\n */\nfunction p (code, size, name, resolvable, path) {\n return {\n code,\n size,\n name,\n resolvable: Boolean(resolvable),\n path: Boolean(path)\n }\n}\n\nmodule.exports = Protocols\n","module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst SendingQuery = 0;\nconst PeerResponse = 1;\nconst FinalPeer = 2;\nconst QueryError = 3;\nconst Provider = 4;\nconst Value = 5;\nconst AddingPeer = 6;\nconst DialingPeer = 7;\n\nexports.AddingPeer = AddingPeer;\nexports.DialingPeer = DialingPeer;\nexports.FinalPeer = FinalPeer;\nexports.PeerResponse = PeerResponse;\nexports.Provider = Provider;\nexports.QueryError = QueryError;\nexports.SendingQuery = SendingQuery;\nexports.Value = Value;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","/* 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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Tag = void 0;\r\nconst ArweaveUtils = require(\"./utils\");\r\nconst deepHash_1 = require(\"./deepHash\");\r\nconst merkle_1 = require(\"./merkle\");\r\nclass BaseObject {\r\n get(field, options) {\r\n if (!Object.getOwnPropertyNames(this).includes(field)) {\r\n throw new Error(`Field \"${field}\" is not a property of the Arweave Transaction class.`);\r\n }\r\n // Handle fields that are Uint8Arrays.\r\n // To maintain compat we encode them to b64url\r\n // if decode option is not specificed.\r\n if (this[field] instanceof Uint8Array) {\r\n if (options && options.decode && options.string) {\r\n return ArweaveUtils.bufferToString(this[field]);\r\n }\r\n if (options && options.decode && !options.string) {\r\n return this[field];\r\n }\r\n return ArweaveUtils.bufferTob64Url(this[field]);\r\n }\r\n if (options && options.decode == true) {\r\n if (options && options.string) {\r\n return ArweaveUtils.b64UrlToString(this[field]);\r\n }\r\n return ArweaveUtils.b64UrlToBuffer(this[field]);\r\n }\r\n return this[field];\r\n }\r\n}\r\nclass Tag extends BaseObject {\r\n constructor(name, value, decode = false) {\r\n super();\r\n this.name = name;\r\n this.value = value;\r\n }\r\n}\r\nexports.Tag = Tag;\r\nclass Transaction extends BaseObject {\r\n constructor(attributes = {}) {\r\n super();\r\n this.format = 2;\r\n this.id = \"\";\r\n this.last_tx = \"\";\r\n this.owner = \"\";\r\n this.tags = [];\r\n this.target = \"\";\r\n this.quantity = \"0\";\r\n this.data_size = \"0\";\r\n this.data = new Uint8Array();\r\n this.data_root = \"\";\r\n this.reward = \"0\";\r\n this.signature = \"\";\r\n Object.assign(this, attributes);\r\n // If something passes in a Tx that has been toJSON'ed and back,\r\n // or where the data was filled in from /tx/data endpoint.\r\n // data will be b64url encoded, so decode it.\r\n if (typeof this.data === \"string\") {\r\n this.data = ArweaveUtils.b64UrlToBuffer(this.data);\r\n }\r\n if (attributes.tags) {\r\n this.tags = attributes.tags.map((tag) => {\r\n return new Tag(tag.name, tag.value);\r\n });\r\n }\r\n }\r\n addTag(name, value) {\r\n this.tags.push(new Tag(ArweaveUtils.stringToB64Url(name), ArweaveUtils.stringToB64Url(value)));\r\n }\r\n toJSON() {\r\n return {\r\n format: this.format,\r\n id: this.id,\r\n last_tx: this.last_tx,\r\n owner: this.owner,\r\n tags: this.tags,\r\n target: this.target,\r\n quantity: this.quantity,\r\n data: ArweaveUtils.bufferTob64Url(this.data),\r\n data_size: this.data_size,\r\n data_root: this.data_root,\r\n data_tree: this.data_tree,\r\n reward: this.reward,\r\n signature: this.signature,\r\n };\r\n }\r\n setOwner(owner) {\r\n this.owner = owner;\r\n }\r\n setSignature({ id, owner, reward, tags, signature, }) {\r\n this.id = id;\r\n this.owner = owner;\r\n if (reward)\r\n this.reward = reward;\r\n if (tags)\r\n this.tags = tags;\r\n this.signature = signature;\r\n }\r\n async prepareChunks(data) {\r\n // Note: we *do not* use `this.data`, the caller may be\r\n // operating on a transaction with an zero length data field.\r\n // This function computes the chunks for the data passed in and\r\n // assigns the result to this transaction. It should not read the\r\n // data *from* this transaction.\r\n if (!this.chunks && data.byteLength > 0) {\r\n this.chunks = await (0, merkle_1.generateTransactionChunks)(data);\r\n this.data_root = ArweaveUtils.bufferTob64Url(this.chunks.data_root);\r\n }\r\n if (!this.chunks && data.byteLength === 0) {\r\n this.chunks = {\r\n chunks: [],\r\n data_root: new Uint8Array(),\r\n proofs: [],\r\n };\r\n this.data_root = \"\";\r\n }\r\n }\r\n // Returns a chunk in a format suitable for posting to /chunk.\r\n // Similar to `prepareChunks()` this does not operate `this.data`,\r\n // instead using the data passed in.\r\n getChunk(idx, data) {\r\n if (!this.chunks) {\r\n throw new Error(`Chunks have not been prepared`);\r\n }\r\n const proof = this.chunks.proofs[idx];\r\n const chunk = this.chunks.chunks[idx];\r\n return {\r\n data_root: this.data_root,\r\n data_size: this.data_size,\r\n data_path: ArweaveUtils.bufferTob64Url(proof.proof),\r\n offset: proof.offset.toString(),\r\n chunk: ArweaveUtils.bufferTob64Url(data.slice(chunk.minByteRange, chunk.maxByteRange)),\r\n };\r\n }\r\n async getSignatureData() {\r\n switch (this.format) {\r\n case 1:\r\n let tags = this.tags.reduce((accumulator, tag) => {\r\n return ArweaveUtils.concatBuffers([\r\n accumulator,\r\n tag.get(\"name\", { decode: true, string: false }),\r\n tag.get(\"value\", { decode: true, string: false }),\r\n ]);\r\n }, new Uint8Array());\r\n return ArweaveUtils.concatBuffers([\r\n this.get(\"owner\", { decode: true, string: false }),\r\n this.get(\"target\", { decode: true, string: false }),\r\n this.get(\"data\", { decode: true, string: false }),\r\n ArweaveUtils.stringToBuffer(this.quantity),\r\n ArweaveUtils.stringToBuffer(this.reward),\r\n this.get(\"last_tx\", { decode: true, string: false }),\r\n tags,\r\n ]);\r\n case 2:\r\n if (!this.data_root) {\r\n await this.prepareChunks(this.data);\r\n }\r\n const tagList = this.tags.map((tag) => [\r\n tag.get(\"name\", { decode: true, string: false }),\r\n tag.get(\"value\", { decode: true, string: false }),\r\n ]);\r\n return await (0, deepHash_1.default)([\r\n ArweaveUtils.stringToBuffer(this.format.toString()),\r\n this.get(\"owner\", { decode: true, string: false }),\r\n this.get(\"target\", { decode: true, string: false }),\r\n ArweaveUtils.stringToBuffer(this.quantity),\r\n ArweaveUtils.stringToBuffer(this.reward),\r\n this.get(\"last_tx\", { decode: true, string: false }),\r\n tagList,\r\n ArweaveUtils.stringToBuffer(this.data_size),\r\n this.get(\"data_root\", { decode: true, string: false }),\r\n ]);\r\n default:\r\n throw new Error(`Unexpected transaction format: ${this.format}`);\r\n }\r\n }\r\n}\r\nexports.default = Transaction;\r\n//# sourceMappingURL=transaction.js.map","// 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","export default {};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleLoadStart = handleLoadStart;\nexports.handleCanPlay = handleCanPlay;\nexports.handleWaiting = handleWaiting;\nexports.handleCanPlayThrough = handleCanPlayThrough;\nexports.handlePlaying = handlePlaying;\nexports.handlePlay = handlePlay;\nexports.handlePause = handlePause;\nexports.handleEnd = handleEnd;\nexports.handleSeeking = handleSeeking;\nexports.handleSeeked = handleSeeked;\nexports.handleDurationChange = handleDurationChange;\nexports.handleTimeUpdate = handleTimeUpdate;\nexports.handleVolumeChange = handleVolumeChange;\nexports.handleProgressChange = handleProgressChange;\nexports.handleRateChange = handleRateChange;\nexports.handleSuspend = handleSuspend;\nexports.handleAbort = handleAbort;\nexports.handleEmptied = handleEmptied;\nexports.handleStalled = handleStalled;\nexports.handleLoadedMetaData = handleLoadedMetaData;\nexports.handleLoadedData = handleLoadedData;\nexports.handleResize = handleResize;\nexports.handleError = handleError;\nexports.handleSeekingTime = handleSeekingTime;\nexports.handleEndSeeking = handleEndSeeking;\nexports.activateTextTrack = activateTextTrack;\nexports.ACTIVATE_TEXT_TRACK = exports.ERROR = exports.RESIZE = exports.LOADED_DATA = exports.LOADED_META_DATA = exports.STALLED = exports.EMPTIED = exports.ABORT = exports.SUSPEND = exports.RATE_CHANGE = exports.PROGRESS_CHANGE = exports.VOLUME_CHANGE = exports.TIME_UPDATE = exports.DURATION_CHANGE = exports.END_SEEKING = exports.SEEKING_TIME = exports.SEEKED = exports.SEEKING = exports.END = exports.PAUSE = exports.PLAY = exports.PLAYING = exports.CAN_PLAY_THROUGH = exports.WAITING = exports.CAN_PLAY = exports.LOAD_START = void 0;\nvar LOAD_START = 'video-react/LOAD_START';\nexports.LOAD_START = LOAD_START;\nvar CAN_PLAY = 'video-react/CAN_PLAY';\nexports.CAN_PLAY = CAN_PLAY;\nvar WAITING = 'video-react/WAITING';\nexports.WAITING = WAITING;\nvar CAN_PLAY_THROUGH = 'video-react/CAN_PLAY_THROUGH';\nexports.CAN_PLAY_THROUGH = CAN_PLAY_THROUGH;\nvar PLAYING = 'video-react/PLAYING';\nexports.PLAYING = PLAYING;\nvar PLAY = 'video-react/PLAY';\nexports.PLAY = PLAY;\nvar PAUSE = 'video-react/PAUSE';\nexports.PAUSE = PAUSE;\nvar END = 'video-react/END';\nexports.END = END;\nvar SEEKING = 'video-react/SEEKING';\nexports.SEEKING = SEEKING;\nvar SEEKED = 'video-react/SEEKED';\nexports.SEEKED = SEEKED;\nvar SEEKING_TIME = 'video-react/SEEKING_TIME';\nexports.SEEKING_TIME = SEEKING_TIME;\nvar END_SEEKING = 'video-react/END_SEEKING';\nexports.END_SEEKING = END_SEEKING;\nvar DURATION_CHANGE = 'video-react/DURATION_CHANGE';\nexports.DURATION_CHANGE = DURATION_CHANGE;\nvar TIME_UPDATE = 'video-react/TIME_UPDATE';\nexports.TIME_UPDATE = TIME_UPDATE;\nvar VOLUME_CHANGE = 'video-react/VOLUME_CHANGE';\nexports.VOLUME_CHANGE = VOLUME_CHANGE;\nvar PROGRESS_CHANGE = 'video-react/PROGRESS_CHANGE';\nexports.PROGRESS_CHANGE = PROGRESS_CHANGE;\nvar RATE_CHANGE = 'video-react/RATE_CHANGE';\nexports.RATE_CHANGE = RATE_CHANGE;\nvar SUSPEND = 'video-react/SUSPEND';\nexports.SUSPEND = SUSPEND;\nvar ABORT = 'video-react/ABORT';\nexports.ABORT = ABORT;\nvar EMPTIED = 'video-react/EMPTIED';\nexports.EMPTIED = EMPTIED;\nvar STALLED = 'video-react/STALLED';\nexports.STALLED = STALLED;\nvar LOADED_META_DATA = 'video-react/LOADED_META_DATA';\nexports.LOADED_META_DATA = LOADED_META_DATA;\nvar LOADED_DATA = 'video-react/LOADED_DATA';\nexports.LOADED_DATA = LOADED_DATA;\nvar RESIZE = 'video-react/RESIZE';\nexports.RESIZE = RESIZE;\nvar ERROR = 'video-react/ERROR';\nexports.ERROR = ERROR;\nvar ACTIVATE_TEXT_TRACK = 'video-react/ACTIVATE_TEXT_TRACK';\nexports.ACTIVATE_TEXT_TRACK = ACTIVATE_TEXT_TRACK;\n\nfunction handleLoadStart(videoProps) {\n return {\n type: LOAD_START,\n videoProps: videoProps\n };\n}\n\nfunction handleCanPlay(videoProps) {\n return {\n type: CAN_PLAY,\n videoProps: videoProps\n };\n}\n\nfunction handleWaiting(videoProps) {\n return {\n type: WAITING,\n videoProps: videoProps\n };\n}\n\nfunction handleCanPlayThrough(videoProps) {\n return {\n type: CAN_PLAY_THROUGH,\n videoProps: videoProps\n };\n}\n\nfunction handlePlaying(videoProps) {\n return {\n type: PLAYING,\n videoProps: videoProps\n };\n}\n\nfunction handlePlay(videoProps) {\n return {\n type: PLAY,\n videoProps: videoProps\n };\n}\n\nfunction handlePause(videoProps) {\n return {\n type: PAUSE,\n videoProps: videoProps\n };\n}\n\nfunction handleEnd(videoProps) {\n return {\n type: END,\n videoProps: videoProps\n };\n}\n\nfunction handleSeeking(videoProps) {\n return {\n type: SEEKING,\n videoProps: videoProps\n };\n}\n\nfunction handleSeeked(videoProps) {\n return {\n type: SEEKED,\n videoProps: videoProps\n };\n}\n\nfunction handleDurationChange(videoProps) {\n return {\n type: DURATION_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleTimeUpdate(videoProps) {\n return {\n type: TIME_UPDATE,\n videoProps: videoProps\n };\n}\n\nfunction handleVolumeChange(videoProps) {\n return {\n type: VOLUME_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleProgressChange(videoProps) {\n return {\n type: PROGRESS_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleRateChange(videoProps) {\n return {\n type: RATE_CHANGE,\n videoProps: videoProps\n };\n}\n\nfunction handleSuspend(videoProps) {\n return {\n type: SUSPEND,\n videoProps: videoProps\n };\n}\n\nfunction handleAbort(videoProps) {\n return {\n type: ABORT,\n videoProps: videoProps\n };\n}\n\nfunction handleEmptied(videoProps) {\n return {\n type: EMPTIED,\n videoProps: videoProps\n };\n}\n\nfunction handleStalled(videoProps) {\n return {\n type: STALLED,\n videoProps: videoProps\n };\n}\n\nfunction handleLoadedMetaData(videoProps) {\n return {\n type: LOADED_META_DATA,\n videoProps: videoProps\n };\n}\n\nfunction handleLoadedData(videoProps) {\n return {\n type: LOADED_DATA,\n videoProps: videoProps\n };\n}\n\nfunction handleResize(videoProps) {\n return {\n type: RESIZE,\n videoProps: videoProps\n };\n}\n\nfunction handleError(videoProps) {\n return {\n type: ERROR,\n videoProps: videoProps\n };\n}\n\nfunction handleSeekingTime(time) {\n return {\n type: SEEKING_TIME,\n time: time\n };\n}\n\nfunction handleEndSeeking(time) {\n return {\n type: END_SEEKING,\n time: time\n };\n}\n\nfunction activateTextTrack(textTrack) {\n return {\n type: ACTIVATE_TEXT_TRACK,\n textTrack: textTrack\n };\n}","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar Dom = _interopRequireWildcard(require(\"../utils/dom\"));\n\nvar propTypes = {\n className: _propTypes[\"default\"].string,\n onMouseDown: _propTypes[\"default\"].func,\n onMouseMove: _propTypes[\"default\"].func,\n stepForward: _propTypes[\"default\"].func,\n stepBack: _propTypes[\"default\"].func,\n sliderActive: _propTypes[\"default\"].func,\n sliderInactive: _propTypes[\"default\"].func,\n onMouseUp: _propTypes[\"default\"].func,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n onClick: _propTypes[\"default\"].func,\n getPercent: _propTypes[\"default\"].func,\n vertical: _propTypes[\"default\"].bool,\n children: _propTypes[\"default\"].node,\n label: _propTypes[\"default\"].string,\n valuenow: _propTypes[\"default\"].string,\n valuetext: _propTypes[\"default\"].string\n};\n\nvar Slider =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Slider, _Component);\n\n function Slider(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Slider);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Slider).call(this, props, context));\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseUp = _this.handleMouseUp.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.calculateDistance = _this.calculateDistance.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getProgress = _this.getProgress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderChildren = _this.renderChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.state = {\n active: false\n };\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Slider, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n document.removeEventListener('keydown', this.handleKeyPress, true);\n }\n }, {\n key: \"getProgress\",\n value: function getProgress() {\n var getPercent = this.props.getPercent;\n\n if (!getPercent) {\n return 0;\n }\n\n var progress = getPercent(); // Protect against no duration and other division issues\n\n if (typeof progress !== 'number' || progress < 0 || progress === Infinity) {\n progress = 0;\n }\n\n return progress;\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown(event) {\n var onMouseDown = this.props.onMouseDown; // event.preventDefault();\n // event.stopPropagation();\n\n document.addEventListener('mousemove', this.handleMouseMove, true);\n document.addEventListener('mouseup', this.handleMouseUp, true);\n document.addEventListener('touchmove', this.handleMouseMove, true);\n document.addEventListener('touchend', this.handleMouseUp, true);\n this.setState({\n active: true\n });\n\n if (this.props.sliderActive) {\n this.props.sliderActive(event);\n }\n\n this.handleMouseMove(event);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var onMouseMove = this.props.onMouseMove;\n\n if (onMouseMove) {\n onMouseMove(event);\n }\n }\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(event) {\n // On iOS safari, a subsequent mouseup event will be fired after touchend.\n // Its weird event positions make the player seek a wrong time.\n // calling preventDefault (at touchend phase) will prevent the mouseup event\n event.preventDefault();\n var onMouseUp = this.props.onMouseUp;\n document.removeEventListener('mousemove', this.handleMouseMove, true);\n document.removeEventListener('mouseup', this.handleMouseUp, true);\n document.removeEventListener('touchmove', this.handleMouseMove, true);\n document.removeEventListener('touchend', this.handleMouseUp, true);\n this.setState({\n active: false\n });\n\n if (this.props.sliderInactive) {\n this.props.sliderInactive(event);\n }\n\n if (onMouseUp) {\n onMouseUp(event);\n }\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n document.addEventListener('keydown', this.handleKeyPress, true);\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeyPress, true);\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(event) {\n if (event.which === 37 || event.which === 40) {\n // Left and Down Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepBack();\n } else if (event.which === 38 || event.which === 39) {\n // Up and Right Arrows\n event.preventDefault();\n event.stopPropagation();\n this.stepForward();\n }\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n if (this.props.stepForward) {\n this.props.stepForward();\n }\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n if (this.props.stepBack) {\n this.props.stepBack();\n }\n }\n }, {\n key: \"calculateDistance\",\n value: function calculateDistance(event) {\n var node = this.slider;\n var position = Dom.getPointerPosition(node, event);\n\n if (this.props.vertical) {\n return position.y;\n }\n\n return position.x;\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var progress = this.getProgress();\n var percentage = \"\".concat((progress * 100).toFixed(2), \"%\");\n return _react[\"default\"].Children.map(this.props.children, function (child) {\n return _react[\"default\"].cloneElement(child, {\n progress: progress,\n percentage: percentage\n });\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n vertical = _this$props.vertical,\n label = _this$props.label,\n valuenow = _this$props.valuenow,\n valuetext = _this$props.valuetext;\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(this.props.className, {\n 'video-react-slider-vertical': vertical,\n 'video-react-slider-horizontal': !vertical,\n 'video-react-sliding': this.state.active\n }, 'video-react-slider'),\n ref: function ref(c) {\n _this2.slider = c;\n },\n tabIndex: \"0\",\n role: \"slider\",\n onMouseDown: this.handleMouseDown,\n onTouchStart: this.handleMouseDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n \"aria-label\": label || '',\n \"aria-valuenow\": valuenow || '',\n \"aria-valuetext\": valuetext || '',\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100\n }, this.renderChildren());\n }\n }]);\n return Slider;\n}(_react.Component);\n\nexports[\"default\"] = Slider;\nSlider.propTypes = propTypes;\nSlider.displayName = 'Slider';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"../menu/MenuButton\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n rates: _propTypes[\"default\"].array,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n rates: [2, 1.5, 1.25, 1, 0.5, 0.25]\n};\n\nvar PlaybackRateMenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlaybackRateMenuButton, _Component);\n\n function PlaybackRateMenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlaybackRateMenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlaybackRateMenuButton).call(this, props, context));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlaybackRateMenuButton, [{\n key: \"handleSelectItem\",\n value: function handleSelectItem(index) {\n var _this$props = this.props,\n rates = _this$props.rates,\n actions = _this$props.actions;\n\n if (index >= 0 && index < rates.length) {\n actions.changeRate(rates[index]);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n rates = _this$props2.rates,\n player = _this$props2.player;\n var items = rates.map(function (rate) {\n return {\n label: \"\".concat(rate, \"x\"),\n value: rate\n };\n });\n var selectedIndex = rates.indexOf(player.playbackRate) || 0;\n return _react[\"default\"].createElement(_MenuButton[\"default\"], {\n className: (0, _classnames[\"default\"])('video-react-playback-rate', this.props.className),\n onSelectItem: this.handleSelectItem,\n items: items,\n selectedIndex: selectedIndex\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Playback Rate\"), _react[\"default\"].createElement(\"div\", {\n className: \"video-react-playback-rate-value\"\n }, \"\".concat(player.playbackRate.toFixed(2), \"x\")));\n }\n }]);\n return PlaybackRateMenuButton;\n}(_react.Component);\n\nPlaybackRateMenuButton.propTypes = propTypes;\nPlaybackRateMenuButton.defaultProps = defaultProps;\nPlaybackRateMenuButton.displayName = 'PlaybackRateMenuButton';\nvar _default = PlaybackRateMenuButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Menu = _interopRequireDefault(require(\"./Menu\"));\n\nvar _MenuItem = _interopRequireDefault(require(\"./MenuItem\"));\n\nvar _ClickableComponent = _interopRequireDefault(require(\"../ClickableComponent\"));\n\nvar propTypes = {\n inline: _propTypes[\"default\"].bool,\n items: _propTypes[\"default\"].array,\n className: _propTypes[\"default\"].string,\n onSelectItem: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].any,\n selectedIndex: _propTypes[\"default\"].number\n};\n\nvar MenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(MenuButton, _Component);\n\n function MenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, MenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(MenuButton).call(this, props, context));\n _this.state = {\n active: false,\n activateIndex: props.selectedIndex || 0\n };\n _this.commitSelection = _this.commitSelection.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.activateMenuItem = _this.activateMenuItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderMenu = _this.renderMenu.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleUpArrow = _this.handleUpArrow.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDownArrow = _this.handleDownArrow.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEscape = _this.handleEscape.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleReturn = _this.handleReturn.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTab = _this.handleTab.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleIndexChange = _this.handleIndexChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(MenuButton, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.selectedIndex !== this.props.selectedIndex) {\n this.activateMenuItem(this.props.selectedIndex);\n }\n }\n }, {\n key: \"commitSelection\",\n value: function commitSelection(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n }, {\n key: \"activateMenuItem\",\n value: function activateMenuItem(index) {\n this.setState({\n activateIndex: index\n });\n this.handleIndexChange(index);\n }\n }, {\n key: \"handleIndexChange\",\n value: function handleIndexChange(index) {\n var onSelectItem = this.props.onSelectItem;\n onSelectItem(index);\n }\n }, {\n key: \"handleClick\",\n value: function handleClick() {\n this.setState(function (prevState) {\n return {\n active: !prevState.active\n };\n });\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n document.addEventListener('keydown', this.handleKeyPress);\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n active: false\n });\n document.removeEventListener('keydown', this.handleKeyPress);\n }\n }, {\n key: \"handleUpArrow\",\n value: function handleUpArrow(e) {\n var items = this.props.items;\n\n if (this.state.active) {\n e.preventDefault();\n var newIndex = this.state.activateIndex - 1;\n\n if (newIndex < 0) {\n newIndex = items.length ? items.length - 1 : 0;\n }\n\n this.activateMenuItem(newIndex);\n }\n }\n }, {\n key: \"handleDownArrow\",\n value: function handleDownArrow(e) {\n var items = this.props.items;\n\n if (this.state.active) {\n e.preventDefault();\n var newIndex = this.state.activateIndex + 1;\n\n if (newIndex >= items.length) {\n newIndex = 0;\n }\n\n this.activateMenuItem(newIndex);\n }\n }\n }, {\n key: \"handleTab\",\n value: function handleTab(e) {\n if (this.state.active) {\n e.preventDefault();\n this.commitSelection(this.state.activateIndex);\n }\n }\n }, {\n key: \"handleReturn\",\n value: function handleReturn(e) {\n e.preventDefault();\n\n if (this.state.active) {\n this.commitSelection(this.state.activateIndex);\n } else {\n this.setState({\n active: true\n });\n }\n }\n }, {\n key: \"handleEscape\",\n value: function handleEscape() {\n this.setState({\n active: false,\n activateIndex: 0\n });\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(event) {\n // Escape (27) key\n if (event.which === 27) {\n this.handleEscape(event);\n } else if (event.which === 9) {\n // Tab (9) key\n this.handleTab(event);\n } else if (event.which === 13) {\n // Enter (13) key\n this.handleReturn(event);\n } else if (event.which === 38) {\n // Up (38) key\n this.handleUpArrow(event);\n } else if (event.which === 40) {\n // Down (40) key press\n this.handleDownArrow(event);\n }\n }\n }, {\n key: \"handleSelectItem\",\n value: function handleSelectItem(i) {\n this.commitSelection(i);\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this2 = this;\n\n if (!this.state.active) {\n return null;\n }\n\n var items = this.props.items;\n return _react[\"default\"].createElement(_Menu[\"default\"], null, items.map(function (item, i) {\n return _react[\"default\"].createElement(_MenuItem[\"default\"], {\n item: item,\n index: i,\n onSelectItem: _this2.handleSelectItem,\n activateIndex: _this2.state.activateIndex,\n key: \"item-\".concat(i++)\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n inline = _this$props.inline,\n className = _this$props.className;\n return _react[\"default\"].createElement(_ClickableComponent[\"default\"], {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline,\n 'video-react-menu-button-active': this.state.active\n }, 'video-react-control video-react-button video-react-menu-button'),\n role: \"button\",\n tabIndex: \"0\",\n ref: function ref(c) {\n _this3.menuButton = c;\n },\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, this.props.children, this.renderMenu());\n }\n }]);\n return MenuButton;\n}(_react.Component);\n\nexports[\"default\"] = MenuButton;\nMenuButton.propTypes = propTypes;\nMenuButton.displayName = 'MenuButton';","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\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\n * classified as numbers, use the `_.isFinite` method.\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 a number, 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) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","import { getGlobalObject } from './global';\nimport { isString } from './is';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem: unknown, keyAttrs?: string[]): string {\n type SimpleNode = {\n parentNode: SimpleNode;\n } | null;\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const MAX_OUTPUT_LEN = 80;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n const allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n const global = getGlobalObject<Window>();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n","import { isDebugBuild } from './env';\nimport { getGlobalObject } from './global';\nimport { logger } from './logger';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch(): boolean {\n if (!('fetch' in getGlobalObject<Window>())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func: Function): boolean {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (!supportsFetch()) {\n return false;\n }\n\n const global = getGlobalObject<Window>();\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n if (isDebugBuild()) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n const global = getGlobalObject<Window>();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = (global as any).chrome;\n const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n const hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n","// tslint:disable:no-bitwise\nconst alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\n// Build a lookup table for decoding.\nconst lookupTable = Object.create(null);\nfor (let i = 0; i < alphabet.length; i++) {\n lookupTable[alphabet[i]] = i;\n}\n// Add aliases for rfc4648.\nlookupTable['0'] = lookupTable.o;\nlookupTable['1'] = lookupTable.i;\n/**\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport function encode(input) {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n // The output string in base32.\n let output = '';\n function encodeByte(byte) {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n }\n else {\n // no carry\n bits = (byte << skip) & 248;\n }\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n if (skip < 4) {\n // produce a character\n output += alphabet[bits >> 3];\n skip += 5;\n }\n return 0;\n }\n for (let i = 0; i < input.length;) {\n i += encodeByte(input[i]);\n }\n return output + (skip < 0 ? alphabet[bits >> 3] : '');\n}\n/**\n * @param input The base32 encoded string to decode.\n */\nexport function decode(input) {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n function decodeChar(char) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = lookupTable[char.toLowerCase()];\n if (val === undefined) {\n throw new Error(`Invalid character: ${JSON.stringify(char)}`);\n }\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n }\n else {\n byte = 0;\n }\n }\n }\n for (const c of input) {\n decodeChar(c);\n }\n return output.slice(0, o);\n}\n//# sourceMappingURL=base32.js.map","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","\"use strict\";var sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(a){this.toString=function(){return\"CORRUPT: \"+this.message};this.message=a},invalid:function(a){this.toString=function(){return\"INVALID: \"+this.message};this.message=a},bug:function(a){this.toString=function(){return\"BUG: \"+this.message};this.message=a},notReady:function(a){this.toString=function(){return\"NOT READY: \"+this.message};this.message=a}}};\nsjcl.cipher.aes=function(a){this.s[0][0][0]||this.O();var b,c,d,e,f=this.s[0][4],g=this.s[1];b=a.length;var h=1;if(4!==b&&6!==b&&8!==b)throw new sjcl.exception.invalid(\"invalid aes key size\");this.b=[d=a.slice(0),e=[]];for(a=b;a<4*b+28;a++){c=d[a-1];if(0===a%b||8===b&&4===a%b)c=f[c>>>24]<<24^f[c>>16&255]<<16^f[c>>8&255]<<8^f[c&255],0===a%b&&(c=c<<8^c>>>24^h<<24,h=h<<1^283*(h>>7));d[a]=d[a-b]^c}for(b=0;a;b++,a--)c=d[b&3?a:a-4],e[b]=4>=a||4>b?c:g[0][f[c>>>24]]^g[1][f[c>>16&255]]^g[2][f[c>>8&255]]^g[3][f[c&\n255]]};\nsjcl.cipher.aes.prototype={encrypt:function(a){return t(this,a,0)},decrypt:function(a){return t(this,a,1)},s:[[[],[],[],[],[]],[[],[],[],[],[]]],O:function(){var a=this.s[0],b=this.s[1],c=a[4],d=b[4],e,f,g,h=[],k=[],l,n,m,p;for(e=0;0x100>e;e++)k[(h[e]=e<<1^283*(e>>7))^e]=e;for(f=g=0;!c[f];f^=l||1,g=k[g]||1)for(m=g^g<<1^g<<2^g<<3^g<<4,m=m>>8^m&255^99,c[f]=m,d[m]=f,n=h[e=h[l=h[f]]],p=0x1010101*n^0x10001*e^0x101*l^0x1010100*f,n=0x101*h[m]^0x1010100*m,e=0;4>e;e++)a[e][f]=n=n<<24^n>>>8,b[e][m]=p=p<<24^p>>>8;for(e=\n0;5>e;e++)a[e]=a[e].slice(0),b[e]=b[e].slice(0)}};\nfunction t(a,b,c){if(4!==b.length)throw new sjcl.exception.invalid(\"invalid aes block size\");var d=a.b[c],e=b[0]^d[0],f=b[c?3:1]^d[1],g=b[2]^d[2];b=b[c?1:3]^d[3];var h,k,l,n=d.length/4-2,m,p=4,r=[0,0,0,0];h=a.s[c];a=h[0];var q=h[1],v=h[2],w=h[3],x=h[4];for(m=0;m<n;m++)h=a[e>>>24]^q[f>>16&255]^v[g>>8&255]^w[b&255]^d[p],k=a[f>>>24]^q[g>>16&255]^v[b>>8&255]^w[e&255]^d[p+1],l=a[g>>>24]^q[b>>16&255]^v[e>>8&255]^w[f&255]^d[p+2],b=a[b>>>24]^q[e>>16&255]^v[f>>8&255]^w[g&255]^d[p+3],p+=4,e=h,f=k,g=l;for(m=\n0;4>m;m++)r[c?3&-m:m]=x[e>>>24]<<24^x[f>>16&255]<<16^x[g>>8&255]<<8^x[b&255]^d[p++],h=e,e=f,f=g,g=b,b=h;return r}\nsjcl.bitArray={bitSlice:function(a,b,c){a=sjcl.bitArray.$(a.slice(b/32),32-(b&31)).slice(1);return void 0===c?a:sjcl.bitArray.clamp(a,c-b)},extract:function(a,b,c){var d=Math.floor(-b-c&31);return((b+c-1^b)&-32?a[b/32|0]<<32-d^a[b/32+1|0]>>>d:a[b/32|0]>>>d)&(1<<c)-1},concat:function(a,b){if(0===a.length||0===b.length)return a.concat(b);var c=a[a.length-1],d=sjcl.bitArray.getPartial(c);return 32===d?a.concat(b):sjcl.bitArray.$(b,d,c|0,a.slice(0,a.length-1))},bitLength:function(a){var b=a.length;return 0===\nb?0:32*(b-1)+sjcl.bitArray.getPartial(a[b-1])},clamp:function(a,b){if(32*a.length<b)return a;a=a.slice(0,Math.ceil(b/32));var c=a.length;b=b&31;0<c&&b&&(a[c-1]=sjcl.bitArray.partial(b,a[c-1]&2147483648>>b-1,1));return a},partial:function(a,b,c){return 32===a?b:(c?b|0:b<<32-a)+0x10000000000*a},getPartial:function(a){return Math.round(a/0x10000000000)||32},equal:function(a,b){if(sjcl.bitArray.bitLength(a)!==sjcl.bitArray.bitLength(b))return!1;var c=0,d;for(d=0;d<a.length;d++)c|=a[d]^b[d];return 0===\nc},$:function(a,b,c,d){var e;e=0;for(void 0===d&&(d=[]);32<=b;b-=32)d.push(c),c=0;if(0===b)return d.concat(a);for(e=0;e<a.length;e++)d.push(c|a[e]>>>b),c=a[e]<<32-b;e=a.length?a[a.length-1]:0;a=sjcl.bitArray.getPartial(e);d.push(sjcl.bitArray.partial(b+a&31,32<b+a?c:d.pop(),1));return d},i:function(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]},byteswapM:function(a){var b,c;for(b=0;b<a.length;++b)c=a[b],a[b]=c>>>24|c>>>8&0xff00|(c&0xff00)<<8|c<<24;return a}};\nsjcl.codec.utf8String={fromBits:function(a){var b=\"\",c=sjcl.bitArray.bitLength(a),d,e;for(d=0;d<c/8;d++)0===(d&3)&&(e=a[d/4]),b+=String.fromCharCode(e>>>8>>>8>>>8),e<<=8;return decodeURIComponent(escape(b))},toBits:function(a){a=unescape(encodeURIComponent(a));var b=[],c,d=0;for(c=0;c<a.length;c++)d=d<<8|a.charCodeAt(c),3===(c&3)&&(b.push(d),d=0);c&3&&b.push(sjcl.bitArray.partial(8*(c&3),d));return b}};\nsjcl.codec.hex={fromBits:function(a){var b=\"\",c;for(c=0;c<a.length;c++)b+=((a[c]|0)+0xf00000000000).toString(16).substr(4);return b.substr(0,sjcl.bitArray.bitLength(a)/4)},toBits:function(a){var b,c=[],d;a=a.replace(/\\s|0x/g,\"\");d=a.length;a=a+\"00000000\";for(b=0;b<a.length;b+=8)c.push(parseInt(a.substr(b,8),16)^0);return sjcl.bitArray.clamp(c,4*d)}};\nsjcl.codec.base32={B:\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",X:\"0123456789ABCDEFGHIJKLMNOPQRSTUV\",BITS:32,BASE:5,REMAINING:27,fromBits:function(a,b,c){var d=sjcl.codec.base32.BASE,e=sjcl.codec.base32.REMAINING,f=\"\",g=0,h=sjcl.codec.base32.B,k=0,l=sjcl.bitArray.bitLength(a);c&&(h=sjcl.codec.base32.X);for(c=0;f.length*d<l;)f+=h.charAt((k^a[c]>>>g)>>>e),g<d?(k=a[c]<<d-g,g+=e,c++):(k<<=d,g-=d);for(;f.length&7&&!b;)f+=\"=\";return f},toBits:function(a,b){a=a.replace(/\\s|=/g,\"\").toUpperCase();var c=sjcl.codec.base32.BITS,\nd=sjcl.codec.base32.BASE,e=sjcl.codec.base32.REMAINING,f=[],g,h=0,k=sjcl.codec.base32.B,l=0,n,m=\"base32\";b&&(k=sjcl.codec.base32.X,m=\"base32hex\");for(g=0;g<a.length;g++){n=k.indexOf(a.charAt(g));if(0>n){if(!b)try{return sjcl.codec.base32hex.toBits(a)}catch(p){}throw new sjcl.exception.invalid(\"this isn't \"+m+\"!\");}h>e?(h-=e,f.push(l^n>>>h),l=n<<c-h):(h+=d,l^=n<<c-h)}h&56&&f.push(sjcl.bitArray.partial(h&56,l,1));return f}};\nsjcl.codec.base32hex={fromBits:function(a,b){return sjcl.codec.base32.fromBits(a,b,1)},toBits:function(a){return sjcl.codec.base32.toBits(a,1)}};\nsjcl.codec.base64={B:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",fromBits:function(a,b,c){var d=\"\",e=0,f=sjcl.codec.base64.B,g=0,h=sjcl.bitArray.bitLength(a);c&&(f=f.substr(0,62)+\"-_\");for(c=0;6*d.length<h;)d+=f.charAt((g^a[c]>>>e)>>>26),6>e?(g=a[c]<<6-e,e+=26,c++):(g<<=6,e-=6);for(;d.length&3&&!b;)d+=\"=\";return d},toBits:function(a,b){a=a.replace(/\\s|=/g,\"\");var c=[],d,e=0,f=sjcl.codec.base64.B,g=0,h;b&&(f=f.substr(0,62)+\"-_\");for(d=0;d<a.length;d++){h=f.indexOf(a.charAt(d));\nif(0>h)throw new sjcl.exception.invalid(\"this isn't base64!\");26<e?(e-=26,c.push(g^h>>>e),g=h<<32-e):(e+=6,g^=h<<32-e)}e&56&&c.push(sjcl.bitArray.partial(e&56,g,1));return c}};sjcl.codec.base64url={fromBits:function(a){return sjcl.codec.base64.fromBits(a,1,1)},toBits:function(a){return sjcl.codec.base64.toBits(a,1)}};sjcl.hash.sha256=function(a){this.b[0]||this.O();a?(this.F=a.F.slice(0),this.A=a.A.slice(0),this.l=a.l):this.reset()};sjcl.hash.sha256.hash=function(a){return(new sjcl.hash.sha256).update(a).finalize()};\nsjcl.hash.sha256.prototype={blockSize:512,reset:function(){this.F=this.Y.slice(0);this.A=[];this.l=0;return this},update:function(a){\"string\"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));var b,c=this.A=sjcl.bitArray.concat(this.A,a);b=this.l;a=this.l=b+sjcl.bitArray.bitLength(a);if(0x1fffffffffffff<a)throw new sjcl.exception.invalid(\"Cannot hash more than 2^53 - 1 bits\");if(\"undefined\"!==typeof Uint32Array){var d=new Uint32Array(c),e=0;for(b=512+b-(512+b&0x1ff);b<=a;b+=512)u(this,d.subarray(16*e,\n16*(e+1))),e+=1;c.splice(0,16*e)}else for(b=512+b-(512+b&0x1ff);b<=a;b+=512)u(this,c.splice(0,16));return this},finalize:function(){var a,b=this.A,c=this.F,b=sjcl.bitArray.concat(b,[sjcl.bitArray.partial(1,1)]);for(a=b.length+2;a&15;a++)b.push(0);b.push(Math.floor(this.l/0x100000000));for(b.push(this.l|0);b.length;)u(this,b.splice(0,16));this.reset();return c},Y:[],b:[],O:function(){function a(a){return 0x100000000*(a-Math.floor(a))|0}for(var b=0,c=2,d,e;64>b;c++){e=!0;for(d=2;d*d<=c;d++)if(0===c%d){e=\n!1;break}e&&(8>b&&(this.Y[b]=a(Math.pow(c,.5))),this.b[b]=a(Math.pow(c,1/3)),b++)}}};\nfunction u(a,b){var c,d,e,f=a.F,g=a.b,h=f[0],k=f[1],l=f[2],n=f[3],m=f[4],p=f[5],r=f[6],q=f[7];for(c=0;64>c;c++)16>c?d=b[c]:(d=b[c+1&15],e=b[c+14&15],d=b[c&15]=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+b[c&15]+b[c+9&15]|0),d=d+q+(m>>>6^m>>>11^m>>>25^m<<26^m<<21^m<<7)+(r^m&(p^r))+g[c],q=r,r=p,p=m,m=n+d|0,n=l,l=k,k=h,h=d+(k&l^n&(k^l))+(k>>>2^k>>>13^k>>>22^k<<30^k<<19^k<<10)|0;f[0]=f[0]+h|0;f[1]=f[1]+k|0;f[2]=f[2]+l|0;f[3]=f[3]+n|0;f[4]=f[4]+m|0;f[5]=f[5]+p|0;f[6]=f[6]+r|0;f[7]=\nf[7]+q|0}\nsjcl.mode.ccm={name:\"ccm\",G:[],listenProgress:function(a){sjcl.mode.ccm.G.push(a)},unListenProgress:function(a){a=sjcl.mode.ccm.G.indexOf(a);-1<a&&sjcl.mode.ccm.G.splice(a,1)},fa:function(a){var b=sjcl.mode.ccm.G.slice(),c;for(c=0;c<b.length;c+=1)b[c](a)},encrypt:function(a,b,c,d,e){var f,g=b.slice(0),h=sjcl.bitArray,k=h.bitLength(c)/8,l=h.bitLength(g)/8;e=e||64;d=d||[];if(7>k)throw new sjcl.exception.invalid(\"ccm: iv must be at least 7 bytes\");for(f=2;4>f&&l>>>8*f;f++);f<15-k&&(f=15-k);c=h.clamp(c,\n8*(15-f));b=sjcl.mode.ccm.V(a,b,c,d,e,f);g=sjcl.mode.ccm.C(a,g,c,b,e,f);return h.concat(g.data,g.tag)},decrypt:function(a,b,c,d,e){e=e||64;d=d||[];var f=sjcl.bitArray,g=f.bitLength(c)/8,h=f.bitLength(b),k=f.clamp(b,h-e),l=f.bitSlice(b,h-e),h=(h-e)/8;if(7>g)throw new sjcl.exception.invalid(\"ccm: iv must be at least 7 bytes\");for(b=2;4>b&&h>>>8*b;b++);b<15-g&&(b=15-g);c=f.clamp(c,8*(15-b));k=sjcl.mode.ccm.C(a,k,c,l,e,b);a=sjcl.mode.ccm.V(a,k.data,c,d,e,b);if(!f.equal(k.tag,a))throw new sjcl.exception.corrupt(\"ccm: tag doesn't match\");\nreturn k.data},na:function(a,b,c,d,e,f){var g=[],h=sjcl.bitArray,k=h.i;d=[h.partial(8,(b.length?64:0)|d-2<<2|f-1)];d=h.concat(d,c);d[3]|=e;d=a.encrypt(d);if(b.length)for(c=h.bitLength(b)/8,65279>=c?g=[h.partial(16,c)]:0xffffffff>=c&&(g=h.concat([h.partial(16,65534)],[c])),g=h.concat(g,b),b=0;b<g.length;b+=4)d=a.encrypt(k(d,g.slice(b,b+4).concat([0,0,0])));return d},V:function(a,b,c,d,e,f){var g=sjcl.bitArray,h=g.i;e/=8;if(e%2||4>e||16<e)throw new sjcl.exception.invalid(\"ccm: invalid tag length\");\nif(0xffffffff<d.length||0xffffffff<b.length)throw new sjcl.exception.bug(\"ccm: can't deal with 4GiB or more data\");c=sjcl.mode.ccm.na(a,d,c,e,g.bitLength(b)/8,f);for(d=0;d<b.length;d+=4)c=a.encrypt(h(c,b.slice(d,d+4).concat([0,0,0])));return g.clamp(c,8*e)},C:function(a,b,c,d,e,f){var g,h=sjcl.bitArray;g=h.i;var k=b.length,l=h.bitLength(b),n=k/50,m=n;c=h.concat([h.partial(8,f-1)],c).concat([0,0,0]).slice(0,4);d=h.bitSlice(g(d,a.encrypt(c)),0,e);if(!k)return{tag:d,data:[]};for(g=0;g<k;g+=4)g>n&&(sjcl.mode.ccm.fa(g/\nk),n+=m),c[3]++,e=a.encrypt(c),b[g]^=e[0],b[g+1]^=e[1],b[g+2]^=e[2],b[g+3]^=e[3];return{tag:d,data:h.clamp(b,l)}}};\nsjcl.mode.ocb2={name:\"ocb2\",encrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid(\"ocb iv must be 128 bits\");var g,h=sjcl.mode.ocb2.S,k=sjcl.bitArray,l=k.i,n=[0,0,0,0];c=h(a.encrypt(c));var m,p=[];d=d||[];e=e||64;for(g=0;g+4<b.length;g+=4)m=b.slice(g,g+4),n=l(n,m),p=p.concat(l(c,a.encrypt(l(c,m)))),c=h(c);m=b.slice(g);b=k.bitLength(m);g=a.encrypt(l(c,[0,0,0,b]));m=k.clamp(l(m.concat([0,0,0]),g),b);n=l(n,l(m.concat([0,0,0]),g));n=a.encrypt(l(n,l(c,h(c))));\nd.length&&(n=l(n,f?d:sjcl.mode.ocb2.pmac(a,d)));return p.concat(k.concat(m,k.clamp(n,e)))},decrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid(\"ocb iv must be 128 bits\");e=e||64;var g=sjcl.mode.ocb2.S,h=sjcl.bitArray,k=h.i,l=[0,0,0,0],n=g(a.encrypt(c)),m,p,r=sjcl.bitArray.bitLength(b)-e,q=[];d=d||[];for(c=0;c+4<r/32;c+=4)m=k(n,a.decrypt(k(n,b.slice(c,c+4)))),l=k(l,m),q=q.concat(m),n=g(n);p=r-32*c;m=a.encrypt(k(n,[0,0,0,p]));m=k(m,h.clamp(b.slice(c),p).concat([0,\n0,0]));l=k(l,m);l=a.encrypt(k(l,k(n,g(n))));d.length&&(l=k(l,f?d:sjcl.mode.ocb2.pmac(a,d)));if(!h.equal(h.clamp(l,e),h.bitSlice(b,r)))throw new sjcl.exception.corrupt(\"ocb: tag doesn't match\");return q.concat(h.clamp(m,p))},pmac:function(a,b){var c,d=sjcl.mode.ocb2.S,e=sjcl.bitArray,f=e.i,g=[0,0,0,0],h=a.encrypt([0,0,0,0]),h=f(h,d(d(h)));for(c=0;c+4<b.length;c+=4)h=d(h),g=f(g,a.encrypt(f(h,b.slice(c,c+4))));c=b.slice(c);128>e.bitLength(c)&&(h=f(h,d(h)),c=e.concat(c,[-2147483648,0,0,0]));g=f(g,c);\nreturn a.encrypt(f(d(f(h,d(h))),g))},S:function(a){return[a[0]<<1^a[1]>>>31,a[1]<<1^a[2]>>>31,a[2]<<1^a[3]>>>31,a[3]<<1^135*(a[0]>>>31)]}};\nsjcl.mode.gcm={name:\"gcm\",encrypt:function(a,b,c,d,e){var f=b.slice(0);b=sjcl.bitArray;d=d||[];a=sjcl.mode.gcm.C(!0,a,f,d,c,e||128);return b.concat(a.data,a.tag)},decrypt:function(a,b,c,d,e){var f=b.slice(0),g=sjcl.bitArray,h=g.bitLength(f);e=e||128;d=d||[];e<=h?(b=g.bitSlice(f,h-e),f=g.bitSlice(f,0,h-e)):(b=f,f=[]);a=sjcl.mode.gcm.C(!1,a,f,d,c,e);if(!g.equal(a.tag,b))throw new sjcl.exception.corrupt(\"gcm: tag doesn't match\");return a.data},ka:function(a,b){var c,d,e,f,g,h=sjcl.bitArray.i;e=[0,0,\n0,0];f=b.slice(0);for(c=0;128>c;c++){(d=0!==(a[Math.floor(c/32)]&1<<31-c%32))&&(e=h(e,f));g=0!==(f[3]&1);for(d=3;0<d;d--)f[d]=f[d]>>>1|(f[d-1]&1)<<31;f[0]>>>=1;g&&(f[0]^=-0x1f000000)}return e},j:function(a,b,c){var d,e=c.length;b=b.slice(0);for(d=0;d<e;d+=4)b[0]^=0xffffffff&c[d],b[1]^=0xffffffff&c[d+1],b[2]^=0xffffffff&c[d+2],b[3]^=0xffffffff&c[d+3],b=sjcl.mode.gcm.ka(b,a);return b},C:function(a,b,c,d,e,f){var g,h,k,l,n,m,p,r,q=sjcl.bitArray;m=c.length;p=q.bitLength(c);r=q.bitLength(d);h=q.bitLength(e);\ng=b.encrypt([0,0,0,0]);96===h?(e=e.slice(0),e=q.concat(e,[1])):(e=sjcl.mode.gcm.j(g,[0,0,0,0],e),e=sjcl.mode.gcm.j(g,e,[0,0,Math.floor(h/0x100000000),h&0xffffffff]));h=sjcl.mode.gcm.j(g,[0,0,0,0],d);n=e.slice(0);d=h.slice(0);a||(d=sjcl.mode.gcm.j(g,h,c));for(l=0;l<m;l+=4)n[3]++,k=b.encrypt(n),c[l]^=k[0],c[l+1]^=k[1],c[l+2]^=k[2],c[l+3]^=k[3];c=q.clamp(c,p);a&&(d=sjcl.mode.gcm.j(g,h,c));a=[Math.floor(r/0x100000000),r&0xffffffff,Math.floor(p/0x100000000),p&0xffffffff];d=sjcl.mode.gcm.j(g,d,a);k=b.encrypt(e);\nd[0]^=k[0];d[1]^=k[1];d[2]^=k[2];d[3]^=k[3];return{tag:q.bitSlice(d,0,f),data:c}}};sjcl.misc.hmac=function(a,b){this.W=b=b||sjcl.hash.sha256;var c=[[],[]],d,e=b.prototype.blockSize/32;this.w=[new b,new b];a.length>e&&(a=b.hash(a));for(d=0;d<e;d++)c[0][d]=a[d]^909522486,c[1][d]=a[d]^1549556828;this.w[0].update(c[0]);this.w[1].update(c[1]);this.R=new b(this.w[0])};\nsjcl.misc.hmac.prototype.encrypt=sjcl.misc.hmac.prototype.mac=function(a){if(this.aa)throw new sjcl.exception.invalid(\"encrypt on already updated hmac called!\");this.update(a);return this.digest(a)};sjcl.misc.hmac.prototype.reset=function(){this.R=new this.W(this.w[0]);this.aa=!1};sjcl.misc.hmac.prototype.update=function(a){this.aa=!0;this.R.update(a)};sjcl.misc.hmac.prototype.digest=function(){var a=this.R.finalize(),a=(new this.W(this.w[1])).update(a).finalize();this.reset();return a};\nsjcl.misc.pbkdf2=function(a,b,c,d,e){c=c||1E4;if(0>d||0>c)throw new sjcl.exception.invalid(\"invalid params to pbkdf2\");\"string\"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));\"string\"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));e=e||sjcl.misc.hmac;a=new e(a);var f,g,h,k,l=[],n=sjcl.bitArray;for(k=1;32*l.length<(d||1);k++){e=f=a.encrypt(n.concat(b,[k]));for(g=1;g<c;g++)for(f=a.encrypt(f),h=0;h<f.length;h++)e[h]^=f[h];l=l.concat(e)}d&&(l=n.clamp(l,d));return l};\nsjcl.prng=function(a){this.c=[new sjcl.hash.sha256];this.m=[0];this.P=0;this.H={};this.N=0;this.U={};this.Z=this.f=this.o=this.ha=0;this.b=[0,0,0,0,0,0,0,0];this.h=[0,0,0,0];this.L=void 0;this.M=a;this.D=!1;this.K={progress:{},seeded:{}};this.u=this.ga=0;this.I=1;this.J=2;this.ca=0x10000;this.T=[0,48,64,96,128,192,0x100,384,512,768,1024];this.da=3E4;this.ba=80};\nsjcl.prng.prototype={randomWords:function(a,b){var c=[],d;d=this.isReady(b);var e;if(d===this.u)throw new sjcl.exception.notReady(\"generator isn't seeded\");if(d&this.J){d=!(d&this.I);e=[];var f=0,g;this.Z=e[0]=(new Date).valueOf()+this.da;for(g=0;16>g;g++)e.push(0x100000000*Math.random()|0);for(g=0;g<this.c.length&&(e=e.concat(this.c[g].finalize()),f+=this.m[g],this.m[g]=0,d||!(this.P&1<<g));g++);this.P>=1<<this.c.length&&(this.c.push(new sjcl.hash.sha256),this.m.push(0));this.f-=f;f>this.o&&(this.o=\nf);this.P++;this.b=sjcl.hash.sha256.hash(this.b.concat(e));this.L=new sjcl.cipher.aes(this.b);for(d=0;4>d&&(this.h[d]=this.h[d]+1|0,!this.h[d]);d++);}for(d=0;d<a;d+=4)0===(d+1)%this.ca&&y(this),e=z(this),c.push(e[0],e[1],e[2],e[3]);y(this);return c.slice(0,a)},setDefaultParanoia:function(a,b){if(0===a&&\"Setting paranoia=0 will ruin your security; use it only for testing\"!==b)throw new sjcl.exception.invalid(\"Setting paranoia=0 will ruin your security; use it only for testing\");this.M=a},addEntropy:function(a,\nb,c){c=c||\"user\";var d,e,f=(new Date).valueOf(),g=this.H[c],h=this.isReady(),k=0;d=this.U[c];void 0===d&&(d=this.U[c]=this.ha++);void 0===g&&(g=this.H[c]=0);this.H[c]=(this.H[c]+1)%this.c.length;switch(typeof a){case \"number\":void 0===b&&(b=1);this.c[g].update([d,this.N++,1,b,f,1,a|0]);break;case \"object\":c=Object.prototype.toString.call(a);if(\"[object Uint32Array]\"===c){e=[];for(c=0;c<a.length;c++)e.push(a[c]);a=e}else for(\"[object Array]\"!==c&&(k=1),c=0;c<a.length&&!k;c++)\"number\"!==typeof a[c]&&\n(k=1);if(!k){if(void 0===b)for(c=b=0;c<a.length;c++)for(e=a[c];0<e;)b++,e=e>>>1;this.c[g].update([d,this.N++,2,b,f,a.length].concat(a))}break;case \"string\":void 0===b&&(b=a.length);this.c[g].update([d,this.N++,3,b,f,a.length]);this.c[g].update(a);break;default:k=1}if(k)throw new sjcl.exception.bug(\"random: addEntropy only supports number, array of numbers or string\");this.m[g]+=b;this.f+=b;h===this.u&&(this.isReady()!==this.u&&A(\"seeded\",Math.max(this.o,this.f)),A(\"progress\",this.getProgress()))},\nisReady:function(a){a=this.T[void 0!==a?a:this.M];return this.o&&this.o>=a?this.m[0]>this.ba&&(new Date).valueOf()>this.Z?this.J|this.I:this.I:this.f>=a?this.J|this.u:this.u},getProgress:function(a){a=this.T[a?a:this.M];return this.o>=a?1:this.f>a?1:this.f/a},startCollectors:function(){if(!this.D){this.a={loadTimeCollector:B(this,this.ma),mouseCollector:B(this,this.oa),keyboardCollector:B(this,this.la),accelerometerCollector:B(this,this.ea),touchCollector:B(this,this.qa)};if(window.addEventListener)window.addEventListener(\"load\",\nthis.a.loadTimeCollector,!1),window.addEventListener(\"mousemove\",this.a.mouseCollector,!1),window.addEventListener(\"keypress\",this.a.keyboardCollector,!1),window.addEventListener(\"devicemotion\",this.a.accelerometerCollector,!1),window.addEventListener(\"touchmove\",this.a.touchCollector,!1);else if(document.attachEvent)document.attachEvent(\"onload\",this.a.loadTimeCollector),document.attachEvent(\"onmousemove\",this.a.mouseCollector),document.attachEvent(\"keypress\",this.a.keyboardCollector);else throw new sjcl.exception.bug(\"can't attach event\");\nthis.D=!0}},stopCollectors:function(){this.D&&(window.removeEventListener?(window.removeEventListener(\"load\",this.a.loadTimeCollector,!1),window.removeEventListener(\"mousemove\",this.a.mouseCollector,!1),window.removeEventListener(\"keypress\",this.a.keyboardCollector,!1),window.removeEventListener(\"devicemotion\",this.a.accelerometerCollector,!1),window.removeEventListener(\"touchmove\",this.a.touchCollector,!1)):document.detachEvent&&(document.detachEvent(\"onload\",this.a.loadTimeCollector),document.detachEvent(\"onmousemove\",\nthis.a.mouseCollector),document.detachEvent(\"keypress\",this.a.keyboardCollector)),this.D=!1)},addEventListener:function(a,b){this.K[a][this.ga++]=b},removeEventListener:function(a,b){var c,d,e=this.K[a],f=[];for(d in e)e.hasOwnProperty(d)&&e[d]===b&&f.push(d);for(c=0;c<f.length;c++)d=f[c],delete e[d]},la:function(){C(this,1)},oa:function(a){var b,c;try{b=a.x||a.clientX||a.offsetX||0,c=a.y||a.clientY||a.offsetY||0}catch(d){c=b=0}0!=b&&0!=c&&this.addEntropy([b,c],2,\"mouse\");C(this,0)},qa:function(a){a=\na.touches[0]||a.changedTouches[0];this.addEntropy([a.pageX||a.clientX,a.pageY||a.clientY],1,\"touch\");C(this,0)},ma:function(){C(this,2)},ea:function(a){a=a.accelerationIncludingGravity.x||a.accelerationIncludingGravity.y||a.accelerationIncludingGravity.z;if(window.orientation){var b=window.orientation;\"number\"===typeof b&&this.addEntropy(b,1,\"accelerometer\")}a&&this.addEntropy(a,2,\"accelerometer\");C(this,0)}};\nfunction A(a,b){var c,d=sjcl.random.K[a],e=[];for(c in d)d.hasOwnProperty(c)&&e.push(d[c]);for(c=0;c<e.length;c++)e[c](b)}function C(a,b){\"undefined\"!==typeof window&&window.performance&&\"function\"===typeof window.performance.now?a.addEntropy(window.performance.now(),b,\"loadtime\"):a.addEntropy((new Date).valueOf(),b,\"loadtime\")}function y(a){a.b=z(a).concat(z(a));a.L=new sjcl.cipher.aes(a.b)}function z(a){for(var b=0;4>b&&(a.h[b]=a.h[b]+1|0,!a.h[b]);b++);return a.L.encrypt(a.h)}\nfunction B(a,b){return function(){b.apply(a,arguments)}}sjcl.random=new sjcl.prng(6);\na:try{var D,E,F,G;if(G=\"undefined\"!==typeof module&&module.exports){var H;try{H=require(\"crypto\")}catch(a){H=null}G=E=H}if(G&&E.randomBytes)D=E.randomBytes(128),D=new Uint32Array((new Uint8Array(D)).buffer),sjcl.random.addEntropy(D,1024,\"crypto['randomBytes']\");else if(\"undefined\"!==typeof window&&\"undefined\"!==typeof Uint32Array){F=new Uint32Array(32);if(window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(F);else if(window.msCrypto&&window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(F);\nelse break a;sjcl.random.addEntropy(F,1024,\"crypto['getRandomValues']\")}}catch(a){\"undefined\"!==typeof window&&window.console&&(console.log(\"There was an error collecting entropy from the browser:\"),console.log(a))}\nsjcl.json={defaults:{v:1,iter:1E4,ks:128,ts:64,mode:\"ccm\",adata:\"\",cipher:\"aes\"},ja:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json,f=e.g({iv:sjcl.random.randomWords(4,0)},e.defaults),g;e.g(f,c);c=f.adata;\"string\"===typeof f.salt&&(f.salt=sjcl.codec.base64.toBits(f.salt));\"string\"===typeof f.iv&&(f.iv=sjcl.codec.base64.toBits(f.iv));if(!sjcl.mode[f.mode]||!sjcl.cipher[f.cipher]||\"string\"===typeof a&&100>=f.iter||64!==f.ts&&96!==f.ts&&128!==f.ts||128!==f.ks&&192!==f.ks&&0x100!==f.ks||2>f.iv.length||\n4<f.iv.length)throw new sjcl.exception.invalid(\"json encrypt: invalid parameters\");\"string\"===typeof a?(g=sjcl.misc.cachedPbkdf2(a,f),a=g.key.slice(0,f.ks/32),f.salt=g.salt):sjcl.ecc&&a instanceof sjcl.ecc.elGamal.publicKey&&(g=a.kem(),f.kemtag=g.tag,a=g.key.slice(0,f.ks/32));\"string\"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));\"string\"===typeof c&&(f.adata=c=sjcl.codec.utf8String.toBits(c));g=new sjcl.cipher[f.cipher](a);e.g(d,f);d.key=a;f.ct=\"ccm\"===f.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&&\nb instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.encrypt(g,b,f.iv,c,f.ts):sjcl.mode[f.mode].encrypt(g,b,f.iv,c,f.ts);return f},encrypt:function(a,b,c,d){var e=sjcl.json,f=e.ja.apply(e,arguments);return e.encode(f)},ia:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json;b=e.g(e.g(e.g({},e.defaults),b),c,!0);var f,g;f=b.adata;\"string\"===typeof b.salt&&(b.salt=sjcl.codec.base64.toBits(b.salt));\"string\"===typeof b.iv&&(b.iv=sjcl.codec.base64.toBits(b.iv));if(!sjcl.mode[b.mode]||!sjcl.cipher[b.cipher]||\"string\"===\ntypeof a&&100>=b.iter||64!==b.ts&&96!==b.ts&&128!==b.ts||128!==b.ks&&192!==b.ks&&0x100!==b.ks||!b.iv||2>b.iv.length||4<b.iv.length)throw new sjcl.exception.invalid(\"json decrypt: invalid parameters\");\"string\"===typeof a?(g=sjcl.misc.cachedPbkdf2(a,b),a=g.key.slice(0,b.ks/32),b.salt=g.salt):sjcl.ecc&&a instanceof sjcl.ecc.elGamal.secretKey&&(a=a.unkem(sjcl.codec.base64.toBits(b.kemtag)).slice(0,b.ks/32));\"string\"===typeof f&&(f=sjcl.codec.utf8String.toBits(f));g=new sjcl.cipher[b.cipher](a);f=\"ccm\"===\nb.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&&b.ct instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.decrypt(g,b.ct,b.iv,b.tag,f,b.ts):sjcl.mode[b.mode].decrypt(g,b.ct,b.iv,f,b.ts);e.g(d,b);d.key=a;return 1===c.raw?f:sjcl.codec.utf8String.fromBits(f)},decrypt:function(a,b,c,d){var e=sjcl.json;return e.ia(a,e.decode(b),c,d)},encode:function(a){var b,c=\"{\",d=\"\";for(b in a)if(a.hasOwnProperty(b)){if(!b.match(/^[a-z0-9]+$/i))throw new sjcl.exception.invalid(\"json encode: invalid property name\");c+=d+'\"'+\nb+'\":';d=\",\";switch(typeof a[b]){case \"number\":case \"boolean\":c+=a[b];break;case \"string\":c+='\"'+escape(a[b])+'\"';break;case \"object\":c+='\"'+sjcl.codec.base64.fromBits(a[b],0)+'\"';break;default:throw new sjcl.exception.bug(\"json encode: unsupported type\");}}return c+\"}\"},decode:function(a){a=a.replace(/\\s/g,\"\");if(!a.match(/^\\{.*\\}$/))throw new sjcl.exception.invalid(\"json decode: this isn't json!\");a=a.replace(/^\\{|\\}$/g,\"\").split(/,/);var b={},c,d;for(c=0;c<a.length;c++){if(!(d=a[c].match(/^\\s*(?:([\"']?)([a-z][a-z0-9]*)\\1)\\s*:\\s*(?:(-?\\d+)|\"([a-z0-9+\\/%*_.@=\\-]*)\"|(true|false))$/i)))throw new sjcl.exception.invalid(\"json decode: this isn't json!\");\nnull!=d[3]?b[d[2]]=parseInt(d[3],10):null!=d[4]?b[d[2]]=d[2].match(/^(ct|adata|salt|iv)$/)?sjcl.codec.base64.toBits(d[4]):unescape(d[4]):null!=d[5]&&(b[d[2]]=\"true\"===d[5])}return b},g:function(a,b,c){void 0===a&&(a={});if(void 0===b)return a;for(var d in b)if(b.hasOwnProperty(d)){if(c&&void 0!==a[d]&&a[d]!==b[d])throw new sjcl.exception.invalid(\"required parameter overridden\");a[d]=b[d]}return a},sa:function(a,b){var c={},d;for(d in a)a.hasOwnProperty(d)&&a[d]!==b[d]&&(c[d]=a[d]);return c},ra:function(a,\nb){var c={},d;for(d=0;d<b.length;d++)void 0!==a[b[d]]&&(c[b[d]]=a[b[d]]);return c}};sjcl.encrypt=sjcl.json.encrypt;sjcl.decrypt=sjcl.json.decrypt;sjcl.misc.pa={};sjcl.misc.cachedPbkdf2=function(a,b){var c=sjcl.misc.pa,d;b=b||{};d=b.iter||1E3;c=c[a]=c[a]||{};d=c[d]=c[d]||{firstSalt:b.salt&&b.salt.length?b.salt.slice(0):sjcl.random.randomWords(2,0)};c=void 0===b.salt?d.firstSalt:b.salt;d[c]=d[c]||sjcl.misc.pbkdf2(a,c,b.iter);return{key:d[c].slice(0),salt:c.slice(0)}};\n\"undefined\"!==typeof module&&module.exports&&(module.exports=sjcl);\"function\"===typeof define&&define([],function(){return sjcl});\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","import { TraceparentData } from '@sentry/types';\n\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent: string): TraceparentData | undefined {\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (matches) {\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n }\n return undefined;\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTimeout = exports.SessionFacade = exports.timeoutBetweenRetriesSec = void 0;\nvar CoordinatorService_1 = require(\"./CoordinatorService\");\nvar ClientRegistryService_1 = require(\"./ClientRegistryService\");\nvar utils_1 = require(\"./utils\");\nvar AnalyticsStoreService_1 = require(\"./AnalyticsStoreService\");\nexports.timeoutBetweenRetriesSec = 2;\nvar sdkVersion = 1;\nvar GLOBAL_RETRIES = 20;\nvar COORDINATOR_RETRIES = 20;\nvar CLIENT_REGISTRY_RETRIES = 20;\nvar ANALYTICS_STORE_RETRIES = 20;\nvar SessionFacade = /** @class */ (function () {\n function SessionFacade(sessionContext) {\n this.sessionContext = sessionContext;\n }\n SessionFacade.prototype.trackSession = function () {\n return __awaiter(this, void 0, void 0, function () {\n var result, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.recursiveCall(sdkVersion, GLOBAL_RETRIES)];\n case 1:\n result = _a.sent();\n (0, utils_1.log)(\"trackSession():\", result);\n return [3 /*break*/, 3];\n case 2:\n e_1 = _a.sent();\n (0, utils_1.warn)(\"sessionFacade.trackSession\", e_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n SessionFacade.prototype.recursiveCall = function (sdkVersion, retriesLeft) {\n return __awaiter(this, void 0, void 0, function () {\n var coordinatorResponse, proceedResponse, clientRegistryPrincipal, clientRegistryResponse, analyticsReceiverView, canisterPrincipal, accessToken, analyticsStoreResponse, _a, timeout, analyticsReceiverView, canisterPrincipal, accessToken, analyticsStoreResponse;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.recursiveCallCoordinator(sdkVersion, COORDINATOR_RETRIES)];\n case 1:\n coordinatorResponse = _b.sent();\n (0, utils_1.log)(\"recursive.callCoordinator\", coordinatorResponse);\n if (!(0, utils_1.isOk)(coordinatorResponse)) return [3 /*break*/, 2];\n //registered in coordinator\n return [2 /*return*/, coordinatorResponse.ok];\n case 2:\n if (!(0, utils_1.isProceed)(coordinatorResponse)) return [3 /*break*/, 15];\n proceedResponse = coordinatorResponse.proceed;\n if (!(0, CoordinatorService_1.isProceedToClientRegistry)(proceedResponse)) return [3 /*break*/, 13];\n clientRegistryPrincipal = proceedResponse.clientRegistry.canisterPrincipal;\n return [4 /*yield*/, this.recursiveCallClientRegistry(sdkVersion, clientRegistryPrincipal, CLIENT_REGISTRY_RETRIES)];\n case 3:\n clientRegistryResponse = _b.sent();\n (0, utils_1.log)(\"recursive.callClientRegistry\", clientRegistryResponse);\n if (!(0, utils_1.isProceed)(clientRegistryResponse)) return [3 /*break*/, 6];\n analyticsReceiverView = clientRegistryResponse.proceed;\n if (!analyticsReceiverView) return [3 /*break*/, 5];\n canisterPrincipal = analyticsReceiverView.canisterPrincipal, accessToken = analyticsReceiverView.accessToken;\n return [4 /*yield*/, this.recursiveCallAnalyticsStore(sdkVersion, canisterPrincipal, accessToken, ANALYTICS_STORE_RETRIES)];\n case 4:\n analyticsStoreResponse = _b.sent();\n (0, utils_1.log)(\"recursive.callAnalyticsStore\", analyticsStoreResponse);\n return [2 /*return*/, analyticsStoreResponse];\n case 5: return [2 /*return*/, clientRegistryResponse];\n case 6:\n if (!(0, utils_1.isOk)(clientRegistryResponse)) return [3 /*break*/, 7];\n return [2 /*return*/, clientRegistryResponse];\n case 7:\n if (!(0, utils_1.isErr)(clientRegistryResponse)) return [3 /*break*/, 12];\n _a = clientRegistryResponse.err;\n switch (_a) {\n case \"restart\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 11];\n case 8:\n timeout = (0, exports.getTimeout)(GLOBAL_RETRIES - retriesLeft);\n (0, utils_1.log)(\"sleep for\", timeout, \"ms\");\n return [4 /*yield*/, (0, utils_1.delayPromise)(timeout)];\n case 9:\n _b.sent();\n return [4 /*yield*/, this.recursiveCall(sdkVersion, retriesLeft - 1)];\n case 10: return [2 /*return*/, _b.sent()];\n case 11:\n {\n return [2 /*return*/, clientRegistryResponse];\n }\n _b.label = 12;\n case 12: return [3 /*break*/, 15];\n case 13:\n if (!(0, CoordinatorService_1.isProceedToAnalyticsReceiver)(proceedResponse)) return [3 /*break*/, 15];\n analyticsReceiverView = proceedResponse.analyticsReceiver.view;\n if (!analyticsReceiverView) return [3 /*break*/, 15];\n canisterPrincipal = analyticsReceiverView.canisterPrincipal, accessToken = analyticsReceiverView.accessToken;\n return [4 /*yield*/, this.recursiveCallAnalyticsStore(sdkVersion, canisterPrincipal, accessToken, ANALYTICS_STORE_RETRIES)];\n case 14:\n analyticsStoreResponse = _b.sent();\n (0, utils_1.log)(\"recursive.callAnalyticsStore\", analyticsStoreResponse);\n return [2 /*return*/, analyticsStoreResponse];\n case 15: return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n });\n };\n SessionFacade.prototype.recursiveCallCoordinator = function (sdkVersion, retriesLeft) {\n return __awaiter(this, void 0, void 0, function () {\n var coordinatorResponse, _a, timeout, timeout;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, (0, CoordinatorService_1.getResult)(sdkVersion, this.sessionContext)];\n case 1:\n coordinatorResponse = _b.sent();\n (0, utils_1.log)(\"getResult.coordinator\", coordinatorResponse, { retriesLeft: retriesLeft });\n if (!(0, utils_1.isOk)(coordinatorResponse)) return [3 /*break*/, 2];\n return [2 /*return*/, coordinatorResponse];\n case 2:\n if (!(0, utils_1.isProceed)(coordinatorResponse)) return [3 /*break*/, 3];\n return [2 /*return*/, coordinatorResponse];\n case 3:\n if (!(0, utils_1.isErr)(coordinatorResponse)) return [3 /*break*/, 10];\n _a = coordinatorResponse.err;\n switch (_a) {\n case \"changeTopology\": return [3 /*break*/, 4];\n case \"retry\": return [3 /*break*/, 6];\n }\n return [3 /*break*/, 9];\n case 4:\n timeout = (0, exports.getTimeout)(COORDINATOR_RETRIES - retriesLeft);\n (0, utils_1.log)(\"sleep for\", timeout, \"ms\");\n return [4 /*yield*/, (0, utils_1.delayPromise)(timeout)];\n case 5:\n _b.sent();\n return [2 /*return*/, this.recursiveCallCoordinator(sdkVersion, retriesLeft - 1)];\n case 6:\n if (!(retriesLeft > 0)) return [3 /*break*/, 8];\n timeout = (0, exports.getTimeout)(COORDINATOR_RETRIES - retriesLeft);\n (0, utils_1.log)(\"sleep for\", timeout, \"ms\");\n return [4 /*yield*/, (0, utils_1.delayPromise)(timeout)];\n case 7:\n _b.sent();\n return [2 /*return*/, this.recursiveCallCoordinator(sdkVersion, retriesLeft - 1)];\n case 8: return [3 /*break*/, 10];\n case 9:\n {\n }\n _b.label = 10;\n case 10: return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n });\n };\n SessionFacade.prototype.recursiveCallClientRegistry = function (sdkVersion, clientRegistryPrincipal, retriesLeft) {\n return __awaiter(this, void 0, void 0, function () {\n var clientRegistryResponse, _a, timeout;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, (0, ClientRegistryService_1.getResult)(sdkVersion, this.sessionContext, clientRegistryPrincipal)];\n case 1:\n clientRegistryResponse = _b.sent();\n (0, utils_1.log)(\"getResult.clientRegistry\", clientRegistryResponse, { retriesLeft: retriesLeft });\n if (!(0, utils_1.isProceed)(clientRegistryResponse)) return [3 /*break*/, 2];\n return [2 /*return*/, clientRegistryResponse];\n case 2:\n if (!(0, utils_1.isOk)(clientRegistryResponse)) return [3 /*break*/, 3];\n return [2 /*return*/, clientRegistryResponse];\n case 3:\n if (!(0, utils_1.isErr)(clientRegistryResponse)) return [3 /*break*/, 9];\n _a = clientRegistryResponse.err;\n switch (_a) {\n case \"retry\": return [3 /*break*/, 4];\n case \"restart\": return [3 /*break*/, 7];\n }\n return [3 /*break*/, 8];\n case 4:\n if (!(retriesLeft > 0)) return [3 /*break*/, 6];\n timeout = (0, exports.getTimeout)(CLIENT_REGISTRY_RETRIES - retriesLeft);\n (0, utils_1.log)(\"sleep for\", timeout, \"ms\");\n return [4 /*yield*/, (0, utils_1.delayPromise)(timeout)];\n case 5:\n _b.sent();\n return [2 /*return*/, this.recursiveCallClientRegistry(sdkVersion, clientRegistryPrincipal, retriesLeft - 1)];\n case 6: return [3 /*break*/, 9];\n case 7:\n {\n return [2 /*return*/, (0, utils_1.createErrRestart)()];\n }\n _b.label = 8;\n case 8:\n {\n return [3 /*break*/, 9];\n }\n _b.label = 9;\n case 9: return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n });\n };\n SessionFacade.prototype.recursiveCallAnalyticsStore = function (sdkVersion, canisterPrincipal, accessToken, retriesLeft) {\n return __awaiter(this, void 0, void 0, function () {\n var analyticsStoreResponse, _a, timeout;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, (0, AnalyticsStoreService_1.getResult)(sdkVersion, this.sessionContext, canisterPrincipal, accessToken)];\n case 1:\n analyticsStoreResponse = _b.sent();\n (0, utils_1.log)(\"getResult.analyticsStore\", analyticsStoreResponse, { retriesLeft: retriesLeft });\n if (!(0, utils_1.isOk)(analyticsStoreResponse)) return [3 /*break*/, 2];\n return [2 /*return*/, analyticsStoreResponse];\n case 2:\n if (!(0, utils_1.isErr)(analyticsStoreResponse)) return [3 /*break*/, 7];\n _a = analyticsStoreResponse.err;\n switch (_a) {\n case \"retry\": return [3 /*break*/, 3];\n }\n return [3 /*break*/, 6];\n case 3:\n if (!(retriesLeft > 0)) return [3 /*break*/, 5];\n timeout = (0, exports.getTimeout)(ANALYTICS_STORE_RETRIES - retriesLeft);\n (0, utils_1.log)(\"sleep for\", timeout, \"ms\");\n return [4 /*yield*/, (0, utils_1.delayPromise)(timeout)];\n case 4:\n _b.sent();\n return [2 /*return*/, this.recursiveCallAnalyticsStore(sdkVersion, canisterPrincipal, accessToken, retriesLeft - 1)];\n case 5: return [3 /*break*/, 7];\n case 6:\n {\n return [3 /*break*/, 7];\n }\n _b.label = 7;\n case 7: return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n });\n };\n return SessionFacade;\n}());\nexports.SessionFacade = SessionFacade;\nvar getTimeout = function (retryIndex) {\n return Math.max(exports.timeoutBetweenRetriesSec, Math.pow(exports.timeoutBetweenRetriesSec, retryIndex + 1)) * 1000;\n};\nexports.getTimeout = getTimeout;\n//# sourceMappingURL=SessionFacade.js.map","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\n * Codes used by the replica for rejecting a message.\n * See {@link https://sdk.dfinity.org/docs/interface-spec/#reject-codes | the interface spec}.\n */\nexport var ReplicaRejectCode;\n(function (ReplicaRejectCode) {\n ReplicaRejectCode[ReplicaRejectCode[\"SysFatal\"] = 1] = \"SysFatal\";\n ReplicaRejectCode[ReplicaRejectCode[\"SysTransient\"] = 2] = \"SysTransient\";\n ReplicaRejectCode[ReplicaRejectCode[\"DestinationInvalid\"] = 3] = \"DestinationInvalid\";\n ReplicaRejectCode[ReplicaRejectCode[\"CanisterReject\"] = 4] = \"CanisterReject\";\n ReplicaRejectCode[ReplicaRejectCode[\"CanisterError\"] = 5] = \"CanisterError\";\n})(ReplicaRejectCode || (ReplicaRejectCode = {}));\n//# sourceMappingURL=api.js.map","import { Buffer } from 'buffer/';\nimport { AnonymousIdentity } from '../../auth';\nimport * as cbor from '../../cbor';\nimport { Principal } from '@dfinity/principal';\nimport { requestIdOf } from '../../request_id';\nimport { blobFromHex, blobFromUint8Array } from '@dfinity/candid';\nimport { Expiry } from './transforms';\nimport { SubmitRequestType, } from './types';\nexport * from './transforms';\nexport var RequestStatusResponseStatus;\n(function (RequestStatusResponseStatus) {\n RequestStatusResponseStatus[\"Received\"] = \"received\";\n RequestStatusResponseStatus[\"Processing\"] = \"processing\";\n RequestStatusResponseStatus[\"Replied\"] = \"replied\";\n RequestStatusResponseStatus[\"Rejected\"] = \"rejected\";\n RequestStatusResponseStatus[\"Unknown\"] = \"unknown\";\n RequestStatusResponseStatus[\"Done\"] = \"done\";\n})(RequestStatusResponseStatus || (RequestStatusResponseStatus = {}));\n// Default delta for ingress expiry is 5 minutes.\nconst DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS = 5 * 60 * 1000;\n// Root public key for the IC, encoded as hex\nconst IC_ROOT_KEY = '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814' +\n 'c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d968' +\n '5f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484' +\n 'b01291091c5f87b98883463f98091a0baaae';\nfunction getDefaultFetch() {\n const result = typeof window === 'undefined'\n ? typeof global === 'undefined'\n ? typeof self === 'undefined'\n ? undefined\n : self.fetch.bind(self)\n : global.fetch.bind(global)\n : window.fetch.bind(window);\n if (!result) {\n throw new Error('Could not find default `fetch` implementation.');\n }\n return result;\n}\n// A HTTP agent allows users to interact with a client of the internet computer\n// using the available methods. It exposes an API that closely follows the\n// public view of the internet computer, and is not intended to be exposed\n// directly to the majority of users due to its low-level interface.\n//\n// There is a pipeline to apply transformations to the request before sending\n// it to the client. This is to decouple signature, nonce generation and\n// other computations so that this class can stay as simple as possible while\n// allowing extensions.\nexport class HttpAgent {\n constructor(options = {}) {\n this._pipeline = [];\n this._rootKeyFetched = false;\n this.rootKey = blobFromHex(IC_ROOT_KEY);\n if (options.source) {\n if (!(options.source instanceof HttpAgent)) {\n throw new Error(\"An Agent's source can only be another HttpAgent\");\n }\n this._pipeline = [...options.source._pipeline];\n this._identity = options.source._identity;\n this._fetch = options.source._fetch;\n this._host = options.source._host;\n this._credentials = options.source._credentials;\n }\n else {\n this._fetch = options.fetch || getDefaultFetch() || fetch.bind(global);\n }\n if (options.host !== undefined) {\n if (!options.host.match(/^[a-z]+:/) && typeof window !== 'undefined') {\n this._host = new URL(window.location.protocol + '//' + options.host);\n }\n else {\n this._host = new URL(options.host);\n }\n }\n else if (options.source !== undefined) {\n // Safe to ignore here.\n this._host = options.source._host;\n }\n else {\n const location = typeof window !== 'undefined' ? window.location : undefined;\n if (!location) {\n throw new Error('Must specify a host to connect to.');\n }\n this._host = new URL(location + '');\n }\n if (options.credentials) {\n const { name, password } = options.credentials;\n this._credentials = `${name}${password ? ':' + password : ''}`;\n }\n this._identity = Promise.resolve(options.identity || new AnonymousIdentity());\n }\n addTransform(fn, priority = fn.priority || 0) {\n // Keep the pipeline sorted at all time, by priority.\n const i = this._pipeline.findIndex(x => (x.priority || 0) < priority);\n this._pipeline.splice(i >= 0 ? i : this._pipeline.length, 0, Object.assign(fn, { priority }));\n }\n async getPrincipal() {\n return (await this._identity).getPrincipal();\n }\n async call(canisterId, options, identity) {\n const id = (await (identity !== undefined ? await identity : await this._identity));\n const canister = Principal.from(canisterId);\n const ecid = options.effectiveCanisterId\n ? Principal.from(options.effectiveCanisterId)\n : canister;\n const sender = id.getPrincipal() || Principal.anonymous();\n const submit = {\n request_type: SubmitRequestType.Call,\n canister_id: canister,\n method_name: options.methodName,\n arg: options.arg,\n sender: sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest = (await this._transform({\n request: {\n body: null,\n method: 'POST',\n headers: Object.assign({ 'Content-Type': 'application/cbor' }, (this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {})),\n },\n endpoint: \"call\" /* Call */,\n body: submit,\n }));\n // Apply transform for identity.\n transformedRequest = await id.transformRequest(transformedRequest);\n const body = cbor.encode(transformedRequest.body);\n // Run both in parallel. The fetch is quite expensive, so we have plenty of time to\n // calculate the requestId locally.\n const [response, requestId] = await Promise.all([\n this._fetch('' + new URL(`/api/v2/canister/${ecid.toText()}/call`, this._host), Object.assign(Object.assign({}, transformedRequest.request), { body })),\n requestIdOf(submit),\n ]);\n if (!response.ok) {\n throw new Error(`Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`);\n }\n return {\n requestId,\n response: {\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n },\n };\n }\n async query(canisterId, fields, identity) {\n const id = await (identity !== undefined ? await identity : await this._identity);\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n const sender = (id === null || id === void 0 ? void 0 : id.getPrincipal()) || Principal.anonymous();\n const request = {\n request_type: \"query\" /* Query */,\n canister_id: canister,\n method_name: fields.methodName,\n arg: fields.arg,\n sender: sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n };\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest = await this._transform({\n request: {\n method: 'POST',\n headers: Object.assign({ 'Content-Type': 'application/cbor' }, (this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {})),\n },\n endpoint: \"read\" /* Query */,\n body: request,\n });\n // Apply transform for identity.\n transformedRequest = await id.transformRequest(transformedRequest);\n const body = cbor.encode(transformedRequest.body);\n const response = await this._fetch('' + new URL(`/api/v2/canister/${canister.toText()}/query`, this._host), Object.assign(Object.assign({}, transformedRequest.request), { body }));\n if (!response.ok) {\n throw new Error(`Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`);\n }\n return cbor.decode(Buffer.from(await response.arrayBuffer()));\n }\n async readState(canisterId, fields, identity) {\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n const id = await (identity !== undefined ? await identity : await this._identity);\n const sender = (id === null || id === void 0 ? void 0 : id.getPrincipal()) || Principal.anonymous();\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest = await this._transform({\n request: {\n method: 'POST',\n headers: Object.assign({ 'Content-Type': 'application/cbor' }, (this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {})),\n },\n endpoint: \"read_state\" /* ReadState */,\n body: {\n request_type: \"read_state\" /* ReadState */,\n paths: fields.paths,\n sender: sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n },\n });\n // Apply transform for identity.\n transformedRequest = await id.transformRequest(transformedRequest);\n const body = cbor.encode(transformedRequest.body);\n const response = await this._fetch('' + new URL(`/api/v2/canister/${canister}/read_state`, this._host), Object.assign(Object.assign({}, transformedRequest.request), { body }));\n if (!response.ok) {\n throw new Error(`Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`);\n }\n return cbor.decode(Buffer.from(await response.arrayBuffer()));\n }\n async status() {\n const headers = this._credentials\n ? {\n Authorization: 'Basic ' + btoa(this._credentials),\n }\n : {};\n const response = await this._fetch('' + new URL(`/api/v2/status`, this._host), { headers });\n if (!response.ok) {\n throw new Error(`Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`);\n }\n const buffer = await response.arrayBuffer();\n return cbor.decode(new Uint8Array(buffer));\n }\n async fetchRootKey() {\n if (!this._rootKeyFetched) {\n // Hex-encoded version of the replica root key\n this.rootKey = blobFromUint8Array((await this.status()).root_key);\n this._rootKeyFetched = true;\n }\n return this.rootKey;\n }\n _transform(request) {\n let p = Promise.resolve(request);\n for (const fn of this._pipeline) {\n p = p.then(r => fn(r).then(r2 => r2 || r));\n }\n return p;\n }\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\nconst { Buffer } = require('buffer')\nconst ieee754 = require('ieee754')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst parser = require('./decoder.asm')\nconst utils = require('./utils')\nconst c = require('./constants')\nconst Simple = require('./simple')\nconst Tagged = require('./tagged')\nconst { URL } = require('iso-url')\n\n/**\n * Transform binary cbor data into JavaScript objects.\n */\nclass Decoder {\n /**\n * @param {Object} [opts={}]\n * @param {number} [opts.size=65536] - Size of the allocated heap.\n */\n constructor (opts) {\n opts = opts || {}\n\n if (!opts.size || opts.size < 0x10000) {\n opts.size = 0x10000\n } else {\n // Ensure the size is a power of 2\n opts.size = utils.nextPowerOf2(opts.size)\n }\n\n // Heap use to share the input with the parser\n this._heap = new ArrayBuffer(opts.size)\n this._heap8 = new Uint8Array(this._heap)\n this._buffer = Buffer.from(this._heap)\n\n this._reset()\n\n // Known tags\n this._knownTags = Object.assign({\n 0: (val) => new Date(val),\n 1: (val) => new Date(val * 1000),\n 2: (val) => utils.arrayBufferToBignumber(val),\n 3: (val) => c.NEG_ONE.minus(utils.arrayBufferToBignumber(val)),\n 4: (v) => {\n // const v = new Uint8Array(val)\n return c.TEN.pow(v[0]).times(v[1])\n },\n 5: (v) => {\n // const v = new Uint8Array(val)\n return c.TWO.pow(v[0]).times(v[1])\n },\n 32: (val) => new URL(val),\n 35: (val) => new RegExp(val)\n }, opts.tags)\n\n // Initialize asm based parser\n this.parser = parser(global, {\n // eslint-disable-next-line no-console\n log: console.log.bind(console),\n pushInt: this.pushInt.bind(this),\n pushInt32: this.pushInt32.bind(this),\n pushInt32Neg: this.pushInt32Neg.bind(this),\n pushInt64: this.pushInt64.bind(this),\n pushInt64Neg: this.pushInt64Neg.bind(this),\n pushFloat: this.pushFloat.bind(this),\n pushFloatSingle: this.pushFloatSingle.bind(this),\n pushFloatDouble: this.pushFloatDouble.bind(this),\n pushTrue: this.pushTrue.bind(this),\n pushFalse: this.pushFalse.bind(this),\n pushUndefined: this.pushUndefined.bind(this),\n pushNull: this.pushNull.bind(this),\n pushInfinity: this.pushInfinity.bind(this),\n pushInfinityNeg: this.pushInfinityNeg.bind(this),\n pushNaN: this.pushNaN.bind(this),\n pushNaNNeg: this.pushNaNNeg.bind(this),\n pushArrayStart: this.pushArrayStart.bind(this),\n pushArrayStartFixed: this.pushArrayStartFixed.bind(this),\n pushArrayStartFixed32: this.pushArrayStartFixed32.bind(this),\n pushArrayStartFixed64: this.pushArrayStartFixed64.bind(this),\n pushObjectStart: this.pushObjectStart.bind(this),\n pushObjectStartFixed: this.pushObjectStartFixed.bind(this),\n pushObjectStartFixed32: this.pushObjectStartFixed32.bind(this),\n pushObjectStartFixed64: this.pushObjectStartFixed64.bind(this),\n pushByteString: this.pushByteString.bind(this),\n pushByteStringStart: this.pushByteStringStart.bind(this),\n pushUtf8String: this.pushUtf8String.bind(this),\n pushUtf8StringStart: this.pushUtf8StringStart.bind(this),\n pushSimpleUnassigned: this.pushSimpleUnassigned.bind(this),\n pushTagUnassigned: this.pushTagUnassigned.bind(this),\n pushTagStart: this.pushTagStart.bind(this),\n pushTagStart4: this.pushTagStart4.bind(this),\n pushTagStart8: this.pushTagStart8.bind(this),\n pushBreak: this.pushBreak.bind(this)\n }, this._heap)\n }\n\n get _depth () {\n return this._parents.length\n }\n\n get _currentParent () {\n return this._parents[this._depth - 1]\n }\n\n get _ref () {\n return this._currentParent.ref\n }\n\n // Finish the current parent\n _closeParent () {\n var p = this._parents.pop()\n\n if (p.length > 0) {\n throw new Error(`Missing ${p.length} elements`)\n }\n\n switch (p.type) {\n case c.PARENT.TAG:\n this._push(\n this.createTag(p.ref[0], p.ref[1])\n )\n break\n case c.PARENT.BYTE_STRING:\n this._push(this.createByteString(p.ref, p.length))\n break\n case c.PARENT.UTF8_STRING:\n this._push(this.createUtf8String(p.ref, p.length))\n break\n case c.PARENT.MAP:\n if (p.values % 2 > 0) {\n throw new Error('Odd number of elements in the map')\n }\n this._push(this.createMap(p.ref, p.length))\n break\n case c.PARENT.OBJECT:\n if (p.values % 2 > 0) {\n throw new Error('Odd number of elements in the map')\n }\n this._push(this.createObject(p.ref, p.length))\n break\n case c.PARENT.ARRAY:\n this._push(this.createArray(p.ref, p.length))\n break\n default:\n break\n }\n\n if (this._currentParent && this._currentParent.type === c.PARENT.TAG) {\n this._dec()\n }\n }\n\n // Reduce the expected length of the current parent by one\n _dec () {\n const p = this._currentParent\n // The current parent does not know the epxected child length\n\n if (p.length < 0) {\n return\n }\n\n p.length--\n\n // All children were seen, we can close the current parent\n if (p.length === 0) {\n this._closeParent()\n }\n }\n\n // Push any value to the current parent\n _push (val, hasChildren) {\n const p = this._currentParent\n p.values++\n\n switch (p.type) {\n case c.PARENT.ARRAY:\n case c.PARENT.BYTE_STRING:\n case c.PARENT.UTF8_STRING:\n if (p.length > -1) {\n this._ref[this._ref.length - p.length] = val\n } else {\n this._ref.push(val)\n }\n this._dec()\n break\n case c.PARENT.OBJECT:\n if (p.tmpKey != null) {\n this._ref[p.tmpKey] = val\n p.tmpKey = null\n this._dec()\n } else {\n p.tmpKey = val\n\n if (typeof p.tmpKey !== 'string') {\n // too bad, convert to a Map\n p.type = c.PARENT.MAP\n p.ref = utils.buildMap(p.ref)\n }\n }\n break\n case c.PARENT.MAP:\n if (p.tmpKey != null) {\n this._ref.set(p.tmpKey, val)\n p.tmpKey = null\n this._dec()\n } else {\n p.tmpKey = val\n }\n break\n case c.PARENT.TAG:\n this._ref.push(val)\n if (!hasChildren) {\n this._dec()\n }\n break\n default:\n throw new Error('Unknown parent type')\n }\n }\n\n // Create a new parent in the parents list\n _createParent (obj, type, len) {\n this._parents[this._depth] = {\n type: type,\n length: len,\n ref: obj,\n values: 0,\n tmpKey: null\n }\n }\n\n // Reset all state back to the beginning, also used for initiatlization\n _reset () {\n this._res = []\n this._parents = [{\n type: c.PARENT.ARRAY,\n length: -1,\n ref: this._res,\n values: 0,\n tmpKey: null\n }]\n }\n\n // -- Interface to customize deoding behaviour\n createTag (tagNumber, value) {\n const typ = this._knownTags[tagNumber]\n\n if (!typ) {\n return new Tagged(tagNumber, value)\n }\n\n return typ(value)\n }\n\n createMap (obj, len) {\n return obj\n }\n\n createObject (obj, len) {\n return obj\n }\n\n createArray (arr, len) {\n return arr\n }\n\n createByteString (raw, len) {\n return Buffer.concat(raw)\n }\n\n createByteStringFromHeap (start, end) {\n if (start === end) {\n return Buffer.alloc(0)\n }\n\n return Buffer.from(this._heap.slice(start, end))\n }\n\n createInt (val) {\n return val\n }\n\n createInt32 (f, g) {\n return utils.buildInt32(f, g)\n }\n\n createInt64 (f1, f2, g1, g2) {\n return utils.buildInt64(f1, f2, g1, g2)\n }\n\n createFloat (val) {\n return val\n }\n\n createFloatSingle (a, b, c, d) {\n return ieee754.read([a, b, c, d], 0, false, 23, 4)\n }\n\n createFloatDouble (a, b, c, d, e, f, g, h) {\n return ieee754.read([a, b, c, d, e, f, g, h], 0, false, 52, 8)\n }\n\n createInt32Neg (f, g) {\n return -1 - utils.buildInt32(f, g)\n }\n\n createInt64Neg (f1, f2, g1, g2) {\n const f = utils.buildInt32(f1, f2)\n const g = utils.buildInt32(g1, g2)\n\n if (f > c.MAX_SAFE_HIGH) {\n return c.NEG_ONE.minus(new Bignumber(f).times(c.SHIFT32).plus(g))\n }\n\n return -1 - ((f * c.SHIFT32) + g)\n }\n\n createTrue () {\n return true\n }\n\n createFalse () {\n return false\n }\n\n createNull () {\n return null\n }\n\n createUndefined () {\n return undefined\n }\n\n createInfinity () {\n return Infinity\n }\n\n createInfinityNeg () {\n return -Infinity\n }\n\n createNaN () {\n return NaN\n }\n\n createNaNNeg () {\n return -NaN\n }\n\n createUtf8String (raw, len) {\n return raw.join('')\n }\n\n createUtf8StringFromHeap (start, end) {\n if (start === end) {\n return ''\n }\n\n return this._buffer.toString('utf8', start, end)\n }\n\n createSimpleUnassigned (val) {\n return new Simple(val)\n }\n\n // -- Interface for decoder.asm.js\n\n pushInt (val) {\n this._push(this.createInt(val))\n }\n\n pushInt32 (f, g) {\n this._push(this.createInt32(f, g))\n }\n\n pushInt64 (f1, f2, g1, g2) {\n this._push(this.createInt64(f1, f2, g1, g2))\n }\n\n pushFloat (val) {\n this._push(this.createFloat(val))\n }\n\n pushFloatSingle (a, b, c, d) {\n this._push(this.createFloatSingle(a, b, c, d))\n }\n\n pushFloatDouble (a, b, c, d, e, f, g, h) {\n this._push(this.createFloatDouble(a, b, c, d, e, f, g, h))\n }\n\n pushInt32Neg (f, g) {\n this._push(this.createInt32Neg(f, g))\n }\n\n pushInt64Neg (f1, f2, g1, g2) {\n this._push(this.createInt64Neg(f1, f2, g1, g2))\n }\n\n pushTrue () {\n this._push(this.createTrue())\n }\n\n pushFalse () {\n this._push(this.createFalse())\n }\n\n pushNull () {\n this._push(this.createNull())\n }\n\n pushUndefined () {\n this._push(this.createUndefined())\n }\n\n pushInfinity () {\n this._push(this.createInfinity())\n }\n\n pushInfinityNeg () {\n this._push(this.createInfinityNeg())\n }\n\n pushNaN () {\n this._push(this.createNaN())\n }\n\n pushNaNNeg () {\n this._push(this.createNaNNeg())\n }\n\n pushArrayStart () {\n this._createParent([], c.PARENT.ARRAY, -1)\n }\n\n pushArrayStartFixed (len) {\n this._createArrayStartFixed(len)\n }\n\n pushArrayStartFixed32 (len1, len2) {\n const len = utils.buildInt32(len1, len2)\n this._createArrayStartFixed(len)\n }\n\n pushArrayStartFixed64 (len1, len2, len3, len4) {\n const len = utils.buildInt64(len1, len2, len3, len4)\n this._createArrayStartFixed(len)\n }\n\n pushObjectStart () {\n this._createObjectStartFixed(-1)\n }\n\n pushObjectStartFixed (len) {\n this._createObjectStartFixed(len)\n }\n\n pushObjectStartFixed32 (len1, len2) {\n const len = utils.buildInt32(len1, len2)\n this._createObjectStartFixed(len)\n }\n\n pushObjectStartFixed64 (len1, len2, len3, len4) {\n const len = utils.buildInt64(len1, len2, len3, len4)\n this._createObjectStartFixed(len)\n }\n\n pushByteStringStart () {\n this._parents[this._depth] = {\n type: c.PARENT.BYTE_STRING,\n length: -1,\n ref: [],\n values: 0,\n tmpKey: null\n }\n }\n\n pushByteString (start, end) {\n this._push(this.createByteStringFromHeap(start, end))\n }\n\n pushUtf8StringStart () {\n this._parents[this._depth] = {\n type: c.PARENT.UTF8_STRING,\n length: -1,\n ref: [],\n values: 0,\n tmpKey: null\n }\n }\n\n pushUtf8String (start, end) {\n this._push(this.createUtf8StringFromHeap(start, end))\n }\n\n pushSimpleUnassigned (val) {\n this._push(this.createSimpleUnassigned(val))\n }\n\n pushTagStart (tag) {\n this._parents[this._depth] = {\n type: c.PARENT.TAG,\n length: 1,\n ref: [tag]\n }\n }\n\n pushTagStart4 (f, g) {\n this.pushTagStart(utils.buildInt32(f, g))\n }\n\n pushTagStart8 (f1, f2, g1, g2) {\n this.pushTagStart(utils.buildInt64(f1, f2, g1, g2))\n }\n\n pushTagUnassigned (tagNumber) {\n this._push(this.createTag(tagNumber))\n }\n\n pushBreak () {\n if (this._currentParent.length > -1) {\n throw new Error('Unexpected break')\n }\n\n this._closeParent()\n }\n\n _createObjectStartFixed (len) {\n if (len === 0) {\n this._push(this.createObject({}))\n return\n }\n\n this._createParent({}, c.PARENT.OBJECT, len)\n }\n\n _createArrayStartFixed (len) {\n if (len === 0) {\n this._push(this.createArray([]))\n return\n }\n\n this._createParent(new Array(len), c.PARENT.ARRAY, len)\n }\n\n _decode (input) {\n if (input.byteLength === 0) {\n throw new Error('Input too short')\n }\n\n this._reset()\n this._heap8.set(input)\n const code = this.parser.parse(input.byteLength)\n\n if (this._depth > 1) {\n while (this._currentParent.length === 0) {\n this._closeParent()\n }\n if (this._depth > 1) {\n throw new Error('Undeterminated nesting')\n }\n }\n\n if (code > 0) {\n throw new Error('Failed to parse')\n }\n\n if (this._res.length === 0) {\n throw new Error('No valid result')\n }\n }\n\n // -- Public Interface\n\n decodeFirst (input) {\n this._decode(input)\n\n return this._res[0]\n }\n\n decodeAll (input) {\n this._decode(input)\n\n return this._res\n }\n\n /**\n * Decode the first cbor object.\n *\n * @param {Buffer|string} input\n * @param {string} [enc='hex'] - Encoding used if a string is passed.\n * @returns {*}\n */\n static decode (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Decoder({ size: input.length })\n return dec.decodeFirst(input)\n }\n\n /**\n * Decode all cbor objects.\n *\n * @param {Buffer|string} input\n * @param {string} [enc='hex'] - Encoding used if a string is passed.\n * @returns {Array<*>}\n */\n static decodeAll (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Decoder({ size: input.length })\n return dec.decodeAll(input)\n }\n}\n\nDecoder.decodeFirst = Decoder.decode\n\nmodule.exports = Decoder\n","'use strict'\n\nconst constants = require('./constants')\nconst MT = constants.MT\nconst SIMPLE = constants.SIMPLE\nconst SYMS = constants.SYMS\n\n/**\n * A CBOR Simple Value that does not map onto a known constant.\n */\nclass Simple {\n /**\n * Creates an instance of Simple.\n *\n * @param {integer} value - the simple value's integer value\n */\n constructor (value) {\n if (typeof value !== 'number') {\n throw new Error('Invalid Simple type: ' + (typeof value))\n }\n if ((value < 0) || (value > 255) || ((value | 0) !== value)) {\n throw new Error('value must be a small positive integer: ' + value)\n }\n this.value = value\n }\n\n /**\n * Debug string for simple value\n *\n * @returns {string} simple(value)\n */\n toString () {\n return 'simple(' + this.value + ')'\n }\n\n /**\n * Debug string for simple value\n *\n * @returns {string} simple(value)\n */\n inspect () {\n return 'simple(' + this.value + ')'\n }\n\n /**\n * Push the simple value onto the CBOR stream\n *\n * @param {cbor.Encoder} gen The generator to push onto\n * @returns {number}\n */\n encodeCBOR (gen) {\n return gen._pushInt(this.value, MT.SIMPLE_FLOAT)\n }\n\n /**\n * Is the given object a Simple?\n *\n * @param {any} obj - object to test\n * @returns {bool} - is it Simple?\n */\n static isSimple (obj) {\n return obj instanceof Simple\n }\n\n /**\n * Decode from the CBOR additional information into a JavaScript value.\n * If the CBOR item has no parent, return a \"safe\" symbol instead of\n * `null` or `undefined`, so that the value can be passed through a\n * stream in object mode.\n *\n * @param {Number} val - the CBOR additional info to convert\n * @param {bool} hasParent - Does the CBOR item have a parent?\n * @returns {(null|undefined|Boolean|Symbol)} - the decoded value\n */\n static decode (val, hasParent) {\n if (hasParent == null) {\n hasParent = true\n }\n switch (val) {\n case SIMPLE.FALSE:\n return false\n case SIMPLE.TRUE:\n return true\n case SIMPLE.NULL:\n if (hasParent) {\n return null\n } else {\n return SYMS.NULL\n }\n case SIMPLE.UNDEFINED:\n if (hasParent) {\n return undefined\n } else {\n return SYMS.UNDEFINED\n }\n case -1:\n if (!hasParent) {\n throw new Error('Invalid BREAK')\n }\n return SYMS.BREAK\n default:\n return new Simple(val)\n }\n }\n}\n\nmodule.exports = Simple\n","'use strict'\n\n/**\n * A CBOR tagged item, where the tag does not have semantics specified at the\n * moment, or those semantics threw an error during parsing. Typically this will\n * be an extension point you're not yet expecting.\n */\nclass Tagged {\n /**\n * Creates an instance of Tagged.\n *\n * @param {Number} tag - the number of the tag\n * @param {any} value - the value inside the tag\n * @param {Error} err - the error that was thrown parsing the tag, or null\n */\n constructor (tag, value, err) {\n this.tag = tag\n this.value = value\n this.err = err\n if (typeof this.tag !== 'number') {\n throw new Error('Invalid tag type (' + (typeof this.tag) + ')')\n }\n if ((this.tag < 0) || ((this.tag | 0) !== this.tag)) {\n throw new Error('Tag must be a positive integer: ' + this.tag)\n }\n }\n\n /**\n * Convert to a String\n *\n * @returns {String} string of the form '1(2)'\n */\n toString () {\n return `${this.tag}(${JSON.stringify(this.value)})`\n }\n\n /**\n * Push the simple value onto the CBOR stream\n *\n * @param {cbor.Encoder} gen The generator to push onto\n * @returns {number}\n */\n encodeCBOR (gen) {\n gen._pushTag(this.tag)\n return gen.pushAny(this.value)\n }\n\n /**\n * If we have a converter for this type, do the conversion. Some converters\n * are built-in. Additional ones can be passed in. If you want to remove\n * a built-in converter, pass a converter in whose value is 'null' instead\n * of a function.\n *\n * @param {Object} converters - keys in the object are a tag number, the value\n * is a function that takes the decoded CBOR and returns a JavaScript value\n * of the appropriate type. Throw an exception in the function on errors.\n * @returns {any} - the converted item\n */\n convert (converters) {\n var er, f\n f = converters != null ? converters[this.tag] : undefined\n if (typeof f !== 'function') {\n f = Tagged['_tag' + this.tag]\n if (typeof f !== 'function') {\n return this\n }\n }\n try {\n return f.call(Tagged, this.value)\n } catch (error) {\n er = error\n this.err = er\n return this\n }\n }\n}\n\nmodule.exports = Tagged\n","'use strict';\n\nconst {\n URLWithLegacySupport,\n format,\n URLSearchParams,\n defaultBase\n} = require('./src/url');\nconst relative = require('./src/relative');\n\nmodule.exports = {\n URL: URLWithLegacySupport,\n URLSearchParams,\n format,\n relative,\n defaultBase\n};\n","'use strict';\n\nconst defaultBase = self.location ?\n self.location.protocol + '//' + self.location.host :\n '';\nconst URL = self.URL;\n\nclass URLWithLegacySupport {\n constructor(url = '', base = defaultBase) {\n this.super = new URL(url, base);\n this.path = this.pathname + this.search;\n this.auth =\n this.username && this.password ?\n this.username + ':' + this.password :\n null;\n\n this.query =\n this.search && this.search.startsWith('?') ?\n this.search.slice(1) :\n null;\n }\n\n get hash() {\n return this.super.hash;\n }\n get host() {\n return this.super.host;\n }\n get hostname() {\n return this.super.hostname;\n }\n get href() {\n return this.super.href;\n }\n get origin() {\n return this.super.origin;\n }\n get password() {\n return this.super.password;\n }\n get pathname() {\n return this.super.pathname;\n }\n get port() {\n return this.super.port;\n }\n get protocol() {\n return this.super.protocol;\n }\n get search() {\n return this.super.search;\n }\n get searchParams() {\n return this.super.searchParams;\n }\n get username() {\n return this.super.username;\n }\n\n set hash(hash) {\n this.super.hash = hash;\n }\n set host(host) {\n this.super.host = host;\n }\n set hostname(hostname) {\n this.super.hostname = hostname;\n }\n set href(href) {\n this.super.href = href;\n }\n set origin(origin) {\n this.super.origin = origin;\n }\n set password(password) {\n this.super.password = password;\n }\n set pathname(pathname) {\n this.super.pathname = pathname;\n }\n set port(port) {\n this.super.port = port;\n }\n set protocol(protocol) {\n this.super.protocol = protocol;\n }\n set search(search) {\n this.super.search = search;\n }\n set searchParams(searchParams) {\n this.super.searchParams = searchParams;\n }\n set username(username) {\n this.super.username = username;\n }\n\n createObjectURL(o) {\n return this.super.createObjectURL(o);\n }\n revokeObjectURL(o) {\n this.super.revokeObjectURL(o);\n }\n toJSON() {\n return this.super.toJSON();\n }\n toString() {\n return this.super.toString();\n }\n format() {\n return this.toString();\n }\n}\n\nfunction format(obj) {\n if (typeof obj === 'string') {\n const url = new URL(obj);\n\n return url.toString();\n }\n\n if (!(obj instanceof URL)) {\n const userPass =\n obj.username && obj.password ?\n `${obj.username}:${obj.password}@` :\n '';\n const auth = obj.auth ? obj.auth + '@' : '';\n const port = obj.port ? ':' + obj.port : '';\n const protocol = obj.protocol ? obj.protocol + '//' : '';\n const host = obj.host || '';\n const hostname = obj.hostname || '';\n const search = obj.search || (obj.query ? '?' + obj.query : '');\n const hash = obj.hash || '';\n const pathname = obj.pathname || '';\n const path = obj.path || pathname + search;\n\n return `${protocol}${userPass || auth}${host ||\n hostname + port}${path}${hash}`;\n }\n}\n\nmodule.exports = {\n URLWithLegacySupport,\n URLSearchParams: self.URLSearchParams,\n defaultBase,\n format\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst MAX_U64_NUMBER = 0x20000000000000;\nfunction _concat(a, ...args) {\n const newBuffer = new Uint8Array(a.byteLength + args.reduce((acc, b) => acc + b.byteLength, 0));\n newBuffer.set(new Uint8Array(a), 0);\n let i = a.byteLength;\n for (const b of args) {\n newBuffer.set(new Uint8Array(b), i);\n i += b.byteLength;\n }\n return newBuffer.buffer;\n}\nfunction _serializeValue(major, minor, value) {\n // Remove everything that's not an hexadecimal character. These are not\n // considered errors since the value was already validated and they might\n // be number decimals or sign.\n value = value.replace(/[^0-9a-fA-F]/g, \"\");\n // Create the buffer from the value with left padding with 0.\n const length = 2 ** (minor - 24 /* Int8 */);\n value = value.slice(-length * 2).padStart(length * 2, \"0\");\n const bytes = [(major << 5) + minor].concat(value.match(/../g).map((byte) => parseInt(byte, 16)));\n return new Uint8Array(bytes).buffer;\n}\nfunction _serializeNumber(major, value) {\n if (value < 24) {\n return new Uint8Array([(major << 5) + value]).buffer;\n }\n else {\n const minor = value <= 0xff\n ? 24 /* Int8 */\n : value <= 0xffff\n ? 25 /* Int16 */\n : value <= 0xffffffff\n ? 26 /* Int32 */\n : 27 /* Int64 */;\n return _serializeValue(major, minor, value.toString(16));\n }\n}\nfunction _serializeString(str) {\n const utf8 = [];\n for (let i = 0; i < str.length; i++) {\n let charcode = str.charCodeAt(i);\n if (charcode < 0x80) {\n utf8.push(charcode);\n }\n else if (charcode < 0x800) {\n utf8.push(0xc0 | (charcode >> 6), 0x80 | (charcode & 0x3f));\n }\n else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.push(0xe0 | (charcode >> 12), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f));\n }\n else {\n // Surrogate pair\n i++;\n charcode = ((charcode & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff);\n utf8.push(0xf0 | (charcode >> 18), 0x80 | ((charcode >> 12) & 0x3f), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f));\n }\n }\n return _concat(new Uint8Array(_serializeNumber(3 /* TextString */, str.length)), new Uint8Array(utf8));\n}\n/**\n * Tag a value.\n */\nfunction tagged(tag, value) {\n if (tag == 0xd9d9f7) {\n return _concat(new Uint8Array([0xd9, 0xd9, 0xf7]), value);\n }\n if (tag < 24) {\n return _concat(new Uint8Array([(6 /* Tag */ << 5) + tag]), value);\n }\n else {\n const minor = tag <= 0xff\n ? 24 /* Int8 */\n : tag <= 0xffff\n ? 25 /* Int16 */\n : tag <= 0xffffffff\n ? 26 /* Int32 */\n : 27 /* Int64 */;\n const length = 2 ** (minor - 24 /* Int8 */);\n const value = tag\n .toString(16)\n .slice(-length * 2)\n .padStart(length * 2, \"0\");\n const bytes = [(6 /* Tag */ << 5) + minor].concat(value.match(/../g).map((byte) => parseInt(byte, 16)));\n return new Uint8Array(bytes).buffer;\n }\n}\nexports.tagged = tagged;\n/**\n * Set the raw bytes contained by this value. This should only be used with another\n * CborValue, or if you are implementing extensions to CBOR.\n * @param bytes A buffer containing the value.\n */\nfunction raw(bytes) {\n return new Uint8Array(bytes).buffer;\n}\nexports.raw = raw;\n/**\n * Encode a number that is between [0, 23].\n * @param n\n */\nfunction uSmall(n) {\n if (isNaN(n)) {\n throw new RangeError(\"Invalid number.\");\n }\n n = Math.min(Math.max(0, n), 23); // Clamp it.\n const bytes = [(0 /* UnsignedInteger */ << 5) + n];\n return new Uint8Array(bytes).buffer;\n}\nexports.uSmall = uSmall;\nfunction u8(u8, radix) {\n // Force u8 into a number, and validate it.\n u8 = parseInt(\"\" + u8, radix);\n if (isNaN(u8)) {\n throw new RangeError(\"Invalid number.\");\n }\n u8 = Math.min(Math.max(0, u8), 0xff); // Clamp it.\n u8 = u8.toString(16);\n return _serializeValue(0 /* UnsignedInteger */, 24 /* Int8 */, u8);\n}\nexports.u8 = u8;\nfunction u16(u16, radix) {\n // Force u16 into a number, and validate it.\n u16 = parseInt(\"\" + u16, radix);\n if (isNaN(u16)) {\n throw new RangeError(\"Invalid number.\");\n }\n u16 = Math.min(Math.max(0, u16), 0xffff); // Clamp it.\n u16 = u16.toString(16);\n return _serializeValue(0 /* UnsignedInteger */, 25 /* Int16 */, u16);\n}\nexports.u16 = u16;\nfunction u32(u32, radix) {\n // Force u32 into a number, and validate it.\n u32 = parseInt(\"\" + u32, radix);\n if (isNaN(u32)) {\n throw new RangeError(\"Invalid number.\");\n }\n u32 = Math.min(Math.max(0, u32), 0xffffffff); // Clamp it.\n u32 = u32.toString(16);\n return _serializeValue(0 /* UnsignedInteger */, 26 /* Int32 */, u32);\n}\nexports.u32 = u32;\nfunction u64(u64, radix) {\n // Special consideration for numbers that might be larger than expected.\n if (typeof u64 == \"string\" && radix == 16) {\n // This is the only case where we guarantee we'll encode the number directly.\n // Validate it's all hexadecimal first.\n if (u64.match(/[^0-9a-fA-F]/)) {\n throw new RangeError(\"Invalid number.\");\n }\n return _serializeValue(0 /* UnsignedInteger */, 27 /* Int64 */, u64);\n }\n // Force u64 into a number, and validate it.\n u64 = parseInt(\"\" + u64, radix);\n if (isNaN(u64)) {\n throw new RangeError(\"Invalid number.\");\n }\n u64 = Math.min(Math.max(0, u64), MAX_U64_NUMBER); // Clamp it to actual limit.\n u64 = u64.toString(16);\n return _serializeValue(0 /* UnsignedInteger */, 27 /* Int64 */, u64);\n}\nexports.u64 = u64;\n/**\n * Encode a negative number that is between [-24, -1].\n */\nfunction iSmall(n) {\n if (isNaN(n)) {\n throw new RangeError(\"Invalid number.\");\n }\n if (n === 0) {\n return uSmall(0);\n }\n // Negative n, clamped to [1, 24], minus 1 (there's no negative 0).\n n = Math.min(Math.max(0, -n), 24) - 1;\n const bytes = [(1 /* SignedInteger */ << 5) + n];\n return new Uint8Array(bytes).buffer;\n}\nexports.iSmall = iSmall;\nfunction i8(i8, radix) {\n // Force i8 into a number, and validate it.\n i8 = parseInt(\"\" + i8, radix);\n if (isNaN(i8)) {\n throw new RangeError(\"Invalid number.\");\n }\n // Negative n, clamped, minus 1 (there's no negative 0).\n i8 = Math.min(Math.max(0, -i8 - 1), 0xff);\n i8 = i8.toString(16);\n return _serializeValue(1 /* SignedInteger */, 24 /* Int8 */, i8);\n}\nexports.i8 = i8;\nfunction i16(i16, radix) {\n // Force i16 into a number, and validate it.\n i16 = parseInt(\"\" + i16, radix);\n if (isNaN(i16)) {\n throw new RangeError(\"Invalid number.\");\n }\n // Negative n, clamped, minus 1 (there's no negative 0).\n i16 = Math.min(Math.max(0, -i16 - 1), 0xffff);\n i16 = i16.toString(16);\n return _serializeValue(1 /* SignedInteger */, 25 /* Int16 */, i16);\n}\nexports.i16 = i16;\nfunction i32(i32, radix) {\n // Force i32 into a number, and validate it.\n i32 = parseInt(\"\" + i32, radix);\n if (isNaN(i32)) {\n throw new RangeError(\"Invalid number.\");\n }\n // Negative n, clamped, minus 1 (there's no negative 0).\n i32 = Math.min(Math.max(0, -i32 - 1), 0xffffffff);\n i32 = i32.toString(16);\n return _serializeValue(1 /* SignedInteger */, 26 /* Int32 */, i32);\n}\nexports.i32 = i32;\nfunction i64(i64, radix) {\n // Special consideration for numbers that might be larger than expected.\n if (typeof i64 == \"string\" && radix == 16) {\n if (i64.startsWith(\"-\")) {\n i64 = i64.slice(1);\n }\n else {\n // Clamp it.\n i64 = \"0\";\n }\n // This is the only case where we guarantee we'll encode the number directly.\n // Validate it's all hexadecimal first.\n if (i64.match(/[^0-9a-fA-F]/) || i64.length > 16) {\n throw new RangeError(\"Invalid number.\");\n }\n // We need to do -1 to the number.\n let done = false;\n let newI64 = i64.split(\"\").reduceRight((acc, x) => {\n if (done) {\n return x + acc;\n }\n let n = parseInt(x, 16) - 1;\n if (n >= 0) {\n done = true;\n return n.toString(16) + acc;\n }\n else {\n return \"f\" + acc;\n }\n }, \"\");\n if (!done) {\n // This number was 0.\n return u64(0);\n }\n return _serializeValue(1 /* SignedInteger */, 27 /* Int64 */, newI64);\n }\n // Force i64 into a number, and validate it.\n i64 = parseInt(\"\" + i64, radix);\n if (isNaN(i64)) {\n throw new RangeError(\"Invalid number.\");\n }\n i64 = Math.min(Math.max(0, -i64 - 1), 0x20000000000000); // Clamp it to actual.\n i64 = i64.toString(16);\n return _serializeValue(1 /* SignedInteger */, 27 /* Int64 */, i64);\n}\nexports.i64 = i64;\n/**\n * Encode a number using the smallest amount of bytes, by calling the methods\n * above. e.g. If the number fits in a u8, it will use that.\n */\nfunction number(n) {\n if (n >= 0) {\n if (n < 24) {\n return uSmall(n);\n }\n else if (n <= 0xff) {\n return u8(n);\n }\n else if (n <= 0xffff) {\n return u16(n);\n }\n else if (n <= 0xffffffff) {\n return u32(n);\n }\n else {\n return u64(n);\n }\n }\n else {\n if (n >= -24) {\n return iSmall(n);\n }\n else if (n >= -0xff) {\n return i8(n);\n }\n else if (n >= -0xffff) {\n return i16(n);\n }\n else if (n >= -0xffffffff) {\n return i32(n);\n }\n else {\n return i64(n);\n }\n }\n}\nexports.number = number;\n/**\n * Encode a byte array. This is different than the `raw()` method.\n */\nfunction bytes(bytes) {\n return _concat(_serializeNumber(2 /* ByteString */, bytes.byteLength), bytes);\n}\nexports.bytes = bytes;\n/**\n * Encode a JavaScript string.\n */\nfunction string(str) {\n return _serializeString(str);\n}\nexports.string = string;\n/**\n * Encode an array of cbor values.\n */\nfunction array(items) {\n return _concat(_serializeNumber(4 /* Array */, items.length), ...items);\n}\nexports.array = array;\n/**\n * Encode a map of key-value pairs. The keys are string, and the values are CBOR\n * encoded.\n */\nfunction map(items, stable = false) {\n if (!(items instanceof Map)) {\n items = new Map(Object.entries(items));\n }\n let entries = Array.from(items.entries());\n if (stable) {\n entries = entries.sort(([keyA], [keyB]) => keyA.localeCompare(keyB));\n }\n return _concat(_serializeNumber(5 /* Map */, items.size), ...entries.map(([k, v]) => _concat(_serializeString(k), v)));\n}\nexports.map = map;\n/**\n * Encode a single (32 bits) precision floating point number.\n */\nfunction singleFloat(f) {\n const single = new Float32Array([f]);\n return _concat(new Uint8Array([(7 /* SimpleValue */ << 5) + 26]), new Uint8Array(single.buffer));\n}\nexports.singleFloat = singleFloat;\n/**\n * Encode a double (64 bits) precision floating point number.\n */\nfunction doubleFloat(f) {\n const single = new Float64Array([f]);\n return _concat(new Uint8Array([(7 /* SimpleValue */ << 5) + 27]), new Uint8Array(single.buffer));\n}\nexports.doubleFloat = doubleFloat;\nfunction bool(v) {\n return v ? true_() : false_();\n}\nexports.bool = bool;\n/**\n * Encode the boolean true.\n */\nfunction true_() {\n return raw(new Uint8Array([(7 /* SimpleValue */ << 5) + 21]));\n}\nexports.true_ = true_;\n/**\n * Encode the boolean false.\n */\nfunction false_() {\n return raw(new Uint8Array([(7 /* SimpleValue */ << 5) + 20]));\n}\nexports.false_ = false_;\n/**\n * Encode the constant null.\n */\nfunction null_() {\n return raw(new Uint8Array([(7 /* SimpleValue */ << 5) + 22]));\n}\nexports.null_ = null_;\n/**\n * Encode the constant undefined.\n */\nfunction undefined_() {\n return raw(new Uint8Array([(7 /* SimpleValue */ << 5) + 23]));\n}\nexports.undefined_ = undefined_;\n//# sourceMappingURL=value.js.map","import { Principal } from '@dfinity/principal';\nexport var ProxyMessageKind;\n(function (ProxyMessageKind) {\n ProxyMessageKind[\"Error\"] = \"err\";\n ProxyMessageKind[\"GetPrincipal\"] = \"gp\";\n ProxyMessageKind[\"GetPrincipalResponse\"] = \"gpr\";\n ProxyMessageKind[\"Query\"] = \"q\";\n ProxyMessageKind[\"QueryResponse\"] = \"qr\";\n ProxyMessageKind[\"Call\"] = \"c\";\n ProxyMessageKind[\"CallResponse\"] = \"cr\";\n ProxyMessageKind[\"ReadState\"] = \"rs\";\n ProxyMessageKind[\"ReadStateResponse\"] = \"rsr\";\n ProxyMessageKind[\"Status\"] = \"s\";\n ProxyMessageKind[\"StatusResponse\"] = \"sr\";\n})(ProxyMessageKind || (ProxyMessageKind = {}));\n// A Stub Agent that forwards calls to another Agent implementation.\nexport class ProxyStubAgent {\n constructor(_frontend, _agent) {\n this._frontend = _frontend;\n this._agent = _agent;\n }\n onmessage(msg) {\n switch (msg.type) {\n case ProxyMessageKind.GetPrincipal:\n this._agent.getPrincipal().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.GetPrincipalResponse,\n response: response.toText(),\n });\n });\n break;\n case ProxyMessageKind.Query:\n this._agent.query(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.QueryResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Call:\n this._agent.call(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.CallResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.ReadState:\n this._agent.readState(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.ReadStateResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Status:\n this._agent.status().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.StatusResponse,\n response,\n });\n });\n break;\n default:\n throw new Error(`Invalid message received: ${JSON.stringify(msg)}`);\n }\n }\n}\n// An Agent that forwards calls to a backend. The calls are serialized\nexport class ProxyAgent {\n constructor(_backend) {\n this._backend = _backend;\n this._nextId = 0;\n this._pendingCalls = new Map();\n this.rootKey = null;\n }\n onmessage(msg) {\n const id = msg.id;\n const maybePromise = this._pendingCalls.get(id);\n if (!maybePromise) {\n throw new Error('A proxy get the same message twice...');\n }\n this._pendingCalls.delete(id);\n const [resolve, reject] = maybePromise;\n switch (msg.type) {\n case ProxyMessageKind.Error:\n return reject(msg.error);\n case ProxyMessageKind.GetPrincipalResponse:\n case ProxyMessageKind.CallResponse:\n case ProxyMessageKind.QueryResponse:\n case ProxyMessageKind.ReadStateResponse:\n case ProxyMessageKind.StatusResponse:\n return resolve(msg.response);\n default:\n throw new Error(`Invalid message being sent to ProxyAgent: ${JSON.stringify(msg)}`);\n }\n }\n async getPrincipal() {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.GetPrincipal,\n }).then(principal => {\n if (typeof principal !== 'string') {\n throw new Error('Invalid principal received.');\n }\n return Principal.fromText(principal);\n });\n }\n readState(canisterId, fields) {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.ReadState,\n args: [canisterId.toString(), fields],\n });\n }\n call(canisterId, fields) {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Call,\n args: [canisterId.toString(), fields],\n });\n }\n status() {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Status,\n });\n }\n query(canisterId, fields) {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Query,\n args: [canisterId.toString(), fields],\n });\n }\n async _sendAndWait(msg) {\n return new Promise((resolve, reject) => {\n this._pendingCalls.set(msg.id, [resolve, reject]);\n this._backend(msg);\n });\n }\n async fetchRootKey() {\n // Hex-encoded version of the replica root key\n const rootKey = (await this.status()).root_key;\n this.rootKey = rootKey;\n return rootKey;\n }\n}\n//# sourceMappingURL=proxy.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAnalyticsReceiverData = exports.getResult = void 0;\nvar agent_1 = require(\"@dfinity/agent\");\nvar clientRegistry_1 = require(\"./canisters/clientRegistry\");\nvar utils_1 = require(\"./utils\");\nvar getResult = function (sdkVersion, sessionContext, clientRegistryPrincipal) { return __awaiter(void 0, void 0, void 0, function () {\n var actor, handleGetAnalyticsReceiverResponse, analyticsReceiverView, _a, handleRegisterClientResult;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n actor = (0, clientRegistry_1.createCanisterActor)(clientRegistryPrincipal.toText(), new agent_1.AnonymousIdentity(), sessionContext.host);\n return [4 /*yield*/, handleGetAnalyticsReceiver(actor, sessionContext.clientPrincipal, sdkVersion, sessionContext.apiKey)];\n case 1:\n handleGetAnalyticsReceiverResponse = _b.sent();\n (0, utils_1.log)(\"handle.getAnalyticsReceiver\", handleGetAnalyticsReceiverResponse);\n if (!(0, utils_1.isOk)(handleGetAnalyticsReceiverResponse)) return [3 /*break*/, 2];\n analyticsReceiverView = handleGetAnalyticsReceiverResponse.ok;\n if (analyticsReceiverView) {\n return [2 /*return*/, (0, utils_1.createProceedResult)(analyticsReceiverView)];\n }\n return [3 /*break*/, 8];\n case 2:\n if (!(0, utils_1.isErr)(handleGetAnalyticsReceiverResponse)) return [3 /*break*/, 8];\n _a = handleGetAnalyticsReceiverResponse.err;\n switch (_a) {\n case \"clientNotRegistered\": return [3 /*break*/, 3];\n case \"retry\": return [3 /*break*/, 5];\n case \"restart\": return [3 /*break*/, 6];\n }\n return [3 /*break*/, 7];\n case 3: return [4 /*yield*/, handleRegisterClient(actor, sessionContext.clientPrincipal, sdkVersion, sessionContext.apiKey)];\n case 4:\n handleRegisterClientResult = _b.sent();\n (0, utils_1.log)(\"handle.registerClient\", handleRegisterClientResult);\n if ((0, utils_1.isOk)(handleRegisterClientResult)) {\n return [2 /*return*/, (0, utils_1.createOkResult)(\"registered\")];\n }\n else if ((0, utils_1.isProceed)(handleRegisterClientResult)) {\n return [2 /*return*/, handleRegisterClientResult];\n }\n else if ((0, utils_1.isErr)(handleRegisterClientResult)) {\n return [2 /*return*/, handleRegisterClientResult];\n }\n return [3 /*break*/, 8];\n case 5:\n {\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n }\n _b.label = 6;\n case 6:\n {\n return [2 /*return*/, (0, utils_1.createErrRestart)()];\n }\n _b.label = 7;\n case 7:\n {\n //all other error should stop\n return [3 /*break*/, 8];\n }\n _b.label = 8;\n case 8: return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n}); };\nexports.getResult = getResult;\nvar handleGetAnalyticsReceiver = function (actor, clientPrincipal, sdkVersion, apiKey) { return __awaiter(void 0, void 0, void 0, function () {\n var result, e_1, analyticsReceiverView, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, actor.getAnalyticsReceiver([clientPrincipal], sdkVersion, apiKey)];\n case 1:\n result = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_1 = _a.sent();\n (0, utils_1.warn)(\"actor.getAnalyticsReceiver\", e_1);\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n case 3:\n (0, utils_1.log)(\"actor.getAnalyticsReceiver\", result);\n if ((0, utils_1.isOk)(result)) {\n analyticsReceiverView = (0, exports.getAnalyticsReceiverData)(result.ok);\n if (analyticsReceiverView) {\n return [2 /*return*/, (0, utils_1.createOkResult)(analyticsReceiverView)];\n }\n }\n else if ((0, utils_1.isErr)(result)) {\n error = result.err;\n if ((0, utils_1.hasOwnProperty)(error, \"clientNotRegistered\")) {\n return [2 /*return*/, (0, utils_1.createErrResult)(\"clientNotRegistered\")];\n }\n if ((0, utils_1.isErrTemporarilyUnavailable)(error)) {\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n }\n if ((0, utils_1.isErrWrongTopology)(error)) {\n return [2 /*return*/, (0, utils_1.createErrRestart)()];\n }\n }\n return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n}); };\nvar handleRegisterClient = function (actor, clientPrincipal, sdkVersion, apiKey) { return __awaiter(void 0, void 0, void 0, function () {\n var result, e_2, _a, analyticsReceiver, analyticsStoreNotified, analyticsReceiverView, error;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, actor.registerClient([clientPrincipal], sdkVersion, apiKey)];\n case 1:\n result = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n e_2 = _b.sent();\n (0, utils_1.warn)(\"actor.registerClient\", e_2);\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n case 3:\n (0, utils_1.log)(\"actor.registerClient\", result);\n if ((0, utils_1.isOk)(result)) {\n _a = result.ok, analyticsReceiver = _a.analyticsReceiver, analyticsStoreNotified = _a.analyticsStoreNotified;\n if (analyticsStoreNotified) {\n return [2 /*return*/, (0, utils_1.createOkResult)(null)];\n }\n analyticsReceiverView = (0, exports.getAnalyticsReceiverData)(analyticsReceiver);\n if (analyticsReceiverView) {\n return [2 /*return*/, (0, utils_1.createProceedResult)(analyticsReceiverView)];\n }\n }\n else if ((0, utils_1.isErr)(result)) {\n error = result.err;\n if ((0, utils_1.isErrTemporarilyUnavailable)(error)) {\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n }\n if ((0, utils_1.isErrWrongTopology)(error)) {\n return [2 /*return*/, (0, utils_1.createErrRestart)()];\n }\n }\n return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n}); };\nvar getAnalyticsReceiverData = function (analyticsReceiver) {\n var getAnalyticsReceiverApiPrincipal = (0, utils_1.getSharedFunctionDataPrincipal)(analyticsReceiver.getAnalyticsReceiverApi);\n if (getAnalyticsReceiverApiPrincipal) {\n return {\n canisterPrincipal: getAnalyticsReceiverApiPrincipal,\n accessToken: analyticsReceiver.accessToken\n };\n }\n return undefined;\n};\nexports.getAnalyticsReceiverData = getAnalyticsReceiverData;\n//# sourceMappingURL=ClientRegistryService.js.map","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar _0uint = require('./0uint.js');\nvar _1negint = require('./1negint.js');\nvar _2bytes = require('./2bytes.js');\nvar _3string = require('./3string.js');\nvar _4array = require('./4array.js');\nvar _5map = require('./5map.js');\nvar _6tag = require('./6tag.js');\nvar _7float = require('./7float.js');\nvar common = require('./common.js');\nvar byteUtils = require('./byte-utils.js');\n\nfunction invalidMinor(data, pos, minor) {\n throw new Error(`${ common.decodeErrPrefix } encountered invalid minor (${ minor }) for major ${ data[pos] >>> 5 }`);\n}\nfunction errorer(msg) {\n return () => {\n throw new Error(`${ common.decodeErrPrefix } ${ msg }`);\n };\n}\nconst jump = [];\nfor (let i = 0; i <= 23; i++) {\n jump[i] = invalidMinor;\n}\njump[24] = _0uint.decodeUint8;\njump[25] = _0uint.decodeUint16;\njump[26] = _0uint.decodeUint32;\njump[27] = _0uint.decodeUint64;\njump[28] = invalidMinor;\njump[29] = invalidMinor;\njump[30] = invalidMinor;\njump[31] = invalidMinor;\nfor (let i = 32; i <= 55; i++) {\n jump[i] = invalidMinor;\n}\njump[56] = _1negint.decodeNegint8;\njump[57] = _1negint.decodeNegint16;\njump[58] = _1negint.decodeNegint32;\njump[59] = _1negint.decodeNegint64;\njump[60] = invalidMinor;\njump[61] = invalidMinor;\njump[62] = invalidMinor;\njump[63] = invalidMinor;\nfor (let i = 64; i <= 87; i++) {\n jump[i] = _2bytes.decodeBytesCompact;\n}\njump[88] = _2bytes.decodeBytes8;\njump[89] = _2bytes.decodeBytes16;\njump[90] = _2bytes.decodeBytes32;\njump[91] = _2bytes.decodeBytes64;\njump[92] = invalidMinor;\njump[93] = invalidMinor;\njump[94] = invalidMinor;\njump[95] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 96; i <= 119; i++) {\n jump[i] = _3string.decodeStringCompact;\n}\njump[120] = _3string.decodeString8;\njump[121] = _3string.decodeString16;\njump[122] = _3string.decodeString32;\njump[123] = _3string.decodeString64;\njump[124] = invalidMinor;\njump[125] = invalidMinor;\njump[126] = invalidMinor;\njump[127] = errorer('indefinite length bytes/strings are not supported');\nfor (let i = 128; i <= 151; i++) {\n jump[i] = _4array.decodeArrayCompact;\n}\njump[152] = _4array.decodeArray8;\njump[153] = _4array.decodeArray16;\njump[154] = _4array.decodeArray32;\njump[155] = _4array.decodeArray64;\njump[156] = invalidMinor;\njump[157] = invalidMinor;\njump[158] = invalidMinor;\njump[159] = _4array.decodeArrayIndefinite;\nfor (let i = 160; i <= 183; i++) {\n jump[i] = _5map.decodeMapCompact;\n}\njump[184] = _5map.decodeMap8;\njump[185] = _5map.decodeMap16;\njump[186] = _5map.decodeMap32;\njump[187] = _5map.decodeMap64;\njump[188] = invalidMinor;\njump[189] = invalidMinor;\njump[190] = invalidMinor;\njump[191] = _5map.decodeMapIndefinite;\nfor (let i = 192; i <= 215; i++) {\n jump[i] = _6tag.decodeTagCompact;\n}\njump[216] = _6tag.decodeTag8;\njump[217] = _6tag.decodeTag16;\njump[218] = _6tag.decodeTag32;\njump[219] = _6tag.decodeTag64;\njump[220] = invalidMinor;\njump[221] = invalidMinor;\njump[222] = invalidMinor;\njump[223] = invalidMinor;\nfor (let i = 224; i <= 243; i++) {\n jump[i] = errorer('simple values are not supported');\n}\njump[244] = invalidMinor;\njump[245] = invalidMinor;\njump[246] = invalidMinor;\njump[247] = _7float.decodeUndefined;\njump[248] = errorer('simple values are not supported');\njump[249] = _7float.decodeFloat16;\njump[250] = _7float.decodeFloat32;\njump[251] = _7float.decodeFloat64;\njump[252] = invalidMinor;\njump[253] = invalidMinor;\njump[254] = invalidMinor;\njump[255] = _7float.decodeBreak;\nconst quick = [];\nfor (let i = 0; i < 24; i++) {\n quick[i] = new token.Token(token.Type.uint, i, 1);\n}\nfor (let i = -1; i >= -24; i--) {\n quick[31 - i] = new token.Token(token.Type.negint, i, 1);\n}\nquick[64] = new token.Token(token.Type.bytes, new Uint8Array(0), 1);\nquick[96] = new token.Token(token.Type.string, '', 1);\nquick[128] = new token.Token(token.Type.array, 0, 1);\nquick[160] = new token.Token(token.Type.map, 0, 1);\nquick[244] = new token.Token(token.Type.false, false, 1);\nquick[245] = new token.Token(token.Type.true, true, 1);\nquick[246] = new token.Token(token.Type.null, null, 1);\nfunction quickEncodeToken(token$1) {\n switch (token$1.type) {\n case token.Type.false:\n return byteUtils.fromArray([244]);\n case token.Type.true:\n return byteUtils.fromArray([245]);\n case token.Type.null:\n return byteUtils.fromArray([246]);\n case token.Type.bytes:\n if (!token$1.value.length) {\n return byteUtils.fromArray([64]);\n }\n return;\n case token.Type.string:\n if (token$1.value === '') {\n return byteUtils.fromArray([96]);\n }\n return;\n case token.Type.array:\n if (token$1.value === 0) {\n return byteUtils.fromArray([128]);\n }\n return;\n case token.Type.map:\n if (token$1.value === 0) {\n return byteUtils.fromArray([160]);\n }\n return;\n case token.Type.uint:\n if (token$1.value < 24) {\n return byteUtils.fromArray([Number(token$1.value)]);\n }\n return;\n case token.Type.negint:\n if (token$1.value >= -24) {\n return byteUtils.fromArray([31 - Number(token$1.value)]);\n }\n }\n}\n\nexports.jump = jump;\nexports.quick = quick;\nexports.quickEncodeToken = quickEncodeToken;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar _0uint = require('./0uint.js');\nvar common = require('./common.js');\n\nfunction decodeNegint8(data, pos, _minor, options) {\n return new token.Token(token.Type.negint, -1 - _0uint.readUint8(data, pos + 1, options), 2);\n}\nfunction decodeNegint16(data, pos, _minor, options) {\n return new token.Token(token.Type.negint, -1 - _0uint.readUint16(data, pos + 1, options), 3);\n}\nfunction decodeNegint32(data, pos, _minor, options) {\n return new token.Token(token.Type.negint, -1 - _0uint.readUint32(data, pos + 1, options), 5);\n}\nconst neg1b = BigInt(-1);\nconst pos1b = BigInt(1);\nfunction decodeNegint64(data, pos, _minor, options) {\n const int = _0uint.readUint64(data, pos + 1, options);\n if (typeof int !== 'bigint') {\n const value = -1 - int;\n if (value >= Number.MIN_SAFE_INTEGER) {\n return new token.Token(token.Type.negint, value, 9);\n }\n }\n if (options.allowBigInt !== true) {\n throw new Error(`${ common.decodeErrPrefix } integers outside of the safe integer range are not supported`);\n }\n return new token.Token(token.Type.negint, neg1b - BigInt(int), 9);\n}\nfunction encodeNegint(buf, token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n _0uint.encodeUintValue(buf, token.type.majorEncoded, unsigned);\n}\nencodeNegint.encodedSize = function encodedSize(token) {\n const negint = token.value;\n const unsigned = typeof negint === 'bigint' ? negint * neg1b - pos1b : negint * -1 - 1;\n if (unsigned < _0uint.uintBoundaries[0]) {\n return 1;\n }\n if (unsigned < _0uint.uintBoundaries[1]) {\n return 2;\n }\n if (unsigned < _0uint.uintBoundaries[2]) {\n return 3;\n }\n if (unsigned < _0uint.uintBoundaries[3]) {\n return 5;\n }\n return 9;\n};\nencodeNegint.compareTokens = function compareTokens(tok1, tok2) {\n return tok1.value < tok2.value ? 1 : tok1.value > tok2.value ? -1 : 0;\n};\n\nexports.decodeNegint16 = decodeNegint16;\nexports.decodeNegint32 = decodeNegint32;\nexports.decodeNegint64 = decodeNegint64;\nexports.decodeNegint8 = decodeNegint8;\nexports.encodeNegint = encodeNegint;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar common = require('./common.js');\nvar _0uint = require('./0uint.js');\nvar _2bytes = require('./2bytes.js');\nvar byteUtils = require('./byte-utils.js');\n\nfunction toToken(data, pos, prefix, length, options) {\n const totLength = prefix + length;\n common.assertEnoughData(data, pos, totLength);\n const tok = new token.Token(token.Type.string, byteUtils.toString(data, pos + prefix, pos + totLength), totLength);\n if (options.retainStringBytes === true) {\n tok.byteValue = byteUtils.slice(data, pos + prefix, pos + totLength);\n }\n return tok;\n}\nfunction decodeStringCompact(data, pos, minor, options) {\n return toToken(data, pos, 1, minor, options);\n}\nfunction decodeString8(data, pos, _minor, options) {\n return toToken(data, pos, 2, _0uint.readUint8(data, pos + 1, options), options);\n}\nfunction decodeString16(data, pos, _minor, options) {\n return toToken(data, pos, 3, _0uint.readUint16(data, pos + 1, options), options);\n}\nfunction decodeString32(data, pos, _minor, options) {\n return toToken(data, pos, 5, _0uint.readUint32(data, pos + 1, options), options);\n}\nfunction decodeString64(data, pos, _minor, options) {\n const l = _0uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ common.decodeErrPrefix } 64-bit integer string lengths not supported`);\n }\n return toToken(data, pos, 9, l, options);\n}\nconst encodeString = _2bytes.encodeBytes;\n\nexports.decodeString16 = decodeString16;\nexports.decodeString32 = decodeString32;\nexports.decodeString64 = decodeString64;\nexports.decodeString8 = decodeString8;\nexports.decodeStringCompact = decodeStringCompact;\nexports.encodeString = encodeString;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar _0uint = require('./0uint.js');\nvar common = require('./common.js');\n\nfunction toToken(_data, _pos, prefix, length) {\n return new token.Token(token.Type.array, length, prefix);\n}\nfunction decodeArrayCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nfunction decodeArray8(data, pos, _minor, options) {\n return toToken(data, pos, 2, _0uint.readUint8(data, pos + 1, options));\n}\nfunction decodeArray16(data, pos, _minor, options) {\n return toToken(data, pos, 3, _0uint.readUint16(data, pos + 1, options));\n}\nfunction decodeArray32(data, pos, _minor, options) {\n return toToken(data, pos, 5, _0uint.readUint32(data, pos + 1, options));\n}\nfunction decodeArray64(data, pos, _minor, options) {\n const l = _0uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ common.decodeErrPrefix } 64-bit integer array lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nfunction decodeArrayIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ common.decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nfunction encodeArray(buf, token$1) {\n _0uint.encodeUintValue(buf, token.Type.array.majorEncoded, token$1.value);\n}\nencodeArray.compareTokens = _0uint.encodeUint.compareTokens;\n\nexports.decodeArray16 = decodeArray16;\nexports.decodeArray32 = decodeArray32;\nexports.decodeArray64 = decodeArray64;\nexports.decodeArray8 = decodeArray8;\nexports.decodeArrayCompact = decodeArrayCompact;\nexports.decodeArrayIndefinite = decodeArrayIndefinite;\nexports.encodeArray = encodeArray;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar _0uint = require('./0uint.js');\nvar common = require('./common.js');\n\nfunction toToken(_data, _pos, prefix, length) {\n return new token.Token(token.Type.map, length, prefix);\n}\nfunction decodeMapCompact(data, pos, minor, _options) {\n return toToken(data, pos, 1, minor);\n}\nfunction decodeMap8(data, pos, _minor, options) {\n return toToken(data, pos, 2, _0uint.readUint8(data, pos + 1, options));\n}\nfunction decodeMap16(data, pos, _minor, options) {\n return toToken(data, pos, 3, _0uint.readUint16(data, pos + 1, options));\n}\nfunction decodeMap32(data, pos, _minor, options) {\n return toToken(data, pos, 5, _0uint.readUint32(data, pos + 1, options));\n}\nfunction decodeMap64(data, pos, _minor, options) {\n const l = _0uint.readUint64(data, pos + 1, options);\n if (typeof l === 'bigint') {\n throw new Error(`${ common.decodeErrPrefix } 64-bit integer map lengths not supported`);\n }\n return toToken(data, pos, 9, l);\n}\nfunction decodeMapIndefinite(data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ common.decodeErrPrefix } indefinite length items not allowed`);\n }\n return toToken(data, pos, 1, Infinity);\n}\nfunction encodeMap(buf, token$1) {\n _0uint.encodeUintValue(buf, token.Type.map.majorEncoded, token$1.value);\n}\nencodeMap.compareTokens = _0uint.encodeUint.compareTokens;\n\nexports.decodeMap16 = decodeMap16;\nexports.decodeMap32 = decodeMap32;\nexports.decodeMap64 = decodeMap64;\nexports.decodeMap8 = decodeMap8;\nexports.decodeMapCompact = decodeMapCompact;\nexports.decodeMapIndefinite = decodeMapIndefinite;\nexports.encodeMap = encodeMap;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar _0uint = require('./0uint.js');\n\nfunction decodeTagCompact(_data, _pos, minor, _options) {\n return new token.Token(token.Type.tag, minor, 1);\n}\nfunction decodeTag8(data, pos, _minor, options) {\n return new token.Token(token.Type.tag, _0uint.readUint8(data, pos + 1, options), 2);\n}\nfunction decodeTag16(data, pos, _minor, options) {\n return new token.Token(token.Type.tag, _0uint.readUint16(data, pos + 1, options), 3);\n}\nfunction decodeTag32(data, pos, _minor, options) {\n return new token.Token(token.Type.tag, _0uint.readUint32(data, pos + 1, options), 5);\n}\nfunction decodeTag64(data, pos, _minor, options) {\n return new token.Token(token.Type.tag, _0uint.readUint64(data, pos + 1, options), 9);\n}\nfunction encodeTag(buf, token$1) {\n _0uint.encodeUintValue(buf, token.Type.tag.majorEncoded, token$1.value);\n}\nencodeTag.compareTokens = _0uint.encodeUint.compareTokens;\n\nexports.decodeTag16 = decodeTag16;\nexports.decodeTag32 = decodeTag32;\nexports.decodeTag64 = decodeTag64;\nexports.decodeTag8 = decodeTag8;\nexports.decodeTagCompact = decodeTagCompact;\nexports.encodeTag = encodeTag;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar token = require('./token.js');\nvar common = require('./common.js');\nvar _0uint = require('./0uint.js');\n\nconst MINOR_FALSE = 20;\nconst MINOR_TRUE = 21;\nconst MINOR_NULL = 22;\nconst MINOR_UNDEFINED = 23;\nfunction decodeUndefined(_data, _pos, _minor, options) {\n if (options.allowUndefined === false) {\n throw new Error(`${ common.decodeErrPrefix } undefined values are not supported`);\n } else if (options.coerceUndefinedToNull === true) {\n return new token.Token(token.Type.null, null, 1);\n }\n return new token.Token(token.Type.undefined, undefined, 1);\n}\nfunction decodeBreak(_data, _pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${ common.decodeErrPrefix } indefinite length items not allowed`);\n }\n return new token.Token(token.Type.break, undefined, 1);\n}\nfunction createToken(value, bytes, options) {\n if (options) {\n if (options.allowNaN === false && Number.isNaN(value)) {\n throw new Error(`${ common.decodeErrPrefix } NaN values are not supported`);\n }\n if (options.allowInfinity === false && (value === Infinity || value === -Infinity)) {\n throw new Error(`${ common.decodeErrPrefix } Infinity values are not supported`);\n }\n }\n return new token.Token(token.Type.float, value, bytes);\n}\nfunction decodeFloat16(data, pos, _minor, options) {\n return createToken(readFloat16(data, pos + 1), 3, options);\n}\nfunction decodeFloat32(data, pos, _minor, options) {\n return createToken(readFloat32(data, pos + 1), 5, options);\n}\nfunction decodeFloat64(data, pos, _minor, options) {\n return createToken(readFloat64(data, pos + 1), 9, options);\n}\nfunction encodeFloat(buf, token$1, options) {\n const float = token$1.value;\n if (float === false) {\n buf.push([token.Type.float.majorEncoded | MINOR_FALSE]);\n } else if (float === true) {\n buf.push([token.Type.float.majorEncoded | MINOR_TRUE]);\n } else if (float === null) {\n buf.push([token.Type.float.majorEncoded | MINOR_NULL]);\n } else if (float === undefined) {\n buf.push([token.Type.float.majorEncoded | MINOR_UNDEFINED]);\n } else {\n let decoded;\n let success = false;\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n ui8a[0] = 249;\n buf.push(ui8a.slice(0, 3));\n success = true;\n } else {\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n ui8a[0] = 250;\n buf.push(ui8a.slice(0, 5));\n success = true;\n }\n }\n }\n if (!success) {\n encodeFloat64(float);\n decoded = readFloat64(ui8a, 1);\n ui8a[0] = 251;\n buf.push(ui8a.slice(0, 9));\n }\n }\n}\nencodeFloat.encodedSize = function encodedSize(token, options) {\n const float = token.value;\n if (float === false || float === true || float === null || float === undefined) {\n return 1;\n }\n let decoded;\n if (!options || options.float64 !== true) {\n encodeFloat16(float);\n decoded = readFloat16(ui8a, 1);\n if (float === decoded || Number.isNaN(float)) {\n return 3;\n }\n encodeFloat32(float);\n decoded = readFloat32(ui8a, 1);\n if (float === decoded) {\n return 5;\n }\n }\n return 9;\n};\nconst buffer = new ArrayBuffer(9);\nconst dataView = new DataView(buffer, 1);\nconst ui8a = new Uint8Array(buffer, 0);\nfunction encodeFloat16(inp) {\n if (inp === Infinity) {\n dataView.setUint16(0, 31744, false);\n } else if (inp === -Infinity) {\n dataView.setUint16(0, 64512, false);\n } else if (Number.isNaN(inp)) {\n dataView.setUint16(0, 32256, false);\n } else {\n dataView.setFloat32(0, inp);\n const valu32 = dataView.getUint32(0);\n const exponent = (valu32 & 2139095040) >> 23;\n const mantissa = valu32 & 8388607;\n if (exponent === 255) {\n dataView.setUint16(0, 31744, false);\n } else if (exponent === 0) {\n dataView.setUint16(0, (inp & 2147483648) >> 16 | mantissa >> 13, false);\n } else {\n const logicalExponent = exponent - 127;\n if (logicalExponent < -24) {\n dataView.setUint16(0, 0);\n } else if (logicalExponent < -14) {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | 1 << 24 + logicalExponent, false);\n } else {\n dataView.setUint16(0, (valu32 & 2147483648) >> 16 | logicalExponent + 15 << 10 | mantissa >> 13, false);\n }\n }\n }\n}\nfunction readFloat16(ui8a, pos) {\n if (ui8a.length - pos < 2) {\n throw new Error(`${ common.decodeErrPrefix } not enough data for float16`);\n }\n const half = (ui8a[pos] << 8) + ui8a[pos + 1];\n if (half === 31744) {\n return Infinity;\n }\n if (half === 64512) {\n return -Infinity;\n }\n if (half === 32256) {\n return NaN;\n }\n const exp = half >> 10 & 31;\n const mant = half & 1023;\n let val;\n if (exp === 0) {\n val = mant * 2 ** -24;\n } else if (exp !== 31) {\n val = (mant + 1024) * 2 ** (exp - 25);\n } else {\n val = mant === 0 ? Infinity : NaN;\n }\n return half & 32768 ? -val : val;\n}\nfunction encodeFloat32(inp) {\n dataView.setFloat32(0, inp, false);\n}\nfunction readFloat32(ui8a, pos) {\n if (ui8a.length - pos < 4) {\n throw new Error(`${ common.decodeErrPrefix } not enough data for float32`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 4).getFloat32(0, false);\n}\nfunction encodeFloat64(inp) {\n dataView.setFloat64(0, inp, false);\n}\nfunction readFloat64(ui8a, pos) {\n if (ui8a.length - pos < 8) {\n throw new Error(`${ common.decodeErrPrefix } not enough data for float64`);\n }\n const offset = (ui8a.byteOffset || 0) + pos;\n return new DataView(ui8a.buffer, offset, 8).getFloat64(0, false);\n}\nencodeFloat.compareTokens = _0uint.encodeUint.compareTokens;\n\nexports.decodeBreak = decodeBreak;\nexports.decodeFloat16 = decodeFloat16;\nexports.decodeFloat32 = decodeFloat32;\nexports.decodeFloat64 = decodeFloat64;\nexports.decodeUndefined = decodeUndefined;\nexports.encodeFloat = encodeFloat;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bytes = require('../bytes.js');\nvar digest$1 = require('./digest.js');\n\nconst code = 0;\nconst name = 'identity';\nconst encode = bytes.coerce;\nconst digest = input => digest$1.create(code, encode(input));\nconst identity = {\n code,\n name,\n encode,\n digest\n};\n\nexports.identity = identity;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar identity = require('./bases/identity.js');\nvar base2 = require('./bases/base2.js');\nvar base8 = require('./bases/base8.js');\nvar base10 = require('./bases/base10.js');\nvar base16 = require('./bases/base16.js');\nvar base32 = require('./bases/base32.js');\nvar base36 = require('./bases/base36.js');\nvar base58 = require('./bases/base58.js');\nvar base64 = require('./bases/base64.js');\nvar sha2 = require('./hashes/sha2.js');\nvar identity$1 = require('./hashes/identity.js');\nvar raw = require('./codecs/raw.js');\nvar json = require('./codecs/json.js');\nrequire('./index.js');\nvar cid = require('./cid.js');\nvar hasher = require('./hashes/hasher.js');\nvar digest = require('./hashes/digest.js');\nvar varint = require('./varint.js');\nvar bytes = require('./bytes.js');\n\nconst bases = {\n ...identity,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64\n};\nconst hashes = {\n ...sha2,\n ...identity$1\n};\nconst codecs = {\n raw,\n json\n};\n\nexports.CID = cid.CID;\nexports.hasher = hasher;\nexports.digest = digest;\nexports.varint = varint;\nexports.bytes = bytes;\nexports.bases = bases;\nexports.codecs = codecs;\nexports.hashes = hashes;\n","'use strict';\n\nvar basics = require('multiformats/basics');\n\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: basics.bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...basics.bases\n};\n\nmodule.exports = BASES;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = new Uint8Array(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return output;\n}\n\nexports.concat = concat;\n","'use strict'\nconst isElectron = require('is-electron')\n\nconst IS_ENV_WITH_DOM = typeof window === 'object' && typeof document === 'object' && document.nodeType === 9\n// @ts-ignore\nconst IS_ELECTRON = isElectron()\nconst IS_BROWSER = IS_ENV_WITH_DOM && !IS_ELECTRON\nconst IS_ELECTRON_MAIN = IS_ELECTRON && !IS_ENV_WITH_DOM\nconst IS_ELECTRON_RENDERER = IS_ELECTRON && IS_ENV_WITH_DOM\nconst IS_NODE = typeof require === 'function' && typeof globalThis.process !== 'undefined' && typeof globalThis.process.release !== 'undefined' && globalThis.process.release.name === 'node' && !IS_ELECTRON\n// @ts-ignore - we either ignore worker scope or dom scope\nconst IS_WEBWORKER = typeof importScripts === 'function' && typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope\nconst IS_TEST = typeof globalThis.process !== 'undefined' && typeof globalThis.process.env !== 'undefined' && globalThis.process.env.NODE_ENV === 'test'\nconst IS_REACT_NATIVE = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nmodule.exports = {\n isTest: IS_TEST,\n isElectron: IS_ELECTRON,\n isElectronMain: IS_ELECTRON_MAIN,\n isElectronRenderer: IS_ELECTRON_RENDERER,\n isNode: IS_NODE,\n /**\n * Detects browser main thread **NOT** web worker or service worker\n */\n isBrowser: IS_BROWSER,\n isWebWorker: IS_WEBWORKER,\n isEnvWithDom: IS_ENV_WITH_DOM,\n isReactNative: IS_REACT_NATIVE\n}\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","/* eslint-disable no-undef */\n'use strict'\n\nconst { fetch, Request, Headers } = require('./http/fetch')\nconst { TimeoutError, HTTPError } = require('./http/error')\nconst merge = require('merge-options').bind({ ignoreUndefined: true })\nconst { URL, URLSearchParams } = require('iso-url')\nconst anySignal = require('any-signal')\n\n/**\n * @typedef {import('stream').Readable} NodeReadableStream\n * @typedef {import('./types').HTTPOptions} HTTPOptions\n * @typedef {import('./types').ExtendedResponse} ExtendedResponse\n */\n\n/**\n * @template TResponse\n * @param {Promise<TResponse>} promise\n * @param {number | undefined} ms\n * @param {AbortController} abortController\n * @returns {Promise<TResponse>}\n */\nconst timeout = (promise, ms, abortController) => {\n if (ms === undefined) {\n return promise\n }\n\n const start = Date.now()\n\n const timedOut = () => {\n const time = Date.now() - start\n\n return time >= ms\n }\n\n return new Promise((resolve, reject) => {\n const timeoutID = setTimeout(() => {\n if (timedOut()) {\n reject(new TimeoutError())\n abortController.abort()\n }\n }, ms)\n\n /**\n * @param {(value: any) => void } next\n */\n const after = (next) => {\n /**\n * @param {any} res\n */\n const fn = (res) => {\n clearTimeout(timeoutID)\n\n if (timedOut()) {\n reject(new TimeoutError())\n return\n }\n\n next(res)\n }\n return fn\n }\n\n promise\n .then(after(resolve), after(reject))\n })\n}\n\nconst defaults = {\n throwHttpErrors: true,\n credentials: 'same-origin'\n}\n\nclass HTTP {\n /**\n *\n * @param {HTTPOptions} options\n */\n constructor (options = {}) {\n /** @type {HTTPOptions} */\n this.opts = merge(defaults, options)\n }\n\n /**\n * Fetch\n *\n * @param {string | Request} resource\n * @param {HTTPOptions} options\n * @returns {Promise<ExtendedResponse>}\n */\n async fetch (resource, options = {}) {\n /** @type {HTTPOptions} */\n const opts = merge(this.opts, options)\n const headers = new Headers(opts.headers)\n\n // validate resource type\n if (typeof resource !== 'string' && !(resource instanceof URL || resource instanceof Request)) {\n throw new TypeError('`resource` must be a string, URL, or Request')\n }\n\n const url = new URL(resource.toString(), opts.base)\n\n const {\n searchParams,\n transformSearchParams,\n json\n } = opts\n\n if (searchParams) {\n if (typeof transformSearchParams === 'function') {\n // @ts-ignore\n url.search = transformSearchParams(new URLSearchParams(opts.searchParams))\n } else {\n // @ts-ignore\n url.search = new URLSearchParams(opts.searchParams)\n }\n }\n\n if (json) {\n opts.body = JSON.stringify(opts.json)\n headers.set('content-type', 'application/json')\n }\n\n const abortController = new AbortController()\n // @ts-ignore\n const signal = anySignal([abortController.signal, opts.signal])\n\n const response = await timeout(\n fetch(\n url.toString(),\n {\n ...opts,\n signal,\n timeout: undefined,\n headers\n }\n ),\n opts.timeout,\n abortController\n )\n\n if (!response.ok && opts.throwHttpErrors) {\n if (opts.handleError) {\n await opts.handleError(response)\n }\n throw new HTTPError(response)\n }\n\n response.iterator = function () {\n return fromStream(response.body)\n }\n\n response.ndjson = async function * () {\n for await (const chunk of ndjson(response.iterator())) {\n if (options.transform) {\n yield options.transform(chunk)\n } else {\n yield chunk\n }\n }\n }\n\n return response\n }\n\n /**\n * @param {string | Request} resource\n * @param {HTTPOptions} options\n */\n post (resource, options = {}) {\n return this.fetch(resource, { ...options, method: 'POST' })\n }\n\n /**\n * @param {string | Request} resource\n * @param {HTTPOptions} options\n */\n get (resource, options = {}) {\n return this.fetch(resource, { ...options, method: 'GET' })\n }\n\n /**\n * @param {string | Request} resource\n * @param {HTTPOptions} options\n */\n put (resource, options = {}) {\n return this.fetch(resource, { ...options, method: 'PUT' })\n }\n\n /**\n * @param {string | Request} resource\n * @param {HTTPOptions} options\n */\n delete (resource, options = {}) {\n return this.fetch(resource, { ...options, method: 'DELETE' })\n }\n\n /**\n * @param {string | Request} resource\n * @param {HTTPOptions} options\n */\n options (resource, options = {}) {\n return this.fetch(resource, { ...options, method: 'OPTIONS' })\n }\n}\n\n/**\n * Parses NDJSON chunks from an iterator\n *\n * @param {AsyncIterable<Uint8Array>} source\n * @returns {AsyncIterable<any>}\n */\nconst ndjson = async function * (source) {\n const decoder = new TextDecoder()\n let buf = ''\n\n for await (const chunk of source) {\n buf += decoder.decode(chunk, { stream: true })\n const lines = buf.split(/\\r?\\n/)\n\n for (let i = 0; i < lines.length - 1; i++) {\n const l = lines[i].trim()\n if (l.length > 0) {\n yield JSON.parse(l)\n }\n }\n buf = lines[lines.length - 1]\n }\n buf += decoder.decode()\n buf = buf.trim()\n if (buf.length !== 0) {\n yield JSON.parse(buf)\n }\n}\n\n/**\n * Stream to AsyncIterable\n *\n * @template TChunk\n * @param {ReadableStream<TChunk> | NodeReadableStream | null} source\n * @returns {AsyncIterable<TChunk>}\n */\nconst fromStream = (source) => {\n // Workaround for https://github.com/node-fetch/node-fetch/issues/766\n if (isNodeReadableStream(source)) {\n const iter = source[Symbol.asyncIterator]()\n return {\n [Symbol.asyncIterator] () {\n return {\n next: iter.next.bind(iter),\n return (value) {\n source.destroy()\n if (typeof iter.return === 'function') {\n return iter.return()\n }\n return Promise.resolve({ done: true, value })\n }\n }\n }\n }\n }\n\n if (isWebReadableStream(source)) {\n const reader = source.getReader()\n return (async function * () {\n try {\n while (true) {\n // Read from the stream\n const { done, value } = await reader.read()\n // Exit if we're done\n if (done) return\n // Else yield the chunk\n if (value) {\n yield value\n }\n }\n } finally {\n reader.releaseLock()\n }\n })()\n }\n\n if (isAsyncIterable(source)) {\n return source\n }\n\n throw new TypeError('Body can\\'t be converted to AsyncIterable')\n}\n\n/**\n * Check if it's an AsyncIterable\n *\n * @template {unknown} TChunk\n * @template {any} Other\n * @param {Other|AsyncIterable<TChunk>} value\n * @returns {value is AsyncIterable<TChunk>}\n */\nconst isAsyncIterable = (value) => {\n return typeof value === 'object' &&\n value !== null &&\n typeof /** @type {any} */(value)[Symbol.asyncIterator] === 'function'\n}\n\n/**\n * Check for web readable stream\n *\n * @template {unknown} TChunk\n * @template {any} Other\n * @param {Other|ReadableStream<TChunk>} value\n * @returns {value is ReadableStream<TChunk>}\n */\nconst isWebReadableStream = (value) => {\n return value && typeof /** @type {any} */(value).getReader === 'function'\n}\n\n/**\n * @param {any} value\n * @returns {value is NodeReadableStream}\n */\nconst isNodeReadableStream = (value) =>\n Object.prototype.hasOwnProperty.call(value, 'readable') &&\n Object.prototype.hasOwnProperty.call(value, 'writable')\n\nHTTP.HTTPError = HTTPError\nHTTP.TimeoutError = TimeoutError\nHTTP.streamToAsyncIterator = fromStream\n\n/**\n * @param {string | Request} resource\n * @param {HTTPOptions} [options]\n */\nHTTP.post = (resource, options) => new HTTP(options).post(resource, options)\n\n/**\n * @param {string | Request} resource\n * @param {HTTPOptions} [options]\n */\nHTTP.get = (resource, options) => new HTTP(options).get(resource, options)\n\n/**\n * @param {string | Request} resource\n * @param {HTTPOptions} [options]\n */\nHTTP.put = (resource, options) => new HTTP(options).put(resource, options)\n\n/**\n * @param {string | Request} resource\n * @param {HTTPOptions} [options]\n */\nHTTP.delete = (resource, options) => new HTTP(options).delete(resource, options)\n\n/**\n * @param {string | Request} resource\n * @param {HTTPOptions} [options]\n */\nHTTP.options = (resource, options) => new HTTP(options).options(resource, options)\n\nmodule.exports = HTTP\n","'use strict'\n\nclass TimeoutError extends Error {\n constructor (message = 'Request timed out') {\n super(message)\n this.name = 'TimeoutError'\n }\n}\nexports.TimeoutError = TimeoutError\n\nclass AbortError extends Error {\n constructor (message = 'The operation was aborted.') {\n super(message)\n this.name = 'AbortError'\n }\n}\nexports.AbortError = AbortError\n\nclass HTTPError extends Error {\n /**\n * @param {Response} response\n */\n constructor (response) {\n super(response.statusText)\n this.name = 'HTTPError'\n this.response = response\n }\n}\nexports.HTTPError = HTTPError\n","'use strict';\nconst isOptionObject = require('is-plain-obj');\n\nconst {hasOwnProperty} = Object.prototype;\nconst {propertyIsEnumerable} = Object;\nconst defineProperty = (object, name, value) => Object.defineProperty(object, name, {\n\tvalue,\n\twritable: true,\n\tenumerable: true,\n\tconfigurable: true\n});\n\nconst globalThis = this;\nconst defaultMergeOptions = {\n\tconcatArrays: false,\n\tignoreUndefined: false\n};\n\nconst getEnumerableOwnPropertyKeys = value => {\n\tconst keys = [];\n\n\tfor (const key in value) {\n\t\tif (hasOwnProperty.call(value, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\n\t/* istanbul ignore else */\n\tif (Object.getOwnPropertySymbols) {\n\t\tconst symbols = Object.getOwnPropertySymbols(value);\n\n\t\tfor (const symbol of symbols) {\n\t\t\tif (propertyIsEnumerable.call(value, symbol)) {\n\t\t\t\tkeys.push(symbol);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn keys;\n};\n\nfunction clone(value) {\n\tif (Array.isArray(value)) {\n\t\treturn cloneArray(value);\n\t}\n\n\tif (isOptionObject(value)) {\n\t\treturn cloneOptionObject(value);\n\t}\n\n\treturn value;\n}\n\nfunction cloneArray(array) {\n\tconst result = array.slice(0, 0);\n\n\tgetEnumerableOwnPropertyKeys(array).forEach(key => {\n\t\tdefineProperty(result, key, clone(array[key]));\n\t});\n\n\treturn result;\n}\n\nfunction cloneOptionObject(object) {\n\tconst result = Object.getPrototypeOf(object) === null ? Object.create(null) : {};\n\n\tgetEnumerableOwnPropertyKeys(object).forEach(key => {\n\t\tdefineProperty(result, key, clone(object[key]));\n\t});\n\n\treturn result;\n}\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {string[]} keys keys to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n */\nconst mergeKeys = (merged, source, keys, config) => {\n\tkeys.forEach(key => {\n\t\tif (typeof source[key] === 'undefined' && config.ignoreUndefined) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Do not recurse into prototype chain of merged\n\t\tif (key in merged && merged[key] !== Object.getPrototypeOf(merged)) {\n\t\t\tdefineProperty(merged, key, merge(merged[key], source[key], config));\n\t\t} else {\n\t\t\tdefineProperty(merged, key, clone(source[key]));\n\t\t}\n\t});\n\n\treturn merged;\n};\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n *\n * see [Array.prototype.concat ( ...arguments )](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.concat)\n */\nconst concatArrays = (merged, source, config) => {\n\tlet result = merged.slice(0, 0);\n\tlet resultIndex = 0;\n\n\t[merged, source].forEach(array => {\n\t\tconst indices = [];\n\n\t\t// `result.concat(array)` with cloning\n\t\tfor (let k = 0; k < array.length; k++) {\n\t\t\tif (!hasOwnProperty.call(array, k)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tindices.push(String(k));\n\n\t\t\tif (array === merged) {\n\t\t\t\t// Already cloned\n\t\t\t\tdefineProperty(result, resultIndex++, array[k]);\n\t\t\t} else {\n\t\t\t\tdefineProperty(result, resultIndex++, clone(array[k]));\n\t\t\t}\n\t\t}\n\n\t\t// Merge non-index keys\n\t\tresult = mergeKeys(result, array, getEnumerableOwnPropertyKeys(array).filter(key => !indices.includes(key)), config);\n\t});\n\n\treturn result;\n};\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n */\nfunction merge(merged, source, config) {\n\tif (config.concatArrays && Array.isArray(merged) && Array.isArray(source)) {\n\t\treturn concatArrays(merged, source, config);\n\t}\n\n\tif (!isOptionObject(source) || !isOptionObject(merged)) {\n\t\treturn clone(source);\n\t}\n\n\treturn mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), config);\n}\n\nmodule.exports = function (...options) {\n\tconst config = merge(clone(defaultMergeOptions), (this !== globalThis && this) || {}, defaultMergeOptions);\n\tlet merged = {_: {}};\n\n\tfor (const option of options) {\n\t\tif (option === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!isOptionObject(option)) {\n\t\t\tthrow new TypeError('`' + option + '` is not an Option Object');\n\t\t}\n\n\t\tmerged = merge(merged, {_: option}, config);\n\t}\n\n\treturn merged._;\n};\n","'use strict'\n\nconst isReactNative =\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n\nfunction getDefaultBase () {\n if (isReactNative) {\n return 'http://localhost'\n }\n // in some environments i.e. cloudflare workers location is not available\n if (!self.location) {\n return ''\n }\n\n return self.location.protocol + '//' + self.location.host\n}\n\nconst URL = self.URL\nconst defaultBase = getDefaultBase()\n\nclass URLWithLegacySupport {\n constructor (url = '', base = defaultBase) {\n this.super = new URL(url, base)\n this.path = this.pathname + this.search\n this.auth =\n this.username && this.password\n ? this.username + ':' + this.password\n : null\n\n this.query =\n this.search && this.search.startsWith('?')\n ? this.search.slice(1)\n : null\n }\n\n get hash () {\n return this.super.hash\n }\n\n get host () {\n return this.super.host\n }\n\n get hostname () {\n return this.super.hostname\n }\n\n get href () {\n return this.super.href\n }\n\n get origin () {\n return this.super.origin\n }\n\n get password () {\n return this.super.password\n }\n\n get pathname () {\n return this.super.pathname\n }\n\n get port () {\n return this.super.port\n }\n\n get protocol () {\n return this.super.protocol\n }\n\n get search () {\n return this.super.search\n }\n\n get searchParams () {\n return this.super.searchParams\n }\n\n get username () {\n return this.super.username\n }\n\n set hash (hash) {\n this.super.hash = hash\n }\n\n set host (host) {\n this.super.host = host\n }\n\n set hostname (hostname) {\n this.super.hostname = hostname\n }\n\n set href (href) {\n this.super.href = href\n }\n\n set password (password) {\n this.super.password = password\n }\n\n set pathname (pathname) {\n this.super.pathname = pathname\n }\n\n set port (port) {\n this.super.port = port\n }\n\n set protocol (protocol) {\n this.super.protocol = protocol\n }\n\n set search (search) {\n this.super.search = search\n }\n\n set username (username) {\n this.super.username = username\n }\n\n /**\n * @param {any} o\n */\n static createObjectURL (o) {\n return URL.createObjectURL(o)\n }\n\n /**\n * @param {string} o\n */\n static revokeObjectURL (o) {\n URL.revokeObjectURL(o)\n }\n\n toJSON () {\n return this.super.toJSON()\n }\n\n toString () {\n return this.super.toString()\n }\n\n format () {\n return this.toString()\n }\n}\n\n/**\n * @param {string | import('url').UrlObject} obj\n */\nfunction format (obj) {\n if (typeof obj === 'string') {\n const url = new URL(obj)\n\n return url.toString()\n }\n\n if (!(obj instanceof URL)) {\n const userPass =\n // @ts-ignore its not supported in node but we normalise\n obj.username && obj.password\n // @ts-ignore its not supported in node but we normalise\n ? `${obj.username}:${obj.password}@`\n : ''\n const auth = obj.auth ? obj.auth + '@' : ''\n const port = obj.port ? ':' + obj.port : ''\n const protocol = obj.protocol ? obj.protocol + '//' : ''\n const host = obj.host || ''\n const hostname = obj.hostname || ''\n const search = obj.search || (obj.query ? '?' + obj.query : '')\n const hash = obj.hash || ''\n const pathname = obj.pathname || ''\n // @ts-ignore - path is not supported in node but we normalise\n const path = obj.path || pathname + search\n\n return `${protocol}${userPass || auth}${\n host || hostname + port\n }${path}${hash}`\n }\n}\n\nmodule.exports = {\n URLWithLegacySupport,\n URLSearchParams: self.URLSearchParams,\n defaultBase,\n format\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction modeToString(mode) {\n if (mode == null) {\n return undefined;\n }\n if (typeof mode === 'string') {\n return mode;\n }\n return mode.toString(8).padStart(4, '0');\n}\n\nexports.modeToString = modeToString;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar errCode = require('err-code');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\n\nfunction parseMtime(input) {\n if (input == null) {\n return undefined;\n }\n let mtime;\n if (input.secs != null) {\n mtime = {\n secs: input.secs,\n nsecs: input.nsecs\n };\n }\n if (input.Seconds != null) {\n mtime = {\n secs: input.Seconds,\n nsecs: input.FractionalNanoseconds\n };\n }\n if (Array.isArray(input)) {\n mtime = {\n secs: input[0],\n nsecs: input[1]\n };\n }\n if (input instanceof Date) {\n const ms = input.getTime();\n const secs = Math.floor(ms / 1000);\n mtime = {\n secs: secs,\n nsecs: (ms - secs * 1000) * 1000\n };\n }\n if (!Object.prototype.hasOwnProperty.call(mtime, 'secs')) {\n return undefined;\n }\n if (mtime != null && mtime.nsecs != null && (mtime.nsecs < 0 || mtime.nsecs > 999999999)) {\n throw errCode__default['default'](new Error('mtime-nsecs must be within the range [0,999999999]'), 'ERR_INVALID_MTIME_NSECS');\n }\n return mtime;\n}\n\nexports.parseMtime = parseMtime;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createStat = configure.configure(api => {\n async function stat(options = {}) {\n const res = await api.post('bitswap/stat', {\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n signal: options.signal,\n headers: options.headers\n });\n return toCoreInterface(await res.json());\n }\n return stat;\n});\nfunction toCoreInterface(res) {\n return {\n provideBufLen: res.ProvideBufLen,\n wantlist: (res.Wantlist || []).map(k => cid.CID.parse(k['/'])),\n peers: res.Peers || [],\n blocksReceived: BigInt(res.BlocksReceived),\n dataReceived: BigInt(res.DataReceived),\n blocksSent: BigInt(res.BlocksSent),\n dataSent: BigInt(res.DataSent),\n dupBlksReceived: BigInt(res.DupBlksReceived),\n dupDataReceived: BigInt(res.DupDataReceived)\n };\n}\n\nexports.createStat = createStat;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createGet = configure.configure(api => {\n async function get(cid, options = {}) {\n const res = await api.post('block/get', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: cid.toString(),\n ...options\n }),\n headers: options.headers\n });\n return new Uint8Array(await res.arrayBuffer());\n }\n return get;\n});\n\nexports.createGet = createGet;\n","'use strict'\n\n/**\n * @template T\n * @typedef {Object} Peek\n * @property {() => IteratorResult<T, void>} peek\n */\n\n/**\n * @template T\n * @typedef {Object} AsyncPeek\n * @property {() => Promise<IteratorResult<T, void>>} peek\n */\n\n/**\n * @template T\n * @typedef {Object} Push\n * @property {(value:T) => void} push\n */\n\n/**\n * @template T\n * @typedef {Iterable<T> & Peek<T> & Push<T> & Iterator<T>} Peekable<T>\n */\n\n/**\n * @template T\n * @typedef {AsyncIterable<T> & AsyncPeek<T> & Push<T> & AsyncIterator<T>} AsyncPeekable<T>\n */\n\n/**\n * @template {Iterable<any> | AsyncIterable<any>} I\n * @param {I} iterable\n * @returns {I extends Iterable<infer T>\n * ? Peekable<T>\n * : I extends AsyncIterable<infer T>\n * ? AsyncPeekable<T>\n * : never\n * }\n */\nfunction peekableIterator (iterable) {\n // @ts-ignore\n const [iterator, symbol] = iterable[Symbol.asyncIterator]\n // @ts-ignore\n ? [iterable[Symbol.asyncIterator](), Symbol.asyncIterator]\n // @ts-ignore\n : [iterable[Symbol.iterator](), Symbol.iterator]\n\n /** @type {any[]} */\n const queue = []\n\n // @ts-ignore\n return {\n peek: () => {\n return iterator.next()\n },\n push: (value) => {\n queue.push(value)\n },\n next: () => {\n if (queue.length) {\n return {\n done: false,\n value: queue.shift()\n }\n }\n\n return iterator.next()\n },\n [symbol] () {\n return this\n }\n }\n}\n\nmodule.exports = peekableIterator\n","'use strict'\n\n/**\n * Turns a browser readable stream into an async iterable. Async iteration over\n * returned iterable will lock give stream, preventing any other consumer from\n * acquiring a reader. The lock will be released if iteration loop is broken. To\n * prevent stream cancelling optional `{ preventCancel: true }` could be passed\n * as a second argument.\n * @template T\n * @param {ReadableStream<T>} stream\n * @param {Object} [options]\n * @param {boolean} [options.preventCancel=boolean]\n * @returns {AsyncIterable<T>}\n */\nasync function * browserReadableStreamToIt (stream, options = {}) {\n const reader = stream.getReader()\n\n try {\n while (true) {\n const result = await reader.read()\n\n if (result.done) {\n return\n }\n\n yield result.value\n }\n } finally {\n if (options.preventCancel !== true) {\n reader.cancel()\n }\n\n reader.releaseLock()\n }\n}\n\nmodule.exports = browserReadableStreamToIt\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction isBytes(obj) {\n return ArrayBuffer.isView(obj) || obj instanceof ArrayBuffer;\n}\nfunction isBlob(obj) {\n return obj.constructor && (obj.constructor.name === 'Blob' || obj.constructor.name === 'File') && typeof obj.stream === 'function';\n}\nfunction isFileObject(obj) {\n return typeof obj === 'object' && (obj.path || obj.content);\n}\nconst isReadableStream = value => value && typeof value.getReader === 'function';\n\nexports.isBlob = isBlob;\nexports.isBytes = isBytes;\nexports.isFileObject = isFileObject;\nexports.isReadableStream = isReadableStream;\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar abortSignal = require('../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createPut = (codecs, options) => {\n const fn = configure.configure(api => {\n const put = async (dagNode, options = {}) => {\n const settings = {\n format: 'dag-cbor',\n hashAlg: 'sha2-256',\n inputEnc: 'raw',\n ...options\n };\n const codec = await codecs.getCodec(settings.format);\n const serialized = codec.encode(dagNode);\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, settings.signal);\n const res = await api.post('dag/put', {\n timeout: settings.timeout,\n signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(settings),\n ...await multipartRequest.multipartRequest(serialized, controller, settings.headers)\n });\n const data = await res.json();\n return cid.CID.parse(data.Cid['/']);\n };\n return put;\n });\n return fn(options);\n};\n\nexports.createPut = createPut;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('./object-to-camel.js');\n\nfunction objectToCamelWithMetadata(entry) {\n const file = objectToCamel.objectToCamel(entry);\n if (Object.prototype.hasOwnProperty.call(file, 'mode')) {\n file.mode = parseInt(file.mode, 8);\n }\n if (Object.prototype.hasOwnProperty.call(file, 'mtime')) {\n file.mtime = {\n secs: file.mtime,\n nsecs: file.mtimeNsecs || 0\n };\n delete file.mtimeNsecs;\n }\n return file;\n}\n\nexports.objectToCamelWithMetadata = objectToCamelWithMetadata;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar objectToCamelWithMetadata = require('../lib/object-to-camel-with-metadata.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createStat = configure.configure(api => {\n async function stat(path, options = {}) {\n const res = await api.post('files/stat', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n data.WithLocality = data.WithLocality || false;\n return toCoreInterface(objectToCamelWithMetadata.objectToCamelWithMetadata(data));\n }\n return stat;\n});\nfunction toCoreInterface(entry) {\n entry.cid = cid.CID.parse(entry.hash);\n delete entry.hash;\n return entry;\n}\n\nexports.createStat = createStat;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar normaliseInput = require('ipfs-core-utils/pins/normalise-input');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createAddAll = configure.configure(api => {\n async function* addAll(source, options = {}) {\n for await (const {path, recursive, metadata} of normaliseInput.normaliseInput(source)) {\n const res = await api.post('pin/add', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n ...options,\n arg: path,\n recursive,\n metadata: metadata ? JSON.stringify(metadata) : undefined,\n stream: true\n }),\n headers: options.headers\n });\n for await (const pin of res.ndjson()) {\n if (pin.Pins) {\n for (const cid$1 of pin.Pins) {\n yield cid.CID.parse(cid$1);\n }\n continue;\n }\n yield cid.CID.parse(pin);\n }\n }\n }\n return addAll;\n});\n\nexports.createAddAll = createAddAll;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar errCode = require('err-code');\nvar cid = require('multiformats/cid');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\n\nasync function* normaliseInput(input) {\n if (input === null || input === undefined) {\n throw errCode__default['default'](new Error(`Unexpected input: ${ input }`), 'ERR_UNEXPECTED_INPUT');\n }\n const cid$1 = cid.CID.asCID(input);\n if (cid$1) {\n yield toPin({ cid: cid$1 });\n return;\n }\n if (input instanceof String || typeof input === 'string') {\n yield toPin({ path: input });\n return;\n }\n if (input.cid != null || input.path != null) {\n return yield toPin(input);\n }\n if (Symbol.iterator in input) {\n const iterator = input[Symbol.iterator]();\n const first = iterator.next();\n if (first.done)\n return iterator;\n if (cid.CID.asCID(first.value) || first.value instanceof String || typeof first.value === 'string') {\n yield toPin({ cid: first.value });\n for (const cid of iterator) {\n yield toPin({ cid });\n }\n return;\n }\n if (first.value.cid != null || first.value.path != null) {\n yield toPin(first.value);\n for (const obj of iterator) {\n yield toPin(obj);\n }\n return;\n }\n throw errCode__default['default'](new Error('Unexpected input: ' + typeof input), 'ERR_UNEXPECTED_INPUT');\n }\n if (Symbol.asyncIterator in input) {\n const iterator = input[Symbol.asyncIterator]();\n const first = await iterator.next();\n if (first.done)\n return iterator;\n if (cid.CID.asCID(first.value) || first.value instanceof String || typeof first.value === 'string') {\n yield toPin({ cid: first.value });\n for await (const cid of iterator) {\n yield toPin({ cid });\n }\n return;\n }\n if (first.value.cid != null || first.value.path != null) {\n yield toPin(first.value);\n for await (const obj of iterator) {\n yield toPin(obj);\n }\n return;\n }\n throw errCode__default['default'](new Error('Unexpected input: ' + typeof input), 'ERR_UNEXPECTED_INPUT');\n }\n throw errCode__default['default'](new Error('Unexpected input: ' + typeof input), 'ERR_UNEXPECTED_INPUT');\n}\nfunction toPin(input) {\n const path = input.cid || `${ input.path }`;\n if (!path) {\n throw errCode__default['default'](new Error('Unexpected input: Please path either a CID or an IPFS path'), 'ERR_UNEXPECTED_INPUT');\n }\n const pin = {\n path,\n recursive: input.recursive !== false\n };\n if (input.metadata != null) {\n pin.metadata = input.metadata;\n }\n return pin;\n}\n\nexports.normaliseInput = normaliseInput;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar normaliseInput = require('ipfs-core-utils/pins/normalise-input');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createRmAll = configure.configure(api => {\n async function* rmAll(source, options = {}) {\n for await (const {path, recursive} of normaliseInput.normaliseInput(source)) {\n const searchParams = new URLSearchParams(options.searchParams);\n searchParams.append('arg', `${ path }`);\n if (recursive != null)\n searchParams.set('recursive', String(recursive));\n const res = await api.post('pin/rm', {\n signal: options.signal,\n headers: options.headers,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n ...options,\n arg: `${ path }`,\n recursive\n })\n });\n for await (const pin of res.ndjson()) {\n if (pin.Pins) {\n yield* pin.Pins.map(cid$1 => cid.CID.parse(cid$1));\n continue;\n }\n yield cid.CID.parse(pin);\n }\n }\n }\n return rmAll;\n});\n\nexports.createRmAll = createRmAll;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction encodeEndpoint(url) {\n const href = String(url);\n if (href === 'undefined') {\n throw Error('endpoint is required');\n }\n return href[href.length - 1] === '/' ? href.slice(0, -1) : href;\n}\nfunction decodeRemoteService(json) {\n return {\n service: json.Service,\n endpoint: new URL(json.ApiEndpoint),\n ...json.Stat && { stat: decodeStat(json.Stat) }\n };\n}\nfunction decodeStat(json) {\n switch (json.Status) {\n case 'valid': {\n const {Pinning, Pinned, Queued, Failed} = json.PinCount;\n return {\n status: 'valid',\n pinCount: {\n queued: Queued,\n pinning: Pinning,\n pinned: Pinned,\n failed: Failed\n }\n };\n }\n case 'invalid': {\n return { status: 'invalid' };\n }\n default: {\n return { status: json.Status };\n }\n }\n}\n\nexports.decodeRemoteService = decodeRemoteService;\nexports.decodeStat = decodeStat;\nexports.encodeEndpoint = encodeEndpoint;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createStat = configure.configure(api => {\n async function stat(options = {}) {\n const res = await api.post('repo/stat', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const data = await res.json();\n return {\n numObjects: BigInt(data.NumObjects),\n repoSize: BigInt(data.RepoSize),\n repoPath: data.RepoPath,\n version: data.Version,\n storageMax: BigInt(data.StorageMax)\n };\n }\n return stat;\n});\n\nexports.createStat = createStat;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar objectToCamel = require('./lib/object-to-camel.js');\nvar configure = require('./lib/configure.js');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\nvar abortSignal = require('./lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createAddAll = configure.configure(api => {\n async function* addAll(source, options = {}) {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const {headers, body, total, parts} = await multipartRequest.multipartRequest(source, controller, options.headers);\n const [progressFn, onUploadProgress] = typeof options.progress === 'function' ? createProgressHandler(total, parts, options.progress) : [\n undefined,\n undefined\n ];\n const res = await api.post('add', {\n searchParams: toUrlSearchParams.toUrlSearchParams({\n 'stream-channels': true,\n ...options,\n progress: Boolean(progressFn)\n }),\n onUploadProgress,\n signal,\n headers,\n body\n });\n for await (let file of res.ndjson()) {\n file = objectToCamel.objectToCamel(file);\n if (file.hash !== undefined) {\n yield toCoreInterface(file);\n } else if (progressFn) {\n progressFn(file.bytes || 0, file.name);\n }\n }\n }\n return addAll;\n});\nconst createProgressHandler = (total, parts, progress) => parts ? [\n undefined,\n createOnUploadProgress(total, parts, progress)\n] : [\n progress,\n undefined\n];\nconst createOnUploadProgress = (size, parts, progress) => {\n let index = 0;\n const count = parts.length;\n return ({loaded, total}) => {\n const position = Math.floor(loaded / total * size);\n while (index < count) {\n const {start, end, name} = parts[index];\n if (position < end) {\n progress(position - start, name);\n break;\n } else {\n progress(end - start, name);\n index += 1;\n }\n }\n };\n};\nfunction toCoreInterface({name, hash, size, mode, mtime, mtimeNsecs}) {\n const output = {\n path: name,\n cid: cid.CID.parse(hash),\n size: parseInt(size)\n };\n if (mode != null) {\n output.mode = parseInt(mode, 8);\n }\n if (mtime != null) {\n output.mtime = {\n secs: mtime,\n nsecs: mtimeNsecs || 0\n };\n }\n return output;\n}\n\nexports.createAddAll = createAddAll;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('./lib/object-to-camel.js');\nvar multiaddr = require('multiaddr');\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createId = configure.configure(api => {\n async function id(options = {}) {\n const res = await api.post('id', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: options.peerId ? options.peerId.toString() : undefined,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n const output = { ...objectToCamel.objectToCamel(data) };\n if (output.addresses) {\n output.addresses = output.addresses.map(ma => new multiaddr.Multiaddr(ma));\n }\n return output;\n }\n return id;\n});\n\nexports.createId = createId;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*<replacement>*/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*<replacement>*/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","(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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\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","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.22.0\"\n};","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.debug = exports.validatePath = exports.arrayCompare = exports.bufferToInt = exports.intToBuffer = exports.arrayFlatten = exports.generateProofs = exports.buildLayers = exports.generateTransactionChunks = exports.generateTree = exports.computeRootHash = exports.generateLeaves = exports.chunkData = exports.MIN_CHUNK_SIZE = exports.MAX_CHUNK_SIZE = void 0;\r\n/**\r\n * @see {@link https://github.com/ArweaveTeam/arweave/blob/fbc381e0e36efffa45d13f2faa6199d3766edaa2/apps/arweave/src/ar_merkle.erl}\r\n */\r\nconst common_1 = require(\"../common\");\r\nconst utils_1 = require(\"./utils\");\r\nexports.MAX_CHUNK_SIZE = 256 * 1024;\r\nexports.MIN_CHUNK_SIZE = 32 * 1024;\r\nconst NOTE_SIZE = 32;\r\nconst HASH_SIZE = 32;\r\n/**\r\n * Takes the input data and chunks it into (mostly) equal sized chunks.\r\n * The last chunk will be a bit smaller as it contains the remainder\r\n * from the chunking process.\r\n */\r\nasync function chunkData(data) {\r\n let chunks = [];\r\n let rest = data;\r\n let cursor = 0;\r\n while (rest.byteLength >= exports.MAX_CHUNK_SIZE) {\r\n let chunkSize = exports.MAX_CHUNK_SIZE;\r\n // If the total bytes left will produce a chunk < MIN_CHUNK_SIZE,\r\n // then adjust the amount we put in this 2nd last chunk.\r\n let nextChunkSize = rest.byteLength - exports.MAX_CHUNK_SIZE;\r\n if (nextChunkSize > 0 && nextChunkSize < exports.MIN_CHUNK_SIZE) {\r\n chunkSize = Math.ceil(rest.byteLength / 2);\r\n // console.log(`Last chunk will be: ${nextChunkSize} which is below ${MIN_CHUNK_SIZE}, adjusting current to ${chunkSize} with ${rest.byteLength} left.`)\r\n }\r\n const chunk = rest.slice(0, chunkSize);\r\n const dataHash = await common_1.default.crypto.hash(chunk);\r\n cursor += chunk.byteLength;\r\n chunks.push({\r\n dataHash,\r\n minByteRange: cursor - chunk.byteLength,\r\n maxByteRange: cursor,\r\n });\r\n rest = rest.slice(chunkSize);\r\n }\r\n chunks.push({\r\n dataHash: await common_1.default.crypto.hash(rest),\r\n minByteRange: cursor,\r\n maxByteRange: cursor + rest.byteLength,\r\n });\r\n return chunks;\r\n}\r\nexports.chunkData = chunkData;\r\nasync function generateLeaves(chunks) {\r\n return Promise.all(chunks.map(async ({ dataHash, minByteRange, maxByteRange }) => {\r\n return {\r\n type: \"leaf\",\r\n id: await hash(await Promise.all([hash(dataHash), hash(intToBuffer(maxByteRange))])),\r\n dataHash: dataHash,\r\n minByteRange,\r\n maxByteRange,\r\n };\r\n }));\r\n}\r\nexports.generateLeaves = generateLeaves;\r\n/**\r\n * Builds an arweave merkle tree and gets the root hash for the given input.\r\n */\r\nasync function computeRootHash(data) {\r\n const rootNode = await generateTree(data);\r\n return rootNode.id;\r\n}\r\nexports.computeRootHash = computeRootHash;\r\nasync function generateTree(data) {\r\n const rootNode = await buildLayers(await generateLeaves(await chunkData(data)));\r\n return rootNode;\r\n}\r\nexports.generateTree = generateTree;\r\n/**\r\n * Generates the data_root, chunks & proofs\r\n * needed for a transaction.\r\n *\r\n * This also checks if the last chunk is a zero-length\r\n * chunk and discards that chunk and proof if so.\r\n * (we do not need to upload this zero length chunk)\r\n *\r\n * @param data\r\n */\r\nasync function generateTransactionChunks(data) {\r\n const chunks = await chunkData(data);\r\n const leaves = await generateLeaves(chunks);\r\n const root = await buildLayers(leaves);\r\n const proofs = await generateProofs(root);\r\n // Discard the last chunk & proof if it's zero length.\r\n const lastChunk = chunks.slice(-1)[0];\r\n if (lastChunk.maxByteRange - lastChunk.minByteRange === 0) {\r\n chunks.splice(chunks.length - 1, 1);\r\n proofs.splice(proofs.length - 1, 1);\r\n }\r\n return {\r\n data_root: root.id,\r\n chunks,\r\n proofs,\r\n };\r\n}\r\nexports.generateTransactionChunks = generateTransactionChunks;\r\n/**\r\n * Starting with the bottom layer of leaf nodes, hash every second pair\r\n * into a new branch node, push those branch nodes onto a new layer,\r\n * and then recurse, building up the tree to it's root, where the\r\n * layer only consists of two items.\r\n */\r\nasync function buildLayers(nodes, level = 0) {\r\n // If there is only 1 node left, this is going to be the root node\r\n if (nodes.length < 2) {\r\n const root = nodes[0];\r\n // console.log(\"Root layer\", root);\r\n return root;\r\n }\r\n const nextLayer = [];\r\n for (let i = 0; i < nodes.length; i += 2) {\r\n nextLayer.push(await hashBranch(nodes[i], nodes[i + 1]));\r\n }\r\n // console.log(\"Layer\", nextLayer);\r\n return buildLayers(nextLayer, level + 1);\r\n}\r\nexports.buildLayers = buildLayers;\r\n/**\r\n * Recursively search through all branches of the tree,\r\n * and generate a proof for each leaf node.\r\n */\r\nfunction generateProofs(root) {\r\n const proofs = resolveBranchProofs(root);\r\n if (!Array.isArray(proofs)) {\r\n return [proofs];\r\n }\r\n return arrayFlatten(proofs);\r\n}\r\nexports.generateProofs = generateProofs;\r\nfunction resolveBranchProofs(node, proof = new Uint8Array(), depth = 0) {\r\n if (node.type == \"leaf\") {\r\n return {\r\n offset: node.maxByteRange - 1,\r\n proof: (0, utils_1.concatBuffers)([\r\n proof,\r\n node.dataHash,\r\n intToBuffer(node.maxByteRange),\r\n ]),\r\n };\r\n }\r\n if (node.type == \"branch\") {\r\n const partialProof = (0, utils_1.concatBuffers)([\r\n proof,\r\n node.leftChild.id,\r\n node.rightChild.id,\r\n intToBuffer(node.byteRange),\r\n ]);\r\n return [\r\n resolveBranchProofs(node.leftChild, partialProof, depth + 1),\r\n resolveBranchProofs(node.rightChild, partialProof, depth + 1),\r\n ];\r\n }\r\n throw new Error(`Unexpected node type`);\r\n}\r\nfunction arrayFlatten(input) {\r\n const flat = [];\r\n input.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n flat.push(...arrayFlatten(item));\r\n }\r\n else {\r\n flat.push(item);\r\n }\r\n });\r\n return flat;\r\n}\r\nexports.arrayFlatten = arrayFlatten;\r\nasync function hashBranch(left, right) {\r\n if (!right) {\r\n return left;\r\n }\r\n let branch = {\r\n type: \"branch\",\r\n id: await hash([\r\n await hash(left.id),\r\n await hash(right.id),\r\n await hash(intToBuffer(left.maxByteRange)),\r\n ]),\r\n byteRange: left.maxByteRange,\r\n maxByteRange: right.maxByteRange,\r\n leftChild: left,\r\n rightChild: right,\r\n };\r\n return branch;\r\n}\r\nasync function hash(data) {\r\n if (Array.isArray(data)) {\r\n data = common_1.default.utils.concatBuffers(data);\r\n }\r\n return new Uint8Array(await common_1.default.crypto.hash(data));\r\n}\r\nfunction intToBuffer(note) {\r\n const buffer = new Uint8Array(NOTE_SIZE);\r\n for (var i = buffer.length - 1; i >= 0; i--) {\r\n var byte = note % 256;\r\n buffer[i] = byte;\r\n note = (note - byte) / 256;\r\n }\r\n return buffer;\r\n}\r\nexports.intToBuffer = intToBuffer;\r\nfunction bufferToInt(buffer) {\r\n let value = 0;\r\n for (var i = 0; i < buffer.length; i++) {\r\n value *= 256;\r\n value += buffer[i];\r\n }\r\n return value;\r\n}\r\nexports.bufferToInt = bufferToInt;\r\nconst arrayCompare = (a, b) => a.every((value, index) => b[index] === value);\r\nexports.arrayCompare = arrayCompare;\r\nasync function validatePath(id, dest, leftBound, rightBound, path) {\r\n if (rightBound <= 0) {\r\n return false;\r\n }\r\n if (dest >= rightBound) {\r\n return validatePath(id, 0, rightBound - 1, rightBound, path);\r\n }\r\n if (dest < 0) {\r\n return validatePath(id, 0, 0, rightBound, path);\r\n }\r\n if (path.length == HASH_SIZE + NOTE_SIZE) {\r\n const pathData = path.slice(0, HASH_SIZE);\r\n const endOffsetBuffer = path.slice(pathData.length, pathData.length + NOTE_SIZE);\r\n const pathDataHash = await hash([\r\n await hash(pathData),\r\n await hash(endOffsetBuffer),\r\n ]);\r\n let result = (0, exports.arrayCompare)(id, pathDataHash);\r\n if (result) {\r\n return {\r\n offset: rightBound - 1,\r\n leftBound: leftBound,\r\n rightBound: rightBound,\r\n chunkSize: rightBound - leftBound,\r\n };\r\n }\r\n return false;\r\n }\r\n const left = path.slice(0, HASH_SIZE);\r\n const right = path.slice(left.length, left.length + HASH_SIZE);\r\n const offsetBuffer = path.slice(left.length + right.length, left.length + right.length + NOTE_SIZE);\r\n const offset = bufferToInt(offsetBuffer);\r\n const remainder = path.slice(left.length + right.length + offsetBuffer.length);\r\n const pathHash = await hash([\r\n await hash(left),\r\n await hash(right),\r\n await hash(offsetBuffer),\r\n ]);\r\n if ((0, exports.arrayCompare)(id, pathHash)) {\r\n if (dest < offset) {\r\n return await validatePath(left, dest, leftBound, Math.min(rightBound, offset), remainder);\r\n }\r\n return await validatePath(right, dest, Math.max(leftBound, offset), rightBound, remainder);\r\n }\r\n return false;\r\n}\r\nexports.validatePath = validatePath;\r\n/**\r\n * Inspect an arweave chunk proof.\r\n * Takes proof, parses, reads and displays the values for console logging.\r\n * One proof section per line\r\n * Format: left,right,offset => hash\r\n */\r\nasync function debug(proof, output = \"\") {\r\n if (proof.byteLength < 1) {\r\n return output;\r\n }\r\n const left = proof.slice(0, HASH_SIZE);\r\n const right = proof.slice(left.length, left.length + HASH_SIZE);\r\n const offsetBuffer = proof.slice(left.length + right.length, left.length + right.length + NOTE_SIZE);\r\n const offset = bufferToInt(offsetBuffer);\r\n const remainder = proof.slice(left.length + right.length + offsetBuffer.length);\r\n const pathHash = await hash([\r\n await hash(left),\r\n await hash(right),\r\n await hash(offsetBuffer),\r\n ]);\r\n const updatedOutput = `${output}\\n${JSON.stringify(Buffer.from(left))},${JSON.stringify(Buffer.from(right))},${offset} => ${JSON.stringify(pathHash)}`;\r\n return debug(remainder, updatedOutput);\r\n}\r\nexports.debug = debug;\r\n//# sourceMappingURL=merkle.js.map","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || defaults.transitional;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","module.exports = {\n \"version\": \"0.24.0\"\n};","import { _registerComponent, registerVersion, _getProvider, getApp, _removeServiceInstance, SDK_VERSION } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { Logger, LogLevel } from '@firebase/logger';\nimport { FirebaseError, createMockUserToken, getModularInstance, deepEqual, getUA, isIndexedDBAvailable, isSafari, isMobileCordova, isReactNative, isElectron, isIE, isUWP, isBrowserExtension } from '@firebase/util';\nimport { XhrIo, EventType, ErrorCode, createWebChannelTransport, getStatEventTarget, FetchXmlHttpFactory, WebChannel, Event, Stat } from '@firebase/webchannel-wrapper';\n\nconst D = \"@firebase/firestore\";\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Simple wrapper around a nullable UID. Mostly exists to make code more\n * readable.\n */\nclass C {\n constructor(t) {\n this.uid = t;\n }\n isAuthenticated() {\n return null != this.uid;\n }\n /**\n * Returns a key representing this user, suitable for inclusion in a\n * dictionary.\n */ toKey() {\n return this.isAuthenticated() ? \"uid:\" + this.uid : \"anonymous-user\";\n }\n isEqual(t) {\n return t.uid === this.uid;\n }\n}\n\n/** A user with a null UID. */ C.UNAUTHENTICATED = new C(null), \n// TODO(mikelehen): Look into getting a proper uid-equivalent for\n// non-FirebaseAuth providers.\nC.GOOGLE_CREDENTIALS = new C(\"google-credentials-uid\"), C.FIRST_PARTY = new C(\"first-party-uid\"), \nC.MOCK_USER = new C(\"mock-user\");\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nlet N = \"9.6.7\";\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst x = new Logger(\"@firebase/firestore\");\n\n// Helper methods are needed because variables can't be exported as read/write\nfunction k() {\n return x.logLevel;\n}\n\n/**\n * Sets the verbosity of Cloud Firestore logs (debug, error, or silent).\n *\n * @param logLevel - The verbosity you set for activity and error logging. Can\n * be any of the following values:\n *\n * <ul>\n * <li>`debug` for the most verbose logging level, primarily for\n * debugging.</li>\n * <li>`error` to log errors only.</li>\n * <li><code>`silent` to turn off logging.</li>\n * </ul>\n */ function O(t) {\n x.setLogLevel(t);\n}\n\nfunction M(t, ...e) {\n if (x.logLevel <= LogLevel.DEBUG) {\n const n = e.map(B);\n x.debug(`Firestore (${N}): ${t}`, ...n);\n }\n}\n\nfunction $(t, ...e) {\n if (x.logLevel <= LogLevel.ERROR) {\n const n = e.map(B);\n x.error(`Firestore (${N}): ${t}`, ...n);\n }\n}\n\n/**\n * @internal\n */ function F(t, ...e) {\n if (x.logLevel <= LogLevel.WARN) {\n const n = e.map(B);\n x.warn(`Firestore (${N}): ${t}`, ...n);\n }\n}\n\n/**\n * Converts an additional log parameter to a string representation.\n */ function B(t) {\n if (\"string\" == typeof t) return t;\n try {\n return e = t, JSON.stringify(e);\n } catch (e) {\n // Converting to JSON failed, just log the object directly\n return t;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /** Formats an object as a JSON string, suitable for logging. */\n var e;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Unconditionally fails, throwing an Error with the given message.\n * Messages are stripped in production builds.\n *\n * Returns `never` and can be used in expressions:\n * @example\n * let futureVar = fail('not implemented yet');\n */ function L(t = \"Unexpected state\") {\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n const e = `FIRESTORE (${N}) INTERNAL ASSERTION FAILED: ` + t;\n // NOTE: We don't use FirestoreError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw $(e), new Error(e);\n}\n\n/**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * Messages are stripped in production builds.\n */ function U(t, e) {\n t || L();\n}\n\n/**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * The code of callsites invoking this function are stripped out in production\n * builds. Any side-effects of code within the debugAssert() invocation will not\n * happen in this case.\n *\n * @internal\n */ function q(t, e) {\n t || L();\n}\n\n/**\n * Casts `obj` to `T`. In non-production builds, verifies that `obj` is an\n * instance of `T` before casting.\n */ function K(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n return t;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const G = {\n // Causes are copied from:\n // https://github.com/grpc/grpc/blob/bceec94ea4fc5f0085d81235d8e1c06798dc341a/include/grpc%2B%2B/impl/codegen/status_code_enum.h\n /** Not an error; returned on success. */\n OK: \"ok\",\n /** The operation was cancelled (typically by the caller). */\n CANCELLED: \"cancelled\",\n /** Unknown error or an error from a different error domain. */\n UNKNOWN: \"unknown\",\n /**\n * Client specified an invalid argument. Note that this differs from\n * FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are\n * problematic regardless of the state of the system (e.g., a malformed file\n * name).\n */\n INVALID_ARGUMENT: \"invalid-argument\",\n /**\n * Deadline expired before operation could complete. For operations that\n * change the state of the system, this error may be returned even if the\n * operation has completed successfully. For example, a successful response\n * from a server could have been delayed long enough for the deadline to\n * expire.\n */\n DEADLINE_EXCEEDED: \"deadline-exceeded\",\n /** Some requested entity (e.g., file or directory) was not found. */\n NOT_FOUND: \"not-found\",\n /**\n * Some entity that we attempted to create (e.g., file or directory) already\n * exists.\n */\n ALREADY_EXISTS: \"already-exists\",\n /**\n * The caller does not have permission to execute the specified operation.\n * PERMISSION_DENIED must not be used for rejections caused by exhausting\n * some resource (use RESOURCE_EXHAUSTED instead for those errors).\n * PERMISSION_DENIED must not be used if the caller can not be identified\n * (use UNAUTHENTICATED instead for those errors).\n */\n PERMISSION_DENIED: \"permission-denied\",\n /**\n * The request does not have valid authentication credentials for the\n * operation.\n */\n UNAUTHENTICATED: \"unauthenticated\",\n /**\n * Some resource has been exhausted, perhaps a per-user quota, or perhaps the\n * entire file system is out of space.\n */\n RESOURCE_EXHAUSTED: \"resource-exhausted\",\n /**\n * Operation was rejected because the system is not in a state required for\n * the operation's execution. For example, directory to be deleted may be\n * non-empty, an rmdir operation is applied to a non-directory, etc.\n *\n * A litmus test that may help a service implementor in deciding\n * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:\n * (a) Use UNAVAILABLE if the client can retry just the failing call.\n * (b) Use ABORTED if the client should retry at a higher-level\n * (e.g., restarting a read-modify-write sequence).\n * (c) Use FAILED_PRECONDITION if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, FAILED_PRECONDITION\n * should be returned since the client should not retry unless\n * they have first fixed up the directory by deleting files from it.\n * (d) Use FAILED_PRECONDITION if the client performs conditional\n * REST Get/Update/Delete on a resource and the resource on the\n * server does not match the condition. E.g., conflicting\n * read-modify-write on the same resource.\n */\n FAILED_PRECONDITION: \"failed-precondition\",\n /**\n * The operation was aborted, typically due to a concurrency issue like\n * sequencer check failures, transaction aborts, etc.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n ABORTED: \"aborted\",\n /**\n * Operation was attempted past the valid range. E.g., seeking or reading\n * past end of file.\n *\n * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed\n * if the system state changes. For example, a 32-bit file system will\n * generate INVALID_ARGUMENT if asked to read at an offset that is not in the\n * range [0,2^32-1], but it will generate OUT_OF_RANGE if asked to read from\n * an offset past the current file size.\n *\n * There is a fair bit of overlap between FAILED_PRECONDITION and\n * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific error)\n * when it applies so that callers who are iterating through a space can\n * easily look for an OUT_OF_RANGE error to detect when they are done.\n */\n OUT_OF_RANGE: \"out-of-range\",\n /** Operation is not implemented or not supported/enabled in this service. */\n UNIMPLEMENTED: \"unimplemented\",\n /**\n * Internal errors. Means some invariants expected by underlying System has\n * been broken. If you see one of these errors, Something is very broken.\n */\n INTERNAL: \"internal\",\n /**\n * The service is currently unavailable. This is a most likely a transient\n * condition and may be corrected by retrying with a backoff.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n UNAVAILABLE: \"unavailable\",\n /** Unrecoverable data loss or corruption. */\n DATA_LOSS: \"data-loss\"\n};\n\n/** An error returned by a Firestore operation. */ class j extends FirebaseError {\n /** @hideconstructor */\n constructor(\n /**\n * The backend error code associated with this error.\n */\n t, \n /**\n * A custom error description.\n */\n e) {\n super(t, e), this.code = t, this.message = e, \n // HACK: We write a toString property directly because Error is not a real\n // class and so inheritance does not work correctly. We could alternatively\n // do the same \"back-door inheritance\" trick that FirebaseError does.\n this.toString = () => `${this.name}: [code=${this.code}]: ${this.message}`;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class Q {\n constructor() {\n this.promise = new Promise(((t, e) => {\n this.resolve = t, this.reject = e;\n }));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class W {\n constructor(t, e) {\n this.user = e, this.type = \"OAuth\", this.headers = new Map, this.headers.set(\"Authorization\", `Bearer ${t}`);\n }\n}\n\n/**\n * A CredentialsProvider that always yields an empty token.\n * @internal\n */ class z {\n getToken() {\n return Promise.resolve(null);\n }\n invalidateToken() {}\n start(t, e) {\n // Fire with initial user.\n t.enqueueRetryable((() => e(C.UNAUTHENTICATED)));\n }\n shutdown() {}\n}\n\n/**\n * A CredentialsProvider that always returns a constant token. Used for\n * emulator token mocking.\n */ class H {\n constructor(t) {\n this.token = t, \n /**\n * Stores the listener registered with setChangeListener()\n * This isn't actually necessary since the UID never changes, but we use this\n * to verify the listen contract is adhered to in tests.\n */\n this.changeListener = null;\n }\n getToken() {\n return Promise.resolve(this.token);\n }\n invalidateToken() {}\n start(t, e) {\n this.changeListener = e, \n // Fire with initial user.\n t.enqueueRetryable((() => e(this.token.user)));\n }\n shutdown() {\n this.changeListener = null;\n }\n}\n\nclass J {\n constructor(t) {\n this.t = t, \n /** Tracks the current User. */\n this.currentUser = C.UNAUTHENTICATED, \n /**\n * Counter used to detect if the token changed while a getToken request was\n * outstanding.\n */\n this.i = 0, this.forceRefresh = !1, this.auth = null;\n }\n start(t, e) {\n let n = this.i;\n // A change listener that prevents double-firing for the same token change.\n const s = t => this.i !== n ? (n = this.i, e(t)) : Promise.resolve();\n // A promise that can be waited on to block on the next token change.\n // This promise is re-created after each change.\n let i = new Q;\n this.o = () => {\n this.i++, this.currentUser = this.u(), i.resolve(), i = new Q, t.enqueueRetryable((() => s(this.currentUser)));\n };\n const r = () => {\n const e = i;\n t.enqueueRetryable((async () => {\n await e.promise, await s(this.currentUser);\n }));\n }, o = t => {\n M(\"FirebaseAuthCredentialsProvider\", \"Auth detected\"), this.auth = t, this.auth.addAuthTokenListener(this.o), \n r();\n };\n this.t.onInit((t => o(t))), \n // Our users can initialize Auth right after Firestore, so we give it\n // a chance to register itself with the component framework before we\n // determine whether to start up in unauthenticated mode.\n setTimeout((() => {\n if (!this.auth) {\n const t = this.t.getImmediate({\n optional: !0\n });\n t ? o(t) : (\n // If auth is still not available, proceed with `null` user\n M(\"FirebaseAuthCredentialsProvider\", \"Auth not yet detected\"), i.resolve(), i = new Q);\n }\n }), 0), r();\n }\n getToken() {\n // Take note of the current value of the tokenCounter so that this method\n // can fail (with an ABORTED error) if there is a token change while the\n // request is outstanding.\n const t = this.i, e = this.forceRefresh;\n return this.forceRefresh = !1, this.auth ? this.auth.getToken(e).then((e => \n // Cancel the request since the token changed while the request was\n // outstanding so the response is potentially for a previous user (which\n // user, we can't be sure).\n this.i !== t ? (M(\"FirebaseAuthCredentialsProvider\", \"getToken aborted due to token change.\"), \n this.getToken()) : e ? (U(\"string\" == typeof e.accessToken), new W(e.accessToken, this.currentUser)) : null)) : Promise.resolve(null);\n }\n invalidateToken() {\n this.forceRefresh = !0;\n }\n shutdown() {\n this.auth && this.auth.removeAuthTokenListener(this.o);\n }\n // Auth.getUid() can return null even with a user logged in. It is because\n // getUid() is synchronous, but the auth code populating Uid is asynchronous.\n // This method should only be called in the AuthTokenListener callback\n // to guarantee to get the actual user.\n u() {\n const t = this.auth && this.auth.getUid();\n return U(null === t || \"string\" == typeof t), new C(t);\n }\n}\n\n/*\n * FirstPartyToken provides a fresh token each time its value\n * is requested, because if the token is too old, requests will be rejected.\n * Technically this may no longer be necessary since the SDK should gracefully\n * recover from unauthenticated errors (see b/33147818 for context), but it's\n * safer to keep the implementation as-is.\n */ class Y {\n constructor(t, e, n) {\n this.type = \"FirstParty\", this.user = C.FIRST_PARTY, this.headers = new Map, this.headers.set(\"X-Goog-AuthUser\", e);\n const s = t.auth.getAuthHeaderValueForFirstParty([]);\n s && this.headers.set(\"Authorization\", s), n && this.headers.set(\"X-Goog-Iam-Authorization-Token\", n);\n }\n}\n\n/*\n * Provides user credentials required for the Firestore JavaScript SDK\n * to authenticate the user, using technique that is only available\n * to applications hosted by Google.\n */ class X {\n constructor(t, e, n) {\n this.h = t, this.l = e, this.m = n;\n }\n getToken() {\n return Promise.resolve(new Y(this.h, this.l, this.m));\n }\n start(t, e) {\n // Fire with initial uid.\n t.enqueueRetryable((() => e(C.FIRST_PARTY)));\n }\n shutdown() {}\n invalidateToken() {}\n}\n\nclass Z {\n constructor(t) {\n this.value = t, this.type = \"AppCheck\", this.headers = new Map, t && t.length > 0 && this.headers.set(\"x-firebase-appcheck\", this.value);\n }\n}\n\nclass tt {\n constructor(t) {\n this.g = t, this.forceRefresh = !1, this.appCheck = null, this.p = null;\n }\n start(t, e) {\n const n = t => {\n null != t.error && M(\"FirebaseAppCheckTokenProvider\", `Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);\n const n = t.token !== this.p;\n return this.p = t.token, M(\"FirebaseAppCheckTokenProvider\", `Received ${n ? \"new\" : \"existing\"} token.`), \n n ? e(t.token) : Promise.resolve();\n };\n this.o = e => {\n t.enqueueRetryable((() => n(e)));\n };\n const s = t => {\n M(\"FirebaseAppCheckTokenProvider\", \"AppCheck detected\"), this.appCheck = t, this.appCheck.addTokenListener(this.o);\n };\n this.g.onInit((t => s(t))), \n // Our users can initialize AppCheck after Firestore, so we give it\n // a chance to register itself with the component framework.\n setTimeout((() => {\n if (!this.appCheck) {\n const t = this.g.getImmediate({\n optional: !0\n });\n t ? s(t) : \n // If AppCheck is still not available, proceed without it.\n M(\"FirebaseAppCheckTokenProvider\", \"AppCheck not yet detected\");\n }\n }), 0);\n }\n getToken() {\n const t = this.forceRefresh;\n return this.forceRefresh = !1, this.appCheck ? this.appCheck.getToken(t).then((t => t ? (U(\"string\" == typeof t.token), \n this.p = t.token, new Z(t.token)) : null)) : Promise.resolve(null);\n }\n invalidateToken() {\n this.forceRefresh = !0;\n }\n shutdown() {\n this.appCheck && this.appCheck.removeTokenListener(this.o);\n }\n}\n\n/**\n * An AppCheck token provider that always yields an empty token.\n * @internal\n */ class et {\n getToken() {\n return Promise.resolve(new Z(\"\"));\n }\n invalidateToken() {}\n start(t, e) {}\n shutdown() {}\n}\n\n/**\n * Builds a CredentialsProvider depending on the type of\n * the credentials passed in.\n */\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * `ListenSequence` is a monotonic sequence. It is initialized with a minimum value to\n * exceed. All subsequent calls to next will return increasing values. If provided with a\n * `SequenceNumberSyncer`, it will additionally bump its next value when told of a new value, as\n * well as write out sequence numbers that it produces via `next()`.\n */\nclass nt {\n constructor(t, e) {\n this.previousValue = t, e && (e.sequenceNumberHandler = t => this.I(t), this.T = t => e.writeSequenceNumber(t));\n }\n I(t) {\n return this.previousValue = Math.max(t, this.previousValue), this.previousValue;\n }\n next() {\n const t = ++this.previousValue;\n return this.T && this.T(t), t;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Generates `nBytes` of random bytes.\n *\n * If `nBytes < 0` , an error will be thrown.\n */\nfunction st(t) {\n // Polyfills for IE and WebWorker by using `self` and `msCrypto` when `crypto` is not available.\n const e = \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n \"undefined\" != typeof self && (self.crypto || self.msCrypto), n = new Uint8Array(t);\n if (e && \"function\" == typeof e.getRandomValues) e.getRandomValues(n); else \n // Falls back to Math.random\n for (let e = 0; e < t; e++) n[e] = Math.floor(256 * Math.random());\n return n;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ nt.A = -1;\n\nclass it {\n static R() {\n // Alphanumeric characters\n const t = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", e = Math.floor(256 / t.length) * t.length;\n // The largest byte value that is a multiple of `char.length`.\n let n = \"\";\n for (;n.length < 20; ) {\n const s = st(40);\n for (let i = 0; i < s.length; ++i) \n // Only accept values that are [0, maxMultiple), this ensures they can\n // be evenly mapped to indices of `chars` via a modulo operation.\n n.length < 20 && s[i] < e && (n += t.charAt(s[i] % t.length));\n }\n return n;\n }\n}\n\nfunction rt(t, e) {\n return t < e ? -1 : t > e ? 1 : 0;\n}\n\n/** Helper to compare arrays using isEqual(). */ function ot(t, e, n) {\n return t.length === e.length && t.every(((t, s) => n(t, e[s])));\n}\n\n/**\n * Returns the immediate lexicographically-following string. This is useful to\n * construct an inclusive range for indexeddb iterators.\n */ function ct(t) {\n // Return the input string, with an additional NUL byte appended.\n return t + \"\\0\";\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// The earliest date supported by Firestore timestamps (0001-01-01T00:00:00Z).\n/**\n * A `Timestamp` represents a point in time independent of any time zone or\n * calendar, represented as seconds and fractions of seconds at nanosecond\n * resolution in UTC Epoch time.\n *\n * It is encoded using the Proleptic Gregorian Calendar which extends the\n * Gregorian calendar backwards to year one. It is encoded assuming all minutes\n * are 60 seconds long, i.e. leap seconds are \"smeared\" so that no leap second\n * table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59.999999999Z.\n *\n * For examples and further specifications, refer to the\n * {@link https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto | Timestamp definition}.\n */\nclass ut {\n /**\n * Creates a new timestamp.\n *\n * @param seconds - The number of seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n * @param nanoseconds - The non-negative fractions of a second at nanosecond\n * resolution. Negative second values with fractions must still have\n * non-negative nanoseconds values that count forward in time. Must be\n * from 0 to 999,999,999 inclusive.\n */\n constructor(\n /**\n * The number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.\n */\n t, \n /**\n * The fractions of a second at nanosecond resolution.*\n */\n e) {\n if (this.seconds = t, this.nanoseconds = e, e < 0) throw new j(G.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (e >= 1e9) throw new j(G.INVALID_ARGUMENT, \"Timestamp nanoseconds out of range: \" + e);\n if (t < -62135596800) throw new j(G.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t);\n // This will break in the year 10,000.\n if (t >= 253402300800) throw new j(G.INVALID_ARGUMENT, \"Timestamp seconds out of range: \" + t);\n }\n /**\n * Creates a new timestamp with the current date, with millisecond precision.\n *\n * @returns a new timestamp representing the current date.\n */ static now() {\n return ut.fromMillis(Date.now());\n }\n /**\n * Creates a new timestamp from the given date.\n *\n * @param date - The date to initialize the `Timestamp` from.\n * @returns A new `Timestamp` representing the same point in time as the given\n * date.\n */ static fromDate(t) {\n return ut.fromMillis(t.getTime());\n }\n /**\n * Creates a new timestamp from the given number of milliseconds.\n *\n * @param milliseconds - Number of milliseconds since Unix epoch\n * 1970-01-01T00:00:00Z.\n * @returns A new `Timestamp` representing the same point in time as the given\n * number of milliseconds.\n */ static fromMillis(t) {\n const e = Math.floor(t / 1e3), n = Math.floor(1e6 * (t - 1e3 * e));\n return new ut(e, n);\n }\n /**\n * Converts a `Timestamp` to a JavaScript `Date` object. This conversion\n * causes a loss of precision since `Date` objects only support millisecond\n * precision.\n *\n * @returns JavaScript `Date` object representing the same point in time as\n * this `Timestamp`, with millisecond precision.\n */ toDate() {\n return new Date(this.toMillis());\n }\n /**\n * Converts a `Timestamp` to a numeric timestamp (in milliseconds since\n * epoch). This operation causes a loss of precision.\n *\n * @returns The point in time corresponding to this timestamp, represented as\n * the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.\n */ toMillis() {\n return 1e3 * this.seconds + this.nanoseconds / 1e6;\n }\n _compareTo(t) {\n return this.seconds === t.seconds ? rt(this.nanoseconds, t.nanoseconds) : rt(this.seconds, t.seconds);\n }\n /**\n * Returns true if this `Timestamp` is equal to the provided one.\n *\n * @param other - The `Timestamp` to compare against.\n * @returns true if this `Timestamp` is equal to the provided one.\n */ isEqual(t) {\n return t.seconds === this.seconds && t.nanoseconds === this.nanoseconds;\n }\n /** Returns a textual representation of this `Timestamp`. */ toString() {\n return \"Timestamp(seconds=\" + this.seconds + \", nanoseconds=\" + this.nanoseconds + \")\";\n }\n /** Returns a JSON-serializable representation of this `Timestamp`. */ toJSON() {\n return {\n seconds: this.seconds,\n nanoseconds: this.nanoseconds\n };\n }\n /**\n * Converts this object to a primitive string, which allows `Timestamp` objects\n * to be compared using the `>`, `<=`, `>=` and `>` operators.\n */ valueOf() {\n // This method returns a string of the form <seconds>.<nanoseconds> where\n // <seconds> is translated to have a non-negative value and both <seconds>\n // and <nanoseconds> are left-padded with zeroes to be a consistent length.\n // Strings with this format then have a lexiographical ordering that matches\n // the expected ordering. The <seconds> translation is done to avoid having\n // a leading negative sign (i.e. a leading '-' character) in its string\n // representation, which would affect its lexiographical ordering.\n const t = this.seconds - -62135596800;\n // Note: Up to 12 decimal digits are required to represent all valid\n // 'seconds' values.\n return String(t).padStart(12, \"0\") + \".\" + String(this.nanoseconds).padStart(9, \"0\");\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A version of a document in Firestore. This corresponds to the version\n * timestamp, such as update_time or read_time.\n */ class at {\n constructor(t) {\n this.timestamp = t;\n }\n static fromTimestamp(t) {\n return new at(t);\n }\n static min() {\n return new at(new ut(0, 0));\n }\n compareTo(t) {\n return this.timestamp._compareTo(t.timestamp);\n }\n isEqual(t) {\n return this.timestamp.isEqual(t.timestamp);\n }\n /** Returns a number representation of the version for use in spec tests. */ toMicroseconds() {\n // Convert to microseconds.\n return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3;\n }\n toString() {\n return \"SnapshotVersion(\" + this.timestamp.toString() + \")\";\n }\n toTimestamp() {\n return this.timestamp;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function ht(t) {\n let e = 0;\n for (const n in t) Object.prototype.hasOwnProperty.call(t, n) && e++;\n return e;\n}\n\nfunction lt(t, e) {\n for (const n in t) Object.prototype.hasOwnProperty.call(t, n) && e(n, t[n]);\n}\n\nfunction ft(t) {\n for (const e in t) if (Object.prototype.hasOwnProperty.call(t, e)) return !1;\n return !0;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Path represents an ordered sequence of string segments.\n */\nclass dt {\n constructor(t, e, n) {\n void 0 === e ? e = 0 : e > t.length && L(), void 0 === n ? n = t.length - e : n > t.length - e && L(), \n this.segments = t, this.offset = e, this.len = n;\n }\n get length() {\n return this.len;\n }\n isEqual(t) {\n return 0 === dt.comparator(this, t);\n }\n child(t) {\n const e = this.segments.slice(this.offset, this.limit());\n return t instanceof dt ? t.forEach((t => {\n e.push(t);\n })) : e.push(t), this.construct(e);\n }\n /** The index of one past the last segment of the path. */ limit() {\n return this.offset + this.length;\n }\n popFirst(t) {\n return t = void 0 === t ? 1 : t, this.construct(this.segments, this.offset + t, this.length - t);\n }\n popLast() {\n return this.construct(this.segments, this.offset, this.length - 1);\n }\n firstSegment() {\n return this.segments[this.offset];\n }\n lastSegment() {\n return this.get(this.length - 1);\n }\n get(t) {\n return this.segments[this.offset + t];\n }\n isEmpty() {\n return 0 === this.length;\n }\n isPrefixOf(t) {\n if (t.length < this.length) return !1;\n for (let e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }\n isImmediateParentOf(t) {\n if (this.length + 1 !== t.length) return !1;\n for (let e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }\n forEach(t) {\n for (let e = this.offset, n = this.limit(); e < n; e++) t(this.segments[e]);\n }\n toArray() {\n return this.segments.slice(this.offset, this.limit());\n }\n static comparator(t, e) {\n const n = Math.min(t.length, e.length);\n for (let s = 0; s < n; s++) {\n const n = t.get(s), i = e.get(s);\n if (n < i) return -1;\n if (n > i) return 1;\n }\n return t.length < e.length ? -1 : t.length > e.length ? 1 : 0;\n }\n}\n\n/**\n * A slash-separated path for navigating resources (documents and collections)\n * within Firestore.\n *\n * @internal\n */ class _t extends dt {\n construct(t, e, n) {\n return new _t(t, e, n);\n }\n canonicalString() {\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n return this.toArray().join(\"/\");\n }\n toString() {\n return this.canonicalString();\n }\n /**\n * Creates a resource path from the given slash-delimited string. If multiple\n * arguments are provided, all components are combined. Leading and trailing\n * slashes from all components are ignored.\n */ static fromString(...t) {\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n const e = [];\n for (const n of t) {\n if (n.indexOf(\"//\") >= 0) throw new j(G.INVALID_ARGUMENT, `Invalid segment (${n}). Paths must not contain // in them.`);\n // Strip leading and traling slashed.\n e.push(...n.split(\"/\").filter((t => t.length > 0)));\n }\n return new _t(e);\n }\n static emptyPath() {\n return new _t([]);\n }\n}\n\nconst wt = /^[_a-zA-Z][_a-zA-Z0-9]*$/;\n\n/**\n * A dot-separated path for navigating sub-objects within a document.\n * @internal\n */ class mt extends dt {\n construct(t, e, n) {\n return new mt(t, e, n);\n }\n /**\n * Returns true if the string could be used as a segment in a field path\n * without escaping.\n */ static isValidIdentifier(t) {\n return wt.test(t);\n }\n canonicalString() {\n return this.toArray().map((t => (t = t.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\"), \n mt.isValidIdentifier(t) || (t = \"`\" + t + \"`\"), t))).join(\".\");\n }\n toString() {\n return this.canonicalString();\n }\n /**\n * Returns true if this field references the key of a document.\n */ isKeyField() {\n return 1 === this.length && \"__name__\" === this.get(0);\n }\n /**\n * The field designating the key of a document.\n */ static keyField() {\n return new mt([ \"__name__\" ]);\n }\n /**\n * Parses a field string from the given server-formatted string.\n *\n * - Splitting the empty string is not allowed (for now at least).\n * - Empty segments within the string (e.g. if there are two consecutive\n * separators) are not allowed.\n *\n * TODO(b/37244157): we should make this more strict. Right now, it allows\n * non-identifier path components, even if they aren't escaped.\n */ static fromServerFormat(t) {\n const e = [];\n let n = \"\", s = 0;\n const i = () => {\n if (0 === n.length) throw new j(G.INVALID_ARGUMENT, `Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);\n e.push(n), n = \"\";\n };\n let r = !1;\n for (;s < t.length; ) {\n const e = t[s];\n if (\"\\\\\" === e) {\n if (s + 1 === t.length) throw new j(G.INVALID_ARGUMENT, \"Path has trailing escape character: \" + t);\n const e = t[s + 1];\n if (\"\\\\\" !== e && \".\" !== e && \"`\" !== e) throw new j(G.INVALID_ARGUMENT, \"Path has invalid escape sequence: \" + t);\n n += e, s += 2;\n } else \"`\" === e ? (r = !r, s++) : \".\" !== e || r ? (n += e, s++) : (i(), s++);\n }\n if (i(), r) throw new j(G.INVALID_ARGUMENT, \"Unterminated ` in path: \" + t);\n return new mt(e);\n }\n static emptyPath() {\n return new mt([]);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provides a set of fields that can be used to partially patch a document.\n * FieldMask is used in conjunction with ObjectValue.\n * Examples:\n * foo - Overwrites foo entirely with the provided value. If foo is not\n * present in the companion ObjectValue, the field is deleted.\n * foo.bar - Overwrites only the field bar of the object foo.\n * If foo is not an object, foo is replaced with an object\n * containing foo\n */ class gt {\n constructor(t) {\n this.fields = t, \n // TODO(dimond): validation of FieldMask\n // Sort the field mask to support `FieldMask.isEqual()` and assert below.\n t.sort(mt.comparator);\n }\n /**\n * Verifies that `fieldPath` is included by at least one field in this field\n * mask.\n *\n * This is an O(n) operation, where `n` is the size of the field mask.\n */ covers(t) {\n for (const e of this.fields) if (e.isPrefixOf(t)) return !0;\n return !1;\n }\n isEqual(t) {\n return ot(this.fields, t.fields, ((t, e) => t.isEqual(e)));\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Converts a Base64 encoded string to a binary string. */\n/** True if and only if the Base64 conversion functions are available. */\nfunction yt() {\n return \"undefined\" != typeof atob;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Immutable class that represents a \"proto\" byte string.\n *\n * Proto byte strings can either be Base64-encoded strings or Uint8Arrays when\n * sent on the wire. This class abstracts away this differentiation by holding\n * the proto byte string in a common class that must be converted into a string\n * before being sent as a proto.\n * @internal\n */ class pt {\n constructor(t) {\n this.binaryString = t;\n }\n static fromBase64String(t) {\n const e = atob(t);\n return new pt(e);\n }\n static fromUint8Array(t) {\n const e = \n /**\n * Helper function to convert an Uint8array to a binary string.\n */\n function(t) {\n let e = \"\";\n for (let n = 0; n < t.length; ++n) e += String.fromCharCode(t[n]);\n return e;\n }\n /**\n * Helper function to convert a binary string to an Uint8Array.\n */ (t);\n return new pt(e);\n }\n [Symbol.iterator]() {\n let t = 0;\n return {\n next: () => t < this.binaryString.length ? {\n value: this.binaryString.charCodeAt(t++),\n done: !1\n } : {\n value: void 0,\n done: !0\n }\n };\n }\n toBase64() {\n return t = this.binaryString, btoa(t);\n /** Converts a binary string to a Base64 encoded string. */\n var t;\n }\n toUint8Array() {\n return function(t) {\n const e = new Uint8Array(t.length);\n for (let n = 0; n < t.length; n++) e[n] = t.charCodeAt(n);\n return e;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // A RegExp matching ISO 8601 UTC timestamps with optional fraction.\n (this.binaryString);\n }\n approximateByteSize() {\n return 2 * this.binaryString.length;\n }\n compareTo(t) {\n return rt(this.binaryString, t.binaryString);\n }\n isEqual(t) {\n return this.binaryString === t.binaryString;\n }\n}\n\npt.EMPTY_BYTE_STRING = new pt(\"\");\n\nconst It = new RegExp(/^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:\\.(\\d+))?Z$/);\n\n/**\n * Converts the possible Proto values for a timestamp value into a \"seconds and\n * nanos\" representation.\n */ function Et(t) {\n // The json interface (for the browser) will return an iso timestamp string,\n // while the proto js library (for node) will return a\n // google.protobuf.Timestamp instance.\n if (U(!!t), \"string\" == typeof t) {\n // The date string can have higher precision (nanos) than the Date class\n // (millis), so we do some custom parsing here.\n // Parse the nanos right out of the string.\n let e = 0;\n const n = It.exec(t);\n if (U(!!n), n[1]) {\n // Pad the fraction out to 9 digits (nanos).\n let t = n[1];\n t = (t + \"000000000\").substr(0, 9), e = Number(t);\n }\n // Parse the date to get the seconds.\n const s = new Date(t);\n return {\n seconds: Math.floor(s.getTime() / 1e3),\n nanos: e\n };\n }\n return {\n seconds: Tt(t.seconds),\n nanos: Tt(t.nanos)\n };\n}\n\n/**\n * Converts the possible Proto types for numbers into a JavaScript number.\n * Returns 0 if the value is not numeric.\n */ function Tt(t) {\n // TODO(bjornick): Handle int64 greater than 53 bits.\n return \"number\" == typeof t ? t : \"string\" == typeof t ? Number(t) : 0;\n}\n\n/** Converts the possible Proto types for Blobs into a ByteString. */ function At(t) {\n return \"string\" == typeof t ? pt.fromBase64String(t) : pt.fromUint8Array(t);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents a locally-applied ServerTimestamp.\n *\n * Server Timestamps are backed by MapValues that contain an internal field\n * `__type__` with a value of `server_timestamp`. The previous value and local\n * write time are stored in its `__previous_value__` and `__local_write_time__`\n * fields respectively.\n *\n * Notes:\n * - ServerTimestampValue instances are created as the result of applying a\n * transform. They can only exist in the local view of a document. Therefore\n * they do not need to be parsed or serialized.\n * - When evaluated locally (e.g. for snapshot.data()), they by default\n * evaluate to `null`. This behavior can be configured by passing custom\n * FieldValueOptions to value().\n * - With respect to other ServerTimestampValues, they sort by their\n * localWriteTime.\n */ function Rt(t) {\n var e, n;\n return \"server_timestamp\" === (null === (n = ((null === (e = null == t ? void 0 : t.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue);\n}\n\n/**\n * Creates a new ServerTimestamp proto value (using the internal format).\n */\n/**\n * Returns the value of the field before this ServerTimestamp was set.\n *\n * Preserving the previous values allows the user to display the last resoled\n * value until the backend responds with the timestamp.\n */\nfunction Pt(t) {\n const e = t.mapValue.fields.__previous_value__;\n return Rt(e) ? Pt(e) : e;\n}\n\n/**\n * Returns the local time at which this timestamp was first set.\n */ function bt(t) {\n const e = Et(t.mapValue.fields.__local_write_time__.timestampValue);\n return new ut(e.seconds, e.nanos);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class vt {\n /**\n * Constructs a DatabaseInfo using the provided host, databaseId and\n * persistenceKey.\n *\n * @param databaseId - The database to use.\n * @param appId - The Firebase App Id.\n * @param persistenceKey - A unique identifier for this Firestore's local\n * storage (used in conjunction with the databaseId).\n * @param host - The Firestore backend host to connect to.\n * @param ssl - Whether to use SSL when connecting.\n * @param forceLongPolling - Whether to use the forceLongPolling option\n * when using WebChannel as the network transport.\n * @param autoDetectLongPolling - Whether to use the detectBufferingProxy\n * option when using WebChannel as the network transport.\n * @param useFetchStreams Whether to use the Fetch API instead of\n * XMLHTTPRequest\n */\n constructor(t, e, n, s, i, r, o, c) {\n this.databaseId = t, this.appId = e, this.persistenceKey = n, this.host = s, this.ssl = i, \n this.forceLongPolling = r, this.autoDetectLongPolling = o, this.useFetchStreams = c;\n }\n}\n\n/** The default database name for a project. */\n/**\n * Represents the database ID a Firestore client is associated with.\n * @internal\n */\nclass Vt {\n constructor(t, e) {\n this.projectId = t, this.database = e || \"(default)\";\n }\n static empty() {\n return new Vt(\"\", \"\");\n }\n get isDefaultDatabase() {\n return \"(default)\" === this.database;\n }\n isEqual(t) {\n return t instanceof Vt && t.projectId === this.projectId && t.database === this.database;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Sentinel value that sorts before any Mutation Batch ID. */\n/**\n * Returns whether a variable is either undefined or null.\n */\nfunction St(t) {\n return null == t;\n}\n\n/** Returns whether the value represents -0. */ function Dt(t) {\n // Detect if the value is -0.0. Based on polyfill from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n return 0 === t && 1 / t == -1 / 0;\n}\n\n/**\n * Returns whether a value is an integer and in the safe integer range\n * @param value - The value to test for being an integer and in the safe range\n */ function Ct(t) {\n return \"number\" == typeof t && Number.isInteger(t) && !Dt(t) && t <= Number.MAX_SAFE_INTEGER && t >= Number.MIN_SAFE_INTEGER;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @internal\n */ class Nt {\n constructor(t) {\n this.path = t;\n }\n static fromPath(t) {\n return new Nt(_t.fromString(t));\n }\n static fromName(t) {\n return new Nt(_t.fromString(t).popFirst(5));\n }\n static empty() {\n return new Nt(_t.emptyPath());\n }\n get collectionGroup() {\n return this.path.popLast().lastSegment();\n }\n /** Returns true if the document is in the specified collectionId. */ hasCollectionId(t) {\n return this.path.length >= 2 && this.path.get(this.path.length - 2) === t;\n }\n /** Returns the collection group (i.e. the name of the parent collection) for this key. */ getCollectionGroup() {\n return this.path.get(this.path.length - 2);\n }\n /** Returns the fully qualified path to the parent collection. */ getCollectionPath() {\n return this.path.popLast();\n }\n isEqual(t) {\n return null !== t && 0 === _t.comparator(this.path, t.path);\n }\n toString() {\n return this.path.toString();\n }\n static comparator(t, e) {\n return _t.comparator(t.path, e.path);\n }\n static isDocumentKey(t) {\n return t.length % 2 == 0;\n }\n /**\n * Creates and returns a new document key with the given segments.\n *\n * @param segments - The segments of the path to the document\n * @returns A new instance of DocumentKey\n */ static fromSegments(t) {\n return new Nt(new _t(t.slice()));\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const xt = {\n mapValue: {\n fields: {\n __type__: {\n stringValue: \"__max___\"\n }\n }\n }\n};\n\n/** Extracts the backend's type order for the provided value. */ function kt(t) {\n return \"nullValue\" in t ? 0 /* NullValue */ : \"booleanValue\" in t ? 1 /* BooleanValue */ : \"integerValue\" in t || \"doubleValue\" in t ? 2 /* NumberValue */ : \"timestampValue\" in t ? 3 /* TimestampValue */ : \"stringValue\" in t ? 5 /* StringValue */ : \"bytesValue\" in t ? 6 /* BlobValue */ : \"referenceValue\" in t ? 7 /* RefValue */ : \"geoPointValue\" in t ? 8 /* GeoPointValue */ : \"arrayValue\" in t ? 9 /* ArrayValue */ : \"mapValue\" in t ? Rt(t) ? 4 /* ServerTimestampValue */ : 10 /* ObjectValue */ : L();\n}\n\n/** Tests `left` and `right` for equality based on the backend semantics. */ function Ot(t, e) {\n if (t === e) return !0;\n const n = kt(t);\n if (n !== kt(e)) return !1;\n switch (n) {\n case 0 /* NullValue */ :\n return !0;\n\n case 1 /* BooleanValue */ :\n return t.booleanValue === e.booleanValue;\n\n case 4 /* ServerTimestampValue */ :\n return bt(t).isEqual(bt(e));\n\n case 3 /* TimestampValue */ :\n return function(t, e) {\n if (\"string\" == typeof t.timestampValue && \"string\" == typeof e.timestampValue && t.timestampValue.length === e.timestampValue.length) \n // Use string equality for ISO 8601 timestamps\n return t.timestampValue === e.timestampValue;\n const n = Et(t.timestampValue), s = Et(e.timestampValue);\n return n.seconds === s.seconds && n.nanos === s.nanos;\n }(t, e);\n\n case 5 /* StringValue */ :\n return t.stringValue === e.stringValue;\n\n case 6 /* BlobValue */ :\n return function(t, e) {\n return At(t.bytesValue).isEqual(At(e.bytesValue));\n }(t, e);\n\n case 7 /* RefValue */ :\n return t.referenceValue === e.referenceValue;\n\n case 8 /* GeoPointValue */ :\n return function(t, e) {\n return Tt(t.geoPointValue.latitude) === Tt(e.geoPointValue.latitude) && Tt(t.geoPointValue.longitude) === Tt(e.geoPointValue.longitude);\n }(t, e);\n\n case 2 /* NumberValue */ :\n return function(t, e) {\n if (\"integerValue\" in t && \"integerValue\" in e) return Tt(t.integerValue) === Tt(e.integerValue);\n if (\"doubleValue\" in t && \"doubleValue\" in e) {\n const n = Tt(t.doubleValue), s = Tt(e.doubleValue);\n return n === s ? Dt(n) === Dt(s) : isNaN(n) && isNaN(s);\n }\n return !1;\n }(t, e);\n\n case 9 /* ArrayValue */ :\n return ot(t.arrayValue.values || [], e.arrayValue.values || [], Ot);\n\n case 10 /* ObjectValue */ :\n return function(t, e) {\n const n = t.mapValue.fields || {}, s = e.mapValue.fields || {};\n if (ht(n) !== ht(s)) return !1;\n for (const t in n) if (n.hasOwnProperty(t) && (void 0 === s[t] || !Ot(n[t], s[t]))) return !1;\n return !0;\n }\n /** Returns true if the ArrayValue contains the specified element. */ (t, e);\n\n default:\n return L();\n }\n}\n\nfunction Mt(t, e) {\n return void 0 !== (t.values || []).find((t => Ot(t, e)));\n}\n\nfunction $t(t, e) {\n if (t === e) return 0;\n const n = kt(t), s = kt(e);\n if (n !== s) return rt(n, s);\n switch (n) {\n case 0 /* NullValue */ :\n return 0;\n\n case 1 /* BooleanValue */ :\n return rt(t.booleanValue, e.booleanValue);\n\n case 2 /* NumberValue */ :\n return function(t, e) {\n const n = Tt(t.integerValue || t.doubleValue), s = Tt(e.integerValue || e.doubleValue);\n return n < s ? -1 : n > s ? 1 : n === s ? 0 : \n // one or both are NaN.\n isNaN(n) ? isNaN(s) ? 0 : -1 : 1;\n }(t, e);\n\n case 3 /* TimestampValue */ :\n return Ft(t.timestampValue, e.timestampValue);\n\n case 4 /* ServerTimestampValue */ :\n return Ft(bt(t), bt(e));\n\n case 5 /* StringValue */ :\n return rt(t.stringValue, e.stringValue);\n\n case 6 /* BlobValue */ :\n return function(t, e) {\n const n = At(t), s = At(e);\n return n.compareTo(s);\n }(t.bytesValue, e.bytesValue);\n\n case 7 /* RefValue */ :\n return function(t, e) {\n const n = t.split(\"/\"), s = e.split(\"/\");\n for (let t = 0; t < n.length && t < s.length; t++) {\n const e = rt(n[t], s[t]);\n if (0 !== e) return e;\n }\n return rt(n.length, s.length);\n }(t.referenceValue, e.referenceValue);\n\n case 8 /* GeoPointValue */ :\n return function(t, e) {\n const n = rt(Tt(t.latitude), Tt(e.latitude));\n if (0 !== n) return n;\n return rt(Tt(t.longitude), Tt(e.longitude));\n }(t.geoPointValue, e.geoPointValue);\n\n case 9 /* ArrayValue */ :\n return function(t, e) {\n const n = t.values || [], s = e.values || [];\n for (let t = 0; t < n.length && t < s.length; ++t) {\n const e = $t(n[t], s[t]);\n if (e) return e;\n }\n return rt(n.length, s.length);\n }(t.arrayValue, e.arrayValue);\n\n case 10 /* ObjectValue */ :\n return function(t, e) {\n const n = t.fields || {}, s = Object.keys(n), i = e.fields || {}, r = Object.keys(i);\n // Even though MapValues are likely sorted correctly based on their insertion\n // order (e.g. when received from the backend), local modifications can bring\n // elements out of order. We need to re-sort the elements to ensure that\n // canonical IDs are independent of insertion order.\n s.sort(), r.sort();\n for (let t = 0; t < s.length && t < r.length; ++t) {\n const e = rt(s[t], r[t]);\n if (0 !== e) return e;\n const o = $t(n[s[t]], i[r[t]]);\n if (0 !== o) return o;\n }\n return rt(s.length, r.length);\n }\n /**\n * Generates the canonical ID for the provided field value (as used in Target\n * serialization).\n */ (t.mapValue, e.mapValue);\n\n default:\n throw L();\n }\n}\n\nfunction Ft(t, e) {\n if (\"string\" == typeof t && \"string\" == typeof e && t.length === e.length) return rt(t, e);\n const n = Et(t), s = Et(e), i = rt(n.seconds, s.seconds);\n return 0 !== i ? i : rt(n.nanos, s.nanos);\n}\n\nfunction Bt(t) {\n return Lt(t);\n}\n\nfunction Lt(t) {\n return \"nullValue\" in t ? \"null\" : \"booleanValue\" in t ? \"\" + t.booleanValue : \"integerValue\" in t ? \"\" + t.integerValue : \"doubleValue\" in t ? \"\" + t.doubleValue : \"timestampValue\" in t ? function(t) {\n const e = Et(t);\n return `time(${e.seconds},${e.nanos})`;\n }(t.timestampValue) : \"stringValue\" in t ? t.stringValue : \"bytesValue\" in t ? At(t.bytesValue).toBase64() : \"referenceValue\" in t ? (n = t.referenceValue, \n Nt.fromName(n).toString()) : \"geoPointValue\" in t ? `geo(${(e = t.geoPointValue).latitude},${e.longitude})` : \"arrayValue\" in t ? function(t) {\n let e = \"[\", n = !0;\n for (const s of t.values || []) n ? n = !1 : e += \",\", e += Lt(s);\n return e + \"]\";\n }\n /** Returns a reference value for the provided database and key. */ (t.arrayValue) : \"mapValue\" in t ? function(t) {\n // Iteration order in JavaScript is not guaranteed. To ensure that we generate\n // matching canonical IDs for identical maps, we need to sort the keys.\n const e = Object.keys(t.fields || {}).sort();\n let n = \"{\", s = !0;\n for (const i of e) s ? s = !1 : n += \",\", n += `${i}:${Lt(t.fields[i])}`;\n return n + \"}\";\n }(t.mapValue) : L();\n var e, n;\n}\n\nfunction Ut(t, e) {\n return {\n referenceValue: `projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`\n };\n}\n\n/** Returns true if `value` is an IntegerValue . */ function qt(t) {\n return !!t && \"integerValue\" in t;\n}\n\n/** Returns true if `value` is a DoubleValue. */\n/** Returns true if `value` is an ArrayValue. */\nfunction Kt(t) {\n return !!t && \"arrayValue\" in t;\n}\n\n/** Returns true if `value` is a NullValue. */ function Gt(t) {\n return !!t && \"nullValue\" in t;\n}\n\n/** Returns true if `value` is NaN. */ function jt(t) {\n return !!t && \"doubleValue\" in t && isNaN(Number(t.doubleValue));\n}\n\n/** Returns true if `value` is a MapValue. */ function Qt(t) {\n return !!t && \"mapValue\" in t;\n}\n\n/** Creates a deep copy of `source`. */ function Wt(t) {\n if (t.geoPointValue) return {\n geoPointValue: Object.assign({}, t.geoPointValue)\n };\n if (t.timestampValue && \"object\" == typeof t.timestampValue) return {\n timestampValue: Object.assign({}, t.timestampValue)\n };\n if (t.mapValue) {\n const e = {\n mapValue: {\n fields: {}\n }\n };\n return lt(t.mapValue.fields, ((t, n) => e.mapValue.fields[t] = Wt(n))), e;\n }\n if (t.arrayValue) {\n const e = {\n arrayValue: {\n values: []\n }\n };\n for (let n = 0; n < (t.arrayValue.values || []).length; ++n) e.arrayValue.values[n] = Wt(t.arrayValue.values[n]);\n return e;\n }\n return Object.assign({}, t);\n}\n\n/** Returns true if the Value represents the canonical {@link #MAX_VALUE} . */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An ObjectValue represents a MapValue in the Firestore Proto and offers the\n * ability to add and remove fields (via the ObjectValueBuilder).\n */\nclass zt {\n constructor(t) {\n this.value = t;\n }\n static empty() {\n return new zt({\n mapValue: {}\n });\n }\n /**\n * Returns the value at the given path or null.\n *\n * @param path - the path to search\n * @returns The value at the path or null if the path is not set.\n */ field(t) {\n if (t.isEmpty()) return this.value;\n {\n let e = this.value;\n for (let n = 0; n < t.length - 1; ++n) if (e = (e.mapValue.fields || {})[t.get(n)], \n !Qt(e)) return null;\n return e = (e.mapValue.fields || {})[t.lastSegment()], e || null;\n }\n }\n /**\n * Sets the field to the provided value.\n *\n * @param path - The field path to set.\n * @param value - The value to set.\n */ set(t, e) {\n this.getFieldsMap(t.popLast())[t.lastSegment()] = Wt(e);\n }\n /**\n * Sets the provided fields to the provided values.\n *\n * @param data - A map of fields to values (or null for deletes).\n */ setAll(t) {\n let e = mt.emptyPath(), n = {}, s = [];\n t.forEach(((t, i) => {\n if (!e.isImmediateParentOf(i)) {\n // Insert the accumulated changes at this parent location\n const t = this.getFieldsMap(e);\n this.applyChanges(t, n, s), n = {}, s = [], e = i.popLast();\n }\n t ? n[i.lastSegment()] = Wt(t) : s.push(i.lastSegment());\n }));\n const i = this.getFieldsMap(e);\n this.applyChanges(i, n, s);\n }\n /**\n * Removes the field at the specified path. If there is no field at the\n * specified path, nothing is changed.\n *\n * @param path - The field path to remove.\n */ delete(t) {\n const e = this.field(t.popLast());\n Qt(e) && e.mapValue.fields && delete e.mapValue.fields[t.lastSegment()];\n }\n isEqual(t) {\n return Ot(this.value, t.value);\n }\n /**\n * Returns the map that contains the leaf element of `path`. If the parent\n * entry does not yet exist, or if it is not a map, a new map will be created.\n */ getFieldsMap(t) {\n let e = this.value;\n e.mapValue.fields || (e.mapValue = {\n fields: {}\n });\n for (let n = 0; n < t.length; ++n) {\n let s = e.mapValue.fields[t.get(n)];\n Qt(s) && s.mapValue.fields || (s = {\n mapValue: {\n fields: {}\n }\n }, e.mapValue.fields[t.get(n)] = s), e = s;\n }\n return e.mapValue.fields;\n }\n /**\n * Modifies `fieldsMap` by adding, replacing or deleting the specified\n * entries.\n */ applyChanges(t, e, n) {\n lt(e, ((e, n) => t[e] = n));\n for (const e of n) delete t[e];\n }\n clone() {\n return new zt(Wt(this.value));\n }\n}\n\n/**\n * Returns a FieldMask built from all fields in a MapValue.\n */ function Ht(t) {\n const e = [];\n return lt(t.fields, ((t, n) => {\n const s = new mt([ t ]);\n if (Qt(n)) {\n const t = Ht(n.mapValue).fields;\n if (0 === t.length) \n // Preserve the empty map by adding it to the FieldMask.\n e.push(s); else \n // For nested and non-empty ObjectValues, add the FieldPath of the\n // leaf nodes.\n for (const n of t) e.push(s.child(n));\n } else \n // For nested and non-empty ObjectValues, add the FieldPath of the leaf\n // nodes.\n e.push(s);\n })), new gt(e);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents a document in Firestore with a key, version, data and whether it\n * has local mutations applied to it.\n *\n * Documents can transition between states via `convertToFoundDocument()`,\n * `convertToNoDocument()` and `convertToUnknownDocument()`. If a document does\n * not transition to one of these states even after all mutations have been\n * applied, `isValidDocument()` returns false and the document should be removed\n * from all views.\n */ class Jt {\n constructor(t, e, n, s, i, r) {\n this.key = t, this.documentType = e, this.version = n, this.readTime = s, this.data = i, \n this.documentState = r;\n }\n /**\n * Creates a document with no known version or data, but which can serve as\n * base document for mutations.\n */ static newInvalidDocument(t) {\n return new Jt(t, 0 /* INVALID */ , at.min(), at.min(), zt.empty(), 0 /* SYNCED */);\n }\n /**\n * Creates a new document that is known to exist with the given data at the\n * given version.\n */ static newFoundDocument(t, e, n) {\n return new Jt(t, 1 /* FOUND_DOCUMENT */ , e, at.min(), n, 0 /* SYNCED */);\n }\n /** Creates a new document that is known to not exist at the given version. */ static newNoDocument(t, e) {\n return new Jt(t, 2 /* NO_DOCUMENT */ , e, at.min(), zt.empty(), 0 /* SYNCED */);\n }\n /**\n * Creates a new document that is known to exist at the given version but\n * whose data is not known (e.g. a document that was updated without a known\n * base document).\n */ static newUnknownDocument(t, e) {\n return new Jt(t, 3 /* UNKNOWN_DOCUMENT */ , e, at.min(), zt.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);\n }\n /**\n * Changes the document type to indicate that it exists and that its version\n * and data are known.\n */ convertToFoundDocument(t, e) {\n return this.version = t, this.documentType = 1 /* FOUND_DOCUMENT */ , this.data = e, \n this.documentState = 0 /* SYNCED */ , this;\n }\n /**\n * Changes the document type to indicate that it doesn't exist at the given\n * version.\n */ convertToNoDocument(t) {\n return this.version = t, this.documentType = 2 /* NO_DOCUMENT */ , this.data = zt.empty(), \n this.documentState = 0 /* SYNCED */ , this;\n }\n /**\n * Changes the document type to indicate that it exists at a given version but\n * that its data is not known (e.g. a document that was updated without a known\n * base document).\n */ convertToUnknownDocument(t) {\n return this.version = t, this.documentType = 3 /* UNKNOWN_DOCUMENT */ , this.data = zt.empty(), \n this.documentState = 2 /* HAS_COMMITTED_MUTATIONS */ , this;\n }\n setHasCommittedMutations() {\n return this.documentState = 2 /* HAS_COMMITTED_MUTATIONS */ , this;\n }\n setHasLocalMutations() {\n return this.documentState = 1 /* HAS_LOCAL_MUTATIONS */ , this;\n }\n setReadTime(t) {\n return this.readTime = t, this;\n }\n get hasLocalMutations() {\n return 1 /* HAS_LOCAL_MUTATIONS */ === this.documentState;\n }\n get hasCommittedMutations() {\n return 2 /* HAS_COMMITTED_MUTATIONS */ === this.documentState;\n }\n get hasPendingWrites() {\n return this.hasLocalMutations || this.hasCommittedMutations;\n }\n isValidDocument() {\n return 0 /* INVALID */ !== this.documentType;\n }\n isFoundDocument() {\n return 1 /* FOUND_DOCUMENT */ === this.documentType;\n }\n isNoDocument() {\n return 2 /* NO_DOCUMENT */ === this.documentType;\n }\n isUnknownDocument() {\n return 3 /* UNKNOWN_DOCUMENT */ === this.documentType;\n }\n isEqual(t) {\n return t instanceof Jt && this.key.isEqual(t.key) && this.version.isEqual(t.version) && this.documentType === t.documentType && this.documentState === t.documentState && this.data.isEqual(t.data);\n }\n mutableCopy() {\n return new Jt(this.key, this.documentType, this.version, this.readTime, this.data.clone(), this.documentState);\n }\n toString() {\n return `Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`;\n }\n}\n\n/**\n * Compares the value for field `field` in the provided documents. Throws if\n * the field does not exist in both documents.\n */\n/**\n * An index definition for field indexes in Firestore.\n *\n * Every index is associated with a collection. The definition contains a list\n * of fields and their index kind (which can be `ASCENDING`, `DESCENDING` or\n * `CONTAINS` for ArrayContains/ArrayContainsAny queries).\n *\n * Unlike the backend, the SDK does not differentiate between collection or\n * collection group-scoped indices. Every index can be used for both single\n * collection and collection group queries.\n */\nclass Yt {\n constructor(\n /**\n * The index ID. Returns -1 if the index ID is not available (e.g. the index\n * has not yet been persisted).\n */\n t, \n /** The collection ID this index applies to. */\n e, \n /** The field segments for this index. */\n n, \n /** Shows how up-to-date the index is for the current user. */\n s) {\n this.indexId = t, this.collectionGroup = e, this.fields = n, this.indexState = s;\n }\n}\n\n/** An ID for an index that has not yet been added to persistence. */ Yt.UNKNOWN_ID = -1;\n\n/** An index component consisting of field path and index type. */\nclass Xt {\n constructor(\n /** The field path of the component. */\n t, \n /** The fields sorting order. */\n e) {\n this.fieldPath = t, this.kind = e;\n }\n}\n\n/**\n * Stores the \"high water mark\" that indicates how updated the Index is for the\n * current user.\n */ class Zt {\n constructor(\n /**\n * Indicates when the index was last updated (relative to other indexes).\n */\n t, \n /** The the latest indexed read time, document and batch id. */\n e) {\n this.sequenceNumber = t, this.offset = e;\n }\n /** The state of an index that has not yet been backfilled. */ static empty() {\n return new Zt(0, te.min());\n }\n}\n\n/**\n * Stores the latest read time, document and batch ID that were processed for an\n * index.\n */ class te {\n constructor(\n /**\n * The latest read time version that has been indexed by Firestore for this\n * field index.\n */\n t, \n /**\n * The key of the last document that was indexed for this query. Use\n * `DocumentKey.empty()` if no document has been indexed.\n */\n e, \n /*\n * The largest mutation batch id that's been processed by Firestore.\n */\n n) {\n this.readTime = t, this.documentKey = e, this.largestBatchId = n;\n }\n /** The state of an index that has not yet been backfilled. */ static min() {\n return new te(at.min(), Nt.empty(), -1);\n }\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Visible for testing\nclass ee {\n constructor(t, e = null, n = [], s = [], i = null, r = null, o = null) {\n this.path = t, this.collectionGroup = e, this.orderBy = n, this.filters = s, this.limit = i, \n this.startAt = r, this.endAt = o, this.P = null;\n }\n}\n\n/**\n * Initializes a Target with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n *\n * NOTE: you should always construct `Target` from `Query.toTarget` instead of\n * using this factory method, because `Query` provides an implicit `orderBy`\n * property.\n */ function ne(t, e = null, n = [], s = [], i = null, r = null, o = null) {\n return new ee(t, e, n, s, i, r, o);\n}\n\nfunction se(t) {\n const e = K(t);\n if (null === e.P) {\n let t = e.path.canonicalString();\n null !== e.collectionGroup && (t += \"|cg:\" + e.collectionGroup), t += \"|f:\", t += e.filters.map((t => {\n return (e = t).field.canonicalString() + e.op.toString() + Bt(e.value);\n var e;\n })).join(\",\"), t += \"|ob:\", t += e.orderBy.map((t => function(t) {\n // TODO(b/29183165): Make this collision robust.\n return t.field.canonicalString() + t.dir;\n }(t))).join(\",\"), St(e.limit) || (t += \"|l:\", t += e.limit), e.startAt && (t += \"|lb:\", \n t += e.startAt.inclusive ? \"b:\" : \"a:\", t += e.startAt.position.map((t => Bt(t))).join(\",\")), \n e.endAt && (t += \"|ub:\", t += e.endAt.inclusive ? \"a:\" : \"b:\", t += e.endAt.position.map((t => Bt(t))).join(\",\")), \n e.P = t;\n }\n return e.P;\n}\n\nfunction ie(t) {\n let e = t.path.canonicalString();\n return null !== t.collectionGroup && (e += \" collectionGroup=\" + t.collectionGroup), \n t.filters.length > 0 && (e += `, filters: [${t.filters.map((t => {\n return `${(e = t).field.canonicalString()} ${e.op} ${Bt(e.value)}`;\n /** Returns a debug description for `filter`. */\n var e;\n /** Filter that matches on key fields (i.e. '__name__'). */ })).join(\", \")}]`), \n St(t.limit) || (e += \", limit: \" + t.limit), t.orderBy.length > 0 && (e += `, orderBy: [${t.orderBy.map((t => function(t) {\n return `${t.field.canonicalString()} (${t.dir})`;\n }(t))).join(\", \")}]`), t.startAt && (e += \", startAt: \", e += t.startAt.inclusive ? \"b:\" : \"a:\", \n e += t.startAt.position.map((t => Bt(t))).join(\",\")), t.endAt && (e += \", endAt: \", \n e += t.endAt.inclusive ? \"a:\" : \"b:\", e += t.endAt.position.map((t => Bt(t))).join(\",\")), \n `Target(${e})`;\n}\n\nfunction re(t, e) {\n if (t.limit !== e.limit) return !1;\n if (t.orderBy.length !== e.orderBy.length) return !1;\n for (let n = 0; n < t.orderBy.length; n++) if (!ye(t.orderBy[n], e.orderBy[n])) return !1;\n if (t.filters.length !== e.filters.length) return !1;\n for (let i = 0; i < t.filters.length; i++) if (n = t.filters[i], s = e.filters[i], \n n.op !== s.op || !n.field.isEqual(s.field) || !Ot(n.value, s.value)) return !1;\n var n, s;\n return t.collectionGroup === e.collectionGroup && (!!t.path.isEqual(e.path) && (!!Ie(t.startAt, e.startAt) && Ie(t.endAt, e.endAt)));\n}\n\nfunction oe(t) {\n return Nt.isDocumentKey(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n}\n\nclass ce extends class {} {\n constructor(t, e, n) {\n super(), this.field = t, this.op = e, this.value = n;\n }\n /**\n * Creates a filter based on the provided arguments.\n */ static create(t, e, n) {\n return t.isKeyField() ? \"in\" /* IN */ === e || \"not-in\" /* NOT_IN */ === e ? this.v(t, e, n) : new ue(t, e, n) : \"array-contains\" /* ARRAY_CONTAINS */ === e ? new fe(t, n) : \"in\" /* IN */ === e ? new de(t, n) : \"not-in\" /* NOT_IN */ === e ? new _e(t, n) : \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ === e ? new we(t, n) : new ce(t, e, n);\n }\n static v(t, e, n) {\n return \"in\" /* IN */ === e ? new ae(t, n) : new he(t, n);\n }\n matches(t) {\n const e = t.data.field(this.field);\n // Types do not have to match in NOT_EQUAL filters.\n return \"!=\" /* NOT_EQUAL */ === this.op ? null !== e && this.V($t(e, this.value)) : null !== e && kt(this.value) === kt(e) && this.V($t(e, this.value));\n // Only compare types with matching backend order (such as double and int).\n }\n V(t) {\n switch (this.op) {\n case \"<\" /* LESS_THAN */ :\n return t < 0;\n\n case \"<=\" /* LESS_THAN_OR_EQUAL */ :\n return t <= 0;\n\n case \"==\" /* EQUAL */ :\n return 0 === t;\n\n case \"!=\" /* NOT_EQUAL */ :\n return 0 !== t;\n\n case \">\" /* GREATER_THAN */ :\n return t > 0;\n\n case \">=\" /* GREATER_THAN_OR_EQUAL */ :\n return t >= 0;\n\n default:\n return L();\n }\n }\n S() {\n return [ \"<\" /* LESS_THAN */ , \"<=\" /* LESS_THAN_OR_EQUAL */ , \">\" /* GREATER_THAN */ , \">=\" /* GREATER_THAN_OR_EQUAL */ , \"!=\" /* NOT_EQUAL */ , \"not-in\" /* NOT_IN */ ].indexOf(this.op) >= 0;\n }\n}\n\nclass ue extends ce {\n constructor(t, e, n) {\n super(t, e, n), this.key = Nt.fromName(n.referenceValue);\n }\n matches(t) {\n const e = Nt.comparator(t.key, this.key);\n return this.V(e);\n }\n}\n\n/** Filter that matches on key fields within an array. */ class ae extends ce {\n constructor(t, e) {\n super(t, \"in\" /* IN */ , e), this.keys = le(\"in\" /* IN */ , e);\n }\n matches(t) {\n return this.keys.some((e => e.isEqual(t.key)));\n }\n}\n\n/** Filter that matches on key fields not present within an array. */ class he extends ce {\n constructor(t, e) {\n super(t, \"not-in\" /* NOT_IN */ , e), this.keys = le(\"not-in\" /* NOT_IN */ , e);\n }\n matches(t) {\n return !this.keys.some((e => e.isEqual(t.key)));\n }\n}\n\nfunction le(t, e) {\n var n;\n return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map((t => Nt.fromName(t.referenceValue)));\n}\n\n/** A Filter that implements the array-contains operator. */ class fe extends ce {\n constructor(t, e) {\n super(t, \"array-contains\" /* ARRAY_CONTAINS */ , e);\n }\n matches(t) {\n const e = t.data.field(this.field);\n return Kt(e) && Mt(e.arrayValue, this.value);\n }\n}\n\n/** A Filter that implements the IN operator. */ class de extends ce {\n constructor(t, e) {\n super(t, \"in\" /* IN */ , e);\n }\n matches(t) {\n const e = t.data.field(this.field);\n return null !== e && Mt(this.value.arrayValue, e);\n }\n}\n\n/** A Filter that implements the not-in operator. */ class _e extends ce {\n constructor(t, e) {\n super(t, \"not-in\" /* NOT_IN */ , e);\n }\n matches(t) {\n if (Mt(this.value.arrayValue, {\n nullValue: \"NULL_VALUE\"\n })) return !1;\n const e = t.data.field(this.field);\n return null !== e && !Mt(this.value.arrayValue, e);\n }\n}\n\n/** A Filter that implements the array-contains-any operator. */ class we extends ce {\n constructor(t, e) {\n super(t, \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , e);\n }\n matches(t) {\n const e = t.data.field(this.field);\n return !(!Kt(e) || !e.arrayValue.values) && e.arrayValue.values.some((t => Mt(this.value.arrayValue, t)));\n }\n}\n\n/**\n * Represents a bound of a query.\n *\n * The bound is specified with the given components representing a position and\n * whether it's just before or just after the position (relative to whatever the\n * query order is).\n *\n * The position represents a logical index position for a query. It's a prefix\n * of values for the (potentially implicit) order by clauses of a query.\n *\n * Bound provides a function to determine whether a document comes before or\n * after a bound. This is influenced by whether the position is just before or\n * just after the provided values.\n */ class me {\n constructor(t, e) {\n this.position = t, this.inclusive = e;\n }\n}\n\n/**\n * An ordering on a field, in some Direction. Direction defaults to ASCENDING.\n */ class ge {\n constructor(t, e = \"asc\" /* ASCENDING */) {\n this.field = t, this.dir = e;\n }\n}\n\nfunction ye(t, e) {\n return t.dir === e.dir && t.field.isEqual(e.field);\n}\n\nfunction pe(t, e, n) {\n let s = 0;\n for (let i = 0; i < t.position.length; i++) {\n const r = e[i], o = t.position[i];\n if (r.field.isKeyField()) s = Nt.comparator(Nt.fromName(o.referenceValue), n.key); else {\n s = $t(o, n.data.field(r.field));\n }\n if (\"desc\" /* DESCENDING */ === r.dir && (s *= -1), 0 !== s) break;\n }\n return s;\n}\n\n/**\n * Returns true if a document sorts after a bound using the provided sort\n * order.\n */ function Ie(t, e) {\n if (null === t) return null === e;\n if (null === e) return !1;\n if (t.inclusive !== e.inclusive || t.position.length !== e.position.length) return !1;\n for (let n = 0; n < t.position.length; n++) {\n if (!Ot(t.position[n], e.position[n])) return !1;\n }\n return !0;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Query encapsulates all the query attributes we support in the SDK. It can\n * be run against the LocalStore, as well as be converted to a `Target` to\n * query the RemoteStore results.\n *\n * Visible for testing.\n */ class Ee {\n /**\n * Initializes a Query with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n */\n constructor(t, e = null, n = [], s = [], i = null, r = \"F\" /* First */ , o = null, c = null) {\n this.path = t, this.collectionGroup = e, this.explicitOrderBy = n, this.filters = s, \n this.limit = i, this.limitType = r, this.startAt = o, this.endAt = c, this.D = null, \n // The corresponding `Target` of this `Query` instance.\n this.C = null, this.startAt, this.endAt;\n }\n}\n\n/** Creates a new Query instance with the options provided. */ function Te(t, e, n, s, i, r, o, c) {\n return new Ee(t, e, n, s, i, r, o, c);\n}\n\n/** Creates a new Query for a query that matches all documents at `path` */ function Ae(t) {\n return new Ee(t);\n}\n\n/**\n * Helper to convert a collection group query into a collection query at a\n * specific path. This is used when executing collection group queries, since\n * we have to split the query into a set of collection queries at multiple\n * paths.\n */ function Re(t) {\n return !St(t.limit) && \"F\" /* First */ === t.limitType;\n}\n\nfunction Pe(t) {\n return !St(t.limit) && \"L\" /* Last */ === t.limitType;\n}\n\nfunction be(t) {\n return t.explicitOrderBy.length > 0 ? t.explicitOrderBy[0].field : null;\n}\n\nfunction ve(t) {\n for (const e of t.filters) if (e.S()) return e.field;\n return null;\n}\n\n/**\n * Checks if any of the provided Operators are included in the query and\n * returns the first one that is, or null if none are.\n */\n/**\n * Returns whether the query matches a collection group rather than a specific\n * collection.\n */\nfunction Ve(t) {\n return null !== t.collectionGroup;\n}\n\n/**\n * Returns the implicit order by constraint that is used to execute the Query,\n * which can be different from the order by constraints the user provided (e.g.\n * the SDK and backend always orders by `__name__`).\n */ function Se(t) {\n const e = K(t);\n if (null === e.D) {\n e.D = [];\n const t = ve(e), n = be(e);\n if (null !== t && null === n) \n // In order to implicitly add key ordering, we must also add the\n // inequality filter field for it to be a valid query.\n // Note that the default inequality field and key ordering is ascending.\n t.isKeyField() || e.D.push(new ge(t)), e.D.push(new ge(mt.keyField(), \"asc\" /* ASCENDING */)); else {\n let t = !1;\n for (const n of e.explicitOrderBy) e.D.push(n), n.field.isKeyField() && (t = !0);\n if (!t) {\n // The order of the implicit key ordering always matches the last\n // explicit order by\n const t = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : \"asc\" /* ASCENDING */;\n e.D.push(new ge(mt.keyField(), t));\n }\n }\n }\n return e.D;\n}\n\n/**\n * Converts this `Query` instance to it's corresponding `Target` representation.\n */ function De(t) {\n const e = K(t);\n if (!e.C) if (\"F\" /* First */ === e.limitType) e.C = ne(e.path, e.collectionGroup, Se(e), e.filters, e.limit, e.startAt, e.endAt); else {\n // Flip the orderBy directions since we want the last results\n const t = [];\n for (const n of Se(e)) {\n const e = \"desc\" /* DESCENDING */ === n.dir ? \"asc\" /* ASCENDING */ : \"desc\" /* DESCENDING */;\n t.push(new ge(n.field, e));\n }\n // We need to swap the cursors to match the now-flipped query ordering.\n const n = e.endAt ? new me(e.endAt.position, !e.endAt.inclusive) : null, s = e.startAt ? new me(e.startAt.position, !e.startAt.inclusive) : null;\n // Now return as a LimitType.First query.\n e.C = ne(e.path, e.collectionGroup, t, e.filters, e.limit, n, s);\n }\n return e.C;\n}\n\nfunction Ce(t, e, n) {\n return new Ee(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), e, n, t.startAt, t.endAt);\n}\n\nfunction Ne(t, e) {\n return re(De(t), De(e)) && t.limitType === e.limitType;\n}\n\n// TODO(b/29183165): This is used to get a unique string from a query to, for\n// example, use as a dictionary key, but the implementation is subject to\n// collisions. Make it collision-free.\nfunction xe(t) {\n return `${se(De(t))}|lt:${t.limitType}`;\n}\n\nfunction ke(t) {\n return `Query(target=${ie(De(t))}; limitType=${t.limitType})`;\n}\n\n/** Returns whether `doc` matches the constraints of `query`. */ function Oe(t, e) {\n return e.isFoundDocument() && function(t, e) {\n const n = e.key.path;\n return null !== t.collectionGroup ? e.key.hasCollectionId(t.collectionGroup) && t.path.isPrefixOf(n) : Nt.isDocumentKey(t.path) ? t.path.isEqual(n) : t.path.isImmediateParentOf(n);\n }\n /**\n * A document must have a value for every ordering clause in order to show up\n * in the results.\n */ (t, e) && function(t, e) {\n for (const n of t.explicitOrderBy) \n // order by key always matches\n if (!n.field.isKeyField() && null === e.data.field(n.field)) return !1;\n return !0;\n }(t, e) && function(t, e) {\n for (const n of t.filters) if (!n.matches(e)) return !1;\n return !0;\n }\n /** Makes sure a document is within the bounds, if provided. */ (t, e) && function(t, e) {\n if (t.startAt && !\n /**\n * Returns true if a document sorts before a bound using the provided sort\n * order.\n */\n function(t, e, n) {\n const s = pe(t, e, n);\n return t.inclusive ? s <= 0 : s < 0;\n }(t.startAt, Se(t), e)) return !1;\n if (t.endAt && !function(t, e, n) {\n const s = pe(t, e, n);\n return t.inclusive ? s >= 0 : s > 0;\n }(t.endAt, Se(t), e)) return !1;\n return !0;\n }\n /**\n * Returns a new comparator function that can be used to compare two documents\n * based on the Query's ordering constraint.\n */ (t, e);\n}\n\nfunction Me(t) {\n return (e, n) => {\n let s = !1;\n for (const i of Se(t)) {\n const t = $e(i, e, n);\n if (0 !== t) return t;\n s = s || i.field.isKeyField();\n }\n return 0;\n };\n}\n\nfunction $e(t, e, n) {\n const s = t.field.isKeyField() ? Nt.comparator(e.key, n.key) : function(t, e, n) {\n const s = e.data.field(t), i = n.data.field(t);\n return null !== s && null !== i ? $t(s, i) : L();\n }\n /**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * The initial mutation batch id for each index. Gets updated during index\n * backfill.\n */ (t.field, e, n);\n switch (t.dir) {\n case \"asc\" /* ASCENDING */ :\n return s;\n\n case \"desc\" /* DESCENDING */ :\n return -1 * s;\n\n default:\n return L();\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns an DoubleValue for `value` that is encoded based the serializer's\n * `useProto3Json` setting.\n */ function Fe(t, e) {\n if (t.N) {\n if (isNaN(e)) return {\n doubleValue: \"NaN\"\n };\n if (e === 1 / 0) return {\n doubleValue: \"Infinity\"\n };\n if (e === -1 / 0) return {\n doubleValue: \"-Infinity\"\n };\n }\n return {\n doubleValue: Dt(e) ? \"-0\" : e\n };\n}\n\n/**\n * Returns an IntegerValue for `value`.\n */ function Be(t) {\n return {\n integerValue: \"\" + t\n };\n}\n\n/**\n * Returns a value for a number that's appropriate to put into a proto.\n * The return value is an IntegerValue if it can safely represent the value,\n * otherwise a DoubleValue is returned.\n */ function Le(t, e) {\n return Ct(e) ? Be(e) : Fe(t, e);\n}\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Used to represent a field transform on a mutation. */ class Ue {\n constructor() {\n // Make sure that the structural type of `TransformOperation` is unique.\n // See https://github.com/microsoft/TypeScript/issues/5451\n this._ = void 0;\n }\n}\n\n/**\n * Computes the local transform result against the provided `previousValue`,\n * optionally using the provided localWriteTime.\n */ function qe(t, e, n) {\n return t instanceof je ? function(t, e) {\n const n = {\n fields: {\n __type__: {\n stringValue: \"server_timestamp\"\n },\n __local_write_time__: {\n timestampValue: {\n seconds: t.seconds,\n nanos: t.nanoseconds\n }\n }\n }\n };\n return e && (n.fields.__previous_value__ = e), {\n mapValue: n\n };\n }(n, e) : t instanceof Qe ? We(t, e) : t instanceof ze ? He(t, e) : function(t, e) {\n // PORTING NOTE: Since JavaScript's integer arithmetic is limited to 53 bit\n // precision and resolves overflows by reducing precision, we do not\n // manually cap overflows at 2^63.\n const n = Ge(t, e), s = Ye(n) + Ye(t.k);\n return qt(n) && qt(t.k) ? Be(s) : Fe(t.O, s);\n }(t, e);\n}\n\n/**\n * Computes a final transform result after the transform has been acknowledged\n * by the server, potentially using the server-provided transformResult.\n */ function Ke(t, e, n) {\n // The server just sends null as the transform result for array operations,\n // so we have to calculate a result the same as we do for local\n // applications.\n return t instanceof Qe ? We(t, e) : t instanceof ze ? He(t, e) : n;\n}\n\n/**\n * If this transform operation is not idempotent, returns the base value to\n * persist for this transform. If a base value is returned, the transform\n * operation is always applied to this base value, even if document has\n * already been updated.\n *\n * Base values provide consistent behavior for non-idempotent transforms and\n * allow us to return the same latency-compensated value even if the backend\n * has already applied the transform operation. The base value is null for\n * idempotent transforms, as they can be re-played even if the backend has\n * already applied them.\n *\n * @returns a base value to store along with the mutation, or null for\n * idempotent transforms.\n */ function Ge(t, e) {\n return t instanceof Je ? qt(n = e) || function(t) {\n return !!t && \"doubleValue\" in t;\n }\n /** Returns true if `value` is either an IntegerValue or a DoubleValue. */ (n) ? e : {\n integerValue: 0\n } : null;\n var n;\n}\n\n/** Transforms a value into a server-generated timestamp. */\nclass je extends Ue {}\n\n/** Transforms an array value via a union operation. */ class Qe extends Ue {\n constructor(t) {\n super(), this.elements = t;\n }\n}\n\nfunction We(t, e) {\n const n = Xe(e);\n for (const e of t.elements) n.some((t => Ot(t, e))) || n.push(e);\n return {\n arrayValue: {\n values: n\n }\n };\n}\n\n/** Transforms an array value via a remove operation. */ class ze extends Ue {\n constructor(t) {\n super(), this.elements = t;\n }\n}\n\nfunction He(t, e) {\n let n = Xe(e);\n for (const e of t.elements) n = n.filter((t => !Ot(t, e)));\n return {\n arrayValue: {\n values: n\n }\n };\n}\n\n/**\n * Implements the backend semantics for locally computed NUMERIC_ADD (increment)\n * transforms. Converts all field values to integers or doubles, but unlike the\n * backend does not cap integer values at 2^63. Instead, JavaScript number\n * arithmetic is used and precision loss can occur for values greater than 2^53.\n */ class Je extends Ue {\n constructor(t, e) {\n super(), this.O = t, this.k = e;\n }\n}\n\nfunction Ye(t) {\n return Tt(t.integerValue || t.doubleValue);\n}\n\nfunction Xe(t) {\n return Kt(t) && t.arrayValue.values ? t.arrayValue.values.slice() : [];\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** A field path and the TransformOperation to perform upon it. */ class Ze {\n constructor(t, e) {\n this.field = t, this.transform = e;\n }\n}\n\nfunction tn(t, e) {\n return t.field.isEqual(e.field) && function(t, e) {\n return t instanceof Qe && e instanceof Qe || t instanceof ze && e instanceof ze ? ot(t.elements, e.elements, Ot) : t instanceof Je && e instanceof Je ? Ot(t.k, e.k) : t instanceof je && e instanceof je;\n }(t.transform, e.transform);\n}\n\n/** The result of successfully applying a mutation to the backend. */\nclass en {\n constructor(\n /**\n * The version at which the mutation was committed:\n *\n * - For most operations, this is the updateTime in the WriteResult.\n * - For deletes, the commitTime of the WriteResponse (because deletes are\n * not stored and have no updateTime).\n *\n * Note that these versions can be different: No-op writes will not change\n * the updateTime even though the commitTime advances.\n */\n t, \n /**\n * The resulting fields returned from the backend after a mutation\n * containing field transforms has been committed. Contains one FieldValue\n * for each FieldTransform that was in the mutation.\n *\n * Will be empty if the mutation did not contain any field transforms.\n */\n e) {\n this.version = t, this.transformResults = e;\n }\n}\n\n/**\n * Encodes a precondition for a mutation. This follows the model that the\n * backend accepts with the special case of an explicit \"empty\" precondition\n * (meaning no precondition).\n */ class nn {\n constructor(t, e) {\n this.updateTime = t, this.exists = e;\n }\n /** Creates a new empty Precondition. */ static none() {\n return new nn;\n }\n /** Creates a new Precondition with an exists flag. */ static exists(t) {\n return new nn(void 0, t);\n }\n /** Creates a new Precondition based on a version a document exists at. */ static updateTime(t) {\n return new nn(t);\n }\n /** Returns whether this Precondition is empty. */ get isNone() {\n return void 0 === this.updateTime && void 0 === this.exists;\n }\n isEqual(t) {\n return this.exists === t.exists && (this.updateTime ? !!t.updateTime && this.updateTime.isEqual(t.updateTime) : !t.updateTime);\n }\n}\n\n/** Returns true if the preconditions is valid for the given document. */ function sn(t, e) {\n return void 0 !== t.updateTime ? e.isFoundDocument() && e.version.isEqual(t.updateTime) : void 0 === t.exists || t.exists === e.isFoundDocument();\n}\n\n/**\n * A mutation describes a self-contained change to a document. Mutations can\n * create, replace, delete, and update subsets of documents.\n *\n * Mutations not only act on the value of the document but also its version.\n *\n * For local mutations (mutations that haven't been committed yet), we preserve\n * the existing version for Set and Patch mutations. For Delete mutations, we\n * reset the version to 0.\n *\n * Here's the expected transition table.\n *\n * MUTATION APPLIED TO RESULTS IN\n *\n * SetMutation Document(v3) Document(v3)\n * SetMutation NoDocument(v3) Document(v0)\n * SetMutation InvalidDocument(v0) Document(v0)\n * PatchMutation Document(v3) Document(v3)\n * PatchMutation NoDocument(v3) NoDocument(v3)\n * PatchMutation InvalidDocument(v0) UnknownDocument(v3)\n * DeleteMutation Document(v3) NoDocument(v0)\n * DeleteMutation NoDocument(v3) NoDocument(v0)\n * DeleteMutation InvalidDocument(v0) NoDocument(v0)\n *\n * For acknowledged mutations, we use the updateTime of the WriteResponse as\n * the resulting version for Set and Patch mutations. As deletes have no\n * explicit update time, we use the commitTime of the WriteResponse for\n * Delete mutations.\n *\n * If a mutation is acknowledged by the backend but fails the precondition check\n * locally, we transition to an `UnknownDocument` and rely on Watch to send us\n * the updated version.\n *\n * Field transforms are used only with Patch and Set Mutations. We use the\n * `updateTransforms` message to store transforms, rather than the `transforms`s\n * messages.\n *\n * ## Subclassing Notes\n *\n * Every type of mutation needs to implement its own applyToRemoteDocument() and\n * applyToLocalView() to implement the actual behavior of applying the mutation\n * to some source document (see `setMutationApplyToRemoteDocument()` for an\n * example).\n */ class rn {}\n\n/**\n * Applies this mutation to the given document for the purposes of computing a\n * new remote document. If the input document doesn't match the expected state\n * (e.g. it is invalid or outdated), the document type may transition to\n * unknown.\n *\n * @param mutation - The mutation to apply.\n * @param document - The document to mutate. The input document can be an\n * invalid document if the client has no knowledge of the pre-mutation state\n * of the document.\n * @param mutationResult - The result of applying the mutation from the backend.\n */ function on(t, e, n) {\n t instanceof ln ? function(t, e, n) {\n // Unlike setMutationApplyToLocalView, if we're applying a mutation to a\n // remote document the server has accepted the mutation so the precondition\n // must have held.\n const s = t.value.clone(), i = _n(t.fieldTransforms, e, n.transformResults);\n s.setAll(i), e.convertToFoundDocument(n.version, s).setHasCommittedMutations();\n }(t, e, n) : t instanceof fn ? function(t, e, n) {\n if (!sn(t.precondition, e)) \n // Since the mutation was not rejected, we know that the precondition\n // matched on the backend. We therefore must not have the expected version\n // of the document in our cache and convert to an UnknownDocument with a\n // known updateTime.\n return void e.convertToUnknownDocument(n.version);\n const s = _n(t.fieldTransforms, e, n.transformResults), i = e.data;\n i.setAll(dn(t)), i.setAll(s), e.convertToFoundDocument(n.version, i).setHasCommittedMutations();\n }(t, e, n) : function(t, e, n) {\n // Unlike applyToLocalView, if we're applying a mutation to a remote\n // document the server has accepted the mutation so the precondition must\n // have held.\n e.convertToNoDocument(n.version).setHasCommittedMutations();\n }(0, e, n);\n}\n\n/**\n * Applies this mutation to the given document for the purposes of computing\n * the new local view of a document. If the input document doesn't match the\n * expected state, the document is not modified.\n *\n * @param mutation - The mutation to apply.\n * @param document - The document to mutate. The input document can be an\n * invalid document if the client has no knowledge of the pre-mutation state\n * of the document.\n * @param localWriteTime - A timestamp indicating the local write time of the\n * batch this mutation is a part of.\n */ function cn(t, e, n) {\n t instanceof ln ? function(t, e, n) {\n if (!sn(t.precondition, e)) \n // The mutation failed to apply (e.g. a document ID created with add()\n // caused a name collision).\n return;\n const s = t.value.clone(), i = wn(t.fieldTransforms, n, e);\n s.setAll(i), e.convertToFoundDocument(hn(e), s).setHasLocalMutations();\n }\n /**\n * A mutation that modifies fields of the document at the given key with the\n * given values. The values are applied through a field mask:\n *\n * * When a field is in both the mask and the values, the corresponding field\n * is updated.\n * * When a field is in neither the mask nor the values, the corresponding\n * field is unmodified.\n * * When a field is in the mask but not in the values, the corresponding field\n * is deleted.\n * * When a field is not in the mask but is in the values, the values map is\n * ignored.\n */ (t, e, n) : t instanceof fn ? function(t, e, n) {\n if (!sn(t.precondition, e)) return;\n const s = wn(t.fieldTransforms, n, e), i = e.data;\n i.setAll(dn(t)), i.setAll(s), e.convertToFoundDocument(hn(e), i).setHasLocalMutations();\n }\n /**\n * Returns a FieldPath/Value map with the content of the PatchMutation.\n */ (t, e, n) : function(t, e) {\n sn(t.precondition, e) && \n // We don't call `setHasLocalMutations()` since we want to be backwards\n // compatible with the existing SDK behavior.\n e.convertToNoDocument(at.min());\n }\n /**\n * A mutation that verifies the existence of the document at the given key with\n * the provided precondition.\n *\n * The `verify` operation is only used in Transactions, and this class serves\n * primarily to facilitate serialization into protos.\n */ (t, e);\n}\n\n/**\n * If this mutation is not idempotent, returns the base value to persist with\n * this mutation. If a base value is returned, the mutation is always applied\n * to this base value, even if document has already been updated.\n *\n * The base value is a sparse object that consists of only the document\n * fields for which this mutation contains a non-idempotent transformation\n * (e.g. a numeric increment). The provided value guarantees consistent\n * behavior for non-idempotent transforms and allow us to return the same\n * latency-compensated value even if the backend has already applied the\n * mutation. The base value is null for idempotent mutations, as they can be\n * re-played even if the backend has already applied them.\n *\n * @returns a base value to store along with the mutation, or null for\n * idempotent mutations.\n */ function un(t, e) {\n let n = null;\n for (const s of t.fieldTransforms) {\n const t = e.data.field(s.field), i = Ge(s.transform, t || null);\n null != i && (null == n && (n = zt.empty()), n.set(s.field, i));\n }\n return n || null;\n}\n\nfunction an(t, e) {\n return t.type === e.type && (!!t.key.isEqual(e.key) && (!!t.precondition.isEqual(e.precondition) && (!!function(t, e) {\n return void 0 === t && void 0 === e || !(!t || !e) && ot(t, e, ((t, e) => tn(t, e)));\n }(t.fieldTransforms, e.fieldTransforms) && (0 /* Set */ === t.type ? t.value.isEqual(e.value) : 1 /* Patch */ !== t.type || t.data.isEqual(e.data) && t.fieldMask.isEqual(e.fieldMask)))));\n}\n\n/**\n * Returns the version from the given document for use as the result of a\n * mutation. Mutations are defined to return the version of the base document\n * only if it is an existing document. Deleted and unknown documents have a\n * post-mutation version of SnapshotVersion.min().\n */ function hn(t) {\n return t.isFoundDocument() ? t.version : at.min();\n}\n\n/**\n * A mutation that creates or replaces the document at the given key with the\n * object value contents.\n */ class ln extends rn {\n constructor(t, e, n, s = []) {\n super(), this.key = t, this.value = e, this.precondition = n, this.fieldTransforms = s, \n this.type = 0 /* Set */;\n }\n}\n\nclass fn extends rn {\n constructor(t, e, n, s, i = []) {\n super(), this.key = t, this.data = e, this.fieldMask = n, this.precondition = s, \n this.fieldTransforms = i, this.type = 1 /* Patch */;\n }\n}\n\nfunction dn(t) {\n const e = new Map;\n return t.fieldMask.fields.forEach((n => {\n if (!n.isEmpty()) {\n const s = t.data.field(n);\n e.set(n, s);\n }\n })), e;\n}\n\n/**\n * Creates a list of \"transform results\" (a transform result is a field value\n * representing the result of applying a transform) for use after a mutation\n * containing transforms has been acknowledged by the server.\n *\n * @param fieldTransforms - The field transforms to apply the result to.\n * @param mutableDocument - The current state of the document after applying all\n * previous mutations.\n * @param serverTransformResults - The transform results received by the server.\n * @returns The transform results list.\n */ function _n(t, e, n) {\n const s = new Map;\n U(t.length === n.length);\n for (let i = 0; i < n.length; i++) {\n const r = t[i], o = r.transform, c = e.data.field(r.field);\n s.set(r.field, Ke(o, c, n[i]));\n }\n return s;\n}\n\n/**\n * Creates a list of \"transform results\" (a transform result is a field value\n * representing the result of applying a transform) for use when applying a\n * transform locally.\n *\n * @param fieldTransforms - The field transforms to apply the result to.\n * @param localWriteTime - The local time of the mutation (used to\n * generate ServerTimestampValues).\n * @param mutableDocument - The current state of the document after applying all\n * previous mutations.\n * @returns The transform results list.\n */ function wn(t, e, n) {\n const s = new Map;\n for (const i of t) {\n const t = i.transform, r = n.data.field(i.field);\n s.set(i.field, qe(t, r, e));\n }\n return s;\n}\n\n/** A mutation that deletes the document at the given key. */ class mn extends rn {\n constructor(t, e) {\n super(), this.key = t, this.precondition = e, this.type = 2 /* Delete */ , this.fieldTransforms = [];\n }\n}\n\nclass gn extends rn {\n constructor(t, e) {\n super(), this.key = t, this.precondition = e, this.type = 3 /* Verify */ , this.fieldTransforms = [];\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class yn {\n // TODO(b/33078163): just use simplest form of existence filter for now\n constructor(t) {\n this.count = t;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Error Codes describing the different ways GRPC can fail. These are copied\n * directly from GRPC's sources here:\n *\n * https://github.com/grpc/grpc/blob/bceec94ea4fc5f0085d81235d8e1c06798dc341a/include/grpc%2B%2B/impl/codegen/status_code_enum.h\n *\n * Important! The names of these identifiers matter because the string forms\n * are used for reverse lookups from the webchannel stream. Do NOT change the\n * names of these identifiers or change this into a const enum.\n */ var pn, In;\n\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a non-write operation.\n *\n * See isPermanentWriteError for classifying write errors.\n */\nfunction En(t) {\n switch (t) {\n default:\n return L();\n\n case G.CANCELLED:\n case G.UNKNOWN:\n case G.DEADLINE_EXCEEDED:\n case G.RESOURCE_EXHAUSTED:\n case G.INTERNAL:\n case G.UNAVAILABLE:\n // Unauthenticated means something went wrong with our token and we need\n // to retry with new credentials which will happen automatically.\n case G.UNAUTHENTICATED:\n return !1;\n\n case G.INVALID_ARGUMENT:\n case G.NOT_FOUND:\n case G.ALREADY_EXISTS:\n case G.PERMISSION_DENIED:\n case G.FAILED_PRECONDITION:\n // Aborted might be retried in some scenarios, but that is dependant on\n // the context and should handled individually by the calling code.\n // See https://cloud.google.com/apis/design/errors.\n case G.ABORTED:\n case G.OUT_OF_RANGE:\n case G.UNIMPLEMENTED:\n case G.DATA_LOSS:\n return !0;\n }\n}\n\n/**\n * Determines whether an error code represents a permanent error when received\n * in response to a write operation.\n *\n * Write operations must be handled specially because as of b/119437764, ABORTED\n * errors on the write stream should be retried too (even though ABORTED errors\n * are not generally retryable).\n *\n * Note that during the initial handshake on the write stream an ABORTED error\n * signals that we should discard our stream token (i.e. it is permanent). This\n * means a handshake error should be classified with isPermanentError, above.\n */\n/**\n * Maps an error Code from GRPC status code number, like 0, 1, or 14. These\n * are not the same as HTTP status codes.\n *\n * @returns The Code equivalent to the given GRPC status code. Fails if there\n * is no match.\n */\nfunction Tn(t) {\n if (void 0 === t) \n // This shouldn't normally happen, but in certain error cases (like trying\n // to send invalid proto messages) we may get an error with no GRPC code.\n return $(\"GRPC error has no .code\"), G.UNKNOWN;\n switch (t) {\n case pn.OK:\n return G.OK;\n\n case pn.CANCELLED:\n return G.CANCELLED;\n\n case pn.UNKNOWN:\n return G.UNKNOWN;\n\n case pn.DEADLINE_EXCEEDED:\n return G.DEADLINE_EXCEEDED;\n\n case pn.RESOURCE_EXHAUSTED:\n return G.RESOURCE_EXHAUSTED;\n\n case pn.INTERNAL:\n return G.INTERNAL;\n\n case pn.UNAVAILABLE:\n return G.UNAVAILABLE;\n\n case pn.UNAUTHENTICATED:\n return G.UNAUTHENTICATED;\n\n case pn.INVALID_ARGUMENT:\n return G.INVALID_ARGUMENT;\n\n case pn.NOT_FOUND:\n return G.NOT_FOUND;\n\n case pn.ALREADY_EXISTS:\n return G.ALREADY_EXISTS;\n\n case pn.PERMISSION_DENIED:\n return G.PERMISSION_DENIED;\n\n case pn.FAILED_PRECONDITION:\n return G.FAILED_PRECONDITION;\n\n case pn.ABORTED:\n return G.ABORTED;\n\n case pn.OUT_OF_RANGE:\n return G.OUT_OF_RANGE;\n\n case pn.UNIMPLEMENTED:\n return G.UNIMPLEMENTED;\n\n case pn.DATA_LOSS:\n return G.DATA_LOSS;\n\n default:\n return L();\n }\n}\n\n/**\n * Converts an HTTP response's error status to the equivalent error code.\n *\n * @param status - An HTTP error response status (\"FAILED_PRECONDITION\",\n * \"UNKNOWN\", etc.)\n * @returns The equivalent Code. Non-matching responses are mapped to\n * Code.UNKNOWN.\n */ (In = pn || (pn = {}))[In.OK = 0] = \"OK\", In[In.CANCELLED = 1] = \"CANCELLED\", \nIn[In.UNKNOWN = 2] = \"UNKNOWN\", In[In.INVALID_ARGUMENT = 3] = \"INVALID_ARGUMENT\", \nIn[In.DEADLINE_EXCEEDED = 4] = \"DEADLINE_EXCEEDED\", In[In.NOT_FOUND = 5] = \"NOT_FOUND\", \nIn[In.ALREADY_EXISTS = 6] = \"ALREADY_EXISTS\", In[In.PERMISSION_DENIED = 7] = \"PERMISSION_DENIED\", \nIn[In.UNAUTHENTICATED = 16] = \"UNAUTHENTICATED\", In[In.RESOURCE_EXHAUSTED = 8] = \"RESOURCE_EXHAUSTED\", \nIn[In.FAILED_PRECONDITION = 9] = \"FAILED_PRECONDITION\", In[In.ABORTED = 10] = \"ABORTED\", \nIn[In.OUT_OF_RANGE = 11] = \"OUT_OF_RANGE\", In[In.UNIMPLEMENTED = 12] = \"UNIMPLEMENTED\", \nIn[In.INTERNAL = 13] = \"INTERNAL\", In[In.UNAVAILABLE = 14] = \"UNAVAILABLE\", In[In.DATA_LOSS = 15] = \"DATA_LOSS\";\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// An immutable sorted map implementation, based on a Left-leaning Red-Black\n// tree.\nclass An {\n constructor(t, e) {\n this.comparator = t, this.root = e || Pn.EMPTY;\n }\n // Returns a copy of the map, with the specified key/value added or replaced.\n insert(t, e) {\n return new An(this.comparator, this.root.insert(t, e, this.comparator).copy(null, null, Pn.BLACK, null, null));\n }\n // Returns a copy of the map, with the specified key removed.\n remove(t) {\n return new An(this.comparator, this.root.remove(t, this.comparator).copy(null, null, Pn.BLACK, null, null));\n }\n // Returns the value of the node with the given key, or null.\n get(t) {\n let e = this.root;\n for (;!e.isEmpty(); ) {\n const n = this.comparator(t, e.key);\n if (0 === n) return e.value;\n n < 0 ? e = e.left : n > 0 && (e = e.right);\n }\n return null;\n }\n // Returns the index of the element in this sorted map, or -1 if it doesn't\n // exist.\n indexOf(t) {\n // Number of nodes that were pruned when descending right\n let e = 0, n = this.root;\n for (;!n.isEmpty(); ) {\n const s = this.comparator(t, n.key);\n if (0 === s) return e + n.left.size;\n s < 0 ? n = n.left : (\n // Count all nodes left of the node plus the node itself\n e += n.left.size + 1, n = n.right);\n }\n // Node not found\n return -1;\n }\n isEmpty() {\n return this.root.isEmpty();\n }\n // Returns the total number of nodes in the map.\n get size() {\n return this.root.size;\n }\n // Returns the minimum key in the map.\n minKey() {\n return this.root.minKey();\n }\n // Returns the maximum key in the map.\n maxKey() {\n return this.root.maxKey();\n }\n // Traverses the map in key order and calls the specified action function\n // for each key/value pair. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n inorderTraversal(t) {\n return this.root.inorderTraversal(t);\n }\n forEach(t) {\n this.inorderTraversal(((e, n) => (t(e, n), !1)));\n }\n toString() {\n const t = [];\n return this.inorderTraversal(((e, n) => (t.push(`${e}:${n}`), !1))), `{${t.join(\", \")}}`;\n }\n // Traverses the map in reverse key order and calls the specified action\n // function for each key/value pair. If action returns true, traversal is\n // aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n reverseTraversal(t) {\n return this.root.reverseTraversal(t);\n }\n // Returns an iterator over the SortedMap.\n getIterator() {\n return new Rn(this.root, null, this.comparator, !1);\n }\n getIteratorFrom(t) {\n return new Rn(this.root, t, this.comparator, !1);\n }\n getReverseIterator() {\n return new Rn(this.root, null, this.comparator, !0);\n }\n getReverseIteratorFrom(t) {\n return new Rn(this.root, t, this.comparator, !0);\n }\n}\n\n // end SortedMap\n// An iterator over an LLRBNode.\nclass Rn {\n constructor(t, e, n, s) {\n this.isReverse = s, this.nodeStack = [];\n let i = 1;\n for (;!t.isEmpty(); ) if (i = e ? n(t.key, e) : 1, \n // flip the comparison if we're going in reverse\n s && (i *= -1), i < 0) \n // This node is less than our start key. ignore it\n t = this.isReverse ? t.left : t.right; else {\n if (0 === i) {\n // This node is exactly equal to our start key. Push it on the stack,\n // but stop iterating;\n this.nodeStack.push(t);\n break;\n }\n // This node is greater than our start key, add it to the stack and move\n // to the next one\n this.nodeStack.push(t), t = this.isReverse ? t.right : t.left;\n }\n }\n getNext() {\n let t = this.nodeStack.pop();\n const e = {\n key: t.key,\n value: t.value\n };\n if (this.isReverse) for (t = t.left; !t.isEmpty(); ) this.nodeStack.push(t), t = t.right; else for (t = t.right; !t.isEmpty(); ) this.nodeStack.push(t), \n t = t.left;\n return e;\n }\n hasNext() {\n return this.nodeStack.length > 0;\n }\n peek() {\n if (0 === this.nodeStack.length) return null;\n const t = this.nodeStack[this.nodeStack.length - 1];\n return {\n key: t.key,\n value: t.value\n };\n }\n}\n\n // end SortedMapIterator\n// Represents a node in a Left-leaning Red-Black tree.\nclass Pn {\n constructor(t, e, n, s, i) {\n this.key = t, this.value = e, this.color = null != n ? n : Pn.RED, this.left = null != s ? s : Pn.EMPTY, \n this.right = null != i ? i : Pn.EMPTY, this.size = this.left.size + 1 + this.right.size;\n }\n // Returns a copy of the current node, optionally replacing pieces of it.\n copy(t, e, n, s, i) {\n return new Pn(null != t ? t : this.key, null != e ? e : this.value, null != n ? n : this.color, null != s ? s : this.left, null != i ? i : this.right);\n }\n isEmpty() {\n return !1;\n }\n // Traverses the tree in key order and calls the specified action function\n // for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n inorderTraversal(t) {\n return this.left.inorderTraversal(t) || t(this.key, this.value) || this.right.inorderTraversal(t);\n }\n // Traverses the tree in reverse key order and calls the specified action\n // function for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n reverseTraversal(t) {\n return this.right.reverseTraversal(t) || t(this.key, this.value) || this.left.reverseTraversal(t);\n }\n // Returns the minimum node in the tree.\n min() {\n return this.left.isEmpty() ? this : this.left.min();\n }\n // Returns the maximum key in the tree.\n minKey() {\n return this.min().key;\n }\n // Returns the maximum key in the tree.\n maxKey() {\n return this.right.isEmpty() ? this.key : this.right.maxKey();\n }\n // Returns new tree, with the key/value added.\n insert(t, e, n) {\n let s = this;\n const i = n(t, s.key);\n return s = i < 0 ? s.copy(null, null, null, s.left.insert(t, e, n), null) : 0 === i ? s.copy(null, e, null, null, null) : s.copy(null, null, null, null, s.right.insert(t, e, n)), \n s.fixUp();\n }\n removeMin() {\n if (this.left.isEmpty()) return Pn.EMPTY;\n let t = this;\n return t.left.isRed() || t.left.left.isRed() || (t = t.moveRedLeft()), t = t.copy(null, null, null, t.left.removeMin(), null), \n t.fixUp();\n }\n // Returns new tree, with the specified item removed.\n remove(t, e) {\n let n, s = this;\n if (e(t, s.key) < 0) s.left.isEmpty() || s.left.isRed() || s.left.left.isRed() || (s = s.moveRedLeft()), \n s = s.copy(null, null, null, s.left.remove(t, e), null); else {\n if (s.left.isRed() && (s = s.rotateRight()), s.right.isEmpty() || s.right.isRed() || s.right.left.isRed() || (s = s.moveRedRight()), \n 0 === e(t, s.key)) {\n if (s.right.isEmpty()) return Pn.EMPTY;\n n = s.right.min(), s = s.copy(n.key, n.value, null, null, s.right.removeMin());\n }\n s = s.copy(null, null, null, null, s.right.remove(t, e));\n }\n return s.fixUp();\n }\n isRed() {\n return this.color;\n }\n // Returns new tree after performing any needed rotations.\n fixUp() {\n let t = this;\n return t.right.isRed() && !t.left.isRed() && (t = t.rotateLeft()), t.left.isRed() && t.left.left.isRed() && (t = t.rotateRight()), \n t.left.isRed() && t.right.isRed() && (t = t.colorFlip()), t;\n }\n moveRedLeft() {\n let t = this.colorFlip();\n return t.right.left.isRed() && (t = t.copy(null, null, null, null, t.right.rotateRight()), \n t = t.rotateLeft(), t = t.colorFlip()), t;\n }\n moveRedRight() {\n let t = this.colorFlip();\n return t.left.left.isRed() && (t = t.rotateRight(), t = t.colorFlip()), t;\n }\n rotateLeft() {\n const t = this.copy(null, null, Pn.RED, null, this.right.left);\n return this.right.copy(null, null, this.color, t, null);\n }\n rotateRight() {\n const t = this.copy(null, null, Pn.RED, this.left.right, null);\n return this.left.copy(null, null, this.color, null, t);\n }\n colorFlip() {\n const t = this.left.copy(null, null, !this.left.color, null, null), e = this.right.copy(null, null, !this.right.color, null, null);\n return this.copy(null, null, !this.color, t, e);\n }\n // For testing.\n checkMaxDepth() {\n const t = this.check();\n return Math.pow(2, t) <= this.size + 1;\n }\n // In a balanced RB tree, the black-depth (number of black nodes) from root to\n // leaves is equal on both sides. This function verifies that or asserts.\n check() {\n if (this.isRed() && this.left.isRed()) throw L();\n if (this.right.isRed()) throw L();\n const t = this.left.check();\n if (t !== this.right.check()) throw L();\n return t + (this.isRed() ? 0 : 1);\n }\n}\n\n // end LLRBNode\n// Empty node is shared between all LLRB trees.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nPn.EMPTY = null, Pn.RED = !0, Pn.BLACK = !1;\n\n// end LLRBEmptyNode\nPn.EMPTY = new \n// Represents an empty node (a leaf node in the Red-Black Tree).\nclass {\n constructor() {\n this.size = 0;\n }\n get key() {\n throw L();\n }\n get value() {\n throw L();\n }\n get color() {\n throw L();\n }\n get left() {\n throw L();\n }\n get right() {\n throw L();\n }\n // Returns a copy of the current node.\n copy(t, e, n, s, i) {\n return this;\n }\n // Returns a copy of the tree, with the specified key/value added.\n insert(t, e, n) {\n return new Pn(t, e);\n }\n // Returns a copy of the tree, with the specified key removed.\n remove(t, e) {\n return this;\n }\n isEmpty() {\n return !0;\n }\n inorderTraversal(t) {\n return !1;\n }\n reverseTraversal(t) {\n return !1;\n }\n minKey() {\n return null;\n }\n maxKey() {\n return null;\n }\n isRed() {\n return !1;\n }\n // For testing.\n checkMaxDepth() {\n return !0;\n }\n check() {\n return 0;\n }\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * SortedSet is an immutable (copy-on-write) collection that holds elements\n * in order specified by the provided comparator.\n *\n * NOTE: if provided comparator returns 0 for two elements, we consider them to\n * be equal!\n */\nclass bn {\n constructor(t) {\n this.comparator = t, this.data = new An(this.comparator);\n }\n has(t) {\n return null !== this.data.get(t);\n }\n first() {\n return this.data.minKey();\n }\n last() {\n return this.data.maxKey();\n }\n get size() {\n return this.data.size;\n }\n indexOf(t) {\n return this.data.indexOf(t);\n }\n /** Iterates elements in order defined by \"comparator\" */ forEach(t) {\n this.data.inorderTraversal(((e, n) => (t(e), !1)));\n }\n /** Iterates over `elem`s such that: range[0] <= elem < range[1]. */ forEachInRange(t, e) {\n const n = this.data.getIteratorFrom(t[0]);\n for (;n.hasNext(); ) {\n const s = n.getNext();\n if (this.comparator(s.key, t[1]) >= 0) return;\n e(s.key);\n }\n }\n /**\n * Iterates over `elem`s such that: start <= elem until false is returned.\n */ forEachWhile(t, e) {\n let n;\n for (n = void 0 !== e ? this.data.getIteratorFrom(e) : this.data.getIterator(); n.hasNext(); ) {\n if (!t(n.getNext().key)) return;\n }\n }\n /** Finds the least element greater than or equal to `elem`. */ firstAfterOrEqual(t) {\n const e = this.data.getIteratorFrom(t);\n return e.hasNext() ? e.getNext().key : null;\n }\n getIterator() {\n return new vn(this.data.getIterator());\n }\n getIteratorFrom(t) {\n return new vn(this.data.getIteratorFrom(t));\n }\n /** Inserts or updates an element */ add(t) {\n return this.copy(this.data.remove(t).insert(t, !0));\n }\n /** Deletes an element */ delete(t) {\n return this.has(t) ? this.copy(this.data.remove(t)) : this;\n }\n isEmpty() {\n return this.data.isEmpty();\n }\n unionWith(t) {\n let e = this;\n // Make sure `result` always refers to the larger one of the two sets.\n return e.size < t.size && (e = t, t = this), t.forEach((t => {\n e = e.add(t);\n })), e;\n }\n isEqual(t) {\n if (!(t instanceof bn)) return !1;\n if (this.size !== t.size) return !1;\n const e = this.data.getIterator(), n = t.data.getIterator();\n for (;e.hasNext(); ) {\n const t = e.getNext().key, s = n.getNext().key;\n if (0 !== this.comparator(t, s)) return !1;\n }\n return !0;\n }\n toArray() {\n const t = [];\n return this.forEach((e => {\n t.push(e);\n })), t;\n }\n toString() {\n const t = [];\n return this.forEach((e => t.push(e))), \"SortedSet(\" + t.toString() + \")\";\n }\n copy(t) {\n const e = new bn(this.comparator);\n return e.data = t, e;\n }\n}\n\nclass vn {\n constructor(t) {\n this.iter = t;\n }\n getNext() {\n return this.iter.getNext().key;\n }\n hasNext() {\n return this.iter.hasNext();\n }\n}\n\n/**\n * Compares two sorted sets for equality using their natural ordering. The\n * method computes the intersection and invokes `onAdd` for every element that\n * is in `after` but not `before`. `onRemove` is invoked for every element in\n * `before` but missing from `after`.\n *\n * The method creates a copy of both `before` and `after` and runs in O(n log\n * n), where n is the size of the two lists.\n *\n * @param before - The elements that exist in the original set.\n * @param after - The elements to diff against the original set.\n * @param comparator - The comparator for the elements in before and after.\n * @param onAdd - A function to invoke for every element that is part of `\n * after` but not `before`.\n * @param onRemove - A function to invoke for every element that is part of\n * `before` but not `after`.\n */\n/**\n * Returns the next element from the iterator or `undefined` if none available.\n */\nfunction Vn(t) {\n return t.hasNext() ? t.getNext() : void 0;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const Sn = new An(Nt.comparator);\n\nfunction Dn() {\n return Sn;\n}\n\nconst Cn = new An(Nt.comparator);\n\nfunction Nn() {\n return Cn;\n}\n\nconst xn = new An(Nt.comparator);\n\nconst kn = new bn(Nt.comparator);\n\nfunction On(...t) {\n let e = kn;\n for (const n of t) e = e.add(n);\n return e;\n}\n\nconst Mn = new bn(rt);\n\nfunction $n() {\n return Mn;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An event from the RemoteStore. It is split into targetChanges (changes to the\n * state or the set of documents in our watched targets) and documentUpdates\n * (changes to the actual documents).\n */ class Fn {\n constructor(\n /**\n * The snapshot version this event brings us up to, or MIN if not set.\n */\n t, \n /**\n * A map from target to changes to the target. See TargetChange.\n */\n e, \n /**\n * A set of targets that is known to be inconsistent. Listens for these\n * targets should be re-established without resume tokens.\n */\n n, \n /**\n * A set of which documents have changed or been deleted, along with the\n * doc's new values (if not deleted).\n */\n s, \n /**\n * A set of which document updates are due only to limbo resolution targets.\n */\n i) {\n this.snapshotVersion = t, this.targetChanges = e, this.targetMismatches = n, this.documentUpdates = s, \n this.resolvedLimboDocuments = i;\n }\n /**\n * HACK: Views require RemoteEvents in order to determine whether the view is\n * CURRENT, but secondary tabs don't receive remote events. So this method is\n * used to create a synthesized RemoteEvent that can be used to apply a\n * CURRENT status change to a View, for queries executed in a different tab.\n */\n // PORTING NOTE: Multi-tab only\n static createSynthesizedRemoteEventForCurrentChange(t, e) {\n const n = new Map;\n return n.set(t, Bn.createSynthesizedTargetChangeForCurrentChange(t, e)), new Fn(at.min(), n, $n(), Dn(), On());\n }\n}\n\n/**\n * A TargetChange specifies the set of changes for a specific target as part of\n * a RemoteEvent. These changes track which documents are added, modified or\n * removed, as well as the target's resume token and whether the target is\n * marked CURRENT.\n * The actual changes *to* documents are not part of the TargetChange since\n * documents may be part of multiple targets.\n */ class Bn {\n constructor(\n /**\n * An opaque, server-assigned token that allows watching a query to be resumed\n * after disconnecting without retransmitting all the data that matches the\n * query. The resume token essentially identifies a point in time from which\n * the server should resume sending results.\n */\n t, \n /**\n * The \"current\" (synced) status of this target. Note that \"current\"\n * has special meaning in the RPC protocol that implies that a target is\n * both up-to-date and consistent with the rest of the watch stream.\n */\n e, \n /**\n * The set of documents that were newly assigned to this target as part of\n * this remote event.\n */\n n, \n /**\n * The set of documents that were already assigned to this target but received\n * an update during this remote event.\n */\n s, \n /**\n * The set of documents that were removed from this target as part of this\n * remote event.\n */\n i) {\n this.resumeToken = t, this.current = e, this.addedDocuments = n, this.modifiedDocuments = s, \n this.removedDocuments = i;\n }\n /**\n * This method is used to create a synthesized TargetChanges that can be used to\n * apply a CURRENT status change to a View (for queries executed in a different\n * tab) or for new queries (to raise snapshots with correct CURRENT status).\n */ static createSynthesizedTargetChangeForCurrentChange(t, e) {\n return new Bn(pt.EMPTY_BYTE_STRING, e, On(), On(), On());\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents a changed document and a list of target ids to which this change\n * applies.\n *\n * If document has been deleted NoDocument will be provided.\n */ class Ln {\n constructor(\n /** The new document applies to all of these targets. */\n t, \n /** The new document is removed from all of these targets. */\n e, \n /** The key of the document for this change. */\n n, \n /**\n * The new document or NoDocument if it was deleted. Is null if the\n * document went out of view without the server sending a new document.\n */\n s) {\n this.M = t, this.removedTargetIds = e, this.key = n, this.$ = s;\n }\n}\n\nclass Un {\n constructor(t, e) {\n this.targetId = t, this.F = e;\n }\n}\n\nclass qn {\n constructor(\n /** What kind of change occurred to the watch target. */\n t, \n /** The target IDs that were added/removed/set. */\n e, \n /**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */\n n = pt.EMPTY_BYTE_STRING\n /** An RPC error indicating why the watch failed. */ , s = null) {\n this.state = t, this.targetIds = e, this.resumeToken = n, this.cause = s;\n }\n}\n\n/** Tracks the internal state of a Watch target. */ class Kn {\n constructor() {\n /**\n * The number of pending responses (adds or removes) that we are waiting on.\n * We only consider targets active that have no pending responses.\n */\n this.B = 0, \n /**\n * Keeps track of the document changes since the last raised snapshot.\n *\n * These changes are continuously updated as we receive document updates and\n * always reflect the current set of changes against the last issued snapshot.\n */\n this.L = Qn(), \n /** See public getters for explanations of these fields. */\n this.U = pt.EMPTY_BYTE_STRING, this.q = !1, \n /**\n * Whether this target state should be included in the next snapshot. We\n * initialize to true so that newly-added targets are included in the next\n * RemoteEvent.\n */\n this.K = !0;\n }\n /**\n * Whether this target has been marked 'current'.\n *\n * 'Current' has special meaning in the RPC protocol: It implies that the\n * Watch backend has sent us all changes up to the point at which the target\n * was added and that the target is consistent with the rest of the watch\n * stream.\n */ get current() {\n return this.q;\n }\n /** The last resume token sent to us for this target. */ get resumeToken() {\n return this.U;\n }\n /** Whether this target has pending target adds or target removes. */ get G() {\n return 0 !== this.B;\n }\n /** Whether we have modified any state that should trigger a snapshot. */ get j() {\n return this.K;\n }\n /**\n * Applies the resume token to the TargetChange, but only when it has a new\n * value. Empty resumeTokens are discarded.\n */ W(t) {\n t.approximateByteSize() > 0 && (this.K = !0, this.U = t);\n }\n /**\n * Creates a target change from the current set of changes.\n *\n * To reset the document changes after raising this snapshot, call\n * `clearPendingChanges()`.\n */ H() {\n let t = On(), e = On(), n = On();\n return this.L.forEach(((s, i) => {\n switch (i) {\n case 0 /* Added */ :\n t = t.add(s);\n break;\n\n case 2 /* Modified */ :\n e = e.add(s);\n break;\n\n case 1 /* Removed */ :\n n = n.add(s);\n break;\n\n default:\n L();\n }\n })), new Bn(this.U, this.q, t, e, n);\n }\n /**\n * Resets the document changes and sets `hasPendingChanges` to false.\n */ J() {\n this.K = !1, this.L = Qn();\n }\n Y(t, e) {\n this.K = !0, this.L = this.L.insert(t, e);\n }\n X(t) {\n this.K = !0, this.L = this.L.remove(t);\n }\n Z() {\n this.B += 1;\n }\n tt() {\n this.B -= 1;\n }\n et() {\n this.K = !0, this.q = !0;\n }\n}\n\n/**\n * A helper class to accumulate watch changes into a RemoteEvent.\n */\nclass Gn {\n constructor(t) {\n this.nt = t, \n /** The internal state of all tracked targets. */\n this.st = new Map, \n /** Keeps track of the documents to update since the last raised snapshot. */\n this.it = Dn(), \n /** A mapping of document keys to their set of target IDs. */\n this.rt = jn(), \n /**\n * A list of targets with existence filter mismatches. These targets are\n * known to be inconsistent and their listens needs to be re-established by\n * RemoteStore.\n */\n this.ot = new bn(rt);\n }\n /**\n * Processes and adds the DocumentWatchChange to the current set of changes.\n */ ct(t) {\n for (const e of t.M) t.$ && t.$.isFoundDocument() ? this.ut(e, t.$) : this.at(e, t.key, t.$);\n for (const e of t.removedTargetIds) this.at(e, t.key, t.$);\n }\n /** Processes and adds the WatchTargetChange to the current set of changes. */ ht(t) {\n this.forEachTarget(t, (e => {\n const n = this.lt(e);\n switch (t.state) {\n case 0 /* NoChange */ :\n this.ft(e) && n.W(t.resumeToken);\n break;\n\n case 1 /* Added */ :\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n n.tt(), n.G || \n // We have a freshly added target, so we need to reset any state\n // that we had previously. This can happen e.g. when remove and add\n // back a target for existence filter mismatches.\n n.J(), n.W(t.resumeToken);\n break;\n\n case 2 /* Removed */ :\n // We need to keep track of removed targets to we can post-filter and\n // remove any target changes.\n // We need to decrement the number of pending acks needed from watch\n // for this targetId.\n n.tt(), n.G || this.removeTarget(e);\n break;\n\n case 3 /* Current */ :\n this.ft(e) && (n.et(), n.W(t.resumeToken));\n break;\n\n case 4 /* Reset */ :\n this.ft(e) && (\n // Reset the target and synthesizes removes for all existing\n // documents. The backend will re-add any documents that still\n // match the target before it sends the next global snapshot.\n this.dt(e), n.W(t.resumeToken));\n break;\n\n default:\n L();\n }\n }));\n }\n /**\n * Iterates over all targetIds that the watch change applies to: either the\n * targetIds explicitly listed in the change or the targetIds of all currently\n * active targets.\n */ forEachTarget(t, e) {\n t.targetIds.length > 0 ? t.targetIds.forEach(e) : this.st.forEach(((t, n) => {\n this.ft(n) && e(n);\n }));\n }\n /**\n * Handles existence filters and synthesizes deletes for filter mismatches.\n * Targets that are invalidated by filter mismatches are added to\n * `pendingTargetResets`.\n */ _t(t) {\n const e = t.targetId, n = t.F.count, s = this.wt(e);\n if (s) {\n const t = s.target;\n if (oe(t)) if (0 === n) {\n // The existence filter told us the document does not exist. We deduce\n // that this document does not exist and apply a deleted document to\n // our updates. Without applying this deleted document there might be\n // another query that will raise this document as part of a snapshot\n // until it is resolved, essentially exposing inconsistency between\n // queries.\n const n = new Nt(t.path);\n this.at(e, n, Jt.newNoDocument(n, at.min()));\n } else U(1 === n); else {\n this.gt(e) !== n && (\n // Existence filter mismatch: We reset the mapping and raise a new\n // snapshot with `isFromCache:true`.\n this.dt(e), this.ot = this.ot.add(e));\n }\n }\n }\n /**\n * Converts the currently accumulated state into a remote event at the\n * provided snapshot version. Resets the accumulated changes before returning.\n */ yt(t) {\n const e = new Map;\n this.st.forEach(((n, s) => {\n const i = this.wt(s);\n if (i) {\n if (n.current && oe(i.target)) {\n // Document queries for document that don't exist can produce an empty\n // result set. To update our local cache, we synthesize a document\n // delete if we have not previously received the document. This\n // resolves the limbo state of the document, removing it from\n // limboDocumentRefs.\n // TODO(dimond): Ideally we would have an explicit lookup target\n // instead resulting in an explicit delete message and we could\n // remove this special logic.\n const e = new Nt(i.target.path);\n null !== this.it.get(e) || this.It(s, e) || this.at(s, e, Jt.newNoDocument(e, t));\n }\n n.j && (e.set(s, n.H()), n.J());\n }\n }));\n let n = On();\n // We extract the set of limbo-only document updates as the GC logic\n // special-cases documents that do not appear in the target cache.\n \n // TODO(gsoltis): Expand on this comment once GC is available in the JS\n // client.\n this.rt.forEach(((t, e) => {\n let s = !0;\n e.forEachWhile((t => {\n const e = this.wt(t);\n return !e || 2 /* LimboResolution */ === e.purpose || (s = !1, !1);\n })), s && (n = n.add(t));\n })), this.it.forEach(((e, n) => n.setReadTime(t)));\n const s = new Fn(t, e, this.ot, this.it, n);\n return this.it = Dn(), this.rt = jn(), this.ot = new bn(rt), s;\n }\n /**\n * Adds the provided document to the internal list of document updates and\n * its document key to the given target's mapping.\n */\n // Visible for testing.\n ut(t, e) {\n if (!this.ft(t)) return;\n const n = this.It(t, e.key) ? 2 /* Modified */ : 0 /* Added */;\n this.lt(t).Y(e.key, n), this.it = this.it.insert(e.key, e), this.rt = this.rt.insert(e.key, this.Et(e.key).add(t));\n }\n /**\n * Removes the provided document from the target mapping. If the\n * document no longer matches the target, but the document's state is still\n * known (e.g. we know that the document was deleted or we received the change\n * that caused the filter mismatch), the new document can be provided\n * to update the remote document cache.\n */\n // Visible for testing.\n at(t, e, n) {\n if (!this.ft(t)) return;\n const s = this.lt(t);\n this.It(t, e) ? s.Y(e, 1 /* Removed */) : \n // The document may have entered and left the target before we raised a\n // snapshot, so we can just ignore the change.\n s.X(e), this.rt = this.rt.insert(e, this.Et(e).delete(t)), n && (this.it = this.it.insert(e, n));\n }\n removeTarget(t) {\n this.st.delete(t);\n }\n /**\n * Returns the current count of documents in the target. This includes both\n * the number of documents that the LocalStore considers to be part of the\n * target as well as any accumulated changes.\n */ gt(t) {\n const e = this.lt(t).H();\n return this.nt.getRemoteKeysForTarget(t).size + e.addedDocuments.size - e.removedDocuments.size;\n }\n /**\n * Increment the number of acks needed from watch before we can consider the\n * server to be 'in-sync' with the client's active targets.\n */ Z(t) {\n this.lt(t).Z();\n }\n lt(t) {\n let e = this.st.get(t);\n return e || (e = new Kn, this.st.set(t, e)), e;\n }\n Et(t) {\n let e = this.rt.get(t);\n return e || (e = new bn(rt), this.rt = this.rt.insert(t, e)), e;\n }\n /**\n * Verifies that the user is still interested in this target (by calling\n * `getTargetDataForTarget()`) and that we are not waiting for pending ADDs\n * from watch.\n */ ft(t) {\n const e = null !== this.wt(t);\n return e || M(\"WatchChangeAggregator\", \"Detected inactive target\", t), e;\n }\n /**\n * Returns the TargetData for an active target (i.e. a target that the user\n * is still interested in that has no outstanding target change requests).\n */ wt(t) {\n const e = this.st.get(t);\n return e && e.G ? null : this.nt.Tt(t);\n }\n /**\n * Resets the state of a Watch target to its initial state (e.g. sets\n * 'current' to false, clears the resume token and removes its target mapping\n * from all documents).\n */ dt(t) {\n this.st.set(t, new Kn);\n this.nt.getRemoteKeysForTarget(t).forEach((e => {\n this.at(t, e, /*updatedDocument=*/ null);\n }));\n }\n /**\n * Returns whether the LocalStore considers the document to be part of the\n * specified target.\n */ It(t, e) {\n return this.nt.getRemoteKeysForTarget(t).has(e);\n }\n}\n\nfunction jn() {\n return new An(Nt.comparator);\n}\n\nfunction Qn() {\n return new An(Nt.comparator);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const Wn = (() => {\n const t = {\n asc: \"ASCENDING\",\n desc: \"DESCENDING\"\n };\n return t;\n})(), zn = (() => {\n const t = {\n \"<\": \"LESS_THAN\",\n \"<=\": \"LESS_THAN_OR_EQUAL\",\n \">\": \"GREATER_THAN\",\n \">=\": \"GREATER_THAN_OR_EQUAL\",\n \"==\": \"EQUAL\",\n \"!=\": \"NOT_EQUAL\",\n \"array-contains\": \"ARRAY_CONTAINS\",\n in: \"IN\",\n \"not-in\": \"NOT_IN\",\n \"array-contains-any\": \"ARRAY_CONTAINS_ANY\"\n };\n return t;\n})();\n\n/**\n * This class generates JsonObject values for the Datastore API suitable for\n * sending to either GRPC stub methods or via the JSON/HTTP REST API.\n *\n * The serializer supports both Protobuf.js and Proto3 JSON formats. By\n * setting `useProto3Json` to true, the serializer will use the Proto3 JSON\n * format.\n *\n * For a description of the Proto3 JSON format check\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n *\n * TODO(klimt): We can remove the databaseId argument if we keep the full\n * resource name in documents.\n */\nclass Hn {\n constructor(t, e) {\n this.databaseId = t, this.N = e;\n }\n}\n\n/**\n * Returns a value for a Date that's appropriate to put into a proto.\n */\nfunction Jn(t, e) {\n if (t.N) {\n return `${new Date(1e3 * e.seconds).toISOString().replace(/\\.\\d*/, \"\").replace(\"Z\", \"\")}.${(\"000000000\" + e.nanoseconds).slice(-9)}Z`;\n }\n return {\n seconds: \"\" + e.seconds,\n nanos: e.nanoseconds\n };\n}\n\n/**\n * Returns a value for bytes that's appropriate to put in a proto.\n *\n * Visible for testing.\n */\nfunction Yn(t, e) {\n return t.N ? e.toBase64() : e.toUint8Array();\n}\n\n/**\n * Returns a ByteString based on the proto string value.\n */ function Xn(t, e) {\n return Jn(t, e.toTimestamp());\n}\n\nfunction Zn(t) {\n return U(!!t), at.fromTimestamp(function(t) {\n const e = Et(t);\n return new ut(e.seconds, e.nanos);\n }(t));\n}\n\nfunction ts(t, e) {\n return function(t) {\n return new _t([ \"projects\", t.projectId, \"databases\", t.database ]);\n }(t).child(\"documents\").child(e).canonicalString();\n}\n\nfunction es(t) {\n const e = _t.fromString(t);\n return U(vs(e)), e;\n}\n\nfunction ns(t, e) {\n return ts(t.databaseId, e.path);\n}\n\nfunction ss(t, e) {\n const n = es(e);\n if (n.get(1) !== t.databaseId.projectId) throw new j(G.INVALID_ARGUMENT, \"Tried to deserialize key from different project: \" + n.get(1) + \" vs \" + t.databaseId.projectId);\n if (n.get(3) !== t.databaseId.database) throw new j(G.INVALID_ARGUMENT, \"Tried to deserialize key from different database: \" + n.get(3) + \" vs \" + t.databaseId.database);\n return new Nt(cs(n));\n}\n\nfunction is(t, e) {\n return ts(t.databaseId, e);\n}\n\nfunction rs(t) {\n const e = es(t);\n // In v1beta1 queries for collections at the root did not have a trailing\n // \"/documents\". In v1 all resource paths contain \"/documents\". Preserve the\n // ability to read the v1beta1 form for compatibility with queries persisted\n // in the local target cache.\n return 4 === e.length ? _t.emptyPath() : cs(e);\n}\n\nfunction os(t) {\n return new _t([ \"projects\", t.databaseId.projectId, \"databases\", t.databaseId.database ]).canonicalString();\n}\n\nfunction cs(t) {\n return U(t.length > 4 && \"documents\" === t.get(4)), t.popFirst(5);\n}\n\n/** Creates a Document proto from key and fields (but no create/update time) */ function us(t, e, n) {\n return {\n name: ns(t, e),\n fields: n.value.mapValue.fields\n };\n}\n\nfunction as(t, e, n) {\n const s = ss(t, e.name), i = Zn(e.updateTime), r = new zt({\n mapValue: {\n fields: e.fields\n }\n }), o = Jt.newFoundDocument(s, i, r);\n return n && o.setHasCommittedMutations(), n ? o.setHasCommittedMutations() : o;\n}\n\nfunction hs(t, e) {\n return \"found\" in e ? function(t, e) {\n U(!!e.found), e.found.name, e.found.updateTime;\n const n = ss(t, e.found.name), s = Zn(e.found.updateTime), i = new zt({\n mapValue: {\n fields: e.found.fields\n }\n });\n return Jt.newFoundDocument(n, s, i);\n }(t, e) : \"missing\" in e ? function(t, e) {\n U(!!e.missing), U(!!e.readTime);\n const n = ss(t, e.missing), s = Zn(e.readTime);\n return Jt.newNoDocument(n, s);\n }(t, e) : L();\n}\n\nfunction ls(t, e) {\n let n;\n if (\"targetChange\" in e) {\n e.targetChange;\n // proto3 default value is unset in JSON (undefined), so use 'NO_CHANGE'\n // if unset\n const s = function(t) {\n return \"NO_CHANGE\" === t ? 0 /* NoChange */ : \"ADD\" === t ? 1 /* Added */ : \"REMOVE\" === t ? 2 /* Removed */ : \"CURRENT\" === t ? 3 /* Current */ : \"RESET\" === t ? 4 /* Reset */ : L();\n }(e.targetChange.targetChangeType || \"NO_CHANGE\"), i = e.targetChange.targetIds || [], r = function(t, e) {\n return t.N ? (U(void 0 === e || \"string\" == typeof e), pt.fromBase64String(e || \"\")) : (U(void 0 === e || e instanceof Uint8Array), \n pt.fromUint8Array(e || new Uint8Array));\n }(t, e.targetChange.resumeToken), o = e.targetChange.cause, c = o && function(t) {\n const e = void 0 === t.code ? G.UNKNOWN : Tn(t.code);\n return new j(e, t.message || \"\");\n }\n /**\n * Returns a value for a number (or null) that's appropriate to put into\n * a google.protobuf.Int32Value proto.\n * DO NOT USE THIS FOR ANYTHING ELSE.\n * This method cheats. It's typed as returning \"number\" because that's what\n * our generated proto interfaces say Int32Value must be. But GRPC actually\n * expects a { value: <number> } struct.\n */ (o);\n n = new qn(s, i, r, c || null);\n } else if (\"documentChange\" in e) {\n e.documentChange;\n const s = e.documentChange;\n s.document, s.document.name, s.document.updateTime;\n const i = ss(t, s.document.name), r = Zn(s.document.updateTime), o = new zt({\n mapValue: {\n fields: s.document.fields\n }\n }), c = Jt.newFoundDocument(i, r, o), u = s.targetIds || [], a = s.removedTargetIds || [];\n n = new Ln(u, a, c.key, c);\n } else if (\"documentDelete\" in e) {\n e.documentDelete;\n const s = e.documentDelete;\n s.document;\n const i = ss(t, s.document), r = s.readTime ? Zn(s.readTime) : at.min(), o = Jt.newNoDocument(i, r), c = s.removedTargetIds || [];\n n = new Ln([], c, o.key, o);\n } else if (\"documentRemove\" in e) {\n e.documentRemove;\n const s = e.documentRemove;\n s.document;\n const i = ss(t, s.document), r = s.removedTargetIds || [];\n n = new Ln([], r, i, null);\n } else {\n if (!(\"filter\" in e)) return L();\n {\n e.filter;\n const t = e.filter;\n t.targetId;\n const s = t.count || 0, i = new yn(s), r = t.targetId;\n n = new Un(r, i);\n }\n }\n return n;\n}\n\nfunction fs(t, e) {\n let n;\n if (e instanceof ln) n = {\n update: us(t, e.key, e.value)\n }; else if (e instanceof mn) n = {\n delete: ns(t, e.key)\n }; else if (e instanceof fn) n = {\n update: us(t, e.key, e.data),\n updateMask: bs(e.fieldMask)\n }; else {\n if (!(e instanceof gn)) return L();\n n = {\n verify: ns(t, e.key)\n };\n }\n return e.fieldTransforms.length > 0 && (n.updateTransforms = e.fieldTransforms.map((t => function(t, e) {\n const n = e.transform;\n if (n instanceof je) return {\n fieldPath: e.field.canonicalString(),\n setToServerValue: \"REQUEST_TIME\"\n };\n if (n instanceof Qe) return {\n fieldPath: e.field.canonicalString(),\n appendMissingElements: {\n values: n.elements\n }\n };\n if (n instanceof ze) return {\n fieldPath: e.field.canonicalString(),\n removeAllFromArray: {\n values: n.elements\n }\n };\n if (n instanceof Je) return {\n fieldPath: e.field.canonicalString(),\n increment: n.k\n };\n throw L();\n }(0, t)))), e.precondition.isNone || (n.currentDocument = function(t, e) {\n return void 0 !== e.updateTime ? {\n updateTime: Xn(t, e.updateTime)\n } : void 0 !== e.exists ? {\n exists: e.exists\n } : L();\n }(t, e.precondition)), n;\n}\n\nfunction ds(t, e) {\n const n = e.currentDocument ? function(t) {\n return void 0 !== t.updateTime ? nn.updateTime(Zn(t.updateTime)) : void 0 !== t.exists ? nn.exists(t.exists) : nn.none();\n }(e.currentDocument) : nn.none(), s = e.updateTransforms ? e.updateTransforms.map((e => function(t, e) {\n let n = null;\n if (\"setToServerValue\" in e) U(\"REQUEST_TIME\" === e.setToServerValue), n = new je; else if (\"appendMissingElements\" in e) {\n const t = e.appendMissingElements.values || [];\n n = new Qe(t);\n } else if (\"removeAllFromArray\" in e) {\n const t = e.removeAllFromArray.values || [];\n n = new ze(t);\n } else \"increment\" in e ? n = new Je(t, e.increment) : L();\n const s = mt.fromServerFormat(e.fieldPath);\n return new Ze(s, n);\n }(t, e))) : [];\n if (e.update) {\n e.update.name;\n const i = ss(t, e.update.name), r = new zt({\n mapValue: {\n fields: e.update.fields\n }\n });\n if (e.updateMask) {\n const t = function(t) {\n const e = t.fieldPaths || [];\n return new gt(e.map((t => mt.fromServerFormat(t))));\n }(e.updateMask);\n return new fn(i, r, t, n, s);\n }\n return new ln(i, r, n, s);\n }\n if (e.delete) {\n const s = ss(t, e.delete);\n return new mn(s, n);\n }\n if (e.verify) {\n const s = ss(t, e.verify);\n return new gn(s, n);\n }\n return L();\n}\n\nfunction _s(t, e) {\n return t && t.length > 0 ? (U(void 0 !== e), t.map((t => function(t, e) {\n // NOTE: Deletes don't have an updateTime.\n let n = t.updateTime ? Zn(t.updateTime) : Zn(e);\n return n.isEqual(at.min()) && (\n // The Firestore Emulator currently returns an update time of 0 for\n // deletes of non-existing documents (rather than null). This breaks the\n // test \"get deleted doc while offline with source=cache\" as NoDocuments\n // with version 0 are filtered by IndexedDb's RemoteDocumentCache.\n // TODO(#2149): Remove this when Emulator is fixed\n n = Zn(e)), new en(n, t.transformResults || []);\n }(t, e)))) : [];\n}\n\nfunction ws(t, e) {\n return {\n documents: [ is(t, e.path) ]\n };\n}\n\nfunction ms(t, e) {\n // Dissect the path into parent, collectionId, and optional key filter.\n const n = {\n structuredQuery: {}\n }, s = e.path;\n null !== e.collectionGroup ? (n.parent = is(t, s), n.structuredQuery.from = [ {\n collectionId: e.collectionGroup,\n allDescendants: !0\n } ]) : (n.parent = is(t, s.popLast()), n.structuredQuery.from = [ {\n collectionId: s.lastSegment()\n } ]);\n const i = function(t) {\n if (0 === t.length) return;\n const e = t.map((t => \n // visible for testing\n function(t) {\n if (\"==\" /* EQUAL */ === t.op) {\n if (jt(t.value)) return {\n unaryFilter: {\n field: Ts(t.field),\n op: \"IS_NAN\"\n }\n };\n if (Gt(t.value)) return {\n unaryFilter: {\n field: Ts(t.field),\n op: \"IS_NULL\"\n }\n };\n } else if (\"!=\" /* NOT_EQUAL */ === t.op) {\n if (jt(t.value)) return {\n unaryFilter: {\n field: Ts(t.field),\n op: \"IS_NOT_NAN\"\n }\n };\n if (Gt(t.value)) return {\n unaryFilter: {\n field: Ts(t.field),\n op: \"IS_NOT_NULL\"\n }\n };\n }\n return {\n fieldFilter: {\n field: Ts(t.field),\n op: Es(t.op),\n value: t.value\n }\n };\n }(t)));\n if (1 === e.length) return e[0];\n return {\n compositeFilter: {\n op: \"AND\",\n filters: e\n }\n };\n }(e.filters);\n i && (n.structuredQuery.where = i);\n const r = function(t) {\n if (0 === t.length) return;\n return t.map((t => \n // visible for testing\n function(t) {\n return {\n field: Ts(t.field),\n direction: Is(t.dir)\n };\n }(t)));\n }(e.orderBy);\n r && (n.structuredQuery.orderBy = r);\n const o = function(t, e) {\n return t.N || St(e) ? e : {\n value: e\n };\n }\n /**\n * Returns a number (or null) from a google.protobuf.Int32Value proto.\n */ (t, e.limit);\n var c;\n return null !== o && (n.structuredQuery.limit = o), e.startAt && (n.structuredQuery.startAt = {\n before: (c = e.startAt).inclusive,\n values: c.position\n }), e.endAt && (n.structuredQuery.endAt = function(t) {\n return {\n before: !t.inclusive,\n values: t.position\n };\n }(e.endAt)), n;\n}\n\nfunction gs(t) {\n let e = rs(t.parent);\n const n = t.structuredQuery, s = n.from ? n.from.length : 0;\n let i = null;\n if (s > 0) {\n U(1 === s);\n const t = n.from[0];\n t.allDescendants ? i = t.collectionId : e = e.child(t.collectionId);\n }\n let r = [];\n n.where && (r = ps(n.where));\n let o = [];\n n.orderBy && (o = n.orderBy.map((t => function(t) {\n return new ge(As(t.field), \n // visible for testing\n function(t) {\n switch (t) {\n case \"ASCENDING\":\n return \"asc\" /* ASCENDING */;\n\n case \"DESCENDING\":\n return \"desc\" /* DESCENDING */;\n\n default:\n return;\n }\n }\n // visible for testing\n (t.direction));\n }(t))));\n let c = null;\n n.limit && (c = function(t) {\n let e;\n return e = \"object\" == typeof t ? t.value : t, St(e) ? null : e;\n }(n.limit));\n let u = null;\n n.startAt && (u = function(t) {\n const e = !!t.before, n = t.values || [];\n return new me(n, e);\n }(n.startAt));\n let a = null;\n return n.endAt && (a = function(t) {\n const e = !t.before, n = t.values || [];\n return new me(n, e);\n }\n // visible for testing\n (n.endAt)), Te(e, i, o, r, c, \"F\" /* First */ , u, a);\n}\n\nfunction ys(t, e) {\n const n = function(t, e) {\n switch (e) {\n case 0 /* Listen */ :\n return null;\n\n case 1 /* ExistenceFilterMismatch */ :\n return \"existence-filter-mismatch\";\n\n case 2 /* LimboResolution */ :\n return \"limbo-document\";\n\n default:\n return L();\n }\n }(0, e.purpose);\n return null == n ? null : {\n \"goog-listen-tags\": n\n };\n}\n\nfunction ps(t) {\n return t ? void 0 !== t.unaryFilter ? [ Ps(t) ] : void 0 !== t.fieldFilter ? [ Rs(t) ] : void 0 !== t.compositeFilter ? t.compositeFilter.filters.map((t => ps(t))).reduce(((t, e) => t.concat(e))) : L() : [];\n}\n\nfunction Is(t) {\n return Wn[t];\n}\n\nfunction Es(t) {\n return zn[t];\n}\n\nfunction Ts(t) {\n return {\n fieldPath: t.canonicalString()\n };\n}\n\nfunction As(t) {\n return mt.fromServerFormat(t.fieldPath);\n}\n\nfunction Rs(t) {\n return ce.create(As(t.fieldFilter.field), function(t) {\n switch (t) {\n case \"EQUAL\":\n return \"==\" /* EQUAL */;\n\n case \"NOT_EQUAL\":\n return \"!=\" /* NOT_EQUAL */;\n\n case \"GREATER_THAN\":\n return \">\" /* GREATER_THAN */;\n\n case \"GREATER_THAN_OR_EQUAL\":\n return \">=\" /* GREATER_THAN_OR_EQUAL */;\n\n case \"LESS_THAN\":\n return \"<\" /* LESS_THAN */;\n\n case \"LESS_THAN_OR_EQUAL\":\n return \"<=\" /* LESS_THAN_OR_EQUAL */;\n\n case \"ARRAY_CONTAINS\":\n return \"array-contains\" /* ARRAY_CONTAINS */;\n\n case \"IN\":\n return \"in\" /* IN */;\n\n case \"NOT_IN\":\n return \"not-in\" /* NOT_IN */;\n\n case \"ARRAY_CONTAINS_ANY\":\n return \"array-contains-any\" /* ARRAY_CONTAINS_ANY */;\n\n default:\n return L();\n }\n }(t.fieldFilter.op), t.fieldFilter.value);\n}\n\nfunction Ps(t) {\n switch (t.unaryFilter.op) {\n case \"IS_NAN\":\n const e = As(t.unaryFilter.field);\n return ce.create(e, \"==\" /* EQUAL */ , {\n doubleValue: NaN\n });\n\n case \"IS_NULL\":\n const n = As(t.unaryFilter.field);\n return ce.create(n, \"==\" /* EQUAL */ , {\n nullValue: \"NULL_VALUE\"\n });\n\n case \"IS_NOT_NAN\":\n const s = As(t.unaryFilter.field);\n return ce.create(s, \"!=\" /* NOT_EQUAL */ , {\n doubleValue: NaN\n });\n\n case \"IS_NOT_NULL\":\n const i = As(t.unaryFilter.field);\n return ce.create(i, \"!=\" /* NOT_EQUAL */ , {\n nullValue: \"NULL_VALUE\"\n });\n\n default:\n return L();\n }\n}\n\nfunction bs(t) {\n const e = [];\n return t.fields.forEach((t => e.push(t.canonicalString()))), {\n fieldPaths: e\n };\n}\n\nfunction vs(t) {\n // Resource names have at least 4 components (project ID, database ID)\n return t.length >= 4 && \"projects\" === t.get(0) && \"databases\" === t.get(2);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Encodes a resource path into a IndexedDb-compatible string form.\n */\nfunction Vs(t) {\n let e = \"\";\n for (let n = 0; n < t.length; n++) e.length > 0 && (e = Ds(e)), e = Ss(t.get(n), e);\n return Ds(e);\n}\n\n/** Encodes a single segment of a resource path into the given result */ function Ss(t, e) {\n let n = e;\n const s = t.length;\n for (let e = 0; e < s; e++) {\n const s = t.charAt(e);\n switch (s) {\n case \"\\0\":\n n += \"\u0001\u0010\";\n break;\n\n case \"\u0001\":\n n += \"\u0001\u0011\";\n break;\n\n default:\n n += s;\n }\n }\n return n;\n}\n\n/** Encodes a path separator into the given result */ function Ds(t) {\n return t + \"\u0001\u0001\";\n}\n\n/**\n * Decodes the given IndexedDb-compatible string form of a resource path into\n * a ResourcePath instance. Note that this method is not suitable for use with\n * decoding resource names from the server; those are One Platform format\n * strings.\n */ function Cs(t) {\n // Event the empty path must encode as a path of at least length 2. A path\n // with exactly 2 must be the empty path.\n const e = t.length;\n if (U(e >= 2), 2 === e) return U(\"\u0001\" === t.charAt(0) && \"\u0001\" === t.charAt(1)), _t.emptyPath();\n // Escape characters cannot exist past the second-to-last position in the\n // source value.\n const n = e - 2, s = [];\n let i = \"\";\n for (let r = 0; r < e; ) {\n // The last two characters of a valid encoded path must be a separator, so\n // there must be an end to this segment.\n const e = t.indexOf(\"\u0001\", r);\n (e < 0 || e > n) && L();\n switch (t.charAt(e + 1)) {\n case \"\u0001\":\n const n = t.substring(r, e);\n let o;\n 0 === i.length ? \n // Avoid copying for the common case of a segment that excludes \\0\n // and \\001\n o = n : (i += n, o = i, i = \"\"), s.push(o);\n break;\n\n case \"\u0010\":\n i += t.substring(r, e), i += \"\\0\";\n break;\n\n case \"\u0011\":\n // The escape character can be used in the output to encode itself.\n i += t.substring(r, e + 1);\n break;\n\n default:\n L();\n }\n r = e + 2;\n }\n return new _t(s);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// TODO(indexing): Remove this constant\n/**\n * Wrapper class to store timestamps (seconds and nanos) in IndexedDb objects.\n */\nclass Ns {\n constructor(t, e) {\n this.seconds = t, this.nanoseconds = e;\n }\n}\n\n/**\n * A singleton object to be stored in the 'owner' store in IndexedDb.\n *\n * A given database can have a single primary tab assigned at a given time. That\n * tab must validate that it is still holding the primary lease before every\n * operation that requires locked access. The primary tab should regularly\n * write an updated timestamp to this lease to prevent other tabs from\n * \"stealing\" the primary lease\n */ class xs {\n constructor(t, \n /** Whether to allow shared access from multiple tabs. */\n e, n) {\n this.ownerId = t, this.allowTabSynchronization = e, this.leaseTimestampMs = n;\n }\n}\n\n/**\n * Name of the IndexedDb object store.\n *\n * Note that the name 'owner' is chosen to ensure backwards compatibility with\n * older clients that only supported single locked access to the persistence\n * layer.\n */ xs.store = \"owner\", \n/**\n * The key string used for the single object that exists in the\n * DbPrimaryClient store.\n */\nxs.key = \"owner\";\n\n/**\n * An object to be stored in the 'mutationQueues' store in IndexedDb.\n *\n * Each user gets a single queue of MutationBatches to apply to the server.\n * DbMutationQueue tracks the metadata about the queue.\n */\nclass ks {\n constructor(\n /**\n * The normalized user ID to which this queue belongs.\n */\n t, \n /**\n * An identifier for the highest numbered batch that has been acknowledged\n * by the server. All MutationBatches in this queue with batchIds less\n * than or equal to this value are considered to have been acknowledged by\n * the server.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\n e, \n /**\n * A stream token that was previously sent by the server.\n *\n * See StreamingWriteRequest in datastore.proto for more details about\n * usage.\n *\n * After sending this token, earlier tokens may not be used anymore so\n * only a single stream token is retained.\n *\n * NOTE: this is deprecated and no longer used by the code.\n */\n n) {\n this.userId = t, this.lastAcknowledgedBatchId = e, this.lastStreamToken = n;\n }\n}\n\n/** Name of the IndexedDb object store. */ ks.store = \"mutationQueues\", \n/** Keys are automatically assigned via the userId property. */\nks.keyPath = \"userId\";\n\n/**\n * An object to be stored in the 'mutations' store in IndexedDb.\n *\n * Represents a batch of user-level mutations intended to be sent to the server\n * in a single write. Each user-level batch gets a separate DbMutationBatch\n * with a new batchId.\n */\nclass Os {\n constructor(\n /**\n * The normalized user ID to which this batch belongs.\n */\n t, \n /**\n * An identifier for this batch, allocated using an auto-generated key.\n */\n e, \n /**\n * The local write time of the batch, stored as milliseconds since the\n * epoch.\n */\n n, \n /**\n * A list of \"mutations\" that represent a partial base state from when this\n * write batch was initially created. During local application of the write\n * batch, these baseMutations are applied prior to the real writes in order\n * to override certain document fields from the remote document cache. This\n * is necessary in the case of non-idempotent writes (e.g. `increment()`\n * transforms) to make sure that the local view of the modified documents\n * doesn't flicker if the remote document cache receives the result of the\n * non-idempotent write before the write is removed from the queue.\n *\n * These mutations are never sent to the backend.\n */\n s, \n /**\n * A list of mutations to apply. All mutations will be applied atomically.\n *\n * Mutations are serialized via toMutation().\n */\n i) {\n this.userId = t, this.batchId = e, this.localWriteTimeMs = n, this.baseMutations = s, \n this.mutations = i;\n }\n}\n\n/** Name of the IndexedDb object store. */ Os.store = \"mutations\", \n/** Keys are automatically assigned via the userId, batchId properties. */\nOs.keyPath = \"batchId\", \n/** The index name for lookup of mutations by user. */\nOs.userMutationsIndex = \"userMutationsIndex\", \n/** The user mutations index is keyed by [userId, batchId] pairs. */\nOs.userMutationsKeyPath = [ \"userId\", \"batchId\" ];\n\n/**\n * An object to be stored in the 'documentMutations' store in IndexedDb.\n *\n * A manually maintained index of all the mutation batches that affect a given\n * document key. The rows in this table are references based on the contents of\n * DbMutationBatch.mutations.\n */\nclass Ms {\n constructor() {}\n /**\n * Creates a [userId] key for use in the DbDocumentMutations index to iterate\n * over all of a user's document mutations.\n */ static prefixForUser(t) {\n return [ t ];\n }\n /**\n * Creates a [userId, encodedPath] key for use in the DbDocumentMutations\n * index to iterate over all at document mutations for a given path or lower.\n */ static prefixForPath(t, e) {\n return [ t, Vs(e) ];\n }\n /**\n * Creates a full index key of [userId, encodedPath, batchId] for inserting\n * and deleting into the DbDocumentMutations index.\n */ static key(t, e, n) {\n return [ t, Vs(e), n ];\n }\n}\n\nMs.store = \"documentMutations\", \n/**\n * Because we store all the useful information for this store in the key,\n * there is no useful information to store as the value. The raw (unencoded)\n * path cannot be stored because IndexedDb doesn't store prototype\n * information.\n */\nMs.PLACEHOLDER = new Ms;\n\n/**\n * Represents the known absence of a document at a particular version.\n * Stored in IndexedDb as part of a DbRemoteDocument object.\n */\nclass $s {\n constructor(t, e) {\n this.path = t, this.readTime = e;\n }\n}\n\n/**\n * Represents a document that is known to exist but whose data is unknown.\n * Stored in IndexedDb as part of a DbRemoteDocument object.\n */ class Fs {\n constructor(t, e) {\n this.path = t, this.version = e;\n }\n}\n\n/**\n * An object to be stored in the 'remoteDocuments' store in IndexedDb.\n * It represents either:\n *\n * - A complete document.\n * - A \"no document\" representing a document that is known not to exist (at\n * some version).\n * - An \"unknown document\" representing a document that is known to exist (at\n * some version) but whose contents are unknown.\n *\n * Note: This is the persisted equivalent of a MaybeDocument and could perhaps\n * be made more general if necessary.\n */ class Bs {\n // TODO: We are currently storing full document keys almost three times\n // (once as part of the primary key, once - partly - as `parentPath` and once\n // inside the encoded documents). During our next migration, we should\n // rewrite the primary key as parentPath + document ID which would allow us\n // to drop one value.\n constructor(\n /**\n * Set to an instance of DbUnknownDocument if the data for a document is\n * not known, but it is known that a document exists at the specified\n * version (e.g. it had a successful update applied to it)\n */\n t, \n /**\n * Set to an instance of a DbNoDocument if it is known that no document\n * exists.\n */\n e, \n /**\n * Set to an instance of a Document if there's a cached version of the\n * document.\n */\n n, \n /**\n * Documents that were written to the remote document store based on\n * a write acknowledgment are marked with `hasCommittedMutations`. These\n * documents are potentially inconsistent with the backend's copy and use\n * the write's commit version as their document version.\n */\n s, \n /**\n * When the document was read from the backend. Undefined for data written\n * prior to schema version 9.\n */\n i, \n /**\n * The path of the collection this document is part of. Undefined for data\n * written prior to schema version 9.\n */\n r) {\n this.unknownDocument = t, this.noDocument = e, this.document = n, this.hasCommittedMutations = s, \n this.readTime = i, this.parentPath = r;\n }\n}\n\nBs.store = \"remoteDocuments\", \n/**\n * An index that provides access to all entries sorted by read time (which\n * corresponds to the last modification time of each row).\n *\n * This index is used to provide a changelog for Multi-Tab.\n */\nBs.readTimeIndex = \"readTimeIndex\", Bs.readTimeIndexPath = \"readTime\", \n/**\n * An index that provides access to documents in a collection sorted by read\n * time.\n *\n * This index is used to allow the RemoteDocumentCache to fetch newly changed\n * documents in a collection.\n */\nBs.collectionReadTimeIndex = \"collectionReadTimeIndex\", Bs.collectionReadTimeIndexPath = [ \"parentPath\", \"readTime\" ];\n\n/**\n * Contains a single entry that has metadata about the remote document cache.\n */\nclass Ls {\n /**\n * @param byteSize - Approximately the total size in bytes of all the\n * documents in the document cache.\n */\n constructor(t) {\n this.byteSize = t;\n }\n}\n\nLs.store = \"remoteDocumentGlobal\", Ls.key = \"remoteDocumentGlobalKey\";\n\n/**\n * An object to be stored in the 'targets' store in IndexedDb.\n *\n * This is based on and should be kept in sync with the proto used in the iOS\n * client.\n *\n * Each query the client listens to against the server is tracked on disk so\n * that the query can be efficiently resumed on restart.\n */\nclass Us {\n constructor(\n /**\n * An auto-generated sequential numeric identifier for the query.\n *\n * Queries are stored using their canonicalId as the key, but these\n * canonicalIds can be quite long so we additionally assign a unique\n * queryId which can be used by referenced data structures (e.g.\n * indexes) to minimize the on-disk cost.\n */\n t, \n /**\n * The canonical string representing this query. This is not unique.\n */\n e, \n /**\n * The last readTime received from the Watch Service for this query.\n *\n * This is the same value as TargetChange.read_time in the protos.\n */\n n, \n /**\n * An opaque, server-assigned token that allows watching a query to be\n * resumed after disconnecting without retransmitting all the data\n * that matches the query. The resume token essentially identifies a\n * point in time from which the server should resume sending results.\n *\n * This is related to the snapshotVersion in that the resumeToken\n * effectively also encodes that value, but the resumeToken is opaque\n * and sometimes encodes additional information.\n *\n * A consequence of this is that the resumeToken should be used when\n * asking the server to reason about where this client is in the watch\n * stream, but the client should use the snapshotVersion for its own\n * purposes.\n *\n * This is the same value as TargetChange.resume_token in the protos.\n */\n s, \n /**\n * A sequence number representing the last time this query was\n * listened to, used for garbage collection purposes.\n *\n * Conventionally this would be a timestamp value, but device-local\n * clocks are unreliable and they must be able to create new listens\n * even while disconnected. Instead this should be a monotonically\n * increasing number that's incremented on each listen call.\n *\n * This is different from the queryId since the queryId is an\n * immutable identifier assigned to the Query on first use while\n * lastListenSequenceNumber is updated every time the query is\n * listened to.\n */\n i, \n /**\n * Denotes the maximum snapshot version at which the associated query view\n * contained no limbo documents. Undefined for data written prior to\n * schema version 9.\n */\n r, \n /**\n * The query for this target.\n *\n * Because canonical ids are not unique we must store the actual query. We\n * use the proto to have an object we can persist without having to\n * duplicate translation logic to and from a `Query` object.\n */\n o) {\n this.targetId = t, this.canonicalId = e, this.readTime = n, this.resumeToken = s, \n this.lastListenSequenceNumber = i, this.lastLimboFreeSnapshotVersion = r, this.query = o;\n }\n}\n\nUs.store = \"targets\", \n/** Keys are automatically assigned via the targetId property. */\nUs.keyPath = \"targetId\", \n/** The name of the queryTargets index. */\nUs.queryTargetsIndexName = \"queryTargetsIndex\", \n/**\n * The index of all canonicalIds to the targets that they match. This is not\n * a unique mapping because canonicalId does not promise a unique name for all\n * possible queries, so we append the targetId to make the mapping unique.\n */\nUs.queryTargetsKeyPath = [ \"canonicalId\", \"targetId\" ];\n\n/**\n * An object representing an association between a target and a document, or a\n * sentinel row marking the last sequence number at which a document was used.\n * Each document cached must have a corresponding sentinel row before lru\n * garbage collection is enabled.\n *\n * The target associations and sentinel rows are co-located so that orphaned\n * documents and their sequence numbers can be identified efficiently via a scan\n * of this store.\n */\nclass qs {\n constructor(\n /**\n * The targetId identifying a target or 0 for a sentinel row.\n */\n t, \n /**\n * The path to the document, as encoded in the key.\n */\n e, \n /**\n * If this is a sentinel row, this should be the sequence number of the last\n * time the document specified by `path` was used. Otherwise, it should be\n * `undefined`.\n */\n n) {\n this.targetId = t, this.path = e, this.sequenceNumber = n;\n }\n}\n\n/** Name of the IndexedDb object store. */ qs.store = \"targetDocuments\", \n/** Keys are automatically assigned via the targetId, path properties. */\nqs.keyPath = [ \"targetId\", \"path\" ], \n/** The index name for the reverse index. */\nqs.documentTargetsIndex = \"documentTargetsIndex\", \n/** We also need to create the reverse index for these properties. */\nqs.documentTargetsKeyPath = [ \"path\", \"targetId\" ];\n\n/**\n * A record of global state tracked across all Targets, tracked separately\n * to avoid the need for extra indexes.\n *\n * This should be kept in-sync with the proto used in the iOS client.\n */\nclass Ks {\n constructor(\n /**\n * The highest numbered target id across all targets.\n *\n * See DbTarget.targetId.\n */\n t, \n /**\n * The highest numbered lastListenSequenceNumber across all targets.\n *\n * See DbTarget.lastListenSequenceNumber.\n */\n e, \n /**\n * A global snapshot version representing the last consistent snapshot we\n * received from the backend. This is monotonically increasing and any\n * snapshots received from the backend prior to this version (e.g. for\n * targets resumed with a resumeToken) should be suppressed (buffered)\n * until the backend has caught up to this snapshot version again. This\n * prevents our cache from ever going backwards in time.\n */\n n, \n /**\n * The number of targets persisted.\n */\n s) {\n this.highestTargetId = t, this.highestListenSequenceNumber = e, this.lastRemoteSnapshotVersion = n, \n this.targetCount = s;\n }\n}\n\n/**\n * The key string used for the single object that exists in the\n * DbTargetGlobal store.\n */ Ks.key = \"targetGlobalKey\", Ks.store = \"targetGlobal\";\n\n/**\n * An object representing an association between a Collection id (e.g. 'messages')\n * to a parent path (e.g. '/chats/123') that contains it as a (sub)collection.\n * This is used to efficiently find all collections to query when performing\n * a Collection Group query.\n */\nclass Gs {\n constructor(\n /**\n * The collectionId (e.g. 'messages')\n */\n t, \n /**\n * The path to the parent (either a document location or an empty path for\n * a root-level collection).\n */\n e) {\n this.collectionId = t, this.parent = e;\n }\n}\n\n/** Name of the IndexedDb object store. */ Gs.store = \"collectionParents\", \n/** Keys are automatically assigned via the collectionId, parent properties. */\nGs.keyPath = [ \"collectionId\", \"parent\" ];\n\n/**\n * A record of the metadata state of each client.\n *\n * PORTING NOTE: This is used to synchronize multi-tab state and does not need\n * to be ported to iOS or Android.\n */\nclass js {\n constructor(\n // Note: Previous schema versions included a field\n // \"lastProcessedDocumentChangeId\". Don't use anymore.\n /** The auto-generated client id assigned at client startup. */\n t, \n /** The last time this state was updated. */\n e, \n /** Whether the client's network connection is enabled. */\n n, \n /** Whether this client is running in a foreground tab. */\n s) {\n this.clientId = t, this.updateTimeMs = e, this.networkEnabled = n, this.inForeground = s;\n }\n}\n\n/** Name of the IndexedDb object store. */ js.store = \"clientMetadata\", \n/** Keys are automatically assigned via the clientId properties. */\njs.keyPath = \"clientId\";\n\n/** An object representing a bundle loaded by the SDK. */\nclass Qs {\n constructor(\n /** The ID of the loaded bundle. */\n t, \n /** The create time of the loaded bundle. */\n e, \n /** The schema version of the loaded bundle. */\n n) {\n this.bundleId = t, this.createTime = e, this.version = n;\n }\n}\n\n/** Name of the IndexedDb object store. */ Qs.store = \"bundles\", Qs.keyPath = \"bundleId\";\n\n/** An object representing a named query loaded by the SDK via a bundle. */\nclass Ws {\n constructor(\n /** The name of the query. */\n t, \n /** The read time of the results saved in the bundle from the named query. */\n e, \n /** The query saved in the bundle. */\n n) {\n this.name = t, this.readTime = e, this.bundledQuery = n;\n }\n}\n\n/** Name of the IndexedDb object store. */ Ws.store = \"namedQueries\", Ws.keyPath = \"name\";\n\n/** An object representing the global configuration for a field index. */\nclass zs {\n constructor(\n /**\n * The index id for this entry. Undefined for indexes that are not yet\n * persisted.\n */\n t, \n /** The collection group this index belongs to. */\n e, \n /** The fields to index for this index. */\n n) {\n this.indexId = t, this.collectionGroup = e, this.fields = n;\n }\n}\n\n/** Name of the IndexedDb object store. */ zs.store = \"indexConfiguration\", zs.keyPath = \"indexId\", \n/**\n * An index that provides access to the index configurations by collection\n * group.\n *\n * PORTING NOTE: iOS and Android maintain this index in-memory, but this is\n * not possible here as the Web client supports concurrent access to\n * persistence via multi-tab.\n */\nzs.collectionGroupIndex = \"collectionGroupIndex\", zs.collectionGroupIndexPath = \"collectionGroup\";\n\n/**\n * An object describing how up-to-date the index backfill is for each user and\n * index.\n */\nclass Hs {\n constructor(\n /** The index id for this entry. */\n t, \n /** The user id for this entry. */\n e, \n /**\n * A number that indicates when the index was last updated (relative to\n * other indexes).\n */\n n, \n /**\n * The latest read time that has been indexed by Firestore for this field\n * index. Set to `{seconds: 0, nanos: 0}` if no documents have been indexed.\n */\n s, \n /**\n * The last document that has been indexed for this field index. Empty if\n * no documents have been indexed.\n */\n i, \n /**\n * The largest mutation batch id that has been processed for this index. -1\n * if no mutations have been indexed.\n */\n r) {\n this.indexId = t, this.uid = e, this.sequenceNumber = n, this.readTime = s, this.documentKey = i, \n this.largestBatchId = r;\n }\n}\n\n/** Name of the IndexedDb object store. */ Hs.store = \"indexState\", Hs.keyPath = [ \"indexId\", \"uid\" ], \n/**\n * An index that provides access to documents in a collection sorted by last\n * update time. Used by the backfiller.\n *\n * PORTING NOTE: iOS and Android maintain this index in-memory, but this is\n * not possible here as the Web client supports concurrent access to\n * persistence via multi-tab.\n */\nHs.sequenceNumberIndex = \"sequenceNumberIndex\", Hs.sequenceNumberIndexPath = [ \"uid\", \"sequenceNumber\" ];\n\n/** An object that stores the encoded entries for all documents and fields. */\nclass Js {\n constructor(\n /** The index id for this entry. */\n t, \n /** The user id for this entry. */\n e, \n /** The encoded array index value for this entry. */\n n, \n /** The encoded directional value for equality and inequality filters. */\n s, \n /** The document key this entry points to. */\n i) {\n this.indexId = t, this.uid = e, this.arrayValue = n, this.directionalValue = s, \n this.documentKey = i;\n }\n}\n\n/** Name of the IndexedDb object store. */ Js.store = \"indexEntries\", Js.keyPath = [ \"indexId\", \"uid\", \"arrayValue\", \"directionalValue\", \"documentKey\" ], \nJs.documentKeyIndex = \"documentKeyIndex\", Js.documentKeyIndexPath = [ \"indexId\", \"uid\", \"documentKey\" ];\n\n/**\n * An object representing a document overlay.\n */\nclass Ys {\n constructor(\n /** The user ID to whom this overlay belongs. */\n t, \n /** The path to the collection that contains the document. */\n e, \n /** The ID (key) of the document within the collection. */\n n, \n /** The collection group to which the document belongs. */\n s, \n /** The largest batch ID that's been applied for this overlay. */\n i, \n /** The overlay mutation. */\n r) {\n this.userId = t, this.collectionPath = e, this.documentId = n, this.collectionGroup = s, \n this.largestBatchId = i, this.overlayMutation = r;\n }\n}\n\n/** Name of the IndexedDb object store. */ Ys.store = \"documentOverlays\", Ys.keyPath = [ \"userId\", \"collectionPath\", \"documentId\" ], \nYs.collectionPathOverlayIndex = \"collectionPathOverlayIndex\", Ys.collectionPathOverlayIndexPath = [ \"userId\", \"collectionPath\", \"largestBatchId\" ], \nYs.collectionGroupOverlayIndex = \"collectionGroupOverlayIndex\", Ys.collectionGroupOverlayIndexPath = [ \"userId\", \"collectionGroup\", \"largestBatchId\" ];\n\n// Visible for testing\nconst Xs = [ ...[ ...[ ...[ ...[ ks.store, Os.store, Ms.store, Bs.store, Us.store, xs.store, Ks.store, qs.store ], js.store ], Ls.store ], Gs.store ], Qs.store, Ws.store ], Zs = [ ...Xs, Ys.store ], ti = [ ...Zs, zs.store, Hs.store, Js.store ];\n\n// V2 is no longer usable (see comment at top of file)\n// Visible for testing\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst ei = \"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.\";\n\n/**\n * A base class representing a persistence transaction, encapsulating both the\n * transaction's sequence numbers as well as a list of onCommitted listeners.\n *\n * When you call Persistence.runTransaction(), it will create a transaction and\n * pass it to your callback. You then pass it to any method that operates\n * on persistence.\n */ class ni {\n constructor() {\n this.onCommittedListeners = [];\n }\n addOnCommittedListener(t) {\n this.onCommittedListeners.push(t);\n }\n raiseOnCommittedEvent() {\n this.onCommittedListeners.forEach((t => t()));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * PersistencePromise is essentially a re-implementation of Promise except\n * it has a .next() method instead of .then() and .next() and .catch() callbacks\n * are executed synchronously when a PersistencePromise resolves rather than\n * asynchronously (Promise implementations use setImmediate() or similar).\n *\n * This is necessary to interoperate with IndexedDB which will automatically\n * commit transactions if control is returned to the event loop without\n * synchronously initiating another operation on the transaction.\n *\n * NOTE: .then() and .catch() only allow a single consumer, unlike normal\n * Promises.\n */ class si {\n constructor(t) {\n // NOTE: next/catchCallback will always point to our own wrapper functions,\n // not the user's raw next() or catch() callbacks.\n this.nextCallback = null, this.catchCallback = null, \n // When the operation resolves, we'll set result or error and mark isDone.\n this.result = void 0, this.error = void 0, this.isDone = !1, \n // Set to true when .then() or .catch() are called and prevents additional\n // chaining.\n this.callbackAttached = !1, t((t => {\n this.isDone = !0, this.result = t, this.nextCallback && \n // value should be defined unless T is Void, but we can't express\n // that in the type system.\n this.nextCallback(t);\n }), (t => {\n this.isDone = !0, this.error = t, this.catchCallback && this.catchCallback(t);\n }));\n }\n catch(t) {\n return this.next(void 0, t);\n }\n next(t, e) {\n return this.callbackAttached && L(), this.callbackAttached = !0, this.isDone ? this.error ? this.wrapFailure(e, this.error) : this.wrapSuccess(t, this.result) : new si(((n, s) => {\n this.nextCallback = e => {\n this.wrapSuccess(t, e).next(n, s);\n }, this.catchCallback = t => {\n this.wrapFailure(e, t).next(n, s);\n };\n }));\n }\n toPromise() {\n return new Promise(((t, e) => {\n this.next(t, e);\n }));\n }\n wrapUserFunction(t) {\n try {\n const e = t();\n return e instanceof si ? e : si.resolve(e);\n } catch (t) {\n return si.reject(t);\n }\n }\n wrapSuccess(t, e) {\n return t ? this.wrapUserFunction((() => t(e))) : si.resolve(e);\n }\n wrapFailure(t, e) {\n return t ? this.wrapUserFunction((() => t(e))) : si.reject(e);\n }\n static resolve(t) {\n return new si(((e, n) => {\n e(t);\n }));\n }\n static reject(t) {\n return new si(((e, n) => {\n n(t);\n }));\n }\n static waitFor(\n // Accept all Promise types in waitFor().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t) {\n return new si(((e, n) => {\n let s = 0, i = 0, r = !1;\n t.forEach((t => {\n ++s, t.next((() => {\n ++i, r && i === s && e();\n }), (t => n(t)));\n })), r = !0, i === s && e();\n }));\n }\n /**\n * Given an array of predicate functions that asynchronously evaluate to a\n * boolean, implements a short-circuiting `or` between the results. Predicates\n * will be evaluated until one of them returns `true`, then stop. The final\n * result will be whether any of them returned `true`.\n */ static or(t) {\n let e = si.resolve(!1);\n for (const n of t) e = e.next((t => t ? si.resolve(t) : n()));\n return e;\n }\n static forEach(t, e) {\n const n = [];\n return t.forEach(((t, s) => {\n n.push(e.call(this, t, s));\n })), this.waitFor(n);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// References to `window` are guarded by SimpleDb.isAvailable()\n/* eslint-disable no-restricted-globals */\n/**\n * Wraps an IDBTransaction and exposes a store() method to get a handle to a\n * specific object store.\n */\nclass ii {\n constructor(t, e) {\n this.action = t, this.transaction = e, this.aborted = !1, \n /**\n * A `Promise` that resolves with the result of the IndexedDb transaction.\n */\n this.At = new Q, this.transaction.oncomplete = () => {\n this.At.resolve();\n }, this.transaction.onabort = () => {\n e.error ? this.At.reject(new ci(t, e.error)) : this.At.resolve();\n }, this.transaction.onerror = e => {\n const n = fi(e.target.error);\n this.At.reject(new ci(t, n));\n };\n }\n static open(t, e, n, s) {\n try {\n return new ii(e, t.transaction(s, n));\n } catch (t) {\n throw new ci(e, t);\n }\n }\n get Rt() {\n return this.At.promise;\n }\n abort(t) {\n t && this.At.reject(t), this.aborted || (M(\"SimpleDb\", \"Aborting transaction:\", t ? t.message : \"Client-initiated abort\"), \n this.aborted = !0, this.transaction.abort());\n }\n Pt() {\n // If the browser supports V3 IndexedDB, we invoke commit() explicitly to\n // speed up index DB processing if the event loop remains blocks.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const t = this.transaction;\n this.aborted || \"function\" != typeof t.commit || t.commit();\n }\n /**\n * Returns a SimpleDbStore<KeyType, ValueType> for the specified store. All\n * operations performed on the SimpleDbStore happen within the context of this\n * transaction and it cannot be used anymore once the transaction is\n * completed.\n *\n * Note that we can't actually enforce that the KeyType and ValueType are\n * correct, but they allow type safety through the rest of the consuming code.\n */ store(t) {\n const e = this.transaction.objectStore(t);\n return new ai(e);\n }\n}\n\n/**\n * Provides a wrapper around IndexedDb with a simplified interface that uses\n * Promise-like return values to chain operations. Real promises cannot be used\n * since .then() continuations are executed asynchronously (e.g. via\n * .setImmediate), which would cause IndexedDB to end the transaction.\n * See PersistencePromise for more details.\n */ class ri {\n /*\n * Creates a new SimpleDb wrapper for IndexedDb database `name`.\n *\n * Note that `version` must not be a downgrade. IndexedDB does not support\n * downgrading the schema version. We currently do not support any way to do\n * versioning outside of IndexedDB's versioning mechanism, as only\n * version-upgrade transactions are allowed to do things like create\n * objectstores.\n */\n constructor(t, e, n) {\n this.name = t, this.version = e, this.bt = n;\n // NOTE: According to https://bugs.webkit.org/show_bug.cgi?id=197050, the\n // bug we're checking for should exist in iOS >= 12.2 and < 13, but for\n // whatever reason it's much harder to hit after 12.2 so we only proactively\n // log on 12.2.\n 12.2 === ri.vt(getUA()) && $(\"Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.\");\n }\n /** Deletes the specified database. */ static delete(t) {\n return M(\"SimpleDb\", \"Removing database:\", t), hi(window.indexedDB.deleteDatabase(t)).toPromise();\n }\n /** Returns true if IndexedDB is available in the current environment. */ static Vt() {\n if (!isIndexedDBAvailable()) return !1;\n if (ri.St()) return !0;\n // We extensively use indexed array values and compound keys,\n // which IE and Edge do not support. However, they still have indexedDB\n // defined on the window, so we need to check for them here and make sure\n // to return that persistence is not enabled for those browsers.\n // For tracking support of this feature, see here:\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/status/indexeddbarraysandmultientrysupport/\n // Check the UA string to find out the browser.\n const t = getUA(), e = ri.vt(t), n = 0 < e && e < 10, s = ri.Dt(t), i = 0 < s && s < 4.5;\n // IE 10\n // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';\n // IE 11\n // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';\n // Edge\n // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,\n // like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';\n // iOS Safari: Disable for users running iOS version < 10.\n return !(t.indexOf(\"MSIE \") > 0 || t.indexOf(\"Trident/\") > 0 || t.indexOf(\"Edge/\") > 0 || n || i);\n }\n /**\n * Returns true if the backing IndexedDB store is the Node IndexedDBShim\n * (see https://github.com/axemclion/IndexedDBShim).\n */ static St() {\n var t;\n return \"undefined\" != typeof process && \"YES\" === (null === (t = process.env) || void 0 === t ? void 0 : t.Ct);\n }\n /** Helper to get a typed SimpleDbStore from a transaction. */ static Nt(t, e) {\n return t.store(e);\n }\n // visible for testing\n /** Parse User Agent to determine iOS version. Returns -1 if not found. */\n static vt(t) {\n const e = t.match(/i(?:phone|pad|pod) os ([\\d_]+)/i), n = e ? e[1].split(\"_\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n }\n // visible for testing\n /** Parse User Agent to determine Android version. Returns -1 if not found. */\n static Dt(t) {\n const e = t.match(/Android ([\\d.]+)/i), n = e ? e[1].split(\".\").slice(0, 2).join(\".\") : \"-1\";\n return Number(n);\n }\n /**\n * Opens the specified database, creating or upgrading it if necessary.\n */ async xt(t) {\n return this.db || (M(\"SimpleDb\", \"Opening database:\", this.name), this.db = await new Promise(((e, n) => {\n // TODO(mikelehen): Investigate browser compatibility.\n // https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB\n // suggests IE9 and older WebKit browsers handle upgrade\n // differently. They expect setVersion, as described here:\n // https://developer.mozilla.org/en-US/docs/Web/API/IDBVersionChangeRequest/setVersion\n const s = indexedDB.open(this.name, this.version);\n s.onsuccess = t => {\n const n = t.target.result;\n e(n);\n }, s.onblocked = () => {\n n(new ci(t, \"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed.\"));\n }, s.onerror = e => {\n const s = e.target.error;\n \"VersionError\" === s.name ? n(new j(G.FAILED_PRECONDITION, \"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.\")) : \"InvalidStateError\" === s.name ? n(new j(G.FAILED_PRECONDITION, \"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: \" + s)) : n(new ci(t, s));\n }, s.onupgradeneeded = t => {\n M(\"SimpleDb\", 'Database \"' + this.name + '\" requires upgrade from version:', t.oldVersion);\n const e = t.target.result;\n this.bt.kt(e, s.transaction, t.oldVersion, this.version).next((() => {\n M(\"SimpleDb\", \"Database upgrade to version \" + this.version + \" complete\");\n }));\n };\n }))), this.Ot && (this.db.onversionchange = t => this.Ot(t)), this.db;\n }\n Mt(t) {\n this.Ot = t, this.db && (this.db.onversionchange = e => t(e));\n }\n async runTransaction(t, e, n, s) {\n const i = \"readonly\" === e;\n let r = 0;\n for (;;) {\n ++r;\n try {\n this.db = await this.xt(t);\n const e = ii.open(this.db, t, i ? \"readonly\" : \"readwrite\", n), r = s(e).next((t => (e.Pt(), \n t))).catch((t => (\n // Abort the transaction if there was an error.\n e.abort(t), si.reject(t)))).toPromise();\n // As noted above, errors are propagated by aborting the transaction. So\n // we swallow any error here to avoid the browser logging it as unhandled.\n return r.catch((() => {})), \n // Wait for the transaction to complete (i.e. IndexedDb's onsuccess event to\n // fire), but still return the original transactionFnResult back to the\n // caller.\n await e.Rt, r;\n } catch (t) {\n // TODO(schmidt-sebastian): We could probably be smarter about this and\n // not retry exceptions that are likely unrecoverable (such as quota\n // exceeded errors).\n // Note: We cannot use an instanceof check for FirestoreException, since the\n // exception is wrapped in a generic error by our async/await handling.\n const e = \"FirebaseError\" !== t.name && r < 3;\n if (M(\"SimpleDb\", \"Transaction failed with error:\", t.message, \"Retrying:\", e), \n this.close(), !e) return Promise.reject(t);\n }\n }\n }\n close() {\n this.db && this.db.close(), this.db = void 0;\n }\n}\n\n/**\n * A controller for iterating over a key range or index. It allows an iterate\n * callback to delete the currently-referenced object, or jump to a new key\n * within the key range or index.\n */ class oi {\n constructor(t) {\n this.$t = t, this.Ft = !1, this.Bt = null;\n }\n get isDone() {\n return this.Ft;\n }\n get Lt() {\n return this.Bt;\n }\n set cursor(t) {\n this.$t = t;\n }\n /**\n * This function can be called to stop iteration at any point.\n */ done() {\n this.Ft = !0;\n }\n /**\n * This function can be called to skip to that next key, which could be\n * an index or a primary key.\n */ Ut(t) {\n this.Bt = t;\n }\n /**\n * Delete the current cursor value from the object store.\n *\n * NOTE: You CANNOT do this with a keysOnly query.\n */ delete() {\n return hi(this.$t.delete());\n }\n}\n\n/** An error that wraps exceptions that thrown during IndexedDB execution. */ class ci extends j {\n constructor(t, e) {\n super(G.UNAVAILABLE, `IndexedDB transaction '${t}' failed: ${e}`), this.name = \"IndexedDbTransactionError\";\n }\n}\n\n/** Verifies whether `e` is an IndexedDbTransactionError. */ function ui(t) {\n // Use name equality, as instanceof checks on errors don't work with errors\n // that wrap other errors.\n return \"IndexedDbTransactionError\" === t.name;\n}\n\n/**\n * A wrapper around an IDBObjectStore providing an API that:\n *\n * 1) Has generic KeyType / ValueType parameters to provide strongly-typed\n * methods for acting against the object store.\n * 2) Deals with IndexedDB's onsuccess / onerror event callbacks, making every\n * method return a PersistencePromise instead.\n * 3) Provides a higher-level API to avoid needing to do excessive wrapping of\n * intermediate IndexedDB types (IDBCursorWithValue, etc.)\n */ class ai {\n constructor(t) {\n this.store = t;\n }\n put(t, e) {\n let n;\n return void 0 !== e ? (M(\"SimpleDb\", \"PUT\", this.store.name, t, e), n = this.store.put(e, t)) : (M(\"SimpleDb\", \"PUT\", this.store.name, \"<auto-key>\", t), \n n = this.store.put(t)), hi(n);\n }\n /**\n * Adds a new value into an Object Store and returns the new key. Similar to\n * IndexedDb's `add()`, this method will fail on primary key collisions.\n *\n * @param value - The object to write.\n * @returns The key of the value to add.\n */ add(t) {\n M(\"SimpleDb\", \"ADD\", this.store.name, t, t);\n return hi(this.store.add(t));\n }\n /**\n * Gets the object with the specified key from the specified store, or null\n * if no object exists with the specified key.\n *\n * @key The key of the object to get.\n * @returns The object with the specified key or null if no object exists.\n */ get(t) {\n // We're doing an unsafe cast to ValueType.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hi(this.store.get(t)).next((e => (\n // Normalize nonexistence to null.\n void 0 === e && (e = null), M(\"SimpleDb\", \"GET\", this.store.name, t, e), e)));\n }\n delete(t) {\n M(\"SimpleDb\", \"DELETE\", this.store.name, t);\n return hi(this.store.delete(t));\n }\n /**\n * If we ever need more of the count variants, we can add overloads. For now,\n * all we need is to count everything in a store.\n *\n * Returns the number of rows in the store.\n */ count() {\n M(\"SimpleDb\", \"COUNT\", this.store.name);\n return hi(this.store.count());\n }\n qt(t, e) {\n const n = this.options(t, e);\n // Use `getAll()` if the browser supports IndexedDB v3, as it is roughly\n // 20% faster. Unfortunately, getAll() does not support custom indices.\n if (n.index || \"function\" != typeof this.store.getAll) {\n const t = this.cursor(n), e = [];\n return this.Kt(t, ((t, n) => {\n e.push(n);\n })).next((() => e));\n }\n {\n const t = this.store.getAll(n.range);\n return new si(((e, n) => {\n t.onerror = t => {\n n(t.target.error);\n }, t.onsuccess = t => {\n e(t.target.result);\n };\n }));\n }\n }\n Gt(t, e) {\n M(\"SimpleDb\", \"DELETE ALL\", this.store.name);\n const n = this.options(t, e);\n n.jt = !1;\n const s = this.cursor(n);\n return this.Kt(s, ((t, e, n) => n.delete()));\n }\n Qt(t, e) {\n let n;\n e ? n = t : (n = {}, e = t);\n const s = this.cursor(n);\n return this.Kt(s, e);\n }\n /**\n * Iterates over a store, but waits for the given callback to complete for\n * each entry before iterating the next entry. This allows the callback to do\n * asynchronous work to determine if this iteration should continue.\n *\n * The provided callback should return `true` to continue iteration, and\n * `false` otherwise.\n */ Wt(t) {\n const e = this.cursor({});\n return new si(((n, s) => {\n e.onerror = t => {\n const e = fi(t.target.error);\n s(e);\n }, e.onsuccess = e => {\n const s = e.target.result;\n s ? t(s.primaryKey, s.value).next((t => {\n t ? s.continue() : n();\n })) : n();\n };\n }));\n }\n Kt(t, e) {\n const n = [];\n return new si(((s, i) => {\n t.onerror = t => {\n i(t.target.error);\n }, t.onsuccess = t => {\n const i = t.target.result;\n if (!i) return void s();\n const r = new oi(i), o = e(i.primaryKey, i.value, r);\n if (o instanceof si) {\n const t = o.catch((t => (r.done(), si.reject(t))));\n n.push(t);\n }\n r.isDone ? s() : null === r.Lt ? i.continue() : i.continue(r.Lt);\n };\n })).next((() => si.waitFor(n)));\n }\n options(t, e) {\n let n;\n return void 0 !== t && (\"string\" == typeof t ? n = t : e = t), {\n index: n,\n range: e\n };\n }\n cursor(t) {\n let e = \"next\";\n if (t.reverse && (e = \"prev\"), t.index) {\n const n = this.store.index(t.index);\n return t.jt ? n.openKeyCursor(t.range, e) : n.openCursor(t.range, e);\n }\n return this.store.openCursor(t.range, e);\n }\n}\n\n/**\n * Wraps an IDBRequest in a PersistencePromise, using the onsuccess / onerror\n * handlers to resolve / reject the PersistencePromise as appropriate.\n */ function hi(t) {\n return new si(((e, n) => {\n t.onsuccess = t => {\n const n = t.target.result;\n e(n);\n }, t.onerror = t => {\n const e = fi(t.target.error);\n n(e);\n };\n }));\n}\n\n// Guard so we only report the error once.\nlet li = !1;\n\nfunction fi(t) {\n const e = ri.vt(getUA());\n if (e >= 12.2 && e < 13) {\n const e = \"An internal error was encountered in the Indexed Database server\";\n if (t.message.indexOf(e) >= 0) {\n // Wrap error in a more descriptive one.\n const t = new j(\"internal\", `IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${e}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);\n return li || (li = !0, \n // Throw a global exception outside of this promise chain, for the user to\n // potentially catch.\n setTimeout((() => {\n throw t;\n }), 0)), t;\n }\n }\n return t;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class di extends ni {\n constructor(t, e) {\n super(), this.zt = t, this.currentSequenceNumber = e;\n }\n}\n\nfunction _i(t, e) {\n const n = K(t);\n return ri.Nt(n.zt, e);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A batch of mutations that will be sent as one unit to the backend.\n */ class wi {\n /**\n * @param batchId - The unique ID of this mutation batch.\n * @param localWriteTime - The original write time of this mutation.\n * @param baseMutations - Mutations that are used to populate the base\n * values when this mutation is applied locally. This can be used to locally\n * overwrite values that are persisted in the remote document cache. Base\n * mutations are never sent to the backend.\n * @param mutations - The user-provided mutations in this mutation batch.\n * User-provided mutations are applied both locally and remotely on the\n * backend.\n */\n constructor(t, e, n, s) {\n this.batchId = t, this.localWriteTime = e, this.baseMutations = n, this.mutations = s;\n }\n /**\n * Applies all the mutations in this MutationBatch to the specified document\n * to compute the state of the remote document\n *\n * @param document - The document to apply mutations to.\n * @param batchResult - The result of applying the MutationBatch to the\n * backend.\n */ applyToRemoteDocument(t, e) {\n const n = e.mutationResults;\n for (let e = 0; e < this.mutations.length; e++) {\n const s = this.mutations[e];\n if (s.key.isEqual(t.key)) {\n on(s, t, n[e]);\n }\n }\n }\n /**\n * Computes the local view of a document given all the mutations in this\n * batch.\n *\n * @param document - The document to apply mutations to.\n */ applyToLocalView(t) {\n // First, apply the base state. This allows us to apply non-idempotent\n // transform against a consistent set of values.\n for (const e of this.baseMutations) e.key.isEqual(t.key) && cn(e, t, this.localWriteTime);\n // Second, apply all user-provided mutations.\n for (const e of this.mutations) e.key.isEqual(t.key) && cn(e, t, this.localWriteTime);\n }\n /**\n * Computes the local view for all provided documents given the mutations in\n * this batch.\n */ applyToLocalDocumentSet(t) {\n // TODO(mrschmidt): This implementation is O(n^2). If we apply the mutations\n // directly (as done in `applyToLocalView()`), we can reduce the complexity\n // to O(n).\n this.mutations.forEach((e => {\n const n = t.get(e.key), s = n;\n // TODO(mutabledocuments): This method should take a MutableDocumentMap\n // and we should remove this cast.\n this.applyToLocalView(s), n.isValidDocument() || s.convertToNoDocument(at.min());\n }));\n }\n keys() {\n return this.mutations.reduce(((t, e) => t.add(e.key)), On());\n }\n isEqual(t) {\n return this.batchId === t.batchId && ot(this.mutations, t.mutations, ((t, e) => an(t, e))) && ot(this.baseMutations, t.baseMutations, ((t, e) => an(t, e)));\n }\n}\n\n/** The result of applying a mutation batch to the backend. */ class mi {\n constructor(t, e, n, \n /**\n * A pre-computed mapping from each mutated document to the resulting\n * version.\n */\n s) {\n this.batch = t, this.commitVersion = e, this.mutationResults = n, this.docVersions = s;\n }\n /**\n * Creates a new MutationBatchResult for the given batch and results. There\n * must be one result for each mutation in the batch. This static factory\n * caches a document=>version mapping (docVersions).\n */ static from(t, e, n) {\n U(t.mutations.length === n.length);\n let s = xn;\n const i = t.mutations;\n for (let t = 0; t < i.length; t++) s = s.insert(i[t].key, n[t].version);\n return new mi(t, e, n, s);\n }\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Representation of an overlay computed by Firestore.\n *\n * Holds information about a mutation and the largest batch id in Firestore when\n * the mutation was created.\n */ class gi {\n constructor(t, e) {\n this.largestBatchId = t, this.mutation = e;\n }\n getKey() {\n return this.mutation.key;\n }\n isEqual(t) {\n return null !== t && this.mutation === t.mutation;\n }\n toString() {\n return `Overlay{\\n largestBatchId: ${this.largestBatchId},\\n mutation: ${this.mutation.toString()}\\n }`;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An immutable set of metadata that the local store tracks for each target.\n */ class yi {\n constructor(\n /** The target being listened to. */\n t, \n /**\n * The target ID to which the target corresponds; Assigned by the\n * LocalStore for user listens and by the SyncEngine for limbo watches.\n */\n e, \n /** The purpose of the target. */\n n, \n /**\n * The sequence number of the last transaction during which this target data\n * was modified.\n */\n s, \n /** The latest snapshot version seen for this target. */\n i = at.min()\n /**\n * The maximum snapshot version at which the associated view\n * contained no limbo documents.\n */ , r = at.min()\n /**\n * An opaque, server-assigned token that allows watching a target to be\n * resumed after disconnecting without retransmitting all the data that\n * matches the target. The resume token essentially identifies a point in\n * time from which the server should resume sending results.\n */ , o = pt.EMPTY_BYTE_STRING) {\n this.target = t, this.targetId = e, this.purpose = n, this.sequenceNumber = s, this.snapshotVersion = i, \n this.lastLimboFreeSnapshotVersion = r, this.resumeToken = o;\n }\n /** Creates a new target data instance with an updated sequence number. */ withSequenceNumber(t) {\n return new yi(this.target, this.targetId, this.purpose, t, this.snapshotVersion, this.lastLimboFreeSnapshotVersion, this.resumeToken);\n }\n /**\n * Creates a new target data instance with an updated resume token and\n * snapshot version.\n */ withResumeToken(t, e) {\n return new yi(this.target, this.targetId, this.purpose, this.sequenceNumber, e, this.lastLimboFreeSnapshotVersion, t);\n }\n /**\n * Creates a new target data instance with an updated last limbo free\n * snapshot version number.\n */ withLastLimboFreeSnapshotVersion(t) {\n return new yi(this.target, this.targetId, this.purpose, this.sequenceNumber, this.snapshotVersion, t, this.resumeToken);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Serializer for values stored in the LocalStore. */ class pi {\n constructor(t) {\n this.Ht = t;\n }\n}\n\n/** Decodes a remote document from storage locally to a Document. */ function Ii(t, e) {\n let n;\n if (e.document) n = as(t.Ht, e.document, !!e.hasCommittedMutations); else if (e.noDocument) {\n const t = Nt.fromSegments(e.noDocument.path), s = Pi(e.noDocument.readTime);\n n = Jt.newNoDocument(t, s), e.hasCommittedMutations && n.setHasCommittedMutations();\n } else {\n if (!e.unknownDocument) return L();\n {\n const t = Nt.fromSegments(e.unknownDocument.path), s = Pi(e.unknownDocument.version);\n n = Jt.newUnknownDocument(t, s);\n }\n }\n return e.readTime && n.setReadTime(Ai(e.readTime)), n;\n}\n\n/** Encodes a document for storage locally. */ function Ei(t, e) {\n const n = Ti(e.readTime), s = e.key.path.popLast().toArray();\n if (e.isFoundDocument()) {\n const i = function(t, e) {\n return {\n name: ns(t, e.key),\n fields: e.data.value.mapValue.fields,\n updateTime: Jn(t, e.version.toTimestamp())\n };\n }(t.Ht, e), r = e.hasCommittedMutations;\n return new Bs(\n /* unknownDocument= */ null, \n /* noDocument= */ null, i, r, n, s);\n }\n if (e.isNoDocument()) {\n const t = e.key.path.toArray(), i = Ri(e.version), r = e.hasCommittedMutations;\n return new Bs(\n /* unknownDocument= */ null, new $s(t, i), \n /* document= */ null, r, n, s);\n }\n if (e.isUnknownDocument()) {\n const t = e.key.path.toArray(), i = Ri(e.version);\n return new Bs(new Fs(t, i), \n /* noDocument= */ null, \n /* document= */ null, \n /* hasCommittedMutations= */ !0, n, s);\n }\n return L();\n}\n\nfunction Ti(t) {\n const e = t.toTimestamp();\n return [ e.seconds, e.nanoseconds ];\n}\n\nfunction Ai(t) {\n const e = new ut(t[0], t[1]);\n return at.fromTimestamp(e);\n}\n\nfunction Ri(t) {\n const e = t.toTimestamp();\n return new Ns(e.seconds, e.nanoseconds);\n}\n\nfunction Pi(t) {\n const e = new ut(t.seconds, t.nanoseconds);\n return at.fromTimestamp(e);\n}\n\n/** Encodes a batch of mutations into a DbMutationBatch for local storage. */\n/** Decodes a DbMutationBatch into a MutationBatch */\nfunction bi(t, e) {\n const n = (e.baseMutations || []).map((e => ds(t.Ht, e)));\n // Squash old transform mutations into existing patch or set mutations.\n // The replacement of representing `transforms` with `update_transforms`\n // on the SDK means that old `transform` mutations stored in IndexedDB need\n // to be updated to `update_transforms`.\n // TODO(b/174608374): Remove this code once we perform a schema migration.\n for (let t = 0; t < e.mutations.length - 1; ++t) {\n const n = e.mutations[t];\n if (t + 1 < e.mutations.length && void 0 !== e.mutations[t + 1].transform) {\n const s = e.mutations[t + 1];\n n.updateTransforms = s.transform.fieldTransforms, e.mutations.splice(t + 1, 1), \n ++t;\n }\n }\n const s = e.mutations.map((e => ds(t.Ht, e))), i = ut.fromMillis(e.localWriteTimeMs);\n return new wi(e.batchId, i, n, s);\n}\n\n/** Decodes a DbTarget into TargetData */ function vi(t) {\n const e = Pi(t.readTime), n = void 0 !== t.lastLimboFreeSnapshotVersion ? Pi(t.lastLimboFreeSnapshotVersion) : at.min();\n let s;\n var i;\n return void 0 !== t.query.documents ? (U(1 === (i = t.query).documents.length), \n s = De(Ae(rs(i.documents[0])))) : s = function(t) {\n return De(gs(t));\n }(t.query), new yi(s, t.targetId, 0 /* Listen */ , t.lastListenSequenceNumber, e, n, pt.fromBase64String(t.resumeToken));\n}\n\n/** Encodes TargetData into a DbTarget for storage locally. */ function Vi(t, e) {\n const n = Ri(e.snapshotVersion), s = Ri(e.lastLimboFreeSnapshotVersion);\n let i;\n i = oe(e.target) ? ws(t.Ht, e.target) : ms(t.Ht, e.target);\n // We can't store the resumeToken as a ByteString in IndexedDb, so we\n // convert it to a base64 string for storage.\n const r = e.resumeToken.toBase64();\n // lastListenSequenceNumber is always 0 until we do real GC.\n return new Us(e.targetId, se(e.target), n, r, e.sequenceNumber, s, i);\n}\n\n/**\n * A helper function for figuring out what kind of query has been stored.\n */\n/**\n * Encodes a `BundledQuery` from bundle proto to a Query object.\n *\n * This reconstructs the original query used to build the bundle being loaded,\n * including features exists only in SDKs (for example: limit-to-last).\n */\nfunction Si(t) {\n const e = gs({\n parent: t.parent,\n structuredQuery: t.structuredQuery\n });\n return \"LAST\" === t.limitType ? Ce(e, e.limit, \"L\" /* Last */) : e;\n}\n\n/** Encodes a NamedQuery proto object to a NamedQuery model object. */\n/** Encodes a DbDocumentOverlay object to an Overlay model object. */\nfunction Di(t, e) {\n return new gi(e.largestBatchId, ds(t.Ht, e.overlayMutation));\n}\n\n/** Decodes an Overlay model object into a DbDocumentOverlay object. */\n/**\n * Returns the DbDocumentOverlayKey corresponding to the given user and\n * document key.\n */\nfunction Ci(t, e) {\n const n = e.path.lastSegment();\n return [ t, Vs(e.path.popLast()), n ];\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Ni {\n getBundleMetadata(t, e) {\n return xi(t).get(e).next((t => {\n if (t) return {\n id: (e = t).bundleId,\n createTime: Pi(e.createTime),\n version: e.version\n };\n /** Encodes a DbBundle to a BundleMetadata object. */\n var e;\n /** Encodes a BundleMetadata to a DbBundle. */ }));\n }\n saveBundleMetadata(t, e) {\n return xi(t).put({\n bundleId: (n = e).id,\n createTime: Ri(Zn(n.createTime)),\n version: n.version\n });\n var n;\n /** Encodes a DbNamedQuery to a NamedQuery. */ }\n getNamedQuery(t, e) {\n return ki(t).get(e).next((t => {\n if (t) return {\n name: (e = t).name,\n query: Si(e.bundledQuery),\n readTime: Pi(e.readTime)\n };\n var e;\n /** Encodes a NamedQuery from a bundle proto to a DbNamedQuery. */ }));\n }\n saveNamedQuery(t, e) {\n return ki(t).put(function(t) {\n return {\n name: t.name,\n readTime: Ri(Zn(t.readTime)),\n bundledQuery: t.bundledQuery\n };\n }(e));\n }\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the bundles object store.\n */ function xi(t) {\n return _i(t, Qs.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the namedQueries object store.\n */ function ki(t) {\n return _i(t, Ws.store);\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Implementation of DocumentOverlayCache using IndexedDb.\n */ class Oi {\n /**\n * @param serializer - The document serializer.\n * @param userId - The userId for which we are accessing overlays.\n */\n constructor(t, e) {\n this.O = t, this.userId = e;\n }\n static Jt(t, e) {\n const n = e.uid || \"\";\n return new Oi(t, n);\n }\n getOverlay(t, e) {\n return Mi(t).get(Ci(this.userId, e)).next((t => t ? Di(this.O, t) : null));\n }\n saveOverlays(t, e, n) {\n const s = [];\n return n.forEach((n => {\n const i = new gi(e, n);\n s.push(this.Yt(t, i));\n })), si.waitFor(s);\n }\n removeOverlaysForBatchId(t, e, n) {\n const s = new Set;\n // Get the set of unique collection paths.\n e.forEach((t => s.add(Vs(t.getCollectionPath()))));\n const i = [];\n return s.forEach((e => {\n const s = IDBKeyRange.bound([ this.userId, e, n ], [ this.userId, e, n + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n i.push(Mi(t).Gt(Ys.collectionPathOverlayIndex, s));\n })), si.waitFor(i);\n }\n getOverlaysForCollection(t, e, n) {\n const s = new Map, i = Vs(e), r = IDBKeyRange.bound([ this.userId, i, n ], [ this.userId, i, Number.POSITIVE_INFINITY ], \n /*lowerOpen=*/ !0);\n return Mi(t).qt(Ys.collectionPathOverlayIndex, r).next((t => {\n for (const e of t) {\n const t = Di(this.O, e);\n s.set(t.getKey(), t);\n }\n return s;\n }));\n }\n getOverlaysForCollectionGroup(t, e, n, s) {\n const i = new Map;\n let r;\n // We want batch IDs larger than `sinceBatchId`, and so the lower bound\n // is not inclusive.\n const o = IDBKeyRange.bound([ this.userId, e, n ], [ this.userId, e, Number.POSITIVE_INFINITY ], \n /*lowerOpen=*/ !0);\n return Mi(t).Qt({\n index: Ys.collectionGroupOverlayIndex,\n range: o\n }, ((t, e, n) => {\n // We do not want to return partial batch overlays, even if the size\n // of the result set exceeds the given `count` argument. Therefore, we\n // continue to aggregate results even after the result size exceeds\n // `count` if there are more overlays from the `currentBatchId`.\n const o = Di(this.O, e);\n i.size < s || o.largestBatchId === r ? (i.set(o.getKey(), o), r = o.largestBatchId) : n.done();\n })).next((() => i));\n }\n Yt(t, e) {\n return Mi(t).put(function(t, e, n) {\n const [s, i, r] = Ci(e, n.mutation.key);\n return new Ys(e, i, r, n.mutation.key.getCollectionGroup(), n.largestBatchId, fs(t.Ht, n.mutation));\n }(this.O, this.userId, e));\n }\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the document overlay object store.\n */ function Mi(t) {\n return _i(t, Ys.store);\n}\n\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Note: This code is copied from the backend. Code that is not used by\n// Firestore was removed.\n/** Firestore index value writer. */\nclass $i {\n constructor() {}\n // The write methods below short-circuit writing terminators for values\n // containing a (terminating) truncated value.\n // As an example, consider the resulting encoding for:\n // [\"bar\", [2, \"foo\"]] -> (STRING, \"bar\", TERM, ARRAY, NUMBER, 2, STRING, \"foo\", TERM, TERM, TERM)\n // [\"bar\", [2, truncated(\"foo\")]] -> (STRING, \"bar\", TERM, ARRAY, NUMBER, 2, STRING, \"foo\", TRUNC)\n // [\"bar\", truncated([\"foo\"])] -> (STRING, \"bar\", TERM, ARRAY. STRING, \"foo\", TERM, TRUNC)\n /** Writes an index value. */\n Xt(t, e) {\n this.Zt(t, e), \n // Write separator to split index values\n // (see go/firestore-storage-format#encodings).\n e.te();\n }\n Zt(t, e) {\n if (\"nullValue\" in t) this.ee(e, 5); else if (\"booleanValue\" in t) this.ee(e, 10), \n e.ne(t.booleanValue ? 1 : 0); else if (\"integerValue\" in t) this.ee(e, 15), e.ne(Tt(t.integerValue)); else if (\"doubleValue\" in t) {\n const n = Tt(t.doubleValue);\n isNaN(n) ? this.ee(e, 13) : (this.ee(e, 15), Dt(n) ? \n // -0.0, 0 and 0.0 are all considered the same\n e.ne(0) : e.ne(n));\n } else if (\"timestampValue\" in t) {\n const n = t.timestampValue;\n this.ee(e, 20), \"string\" == typeof n ? e.se(n) : (e.se(`${n.seconds || \"\"}`), e.ne(n.nanos || 0));\n } else if (\"stringValue\" in t) this.ie(t.stringValue, e), this.re(e); else if (\"bytesValue\" in t) this.ee(e, 30), \n e.oe(At(t.bytesValue)), this.re(e); else if (\"referenceValue\" in t) this.ce(t.referenceValue, e); else if (\"geoPointValue\" in t) {\n const n = t.geoPointValue;\n this.ee(e, 45), e.ne(n.latitude || 0), e.ne(n.longitude || 0);\n } else \"mapValue\" in t ? Ot(t, xt) ? this.ee(e, Number.MAX_SAFE_INTEGER) : (this.ue(t.mapValue, e), \n this.re(e)) : \"arrayValue\" in t ? (this.ae(t.arrayValue, e), this.re(e)) : L();\n }\n ie(t, e) {\n this.ee(e, 25), this.he(t, e);\n }\n he(t, e) {\n e.se(t);\n }\n ue(t, e) {\n const n = t.fields || {};\n this.ee(e, 55);\n for (const t of Object.keys(n)) this.ie(t, e), this.Zt(n[t], e);\n }\n ae(t, e) {\n const n = t.values || [];\n this.ee(e, 50);\n for (const t of n) this.Zt(t, e);\n }\n ce(t, e) {\n this.ee(e, 37);\n Nt.fromName(t).path.forEach((t => {\n this.ee(e, 60), this.he(t, e);\n }));\n }\n ee(t, e) {\n t.ne(e);\n }\n re(t) {\n // While the SDK does not implement truncation, the truncation marker is\n // used to terminate all variable length values (which are strings, bytes,\n // references, arrays and maps).\n t.ne(2);\n }\n}\n\n$i.le = new $i;\n\n/**\n * Counts the number of zeros in a byte.\n *\n * Visible for testing.\n */\nfunction Fi(t) {\n if (0 === t) return 8;\n let e = 0;\n return t >> 4 == 0 && (\n // Test if the first four bits are zero.\n e += 4, t <<= 4), t >> 6 == 0 && (\n // Test if the first two (or next two) bits are zero.\n e += 2, t <<= 2), t >> 7 == 0 && (\n // Test if the remaining bit is zero.\n e += 1), e;\n}\n\n/** Counts the number of leading zeros in the given byte array. */\n/**\n * Returns the number of bytes required to store \"value\". Leading zero bytes\n * are skipped.\n */\nfunction Bi(t) {\n // This is just the number of bytes for the unsigned representation of the number.\n const e = 64 - function(t) {\n let e = 0;\n for (let n = 0; n < 8; ++n) {\n const s = Fi(255 & t[n]);\n if (e += s, 8 !== s) break;\n }\n return e;\n }(t);\n return Math.ceil(e / 8);\n}\n\n/**\n * OrderedCodeWriter is a minimal-allocation implementation of the writing\n * behavior defined by the backend.\n *\n * The code is ported from its Java counterpart.\n */ class Li {\n constructor() {\n this.buffer = new Uint8Array(1024), this.position = 0;\n }\n fe(t) {\n const e = t[Symbol.iterator]();\n let n = e.next();\n for (;!n.done; ) this.de(n.value), n = e.next();\n this._e();\n }\n we(t) {\n const e = t[Symbol.iterator]();\n let n = e.next();\n for (;!n.done; ) this.me(n.value), n = e.next();\n this.ge();\n }\n /** Writes utf8 bytes into this byte sequence, ascending. */ ye(t) {\n for (const e of t) {\n const t = e.charCodeAt(0);\n if (t < 128) this.de(t); else if (t < 2048) this.de(960 | t >>> 6), this.de(128 | 63 & t); else if (e < \"\\ud800\" || \"\\udbff\" < e) this.de(480 | t >>> 12), \n this.de(128 | 63 & t >>> 6), this.de(128 | 63 & t); else {\n const t = e.codePointAt(0);\n this.de(240 | t >>> 18), this.de(128 | 63 & t >>> 12), this.de(128 | 63 & t >>> 6), \n this.de(128 | 63 & t);\n }\n }\n this._e();\n }\n /** Writes utf8 bytes into this byte sequence, descending */ pe(t) {\n for (const e of t) {\n const t = e.charCodeAt(0);\n if (t < 128) this.me(t); else if (t < 2048) this.me(960 | t >>> 6), this.me(128 | 63 & t); else if (e < \"\\ud800\" || \"\\udbff\" < e) this.me(480 | t >>> 12), \n this.me(128 | 63 & t >>> 6), this.me(128 | 63 & t); else {\n const t = e.codePointAt(0);\n this.me(240 | t >>> 18), this.me(128 | 63 & t >>> 12), this.me(128 | 63 & t >>> 6), \n this.me(128 | 63 & t);\n }\n }\n this.ge();\n }\n Ie(t) {\n // Values are encoded with a single byte length prefix, followed by the\n // actual value in big-endian format with leading 0 bytes dropped.\n const e = this.Ee(t), n = Bi(e);\n this.Te(1 + n), this.buffer[this.position++] = 255 & n;\n // Write the length\n for (let t = e.length - n; t < e.length; ++t) this.buffer[this.position++] = 255 & e[t];\n }\n Ae(t) {\n // Values are encoded with a single byte length prefix, followed by the\n // inverted value in big-endian format with leading 0 bytes dropped.\n const e = this.Ee(t), n = Bi(e);\n this.Te(1 + n), this.buffer[this.position++] = ~(255 & n);\n // Write the length\n for (let t = e.length - n; t < e.length; ++t) this.buffer[this.position++] = ~(255 & e[t]);\n }\n /**\n * Writes the \"infinity\" byte sequence that sorts after all other byte\n * sequences written in ascending order.\n */ Re() {\n this.Pe(255), this.Pe(255);\n }\n /**\n * Writes the \"infinity\" byte sequence that sorts before all other byte\n * sequences written in descending order.\n */ be() {\n this.ve(255), this.ve(255);\n }\n /**\n * Resets the buffer such that it is the same as when it was newly\n * constructed.\n */ reset() {\n this.position = 0;\n }\n seed(t) {\n this.Te(t.length), this.buffer.set(t, this.position), this.position += t.length;\n }\n /** Makes a copy of the encoded bytes in this buffer. */ Ve() {\n return this.buffer.slice(0, this.position);\n }\n /**\n * Encodes `val` into an encoding so that the order matches the IEEE 754\n * floating-point comparison results with the following exceptions:\n * -0.0 < 0.0\n * all non-NaN < NaN\n * NaN = NaN\n */ Ee(t) {\n const e = \n /** Converts a JavaScript number to a byte array (using big endian encoding). */\n function(t) {\n const e = new DataView(new ArrayBuffer(8));\n return e.setFloat64(0, t, /* littleEndian= */ !1), new Uint8Array(e.buffer);\n }(t), n = 0 != (128 & e[0]);\n // Check if the first bit is set. We use a bit mask since value[0] is\n // encoded as a number from 0 to 255.\n // Revert the two complement to get natural ordering\n e[0] ^= n ? 255 : 128;\n for (let t = 1; t < e.length; ++t) e[t] ^= n ? 255 : 0;\n return e;\n }\n /** Writes a single byte ascending to the buffer. */ de(t) {\n const e = 255 & t;\n 0 === e ? (this.Pe(0), this.Pe(255)) : 255 === e ? (this.Pe(255), this.Pe(0)) : this.Pe(e);\n }\n /** Writes a single byte descending to the buffer. */ me(t) {\n const e = 255 & t;\n 0 === e ? (this.ve(0), this.ve(255)) : 255 === e ? (this.ve(255), this.ve(0)) : this.ve(t);\n }\n _e() {\n this.Pe(0), this.Pe(1);\n }\n ge() {\n this.ve(0), this.ve(1);\n }\n Pe(t) {\n this.Te(1), this.buffer[this.position++] = t;\n }\n ve(t) {\n this.Te(1), this.buffer[this.position++] = ~t;\n }\n Te(t) {\n const e = t + this.position;\n if (e <= this.buffer.length) return;\n // Try doubling.\n let n = 2 * this.buffer.length;\n // Still not big enough? Just allocate the right size.\n n < e && (n = e);\n // Create the new buffer.\n const s = new Uint8Array(n);\n s.set(this.buffer), // copy old data\n this.buffer = s;\n }\n}\n\nclass Ui {\n constructor(t) {\n this.Se = t;\n }\n oe(t) {\n this.Se.fe(t);\n }\n se(t) {\n this.Se.ye(t);\n }\n ne(t) {\n this.Se.Ie(t);\n }\n te() {\n this.Se.Re();\n }\n}\n\nclass qi {\n constructor(t) {\n this.Se = t;\n }\n oe(t) {\n this.Se.we(t);\n }\n se(t) {\n this.Se.pe(t);\n }\n ne(t) {\n this.Se.Ae(t);\n }\n te() {\n this.Se.be();\n }\n}\n\n/**\n * Implements `DirectionalIndexByteEncoder` using `OrderedCodeWriter` for the\n * actual encoding.\n */ class Ki {\n constructor() {\n this.Se = new Li, this.De = new Ui(this.Se), this.Ce = new qi(this.Se);\n }\n seed(t) {\n this.Se.seed(t);\n }\n Ne(t) {\n return 0 /* ASCENDING */ === t ? this.De : this.Ce;\n }\n Ve() {\n return this.Se.Ve();\n }\n reset() {\n this.Se.reset();\n }\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Represents an index entry saved by the SDK in persisted storage. */ class Gi {\n constructor(t, e, n, s) {\n this.indexId = t, this.documentKey = e, this.arrayValue = n, this.directionalValue = s;\n }\n}\n\nfunction ji(t, e) {\n let n = t.indexId - e.indexId;\n return 0 !== n ? n : (n = Nt.comparator(t.documentKey, e.documentKey), 0 !== n ? n : (n = Qi(t.arrayValue, e.arrayValue), \n 0 !== n ? n : Qi(t.directionalValue, e.directionalValue)));\n}\n\nfunction Qi(t, e) {\n for (let n = 0; n < t.length && n < e.length; ++n) {\n const s = t[n] - e[n];\n if (0 !== s) return s;\n }\n return t.length - e.length;\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An in-memory implementation of IndexManager.\n */ class Wi {\n constructor() {\n this.xe = new zi;\n }\n addToCollectionParentIndex(t, e) {\n return this.xe.add(e), si.resolve();\n }\n getCollectionParents(t, e) {\n return si.resolve(this.xe.getEntries(e));\n }\n addFieldIndex(t, e) {\n // Field indices are not supported with memory persistence.\n return si.resolve();\n }\n deleteFieldIndex(t, e) {\n // Field indices are not supported with memory persistence.\n return si.resolve();\n }\n getDocumentsMatchingTarget(t, e, n) {\n // Field indices are not supported with memory persistence.\n return si.resolve(On());\n }\n getFieldIndex(t, e) {\n // Field indices are not supported with memory persistence.\n return si.resolve(null);\n }\n getFieldIndexes(t, e) {\n // Field indices are not supported with memory persistence.\n return si.resolve([]);\n }\n getNextCollectionGroupToUpdate(t) {\n // Field indices are not supported with memory persistence.\n return si.resolve(null);\n }\n updateCollectionGroup(t, e, n) {\n // Field indices are not supported with memory persistence.\n return si.resolve();\n }\n updateIndexEntries(t, e) {\n // Field indices are not supported with memory persistence.\n return si.resolve();\n }\n}\n\n/**\n * Internal implementation of the collection-parent index exposed by MemoryIndexManager.\n * Also used for in-memory caching by IndexedDbIndexManager and initial index population\n * in indexeddb_schema.ts\n */ class zi {\n constructor() {\n this.index = {};\n }\n // Returns false if the entry already existed.\n add(t) {\n const e = t.lastSegment(), n = t.popLast(), s = this.index[e] || new bn(_t.comparator), i = !s.has(n);\n return this.index[e] = s.add(n), i;\n }\n has(t) {\n const e = t.lastSegment(), n = t.popLast(), s = this.index[e];\n return s && s.has(n);\n }\n getEntries(t) {\n return (this.index[t] || new bn(_t.comparator)).toArray();\n }\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A persisted implementation of IndexManager.\n *\n * PORTING NOTE: Unlike iOS and Android, the Web SDK does not memoize index\n * data as it supports multi-tab access.\n */\nclass Hi {\n constructor(t) {\n this.user = t, \n /**\n * An in-memory copy of the index entries we've already written since the SDK\n * launched. Used to avoid re-writing the same entry repeatedly.\n *\n * This is *NOT* a complete cache of what's in persistence and so can never be\n * used to satisfy reads.\n */\n this.ke = new zi, this.uid = t.uid || \"\";\n }\n /**\n * Adds a new entry to the collection parent index.\n *\n * Repeated calls for the same collectionPath should be avoided within a\n * transaction as IndexedDbIndexManager only caches writes once a transaction\n * has been committed.\n */ addToCollectionParentIndex(t, e) {\n if (!this.ke.has(e)) {\n const n = e.lastSegment(), s = e.popLast();\n t.addOnCommittedListener((() => {\n // Add the collection to the in memory cache only if the transaction was\n // successfully committed.\n this.ke.add(e);\n }));\n const i = {\n collectionId: n,\n parent: Vs(s)\n };\n return Ji(t).put(i);\n }\n return si.resolve();\n }\n getCollectionParents(t, e) {\n const n = [], s = IDBKeyRange.bound([ e, \"\" ], [ ct(e), \"\" ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n return Ji(t).qt(s).next((t => {\n for (const s of t) {\n // This collectionId guard shouldn't be necessary (and isn't as long\n // as we're running in a real browser), but there's a bug in\n // indexeddbshim that breaks our range in our tests running in node:\n // https://github.com/axemclion/IndexedDBShim/issues/334\n if (s.collectionId !== e) break;\n n.push(Cs(s.parent));\n }\n return n;\n }));\n }\n addFieldIndex(t, e) {\n // TODO(indexing): Verify that the auto-incrementing index ID works in\n // Safari & Firefox.\n const n = Xi(t), s = function(t) {\n return new zs(t.indexId, t.collectionGroup, t.fields.map((t => [ t.fieldPath.canonicalString(), t.kind ])));\n }(e);\n // `indexId` is auto-populated by IndexedDb\n return delete s.indexId, n.add(s).next();\n }\n deleteFieldIndex(t, e) {\n const n = Xi(t), s = Zi(t), i = Yi(t);\n return n.delete(e.indexId).next((() => s.delete(IDBKeyRange.bound([ e.indexId ], [ e.indexId + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0)))).next((() => i.delete(IDBKeyRange.bound([ e.indexId ], [ e.indexId + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0))));\n }\n getDocumentsMatchingTarget(t, e, n) {\n // TODO(indexing): Implement\n return si.resolve(On());\n }\n getFieldIndex(t, e) {\n // TODO(indexing): Implement\n return si.resolve(null);\n }\n /**\n * Returns the byte encoded form of the directional values in the field index.\n * Returns `null` if the document does not have all fields specified in the\n * index.\n */ Oe(t, e) {\n const n = new Ki;\n for (const s of \n /** Returns all directional (ascending/descending) segments for this index. */\n function(t) {\n return t.fields.filter((t => 2 /* CONTAINS */ !== t.kind));\n }(t)) {\n const t = e.data.field(s.fieldPath);\n if (null == t) return null;\n const i = n.Ne(s.kind);\n $i.le.Xt(t, i);\n }\n return n.Ve();\n }\n /** Encodes a single value to the ascending index format. */ Me(t) {\n const e = new Ki;\n return $i.le.Xt(t, e.Ne(0 /* ASCENDING */)), e.Ve();\n }\n getFieldIndexes(t, e) {\n const n = Xi(t), s = Zi(t);\n return (e ? n.qt(zs.collectionGroupIndex, IDBKeyRange.bound(e, e)) : n.qt()).next((t => {\n const e = [];\n return si.forEach(t, (t => s.get([ t.indexId, this.uid ]).next((n => {\n e.push(function(t, e) {\n const n = e ? new Zt(e.sequenceNumber, new te(Pi(e.readTime), new Nt(Cs(e.documentKey)), e.largestBatchId)) : Zt.empty(), s = t.fields.map((([t, e]) => new Xt(mt.fromServerFormat(t), e)));\n return new Yt(t.indexId, t.collectionGroup, s, n);\n }(t, n));\n })))).next((() => e));\n }));\n }\n getNextCollectionGroupToUpdate(t) {\n return this.getFieldIndexes(t).next((t => 0 === t.length ? null : (t.sort(((t, e) => t.indexState.sequenceNumber - e.indexState.sequenceNumber)), \n t[0].collectionGroup)));\n }\n updateCollectionGroup(t, e, n) {\n const s = Xi(t), i = Zi(t);\n return this.$e(t).next((t => s.qt(zs.collectionGroupIndex, IDBKeyRange.bound(e, e)).next((e => si.forEach(e, (e => i.put(function(t, e, n, s) {\n return new Hs(t, e.uid || \"\", n, Ri(s.readTime), Vs(s.documentKey.path), s.largestBatchId);\n }(e.indexId, this.user, t, n))))))));\n }\n updateIndexEntries(t, e) {\n // Porting Note: `getFieldIndexes()` on Web does not cache index lookups as\n // it could be used across different IndexedDB transactions. As any cached\n // data might be invalidated by other multi-tab clients, we can only trust\n // data within a single IndexedDB transaction. We therefore add a cache\n // here.\n const n = new Map;\n return si.forEach(e, ((e, s) => {\n const i = n.get(e.collectionGroup);\n return (i ? si.resolve(i) : this.getFieldIndexes(t, e.collectionGroup)).next((i => (n.set(e.collectionGroup, i), \n si.forEach(i, (n => this.Fe(t, e, n).next((e => {\n const i = this.Be(s, n);\n return e.isEqual(i) ? si.resolve() : this.Le(t, s, e, i);\n })))))));\n }));\n }\n Ue(t, e, n) {\n return Yi(t).put(new Js(n.indexId, this.uid, n.arrayValue, n.directionalValue, Vs(e.key.path)));\n }\n qe(t, e, n) {\n return Yi(t).delete([ n.indexId, this.uid, n.arrayValue, n.directionalValue, Vs(e.key.path) ]);\n }\n Fe(t, e, n) {\n const s = Yi(t);\n let i = new bn(ji);\n return s.Qt({\n index: Js.documentKeyIndex,\n range: IDBKeyRange.only([ n.indexId, this.uid, Vs(e.path) ])\n }, ((t, s) => {\n i = i.add(new Gi(n.indexId, e, s.arrayValue, s.directionalValue));\n })).next((() => i));\n }\n /** Creates the index entries for the given document. */ Be(t, e) {\n let n = new bn(ji);\n const s = this.Oe(e, t);\n if (null == s) return n;\n const i = \n /** Returns the ArrayContains/ArrayContainsAny segment for this index. */\n function(t) {\n return t.fields.find((t => 2 /* CONTAINS */ === t.kind));\n }(e);\n if (null != i) {\n const r = t.data.field(i.fieldPath);\n if (Kt(r)) for (const i of r.arrayValue.values || []) n = n.add(new Gi(e.indexId, t.key, this.Me(i), s));\n } else n = n.add(new Gi(e.indexId, t.key, new Uint8Array, s));\n return n;\n }\n /**\n * Updates the index entries for the provided document by deleting entries\n * that are no longer referenced in `newEntries` and adding all newly added\n * entries.\n */ Le(t, e, n, s) {\n M(\"IndexedDbIndexManager\", \"Updating index entries for document '%s'\", e.key);\n const i = [];\n return function(t, e, n, s, i) {\n const r = t.getIterator(), o = e.getIterator();\n let c = Vn(r), u = Vn(o);\n // Walk through the two sets at the same time, using the ordering defined by\n // `comparator`.\n for (;c || u; ) {\n let t = !1, e = !1;\n if (c && u) {\n const s = n(c, u);\n s < 0 ? \n // The element was removed if the next element in our ordered\n // walkthrough is only in `before`.\n e = !0 : s > 0 && (\n // The element was added if the next element in our ordered walkthrough\n // is only in `after`.\n t = !0);\n } else null != c ? e = !0 : t = !0;\n t ? (s(u), u = Vn(o)) : e ? (i(c), c = Vn(r)) : (c = Vn(r), u = Vn(o));\n }\n }(n, s, ji, (\n /* onAdd= */ n => {\n i.push(this.Ue(t, e, n));\n }), (\n /* onRemove= */ n => {\n i.push(this.qe(t, e, n));\n })), si.waitFor(i);\n }\n $e(t) {\n let e = 1;\n return Zi(t).Qt({\n index: Hs.sequenceNumberIndex,\n reverse: !0,\n range: IDBKeyRange.upperBound([ this.uid, Number.MAX_SAFE_INTEGER ])\n }, ((t, n, s) => {\n s.done(), e = n.sequenceNumber + 1;\n })).next((() => e));\n }\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the collectionParents\n * document store.\n */ function Ji(t) {\n return _i(t, Gs.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the index entry object store.\n */ function Yi(t) {\n return _i(t, Js.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the index configuration object store.\n */ function Xi(t) {\n return _i(t, zs.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the index state object store.\n */ function Zi(t) {\n return _i(t, Hs.store);\n}\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const tr = {\n didRun: !1,\n sequenceNumbersCollected: 0,\n targetsRemoved: 0,\n documentsRemoved: 0\n};\n\nclass er {\n constructor(\n // When we attempt to collect, we will only do so if the cache size is greater than this\n // threshold. Passing `COLLECTION_DISABLED` here will cause collection to always be skipped.\n t, \n // The percentage of sequence numbers that we will attempt to collect\n e, \n // A cap on the total number of sequence numbers that will be collected. This prevents\n // us from collecting a huge number of sequence numbers if the cache has grown very large.\n n) {\n this.cacheSizeCollectionThreshold = t, this.percentileToCollect = e, this.maximumSequenceNumbersToCollect = n;\n }\n static withCacheSize(t) {\n return new er(t, er.DEFAULT_COLLECTION_PERCENTILE, er.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Delete a mutation batch and the associated document mutations.\n * @returns A PersistencePromise of the document mutations that were removed.\n */\nfunction nr(t, e, n) {\n const s = t.store(Os.store), i = t.store(Ms.store), r = [], o = IDBKeyRange.only(n.batchId);\n let c = 0;\n const u = s.Qt({\n range: o\n }, ((t, e, n) => (c++, n.delete())));\n r.push(u.next((() => {\n U(1 === c);\n })));\n const a = [];\n for (const t of n.mutations) {\n const s = Ms.key(e, t.key.path, n.batchId);\n r.push(i.delete(s)), a.push(t.key);\n }\n return si.waitFor(r).next((() => a));\n}\n\n/**\n * Returns an approximate size for the given document.\n */ function sr(t) {\n if (!t) return 0;\n let e;\n if (t.document) e = t.document; else if (t.unknownDocument) e = t.unknownDocument; else {\n if (!t.noDocument) throw L();\n e = t.noDocument;\n }\n return JSON.stringify(e).length;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** A mutation queue for a specific user, backed by IndexedDB. */ er.DEFAULT_COLLECTION_PERCENTILE = 10, \ner.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT = 1e3, er.DEFAULT = new er(41943040, er.DEFAULT_COLLECTION_PERCENTILE, er.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT), \ner.DISABLED = new er(-1, 0, 0);\n\nclass ir {\n constructor(\n /**\n * The normalized userId (e.g. null UID => \"\" userId) used to store /\n * retrieve mutations.\n */\n t, e, n, s) {\n this.userId = t, this.O = e, this.indexManager = n, this.referenceDelegate = s, \n /**\n * Caches the document keys for pending mutation batches. If the mutation\n * has been removed from IndexedDb, the cached value may continue to\n * be used to retrieve the batch's document keys. To remove a cached value\n * locally, `removeCachedMutationKeys()` should be invoked either directly\n * or through `removeMutationBatches()`.\n *\n * With multi-tab, when the primary client acknowledges or rejects a mutation,\n * this cache is used by secondary clients to invalidate the local\n * view of the documents that were previously affected by the mutation.\n */\n // PORTING NOTE: Multi-tab only.\n this.Ke = {};\n }\n /**\n * Creates a new mutation queue for the given user.\n * @param user - The user for which to create a mutation queue.\n * @param serializer - The serializer to use when persisting to IndexedDb.\n */ static Jt(t, e, n, s) {\n // TODO(mcg): Figure out what constraints there are on userIDs\n // In particular, are there any reserved characters? are empty ids allowed?\n // For the moment store these together in the same mutations table assuming\n // that empty userIDs aren't allowed.\n U(\"\" !== t.uid);\n const i = t.isAuthenticated() ? t.uid : \"\";\n return new ir(i, e, n, s);\n }\n checkEmpty(t) {\n let e = !0;\n const n = IDBKeyRange.bound([ this.userId, Number.NEGATIVE_INFINITY ], [ this.userId, Number.POSITIVE_INFINITY ]);\n return or(t).Qt({\n index: Os.userMutationsIndex,\n range: n\n }, ((t, n, s) => {\n e = !1, s.done();\n })).next((() => e));\n }\n addMutationBatch(t, e, n, s) {\n const i = cr(t), r = or(t);\n // The IndexedDb implementation in Chrome (and Firefox) does not handle\n // compound indices that include auto-generated keys correctly. To ensure\n // that the index entry is added correctly in all browsers, we perform two\n // writes: The first write is used to retrieve the next auto-generated Batch\n // ID, and the second write populates the index and stores the actual\n // mutation batch.\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=701972\n // We write an empty object to obtain key\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return r.add({}).next((o => {\n U(\"number\" == typeof o);\n const c = new wi(o, e, n, s), u = function(t, e, n) {\n const s = n.baseMutations.map((e => fs(t.Ht, e))), i = n.mutations.map((e => fs(t.Ht, e)));\n return new Os(e, n.batchId, n.localWriteTime.toMillis(), s, i);\n }(this.O, this.userId, c), a = [];\n let h = new bn(((t, e) => rt(t.canonicalString(), e.canonicalString())));\n for (const t of s) {\n const e = Ms.key(this.userId, t.key.path, o);\n h = h.add(t.key.path.popLast()), a.push(r.put(u)), a.push(i.put(e, Ms.PLACEHOLDER));\n }\n return h.forEach((e => {\n a.push(this.indexManager.addToCollectionParentIndex(t, e));\n })), t.addOnCommittedListener((() => {\n this.Ke[o] = c.keys();\n })), si.waitFor(a).next((() => c));\n }));\n }\n lookupMutationBatch(t, e) {\n return or(t).get(e).next((t => t ? (U(t.userId === this.userId), bi(this.O, t)) : null));\n }\n /**\n * Returns the document keys for the mutation batch with the given batchId.\n * For primary clients, this method returns `null` after\n * `removeMutationBatches()` has been called. Secondary clients return a\n * cached result until `removeCachedMutationKeys()` is invoked.\n */\n // PORTING NOTE: Multi-tab only.\n Ge(t, e) {\n return this.Ke[e] ? si.resolve(this.Ke[e]) : this.lookupMutationBatch(t, e).next((t => {\n if (t) {\n const n = t.keys();\n return this.Ke[e] = n, n;\n }\n return null;\n }));\n }\n getNextMutationBatchAfterBatchId(t, e) {\n const n = e + 1, s = IDBKeyRange.lowerBound([ this.userId, n ]);\n let i = null;\n return or(t).Qt({\n index: Os.userMutationsIndex,\n range: s\n }, ((t, e, s) => {\n e.userId === this.userId && (U(e.batchId >= n), i = bi(this.O, e)), s.done();\n })).next((() => i));\n }\n getHighestUnacknowledgedBatchId(t) {\n const e = IDBKeyRange.upperBound([ this.userId, Number.POSITIVE_INFINITY ]);\n let n = -1;\n return or(t).Qt({\n index: Os.userMutationsIndex,\n range: e,\n reverse: !0\n }, ((t, e, s) => {\n n = e.batchId, s.done();\n })).next((() => n));\n }\n getAllMutationBatches(t) {\n const e = IDBKeyRange.bound([ this.userId, -1 ], [ this.userId, Number.POSITIVE_INFINITY ]);\n return or(t).qt(Os.userMutationsIndex, e).next((t => t.map((t => bi(this.O, t)))));\n }\n getAllMutationBatchesAffectingDocumentKey(t, e) {\n // Scan the document-mutation index starting with a prefix starting with\n // the given documentKey.\n const n = Ms.prefixForPath(this.userId, e.path), s = IDBKeyRange.lowerBound(n), i = [];\n return cr(t).Qt({\n range: s\n }, ((n, s, r) => {\n const [o, c, u] = n, a = Cs(c);\n // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n if (o === this.userId && e.path.isEqual(a)) \n // Look up the mutation batch in the store.\n return or(t).get(u).next((t => {\n if (!t) throw L();\n U(t.userId === this.userId), i.push(bi(this.O, t));\n }));\n r.done();\n })).next((() => i));\n }\n getAllMutationBatchesAffectingDocumentKeys(t, e) {\n let n = new bn(rt);\n const s = [];\n return e.forEach((e => {\n const i = Ms.prefixForPath(this.userId, e.path), r = IDBKeyRange.lowerBound(i), o = cr(t).Qt({\n range: r\n }, ((t, s, i) => {\n const [r, o, c] = t, u = Cs(o);\n // Only consider rows matching exactly the specific key of\n // interest. Note that because we order by path first, and we\n // order terminators before path separators, we'll encounter all\n // the index rows for documentKey contiguously. In particular, all\n // the rows for documentKey will occur before any rows for\n // documents nested in a subcollection beneath documentKey so we\n // can stop as soon as we hit any such row.\n r === this.userId && e.path.isEqual(u) ? n = n.add(c) : i.done();\n }));\n s.push(o);\n })), si.waitFor(s).next((() => this.je(t, n)));\n }\n getAllMutationBatchesAffectingQuery(t, e) {\n const n = e.path, s = n.length + 1, i = Ms.prefixForPath(this.userId, n), r = IDBKeyRange.lowerBound(i);\n // Collect up unique batchIDs encountered during a scan of the index. Use a\n // SortedSet to accumulate batch IDs so they can be traversed in order in a\n // scan of the main table.\n let o = new bn(rt);\n return cr(t).Qt({\n range: r\n }, ((t, e, i) => {\n const [r, c, u] = t, a = Cs(c);\n r === this.userId && n.isPrefixOf(a) ? \n // Rows with document keys more than one segment longer than the\n // query path can't be matches. For example, a query on 'rooms'\n // can't match the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n a.length === s && (o = o.add(u)) : i.done();\n })).next((() => this.je(t, o)));\n }\n je(t, e) {\n const n = [], s = [];\n // TODO(rockwood): Implement this using iterate.\n return e.forEach((e => {\n s.push(or(t).get(e).next((t => {\n if (null === t) throw L();\n U(t.userId === this.userId), n.push(bi(this.O, t));\n })));\n })), si.waitFor(s).next((() => n));\n }\n removeMutationBatch(t, e) {\n return nr(t.zt, this.userId, e).next((n => (t.addOnCommittedListener((() => {\n this.Qe(e.batchId);\n })), si.forEach(n, (e => this.referenceDelegate.markPotentiallyOrphaned(t, e))))));\n }\n /**\n * Clears the cached keys for a mutation batch. This method should be\n * called by secondary clients after they process mutation updates.\n *\n * Note that this method does not have to be called from primary clients as\n * the corresponding cache entries are cleared when an acknowledged or\n * rejected batch is removed from the mutation queue.\n */\n // PORTING NOTE: Multi-tab only\n Qe(t) {\n delete this.Ke[t];\n }\n performConsistencyCheck(t) {\n return this.checkEmpty(t).next((e => {\n if (!e) return si.resolve();\n // Verify that there are no entries in the documentMutations index if\n // the queue is empty.\n const n = IDBKeyRange.lowerBound(Ms.prefixForUser(this.userId)), s = [];\n return cr(t).Qt({\n range: n\n }, ((t, e, n) => {\n if (t[0] === this.userId) {\n const e = Cs(t[1]);\n s.push(e);\n } else n.done();\n })).next((() => {\n U(0 === s.length);\n }));\n }));\n }\n containsKey(t, e) {\n return rr(t, this.userId, e);\n }\n // PORTING NOTE: Multi-tab only (state is held in memory in other clients).\n /** Returns the mutation queue's metadata from IndexedDb. */\n We(t) {\n return ur(t).get(this.userId).next((t => t || new ks(this.userId, -1, \n /*lastStreamToken=*/ \"\")));\n }\n}\n\n/**\n * @returns true if the mutation queue for the given user contains a pending\n * mutation for the given key.\n */ function rr(t, e, n) {\n const s = Ms.prefixForPath(e, n.path), i = s[1], r = IDBKeyRange.lowerBound(s);\n let o = !1;\n return cr(t).Qt({\n range: r,\n jt: !0\n }, ((t, n, s) => {\n const [r, c, /*batchID*/ u] = t;\n r === e && c === i && (o = !0), s.done();\n })).next((() => o));\n}\n\n/** Returns true if any mutation queue contains the given document. */\n/**\n * Helper to get a typed SimpleDbStore for the mutations object store.\n */\nfunction or(t) {\n return _i(t, Os.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */ function cr(t) {\n return _i(t, Ms.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the mutationQueues object store.\n */ function ur(t) {\n return _i(t, ks.store);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Offset to ensure non-overlapping target ids. */\n/**\n * Generates monotonically increasing target IDs for sending targets to the\n * watch stream.\n *\n * The client constructs two generators, one for the target cache, and one for\n * for the sync engine (to generate limbo documents targets). These\n * generators produce non-overlapping IDs (by using even and odd IDs\n * respectively).\n *\n * By separating the target ID space, the query cache can generate target IDs\n * that persist across client restarts, while sync engine can independently\n * generate in-memory target IDs that are transient and can be reused after a\n * restart.\n */\nclass ar {\n constructor(t) {\n this.ze = t;\n }\n next() {\n return this.ze += 2, this.ze;\n }\n static He() {\n // The target cache generator must return '2' in its first call to `next()`\n // as there is no differentiation in the protocol layer between an unset\n // number and the number '0'. If we were to sent a target with target ID\n // '0', the backend would consider it unset and replace it with its own ID.\n return new ar(0);\n }\n static Je() {\n // Sync engine assigns target IDs for limbo document detection.\n return new ar(-1);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class hr {\n constructor(t, e) {\n this.referenceDelegate = t, this.O = e;\n }\n // PORTING NOTE: We don't cache global metadata for the target cache, since\n // some of it (in particular `highestTargetId`) can be modified by secondary\n // tabs. We could perhaps be more granular (and e.g. still cache\n // `lastRemoteSnapshotVersion` in memory) but for simplicity we currently go\n // to IndexedDb whenever we need to read metadata. We can revisit if it turns\n // out to have a meaningful performance impact.\n allocateTargetId(t) {\n return this.Ye(t).next((e => {\n const n = new ar(e.highestTargetId);\n return e.highestTargetId = n.next(), this.Xe(t, e).next((() => e.highestTargetId));\n }));\n }\n getLastRemoteSnapshotVersion(t) {\n return this.Ye(t).next((t => at.fromTimestamp(new ut(t.lastRemoteSnapshotVersion.seconds, t.lastRemoteSnapshotVersion.nanoseconds))));\n }\n getHighestSequenceNumber(t) {\n return this.Ye(t).next((t => t.highestListenSequenceNumber));\n }\n setTargetsMetadata(t, e, n) {\n return this.Ye(t).next((s => (s.highestListenSequenceNumber = e, n && (s.lastRemoteSnapshotVersion = n.toTimestamp()), \n e > s.highestListenSequenceNumber && (s.highestListenSequenceNumber = e), this.Xe(t, s))));\n }\n addTargetData(t, e) {\n return this.Ze(t, e).next((() => this.Ye(t).next((n => (n.targetCount += 1, this.tn(e, n), \n this.Xe(t, n))))));\n }\n updateTargetData(t, e) {\n return this.Ze(t, e);\n }\n removeTargetData(t, e) {\n return this.removeMatchingKeysForTargetId(t, e.targetId).next((() => lr(t).delete(e.targetId))).next((() => this.Ye(t))).next((e => (U(e.targetCount > 0), \n e.targetCount -= 1, this.Xe(t, e))));\n }\n /**\n * Drops any targets with sequence number less than or equal to the upper bound, excepting those\n * present in `activeTargetIds`. Document associations for the removed targets are also removed.\n * Returns the number of targets removed.\n */ removeTargets(t, e, n) {\n let s = 0;\n const i = [];\n return lr(t).Qt(((r, o) => {\n const c = vi(o);\n c.sequenceNumber <= e && null === n.get(c.targetId) && (s++, i.push(this.removeTargetData(t, c)));\n })).next((() => si.waitFor(i))).next((() => s));\n }\n /**\n * Call provided function with each `TargetData` that we have cached.\n */ forEachTarget(t, e) {\n return lr(t).Qt(((t, n) => {\n const s = vi(n);\n e(s);\n }));\n }\n Ye(t) {\n return fr(t).get(Ks.key).next((t => (U(null !== t), t)));\n }\n Xe(t, e) {\n return fr(t).put(Ks.key, e);\n }\n Ze(t, e) {\n return lr(t).put(Vi(this.O, e));\n }\n /**\n * In-place updates the provided metadata to account for values in the given\n * TargetData. Saving is done separately. Returns true if there were any\n * changes to the metadata.\n */ tn(t, e) {\n let n = !1;\n return t.targetId > e.highestTargetId && (e.highestTargetId = t.targetId, n = !0), \n t.sequenceNumber > e.highestListenSequenceNumber && (e.highestListenSequenceNumber = t.sequenceNumber, \n n = !0), n;\n }\n getTargetCount(t) {\n return this.Ye(t).next((t => t.targetCount));\n }\n getTargetData(t, e) {\n // Iterating by the canonicalId may yield more than one result because\n // canonicalId values are not required to be unique per target. This query\n // depends on the queryTargets index to be efficient.\n const n = se(e), s = IDBKeyRange.bound([ n, Number.NEGATIVE_INFINITY ], [ n, Number.POSITIVE_INFINITY ]);\n let i = null;\n return lr(t).Qt({\n range: s,\n index: Us.queryTargetsIndexName\n }, ((t, n, s) => {\n const r = vi(n);\n // After finding a potential match, check that the target is\n // actually equal to the requested target.\n re(e, r.target) && (i = r, s.done());\n })).next((() => i));\n }\n addMatchingKeys(t, e, n) {\n // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n const s = [], i = dr(t);\n return e.forEach((e => {\n const r = Vs(e.path);\n s.push(i.put(new qs(n, r))), s.push(this.referenceDelegate.addReference(t, n, e));\n })), si.waitFor(s);\n }\n removeMatchingKeys(t, e, n) {\n // PORTING NOTE: The reverse index (documentsTargets) is maintained by\n // IndexedDb.\n const s = dr(t);\n return si.forEach(e, (e => {\n const i = Vs(e.path);\n return si.waitFor([ s.delete([ n, i ]), this.referenceDelegate.removeReference(t, n, e) ]);\n }));\n }\n removeMatchingKeysForTargetId(t, e) {\n const n = dr(t), s = IDBKeyRange.bound([ e ], [ e + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n return n.delete(s);\n }\n getMatchingKeysForTargetId(t, e) {\n const n = IDBKeyRange.bound([ e ], [ e + 1 ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0), s = dr(t);\n let i = On();\n return s.Qt({\n range: n,\n jt: !0\n }, ((t, e, n) => {\n const s = Cs(t[1]), r = new Nt(s);\n i = i.add(r);\n })).next((() => i));\n }\n containsKey(t, e) {\n const n = Vs(e.path), s = IDBKeyRange.bound([ n ], [ ct(n) ], \n /*lowerOpen=*/ !1, \n /*upperOpen=*/ !0);\n let i = 0;\n return dr(t).Qt({\n index: qs.documentTargetsIndex,\n jt: !0,\n range: s\n }, (([t, e], n, s) => {\n // Having a sentinel row for a document does not count as containing that document;\n // For the target cache, containing the document means the document is part of some\n // target.\n 0 !== t && (i++, s.done());\n })).next((() => i > 0));\n }\n /**\n * Looks up a TargetData entry by target ID.\n *\n * @param targetId - The target ID of the TargetData entry to look up.\n * @returns The cached TargetData entry, or null if the cache has no entry for\n * the target.\n */\n // PORTING NOTE: Multi-tab only.\n Tt(t, e) {\n return lr(t).get(e).next((t => t ? vi(t) : null));\n }\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the queries object store.\n */ function lr(t) {\n return _i(t, Us.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the target globals object store.\n */ function fr(t) {\n return _i(t, Ks.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the document target object store.\n */ function dr(t) {\n return _i(t, qs.store);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Verifies the error thrown by a LocalStore operation. If a LocalStore\n * operation fails because the primary lease has been taken by another client,\n * we ignore the error (the persistence layer will immediately call\n * `applyPrimaryLease` to propagate the primary state change). All other errors\n * are re-thrown.\n *\n * @param err - An error returned by a LocalStore operation.\n * @returns A Promise that resolves after we recovered, or the original error.\n */ async function _r(t) {\n if (t.code !== G.FAILED_PRECONDITION || t.message !== ei) throw t;\n M(\"LocalStore\", \"Unexpectedly lost primary lease\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function wr([t, e], [n, s]) {\n const i = rt(t, n);\n return 0 === i ? rt(e, s) : i;\n}\n\n/**\n * Used to calculate the nth sequence number. Keeps a rolling buffer of the\n * lowest n values passed to `addElement`, and finally reports the largest of\n * them in `maxValue`.\n */ class mr {\n constructor(t) {\n this.en = t, this.buffer = new bn(wr), this.nn = 0;\n }\n sn() {\n return ++this.nn;\n }\n rn(t) {\n const e = [ t, this.sn() ];\n if (this.buffer.size < this.en) this.buffer = this.buffer.add(e); else {\n const t = this.buffer.last();\n wr(e, t) < 0 && (this.buffer = this.buffer.delete(t).add(e));\n }\n }\n get maxValue() {\n // Guaranteed to be non-empty. If we decide we are not collecting any\n // sequence numbers, nthSequenceNumber below short-circuits. If we have\n // decided that we are collecting n sequence numbers, it's because n is some\n // percentage of the existing sequence numbers. That means we should never\n // be in a situation where we are collecting sequence numbers but don't\n // actually have any.\n return this.buffer.last()[0];\n }\n}\n\n/**\n * This class is responsible for the scheduling of LRU garbage collection. It handles checking\n * whether or not GC is enabled, as well as which delay to use before the next run.\n */ class gr {\n constructor(t, e) {\n this.garbageCollector = t, this.asyncQueue = e, this.on = !1, this.cn = null;\n }\n start(t) {\n -1 !== this.garbageCollector.params.cacheSizeCollectionThreshold && this.un(t);\n }\n stop() {\n this.cn && (this.cn.cancel(), this.cn = null);\n }\n get started() {\n return null !== this.cn;\n }\n un(t) {\n const e = this.on ? 3e5 : 6e4;\n M(\"LruGarbageCollector\", `Garbage collection scheduled in ${e}ms`), this.cn = this.asyncQueue.enqueueAfterDelay(\"lru_garbage_collection\" /* LruGarbageCollection */ , e, (async () => {\n this.cn = null, this.on = !0;\n try {\n await t.collectGarbage(this.garbageCollector);\n } catch (t) {\n ui(t) ? M(\"LruGarbageCollector\", \"Ignoring IndexedDB error during garbage collection: \", t) : await _r(t);\n }\n await this.un(t);\n }));\n }\n}\n\n/** Implements the steps for LRU garbage collection. */ class yr {\n constructor(t, e) {\n this.an = t, this.params = e;\n }\n calculateTargetCount(t, e) {\n return this.an.hn(t).next((t => Math.floor(e / 100 * t)));\n }\n nthSequenceNumber(t, e) {\n if (0 === e) return si.resolve(nt.A);\n const n = new mr(e);\n return this.an.forEachTarget(t, (t => n.rn(t.sequenceNumber))).next((() => this.an.ln(t, (t => n.rn(t))))).next((() => n.maxValue));\n }\n removeTargets(t, e, n) {\n return this.an.removeTargets(t, e, n);\n }\n removeOrphanedDocuments(t, e) {\n return this.an.removeOrphanedDocuments(t, e);\n }\n collect(t, e) {\n return -1 === this.params.cacheSizeCollectionThreshold ? (M(\"LruGarbageCollector\", \"Garbage collection skipped; disabled\"), \n si.resolve(tr)) : this.getCacheSize(t).next((n => n < this.params.cacheSizeCollectionThreshold ? (M(\"LruGarbageCollector\", `Garbage collection skipped; Cache size ${n} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`), \n tr) : this.fn(t, e)));\n }\n getCacheSize(t) {\n return this.an.getCacheSize(t);\n }\n fn(t, e) {\n let n, s, i, r, o, u, a;\n const h = Date.now();\n return this.calculateTargetCount(t, this.params.percentileToCollect).next((e => (\n // Cap at the configured max\n e > this.params.maximumSequenceNumbersToCollect ? (M(\"LruGarbageCollector\", `Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from ${e}`), \n s = this.params.maximumSequenceNumbersToCollect) : s = e, r = Date.now(), this.nthSequenceNumber(t, s)))).next((s => (n = s, \n o = Date.now(), this.removeTargets(t, n, e)))).next((e => (i = e, u = Date.now(), \n this.removeOrphanedDocuments(t, n)))).next((t => {\n if (a = Date.now(), k() <= LogLevel.DEBUG) {\n M(\"LruGarbageCollector\", `LRU Garbage Collection\\n\\tCounted targets in ${r - h}ms\\n\\tDetermined least recently used ${s} in ` + (o - r) + \"ms\\n\" + `\\tRemoved ${i} targets in ` + (u - o) + \"ms\\n\" + `\\tRemoved ${t} documents in ` + (a - u) + \"ms\\n\" + `Total Duration: ${a - h}ms`);\n }\n return si.resolve({\n didRun: !0,\n sequenceNumbersCollected: s,\n targetsRemoved: i,\n documentsRemoved: t\n });\n }));\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Provides LRU functionality for IndexedDB persistence. */\nclass pr {\n constructor(t, e) {\n this.db = t, this.garbageCollector = function(t, e) {\n return new yr(t, e);\n }(this, e);\n }\n hn(t) {\n const e = this.dn(t);\n return this.db.getTargetCache().getTargetCount(t).next((t => e.next((e => t + e))));\n }\n dn(t) {\n let e = 0;\n return this.ln(t, (t => {\n e++;\n })).next((() => e));\n }\n forEachTarget(t, e) {\n return this.db.getTargetCache().forEachTarget(t, e);\n }\n ln(t, e) {\n return this._n(t, ((t, n) => e(n)));\n }\n addReference(t, e, n) {\n return Ir(t, n);\n }\n removeReference(t, e, n) {\n return Ir(t, n);\n }\n removeTargets(t, e, n) {\n return this.db.getTargetCache().removeTargets(t, e, n);\n }\n markPotentiallyOrphaned(t, e) {\n return Ir(t, e);\n }\n /**\n * Returns true if anything would prevent this document from being garbage\n * collected, given that the document in question is not present in any\n * targets and has a sequence number less than or equal to the upper bound for\n * the collection run.\n */ wn(t, e) {\n return function(t, e) {\n let n = !1;\n return ur(t).Wt((s => rr(t, s, e).next((t => (t && (n = !0), si.resolve(!t)))))).next((() => n));\n }(t, e);\n }\n removeOrphanedDocuments(t, e) {\n const n = this.db.getRemoteDocumentCache().newChangeBuffer(), s = [];\n let i = 0;\n return this._n(t, ((r, o) => {\n if (o <= e) {\n const e = this.wn(t, r).next((e => {\n if (!e) \n // Our size accounting requires us to read all documents before\n // removing them.\n return i++, n.getEntry(t, r).next((() => (n.removeEntry(r, at.min()), dr(t).delete([ 0, Vs(r.path) ]))));\n }));\n s.push(e);\n }\n })).next((() => si.waitFor(s))).next((() => n.apply(t))).next((() => i));\n }\n removeTarget(t, e) {\n const n = e.withSequenceNumber(t.currentSequenceNumber);\n return this.db.getTargetCache().updateTargetData(t, n);\n }\n updateLimboDocument(t, e) {\n return Ir(t, e);\n }\n /**\n * Call provided function for each document in the cache that is 'orphaned'. Orphaned\n * means not a part of any target, so the only entry in the target-document index for\n * that document will be the sentinel row (targetId 0), which will also have the sequence\n * number for the last time the document was accessed.\n */ _n(t, e) {\n const n = dr(t);\n let s, i = nt.A;\n return n.Qt({\n index: qs.documentTargetsIndex\n }, (([t, n], {path: r, sequenceNumber: o}) => {\n 0 === t ? (\n // if nextToReport is valid, report it, this is a new key so the\n // last one must not be a member of any targets.\n i !== nt.A && e(new Nt(Cs(s)), i), \n // set nextToReport to be this sequence number. It's the next one we\n // might report, if we don't find any targets for this document.\n // Note that the sequence number must be defined when the targetId\n // is 0.\n i = o, s = r) : \n // set nextToReport to be invalid, we know we don't need to report\n // this one since we found a target for it.\n i = nt.A;\n })).next((() => {\n // Since we report sequence numbers after getting to the next key, we\n // need to check if the last key we iterated over was an orphaned\n // document and report it.\n i !== nt.A && e(new Nt(Cs(s)), i);\n }));\n }\n getCacheSize(t) {\n return this.db.getRemoteDocumentCache().getSize(t);\n }\n}\n\nfunction Ir(t, e) {\n return dr(t).put(\n /**\n * @returns A value suitable for writing a sentinel row in the target-document\n * store.\n */\n function(t, e) {\n return new qs(0, Vs(t.path), e);\n }(e, t.currentSequenceNumber));\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A map implementation that uses objects as keys. Objects must have an\n * associated equals function and must be immutable. Entries in the map are\n * stored together with the key being produced from the mapKeyFn. This map\n * automatically handles collisions of keys.\n */ class Er {\n constructor(t, e) {\n this.mapKeyFn = t, this.equalsFn = e, \n /**\n * The inner map for a key/value pair. Due to the possibility of collisions we\n * keep a list of entries that we do a linear search through to find an actual\n * match. Note that collisions should be rare, so we still expect near\n * constant time lookups in practice.\n */\n this.inner = {};\n }\n /** Get a value for this key, or undefined if it does not exist. */ get(t) {\n const e = this.mapKeyFn(t), n = this.inner[e];\n if (void 0 !== n) for (const [e, s] of n) if (this.equalsFn(e, t)) return s;\n }\n has(t) {\n return void 0 !== this.get(t);\n }\n /** Put this key and value in the map. */ set(t, e) {\n const n = this.mapKeyFn(t), s = this.inner[n];\n if (void 0 !== s) {\n for (let n = 0; n < s.length; n++) if (this.equalsFn(s[n][0], t)) return void (s[n] = [ t, e ]);\n s.push([ t, e ]);\n } else this.inner[n] = [ [ t, e ] ];\n }\n /**\n * Remove this key from the map. Returns a boolean if anything was deleted.\n */ delete(t) {\n const e = this.mapKeyFn(t), n = this.inner[e];\n if (void 0 === n) return !1;\n for (let s = 0; s < n.length; s++) if (this.equalsFn(n[s][0], t)) return 1 === n.length ? delete this.inner[e] : n.splice(s, 1), \n !0;\n return !1;\n }\n forEach(t) {\n lt(this.inner, ((e, n) => {\n for (const [e, s] of n) t(e, s);\n }));\n }\n isEmpty() {\n return ft(this.inner);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An in-memory buffer of entries to be written to a RemoteDocumentCache.\n * It can be used to batch up a set of changes to be written to the cache, but\n * additionally supports reading entries back with the `getEntry()` method,\n * falling back to the underlying RemoteDocumentCache if no entry is\n * buffered.\n *\n * Entries added to the cache *must* be read first. This is to facilitate\n * calculating the size delta of the pending changes.\n *\n * PORTING NOTE: This class was implemented then removed from other platforms.\n * If byte-counting ends up being needed on the other platforms, consider\n * porting this class as part of that implementation work.\n */ class Tr {\n constructor() {\n // A mapping of document key to the new cache entry that should be written.\n this.changes = new Er((t => t.toString()), ((t, e) => t.isEqual(e))), this.changesApplied = !1;\n }\n /**\n * Buffers a `RemoteDocumentCache.addEntry()` call.\n *\n * You can only modify documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */ addEntry(t) {\n this.assertNotApplied(), this.changes.set(t.key, t);\n }\n /**\n * Buffers a `RemoteDocumentCache.removeEntry()` call.\n *\n * You can only remove documents that have already been retrieved via\n * `getEntry()/getEntries()` (enforced via IndexedDbs `apply()`).\n */ removeEntry(t, e) {\n this.assertNotApplied(), this.changes.set(t, Jt.newInvalidDocument(t).setReadTime(e));\n }\n /**\n * Looks up an entry in the cache. The buffered changes will first be checked,\n * and if no buffered change applies, this will forward to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction - The transaction in which to perform any persistence\n * operations.\n * @param documentKey - The key of the entry to look up.\n * @returns The cached document or an invalid document if we have nothing\n * cached.\n */ getEntry(t, e) {\n this.assertNotApplied();\n const n = this.changes.get(e);\n return void 0 !== n ? si.resolve(n) : this.getFromCache(t, e);\n }\n /**\n * Looks up several entries in the cache, forwarding to\n * `RemoteDocumentCache.getEntry()`.\n *\n * @param transaction - The transaction in which to perform any persistence\n * operations.\n * @param documentKeys - The keys of the entries to look up.\n * @returns A map of cached documents, indexed by key. If an entry cannot be\n * found, the corresponding key will be mapped to an invalid document.\n */ getEntries(t, e) {\n return this.getAllFromCache(t, e);\n }\n /**\n * Applies buffered changes to the underlying RemoteDocumentCache, using\n * the provided transaction.\n */ apply(t) {\n return this.assertNotApplied(), this.changesApplied = !0, this.applyChanges(t);\n }\n /** Helper to assert this.changes is not null */ assertNotApplied() {}\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The RemoteDocumentCache for IndexedDb. To construct, invoke\n * `newIndexedDbRemoteDocumentCache()`.\n */ class Ar {\n constructor(t) {\n this.O = t;\n }\n setIndexManager(t) {\n this.indexManager = t;\n }\n /**\n * Adds the supplied entries to the cache.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */ addEntry(t, e, n) {\n return br(t).put(vr(e), n);\n }\n /**\n * Removes a document from the cache.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()` to ensure proper accounting of metadata.\n */ removeEntry(t, e) {\n const n = br(t), s = vr(e);\n return n.delete(s);\n }\n /**\n * Updates the current cache size.\n *\n * Callers to `addEntry()` and `removeEntry()` *must* call this afterwards to update the\n * cache's metadata.\n */ updateMetadata(t, e) {\n return this.getMetadata(t).next((n => (n.byteSize += e, this.mn(t, n))));\n }\n getEntry(t, e) {\n return br(t).get(vr(e)).next((t => this.gn(e, t)));\n }\n /**\n * Looks up an entry in the cache.\n *\n * @param documentKey - The key of the entry to look up.\n * @returns The cached document entry and its size.\n */ yn(t, e) {\n return br(t).get(vr(e)).next((t => ({\n document: this.gn(e, t),\n size: sr(t)\n })));\n }\n getEntries(t, e) {\n let n = Dn();\n return this.pn(t, e, ((t, e) => {\n const s = this.gn(t, e);\n n = n.insert(t, s);\n })).next((() => n));\n }\n /**\n * Looks up several entries in the cache.\n *\n * @param documentKeys - The set of keys entries to look up.\n * @returns A map of documents indexed by key and a map of sizes indexed by\n * key (zero if the document does not exist).\n */ In(t, e) {\n let n = Dn(), s = new An(Nt.comparator);\n return this.pn(t, e, ((t, e) => {\n const i = this.gn(t, e);\n n = n.insert(t, i), s = s.insert(t, sr(e));\n })).next((() => ({\n documents: n,\n En: s\n })));\n }\n pn(t, e, n) {\n if (e.isEmpty()) return si.resolve();\n const s = IDBKeyRange.bound(e.first().path.toArray(), e.last().path.toArray()), i = e.getIterator();\n let r = i.getNext();\n return br(t).Qt({\n range: s\n }, ((t, e, s) => {\n const o = Nt.fromSegments(t);\n // Go through keys not found in cache.\n for (;r && Nt.comparator(r, o) < 0; ) n(r, null), r = i.getNext();\n r && r.isEqual(o) && (\n // Key found in cache.\n n(r, e), r = i.hasNext() ? i.getNext() : null), \n // Skip to the next key (if there is one).\n r ? s.Ut(r.path.toArray()) : s.done();\n })).next((() => {\n // The rest of the keys are not in the cache. One case where `iterate`\n // above won't go through them is when the cache is empty.\n for (;r; ) n(r, null), r = i.hasNext() ? i.getNext() : null;\n }));\n }\n getAll(t, e, n) {\n let s = Dn();\n const i = e.length + 1, r = {};\n if (n.isEqual(at.min())) {\n // Documents are ordered by key, so we can use a prefix scan to narrow\n // down the documents we need to match the query against.\n const t = e.toArray();\n r.range = IDBKeyRange.lowerBound(t);\n } else {\n // Execute an index-free query and filter by read time. This is safe\n // since all document changes to queries that have a\n // lastLimboFreeSnapshotVersion (`sinceReadTime`) have a read time set.\n const t = e.toArray(), s = Ti(n);\n r.range = IDBKeyRange.lowerBound([ t, s ], \n /* open= */ !0), r.index = Bs.collectionReadTimeIndex;\n }\n return br(t).Qt(r, ((t, n, r) => {\n // The query is actually returning any path that starts with the query\n // path prefix which may include documents in subcollections. For\n // example, a query on 'rooms' will return rooms/abc/messages/xyx but we\n // shouldn't match it. Fix this by discarding rows with document keys\n // more than one segment longer than the query path.\n if (t.length !== i) return;\n const o = this.gn(Nt.fromSegments(t), n);\n e.isPrefixOf(o.key.path) ? s = s.insert(o.key, o) : r.done();\n })).next((() => s));\n }\n newChangeBuffer(t) {\n return new Rr(this, !!t && t.trackRemovals);\n }\n getSize(t) {\n return this.getMetadata(t).next((t => t.byteSize));\n }\n getMetadata(t) {\n return Pr(t).get(Ls.key).next((t => (U(!!t), t)));\n }\n mn(t, e) {\n return Pr(t).put(Ls.key, e);\n }\n /**\n * Decodes `dbRemoteDoc` and returns the document (or an invalid document if\n * the document corresponds to the format used for sentinel deletes).\n */ gn(t, e) {\n if (e) {\n const t = Ii(this.O, e);\n // Whether the document is a sentinel removal and should only be used in the\n // `getNewDocumentChanges()`\n if (!(t.isNoDocument() && t.version.isEqual(at.min()))) return t;\n }\n return Jt.newInvalidDocument(t);\n }\n}\n\n/** Creates a new IndexedDbRemoteDocumentCache. */\n/**\n * Handles the details of adding and updating documents in the IndexedDbRemoteDocumentCache.\n *\n * Unlike the MemoryRemoteDocumentChangeBuffer, the IndexedDb implementation computes the size\n * delta for all submitted changes. This avoids having to re-read all documents from IndexedDb\n * when we apply the changes.\n */\nclass Rr extends Tr {\n /**\n * @param documentCache - The IndexedDbRemoteDocumentCache to apply the changes to.\n * @param trackRemovals - Whether to create sentinel deletes that can be tracked by\n * `getNewDocumentChanges()`.\n */\n constructor(t, e) {\n super(), this.Tn = t, this.trackRemovals = e, \n // A map of document sizes prior to applying the changes in this buffer.\n this.An = new Er((t => t.toString()), ((t, e) => t.isEqual(e)));\n }\n applyChanges(t) {\n const e = [];\n let n = 0, s = new bn(((t, e) => rt(t.canonicalString(), e.canonicalString())));\n return this.changes.forEach(((i, r) => {\n const o = this.An.get(i);\n if (r.isValidDocument()) {\n const c = Ei(this.Tn.O, r);\n s = s.add(i.path.popLast());\n const u = sr(c);\n n += u - o, e.push(this.Tn.addEntry(t, i, c));\n } else if (n -= o, this.trackRemovals) {\n // In order to track removals, we store a \"sentinel delete\" in the\n // RemoteDocumentCache. This entry is represented by a NoDocument\n // with a version of 0 and ignored by `maybeDecodeDocument()` but\n // preserved in `getNewDocumentChanges()`.\n const n = Ei(this.Tn.O, r.convertToNoDocument(at.min()));\n e.push(this.Tn.addEntry(t, i, n));\n } else e.push(this.Tn.removeEntry(t, i));\n })), s.forEach((n => {\n e.push(this.Tn.indexManager.addToCollectionParentIndex(t, n));\n })), e.push(this.Tn.updateMetadata(t, n)), si.waitFor(e);\n }\n getFromCache(t, e) {\n // Record the size of everything we load from the cache so we can compute a delta later.\n return this.Tn.yn(t, e).next((t => (this.An.set(e, t.size), t.document)));\n }\n getAllFromCache(t, e) {\n // Record the size of everything we load from the cache so we can compute\n // a delta later.\n return this.Tn.In(t, e).next((({documents: t, En: e}) => (\n // Note: `getAllFromCache` returns two maps instead of a single map from\n // keys to `DocumentSizeEntry`s. This is to allow returning the\n // `MutableDocumentMap` directly, without a conversion.\n e.forEach(((t, e) => {\n this.An.set(t, e);\n })), t)));\n }\n}\n\nfunction Pr(t) {\n return _i(t, Ls.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the remoteDocuments object store.\n */ function br(t) {\n return _i(t, Bs.store);\n}\n\nfunction vr(t) {\n return t.path.toArray();\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Performs database creation and schema upgrades. */ class Vr {\n constructor(t) {\n this.O = t;\n }\n /**\n * Performs database creation and schema upgrades.\n *\n * Note that in production, this method is only ever used to upgrade the schema\n * to SCHEMA_VERSION. Different values of toVersion are only used for testing\n * and local feature development.\n */ kt(t, e, n, s) {\n const i = new ii(\"createOrUpgrade\", e);\n n < 1 && s >= 1 && (function(t) {\n t.createObjectStore(xs.store);\n }(t), function(t) {\n t.createObjectStore(ks.store, {\n keyPath: ks.keyPath\n });\n t.createObjectStore(Os.store, {\n keyPath: Os.keyPath,\n autoIncrement: !0\n }).createIndex(Os.userMutationsIndex, Os.userMutationsKeyPath, {\n unique: !0\n }), t.createObjectStore(Ms.store);\n }\n /**\n * Upgrade function to migrate the 'mutations' store from V1 to V3. Loads\n * and rewrites all data.\n */ (t), Sr(t), function(t) {\n t.createObjectStore(Bs.store);\n }(t));\n // Migration 2 to populate the targetGlobal object no longer needed since\n // migration 3 unconditionally clears it.\n let r = si.resolve();\n return n < 3 && s >= 3 && (\n // Brand new clients don't need to drop and recreate--only clients that\n // potentially have corrupt data.\n 0 !== n && (!function(t) {\n t.deleteObjectStore(qs.store), t.deleteObjectStore(Us.store), t.deleteObjectStore(Ks.store);\n }(t), Sr(t)), r = r.next((() => \n /**\n * Creates the target global singleton row.\n *\n * @param txn - The version upgrade transaction for indexeddb\n */\n function(t) {\n const e = t.store(Ks.store), n = new Ks(\n /*highestTargetId=*/ 0, \n /*lastListenSequenceNumber=*/ 0, at.min().toTimestamp(), \n /*targetCount=*/ 0);\n return e.put(Ks.key, n);\n }\n /**\n * Creates indices on the RemoteDocuments store used for both multi-tab\n * and Index-Free queries.\n */ (i)))), n < 4 && s >= 4 && (0 !== n && (\n // Schema version 3 uses auto-generated keys to generate globally unique\n // mutation batch IDs (this was previously ensured internally by the\n // client). To migrate to the new schema, we have to read all mutations\n // and write them back out. We preserve the existing batch IDs to guarantee\n // consistency with other object stores. Any further mutation batch IDs will\n // be auto-generated.\n r = r.next((() => function(t, e) {\n return e.store(Os.store).qt().next((n => {\n t.deleteObjectStore(Os.store);\n t.createObjectStore(Os.store, {\n keyPath: Os.keyPath,\n autoIncrement: !0\n }).createIndex(Os.userMutationsIndex, Os.userMutationsKeyPath, {\n unique: !0\n });\n const s = e.store(Os.store), i = n.map((t => s.put(t)));\n return si.waitFor(i);\n }));\n }(t, i)))), r = r.next((() => {\n !function(t) {\n t.createObjectStore(js.store, {\n keyPath: js.keyPath\n });\n }(t);\n }))), n < 5 && s >= 5 && (r = r.next((() => this.Rn(i)))), n < 6 && s >= 6 && (r = r.next((() => (function(t) {\n t.createObjectStore(Ls.store);\n }(t), this.Pn(i))))), n < 7 && s >= 7 && (r = r.next((() => this.bn(i)))), n < 8 && s >= 8 && (r = r.next((() => this.vn(t, i)))), \n n < 9 && s >= 9 && (r = r.next((() => {\n // Multi-Tab used to manage its own changelog, but this has been moved\n // to the DbRemoteDocument object store itself. Since the previous change\n // log only contained transient data, we can drop its object store.\n !function(t) {\n t.objectStoreNames.contains(\"remoteDocumentChanges\") && t.deleteObjectStore(\"remoteDocumentChanges\");\n }(t), function(t) {\n const e = t.objectStore(Bs.store);\n e.createIndex(Bs.readTimeIndex, Bs.readTimeIndexPath, {\n unique: !1\n }), e.createIndex(Bs.collectionReadTimeIndex, Bs.collectionReadTimeIndexPath, {\n unique: !1\n });\n }(e);\n }))), n < 10 && s >= 10 && (r = r.next((() => this.Vn(i)))), n < 11 && s >= 11 && (r = r.next((() => {\n !function(t) {\n t.createObjectStore(Qs.store, {\n keyPath: Qs.keyPath\n });\n }(t), function(t) {\n t.createObjectStore(Ws.store, {\n keyPath: Ws.keyPath\n });\n }(t);\n }))), n < 12 && s >= 12 && (r = r.next((() => {\n !function(t) {\n const e = t.createObjectStore(Ys.store, {\n keyPath: Ys.keyPath\n });\n e.createIndex(Ys.collectionPathOverlayIndex, Ys.collectionPathOverlayIndexPath, {\n unique: !1\n }), e.createIndex(Ys.collectionGroupOverlayIndex, Ys.collectionGroupOverlayIndexPath, {\n unique: !1\n });\n }\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (t);\n }))), n < 13 && s >= 13 && (r = r.next((() => {\n !function(t) {\n t.createObjectStore(zs.store, {\n keyPath: zs.keyPath,\n autoIncrement: !0\n }).createIndex(zs.collectionGroupIndex, zs.collectionGroupIndexPath, {\n unique: !1\n });\n t.createObjectStore(Hs.store, {\n keyPath: Hs.keyPath\n }).createIndex(Hs.sequenceNumberIndex, Hs.sequenceNumberIndexPath, {\n unique: !1\n });\n t.createObjectStore(Js.store, {\n keyPath: Js.keyPath\n }).createIndex(Js.documentKeyIndex, Js.documentKeyIndexPath, {\n unique: !1\n });\n }(t);\n }))), r;\n }\n Pn(t) {\n let e = 0;\n return t.store(Bs.store).Qt(((t, n) => {\n e += sr(n);\n })).next((() => {\n const n = new Ls(e);\n return t.store(Ls.store).put(Ls.key, n);\n }));\n }\n Rn(t) {\n const e = t.store(ks.store), n = t.store(Os.store);\n return e.qt().next((e => si.forEach(e, (e => {\n const s = IDBKeyRange.bound([ e.userId, -1 ], [ e.userId, e.lastAcknowledgedBatchId ]);\n return n.qt(Os.userMutationsIndex, s).next((n => si.forEach(n, (n => {\n U(n.userId === e.userId);\n const s = bi(this.O, n);\n return nr(t, e.userId, s).next((() => {}));\n }))));\n }))));\n }\n /**\n * Ensures that every document in the remote document cache has a corresponding sentinel row\n * with a sequence number. Missing rows are given the most recently used sequence number.\n */ bn(t) {\n const e = t.store(qs.store), n = t.store(Bs.store);\n return t.store(Ks.store).get(Ks.key).next((t => {\n const s = [];\n return n.Qt(((n, i) => {\n const r = new _t(n), o = function(t) {\n return [ 0, Vs(t) ];\n }(r);\n s.push(e.get(o).next((n => n ? si.resolve() : (n => e.put(new qs(0, Vs(n), t.highestListenSequenceNumber)))(r))));\n })).next((() => si.waitFor(s)));\n }));\n }\n vn(t, e) {\n // Create the index.\n t.createObjectStore(Gs.store, {\n keyPath: Gs.keyPath\n });\n const n = e.store(Gs.store), s = new zi, i = t => {\n if (s.add(t)) {\n const e = t.lastSegment(), s = t.popLast();\n return n.put({\n collectionId: e,\n parent: Vs(s)\n });\n }\n };\n // Helper to add an index entry iff we haven't already written it.\n // Index existing remote documents.\n return e.store(Bs.store).Qt({\n jt: !0\n }, ((t, e) => {\n const n = new _t(t);\n return i(n.popLast());\n })).next((() => e.store(Ms.store).Qt({\n jt: !0\n }, (([t, e, n], s) => {\n const r = Cs(e);\n return i(r.popLast());\n }))));\n }\n Vn(t) {\n const e = t.store(Us.store);\n return e.Qt(((t, n) => {\n const s = vi(n), i = Vi(this.O, s);\n return e.put(i);\n }));\n }\n}\n\nfunction Sr(t) {\n t.createObjectStore(qs.store, {\n keyPath: qs.keyPath\n }).createIndex(qs.documentTargetsIndex, qs.documentTargetsKeyPath, {\n unique: !0\n });\n // NOTE: This is unique only because the TargetId is the suffix.\n t.createObjectStore(Us.store, {\n keyPath: Us.keyPath\n }).createIndex(Us.queryTargetsIndexName, Us.queryTargetsKeyPath, {\n unique: !0\n }), t.createObjectStore(Ks.store);\n}\n\nconst Dr = \"Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.\";\n\n/**\n * Oldest acceptable age in milliseconds for client metadata before the client\n * is considered inactive and its associated data is garbage collected.\n */\n/**\n * An IndexedDB-backed instance of Persistence. Data is stored persistently\n * across sessions.\n *\n * On Web only, the Firestore SDKs support shared access to its persistence\n * layer. This allows multiple browser tabs to read and write to IndexedDb and\n * to synchronize state even without network connectivity. Shared access is\n * currently optional and not enabled unless all clients invoke\n * `enablePersistence()` with `{synchronizeTabs:true}`.\n *\n * In multi-tab mode, if multiple clients are active at the same time, the SDK\n * will designate one client as the “primary client”. An effort is made to pick\n * a visible, network-connected and active client, and this client is\n * responsible for letting other clients know about its presence. The primary\n * client writes a unique client-generated identifier (the client ID) to\n * IndexedDb’s “owner” store every 4 seconds. If the primary client fails to\n * update this entry, another client can acquire the lease and take over as\n * primary.\n *\n * Some persistence operations in the SDK are designated as primary-client only\n * operations. This includes the acknowledgment of mutations and all updates of\n * remote documents. The effects of these operations are written to persistence\n * and then broadcast to other tabs via LocalStorage (see\n * `WebStorageSharedClientState`), which then refresh their state from\n * persistence.\n *\n * Similarly, the primary client listens to notifications sent by secondary\n * clients to discover persistence changes written by secondary clients, such as\n * the addition of new mutations and query targets.\n *\n * If multi-tab is not enabled and another tab already obtained the primary\n * lease, IndexedDbPersistence enters a failed state and all subsequent\n * operations will automatically fail.\n *\n * Additionally, there is an optimization so that when a tab is closed, the\n * primary lease is released immediately (this is especially important to make\n * sure that a refreshed tab is able to immediately re-acquire the primary\n * lease). Unfortunately, IndexedDB cannot be reliably used in window.unload\n * since it is an asynchronous API. So in addition to attempting to give up the\n * lease, the leaseholder writes its client ID to a \"zombiedClient\" entry in\n * LocalStorage which acts as an indicator that another tab should go ahead and\n * take the primary lease immediately regardless of the current lease timestamp.\n *\n * TODO(b/114226234): Remove `synchronizeTabs` section when multi-tab is no\n * longer optional.\n */\nclass Cr {\n constructor(\n /**\n * Whether to synchronize the in-memory state of multiple tabs and share\n * access to local persistence.\n */\n t, e, n, s, i, r, o, c, u, \n /**\n * If set to true, forcefully obtains database access. Existing tabs will\n * no longer be able to access IndexedDB.\n */\n a, h = 12) {\n if (this.allowTabSynchronization = t, this.persistenceKey = e, this.clientId = n, \n this.Sn = i, this.window = r, this.document = o, this.Dn = u, this.Cn = a, this.schemaVersion = h, \n this.Nn = null, this.xn = !1, this.isPrimary = !1, this.networkEnabled = !0, \n /** Our window.unload handler, if registered. */\n this.kn = null, this.inForeground = !1, \n /** Our 'visibilitychange' listener if registered. */\n this.On = null, \n /** The client metadata refresh task. */\n this.Mn = null, \n /** The last time we garbage collected the client metadata object store. */\n this.$n = Number.NEGATIVE_INFINITY, \n /** A listener to notify on primary state changes. */\n this.Fn = t => Promise.resolve(), !Cr.Vt()) throw new j(G.UNIMPLEMENTED, \"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.\");\n this.referenceDelegate = new pr(this, s), this.Bn = e + \"main\", this.O = new pi(c), \n this.Ln = new ri(this.Bn, this.schemaVersion, new Vr(this.O)), this.Un = new hr(this.referenceDelegate, this.O), \n this.qn = function(t) {\n return new Ar(t);\n }\n /**\n * Returns the set of documents that have changed since the specified read\n * time.\n */\n // PORTING NOTE: This is only used for multi-tab synchronization.\n (this.O), this.Kn = new Ni, this.window && this.window.localStorage ? this.Gn = this.window.localStorage : (this.Gn = null, \n !1 === a && $(\"IndexedDbPersistence\", \"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page.\"));\n }\n /**\n * Attempt to start IndexedDb persistence.\n *\n * @returns Whether persistence was enabled.\n */ start() {\n // NOTE: This is expected to fail sometimes (in the case of another tab\n // already having the persistence lock), so it's the first thing we should\n // do.\n return this.jn().then((() => {\n if (!this.isPrimary && !this.allowTabSynchronization) \n // Fail `start()` if `synchronizeTabs` is disabled and we cannot\n // obtain the primary lease.\n throw new j(G.FAILED_PRECONDITION, Dr);\n return this.Qn(), this.Wn(), this.zn(), this.runTransaction(\"getHighestListenSequenceNumber\", \"readonly\", (t => this.Un.getHighestSequenceNumber(t)));\n })).then((t => {\n this.Nn = new nt(t, this.Dn);\n })).then((() => {\n this.xn = !0;\n })).catch((t => (this.Ln && this.Ln.close(), Promise.reject(t))));\n }\n /**\n * Registers a listener that gets called when the primary state of the\n * instance changes. Upon registering, this listener is invoked immediately\n * with the current primary state.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */ Hn(t) {\n return this.Fn = async e => {\n if (this.started) return t(e);\n }, t(this.isPrimary);\n }\n /**\n * Registers a listener that gets called when the database receives a\n * version change event indicating that it has deleted.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */ setDatabaseDeletedListener(t) {\n this.Ln.Mt((async e => {\n // Check if an attempt is made to delete IndexedDB.\n null === e.newVersion && await t();\n }));\n }\n /**\n * Adjusts the current network state in the client's metadata, potentially\n * affecting the primary lease.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */ setNetworkEnabled(t) {\n this.networkEnabled !== t && (this.networkEnabled = t, \n // Schedule a primary lease refresh for immediate execution. The eventual\n // lease update will be propagated via `primaryStateListener`.\n this.Sn.enqueueAndForget((async () => {\n this.started && await this.jn();\n })));\n }\n /**\n * Updates the client metadata in IndexedDb and attempts to either obtain or\n * extend the primary lease for the local client. Asynchronously notifies the\n * primary state listener if the client either newly obtained or released its\n * primary lease.\n */ jn() {\n return this.runTransaction(\"updateClientMetadataAndTryBecomePrimary\", \"readwrite\", (t => xr(t).put(new js(this.clientId, Date.now(), this.networkEnabled, this.inForeground)).next((() => {\n if (this.isPrimary) return this.Jn(t).next((t => {\n t || (this.isPrimary = !1, this.Sn.enqueueRetryable((() => this.Fn(!1))));\n }));\n })).next((() => this.Yn(t))).next((e => this.isPrimary && !e ? this.Xn(t).next((() => !1)) : !!e && this.Zn(t).next((() => !0)))))).catch((t => {\n if (ui(t)) \n // Proceed with the existing state. Any subsequent access to\n // IndexedDB will verify the lease.\n return M(\"IndexedDbPersistence\", \"Failed to extend owner lease: \", t), this.isPrimary;\n if (!this.allowTabSynchronization) throw t;\n return M(\"IndexedDbPersistence\", \"Releasing owner lease after error during lease refresh\", t), \n /* isPrimary= */ !1;\n })).then((t => {\n this.isPrimary !== t && this.Sn.enqueueRetryable((() => this.Fn(t))), this.isPrimary = t;\n }));\n }\n Jn(t) {\n return Nr(t).get(xs.key).next((t => si.resolve(this.ts(t))));\n }\n es(t) {\n return xr(t).delete(this.clientId);\n }\n /**\n * If the garbage collection threshold has passed, prunes the\n * RemoteDocumentChanges and the ClientMetadata store based on the last update\n * time of all clients.\n */ async ns() {\n if (this.isPrimary && !this.ss(this.$n, 18e5)) {\n this.$n = Date.now();\n const t = await this.runTransaction(\"maybeGarbageCollectMultiClientState\", \"readwrite-primary\", (t => {\n const e = _i(t, js.store);\n return e.qt().next((t => {\n const n = this.rs(t, 18e5), s = t.filter((t => -1 === n.indexOf(t)));\n // Delete metadata for clients that are no longer considered active.\n return si.forEach(s, (t => e.delete(t.clientId))).next((() => s));\n }));\n })).catch((() => []));\n // Delete potential leftover entries that may continue to mark the\n // inactive clients as zombied in LocalStorage.\n // Ideally we'd delete the IndexedDb and LocalStorage zombie entries for\n // the client atomically, but we can't. So we opt to delete the IndexedDb\n // entries first to avoid potentially reviving a zombied client.\n if (this.Gn) for (const e of t) this.Gn.removeItem(this.os(e.clientId));\n }\n }\n /**\n * Schedules a recurring timer to update the client metadata and to either\n * extend or acquire the primary lease if the client is eligible.\n */ zn() {\n this.Mn = this.Sn.enqueueAfterDelay(\"client_metadata_refresh\" /* ClientMetadataRefresh */ , 4e3, (() => this.jn().then((() => this.ns())).then((() => this.zn()))));\n }\n /** Checks whether `client` is the local client. */ ts(t) {\n return !!t && t.ownerId === this.clientId;\n }\n /**\n * Evaluate the state of all active clients and determine whether the local\n * client is or can act as the holder of the primary lease. Returns whether\n * the client is eligible for the lease, but does not actually acquire it.\n * May return 'false' even if there is no active leaseholder and another\n * (foreground) client should become leaseholder instead.\n */ Yn(t) {\n if (this.Cn) return si.resolve(!0);\n return Nr(t).get(xs.key).next((e => {\n // A client is eligible for the primary lease if:\n // - its network is enabled and the client's tab is in the foreground.\n // - its network is enabled and no other client's tab is in the\n // foreground.\n // - every clients network is disabled and the client's tab is in the\n // foreground.\n // - every clients network is disabled and no other client's tab is in\n // the foreground.\n // - the `forceOwningTab` setting was passed in.\n if (null !== e && this.ss(e.leaseTimestampMs, 5e3) && !this.cs(e.ownerId)) {\n if (this.ts(e) && this.networkEnabled) return !0;\n if (!this.ts(e)) {\n if (!e.allowTabSynchronization) \n // Fail the `canActAsPrimary` check if the current leaseholder has\n // not opted into multi-tab synchronization. If this happens at\n // client startup, we reject the Promise returned by\n // `enablePersistence()` and the user can continue to use Firestore\n // with in-memory persistence.\n // If this fails during a lease refresh, we will instead block the\n // AsyncQueue from executing further operations. Note that this is\n // acceptable since mixing & matching different `synchronizeTabs`\n // settings is not supported.\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can\n // no longer be turned off.\n throw new j(G.FAILED_PRECONDITION, Dr);\n return !1;\n }\n }\n return !(!this.networkEnabled || !this.inForeground) || xr(t).qt().next((t => void 0 === this.rs(t, 5e3).find((t => {\n if (this.clientId !== t.clientId) {\n const e = !this.networkEnabled && t.networkEnabled, n = !this.inForeground && t.inForeground, s = this.networkEnabled === t.networkEnabled;\n if (e || n && s) return !0;\n }\n return !1;\n }))));\n })).next((t => (this.isPrimary !== t && M(\"IndexedDbPersistence\", `Client ${t ? \"is\" : \"is not\"} eligible for a primary lease.`), \n t)));\n }\n async shutdown() {\n // The shutdown() operations are idempotent and can be called even when\n // start() aborted (e.g. because it couldn't acquire the persistence lease).\n this.xn = !1, this.us(), this.Mn && (this.Mn.cancel(), this.Mn = null), this.hs(), \n this.ls(), \n // Use `SimpleDb.runTransaction` directly to avoid failing if another tab\n // has obtained the primary lease.\n await this.Ln.runTransaction(\"shutdown\", \"readwrite\", [ xs.store, js.store ], (t => {\n const e = new di(t, nt.A);\n return this.Xn(e).next((() => this.es(e)));\n })), this.Ln.close(), \n // Remove the entry marking the client as zombied from LocalStorage since\n // we successfully deleted its metadata from IndexedDb.\n this.fs();\n }\n /**\n * Returns clients that are not zombied and have an updateTime within the\n * provided threshold.\n */ rs(t, e) {\n return t.filter((t => this.ss(t.updateTimeMs, e) && !this.cs(t.clientId)));\n }\n /**\n * Returns the IDs of the clients that are currently active. If multi-tab\n * is not supported, returns an array that only contains the local client's\n * ID.\n *\n * PORTING NOTE: This is only used for Web multi-tab.\n */ ds() {\n return this.runTransaction(\"getActiveClients\", \"readonly\", (t => xr(t).qt().next((t => this.rs(t, 18e5).map((t => t.clientId))))));\n }\n get started() {\n return this.xn;\n }\n getMutationQueue(t, e) {\n return ir.Jt(t, this.O, e, this.referenceDelegate);\n }\n getTargetCache() {\n return this.Un;\n }\n getRemoteDocumentCache() {\n return this.qn;\n }\n getIndexManager(t) {\n return new Hi(t);\n }\n getDocumentOverlayCache(t) {\n return Oi.Jt(this.O, t);\n }\n getBundleCache() {\n return this.Kn;\n }\n runTransaction(t, e, n) {\n M(\"IndexedDbPersistence\", \"Starting transaction:\", t);\n const s = \"readonly\" === e ? \"readonly\" : \"readwrite\", i = 13 === (r = this.schemaVersion) ? ti : 12 === r ? Zs : 11 === r ? Xs : void L();\n /** Returns the object stores for the provided schema. */\n var r;\n let o;\n // Do all transactions as readwrite against all object stores, since we\n // are the only reader/writer.\n return this.Ln.runTransaction(t, s, i, (s => (o = new di(s, this.Nn ? this.Nn.next() : nt.A), \n \"readwrite-primary\" === e ? this.Jn(o).next((t => !!t || this.Yn(o))).next((e => {\n if (!e) throw $(`Failed to obtain primary lease for action '${t}'.`), this.isPrimary = !1, \n this.Sn.enqueueRetryable((() => this.Fn(!1))), new j(G.FAILED_PRECONDITION, ei);\n return n(o);\n })).next((t => this.Zn(o).next((() => t)))) : this._s(o).next((() => n(o)))))).then((t => (o.raiseOnCommittedEvent(), \n t)));\n }\n /**\n * Verifies that the current tab is the primary leaseholder or alternatively\n * that the leaseholder has opted into multi-tab synchronization.\n */\n // TODO(b/114226234): Remove this check when `synchronizeTabs` can no longer\n // be turned off.\n _s(t) {\n return Nr(t).get(xs.key).next((t => {\n if (null !== t && this.ss(t.leaseTimestampMs, 5e3) && !this.cs(t.ownerId) && !this.ts(t) && !(this.Cn || this.allowTabSynchronization && t.allowTabSynchronization)) throw new j(G.FAILED_PRECONDITION, Dr);\n }));\n }\n /**\n * Obtains or extends the new primary lease for the local client. This\n * method does not verify that the client is eligible for this lease.\n */ Zn(t) {\n const e = new xs(this.clientId, this.allowTabSynchronization, Date.now());\n return Nr(t).put(xs.key, e);\n }\n static Vt() {\n return ri.Vt();\n }\n /** Checks the primary lease and removes it if we are the current primary. */ Xn(t) {\n const e = Nr(t);\n return e.get(xs.key).next((t => this.ts(t) ? (M(\"IndexedDbPersistence\", \"Releasing primary lease.\"), \n e.delete(xs.key)) : si.resolve()));\n }\n /** Verifies that `updateTimeMs` is within `maxAgeMs`. */ ss(t, e) {\n const n = Date.now();\n return !(t < n - e) && (!(t > n) || ($(`Detected an update time that is in the future: ${t} > ${n}`), \n !1));\n }\n Qn() {\n null !== this.document && \"function\" == typeof this.document.addEventListener && (this.On = () => {\n this.Sn.enqueueAndForget((() => (this.inForeground = \"visible\" === this.document.visibilityState, \n this.jn())));\n }, this.document.addEventListener(\"visibilitychange\", this.On), this.inForeground = \"visible\" === this.document.visibilityState);\n }\n hs() {\n this.On && (this.document.removeEventListener(\"visibilitychange\", this.On), this.On = null);\n }\n /**\n * Attaches a window.unload handler that will synchronously write our\n * clientId to a \"zombie client id\" location in LocalStorage. This can be used\n * by tabs trying to acquire the primary lease to determine that the lease\n * is no longer valid even if the timestamp is recent. This is particularly\n * important for the refresh case (so the tab correctly re-acquires the\n * primary lease). LocalStorage is used for this rather than IndexedDb because\n * it is a synchronous API and so can be used reliably from an unload\n * handler.\n */ Wn() {\n var t;\n \"function\" == typeof (null === (t = this.window) || void 0 === t ? void 0 : t.addEventListener) && (this.kn = () => {\n // Note: In theory, this should be scheduled on the AsyncQueue since it\n // accesses internal state. We execute this code directly during shutdown\n // to make sure it gets a chance to run.\n this.us(), isSafari() && navigator.appVersion.match(/Version\\/1[45]/) && \n // On Safari 14 and 15, we do not run any cleanup actions as it might\n // trigger a bug that prevents Safari from re-opening IndexedDB during\n // the next page load.\n // See https://bugs.webkit.org/show_bug.cgi?id=226547\n this.Sn.enterRestrictedMode(/* purgeExistingTasks= */ !0), this.Sn.enqueueAndForget((() => this.shutdown()));\n }, this.window.addEventListener(\"pagehide\", this.kn));\n }\n ls() {\n this.kn && (this.window.removeEventListener(\"pagehide\", this.kn), this.kn = null);\n }\n /**\n * Returns whether a client is \"zombied\" based on its LocalStorage entry.\n * Clients become zombied when their tab closes without running all of the\n * cleanup logic in `shutdown()`.\n */ cs(t) {\n var e;\n try {\n const n = null !== (null === (e = this.Gn) || void 0 === e ? void 0 : e.getItem(this.os(t)));\n return M(\"IndexedDbPersistence\", `Client '${t}' ${n ? \"is\" : \"is not\"} zombied in LocalStorage`), \n n;\n } catch (t) {\n // Gracefully handle if LocalStorage isn't working.\n return $(\"IndexedDbPersistence\", \"Failed to get zombied client id.\", t), !1;\n }\n }\n /**\n * Record client as zombied (a client that had its tab closed). Zombied\n * clients are ignored during primary tab selection.\n */ us() {\n if (this.Gn) try {\n this.Gn.setItem(this.os(this.clientId), String(Date.now()));\n } catch (t) {\n // Gracefully handle if LocalStorage isn't available / working.\n $(\"Failed to set zombie client id.\", t);\n }\n }\n /** Removes the zombied client entry if it exists. */ fs() {\n if (this.Gn) try {\n this.Gn.removeItem(this.os(this.clientId));\n } catch (t) {\n // Ignore\n }\n }\n os(t) {\n return `firestore_zombie_${this.persistenceKey}_${t}`;\n }\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the primary client object store.\n */ function Nr(t) {\n return _i(t, xs.store);\n}\n\n/**\n * Helper to get a typed SimpleDbStore for the client metadata object store.\n */ function xr(t) {\n return _i(t, js.store);\n}\n\n/**\n * Generates a string used as a prefix when storing data in IndexedDB and\n * LocalStorage.\n */ function kr(t, e) {\n // Use two different prefix formats:\n // * firestore / persistenceKey / projectID . databaseID / ...\n // * firestore / persistenceKey / projectID / ...\n // projectIDs are DNS-compatible names and cannot contain dots\n // so there's no danger of collisions.\n let n = t.projectId;\n return t.isDefaultDatabase || (n += \".\" + t.database), \"firestore/\" + e + \"/\" + n + \"/\";\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Or {\n constructor(t, e) {\n this.progress = t, this.ws = e;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A readonly view of the local state of all documents we're tracking (i.e. we\n * have a cached version in remoteDocumentCache or local mutations for the\n * document). The view is computed by applying the mutations in the\n * MutationQueue to the RemoteDocumentCache.\n */ class Mr {\n constructor(t, e, n) {\n this.qn = t, this.gs = e, this.indexManager = n;\n }\n /**\n * Get the local view of the document identified by `key`.\n *\n * @returns Local view of the document or null if we don't have any cached\n * state for it.\n */ ys(t, e) {\n return this.gs.getAllMutationBatchesAffectingDocumentKey(t, e).next((n => this.ps(t, e, n)));\n }\n /** Internal version of `getDocument` that allows reusing batches. */ ps(t, e, n) {\n return this.qn.getEntry(t, e).next((t => {\n for (const e of n) e.applyToLocalView(t);\n return t;\n }));\n }\n // Returns the view of the given `docs` as they would appear after applying\n // all mutations in the given `batches`.\n Is(t, e) {\n t.forEach(((t, n) => {\n for (const t of e) t.applyToLocalView(n);\n }));\n }\n /**\n * Gets the local view of the documents identified by `keys`.\n *\n * If we don't have cached state for a document in `keys`, a NoDocument will\n * be stored for that key in the resulting set.\n */ Es(t, e) {\n return this.qn.getEntries(t, e).next((e => this.Ts(t, e).next((() => e))));\n }\n /**\n * Applies the local view the given `baseDocs` without retrieving documents\n * from the local store.\n */ Ts(t, e) {\n return this.gs.getAllMutationBatchesAffectingDocumentKeys(t, e).next((t => this.Is(e, t)));\n }\n /**\n * Performs a query against the local view of all documents.\n *\n * @param transaction - The persistence transaction.\n * @param query - The query to match documents against.\n * @param sinceReadTime - If not set to SnapshotVersion.min(), return only\n * documents that have been read since this snapshot version (exclusive).\n */ As(t, e, n) {\n /**\n * Returns whether the query matches a single document by path (rather than a\n * collection).\n */\n return function(t) {\n return Nt.isDocumentKey(t.path) && null === t.collectionGroup && 0 === t.filters.length;\n }(e) ? this.Rs(t, e.path) : Ve(e) ? this.Ps(t, e, n) : this.bs(t, e, n);\n }\n Rs(t, e) {\n // Just do a simple document lookup.\n return this.ys(t, new Nt(e)).next((t => {\n let e = Nn();\n return t.isFoundDocument() && (e = e.insert(t.key, t)), e;\n }));\n }\n Ps(t, e, n) {\n const s = e.collectionGroup;\n let i = Nn();\n return this.indexManager.getCollectionParents(t, s).next((r => si.forEach(r, (r => {\n const o = function(t, e) {\n return new Ee(e, \n /*collectionGroup=*/ null, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, t.startAt, t.endAt);\n }\n /**\n * Returns true if this query does not specify any query constraints that\n * could remove results.\n */ (e, r.child(s));\n return this.bs(t, o, n).next((t => {\n t.forEach(((t, e) => {\n i = i.insert(t, e);\n }));\n }));\n })).next((() => i))));\n }\n bs(t, e, n) {\n // Query the remote documents and overlay mutations.\n let s;\n return this.qn.getAll(t, e.path, n).next((n => (s = n, this.gs.getAllMutationBatchesAffectingQuery(t, e)))).next((t => {\n for (const e of t) for (const t of e.mutations) {\n const n = t.key;\n let i = s.get(n);\n null == i && (\n // Create invalid document to apply mutations on top of\n i = Jt.newInvalidDocument(n), s = s.insert(n, i)), cn(t, i, e.localWriteTime), i.isFoundDocument() || (s = s.remove(n));\n }\n })).next((() => (\n // Finally, filter out any documents that don't actually match\n // the query.\n s.forEach(((t, n) => {\n Oe(e, n) || (s = s.remove(t));\n })), s)));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A set of changes to what documents are currently in view and out of view for\n * a given query. These changes are sent to the LocalStore by the View (via\n * the SyncEngine) and are used to pin / unpin documents as appropriate.\n */ class $r {\n constructor(t, e, n, s) {\n this.targetId = t, this.fromCache = e, this.vs = n, this.Vs = s;\n }\n static Ss(t, e) {\n let n = On(), s = On();\n for (const t of e.docChanges) switch (t.type) {\n case 0 /* Added */ :\n n = n.add(t.doc.key);\n break;\n\n case 1 /* Removed */ :\n s = s.add(t.doc.key);\n // do nothing\n }\n return new $r(t, e.fromCache, n, s);\n }\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A query engine that takes advantage of the target document mapping in the\n * QueryCache. Query execution is optimized by only reading the documents that\n * previously matched a query plus any documents that were edited after the\n * query was last listened to.\n *\n * There are some cases when this optimization is not guaranteed to produce\n * the same results as full collection scans. In these cases, query\n * processing falls back to full scans. These cases are:\n *\n * - Limit queries where a document that matched the query previously no longer\n * matches the query.\n *\n * - Limit queries where a document edit may cause the document to sort below\n * another document that is in the local cache.\n *\n * - Queries that have never been CURRENT or free of limbo documents.\n */ class Fr {\n /** Sets the document view to query against. */\n Ds(t) {\n this.Cs = t;\n }\n /** Returns all local documents matching the specified query. */ As(t, e, n, s) {\n // Queries that match all documents don't benefit from using\n // key-based lookups. It is more efficient to scan all documents in a\n // collection, rather than to perform individual lookups.\n return function(t) {\n return 0 === t.filters.length && null === t.limit && null == t.startAt && null == t.endAt && (0 === t.explicitOrderBy.length || 1 === t.explicitOrderBy.length && t.explicitOrderBy[0].field.isKeyField());\n }(e) || n.isEqual(at.min()) ? this.Ns(t, e) : this.Cs.Es(t, s).next((i => {\n const r = this.xs(e, i);\n return (Re(e) || Pe(e)) && this.ks(e.limitType, r, s, n) ? this.Ns(t, e) : (k() <= LogLevel.DEBUG && M(\"QueryEngine\", \"Re-using previous result from %s to execute query: %s\", n.toString(), ke(e)), \n this.Cs.As(t, e, n).next((t => (\n // We merge `previousResults` into `updateResults`, since\n // `updateResults` is already a DocumentMap. If a document is\n // contained in both lists, then its contents are the same.\n r.forEach((e => {\n t = t.insert(e.key, e);\n })), t))));\n }));\n // Queries that have never seen a snapshot without limbo free documents\n // should also be run as a full collection scan.\n }\n /** Applies the query filter and sorting to the provided documents. */ xs(t, e) {\n // Sort the documents and re-apply the query filter since previously\n // matching documents do not necessarily still match the query.\n let n = new bn(Me(t));\n return e.forEach(((e, s) => {\n Oe(t, s) && (n = n.add(s));\n })), n;\n }\n /**\n * Determines if a limit query needs to be refilled from cache, making it\n * ineligible for index-free execution.\n *\n * @param sortedPreviousResults - The documents that matched the query when it\n * was last synchronized, sorted by the query's comparator.\n * @param remoteKeys - The document keys that matched the query at the last\n * snapshot.\n * @param limboFreeSnapshotVersion - The version of the snapshot when the\n * query was last synchronized.\n */ ks(t, e, n, s) {\n // The query needs to be refilled if a previously matching document no\n // longer matches.\n if (n.size !== e.size) return !0;\n // Limit queries are not eligible for index-free query execution if there is\n // a potential that an older document from cache now sorts before a document\n // that was previously part of the limit. This, however, can only happen if\n // the document at the edge of the limit goes out of limit.\n // If a document that is not the limit boundary sorts differently,\n // the boundary of the limit itself did not change and documents from cache\n // will continue to be \"rejected\" by this boundary. Therefore, we can ignore\n // any modifications that don't affect the last document.\n const i = \"F\" /* First */ === t ? e.last() : e.first();\n return !!i && (i.hasPendingWrites || i.version.compareTo(s) > 0);\n }\n Ns(t, e) {\n return k() <= LogLevel.DEBUG && M(\"QueryEngine\", \"Using full collection scan to execute query:\", ke(e)), \n this.Cs.As(t, e, at.min());\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Implements `LocalStore` interface.\n *\n * Note: some field defined in this class might have public access level, but\n * the class is not exported so they are only accessible from this module.\n * This is useful to implement optional features (like bundles) in free\n * functions, such that they are tree-shakeable.\n */\nclass Br {\n constructor(\n /** Manages our in-memory or durable persistence. */\n t, e, n, s) {\n this.persistence = t, this.Os = e, this.O = s, \n /**\n * Maps a targetID to data about its target.\n *\n * PORTING NOTE: We are using an immutable data structure on Web to make re-runs\n * of `applyRemoteEvent()` idempotent.\n */\n this.Ms = new An(rt), \n /** Maps a target to its targetID. */\n // TODO(wuandy): Evaluate if TargetId can be part of Target.\n this.$s = new Er((t => se(t)), re), \n /**\n * The read time of the last entry processed by `getNewDocumentChanges()`.\n *\n * PORTING NOTE: This is only used for multi-tab synchronization.\n */\n this.Fs = at.min(), this.Bs = t.getRemoteDocumentCache(), this.Un = t.getTargetCache(), \n this.Kn = t.getBundleCache(), this.Ls(n);\n }\n Ls(t) {\n // TODO(indexing): Add spec tests that test these components change after a\n // user change\n this.indexManager = this.persistence.getIndexManager(t), this.gs = this.persistence.getMutationQueue(t, this.indexManager), \n this.Us = new Mr(this.Bs, this.gs, this.indexManager), this.Bs.setIndexManager(this.indexManager), \n this.Os.Ds(this.Us);\n }\n collectGarbage(t) {\n return this.persistence.runTransaction(\"Collect garbage\", \"readwrite-primary\", (e => t.collect(e, this.Ms)));\n }\n}\n\nfunction Lr(\n/** Manages our in-memory or durable persistence. */\nt, e, n, s) {\n return new Br(t, e, n, s);\n}\n\n/**\n * Tells the LocalStore that the currently authenticated user has changed.\n *\n * In response the local store switches the mutation queue to the new user and\n * returns any resulting document changes.\n */\n// PORTING NOTE: Android and iOS only return the documents affected by the\n// change.\nasync function Ur(t, e) {\n const n = K(t);\n return await n.persistence.runTransaction(\"Handle user change\", \"readonly\", (t => {\n // Swap out the mutation queue, grabbing the pending mutation batches\n // before and after.\n let s;\n return n.gs.getAllMutationBatches(t).next((i => (s = i, n.Ls(e), n.gs.getAllMutationBatches(t)))).next((e => {\n const i = [], r = [];\n // Union the old/new changed keys.\n let o = On();\n for (const t of s) {\n i.push(t.batchId);\n for (const e of t.mutations) o = o.add(e.key);\n }\n for (const t of e) {\n r.push(t.batchId);\n for (const e of t.mutations) o = o.add(e.key);\n }\n // Return the set of all (potentially) changed documents and the list\n // of mutation batch IDs that were affected by change.\n return n.Us.Es(t, o).next((t => ({\n qs: t,\n removedBatchIds: i,\n addedBatchIds: r\n })));\n }));\n }));\n}\n\n/* Accepts locally generated Mutations and commit them to storage. */\n/**\n * Acknowledges the given batch.\n *\n * On the happy path when a batch is acknowledged, the local store will\n *\n * + remove the batch from the mutation queue;\n * + apply the changes to the remote document cache;\n * + recalculate the latency compensated view implied by those changes (there\n * may be mutations in the queue that affect the documents but haven't been\n * acknowledged yet); and\n * + give the changed documents back the sync engine\n *\n * @returns The resulting (modified) documents.\n */\nfunction qr(t, e) {\n const n = K(t);\n return n.persistence.runTransaction(\"Acknowledge batch\", \"readwrite-primary\", (t => {\n const s = e.batch.keys(), i = n.Bs.newChangeBuffer({\n trackRemovals: !0\n });\n return function(t, e, n, s) {\n const i = n.batch, r = i.keys();\n let o = si.resolve();\n return r.forEach((t => {\n o = o.next((() => s.getEntry(e, t))).next((e => {\n const r = n.docVersions.get(t);\n U(null !== r), e.version.compareTo(r) < 0 && (i.applyToRemoteDocument(e, n), e.isValidDocument() && (\n // We use the commitVersion as the readTime rather than the\n // document's updateTime since the updateTime is not advanced\n // for updates that do not modify the underlying document.\n e.setReadTime(n.commitVersion), s.addEntry(e)));\n }));\n })), o.next((() => t.gs.removeMutationBatch(e, i)));\n }\n /** Returns the local view of the documents affected by a mutation batch. */\n // PORTING NOTE: Multi-Tab only.\n (n, t, e, i).next((() => i.apply(t))).next((() => n.gs.performConsistencyCheck(t))).next((() => n.Us.Es(t, s)));\n }));\n}\n\n/**\n * Removes mutations from the MutationQueue for the specified batch;\n * LocalDocuments will be recalculated.\n *\n * @returns The resulting modified documents.\n */\n/**\n * Returns the last consistent snapshot processed (used by the RemoteStore to\n * determine whether to buffer incoming snapshots from the backend).\n */\nfunction Kr(t) {\n const e = K(t);\n return e.persistence.runTransaction(\"Get last remote snapshot version\", \"readonly\", (t => e.Un.getLastRemoteSnapshotVersion(t)));\n}\n\n/**\n * Updates the \"ground-state\" (remote) documents. We assume that the remote\n * event reflects any write batches that have been acknowledged or rejected\n * (i.e. we do not re-apply local mutations to updates from this event).\n *\n * LocalDocuments are re-calculated if there are remaining mutations in the\n * queue.\n */ function Gr(t, e) {\n const n = K(t), s = e.snapshotVersion;\n let i = n.Ms;\n return n.persistence.runTransaction(\"Apply remote event\", \"readwrite-primary\", (t => {\n const r = n.Bs.newChangeBuffer({\n trackRemovals: !0\n });\n // Reset newTargetDataByTargetMap in case this transaction gets re-run.\n i = n.Ms;\n const o = [];\n e.targetChanges.forEach(((r, c) => {\n const u = i.get(c);\n if (!u) return;\n // Only update the remote keys if the target is still active. This\n // ensures that we can persist the updated target data along with\n // the updated assignment.\n o.push(n.Un.removeMatchingKeys(t, r.removedDocuments, c).next((() => n.Un.addMatchingKeys(t, r.addedDocuments, c))));\n let a = u.withSequenceNumber(t.currentSequenceNumber);\n e.targetMismatches.has(c) ? a = a.withResumeToken(pt.EMPTY_BYTE_STRING, at.min()).withLastLimboFreeSnapshotVersion(at.min()) : r.resumeToken.approximateByteSize() > 0 && (a = a.withResumeToken(r.resumeToken, s)), \n i = i.insert(c, a), \n // Update the target data if there are target changes (or if\n // sufficient time has passed since the last update).\n /**\n * Returns true if the newTargetData should be persisted during an update of\n * an active target. TargetData should always be persisted when a target is\n * being released and should not call this function.\n *\n * While the target is active, TargetData updates can be omitted when nothing\n * about the target has changed except metadata like the resume token or\n * snapshot version. Occasionally it's worth the extra write to prevent these\n * values from getting too stale after a crash, but this doesn't have to be\n * too frequent.\n */\n function(t, e, n) {\n // Always persist target data if we don't already have a resume token.\n if (0 === t.resumeToken.approximateByteSize()) return !0;\n // Don't allow resume token changes to be buffered indefinitely. This\n // allows us to be reasonably up-to-date after a crash and avoids needing\n // to loop over all active queries on shutdown. Especially in the browser\n // we may not get time to do anything interesting while the current tab is\n // closing.\n if (e.snapshotVersion.toMicroseconds() - t.snapshotVersion.toMicroseconds() >= 3e8) return !0;\n // Otherwise if the only thing that has changed about a target is its resume\n // token it's not worth persisting. Note that the RemoteStore keeps an\n // in-memory view of the currently active targets which includes the current\n // resume token, so stream failure or user changes will still use an\n // up-to-date resume token regardless of what we do here.\n return n.addedDocuments.size + n.modifiedDocuments.size + n.removedDocuments.size > 0;\n }\n /**\n * Notifies local store of the changed views to locally pin documents.\n */ (u, a, r) && o.push(n.Un.updateTargetData(t, a));\n }));\n let c = Dn();\n // HACK: The only reason we allow a null snapshot version is so that we\n // can synthesize remote events when we get permission denied errors while\n // trying to resolve the state of a locally cached document that is in\n // limbo.\n if (e.documentUpdates.forEach((s => {\n e.resolvedLimboDocuments.has(s) && o.push(n.persistence.referenceDelegate.updateLimboDocument(t, s));\n })), \n // Each loop iteration only affects its \"own\" doc, so it's safe to get all the remote\n // documents in advance in a single call.\n o.push(jr(t, r, e.documentUpdates).next((t => {\n c = t;\n }))), !s.isEqual(at.min())) {\n const e = n.Un.getLastRemoteSnapshotVersion(t).next((e => n.Un.setTargetsMetadata(t, t.currentSequenceNumber, s)));\n o.push(e);\n }\n return si.waitFor(o).next((() => r.apply(t))).next((() => n.Us.Ts(t, c))).next((() => c));\n })).then((t => (n.Ms = i, t)));\n}\n\n/**\n * Populates document change buffer with documents from backend or a bundle.\n * Returns the document changes resulting from applying those documents.\n *\n * @param txn - Transaction to use to read existing documents from storage.\n * @param documentBuffer - Document buffer to collect the resulted changes to be\n * applied to storage.\n * @param documents - Documents to be applied.\n * @param globalVersion - A `SnapshotVersion` representing the read time if all\n * documents have the same read time.\n * @param documentVersions - A DocumentKey-to-SnapshotVersion map if documents\n * have their own read time.\n *\n * Note: this function will use `documentVersions` if it is defined;\n * when it is not defined, resorts to `globalVersion`.\n */ function jr(t, e, n) {\n let s = On();\n return n.forEach((t => s = s.add(t))), e.getEntries(t, s).next((t => {\n let s = Dn();\n return n.forEach(((n, i) => {\n const r = t.get(n);\n // Note: The order of the steps below is important, since we want\n // to ensure that rejected limbo resolutions (which fabricate\n // NoDocuments with SnapshotVersion.min()) never add documents to\n // cache.\n i.isNoDocument() && i.version.isEqual(at.min()) ? (\n // NoDocuments with SnapshotVersion.min() are used in manufactured\n // events. We remove these documents from cache since we lost\n // access.\n e.removeEntry(n, i.readTime), s = s.insert(n, i)) : !r.isValidDocument() || i.version.compareTo(r.version) > 0 || 0 === i.version.compareTo(r.version) && r.hasPendingWrites ? (e.addEntry(i), \n s = s.insert(n, i)) : M(\"LocalStore\", \"Ignoring outdated watch update for \", n, \". Current version:\", r.version, \" Watch version:\", i.version);\n })), s;\n }));\n}\n\n/**\n * Gets the mutation batch after the passed in batchId in the mutation queue\n * or null if empty.\n * @param afterBatchId - If provided, the batch to search after.\n * @returns The next mutation or null if there wasn't one.\n */\nfunction Qr(t, e) {\n const n = K(t);\n return n.persistence.runTransaction(\"Get next mutation batch\", \"readonly\", (t => (void 0 === e && (e = -1), \n n.gs.getNextMutationBatchAfterBatchId(t, e))));\n}\n\n/**\n * Reads the current value of a Document with a given key or null if not\n * found - used for testing.\n */\n/**\n * Assigns the given target an internal ID so that its results can be pinned so\n * they don't get GC'd. A target must be allocated in the local store before\n * the store can be used to manage its view.\n *\n * Allocating an already allocated `Target` will return the existing `TargetData`\n * for that `Target`.\n */\nfunction Wr(t, e) {\n const n = K(t);\n return n.persistence.runTransaction(\"Allocate target\", \"readwrite\", (t => {\n let s;\n return n.Un.getTargetData(t, e).next((i => i ? (\n // This target has been listened to previously, so reuse the\n // previous targetID.\n // TODO(mcg): freshen last accessed date?\n s = i, si.resolve(s)) : n.Un.allocateTargetId(t).next((i => (s = new yi(e, i, 0 /* Listen */ , t.currentSequenceNumber), \n n.Un.addTargetData(t, s).next((() => s)))))));\n })).then((t => {\n // If Multi-Tab is enabled, the existing target data may be newer than\n // the in-memory data\n const s = n.Ms.get(t.targetId);\n return (null === s || t.snapshotVersion.compareTo(s.snapshotVersion) > 0) && (n.Ms = n.Ms.insert(t.targetId, t), \n n.$s.set(e, t.targetId)), t;\n }));\n}\n\n/**\n * Returns the TargetData as seen by the LocalStore, including updates that may\n * have not yet been persisted to the TargetCache.\n */\n// Visible for testing.\n/**\n * Unpins all the documents associated with the given target. If\n * `keepPersistedTargetData` is set to false and Eager GC enabled, the method\n * directly removes the associated target data from the target cache.\n *\n * Releasing a non-existing `Target` is a no-op.\n */\n// PORTING NOTE: `keepPersistedTargetData` is multi-tab only.\nasync function zr(t, e, n) {\n const s = K(t), i = s.Ms.get(e), r = n ? \"readwrite\" : \"readwrite-primary\";\n try {\n n || await s.persistence.runTransaction(\"Release target\", r, (t => s.persistence.referenceDelegate.removeTarget(t, i)));\n } catch (t) {\n if (!ui(t)) throw t;\n // All `releaseTarget` does is record the final metadata state for the\n // target, but we've been recording this periodically during target\n // activity. If we lose this write this could cause a very slight\n // difference in the order of target deletion during GC, but we\n // don't define exact LRU semantics so this is acceptable.\n M(\"LocalStore\", `Failed to update sequence numbers for target ${e}: ${t}`);\n }\n s.Ms = s.Ms.remove(e), s.$s.delete(i.target);\n}\n\n/**\n * Runs the specified query against the local store and returns the results,\n * potentially taking advantage of query data from previous executions (such\n * as the set of remote keys).\n *\n * @param usePreviousResults - Whether results from previous executions can\n * be used to optimize this query execution.\n */ function Hr(t, e, n) {\n const s = K(t);\n let i = at.min(), r = On();\n return s.persistence.runTransaction(\"Execute query\", \"readonly\", (t => function(t, e, n) {\n const s = K(t), i = s.$s.get(n);\n return void 0 !== i ? si.resolve(s.Ms.get(i)) : s.Un.getTargetData(e, n);\n }(s, t, De(e)).next((e => {\n if (e) return i = e.lastLimboFreeSnapshotVersion, s.Un.getMatchingKeysForTargetId(t, e.targetId).next((t => {\n r = t;\n }));\n })).next((() => s.Os.As(t, e, n ? i : at.min(), n ? r : On()))).next((t => ({\n documents: t,\n Ks: r\n })))));\n}\n\n// PORTING NOTE: Multi-Tab only.\nfunction Jr(t, e) {\n const n = K(t), s = K(n.Un), i = n.Ms.get(e);\n return i ? Promise.resolve(i.target) : n.persistence.runTransaction(\"Get target data\", \"readonly\", (t => s.Tt(t, e).next((t => t ? t.target : null))));\n}\n\n/**\n * Returns the set of documents that have been updated since the last call.\n * If this is the first call, returns the set of changes since client\n * initialization. Further invocations will return document that have changed\n * since the prior call.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction Yr(t) {\n const e = K(t);\n return e.persistence.runTransaction(\"Get new document changes\", \"readonly\", (t => function(t, e, n) {\n const s = K(t);\n let i = Dn(), r = Ti(n);\n const o = br(e), c = IDBKeyRange.lowerBound(r, !0);\n return o.Qt({\n index: Bs.readTimeIndex,\n range: c\n }, ((t, e) => {\n // Unlike `getEntry()` and others, `getNewDocumentChanges()` parses\n // the documents directly since we want to keep sentinel deletes.\n const n = Ii(s.O, e);\n i = i.insert(n.key, n), r = e.readTime;\n })).next((() => ({\n ws: i,\n readTime: Ai(r)\n })));\n }\n /**\n * Returns the read time of the most recently read document in the cache, or\n * SnapshotVersion.min() if not available.\n */\n // PORTING NOTE: This is only used for multi-tab synchronization.\n (e.Bs, t, e.Fs))).then((({ws: t, readTime: n}) => (e.Fs = n, t)));\n}\n\n/**\n * Reads the newest document change from persistence and moves the internal\n * synchronization marker forward so that calls to `getNewDocumentChanges()`\n * only return changes that happened after client initialization.\n */\n// PORTING NOTE: Multi-Tab only.\nasync function Xr(t) {\n const e = K(t);\n return e.persistence.runTransaction(\"Synchronize last document change read time\", \"readonly\", (t => function(t) {\n const e = br(t);\n // If there are no existing entries, we return SnapshotVersion.min().\n let n = at.min();\n return e.Qt({\n index: Bs.readTimeIndex,\n reverse: !0\n }, ((t, e, s) => {\n e.readTime && (n = Ai(e.readTime)), s.done();\n })).next((() => n));\n }(t))).then((t => {\n e.Fs = t;\n }));\n}\n\n/**\n * Creates a new target using the given bundle name, which will be used to\n * hold the keys of all documents from the bundle in query-document mappings.\n * This ensures that the loaded documents do not get garbage collected\n * right away.\n */\n/**\n * Applies the documents from a bundle to the \"ground-state\" (remote)\n * documents.\n *\n * LocalDocuments are re-calculated if there are remaining mutations in the\n * queue.\n */\nasync function Zr(t, e, n, s) {\n const i = K(t);\n let r = On(), o = Dn();\n for (const t of n) {\n const n = e.Gs(t.metadata.name);\n t.document && (r = r.add(n));\n const s = e.js(t);\n s.setReadTime(e.Qs(t.metadata.readTime)), o = o.insert(n, s);\n }\n const c = i.Bs.newChangeBuffer({\n trackRemovals: !0\n }), u = await Wr(i, function(t) {\n // It is OK that the path used for the query is not valid, because this will\n // not be read and queried.\n return De(Ae(_t.fromString(`__bundle__/docs/${t}`)));\n }(s));\n // Allocates a target to hold all document keys from the bundle, such that\n // they will not get garbage collected right away.\n return i.persistence.runTransaction(\"Apply bundle documents\", \"readwrite\", (t => jr(t, c, o).next((e => (c.apply(t), \n e))).next((e => i.Un.removeMatchingKeysForTargetId(t, u.targetId).next((() => i.Un.addMatchingKeys(t, r, u.targetId))).next((() => i.Us.Ts(t, e))).next((() => e))))));\n}\n\n/**\n * Returns a promise of a boolean to indicate if the given bundle has already\n * been loaded and the create time is newer than the current loading bundle.\n */\n/**\n * Saves the given `NamedQuery` to local persistence.\n */\nasync function to(t, e, n = On()) {\n // Allocate a target for the named query such that it can be resumed\n // from associated read time if users use it to listen.\n // NOTE: this also means if no corresponding target exists, the new target\n // will remain active and will not get collected, unless users happen to\n // unlisten the query somehow.\n const s = await Wr(t, De(Si(e.bundledQuery))), i = K(t);\n return i.persistence.runTransaction(\"Save named query\", \"readwrite\", (t => {\n const r = Zn(e.readTime);\n // Simply save the query itself if it is older than what the SDK already\n // has.\n if (s.snapshotVersion.compareTo(r) >= 0) return i.Kn.saveNamedQuery(t, e);\n // Update existing target data because the query from the bundle is newer.\n const o = s.withResumeToken(pt.EMPTY_BYTE_STRING, r);\n return i.Ms = i.Ms.insert(o.targetId, o), i.Un.updateTargetData(t, o).next((() => i.Un.removeMatchingKeysForTargetId(t, s.targetId))).next((() => i.Un.addMatchingKeys(t, n, s.targetId))).next((() => i.Kn.saveNamedQuery(t, e)));\n }));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class eo {\n constructor(t) {\n this.O = t, this.Ws = new Map, this.zs = new Map;\n }\n getBundleMetadata(t, e) {\n return si.resolve(this.Ws.get(e));\n }\n saveBundleMetadata(t, e) {\n /** Decodes a BundleMetadata proto into a BundleMetadata object. */\n var n;\n return this.Ws.set(e.id, {\n id: (n = e).id,\n version: n.version,\n createTime: Zn(n.createTime)\n }), si.resolve();\n }\n getNamedQuery(t, e) {\n return si.resolve(this.zs.get(e));\n }\n saveNamedQuery(t, e) {\n return this.zs.set(e.name, function(t) {\n return {\n name: t.name,\n query: Si(t.bundledQuery),\n readTime: Zn(t.readTime)\n };\n }(e)), si.resolve();\n }\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An in-memory implementation of DocumentOverlayCache.\n */ class no {\n constructor() {\n // A map sorted by DocumentKey, whose value is a pair of the largest batch id\n // for the overlay and the overlay itself.\n this.overlays = new An(Nt.comparator), this.Hs = new Map;\n }\n getOverlay(t, e) {\n return si.resolve(this.overlays.get(e));\n }\n saveOverlays(t, e, n) {\n return n.forEach((n => {\n this.Yt(t, e, n);\n })), si.resolve();\n }\n removeOverlaysForBatchId(t, e, n) {\n const s = this.Hs.get(n);\n return void 0 !== s && (s.forEach((t => this.overlays = this.overlays.remove(t))), \n this.Hs.delete(n)), si.resolve();\n }\n getOverlaysForCollection(t, e, n) {\n const s = new Map, i = e.length + 1, r = new Nt(e.child(\"\")), o = this.overlays.getIteratorFrom(r);\n for (;o.hasNext(); ) {\n const t = o.getNext().value, r = t.getKey();\n if (!e.isPrefixOf(r.path)) break;\n // Documents from sub-collections\n r.path.length === i && (t.largestBatchId > n && s.set(t.getKey(), t));\n }\n return si.resolve(s);\n }\n getOverlaysForCollectionGroup(t, e, n, s) {\n let i = new An(((t, e) => t - e));\n const r = this.overlays.getIterator();\n for (;r.hasNext(); ) {\n const t = r.getNext().value;\n if (t.getKey().getCollectionGroup() === e && t.largestBatchId > n) {\n let e = i.get(t.largestBatchId);\n null === e && (e = new Map, i = i.insert(t.largestBatchId, e)), e.set(t.getKey(), t);\n }\n }\n const o = new Map, c = i.getIterator();\n for (;c.hasNext(); ) {\n if (c.getNext().value.forEach(((t, e) => o.set(e, t))), o.size >= s) break;\n }\n return si.resolve(o);\n }\n Yt(t, e, n) {\n if (null === n) return;\n // Remove the association of the overlay to its batch id.\n const s = this.overlays.get(n.key);\n null !== s && this.Hs.get(s.largestBatchId).delete(n.key), this.overlays = this.overlays.insert(n.key, new gi(e, n));\n // Create the association of this overlay to the given largestBatchId.\n let i = this.Hs.get(e);\n void 0 === i && (i = new Set, this.Hs.set(e, i)), i.add(n.key);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A collection of references to a document from some kind of numbered entity\n * (either a target ID or batch ID). As references are added to or removed from\n * the set corresponding events are emitted to a registered garbage collector.\n *\n * Each reference is represented by a DocumentReference object. Each of them\n * contains enough information to uniquely identify the reference. They are all\n * stored primarily in a set sorted by key. A document is considered garbage if\n * there's no references in that set (this can be efficiently checked thanks to\n * sorting by key).\n *\n * ReferenceSet also keeps a secondary set that contains references sorted by\n * IDs. This one is used to efficiently implement removal of all references by\n * some target ID.\n */ class so {\n constructor() {\n // A set of outstanding references to a document sorted by key.\n this.Js = new bn(io.Ys), \n // A set of outstanding references to a document sorted by target id.\n this.Xs = new bn(io.Zs);\n }\n /** Returns true if the reference set contains no references. */ isEmpty() {\n return this.Js.isEmpty();\n }\n /** Adds a reference to the given document key for the given ID. */ addReference(t, e) {\n const n = new io(t, e);\n this.Js = this.Js.add(n), this.Xs = this.Xs.add(n);\n }\n /** Add references to the given document keys for the given ID. */ ti(t, e) {\n t.forEach((t => this.addReference(t, e)));\n }\n /**\n * Removes a reference to the given document key for the given\n * ID.\n */ removeReference(t, e) {\n this.ei(new io(t, e));\n }\n ni(t, e) {\n t.forEach((t => this.removeReference(t, e)));\n }\n /**\n * Clears all references with a given ID. Calls removeRef() for each key\n * removed.\n */ si(t) {\n const e = new Nt(new _t([])), n = new io(e, t), s = new io(e, t + 1), i = [];\n return this.Xs.forEachInRange([ n, s ], (t => {\n this.ei(t), i.push(t.key);\n })), i;\n }\n ii() {\n this.Js.forEach((t => this.ei(t)));\n }\n ei(t) {\n this.Js = this.Js.delete(t), this.Xs = this.Xs.delete(t);\n }\n ri(t) {\n const e = new Nt(new _t([])), n = new io(e, t), s = new io(e, t + 1);\n let i = On();\n return this.Xs.forEachInRange([ n, s ], (t => {\n i = i.add(t.key);\n })), i;\n }\n containsKey(t) {\n const e = new io(t, 0), n = this.Js.firstAfterOrEqual(e);\n return null !== n && t.isEqual(n.key);\n }\n}\n\nclass io {\n constructor(t, e) {\n this.key = t, this.oi = e;\n }\n /** Compare by key then by ID */ static Ys(t, e) {\n return Nt.comparator(t.key, e.key) || rt(t.oi, e.oi);\n }\n /** Compare by ID then by key */ static Zs(t, e) {\n return rt(t.oi, e.oi) || Nt.comparator(t.key, e.key);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class ro {\n constructor(t, e) {\n this.indexManager = t, this.referenceDelegate = e, \n /**\n * The set of all mutations that have been sent but not yet been applied to\n * the backend.\n */\n this.gs = [], \n /** Next value to use when assigning sequential IDs to each mutation batch. */\n this.ci = 1, \n /** An ordered mapping between documents and the mutations batch IDs. */\n this.ui = new bn(io.Ys);\n }\n checkEmpty(t) {\n return si.resolve(0 === this.gs.length);\n }\n addMutationBatch(t, e, n, s) {\n const i = this.ci;\n this.ci++, this.gs.length > 0 && this.gs[this.gs.length - 1];\n const r = new wi(i, e, n, s);\n this.gs.push(r);\n // Track references by document key and index collection parents.\n for (const e of s) this.ui = this.ui.add(new io(e.key, i)), this.indexManager.addToCollectionParentIndex(t, e.key.path.popLast());\n return si.resolve(r);\n }\n lookupMutationBatch(t, e) {\n return si.resolve(this.ai(e));\n }\n getNextMutationBatchAfterBatchId(t, e) {\n const n = e + 1, s = this.hi(n), i = s < 0 ? 0 : s;\n // The requested batchId may still be out of range so normalize it to the\n // start of the queue.\n return si.resolve(this.gs.length > i ? this.gs[i] : null);\n }\n getHighestUnacknowledgedBatchId() {\n return si.resolve(0 === this.gs.length ? -1 : this.ci - 1);\n }\n getAllMutationBatches(t) {\n return si.resolve(this.gs.slice());\n }\n getAllMutationBatchesAffectingDocumentKey(t, e) {\n const n = new io(e, 0), s = new io(e, Number.POSITIVE_INFINITY), i = [];\n return this.ui.forEachInRange([ n, s ], (t => {\n const e = this.ai(t.oi);\n i.push(e);\n })), si.resolve(i);\n }\n getAllMutationBatchesAffectingDocumentKeys(t, e) {\n let n = new bn(rt);\n return e.forEach((t => {\n const e = new io(t, 0), s = new io(t, Number.POSITIVE_INFINITY);\n this.ui.forEachInRange([ e, s ], (t => {\n n = n.add(t.oi);\n }));\n })), si.resolve(this.li(n));\n }\n getAllMutationBatchesAffectingQuery(t, e) {\n // Use the query path as a prefix for testing if a document matches the\n // query.\n const n = e.path, s = n.length + 1;\n // Construct a document reference for actually scanning the index. Unlike\n // the prefix the document key in this reference must have an even number of\n // segments. The empty segment can be used a suffix of the query path\n // because it precedes all other segments in an ordered traversal.\n let i = n;\n Nt.isDocumentKey(i) || (i = i.child(\"\"));\n const r = new io(new Nt(i), 0);\n // Find unique batchIDs referenced by all documents potentially matching the\n // query.\n let o = new bn(rt);\n return this.ui.forEachWhile((t => {\n const e = t.key.path;\n return !!n.isPrefixOf(e) && (\n // Rows with document keys more than one segment longer than the query\n // path can't be matches. For example, a query on 'rooms' can't match\n // the document /rooms/abc/messages/xyx.\n // TODO(mcg): we'll need a different scanner when we implement\n // ancestor queries.\n e.length === s && (o = o.add(t.oi)), !0);\n }), r), si.resolve(this.li(o));\n }\n li(t) {\n // Construct an array of matching batches, sorted by batchID to ensure that\n // multiple mutations affecting the same document key are applied in order.\n const e = [];\n return t.forEach((t => {\n const n = this.ai(t);\n null !== n && e.push(n);\n })), e;\n }\n removeMutationBatch(t, e) {\n U(0 === this.fi(e.batchId, \"removed\")), this.gs.shift();\n let n = this.ui;\n return si.forEach(e.mutations, (s => {\n const i = new io(s.key, e.batchId);\n return n = n.delete(i), this.referenceDelegate.markPotentiallyOrphaned(t, s.key);\n })).next((() => {\n this.ui = n;\n }));\n }\n Qe(t) {\n // No-op since the memory mutation queue does not maintain a separate cache.\n }\n containsKey(t, e) {\n const n = new io(e, 0), s = this.ui.firstAfterOrEqual(n);\n return si.resolve(e.isEqual(s && s.key));\n }\n performConsistencyCheck(t) {\n return this.gs.length, si.resolve();\n }\n /**\n * Finds the index of the given batchId in the mutation queue and asserts that\n * the resulting index is within the bounds of the queue.\n *\n * @param batchId - The batchId to search for\n * @param action - A description of what the caller is doing, phrased in passive\n * form (e.g. \"acknowledged\" in a routine that acknowledges batches).\n */ fi(t, e) {\n return this.hi(t);\n }\n /**\n * Finds the index of the given batchId in the mutation queue. This operation\n * is O(1).\n *\n * @returns The computed index of the batch with the given batchId, based on\n * the state of the queue. Note this index can be negative if the requested\n * batchId has already been remvoed from the queue or past the end of the\n * queue if the batchId is larger than the last added batch.\n */ hi(t) {\n if (0 === this.gs.length) \n // As an index this is past the end of the queue\n return 0;\n // Examine the front of the queue to figure out the difference between the\n // batchId and indexes in the array. Note that since the queue is ordered\n // by batchId, if the first batch has a larger batchId then the requested\n // batchId doesn't exist in the queue.\n return t - this.gs[0].batchId;\n }\n /**\n * A version of lookupMutationBatch that doesn't return a promise, this makes\n * other functions that uses this code easier to read and more efficent.\n */ ai(t) {\n const e = this.hi(t);\n if (e < 0 || e >= this.gs.length) return null;\n return this.gs[e];\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The memory-only RemoteDocumentCache for IndexedDb. To construct, invoke\n * `newMemoryRemoteDocumentCache()`.\n */\nclass oo {\n /**\n * @param sizer - Used to assess the size of a document. For eager GC, this is\n * expected to just return 0 to avoid unnecessarily doing the work of\n * calculating the size.\n */\n constructor(t) {\n this.di = t, \n /** Underlying cache of documents and their read times. */\n this.docs = new An(Nt.comparator), \n /** Size of all cached documents. */\n this.size = 0;\n }\n setIndexManager(t) {\n this.indexManager = t;\n }\n /**\n * Adds the supplied entry to the cache and updates the cache size as appropriate.\n *\n * All calls of `addEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */ addEntry(t, e) {\n const n = e.key, s = this.docs.get(n), i = s ? s.size : 0, r = this.di(e);\n return this.docs = this.docs.insert(n, {\n document: e.mutableCopy(),\n size: r\n }), this.size += r - i, this.indexManager.addToCollectionParentIndex(t, n.path.popLast());\n }\n /**\n * Removes the specified entry from the cache and updates the cache size as appropriate.\n *\n * All calls of `removeEntry` are required to go through the RemoteDocumentChangeBuffer\n * returned by `newChangeBuffer()`.\n */ removeEntry(t) {\n const e = this.docs.get(t);\n e && (this.docs = this.docs.remove(t), this.size -= e.size);\n }\n getEntry(t, e) {\n const n = this.docs.get(e);\n return si.resolve(n ? n.document.mutableCopy() : Jt.newInvalidDocument(e));\n }\n getEntries(t, e) {\n let n = Dn();\n return e.forEach((t => {\n const e = this.docs.get(t);\n n = n.insert(t, e ? e.document.mutableCopy() : Jt.newInvalidDocument(t));\n })), si.resolve(n);\n }\n getAll(t, e, n) {\n let s = Dn();\n // Documents are ordered by key, so we can use a prefix scan to narrow down\n // the documents we need to match the query against.\n const i = new Nt(e.child(\"\")), r = this.docs.getIteratorFrom(i);\n for (;r.hasNext(); ) {\n const {key: t, value: {document: i}} = r.getNext();\n if (!e.isPrefixOf(t.path)) break;\n t.path.length > e.length + 1 || (i.readTime.compareTo(n) <= 0 || (s = s.insert(i.key, i.mutableCopy())));\n }\n return si.resolve(s);\n }\n _i(t, e) {\n return si.forEach(this.docs, (t => e(t)));\n }\n newChangeBuffer(t) {\n // `trackRemovals` is ignores since the MemoryRemoteDocumentCache keeps\n // a separate changelog and does not need special handling for removals.\n return new co(this);\n }\n getSize(t) {\n return si.resolve(this.size);\n }\n}\n\n/**\n * Creates a new memory-only RemoteDocumentCache.\n *\n * @param sizer - Used to assess the size of a document. For eager GC, this is\n * expected to just return 0 to avoid unnecessarily doing the work of\n * calculating the size.\n */\n/**\n * Handles the details of adding and updating documents in the MemoryRemoteDocumentCache.\n */\nclass co extends Tr {\n constructor(t) {\n super(), this.Tn = t;\n }\n applyChanges(t) {\n const e = [];\n return this.changes.forEach(((n, s) => {\n s.isValidDocument() ? e.push(this.Tn.addEntry(t, s)) : this.Tn.removeEntry(n);\n })), si.waitFor(e);\n }\n getFromCache(t, e) {\n return this.Tn.getEntry(t, e);\n }\n getAllFromCache(t, e) {\n return this.Tn.getEntries(t, e);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class uo {\n constructor(t) {\n this.persistence = t, \n /**\n * Maps a target to the data about that target\n */\n this.wi = new Er((t => se(t)), re), \n /** The last received snapshot version. */\n this.lastRemoteSnapshotVersion = at.min(), \n /** The highest numbered target ID encountered. */\n this.highestTargetId = 0, \n /** The highest sequence number encountered. */\n this.mi = 0, \n /**\n * A ordered bidirectional mapping between documents and the remote target\n * IDs.\n */\n this.gi = new so, this.targetCount = 0, this.yi = ar.He();\n }\n forEachTarget(t, e) {\n return this.wi.forEach(((t, n) => e(n))), si.resolve();\n }\n getLastRemoteSnapshotVersion(t) {\n return si.resolve(this.lastRemoteSnapshotVersion);\n }\n getHighestSequenceNumber(t) {\n return si.resolve(this.mi);\n }\n allocateTargetId(t) {\n return this.highestTargetId = this.yi.next(), si.resolve(this.highestTargetId);\n }\n setTargetsMetadata(t, e, n) {\n return n && (this.lastRemoteSnapshotVersion = n), e > this.mi && (this.mi = e), \n si.resolve();\n }\n Ze(t) {\n this.wi.set(t.target, t);\n const e = t.targetId;\n e > this.highestTargetId && (this.yi = new ar(e), this.highestTargetId = e), t.sequenceNumber > this.mi && (this.mi = t.sequenceNumber);\n }\n addTargetData(t, e) {\n return this.Ze(e), this.targetCount += 1, si.resolve();\n }\n updateTargetData(t, e) {\n return this.Ze(e), si.resolve();\n }\n removeTargetData(t, e) {\n return this.wi.delete(e.target), this.gi.si(e.targetId), this.targetCount -= 1, \n si.resolve();\n }\n removeTargets(t, e, n) {\n let s = 0;\n const i = [];\n return this.wi.forEach(((r, o) => {\n o.sequenceNumber <= e && null === n.get(o.targetId) && (this.wi.delete(r), i.push(this.removeMatchingKeysForTargetId(t, o.targetId)), \n s++);\n })), si.waitFor(i).next((() => s));\n }\n getTargetCount(t) {\n return si.resolve(this.targetCount);\n }\n getTargetData(t, e) {\n const n = this.wi.get(e) || null;\n return si.resolve(n);\n }\n addMatchingKeys(t, e, n) {\n return this.gi.ti(e, n), si.resolve();\n }\n removeMatchingKeys(t, e, n) {\n this.gi.ni(e, n);\n const s = this.persistence.referenceDelegate, i = [];\n return s && e.forEach((e => {\n i.push(s.markPotentiallyOrphaned(t, e));\n })), si.waitFor(i);\n }\n removeMatchingKeysForTargetId(t, e) {\n return this.gi.si(e), si.resolve();\n }\n getMatchingKeysForTargetId(t, e) {\n const n = this.gi.ri(e);\n return si.resolve(n);\n }\n containsKey(t, e) {\n return si.resolve(this.gi.containsKey(e));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A memory-backed instance of Persistence. Data is stored only in RAM and\n * not persisted across sessions.\n */\nclass ao {\n /**\n * The constructor accepts a factory for creating a reference delegate. This\n * allows both the delegate and this instance to have strong references to\n * each other without having nullable fields that would then need to be\n * checked or asserted on every access.\n */\n constructor(t, e) {\n this.pi = {}, this.overlays = {}, this.Nn = new nt(0), this.xn = !1, this.xn = !0, \n this.referenceDelegate = t(this), this.Un = new uo(this);\n this.indexManager = new Wi, this.qn = function(t) {\n return new oo(t);\n }((t => this.referenceDelegate.Ii(t))), this.O = new pi(e), this.Kn = new eo(this.O);\n }\n start() {\n return Promise.resolve();\n }\n shutdown() {\n // No durable state to ensure is closed on shutdown.\n return this.xn = !1, Promise.resolve();\n }\n get started() {\n return this.xn;\n }\n setDatabaseDeletedListener() {\n // No op.\n }\n setNetworkEnabled() {\n // No op.\n }\n getIndexManager(t) {\n // We do not currently support indices for memory persistence, so we can\n // return the same shared instance of the memory index manager.\n return this.indexManager;\n }\n getDocumentOverlayCache(t) {\n let e = this.overlays[t.toKey()];\n return e || (e = new no, this.overlays[t.toKey()] = e), e;\n }\n getMutationQueue(t, e) {\n let n = this.pi[t.toKey()];\n return n || (n = new ro(e, this.referenceDelegate), this.pi[t.toKey()] = n), n;\n }\n getTargetCache() {\n return this.Un;\n }\n getRemoteDocumentCache() {\n return this.qn;\n }\n getBundleCache() {\n return this.Kn;\n }\n runTransaction(t, e, n) {\n M(\"MemoryPersistence\", \"Starting transaction:\", t);\n const s = new ho(this.Nn.next());\n return this.referenceDelegate.Ei(), n(s).next((t => this.referenceDelegate.Ti(s).next((() => t)))).toPromise().then((t => (s.raiseOnCommittedEvent(), \n t)));\n }\n Ai(t, e) {\n return si.or(Object.values(this.pi).map((n => () => n.containsKey(t, e))));\n }\n}\n\n/**\n * Memory persistence is not actually transactional, but future implementations\n * may have transaction-scoped state.\n */ class ho extends ni {\n constructor(t) {\n super(), this.currentSequenceNumber = t;\n }\n}\n\nclass lo {\n constructor(t) {\n this.persistence = t, \n /** Tracks all documents that are active in Query views. */\n this.Ri = new so, \n /** The list of documents that are potentially GCed after each transaction. */\n this.Pi = null;\n }\n static bi(t) {\n return new lo(t);\n }\n get vi() {\n if (this.Pi) return this.Pi;\n throw L();\n }\n addReference(t, e, n) {\n return this.Ri.addReference(n, e), this.vi.delete(n.toString()), si.resolve();\n }\n removeReference(t, e, n) {\n return this.Ri.removeReference(n, e), this.vi.add(n.toString()), si.resolve();\n }\n markPotentiallyOrphaned(t, e) {\n return this.vi.add(e.toString()), si.resolve();\n }\n removeTarget(t, e) {\n this.Ri.si(e.targetId).forEach((t => this.vi.add(t.toString())));\n const n = this.persistence.getTargetCache();\n return n.getMatchingKeysForTargetId(t, e.targetId).next((t => {\n t.forEach((t => this.vi.add(t.toString())));\n })).next((() => n.removeTargetData(t, e)));\n }\n Ei() {\n this.Pi = new Set;\n }\n Ti(t) {\n // Remove newly orphaned documents.\n const e = this.persistence.getRemoteDocumentCache().newChangeBuffer();\n return si.forEach(this.vi, (n => {\n const s = Nt.fromPath(n);\n return this.Vi(t, s).next((t => {\n t || e.removeEntry(s, at.min());\n }));\n })).next((() => (this.Pi = null, e.apply(t))));\n }\n updateLimboDocument(t, e) {\n return this.Vi(t, e).next((t => {\n t ? this.vi.delete(e.toString()) : this.vi.add(e.toString());\n }));\n }\n Ii(t) {\n // For eager GC, we don't care about the document size, there are no size thresholds.\n return 0;\n }\n Vi(t, e) {\n return si.or([ () => si.resolve(this.Ri.containsKey(e)), () => this.persistence.getTargetCache().containsKey(t, e), () => this.persistence.Ai(t, e) ]);\n }\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// The format of the LocalStorage key that stores the client state is:\n// firestore_clients_<persistence_prefix>_<instance_key>\n/** Assembles the key for a client state in WebStorage */\nfunction fo(t, e) {\n return `firestore_clients_${t}_${e}`;\n}\n\n// The format of the WebStorage key that stores the mutation state is:\n// firestore_mutations_<persistence_prefix>_<batch_id>\n// (for unauthenticated users)\n// or: firestore_mutations_<persistence_prefix>_<batch_id>_<user_uid>\n\n// 'user_uid' is last to avoid needing to escape '_' characters that it might\n// contain.\n/** Assembles the key for a mutation batch in WebStorage */\nfunction _o(t, e, n) {\n let s = `firestore_mutations_${t}_${n}`;\n return e.isAuthenticated() && (s += `_${e.uid}`), s;\n}\n\n// The format of the WebStorage key that stores a query target's metadata is:\n// firestore_targets_<persistence_prefix>_<target_id>\n/** Assembles the key for a query state in WebStorage */\nfunction wo(t, e) {\n return `firestore_targets_${t}_${e}`;\n}\n\n// The WebStorage prefix that stores the primary tab's online state. The\n// format of the key is:\n// firestore_online_state_<persistence_prefix>\n/**\n * Holds the state of a mutation batch, including its user ID, batch ID and\n * whether the batch is 'pending', 'acknowledged' or 'rejected'.\n */\n// Visible for testing\nclass mo {\n constructor(t, e, n, s) {\n this.user = t, this.batchId = e, this.state = n, this.error = s;\n }\n /**\n * Parses a MutationMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */ static Si(t, e, n) {\n const s = JSON.parse(n);\n let i, r = \"object\" == typeof s && -1 !== [ \"pending\", \"acknowledged\", \"rejected\" ].indexOf(s.state) && (void 0 === s.error || \"object\" == typeof s.error);\n return r && s.error && (r = \"string\" == typeof s.error.message && \"string\" == typeof s.error.code, \n r && (i = new j(s.error.code, s.error.message))), r ? new mo(t, e, s.state, i) : ($(\"SharedClientState\", `Failed to parse mutation state for ID '${e}': ${n}`), \n null);\n }\n Di() {\n const t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }\n}\n\n/**\n * Holds the state of a query target, including its target ID and whether the\n * target is 'not-current', 'current' or 'rejected'.\n */\n// Visible for testing\nclass go {\n constructor(t, e, n) {\n this.targetId = t, this.state = e, this.error = n;\n }\n /**\n * Parses a QueryTargetMetadata from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */ static Si(t, e) {\n const n = JSON.parse(e);\n let s, i = \"object\" == typeof n && -1 !== [ \"not-current\", \"current\", \"rejected\" ].indexOf(n.state) && (void 0 === n.error || \"object\" == typeof n.error);\n return i && n.error && (i = \"string\" == typeof n.error.message && \"string\" == typeof n.error.code, \n i && (s = new j(n.error.code, n.error.message))), i ? new go(t, n.state, s) : ($(\"SharedClientState\", `Failed to parse target state for ID '${t}': ${e}`), \n null);\n }\n Di() {\n const t = {\n state: this.state,\n updateTimeMs: Date.now()\n };\n return this.error && (t.error = {\n code: this.error.code,\n message: this.error.message\n }), JSON.stringify(t);\n }\n}\n\n/**\n * This class represents the immutable ClientState for a client read from\n * WebStorage, containing the list of active query targets.\n */ class yo {\n constructor(t, e) {\n this.clientId = t, this.activeTargetIds = e;\n }\n /**\n * Parses a RemoteClientState from the JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */ static Si(t, e) {\n const n = JSON.parse(e);\n let s = \"object\" == typeof n && n.activeTargetIds instanceof Array, i = $n();\n for (let t = 0; s && t < n.activeTargetIds.length; ++t) s = Ct(n.activeTargetIds[t]), \n i = i.add(n.activeTargetIds[t]);\n return s ? new yo(t, i) : ($(\"SharedClientState\", `Failed to parse client data for instance '${t}': ${e}`), \n null);\n }\n}\n\n/**\n * This class represents the online state for all clients participating in\n * multi-tab. The online state is only written to by the primary client, and\n * used in secondary clients to update their query views.\n */ class po {\n constructor(t, e) {\n this.clientId = t, this.onlineState = e;\n }\n /**\n * Parses a SharedOnlineState from its JSON representation in WebStorage.\n * Logs a warning and returns null if the format of the data is not valid.\n */ static Si(t) {\n const e = JSON.parse(t);\n return \"object\" == typeof e && -1 !== [ \"Unknown\", \"Online\", \"Offline\" ].indexOf(e.onlineState) && \"string\" == typeof e.clientId ? new po(e.clientId, e.onlineState) : ($(\"SharedClientState\", `Failed to parse online state: ${t}`), \n null);\n }\n}\n\n/**\n * Metadata state of the local client. Unlike `RemoteClientState`, this class is\n * mutable and keeps track of all pending mutations, which allows us to\n * update the range of pending mutation batch IDs as new mutations are added or\n * removed.\n *\n * The data in `LocalClientState` is not read from WebStorage and instead\n * updated via its instance methods. The updated state can be serialized via\n * `toWebStorageJSON()`.\n */\n// Visible for testing.\nclass Io {\n constructor() {\n this.activeTargetIds = $n();\n }\n Ci(t) {\n this.activeTargetIds = this.activeTargetIds.add(t);\n }\n Ni(t) {\n this.activeTargetIds = this.activeTargetIds.delete(t);\n }\n /**\n * Converts this entry into a JSON-encoded format we can use for WebStorage.\n * Does not encode `clientId` as it is part of the key in WebStorage.\n */ Di() {\n const t = {\n activeTargetIds: this.activeTargetIds.toArray(),\n updateTimeMs: Date.now()\n };\n return JSON.stringify(t);\n }\n}\n\n/**\n * `WebStorageSharedClientState` uses WebStorage (window.localStorage) as the\n * backing store for the SharedClientState. It keeps track of all active\n * clients and supports modifications of the local client's data.\n */ class Eo {\n constructor(t, e, n, s, i) {\n this.window = t, this.Sn = e, this.persistenceKey = n, this.xi = s, this.syncEngine = null, \n this.onlineStateHandler = null, this.sequenceNumberHandler = null, this.ki = this.Oi.bind(this), \n this.Mi = new An(rt), this.started = !1, \n /**\n * Captures WebStorage events that occur before `start()` is called. These\n * events are replayed once `WebStorageSharedClientState` is started.\n */\n this.$i = [];\n // Escape the special characters mentioned here:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n const r = n.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n this.storage = this.window.localStorage, this.currentUser = i, this.Fi = fo(this.persistenceKey, this.xi), \n this.Bi = \n /** Assembles the key for the current sequence number. */\n function(t) {\n return `firestore_sequence_number_${t}`;\n }\n /**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (this.persistenceKey), this.Mi = this.Mi.insert(this.xi, new Io), this.Li = new RegExp(`^firestore_clients_${r}_([^_]*)$`), \n this.Ui = new RegExp(`^firestore_mutations_${r}_(\\\\d+)(?:_(.*))?$`), this.qi = new RegExp(`^firestore_targets_${r}_(\\\\d+)$`), \n this.Ki = \n /** Assembles the key for the online state of the primary tab. */\n function(t) {\n return `firestore_online_state_${t}`;\n }\n // The WebStorage prefix that plays as a event to indicate the remote documents\n // might have changed due to some secondary tabs loading a bundle.\n // format of the key is:\n // firestore_bundle_loaded_<persistenceKey>\n (this.persistenceKey), this.Gi = function(t) {\n return `firestore_bundle_loaded_${t}`;\n }\n // The WebStorage key prefix for the key that stores the last sequence number allocated. The key\n // looks like 'firestore_sequence_number_<persistence_prefix>'.\n (this.persistenceKey), \n // Rather than adding the storage observer during start(), we add the\n // storage observer during initialization. This ensures that we collect\n // events before other components populate their initial state (during their\n // respective start() calls). Otherwise, we might for example miss a\n // mutation that is added after LocalStore's start() processed the existing\n // mutations but before we observe WebStorage events.\n this.window.addEventListener(\"storage\", this.ki);\n }\n /** Returns 'true' if WebStorage is available in the current environment. */ static Vt(t) {\n return !(!t || !t.localStorage);\n }\n async start() {\n // Retrieve the list of existing clients to backfill the data in\n // SharedClientState.\n const t = await this.syncEngine.ds();\n for (const e of t) {\n if (e === this.xi) continue;\n const t = this.getItem(fo(this.persistenceKey, e));\n if (t) {\n const n = yo.Si(e, t);\n n && (this.Mi = this.Mi.insert(n.clientId, n));\n }\n }\n this.ji();\n // Check if there is an existing online state and call the callback handler\n // if applicable.\n const e = this.storage.getItem(this.Ki);\n if (e) {\n const t = this.Qi(e);\n t && this.Wi(t);\n }\n for (const t of this.$i) this.Oi(t);\n this.$i = [], \n // Register a window unload hook to remove the client metadata entry from\n // WebStorage even if `shutdown()` was not called.\n this.window.addEventListener(\"pagehide\", (() => this.shutdown())), this.started = !0;\n }\n writeSequenceNumber(t) {\n this.setItem(this.Bi, JSON.stringify(t));\n }\n getAllActiveQueryTargets() {\n return this.zi(this.Mi);\n }\n isActiveQueryTarget(t) {\n let e = !1;\n return this.Mi.forEach(((n, s) => {\n s.activeTargetIds.has(t) && (e = !0);\n })), e;\n }\n addPendingMutation(t) {\n this.Hi(t, \"pending\");\n }\n updateMutationState(t, e, n) {\n this.Hi(t, e, n), \n // Once a final mutation result is observed by other clients, they no longer\n // access the mutation's metadata entry. Since WebStorage replays events\n // in order, it is safe to delete the entry right after updating it.\n this.Ji(t);\n }\n addLocalQueryTarget(t) {\n let e = \"not-current\";\n // Lookup an existing query state if the target ID was already registered\n // by another tab\n if (this.isActiveQueryTarget(t)) {\n const n = this.storage.getItem(wo(this.persistenceKey, t));\n if (n) {\n const s = go.Si(t, n);\n s && (e = s.state);\n }\n }\n return this.Yi.Ci(t), this.ji(), e;\n }\n removeLocalQueryTarget(t) {\n this.Yi.Ni(t), this.ji();\n }\n isLocalQueryTarget(t) {\n return this.Yi.activeTargetIds.has(t);\n }\n clearQueryState(t) {\n this.removeItem(wo(this.persistenceKey, t));\n }\n updateQueryState(t, e, n) {\n this.Xi(t, e, n);\n }\n handleUserChange(t, e, n) {\n e.forEach((t => {\n this.Ji(t);\n })), this.currentUser = t, n.forEach((t => {\n this.addPendingMutation(t);\n }));\n }\n setOnlineState(t) {\n this.Zi(t);\n }\n notifyBundleLoaded() {\n this.tr();\n }\n shutdown() {\n this.started && (this.window.removeEventListener(\"storage\", this.ki), this.removeItem(this.Fi), \n this.started = !1);\n }\n getItem(t) {\n const e = this.storage.getItem(t);\n return M(\"SharedClientState\", \"READ\", t, e), e;\n }\n setItem(t, e) {\n M(\"SharedClientState\", \"SET\", t, e), this.storage.setItem(t, e);\n }\n removeItem(t) {\n M(\"SharedClientState\", \"REMOVE\", t), this.storage.removeItem(t);\n }\n Oi(t) {\n // Note: The function is typed to take Event to be interface-compatible with\n // `Window.addEventListener`.\n const e = t;\n if (e.storageArea === this.storage) {\n if (M(\"SharedClientState\", \"EVENT\", e.key, e.newValue), e.key === this.Fi) return void $(\"Received WebStorage notification for local change. Another client might have garbage-collected our state\");\n this.Sn.enqueueRetryable((async () => {\n if (this.started) {\n if (null !== e.key) if (this.Li.test(e.key)) {\n if (null == e.newValue) {\n const t = this.er(e.key);\n return this.nr(t, null);\n }\n {\n const t = this.sr(e.key, e.newValue);\n if (t) return this.nr(t.clientId, t);\n }\n } else if (this.Ui.test(e.key)) {\n if (null !== e.newValue) {\n const t = this.ir(e.key, e.newValue);\n if (t) return this.rr(t);\n }\n } else if (this.qi.test(e.key)) {\n if (null !== e.newValue) {\n const t = this.cr(e.key, e.newValue);\n if (t) return this.ur(t);\n }\n } else if (e.key === this.Ki) {\n if (null !== e.newValue) {\n const t = this.Qi(e.newValue);\n if (t) return this.Wi(t);\n }\n } else if (e.key === this.Bi) {\n const t = function(t) {\n let e = nt.A;\n if (null != t) try {\n const n = JSON.parse(t);\n U(\"number\" == typeof n), e = n;\n } catch (t) {\n $(\"SharedClientState\", \"Failed to read sequence number from WebStorage\", t);\n }\n return e;\n }\n /**\n * `MemorySharedClientState` is a simple implementation of SharedClientState for\n * clients using memory persistence. The state in this class remains fully\n * isolated and no synchronization is performed.\n */ (e.newValue);\n t !== nt.A && this.sequenceNumberHandler(t);\n } else if (e.key === this.Gi) return this.syncEngine.ar();\n } else this.$i.push(e);\n }));\n }\n }\n get Yi() {\n return this.Mi.get(this.xi);\n }\n ji() {\n this.setItem(this.Fi, this.Yi.Di());\n }\n Hi(t, e, n) {\n const s = new mo(this.currentUser, t, e, n), i = _o(this.persistenceKey, this.currentUser, t);\n this.setItem(i, s.Di());\n }\n Ji(t) {\n const e = _o(this.persistenceKey, this.currentUser, t);\n this.removeItem(e);\n }\n Zi(t) {\n const e = {\n clientId: this.xi,\n onlineState: t\n };\n this.storage.setItem(this.Ki, JSON.stringify(e));\n }\n Xi(t, e, n) {\n const s = wo(this.persistenceKey, t), i = new go(t, e, n);\n this.setItem(s, i.Di());\n }\n tr() {\n this.setItem(this.Gi, \"value-not-used\");\n }\n /**\n * Parses a client state key in WebStorage. Returns null if the key does not\n * match the expected key format.\n */ er(t) {\n const e = this.Li.exec(t);\n return e ? e[1] : null;\n }\n /**\n * Parses a client state in WebStorage. Returns 'null' if the value could not\n * be parsed.\n */ sr(t, e) {\n const n = this.er(t);\n return yo.Si(n, e);\n }\n /**\n * Parses a mutation batch state in WebStorage. Returns 'null' if the value\n * could not be parsed.\n */ ir(t, e) {\n const n = this.Ui.exec(t), s = Number(n[1]), i = void 0 !== n[2] ? n[2] : null;\n return mo.Si(new C(i), s, e);\n }\n /**\n * Parses a query target state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */ cr(t, e) {\n const n = this.qi.exec(t), s = Number(n[1]);\n return go.Si(s, e);\n }\n /**\n * Parses an online state from WebStorage. Returns 'null' if the value\n * could not be parsed.\n */ Qi(t) {\n return po.Si(t);\n }\n async rr(t) {\n if (t.user.uid === this.currentUser.uid) return this.syncEngine.hr(t.batchId, t.state, t.error);\n M(\"SharedClientState\", `Ignoring mutation for non-active user ${t.user.uid}`);\n }\n ur(t) {\n return this.syncEngine.lr(t.targetId, t.state, t.error);\n }\n nr(t, e) {\n const n = e ? this.Mi.insert(t, e) : this.Mi.remove(t), s = this.zi(this.Mi), i = this.zi(n), r = [], o = [];\n return i.forEach((t => {\n s.has(t) || r.push(t);\n })), s.forEach((t => {\n i.has(t) || o.push(t);\n })), this.syncEngine.dr(r, o).then((() => {\n this.Mi = n;\n }));\n }\n Wi(t) {\n // We check whether the client that wrote this online state is still active\n // by comparing its client ID to the list of clients kept active in\n // IndexedDb. If a client does not update their IndexedDb client state\n // within 5 seconds, it is considered inactive and we don't emit an online\n // state event.\n this.Mi.get(t.clientId) && this.onlineStateHandler(t.onlineState);\n }\n zi(t) {\n let e = $n();\n return t.forEach(((t, n) => {\n e = e.unionWith(n.activeTargetIds);\n })), e;\n }\n}\n\nclass To {\n constructor() {\n this._r = new Io, this.wr = {}, this.onlineStateHandler = null, this.sequenceNumberHandler = null;\n }\n addPendingMutation(t) {\n // No op.\n }\n updateMutationState(t, e, n) {\n // No op.\n }\n addLocalQueryTarget(t) {\n return this._r.Ci(t), this.wr[t] || \"not-current\";\n }\n updateQueryState(t, e, n) {\n this.wr[t] = e;\n }\n removeLocalQueryTarget(t) {\n this._r.Ni(t);\n }\n isLocalQueryTarget(t) {\n return this._r.activeTargetIds.has(t);\n }\n clearQueryState(t) {\n delete this.wr[t];\n }\n getAllActiveQueryTargets() {\n return this._r.activeTargetIds;\n }\n isActiveQueryTarget(t) {\n return this._r.activeTargetIds.has(t);\n }\n start() {\n return this._r = new Io, Promise.resolve();\n }\n handleUserChange(t, e, n) {\n // No op.\n }\n setOnlineState(t) {\n // No op.\n }\n shutdown() {}\n writeSequenceNumber(t) {}\n notifyBundleLoaded() {\n // No op.\n }\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class Ao {\n mr(t) {\n // No-op.\n }\n shutdown() {\n // No-op.\n }\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// References to `window` are guarded by BrowserConnectivityMonitor.isAvailable()\n/* eslint-disable no-restricted-globals */\n/**\n * Browser implementation of ConnectivityMonitor.\n */\nclass Ro {\n constructor() {\n this.gr = () => this.yr(), this.pr = () => this.Ir(), this.Er = [], this.Tr();\n }\n mr(t) {\n this.Er.push(t);\n }\n shutdown() {\n window.removeEventListener(\"online\", this.gr), window.removeEventListener(\"offline\", this.pr);\n }\n Tr() {\n window.addEventListener(\"online\", this.gr), window.addEventListener(\"offline\", this.pr);\n }\n yr() {\n M(\"ConnectivityMonitor\", \"Network connectivity changed: AVAILABLE\");\n for (const t of this.Er) t(0 /* AVAILABLE */);\n }\n Ir() {\n M(\"ConnectivityMonitor\", \"Network connectivity changed: UNAVAILABLE\");\n for (const t of this.Er) t(1 /* UNAVAILABLE */);\n }\n // TODO(chenbrian): Consider passing in window either into this component or\n // here for testing via FakeWindow.\n /** Checks that all used attributes of window are available. */\n static Vt() {\n return \"undefined\" != typeof window && void 0 !== window.addEventListener && void 0 !== window.removeEventListener;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const Po = {\n BatchGetDocuments: \"batchGet\",\n Commit: \"commit\",\n RunQuery: \"runQuery\"\n};\n\n/**\n * Maps RPC names to the corresponding REST endpoint name.\n *\n * We use array notation to avoid mangling.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provides a simple helper class that implements the Stream interface to\n * bridge to other implementations that are streams but do not implement the\n * interface. The stream callbacks are invoked with the callOn... methods.\n */\nclass bo {\n constructor(t) {\n this.Ar = t.Ar, this.Rr = t.Rr;\n }\n Pr(t) {\n this.br = t;\n }\n vr(t) {\n this.Vr = t;\n }\n onMessage(t) {\n this.Sr = t;\n }\n close() {\n this.Rr();\n }\n send(t) {\n this.Ar(t);\n }\n Dr() {\n this.br();\n }\n Cr(t) {\n this.Vr(t);\n }\n Nr(t) {\n this.Sr(t);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class vo extends \n/**\n * Base class for all Rest-based connections to the backend (WebChannel and\n * HTTP).\n */\nclass {\n constructor(t) {\n this.databaseInfo = t, this.databaseId = t.databaseId;\n const e = t.ssl ? \"https\" : \"http\";\n this.kr = e + \"://\" + t.host, this.Or = \"projects/\" + this.databaseId.projectId + \"/databases/\" + this.databaseId.database + \"/documents\";\n }\n Mr(t, e, n, s, i) {\n const r = this.$r(t, e);\n M(\"RestConnection\", \"Sending: \", r, n);\n const o = {};\n return this.Fr(o, s, i), this.Br(t, r, o, n).then((t => (M(\"RestConnection\", \"Received: \", t), \n t)), (e => {\n throw F(\"RestConnection\", `${t} failed with error: `, e, \"url: \", r, \"request:\", n), \n e;\n }));\n }\n Lr(t, e, n, s, i) {\n // The REST API automatically aggregates all of the streamed results, so we\n // can just use the normal invoke() method.\n return this.Mr(t, e, n, s, i);\n }\n /**\n * Modifies the headers for a request, adding any authorization token if\n * present and any additional headers for the request.\n */ Fr(t, e, n) {\n t[\"X-Goog-Api-Client\"] = \"gl-js/ fire/\" + N, \n // Content-Type: text/plain will avoid preflight requests which might\n // mess with CORS and redirects by proxies. If we add custom headers\n // we will need to change this code to potentially use the $httpOverwrite\n // parameter supported by ESF to avoid triggering preflight requests.\n t[\"Content-Type\"] = \"text/plain\", this.databaseInfo.appId && (t[\"X-Firebase-GMPID\"] = this.databaseInfo.appId), \n e && e.headers.forEach(((e, n) => t[n] = e)), n && n.headers.forEach(((e, n) => t[n] = e));\n }\n $r(t, e) {\n const n = Po[t];\n return `${this.kr}/v1/${e}:${n}`;\n }\n} {\n constructor(t) {\n super(t), this.forceLongPolling = t.forceLongPolling, this.autoDetectLongPolling = t.autoDetectLongPolling, \n this.useFetchStreams = t.useFetchStreams;\n }\n Br(t, e, n, s) {\n return new Promise(((i, r) => {\n const o = new XhrIo;\n o.listenOnce(EventType.COMPLETE, (() => {\n try {\n switch (o.getLastErrorCode()) {\n case ErrorCode.NO_ERROR:\n const e = o.getResponseJson();\n M(\"Connection\", \"XHR received:\", JSON.stringify(e)), i(e);\n break;\n\n case ErrorCode.TIMEOUT:\n M(\"Connection\", 'RPC \"' + t + '\" timed out'), r(new j(G.DEADLINE_EXCEEDED, \"Request time out\"));\n break;\n\n case ErrorCode.HTTP_ERROR:\n const n = o.getStatus();\n if (M(\"Connection\", 'RPC \"' + t + '\" failed with status:', n, \"response text:\", o.getResponseText()), \n n > 0) {\n const t = o.getResponseJson().error;\n if (t && t.status && t.message) {\n const e = function(t) {\n const e = t.toLowerCase().replace(/_/g, \"-\");\n return Object.values(G).indexOf(e) >= 0 ? e : G.UNKNOWN;\n }(t.status);\n r(new j(e, t.message));\n } else r(new j(G.UNKNOWN, \"Server responded with status \" + o.getStatus()));\n } else \n // If we received an HTTP_ERROR but there's no status code,\n // it's most probably a connection issue\n r(new j(G.UNAVAILABLE, \"Connection failed.\"));\n break;\n\n default:\n L();\n }\n } finally {\n M(\"Connection\", 'RPC \"' + t + '\" completed.');\n }\n }));\n const c = JSON.stringify(s);\n o.send(e, \"POST\", c, n, 15);\n }));\n }\n Ur(t, e, n) {\n const s = [ this.kr, \"/\", \"google.firestore.v1.Firestore\", \"/\", t, \"/channel\" ], i = createWebChannelTransport(), r = getStatEventTarget(), o = {\n // Required for backend stickiness, routing behavior is based on this\n // parameter.\n httpSessionIdParam: \"gsessionid\",\n initMessageHeaders: {},\n messageUrlParams: {\n // This param is used to improve routing and project isolation by the\n // backend and must be included in every request.\n database: `projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`\n },\n sendRawJson: !0,\n supportsCrossDomainXhr: !0,\n internalChannelParams: {\n // Override the default timeout (randomized between 10-20 seconds) since\n // a large write batch on a slow internet connection may take a long\n // time to send to the backend. Rather than have WebChannel impose a\n // tight timeout which could lead to infinite timeouts and retries, we\n // set it very large (5-10 minutes) and rely on the browser's builtin\n // timeouts to kick in if the request isn't working.\n forwardChannelRequestTimeoutMs: 6e5\n },\n forceLongPolling: this.forceLongPolling,\n detectBufferingProxy: this.autoDetectLongPolling\n };\n this.useFetchStreams && (o.xmlHttpFactory = new FetchXmlHttpFactory({})), this.Fr(o.initMessageHeaders, e, n), \n // Sending the custom headers we just added to request.initMessageHeaders\n // (Authorization, etc.) will trigger the browser to make a CORS preflight\n // request because the XHR will no longer meet the criteria for a \"simple\"\n // CORS request:\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests\n // Therefore to avoid the CORS preflight request (an extra network\n // roundtrip), we use the httpHeadersOverwriteParam option to specify that\n // the headers should instead be encoded into a special \"$httpHeaders\" query\n // parameter, which is recognized by the webchannel backend. This is\n // formally defined here:\n // https://github.com/google/closure-library/blob/b0e1815b13fb92a46d7c9b3c30de5d6a396a3245/closure/goog/net/rpc/httpcors.js#L32\n // TODO(b/145624756): There is a backend bug where $httpHeaders isn't respected if the request\n // doesn't have an Origin header. So we have to exclude a few browser environments that are\n // known to (sometimes) not include an Origin. See\n // https://github.com/firebase/firebase-js-sdk/issues/1491.\n isMobileCordova() || isReactNative() || isElectron() || isIE() || isUWP() || isBrowserExtension() || (o.httpHeadersOverwriteParam = \"$httpHeaders\");\n const c = s.join(\"\");\n M(\"Connection\", \"Creating WebChannel: \" + c, o);\n const u = i.createWebChannel(c, o);\n // WebChannel supports sending the first message with the handshake - saving\n // a network round trip. However, it will have to call send in the same\n // JS event loop as open. In order to enforce this, we delay actually\n // opening the WebChannel until send is called. Whether we have called\n // open is tracked with this variable.\n let a = !1, h = !1;\n // A flag to determine whether the stream was closed (by us or through an\n // error/close event) to avoid delivering multiple close events or sending\n // on a closed stream\n const l = new bo({\n Ar: t => {\n h ? M(\"Connection\", \"Not sending because WebChannel is closed:\", t) : (a || (M(\"Connection\", \"Opening WebChannel transport.\"), \n u.open(), a = !0), M(\"Connection\", \"WebChannel sending:\", t), u.send(t));\n },\n Rr: () => u.close()\n }), y = (t, e, n) => {\n // TODO(dimond): closure typing seems broken because WebChannel does\n // not implement goog.events.Listenable\n t.listen(e, (t => {\n try {\n n(t);\n } catch (t) {\n setTimeout((() => {\n throw t;\n }), 0);\n }\n }));\n };\n // Closure events are guarded and exceptions are swallowed, so catch any\n // exception and rethrow using a setTimeout so they become visible again.\n // Note that eventually this function could go away if we are confident\n // enough the code is exception free.\n return y(u, WebChannel.EventType.OPEN, (() => {\n h || M(\"Connection\", \"WebChannel transport opened.\");\n })), y(u, WebChannel.EventType.CLOSE, (() => {\n h || (h = !0, M(\"Connection\", \"WebChannel transport closed\"), l.Cr());\n })), y(u, WebChannel.EventType.ERROR, (t => {\n h || (h = !0, F(\"Connection\", \"WebChannel transport errored:\", t), l.Cr(new j(G.UNAVAILABLE, \"The operation could not be completed\")));\n })), y(u, WebChannel.EventType.MESSAGE, (t => {\n var e;\n if (!h) {\n const n = t.data[0];\n U(!!n);\n // TODO(b/35143891): There is a bug in One Platform that caused errors\n // (and only errors) to be wrapped in an extra array. To be forward\n // compatible with the bug we need to check either condition. The latter\n // can be removed once the fix has been rolled out.\n // Use any because msgData.error is not typed.\n const s = n, i = s.error || (null === (e = s[0]) || void 0 === e ? void 0 : e.error);\n if (i) {\n M(\"Connection\", \"WebChannel received error:\", i);\n // error.status will be a string like 'OK' or 'NOT_FOUND'.\n const t = i.status;\n let e = \n /**\n * Maps an error Code from a GRPC status identifier like 'NOT_FOUND'.\n *\n * @returns The Code equivalent to the given status string or undefined if\n * there is no match.\n */\n function(t) {\n // lookup by string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const e = pn[t];\n if (void 0 !== e) return Tn(e);\n }(t), n = i.message;\n void 0 === e && (e = G.INTERNAL, n = \"Unknown error status: \" + t + \" with message \" + i.message), \n // Mark closed so no further events are propagated\n h = !0, l.Cr(new j(e, n)), u.close();\n } else M(\"Connection\", \"WebChannel received:\", n), l.Nr(n);\n }\n })), y(r, Event.STAT_EVENT, (t => {\n t.stat === Stat.PROXY ? M(\"Connection\", \"Detected buffering proxy\") : t.stat === Stat.NOPROXY && M(\"Connection\", \"Detected no buffering proxy\");\n })), setTimeout((() => {\n // Technically we could/should wait for the WebChannel opened event,\n // but because we want to send the first message with the WebChannel\n // handshake we pretend the channel opened here (asynchronously), and\n // then delay the actual open until the first message is sent.\n l.Dr();\n }), 0), l;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Initializes the WebChannelConnection for the browser. */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** The Platform's 'window' implementation or null if not available. */\nfunction Vo() {\n // `window` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof window ? window : null;\n}\n\n/** The Platform's 'document' implementation or null if not available. */ function So() {\n // `document` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof document ? document : null;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function Do(t) {\n return new Hn(t, /* useProto3Json= */ !0);\n}\n\n/**\n * An instance of the Platform's 'TextEncoder' implementation.\n */\n/**\n * A helper for running delayed tasks following an exponential backoff curve\n * between attempts.\n *\n * Each delay is made up of a \"base\" delay which follows the exponential\n * backoff curve, and a +/- 50% \"jitter\" that is calculated and added to the\n * base delay. This prevents clients from accidentally synchronizing their\n * delays causing spikes of load to the backend.\n */\nclass Co {\n constructor(\n /**\n * The AsyncQueue to run backoff operations on.\n */\n t, \n /**\n * The ID to use when scheduling backoff operations on the AsyncQueue.\n */\n e, \n /**\n * The initial delay (used as the base delay on the first retry attempt).\n * Note that jitter will still be applied, so the actual delay could be as\n * little as 0.5*initialDelayMs.\n */\n n = 1e3\n /**\n * The multiplier to use to determine the extended base delay after each\n * attempt.\n */ , s = 1.5\n /**\n * The maximum base delay after which no further backoff is performed.\n * Note that jitter will still be applied, so the actual delay could be as\n * much as 1.5*maxDelayMs.\n */ , i = 6e4) {\n this.Sn = t, this.timerId = e, this.qr = n, this.Kr = s, this.Gr = i, this.jr = 0, \n this.Qr = null, \n /** The last backoff attempt, as epoch milliseconds. */\n this.Wr = Date.now(), this.reset();\n }\n /**\n * Resets the backoff delay.\n *\n * The very next backoffAndWait() will have no delay. If it is called again\n * (i.e. due to an error), initialDelayMs (plus jitter) will be used, and\n * subsequent ones will increase according to the backoffFactor.\n */ reset() {\n this.jr = 0;\n }\n /**\n * Resets the backoff delay to the maximum delay (e.g. for use after a\n * RESOURCE_EXHAUSTED error).\n */ zr() {\n this.jr = this.Gr;\n }\n /**\n * Returns a promise that resolves after currentDelayMs, and increases the\n * delay for any subsequent attempts. If there was a pending backoff operation\n * already, it will be canceled.\n */ Hr(t) {\n // Cancel any pending backoff operation.\n this.cancel();\n // First schedule using the current base (which may be 0 and should be\n // honored as such).\n const e = Math.floor(this.jr + this.Jr()), n = Math.max(0, Date.now() - this.Wr), s = Math.max(0, e - n);\n // Guard against lastAttemptTime being in the future due to a clock change.\n s > 0 && M(\"ExponentialBackoff\", `Backing off for ${s} ms (base delay: ${this.jr} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`), \n this.Qr = this.Sn.enqueueAfterDelay(this.timerId, s, (() => (this.Wr = Date.now(), \n t()))), \n // Apply backoff factor to determine next delay and ensure it is within\n // bounds.\n this.jr *= this.Kr, this.jr < this.qr && (this.jr = this.qr), this.jr > this.Gr && (this.jr = this.Gr);\n }\n Yr() {\n null !== this.Qr && (this.Qr.skipDelay(), this.Qr = null);\n }\n cancel() {\n null !== this.Qr && (this.Qr.cancel(), this.Qr = null);\n }\n /** Returns a random value in the range [-currentBaseMs/2, currentBaseMs/2] */ Jr() {\n return (Math.random() - .5) * this.jr;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A PersistentStream is an abstract base class that represents a streaming RPC\n * to the Firestore backend. It's built on top of the connections own support\n * for streaming RPCs, and adds several critical features for our clients:\n *\n * - Exponential backoff on failure\n * - Authentication via CredentialsProvider\n * - Dispatching all callbacks into the shared worker queue\n * - Closing idle streams after 60 seconds of inactivity\n *\n * Subclasses of PersistentStream implement serialization of models to and\n * from the JSON representation of the protocol buffers for a specific\n * streaming RPC.\n *\n * ## Starting and Stopping\n *\n * Streaming RPCs are stateful and need to be start()ed before messages can\n * be sent and received. The PersistentStream will call the onOpen() function\n * of the listener once the stream is ready to accept requests.\n *\n * Should a start() fail, PersistentStream will call the registered onClose()\n * listener with a FirestoreError indicating what went wrong.\n *\n * A PersistentStream can be started and stopped repeatedly.\n *\n * Generic types:\n * SendType: The type of the outgoing message of the underlying\n * connection stream\n * ReceiveType: The type of the incoming message of the underlying\n * connection stream\n * ListenerType: The type of the listener that will be used for callbacks\n */\nclass No {\n constructor(t, e, n, s, i, r, o, c) {\n this.Sn = t, this.Xr = n, this.Zr = s, this.eo = i, this.authCredentialsProvider = r, \n this.appCheckCredentialsProvider = o, this.listener = c, this.state = 0 /* Initial */ , \n /**\n * A close count that's incremented every time the stream is closed; used by\n * getCloseGuardedDispatcher() to invalidate callbacks that happen after\n * close.\n */\n this.no = 0, this.so = null, this.io = null, this.stream = null, this.ro = new Co(t, e);\n }\n /**\n * Returns true if start() has been called and no error has occurred. True\n * indicates the stream is open or in the process of opening (which\n * encompasses respecting backoff, getting auth tokens, and starting the\n * actual RPC). Use isOpen() to determine if the stream is open and ready for\n * outbound requests.\n */ oo() {\n return 1 /* Starting */ === this.state || 5 /* Backoff */ === this.state || this.co();\n }\n /**\n * Returns true if the underlying RPC is open (the onOpen() listener has been\n * called) and the stream is ready for outbound requests.\n */ co() {\n return 2 /* Open */ === this.state || 3 /* Healthy */ === this.state;\n }\n /**\n * Starts the RPC. Only allowed if isStarted() returns false. The stream is\n * not immediately ready for use: onOpen() will be invoked when the RPC is\n * ready for outbound requests, at which point isOpen() will return true.\n *\n * When start returns, isStarted() will return true.\n */ start() {\n 4 /* Error */ !== this.state ? this.auth() : this.uo();\n }\n /**\n * Stops the RPC. This call is idempotent and allowed regardless of the\n * current isStarted() state.\n *\n * When stop returns, isStarted() and isOpen() will both return false.\n */ async stop() {\n this.oo() && await this.close(0 /* Initial */);\n }\n /**\n * After an error the stream will usually back off on the next attempt to\n * start it. If the error warrants an immediate restart of the stream, the\n * sender can use this to indicate that the receiver should not back off.\n *\n * Each error will call the onClose() listener. That function can decide to\n * inhibit backoff if required.\n */ ao() {\n this.state = 0 /* Initial */ , this.ro.reset();\n }\n /**\n * Marks this stream as idle. If no further actions are performed on the\n * stream for one minute, the stream will automatically close itself and\n * notify the stream's onClose() handler with Status.OK. The stream will then\n * be in a !isStarted() state, requiring the caller to start the stream again\n * before further use.\n *\n * Only streams that are in state 'Open' can be marked idle, as all other\n * states imply pending network operations.\n */ ho() {\n // Starts the idle time if we are in state 'Open' and are not yet already\n // running a timer (in which case the previous idle timeout still applies).\n this.co() && null === this.so && (this.so = this.Sn.enqueueAfterDelay(this.Xr, 6e4, (() => this.lo())));\n }\n /** Sends a message to the underlying stream. */ fo(t) {\n this._o(), this.stream.send(t);\n }\n /** Called by the idle timer when the stream should close due to inactivity. */ async lo() {\n if (this.co()) \n // When timing out an idle stream there's no reason to force the stream into backoff when\n // it restarts so set the stream state to Initial instead of Error.\n return this.close(0 /* Initial */);\n }\n /** Marks the stream as active again. */ _o() {\n this.so && (this.so.cancel(), this.so = null);\n }\n /** Cancels the health check delayed operation. */ wo() {\n this.io && (this.io.cancel(), this.io = null);\n }\n /**\n * Closes the stream and cleans up as necessary:\n *\n * * closes the underlying GRPC stream;\n * * calls the onClose handler with the given 'error';\n * * sets internal stream state to 'finalState';\n * * adjusts the backoff timer based on the error\n *\n * A new stream can be opened by calling start().\n *\n * @param finalState - the intended state of the stream after closing.\n * @param error - the error the connection was closed with.\n */ async close(t, e) {\n // Cancel any outstanding timers (they're guaranteed not to execute).\n this._o(), this.wo(), this.ro.cancel(), \n // Invalidates any stream-related callbacks (e.g. from auth or the\n // underlying stream), guaranteeing they won't execute.\n this.no++, 4 /* Error */ !== t ? \n // If this is an intentional close ensure we don't delay our next connection attempt.\n this.ro.reset() : e && e.code === G.RESOURCE_EXHAUSTED ? (\n // Log the error. (Probably either 'quota exceeded' or 'max queue length reached'.)\n $(e.toString()), $(\"Using maximum backoff delay to prevent overloading the backend.\"), \n this.ro.zr()) : e && e.code === G.UNAUTHENTICATED && 3 /* Healthy */ !== this.state && (\n // \"unauthenticated\" error means the token was rejected. This should rarely\n // happen since both Auth and AppCheck ensure a sufficient TTL when we\n // request a token. If a user manually resets their system clock this can\n // fail, however. In this case, we should get a Code.UNAUTHENTICATED error\n // before we received the first message and we need to invalidate the token\n // to ensure that we fetch a new token.\n this.authCredentialsProvider.invalidateToken(), this.appCheckCredentialsProvider.invalidateToken()), \n // Clean up the underlying stream because we are no longer interested in events.\n null !== this.stream && (this.mo(), this.stream.close(), this.stream = null), \n // This state must be assigned before calling onClose() to allow the callback to\n // inhibit backoff or otherwise manipulate the state in its non-started state.\n this.state = t, \n // Notify the listener that the stream closed.\n await this.listener.vr(e);\n }\n /**\n * Can be overridden to perform additional cleanup before the stream is closed.\n * Calling super.tearDown() is not required.\n */ mo() {}\n auth() {\n this.state = 1 /* Starting */;\n const t = this.yo(this.no), e = this.no;\n // TODO(mikelehen): Just use dispatchIfNotClosed, but see TODO below.\n Promise.all([ this.authCredentialsProvider.getToken(), this.appCheckCredentialsProvider.getToken() ]).then((([t, n]) => {\n // Stream can be stopped while waiting for authentication.\n // TODO(mikelehen): We really should just use dispatchIfNotClosed\n // and let this dispatch onto the queue, but that opened a spec test can\n // of worms that I don't want to deal with in this PR.\n this.no === e && \n // Normally we'd have to schedule the callback on the AsyncQueue.\n // However, the following calls are safe to be called outside the\n // AsyncQueue since they don't chain asynchronous calls\n this.po(t, n);\n }), (e => {\n t((() => {\n const t = new j(G.UNKNOWN, \"Fetching auth token failed: \" + e.message);\n return this.Io(t);\n }));\n }));\n }\n po(t, e) {\n const n = this.yo(this.no);\n this.stream = this.Eo(t, e), this.stream.Pr((() => {\n n((() => (this.state = 2 /* Open */ , this.io = this.Sn.enqueueAfterDelay(this.Zr, 1e4, (() => (this.co() && (this.state = 3 /* Healthy */), \n Promise.resolve()))), this.listener.Pr())));\n })), this.stream.vr((t => {\n n((() => this.Io(t)));\n })), this.stream.onMessage((t => {\n n((() => this.onMessage(t)));\n }));\n }\n uo() {\n this.state = 5 /* Backoff */ , this.ro.Hr((async () => {\n this.state = 0 /* Initial */ , this.start();\n }));\n }\n // Visible for tests\n Io(t) {\n // In theory the stream could close cleanly, however, in our current model\n // we never expect this to happen because if we stop a stream ourselves,\n // this callback will never be called. To prevent cases where we retry\n // without a backoff accidentally, we set the stream to error in all cases.\n return M(\"PersistentStream\", `close with error: ${t}`), this.stream = null, this.close(4 /* Error */ , t);\n }\n /**\n * Returns a \"dispatcher\" function that dispatches operations onto the\n * AsyncQueue but only runs them if closeCount remains unchanged. This allows\n * us to turn auth / stream callbacks into no-ops if the stream is closed /\n * re-opened, etc.\n */ yo(t) {\n return e => {\n this.Sn.enqueueAndForget((() => this.no === t ? e() : (M(\"PersistentStream\", \"stream callback skipped by getCloseGuardedDispatcher.\"), \n Promise.resolve())));\n };\n }\n}\n\n/**\n * A PersistentStream that implements the Listen RPC.\n *\n * Once the Listen stream has called the onOpen() listener, any number of\n * listen() and unlisten() calls can be made to control what changes will be\n * sent from the server for ListenResponses.\n */ class xo extends No {\n constructor(t, e, n, s, i, r) {\n super(t, \"listen_stream_connection_backoff\" /* ListenStreamConnectionBackoff */ , \"listen_stream_idle\" /* ListenStreamIdle */ , \"health_check_timeout\" /* HealthCheckTimeout */ , e, n, s, r), \n this.O = i;\n }\n Eo(t, e) {\n return this.eo.Ur(\"Listen\", t, e);\n }\n onMessage(t) {\n // A successful response means the stream is healthy\n this.ro.reset();\n const e = ls(this.O, t), n = function(t) {\n // We have only reached a consistent snapshot for the entire stream if there\n // is a read_time set and it applies to all targets (i.e. the list of\n // targets is empty). The backend is guaranteed to send such responses.\n if (!(\"targetChange\" in t)) return at.min();\n const e = t.targetChange;\n return e.targetIds && e.targetIds.length ? at.min() : e.readTime ? Zn(e.readTime) : at.min();\n }(t);\n return this.listener.To(e, n);\n }\n /**\n * Registers interest in the results of the given target. If the target\n * includes a resumeToken it will be included in the request. Results that\n * affect the target will be streamed back as WatchChange messages that\n * reference the targetId.\n */ Ao(t) {\n const e = {};\n e.database = os(this.O), e.addTarget = function(t, e) {\n let n;\n const s = e.target;\n return n = oe(s) ? {\n documents: ws(t, s)\n } : {\n query: ms(t, s)\n }, n.targetId = e.targetId, e.resumeToken.approximateByteSize() > 0 ? n.resumeToken = Yn(t, e.resumeToken) : e.snapshotVersion.compareTo(at.min()) > 0 && (\n // TODO(wuandy): Consider removing above check because it is most likely true.\n // Right now, many tests depend on this behaviour though (leaving min() out\n // of serialization).\n n.readTime = Jn(t, e.snapshotVersion.toTimestamp())), n;\n }(this.O, t);\n const n = ys(this.O, t);\n n && (e.labels = n), this.fo(e);\n }\n /**\n * Unregisters interest in the results of the target associated with the\n * given targetId.\n */ Ro(t) {\n const e = {};\n e.database = os(this.O), e.removeTarget = t, this.fo(e);\n }\n}\n\n/**\n * A Stream that implements the Write RPC.\n *\n * The Write RPC requires the caller to maintain special streamToken\n * state in between calls, to help the server understand which responses the\n * client has processed by the time the next request is made. Every response\n * will contain a streamToken; this value must be passed to the next\n * request.\n *\n * After calling start() on this stream, the next request must be a handshake,\n * containing whatever streamToken is on hand. Once a response to this\n * request is received, all pending mutations may be submitted. When\n * submitting multiple batches of mutations at the same time, it's\n * okay to use the same streamToken for the calls to writeMutations.\n *\n * TODO(b/33271235): Use proto types\n */ class ko extends No {\n constructor(t, e, n, s, i, r) {\n super(t, \"write_stream_connection_backoff\" /* WriteStreamConnectionBackoff */ , \"write_stream_idle\" /* WriteStreamIdle */ , \"health_check_timeout\" /* HealthCheckTimeout */ , e, n, s, r), \n this.O = i, this.Po = !1;\n }\n /**\n * Tracks whether or not a handshake has been successfully exchanged and\n * the stream is ready to accept mutations.\n */ get bo() {\n return this.Po;\n }\n // Override of PersistentStream.start\n start() {\n this.Po = !1, this.lastStreamToken = void 0, super.start();\n }\n mo() {\n this.Po && this.vo([]);\n }\n Eo(t, e) {\n return this.eo.Ur(\"Write\", t, e);\n }\n onMessage(t) {\n if (\n // Always capture the last stream token.\n U(!!t.streamToken), this.lastStreamToken = t.streamToken, this.Po) {\n // A successful first write response means the stream is healthy,\n // Note, that we could consider a successful handshake healthy, however,\n // the write itself might be causing an error we want to back off from.\n this.ro.reset();\n const e = _s(t.writeResults, t.commitTime), n = Zn(t.commitTime);\n return this.listener.Vo(n, e);\n }\n // The first response is always the handshake response\n return U(!t.writeResults || 0 === t.writeResults.length), this.Po = !0, this.listener.So();\n }\n /**\n * Sends an initial streamToken to the server, performing the handshake\n * required to make the StreamingWrite RPC work. Subsequent\n * calls should wait until onHandshakeComplete was called.\n */ Do() {\n // TODO(dimond): Support stream resumption. We intentionally do not set the\n // stream token on the handshake, ignoring any stream token we might have.\n const t = {};\n t.database = os(this.O), this.fo(t);\n }\n /** Sends a group of mutations to the Firestore backend to apply. */ vo(t) {\n const e = {\n streamToken: this.lastStreamToken,\n writes: t.map((t => fs(this.O, t)))\n };\n this.fo(e);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Datastore and its related methods are a wrapper around the external Google\n * Cloud Datastore grpc API, which provides an interface that is more convenient\n * for the rest of the client SDK architecture to consume.\n */\n/**\n * An implementation of Datastore that exposes additional state for internal\n * consumption.\n */\nclass Oo extends class {} {\n constructor(t, e, n, s) {\n super(), this.authCredentials = t, this.appCheckCredentials = e, this.eo = n, this.O = s, \n this.Co = !1;\n }\n No() {\n if (this.Co) throw new j(G.FAILED_PRECONDITION, \"The client has already been terminated.\");\n }\n /** Invokes the provided RPC with auth and AppCheck tokens. */ Mr(t, e, n) {\n return this.No(), Promise.all([ this.authCredentials.getToken(), this.appCheckCredentials.getToken() ]).then((([s, i]) => this.eo.Mr(t, e, n, s, i))).catch((t => {\n throw \"FirebaseError\" === t.name ? (t.code === G.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), \n this.appCheckCredentials.invalidateToken()), t) : new j(G.UNKNOWN, t.toString());\n }));\n }\n /** Invokes the provided RPC with streamed results with auth and AppCheck tokens. */ Lr(t, e, n) {\n return this.No(), Promise.all([ this.authCredentials.getToken(), this.appCheckCredentials.getToken() ]).then((([s, i]) => this.eo.Lr(t, e, n, s, i))).catch((t => {\n throw \"FirebaseError\" === t.name ? (t.code === G.UNAUTHENTICATED && (this.authCredentials.invalidateToken(), \n this.appCheckCredentials.invalidateToken()), t) : new j(G.UNKNOWN, t.toString());\n }));\n }\n terminate() {\n this.Co = !0;\n }\n}\n\n// TODO(firestorexp): Make sure there is only one Datastore instance per\n// firestore-exp client.\n/**\n * A component used by the RemoteStore to track the OnlineState (that is,\n * whether or not the client as a whole should be considered to be online or\n * offline), implementing the appropriate heuristics.\n *\n * In particular, when the client is trying to connect to the backend, we\n * allow up to MAX_WATCH_STREAM_FAILURES within ONLINE_STATE_TIMEOUT_MS for\n * a connection to succeed. If we have too many failures or the timeout elapses,\n * then we set the OnlineState to Offline, and the client will behave as if\n * it is offline (get()s will return cached data, etc.).\n */\nclass Mo {\n constructor(t, e) {\n this.asyncQueue = t, this.onlineStateHandler = e, \n /** The current OnlineState. */\n this.state = \"Unknown\" /* Unknown */ , \n /**\n * A count of consecutive failures to open the stream. If it reaches the\n * maximum defined by MAX_WATCH_STREAM_FAILURES, we'll set the OnlineState to\n * Offline.\n */\n this.xo = 0, \n /**\n * A timer that elapses after ONLINE_STATE_TIMEOUT_MS, at which point we\n * transition from OnlineState.Unknown to OnlineState.Offline without waiting\n * for the stream to actually fail (MAX_WATCH_STREAM_FAILURES times).\n */\n this.ko = null, \n /**\n * Whether the client should log a warning message if it fails to connect to\n * the backend (initially true, cleared after a successful stream, or if we've\n * logged the message already).\n */\n this.Oo = !0;\n }\n /**\n * Called by RemoteStore when a watch stream is started (including on each\n * backoff attempt).\n *\n * If this is the first attempt, it sets the OnlineState to Unknown and starts\n * the onlineStateTimer.\n */ Mo() {\n 0 === this.xo && (this.$o(\"Unknown\" /* Unknown */), this.ko = this.asyncQueue.enqueueAfterDelay(\"online_state_timeout\" /* OnlineStateTimeout */ , 1e4, (() => (this.ko = null, \n this.Fo(\"Backend didn't respond within 10 seconds.\"), this.$o(\"Offline\" /* Offline */), \n Promise.resolve()))));\n }\n /**\n * Updates our OnlineState as appropriate after the watch stream reports a\n * failure. The first failure moves us to the 'Unknown' state. We then may\n * allow multiple failures (based on MAX_WATCH_STREAM_FAILURES) before we\n * actually transition to the 'Offline' state.\n */ Bo(t) {\n \"Online\" /* Online */ === this.state ? this.$o(\"Unknown\" /* Unknown */) : (this.xo++, \n this.xo >= 1 && (this.Lo(), this.Fo(`Connection failed 1 times. Most recent error: ${t.toString()}`), \n this.$o(\"Offline\" /* Offline */)));\n }\n /**\n * Explicitly sets the OnlineState to the specified state.\n *\n * Note that this resets our timers / failure counters, etc. used by our\n * Offline heuristics, so must not be used in place of\n * handleWatchStreamStart() and handleWatchStreamFailure().\n */ set(t) {\n this.Lo(), this.xo = 0, \"Online\" /* Online */ === t && (\n // We've connected to watch at least once. Don't warn the developer\n // about being offline going forward.\n this.Oo = !1), this.$o(t);\n }\n $o(t) {\n t !== this.state && (this.state = t, this.onlineStateHandler(t));\n }\n Fo(t) {\n const e = `Could not reach Cloud Firestore backend. ${t}\\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;\n this.Oo ? ($(e), this.Oo = !1) : M(\"OnlineStateTracker\", e);\n }\n Lo() {\n null !== this.ko && (this.ko.cancel(), this.ko = null);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class $o {\n constructor(\n /**\n * The local store, used to fill the write pipeline with outbound mutations.\n */\n t, \n /** The client-side proxy for interacting with the backend. */\n e, n, s, i) {\n this.localStore = t, this.datastore = e, this.asyncQueue = n, this.remoteSyncer = {}, \n /**\n * A list of up to MAX_PENDING_WRITES writes that we have fetched from the\n * LocalStore via fillWritePipeline() and have or will send to the write\n * stream.\n *\n * Whenever writePipeline.length > 0 the RemoteStore will attempt to start or\n * restart the write stream. When the stream is established the writes in the\n * pipeline will be sent in order.\n *\n * Writes remain in writePipeline until they are acknowledged by the backend\n * and thus will automatically be re-sent if the stream is interrupted /\n * restarted before they're acknowledged.\n *\n * Write responses from the backend are linked to their originating request\n * purely based on order, and so we can just shift() writes from the front of\n * the writePipeline as we receive responses.\n */\n this.Uo = [], \n /**\n * A mapping of watched targets that the client cares about tracking and the\n * user has explicitly called a 'listen' for this target.\n *\n * These targets may or may not have been sent to or acknowledged by the\n * server. On re-establishing the listen stream, these targets should be sent\n * to the server. The targets removed with unlistens are removed eagerly\n * without waiting for confirmation from the listen stream.\n */\n this.qo = new Map, \n /**\n * A set of reasons for why the RemoteStore may be offline. If empty, the\n * RemoteStore may start its network connections.\n */\n this.Ko = new Set, \n /**\n * Event handlers that get called when the network is disabled or enabled.\n *\n * PORTING NOTE: These functions are used on the Web client to create the\n * underlying streams (to support tree-shakeable streams). On Android and iOS,\n * the streams are created during construction of RemoteStore.\n */\n this.Go = [], this.jo = i, this.jo.mr((t => {\n n.enqueueAndForget((async () => {\n // Porting Note: Unlike iOS, `restartNetwork()` is called even when the\n // network becomes unreachable as we don't have any other way to tear\n // down our streams.\n Qo(this) && (M(\"RemoteStore\", \"Restarting streams for network reachability change.\"), \n await async function(t) {\n const e = K(t);\n e.Ko.add(4 /* ConnectivityChange */), await Bo(e), e.Qo.set(\"Unknown\" /* Unknown */), \n e.Ko.delete(4 /* ConnectivityChange */), await Fo(e);\n }(this));\n }));\n })), this.Qo = new Mo(n, s);\n }\n}\n\nasync function Fo(t) {\n if (Qo(t)) for (const e of t.Go) await e(/* enabled= */ !0);\n}\n\n/**\n * Temporarily disables the network. The network can be re-enabled using\n * enableNetwork().\n */ async function Bo(t) {\n for (const e of t.Go) await e(/* enabled= */ !1);\n}\n\n/**\n * Starts new listen for the given target. Uses resume token if provided. It\n * is a no-op if the target of given `TargetData` is already being listened to.\n */\nfunction Lo(t, e) {\n const n = K(t);\n n.qo.has(e.targetId) || (\n // Mark this as something the client is currently listening for.\n n.qo.set(e.targetId, e), jo(n) ? \n // The listen will be sent in onWatchStreamOpen\n Go(n) : hc(n).co() && qo(n, e));\n}\n\n/**\n * Removes the listen from server. It is a no-op if the given target id is\n * not being listened to.\n */ function Uo(t, e) {\n const n = K(t), s = hc(n);\n n.qo.delete(e), s.co() && Ko(n, e), 0 === n.qo.size && (s.co() ? s.ho() : Qo(n) && \n // Revert to OnlineState.Unknown if the watch stream is not open and we\n // have no listeners, since without any listens to send we cannot\n // confirm if the stream is healthy and upgrade to OnlineState.Online.\n n.Qo.set(\"Unknown\" /* Unknown */));\n}\n\n/**\n * We need to increment the the expected number of pending responses we're due\n * from watch so we wait for the ack to process any messages from this target.\n */ function qo(t, e) {\n t.Wo.Z(e.targetId), hc(t).Ao(e);\n}\n\n/**\n * We need to increment the expected number of pending responses we're due\n * from watch so we wait for the removal on the server before we process any\n * messages from this target.\n */ function Ko(t, e) {\n t.Wo.Z(e), hc(t).Ro(e);\n}\n\nfunction Go(t) {\n t.Wo = new Gn({\n getRemoteKeysForTarget: e => t.remoteSyncer.getRemoteKeysForTarget(e),\n Tt: e => t.qo.get(e) || null\n }), hc(t).start(), t.Qo.Mo();\n}\n\n/**\n * Returns whether the watch stream should be started because it's necessary\n * and has not yet been started.\n */ function jo(t) {\n return Qo(t) && !hc(t).oo() && t.qo.size > 0;\n}\n\nfunction Qo(t) {\n return 0 === K(t).Ko.size;\n}\n\nfunction Wo(t) {\n t.Wo = void 0;\n}\n\nasync function zo(t) {\n t.qo.forEach(((e, n) => {\n qo(t, e);\n }));\n}\n\nasync function Ho(t, e) {\n Wo(t), \n // If we still need the watch stream, retry the connection.\n jo(t) ? (t.Qo.Bo(e), Go(t)) : \n // No need to restart watch stream because there are no active targets.\n // The online state is set to unknown because there is no active attempt\n // at establishing a connection\n t.Qo.set(\"Unknown\" /* Unknown */);\n}\n\nasync function Jo(t, e, n) {\n if (\n // Mark the client as online since we got a message from the server\n t.Qo.set(\"Online\" /* Online */), e instanceof qn && 2 /* Removed */ === e.state && e.cause) \n // There was an error on a target, don't wait for a consistent snapshot\n // to raise events\n try {\n await \n /** Handles an error on a target */\n async function(t, e) {\n const n = e.cause;\n for (const s of e.targetIds) \n // A watched target might have been removed already.\n t.qo.has(s) && (await t.remoteSyncer.rejectListen(s, n), t.qo.delete(s), t.Wo.removeTarget(s));\n }\n /**\n * Attempts to fill our write pipeline with writes from the LocalStore.\n *\n * Called internally to bootstrap or refill the write pipeline and by\n * SyncEngine whenever there are new mutations to process.\n *\n * Starts the write stream if necessary.\n */ (t, e);\n } catch (n) {\n M(\"RemoteStore\", \"Failed to remove targets %s: %s \", e.targetIds.join(\",\"), n), \n await Yo(t, n);\n } else if (e instanceof Ln ? t.Wo.ct(e) : e instanceof Un ? t.Wo._t(e) : t.Wo.ht(e), \n !n.isEqual(at.min())) try {\n const e = await Kr(t.localStore);\n n.compareTo(e) >= 0 && \n // We have received a target change with a global snapshot if the snapshot\n // version is not equal to SnapshotVersion.min().\n await \n /**\n * Takes a batch of changes from the Datastore, repackages them as a\n * RemoteEvent, and passes that on to the listener, which is typically the\n * SyncEngine.\n */\n function(t, e) {\n const n = t.Wo.yt(e);\n // Update in-memory resume tokens. LocalStore will update the\n // persistent view of these when applying the completed RemoteEvent.\n return n.targetChanges.forEach(((n, s) => {\n if (n.resumeToken.approximateByteSize() > 0) {\n const i = t.qo.get(s);\n // A watched target might have been removed already.\n i && t.qo.set(s, i.withResumeToken(n.resumeToken, e));\n }\n })), \n // Re-establish listens for the targets that have been invalidated by\n // existence filter mismatches.\n n.targetMismatches.forEach((e => {\n const n = t.qo.get(e);\n if (!n) \n // A watched target might have been removed already.\n return;\n // Clear the resume token for the target, since we're in a known mismatch\n // state.\n t.qo.set(e, n.withResumeToken(pt.EMPTY_BYTE_STRING, n.snapshotVersion)), \n // Cause a hard reset by unwatching and rewatching immediately, but\n // deliberately don't send a resume token so that we get a full update.\n Ko(t, e);\n // Mark the target we send as being on behalf of an existence filter\n // mismatch, but don't actually retain that in listenTargets. This ensures\n // that we flag the first re-listen this way without impacting future\n // listens of this target (that might happen e.g. on reconnect).\n const s = new yi(n.target, e, 1 /* ExistenceFilterMismatch */ , n.sequenceNumber);\n qo(t, s);\n })), t.remoteSyncer.applyRemoteEvent(n);\n }(t, n);\n } catch (e) {\n M(\"RemoteStore\", \"Failed to raise snapshot:\", e), await Yo(t, e);\n }\n}\n\n/**\n * Recovery logic for IndexedDB errors that takes the network offline until\n * `op` succeeds. Retries are scheduled with backoff using\n * `enqueueRetryable()`. If `op()` is not provided, IndexedDB access is\n * validated via a generic operation.\n *\n * The returned Promise is resolved once the network is disabled and before\n * any retry attempt.\n */ async function Yo(t, e, n) {\n if (!ui(e)) throw e;\n t.Ko.add(1 /* IndexedDbFailed */), \n // Disable network and raise offline snapshots\n await Bo(t), t.Qo.set(\"Offline\" /* Offline */), n || (\n // Use a simple read operation to determine if IndexedDB recovered.\n // Ideally, we would expose a health check directly on SimpleDb, but\n // RemoteStore only has access to persistence through LocalStore.\n n = () => Kr(t.localStore)), \n // Probe IndexedDB periodically and re-enable network\n t.asyncQueue.enqueueRetryable((async () => {\n M(\"RemoteStore\", \"Retrying IndexedDB access\"), await n(), t.Ko.delete(1 /* IndexedDbFailed */), \n await Fo(t);\n }));\n}\n\n/**\n * Executes `op`. If `op` fails, takes the network offline until `op`\n * succeeds. Returns after the first attempt.\n */ function Xo(t, e) {\n return e().catch((n => Yo(t, n, e)));\n}\n\nasync function Zo(t) {\n const e = K(t), n = lc(e);\n let s = e.Uo.length > 0 ? e.Uo[e.Uo.length - 1].batchId : -1;\n for (;tc(e); ) try {\n const t = await Qr(e.localStore, s);\n if (null === t) {\n 0 === e.Uo.length && n.ho();\n break;\n }\n s = t.batchId, ec(e, t);\n } catch (t) {\n await Yo(e, t);\n }\n nc(e) && sc(e);\n}\n\n/**\n * Returns true if we can add to the write pipeline (i.e. the network is\n * enabled and the write pipeline is not full).\n */ function tc(t) {\n return Qo(t) && t.Uo.length < 10;\n}\n\n/**\n * Queues additional writes to be sent to the write stream, sending them\n * immediately if the write stream is established.\n */ function ec(t, e) {\n t.Uo.push(e);\n const n = lc(t);\n n.co() && n.bo && n.vo(e.mutations);\n}\n\nfunction nc(t) {\n return Qo(t) && !lc(t).oo() && t.Uo.length > 0;\n}\n\nfunction sc(t) {\n lc(t).start();\n}\n\nasync function ic(t) {\n lc(t).Do();\n}\n\nasync function rc(t) {\n const e = lc(t);\n // Send the write pipeline now that the stream is established.\n for (const n of t.Uo) e.vo(n.mutations);\n}\n\nasync function oc(t, e, n) {\n const s = t.Uo.shift(), i = mi.from(s, e, n);\n await Xo(t, (() => t.remoteSyncer.applySuccessfulWrite(i))), \n // It's possible that with the completion of this mutation another\n // slot has freed up.\n await Zo(t);\n}\n\nasync function cc(t, e) {\n // If the write stream closed after the write handshake completes, a write\n // operation failed and we fail the pending operation.\n e && lc(t).bo && \n // This error affects the actual write.\n await async function(t, e) {\n // Only handle permanent errors here. If it's transient, just let the retry\n // logic kick in.\n if (n = e.code, En(n) && n !== G.ABORTED) {\n // This was a permanent error, the request itself was the problem\n // so it's not going to succeed if we resend it.\n const n = t.Uo.shift();\n // In this case it's also unlikely that the server itself is melting\n // down -- this was just a bad request so inhibit backoff on the next\n // restart.\n lc(t).ao(), await Xo(t, (() => t.remoteSyncer.rejectFailedWrite(n.batchId, e))), \n // It's possible that with the completion of this mutation\n // another slot has freed up.\n await Zo(t);\n }\n var n;\n }(t, e), \n // The write stream might have been started by refilling the write\n // pipeline for failed writes\n nc(t) && sc(t);\n}\n\nasync function uc(t, e) {\n const n = K(t);\n n.asyncQueue.verifyOperationInProgress(), M(\"RemoteStore\", \"RemoteStore received new credentials\");\n const s = Qo(n);\n // Tear down and re-create our network streams. This will ensure we get a\n // fresh auth token for the new user and re-fill the write pipeline with\n // new mutations from the LocalStore (since mutations are per-user).\n n.Ko.add(3 /* CredentialChange */), await Bo(n), s && \n // Don't set the network status to Unknown if we are offline.\n n.Qo.set(\"Unknown\" /* Unknown */), await n.remoteSyncer.handleCredentialChange(e), \n n.Ko.delete(3 /* CredentialChange */), await Fo(n);\n}\n\n/**\n * Toggles the network state when the client gains or loses its primary lease.\n */ async function ac(t, e) {\n const n = K(t);\n e ? (n.Ko.delete(2 /* IsSecondary */), await Fo(n)) : e || (n.Ko.add(2 /* IsSecondary */), \n await Bo(n), n.Qo.set(\"Unknown\" /* Unknown */));\n}\n\n/**\n * If not yet initialized, registers the WatchStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WatchStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */ function hc(t) {\n return t.zo || (\n // Create stream (but note that it is not started yet).\n t.zo = function(t, e, n) {\n const s = K(t);\n return s.No(), new xo(e, s.eo, s.authCredentials, s.appCheckCredentials, s.O, n);\n }\n /**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (t.datastore, t.asyncQueue, {\n Pr: zo.bind(null, t),\n vr: Ho.bind(null, t),\n To: Jo.bind(null, t)\n }), t.Go.push((async e => {\n e ? (t.zo.ao(), jo(t) ? Go(t) : t.Qo.set(\"Unknown\" /* Unknown */)) : (await t.zo.stop(), \n Wo(t));\n }))), t.zo;\n}\n\n/**\n * If not yet initialized, registers the WriteStream and its network state\n * callback with `remoteStoreImpl`. Returns the existing stream if one is\n * already available.\n *\n * PORTING NOTE: On iOS and Android, the WriteStream gets registered on startup.\n * This is not done on Web to allow it to be tree-shaken.\n */ function lc(t) {\n return t.Ho || (\n // Create stream (but note that it is not started yet).\n t.Ho = function(t, e, n) {\n const s = K(t);\n return s.No(), new ko(e, s.eo, s.authCredentials, s.appCheckCredentials, s.O, n);\n }(t.datastore, t.asyncQueue, {\n Pr: ic.bind(null, t),\n vr: cc.bind(null, t),\n So: rc.bind(null, t),\n Vo: oc.bind(null, t)\n }), t.Go.push((async e => {\n e ? (t.Ho.ao(), \n // This will start the write stream if necessary.\n await Zo(t)) : (await t.Ho.stop(), t.Uo.length > 0 && (M(\"RemoteStore\", `Stopping write stream with ${t.Uo.length} pending writes`), \n t.Uo = []));\n }))), t.Ho;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents an operation scheduled to be run in the future on an AsyncQueue.\n *\n * It is created via DelayedOperation.createAndSchedule().\n *\n * Supports cancellation (via cancel()) and early execution (via skipDelay()).\n *\n * Note: We implement `PromiseLike` instead of `Promise`, as the `Promise` type\n * in newer versions of TypeScript defines `finally`, which is not available in\n * IE.\n */\nclass fc {\n constructor(t, e, n, s, i) {\n this.asyncQueue = t, this.timerId = e, this.targetTimeMs = n, this.op = s, this.removalCallback = i, \n this.deferred = new Q, this.then = this.deferred.promise.then.bind(this.deferred.promise), \n // It's normal for the deferred promise to be canceled (due to cancellation)\n // and so we attach a dummy catch callback to avoid\n // 'UnhandledPromiseRejectionWarning' log spam.\n this.deferred.promise.catch((t => {}));\n }\n /**\n * Creates and returns a DelayedOperation that has been scheduled to be\n * executed on the provided asyncQueue after the provided delayMs.\n *\n * @param asyncQueue - The queue to schedule the operation on.\n * @param id - A Timer ID identifying the type of operation this is.\n * @param delayMs - The delay (ms) before the operation should be scheduled.\n * @param op - The operation to run.\n * @param removalCallback - A callback to be called synchronously once the\n * operation is executed or canceled, notifying the AsyncQueue to remove it\n * from its delayedOperations list.\n * PORTING NOTE: This exists to prevent making removeDelayedOperation() and\n * the DelayedOperation class public.\n */ static createAndSchedule(t, e, n, s, i) {\n const r = Date.now() + n, o = new fc(t, e, r, s, i);\n return o.start(n), o;\n }\n /**\n * Starts the timer. This is called immediately after construction by\n * createAndSchedule().\n */ start(t) {\n this.timerHandle = setTimeout((() => this.handleDelayElapsed()), t);\n }\n /**\n * Queues the operation to run immediately (if it hasn't already been run or\n * canceled).\n */ skipDelay() {\n return this.handleDelayElapsed();\n }\n /**\n * Cancels the operation if it hasn't already been executed or canceled. The\n * promise will be rejected.\n *\n * As long as the operation has not yet been run, calling cancel() provides a\n * guarantee that the operation will not be run.\n */ cancel(t) {\n null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new j(G.CANCELLED, \"Operation cancelled\" + (t ? \": \" + t : \"\"))));\n }\n handleDelayElapsed() {\n this.asyncQueue.enqueueAndForget((() => null !== this.timerHandle ? (this.clearTimeout(), \n this.op().then((t => this.deferred.resolve(t)))) : Promise.resolve()));\n }\n clearTimeout() {\n null !== this.timerHandle && (this.removalCallback(this), clearTimeout(this.timerHandle), \n this.timerHandle = null);\n }\n}\n\n/**\n * Returns a FirestoreError that can be surfaced to the user if the provided\n * error is an IndexedDbTransactionError. Re-throws the error otherwise.\n */ function dc(t, e) {\n if ($(\"AsyncQueue\", `${e}: ${t}`), ui(t)) return new j(G.UNAVAILABLE, `${e}: ${t}`);\n throw t;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * DocumentSet is an immutable (copy-on-write) collection that holds documents\n * in order specified by the provided comparator. We always add a document key\n * comparator on top of what is provided to guarantee document equality based on\n * the key.\n */ class _c {\n /** The default ordering is by key if the comparator is omitted */\n constructor(t) {\n // We are adding document key comparator to the end as it's the only\n // guaranteed unique property of a document.\n this.comparator = t ? (e, n) => t(e, n) || Nt.comparator(e.key, n.key) : (t, e) => Nt.comparator(t.key, e.key), \n this.keyedMap = Nn(), this.sortedSet = new An(this.comparator);\n }\n /**\n * Returns an empty copy of the existing DocumentSet, using the same\n * comparator.\n */ static emptySet(t) {\n return new _c(t.comparator);\n }\n has(t) {\n return null != this.keyedMap.get(t);\n }\n get(t) {\n return this.keyedMap.get(t);\n }\n first() {\n return this.sortedSet.minKey();\n }\n last() {\n return this.sortedSet.maxKey();\n }\n isEmpty() {\n return this.sortedSet.isEmpty();\n }\n /**\n * Returns the index of the provided key in the document set, or -1 if the\n * document key is not present in the set;\n */ indexOf(t) {\n const e = this.keyedMap.get(t);\n return e ? this.sortedSet.indexOf(e) : -1;\n }\n get size() {\n return this.sortedSet.size;\n }\n /** Iterates documents in order defined by \"comparator\" */ forEach(t) {\n this.sortedSet.inorderTraversal(((e, n) => (t(e), !1)));\n }\n /** Inserts or updates a document with the same key */ add(t) {\n // First remove the element if we have it.\n const e = this.delete(t.key);\n return e.copy(e.keyedMap.insert(t.key, t), e.sortedSet.insert(t, null));\n }\n /** Deletes a document with a given key */ delete(t) {\n const e = this.get(t);\n return e ? this.copy(this.keyedMap.remove(t), this.sortedSet.remove(e)) : this;\n }\n isEqual(t) {\n if (!(t instanceof _c)) return !1;\n if (this.size !== t.size) return !1;\n const e = this.sortedSet.getIterator(), n = t.sortedSet.getIterator();\n for (;e.hasNext(); ) {\n const t = e.getNext().key, s = n.getNext().key;\n if (!t.isEqual(s)) return !1;\n }\n return !0;\n }\n toString() {\n const t = [];\n return this.forEach((e => {\n t.push(e.toString());\n })), 0 === t.length ? \"DocumentSet ()\" : \"DocumentSet (\\n \" + t.join(\" \\n\") + \"\\n)\";\n }\n copy(t, e) {\n const n = new _c;\n return n.comparator = this.comparator, n.keyedMap = t, n.sortedSet = e, n;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * DocumentChangeSet keeps track of a set of changes to docs in a query, merging\n * duplicate events for the same doc.\n */ class wc {\n constructor() {\n this.Jo = new An(Nt.comparator);\n }\n track(t) {\n const e = t.doc.key, n = this.Jo.get(e);\n n ? \n // Merge the new change with the existing change.\n 0 /* Added */ !== t.type && 3 /* Metadata */ === n.type ? this.Jo = this.Jo.insert(e, t) : 3 /* Metadata */ === t.type && 1 /* Removed */ !== n.type ? this.Jo = this.Jo.insert(e, {\n type: n.type,\n doc: t.doc\n }) : 2 /* Modified */ === t.type && 2 /* Modified */ === n.type ? this.Jo = this.Jo.insert(e, {\n type: 2 /* Modified */ ,\n doc: t.doc\n }) : 2 /* Modified */ === t.type && 0 /* Added */ === n.type ? this.Jo = this.Jo.insert(e, {\n type: 0 /* Added */ ,\n doc: t.doc\n }) : 1 /* Removed */ === t.type && 0 /* Added */ === n.type ? this.Jo = this.Jo.remove(e) : 1 /* Removed */ === t.type && 2 /* Modified */ === n.type ? this.Jo = this.Jo.insert(e, {\n type: 1 /* Removed */ ,\n doc: n.doc\n }) : 0 /* Added */ === t.type && 1 /* Removed */ === n.type ? this.Jo = this.Jo.insert(e, {\n type: 2 /* Modified */ ,\n doc: t.doc\n }) : \n // This includes these cases, which don't make sense:\n // Added->Added\n // Removed->Removed\n // Modified->Added\n // Removed->Modified\n // Metadata->Added\n // Removed->Metadata\n L() : this.Jo = this.Jo.insert(e, t);\n }\n Yo() {\n const t = [];\n return this.Jo.inorderTraversal(((e, n) => {\n t.push(n);\n })), t;\n }\n}\n\nclass mc {\n constructor(t, e, n, s, i, r, o, c) {\n this.query = t, this.docs = e, this.oldDocs = n, this.docChanges = s, this.mutatedKeys = i, \n this.fromCache = r, this.syncStateChanged = o, this.excludesMetadataChanges = c;\n }\n /** Returns a view snapshot as if all documents in the snapshot were added. */ static fromInitialDocuments(t, e, n, s) {\n const i = [];\n return e.forEach((t => {\n i.push({\n type: 0 /* Added */ ,\n doc: t\n });\n })), new mc(t, e, _c.emptySet(e), i, n, s, \n /* syncStateChanged= */ !0, \n /* excludesMetadataChanges= */ !1);\n }\n get hasPendingWrites() {\n return !this.mutatedKeys.isEmpty();\n }\n isEqual(t) {\n if (!(this.fromCache === t.fromCache && this.syncStateChanged === t.syncStateChanged && this.mutatedKeys.isEqual(t.mutatedKeys) && Ne(this.query, t.query) && this.docs.isEqual(t.docs) && this.oldDocs.isEqual(t.oldDocs))) return !1;\n const e = this.docChanges, n = t.docChanges;\n if (e.length !== n.length) return !1;\n for (let t = 0; t < e.length; t++) if (e[t].type !== n[t].type || !e[t].doc.isEqual(n[t].doc)) return !1;\n return !0;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Holds the listeners and the last received ViewSnapshot for a query being\n * tracked by EventManager.\n */ class gc {\n constructor() {\n this.Xo = void 0, this.listeners = [];\n }\n}\n\nclass yc {\n constructor() {\n this.queries = new Er((t => xe(t)), Ne), this.onlineState = \"Unknown\" /* Unknown */ , \n this.Zo = new Set;\n }\n}\n\nasync function pc(t, e) {\n const n = K(t), s = e.query;\n let i = !1, r = n.queries.get(s);\n if (r || (i = !0, r = new gc), i) try {\n r.Xo = await n.onListen(s);\n } catch (t) {\n const n = dc(t, `Initialization of query '${ke(e.query)}' failed`);\n return void e.onError(n);\n }\n if (n.queries.set(s, r), r.listeners.push(e), \n // Run global snapshot listeners if a consistent snapshot has been emitted.\n e.tc(n.onlineState), r.Xo) {\n e.ec(r.Xo) && Ac(n);\n }\n}\n\nasync function Ic(t, e) {\n const n = K(t), s = e.query;\n let i = !1;\n const r = n.queries.get(s);\n if (r) {\n const t = r.listeners.indexOf(e);\n t >= 0 && (r.listeners.splice(t, 1), i = 0 === r.listeners.length);\n }\n if (i) return n.queries.delete(s), n.onUnlisten(s);\n}\n\nfunction Ec(t, e) {\n const n = K(t);\n let s = !1;\n for (const t of e) {\n const e = t.query, i = n.queries.get(e);\n if (i) {\n for (const e of i.listeners) e.ec(t) && (s = !0);\n i.Xo = t;\n }\n }\n s && Ac(n);\n}\n\nfunction Tc(t, e, n) {\n const s = K(t), i = s.queries.get(e);\n if (i) for (const t of i.listeners) t.onError(n);\n // Remove all listeners. NOTE: We don't need to call syncEngine.unlisten()\n // after an error.\n s.queries.delete(e);\n}\n\n// Call all global snapshot listeners that have been set.\nfunction Ac(t) {\n t.Zo.forEach((t => {\n t.next();\n }));\n}\n\n/**\n * QueryListener takes a series of internal view snapshots and determines\n * when to raise the event.\n *\n * It uses an Observer to dispatch events.\n */ class Rc {\n constructor(t, e, n) {\n this.query = t, this.nc = e, \n /**\n * Initial snapshots (e.g. from cache) may not be propagated to the wrapped\n * observer. This flag is set to true once we've actually raised an event.\n */\n this.sc = !1, this.ic = null, this.onlineState = \"Unknown\" /* Unknown */ , this.options = n || {};\n }\n /**\n * Applies the new ViewSnapshot to this listener, raising a user-facing event\n * if applicable (depending on what changed, whether the user has opted into\n * metadata-only changes, etc.). Returns true if a user-facing event was\n * indeed raised.\n */ ec(t) {\n if (!this.options.includeMetadataChanges) {\n // Remove the metadata only changes.\n const e = [];\n for (const n of t.docChanges) 3 /* Metadata */ !== n.type && e.push(n);\n t = new mc(t.query, t.docs, t.oldDocs, e, t.mutatedKeys, t.fromCache, t.syncStateChanged, \n /* excludesMetadataChanges= */ !0);\n }\n let e = !1;\n return this.sc ? this.rc(t) && (this.nc.next(t), e = !0) : this.oc(t, this.onlineState) && (this.cc(t), \n e = !0), this.ic = t, e;\n }\n onError(t) {\n this.nc.error(t);\n }\n /** Returns whether a snapshot was raised. */ tc(t) {\n this.onlineState = t;\n let e = !1;\n return this.ic && !this.sc && this.oc(this.ic, t) && (this.cc(this.ic), e = !0), \n e;\n }\n oc(t, e) {\n // Always raise the first event when we're synced\n if (!t.fromCache) return !0;\n // NOTE: We consider OnlineState.Unknown as online (it should become Offline\n // or Online if we wait long enough).\n const n = \"Offline\" /* Offline */ !== e;\n // Don't raise the event if we're online, aren't synced yet (checked\n // above) and are waiting for a sync.\n return (!this.options.uc || !n) && (!t.docs.isEmpty() || \"Offline\" /* Offline */ === e);\n // Raise data from cache if we have any documents or we are offline\n }\n rc(t) {\n // We don't need to handle includeDocumentMetadataChanges here because\n // the Metadata only changes have already been stripped out if needed.\n // At this point the only changes we will see are the ones we should\n // propagate.\n if (t.docChanges.length > 0) return !0;\n const e = this.ic && this.ic.hasPendingWrites !== t.hasPendingWrites;\n return !(!t.syncStateChanged && !e) && !0 === this.options.includeMetadataChanges;\n // Generally we should have hit one of the cases above, but it's possible\n // to get here if there were only metadata docChanges and they got\n // stripped out.\n }\n cc(t) {\n t = mc.fromInitialDocuments(t.query, t.docs, t.mutatedKeys, t.fromCache), this.sc = !0, \n this.nc.next(t);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A complete element in the bundle stream, together with the byte length it\n * occupies in the stream.\n */ class Pc {\n constructor(t, \n // How many bytes this element takes to store in the bundle.\n e) {\n this.payload = t, this.byteLength = e;\n }\n ac() {\n return \"metadata\" in this.payload;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Helper to convert objects from bundles to model objects in the SDK.\n */ class bc {\n constructor(t) {\n this.O = t;\n }\n Gs(t) {\n return ss(this.O, t);\n }\n /**\n * Converts a BundleDocument to a MutableDocument.\n */ js(t) {\n return t.metadata.exists ? as(this.O, t.document, !1) : Jt.newNoDocument(this.Gs(t.metadata.name), this.Qs(t.metadata.readTime));\n }\n Qs(t) {\n return Zn(t);\n }\n}\n\n/**\n * A class to process the elements from a bundle, load them into local\n * storage and provide progress update while loading.\n */ class vc {\n constructor(t, e, n) {\n this.hc = t, this.localStore = e, this.O = n, \n /** Batched queries to be saved into storage */\n this.queries = [], \n /** Batched documents to be saved into storage */\n this.documents = [], this.progress = Vc(t);\n }\n /**\n * Adds an element from the bundle to the loader.\n *\n * Returns a new progress if adding the element leads to a new progress,\n * otherwise returns null.\n */ lc(t) {\n this.progress.bytesLoaded += t.byteLength;\n let e = this.progress.documentsLoaded;\n return t.payload.namedQuery ? this.queries.push(t.payload.namedQuery) : t.payload.documentMetadata ? (this.documents.push({\n metadata: t.payload.documentMetadata\n }), t.payload.documentMetadata.exists || ++e) : t.payload.document && (this.documents[this.documents.length - 1].document = t.payload.document, \n ++e), e !== this.progress.documentsLoaded ? (this.progress.documentsLoaded = e, \n Object.assign({}, this.progress)) : null;\n }\n fc(t) {\n const e = new Map, n = new bc(this.O);\n for (const s of t) if (s.metadata.queries) {\n const t = n.Gs(s.metadata.name);\n for (const n of s.metadata.queries) {\n const s = (e.get(n) || On()).add(t);\n e.set(n, s);\n }\n }\n return e;\n }\n /**\n * Update the progress to 'Success' and return the updated progress.\n */ async complete() {\n const t = await Zr(this.localStore, new bc(this.O), this.documents, this.hc.id), e = this.fc(this.documents);\n for (const t of this.queries) await to(this.localStore, t, e.get(t.name));\n return this.progress.taskState = \"Success\", new Or(Object.assign({}, this.progress), t);\n }\n}\n\n/**\n * Returns a `LoadBundleTaskProgress` representing the initial progress of\n * loading a bundle.\n */ function Vc(t) {\n return {\n taskState: \"Running\",\n documentsLoaded: 0,\n bytesLoaded: 0,\n totalDocuments: t.totalDocuments,\n totalBytes: t.totalBytes\n };\n}\n\n/**\n * Returns a `LoadBundleTaskProgress` representing the progress that the loading\n * has succeeded.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Sc {\n constructor(t) {\n this.key = t;\n }\n}\n\nclass Dc {\n constructor(t) {\n this.key = t;\n }\n}\n\n/**\n * View is responsible for computing the final merged truth of what docs are in\n * a query. It gets notified of local and remote changes to docs, and applies\n * the query filters and limits to determine the most correct possible results.\n */ class Cc {\n constructor(t, \n /** Documents included in the remote target */\n e) {\n this.query = t, this.dc = e, this._c = null, \n /**\n * A flag whether the view is current with the backend. A view is considered\n * current after it has seen the current flag from the backend and did not\n * lose consistency within the watch stream (e.g. because of an existence\n * filter mismatch).\n */\n this.current = !1, \n /** Documents in the view but not in the remote target */\n this.wc = On(), \n /** Document Keys that have local changes */\n this.mutatedKeys = On(), this.mc = Me(t), this.gc = new _c(this.mc);\n }\n /**\n * The set of remote documents that the server has told us belongs to the target associated with\n * this view.\n */ get yc() {\n return this.dc;\n }\n /**\n * Iterates over a set of doc changes, applies the query limit, and computes\n * what the new results should be, what the changes were, and whether we may\n * need to go back to the local cache for more results. Does not make any\n * changes to the view.\n * @param docChanges - The doc changes to apply to this view.\n * @param previousChanges - If this is being called with a refill, then start\n * with this set of docs and changes instead of the current view.\n * @returns a new set of docs, changes, and refill flag.\n */ Ic(t, e) {\n const n = e ? e.Ec : new wc, s = e ? e.gc : this.gc;\n let i = e ? e.mutatedKeys : this.mutatedKeys, r = s, o = !1;\n // Track the last doc in a (full) limit. This is necessary, because some\n // update (a delete, or an update moving a doc past the old limit) might\n // mean there is some other document in the local cache that either should\n // come (1) between the old last limit doc and the new last document, in the\n // case of updates, or (2) after the new last document, in the case of\n // deletes. So we keep this doc at the old limit to compare the updates to.\n // Note that this should never get used in a refill (when previousChanges is\n // set), because there will only be adds -- no deletes or updates.\n const c = Re(this.query) && s.size === this.query.limit ? s.last() : null, u = Pe(this.query) && s.size === this.query.limit ? s.first() : null;\n // Drop documents out to meet limit/limitToLast requirement.\n if (t.inorderTraversal(((t, e) => {\n const a = s.get(t), h = Oe(this.query, e) ? e : null, l = !!a && this.mutatedKeys.has(a.key), f = !!h && (h.hasLocalMutations || \n // We only consider committed mutations for documents that were\n // mutated during the lifetime of the view.\n this.mutatedKeys.has(h.key) && h.hasCommittedMutations);\n let d = !1;\n // Calculate change\n if (a && h) {\n a.data.isEqual(h.data) ? l !== f && (n.track({\n type: 3 /* Metadata */ ,\n doc: h\n }), d = !0) : this.Tc(a, h) || (n.track({\n type: 2 /* Modified */ ,\n doc: h\n }), d = !0, (c && this.mc(h, c) > 0 || u && this.mc(h, u) < 0) && (\n // This doc moved from inside the limit to outside the limit.\n // That means there may be some other doc in the local cache\n // that should be included instead.\n o = !0));\n } else !a && h ? (n.track({\n type: 0 /* Added */ ,\n doc: h\n }), d = !0) : a && !h && (n.track({\n type: 1 /* Removed */ ,\n doc: a\n }), d = !0, (c || u) && (\n // A doc was removed from a full limit query. We'll need to\n // requery from the local cache to see if we know about some other\n // doc that should be in the results.\n o = !0));\n d && (h ? (r = r.add(h), i = f ? i.add(t) : i.delete(t)) : (r = r.delete(t), i = i.delete(t)));\n })), Re(this.query) || Pe(this.query)) for (;r.size > this.query.limit; ) {\n const t = Re(this.query) ? r.last() : r.first();\n r = r.delete(t.key), i = i.delete(t.key), n.track({\n type: 1 /* Removed */ ,\n doc: t\n });\n }\n return {\n gc: r,\n Ec: n,\n ks: o,\n mutatedKeys: i\n };\n }\n Tc(t, e) {\n // We suppress the initial change event for documents that were modified as\n // part of a write acknowledgment (e.g. when the value of a server transform\n // is applied) as Watch will send us the same document again.\n // By suppressing the event, we only raise two user visible events (one with\n // `hasPendingWrites` and the final state of the document) instead of three\n // (one with `hasPendingWrites`, the modified document with\n // `hasPendingWrites` and the final state of the document).\n return t.hasLocalMutations && e.hasCommittedMutations && !e.hasLocalMutations;\n }\n /**\n * Updates the view with the given ViewDocumentChanges and optionally updates\n * limbo docs and sync state from the provided target change.\n * @param docChanges - The set of changes to make to the view's docs.\n * @param updateLimboDocuments - Whether to update limbo documents based on\n * this change.\n * @param targetChange - A target change to apply for computing limbo docs and\n * sync state.\n * @returns A new ViewChange with the given docs, changes, and sync state.\n */\n // PORTING NOTE: The iOS/Android clients always compute limbo document changes.\n applyChanges(t, e, n) {\n const s = this.gc;\n this.gc = t.gc, this.mutatedKeys = t.mutatedKeys;\n // Sort changes based on type and query comparator\n const i = t.Ec.Yo();\n i.sort(((t, e) => function(t, e) {\n const n = t => {\n switch (t) {\n case 0 /* Added */ :\n return 1;\n\n case 2 /* Modified */ :\n case 3 /* Metadata */ :\n // A metadata change is converted to a modified change at the public\n // api layer. Since we sort by document key and then change type,\n // metadata and modified changes must be sorted equivalently.\n return 2;\n\n case 1 /* Removed */ :\n return 0;\n\n default:\n return L();\n }\n };\n return n(t) - n(e);\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (t.type, e.type) || this.mc(t.doc, e.doc))), this.Ac(n);\n const r = e ? this.Rc() : [], o = 0 === this.wc.size && this.current ? 1 /* Synced */ : 0 /* Local */ , c = o !== this._c;\n if (this._c = o, 0 !== i.length || c) {\n return {\n snapshot: new mc(this.query, t.gc, s, i, t.mutatedKeys, 0 /* Local */ === o, c, \n /* excludesMetadataChanges= */ !1),\n Pc: r\n };\n }\n // no changes\n return {\n Pc: r\n };\n }\n /**\n * Applies an OnlineState change to the view, potentially generating a\n * ViewChange if the view's syncState changes as a result.\n */ tc(t) {\n return this.current && \"Offline\" /* Offline */ === t ? (\n // If we're offline, set `current` to false and then call applyChanges()\n // to refresh our syncState and generate a ViewChange as appropriate. We\n // are guaranteed to get a new TargetChange that sets `current` back to\n // true once the client is back online.\n this.current = !1, this.applyChanges({\n gc: this.gc,\n Ec: new wc,\n mutatedKeys: this.mutatedKeys,\n ks: !1\n }, \n /* updateLimboDocuments= */ !1)) : {\n Pc: []\n };\n }\n /**\n * Returns whether the doc for the given key should be in limbo.\n */ bc(t) {\n // If the remote end says it's part of this query, it's not in limbo.\n return !this.dc.has(t) && (\n // The local store doesn't think it's a result, so it shouldn't be in limbo.\n !!this.gc.has(t) && !this.gc.get(t).hasLocalMutations);\n }\n /**\n * Updates syncedDocuments, current, and limbo docs based on the given change.\n * Returns the list of changes to which docs are in limbo.\n */ Ac(t) {\n t && (t.addedDocuments.forEach((t => this.dc = this.dc.add(t))), t.modifiedDocuments.forEach((t => {})), \n t.removedDocuments.forEach((t => this.dc = this.dc.delete(t))), this.current = t.current);\n }\n Rc() {\n // We can only determine limbo documents when we're in-sync with the server.\n if (!this.current) return [];\n // TODO(klimt): Do this incrementally so that it's not quadratic when\n // updating many documents.\n const t = this.wc;\n this.wc = On(), this.gc.forEach((t => {\n this.bc(t.key) && (this.wc = this.wc.add(t.key));\n }));\n // Diff the new limbo docs with the old limbo docs.\n const e = [];\n return t.forEach((t => {\n this.wc.has(t) || e.push(new Dc(t));\n })), this.wc.forEach((n => {\n t.has(n) || e.push(new Sc(n));\n })), e;\n }\n /**\n * Update the in-memory state of the current view with the state read from\n * persistence.\n *\n * We update the query view whenever a client's primary status changes:\n * - When a client transitions from primary to secondary, it can miss\n * LocalStorage updates and its query views may temporarily not be\n * synchronized with the state on disk.\n * - For secondary to primary transitions, the client needs to update the list\n * of `syncedDocuments` since secondary clients update their query views\n * based purely on synthesized RemoteEvents.\n *\n * @param queryResult.documents - The documents that match the query according\n * to the LocalStore.\n * @param queryResult.remoteKeys - The keys of the documents that match the\n * query according to the backend.\n *\n * @returns The ViewChange that resulted from this synchronization.\n */\n // PORTING NOTE: Multi-tab only.\n vc(t) {\n this.dc = t.Ks, this.wc = On();\n const e = this.Ic(t.documents);\n return this.applyChanges(e, /*updateLimboDocuments=*/ !0);\n }\n /**\n * Returns a view snapshot as if this query was just listened to. Contains\n * a document add for every existing document and the `fromCache` and\n * `hasPendingWrites` status of the already established view.\n */\n // PORTING NOTE: Multi-tab only.\n Vc() {\n return mc.fromInitialDocuments(this.query, this.gc, this.mutatedKeys, 0 /* Local */ === this._c);\n }\n}\n\n/**\n * QueryView contains all of the data that SyncEngine needs to keep track of for\n * a particular query.\n */\nclass Nc {\n constructor(\n /**\n * The query itself.\n */\n t, \n /**\n * The target number created by the client that is used in the watch\n * stream to identify this query.\n */\n e, \n /**\n * The view is responsible for computing the final merged truth of what\n * docs are in the query. It gets notified of local and remote changes,\n * and applies the query filters and limits to determine the most correct\n * possible results.\n */\n n) {\n this.query = t, this.targetId = e, this.view = n;\n }\n}\n\n/** Tracks a limbo resolution. */ class xc {\n constructor(t) {\n this.key = t, \n /**\n * Set to true once we've received a document. This is used in\n * getRemoteKeysForTarget() and ultimately used by WatchChangeAggregator to\n * decide whether it needs to manufacture a delete event for the target once\n * the target is CURRENT.\n */\n this.Sc = !1;\n }\n}\n\n/**\n * An implementation of `SyncEngine` coordinating with other parts of SDK.\n *\n * The parts of SyncEngine that act as a callback to RemoteStore need to be\n * registered individually. This is done in `syncEngineWrite()` and\n * `syncEngineListen()` (as well as `applyPrimaryState()`) as these methods\n * serve as entry points to RemoteStore's functionality.\n *\n * Note: some field defined in this class might have public access level, but\n * the class is not exported so they are only accessible from this module.\n * This is useful to implement optional features (like bundles) in free\n * functions, such that they are tree-shakeable.\n */ class kc {\n constructor(t, e, n, \n // PORTING NOTE: Manages state synchronization in multi-tab environments.\n s, i, r) {\n this.localStore = t, this.remoteStore = e, this.eventManager = n, this.sharedClientState = s, \n this.currentUser = i, this.maxConcurrentLimboResolutions = r, this.Dc = {}, this.Cc = new Er((t => xe(t)), Ne), \n this.Nc = new Map, \n /**\n * The keys of documents that are in limbo for which we haven't yet started a\n * limbo resolution query. The strings in this set are the result of calling\n * `key.path.canonicalString()` where `key` is a `DocumentKey` object.\n *\n * The `Set` type was chosen because it provides efficient lookup and removal\n * of arbitrary elements and it also maintains insertion order, providing the\n * desired queue-like FIFO semantics.\n */\n this.xc = new Set, \n /**\n * Keeps track of the target ID for each document that is in limbo with an\n * active target.\n */\n this.kc = new An(Nt.comparator), \n /**\n * Keeps track of the information about an active limbo resolution for each\n * active target ID that was started for the purpose of limbo resolution.\n */\n this.Oc = new Map, this.Mc = new so, \n /** Stores user completion handlers, indexed by User and BatchId. */\n this.$c = {}, \n /** Stores user callbacks waiting for all pending writes to be acknowledged. */\n this.Fc = new Map, this.Bc = ar.Je(), this.onlineState = \"Unknown\" /* Unknown */ , \n // The primary state is set to `true` or `false` immediately after Firestore\n // startup. In the interim, a client should only be considered primary if\n // `isPrimary` is true.\n this.Lc = void 0;\n }\n get isPrimaryClient() {\n return !0 === this.Lc;\n }\n}\n\n/**\n * Initiates the new listen, resolves promise when listen enqueued to the\n * server. All the subsequent view snapshots or errors are sent to the\n * subscribed handlers. Returns the initial snapshot.\n */\nasync function Oc(t, e) {\n const n = hu(t);\n let s, i;\n const r = n.Cc.get(e);\n if (r) \n // PORTING NOTE: With Multi-Tab Web, it is possible that a query view\n // already exists when EventManager calls us for the first time. This\n // happens when the primary tab is already listening to this query on\n // behalf of another tab and the user of the primary also starts listening\n // to the query. EventManager will not have an assigned target ID in this\n // case and calls `listen` to obtain this ID.\n s = r.targetId, n.sharedClientState.addLocalQueryTarget(s), i = r.view.Vc(); else {\n const t = await Wr(n.localStore, De(e));\n n.isPrimaryClient && Lo(n.remoteStore, t);\n const r = n.sharedClientState.addLocalQueryTarget(t.targetId);\n s = t.targetId, i = await Mc(n, e, s, \"current\" === r);\n }\n return i;\n}\n\n/**\n * Registers a view for a previously unknown query and computes its initial\n * snapshot.\n */ async function Mc(t, e, n, s) {\n // PORTING NOTE: On Web only, we inject the code that registers new Limbo\n // targets based on view changes. This allows us to only depend on Limbo\n // changes when user code includes queries.\n t.Uc = (e, n, s) => async function(t, e, n, s) {\n let i = e.view.Ic(n);\n i.ks && (\n // The query has a limit and some docs were removed, so we need\n // to re-run the query against the local store to make sure we\n // didn't lose any good docs that had been past the limit.\n i = await Hr(t.localStore, e.query, \n /* usePreviousResults= */ !1).then((({documents: t}) => e.view.Ic(t, i))));\n const r = s && s.targetChanges.get(e.targetId), o = e.view.applyChanges(i, \n /* updateLimboDocuments= */ t.isPrimaryClient, r);\n return Hc(t, e.targetId, o.Pc), o.snapshot;\n }(t, e, n, s);\n const i = await Hr(t.localStore, e, \n /* usePreviousResults= */ !0), r = new Cc(e, i.Ks), o = r.Ic(i.documents), c = Bn.createSynthesizedTargetChangeForCurrentChange(n, s && \"Offline\" /* Offline */ !== t.onlineState), u = r.applyChanges(o, \n /* updateLimboDocuments= */ t.isPrimaryClient, c);\n Hc(t, n, u.Pc);\n const a = new Nc(e, n, r);\n return t.Cc.set(e, a), t.Nc.has(n) ? t.Nc.get(n).push(e) : t.Nc.set(n, [ e ]), u.snapshot;\n}\n\n/** Stops listening to the query. */ async function $c(t, e) {\n const n = K(t), s = n.Cc.get(e), i = n.Nc.get(s.targetId);\n if (i.length > 1) return n.Nc.set(s.targetId, i.filter((t => !Ne(t, e)))), void n.Cc.delete(e);\n // No other queries are mapped to the target, clean up the query and the target.\n if (n.isPrimaryClient) {\n // We need to remove the local query target first to allow us to verify\n // whether any other client is still interested in this target.\n n.sharedClientState.removeLocalQueryTarget(s.targetId);\n n.sharedClientState.isActiveQueryTarget(s.targetId) || await zr(n.localStore, s.targetId, \n /*keepPersistedTargetData=*/ !1).then((() => {\n n.sharedClientState.clearQueryState(s.targetId), Uo(n.remoteStore, s.targetId), \n Wc(n, s.targetId);\n })).catch(_r);\n } else Wc(n, s.targetId), await zr(n.localStore, s.targetId, \n /*keepPersistedTargetData=*/ !0);\n}\n\n/**\n * Initiates the write of local mutation batch which involves adding the\n * writes to the mutation queue, notifying the remote store about new\n * mutations and raising events for any changes this write caused.\n *\n * The promise returned by this call is resolved when the above steps\n * have completed, *not* when the write was acked by the backend. The\n * userCallback is resolved once the write was acked/rejected by the\n * backend (or failed locally for any other reason).\n */ async function Fc(t, e, n) {\n const s = lu(t);\n try {\n const t = await function(t, e) {\n const n = K(t), s = ut.now(), i = e.reduce(((t, e) => t.add(e.key)), On());\n let r;\n return n.persistence.runTransaction(\"Locally write mutations\", \"readwrite\", (t => n.Us.Es(t, i).next((i => {\n r = i;\n // For non-idempotent mutations (such as `FieldValue.increment()`),\n // we record the base state in a separate patch mutation. This is\n // later used to guarantee consistent values and prevents flicker\n // even if the backend sends us an update that already includes our\n // transform.\n const o = [];\n for (const t of e) {\n const e = un(t, r.get(t.key));\n null != e && \n // NOTE: The base state should only be applied if there's some\n // existing document to override, so use a Precondition of\n // exists=true\n o.push(new fn(t.key, e, Ht(e.value.mapValue), nn.exists(!0)));\n }\n return n.gs.addMutationBatch(t, s, o, e);\n })))).then((t => (t.applyToLocalDocumentSet(r), {\n batchId: t.batchId,\n changes: r\n })));\n }(s.localStore, e);\n s.sharedClientState.addPendingMutation(t.batchId), function(t, e, n) {\n let s = t.$c[t.currentUser.toKey()];\n s || (s = new An(rt));\n s = s.insert(e, n), t.$c[t.currentUser.toKey()] = s;\n }\n /**\n * Resolves or rejects the user callback for the given batch and then discards\n * it.\n */ (s, t.batchId, n), await Xc(s, t.changes), await Zo(s.remoteStore);\n } catch (t) {\n // If we can't persist the mutation, we reject the user callback and\n // don't send the mutation. The user can then retry the write.\n const e = dc(t, \"Failed to persist write\");\n n.reject(e);\n }\n}\n\n/**\n * Applies one remote event to the sync engine, notifying any views of the\n * changes, and releasing any pending mutation batches that would become\n * visible because of the snapshot version the remote event contains.\n */ async function Bc(t, e) {\n const n = K(t);\n try {\n const t = await Gr(n.localStore, e);\n // Update `receivedDocument` as appropriate for any limbo targets.\n e.targetChanges.forEach(((t, e) => {\n const s = n.Oc.get(e);\n s && (\n // Since this is a limbo resolution lookup, it's for a single document\n // and it could be added, modified, or removed, but not a combination.\n U(t.addedDocuments.size + t.modifiedDocuments.size + t.removedDocuments.size <= 1), \n t.addedDocuments.size > 0 ? s.Sc = !0 : t.modifiedDocuments.size > 0 ? U(s.Sc) : t.removedDocuments.size > 0 && (U(s.Sc), \n s.Sc = !1));\n })), await Xc(n, t, e);\n } catch (t) {\n await _r(t);\n }\n}\n\n/**\n * Applies an OnlineState change to the sync engine and notifies any views of\n * the change.\n */ function Lc(t, e, n) {\n const s = K(t);\n // If we are the secondary client, we explicitly ignore the remote store's\n // online state (the local client may go offline, even though the primary\n // tab remains online) and only apply the primary tab's online state from\n // SharedClientState.\n if (s.isPrimaryClient && 0 /* RemoteStore */ === n || !s.isPrimaryClient && 1 /* SharedClientState */ === n) {\n const t = [];\n s.Cc.forEach(((n, s) => {\n const i = s.view.tc(e);\n i.snapshot && t.push(i.snapshot);\n })), function(t, e) {\n const n = K(t);\n n.onlineState = e;\n let s = !1;\n n.queries.forEach(((t, n) => {\n for (const t of n.listeners) \n // Run global snapshot listeners if a consistent snapshot has been emitted.\n t.tc(e) && (s = !0);\n })), s && Ac(n);\n }(s.eventManager, e), t.length && s.Dc.To(t), s.onlineState = e, s.isPrimaryClient && s.sharedClientState.setOnlineState(e);\n }\n}\n\n/**\n * Rejects the listen for the given targetID. This can be triggered by the\n * backend for any active target.\n *\n * @param syncEngine - The sync engine implementation.\n * @param targetId - The targetID corresponds to one previously initiated by the\n * user as part of TargetData passed to listen() on RemoteStore.\n * @param err - A description of the condition that has forced the rejection.\n * Nearly always this will be an indication that the user is no longer\n * authorized to see the data matching the target.\n */ async function Uc(t, e, n) {\n const s = K(t);\n // PORTING NOTE: Multi-tab only.\n s.sharedClientState.updateQueryState(e, \"rejected\", n);\n const i = s.Oc.get(e), r = i && i.key;\n if (r) {\n // TODO(klimt): We really only should do the following on permission\n // denied errors, but we don't have the cause code here.\n // It's a limbo doc. Create a synthetic event saying it was deleted.\n // This is kind of a hack. Ideally, we would have a method in the local\n // store to purge a document. However, it would be tricky to keep all of\n // the local store's invariants with another method.\n let t = new An(Nt.comparator);\n // TODO(b/217189216): This limbo document should ideally have a read time,\n // so that it is picked up by any read-time based scans. The backend,\n // however, does not send a read time for target removals.\n t = t.insert(r, Jt.newNoDocument(r, at.min()));\n const n = On().add(r), i = new Fn(at.min(), \n /* targetChanges= */ new Map, \n /* targetMismatches= */ new bn(rt), t, n);\n await Bc(s, i), \n // Since this query failed, we won't want to manually unlisten to it.\n // We only remove it from bookkeeping after we successfully applied the\n // RemoteEvent. If `applyRemoteEvent()` throws, we want to re-listen to\n // this query when the RemoteStore restarts the Watch stream, which should\n // re-trigger the target failure.\n s.kc = s.kc.remove(r), s.Oc.delete(e), Yc(s);\n } else await zr(s.localStore, e, \n /* keepPersistedTargetData */ !1).then((() => Wc(s, e, n))).catch(_r);\n}\n\nasync function qc(t, e) {\n const n = K(t), s = e.batch.batchId;\n try {\n const t = await qr(n.localStore, e);\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught\n // up), so we raise user callbacks first so that they consistently happen\n // before listen events.\n Qc(n, s, /*error=*/ null), jc(n, s), n.sharedClientState.updateMutationState(s, \"acknowledged\"), \n await Xc(n, t);\n } catch (t) {\n await _r(t);\n }\n}\n\nasync function Kc(t, e, n) {\n const s = K(t);\n try {\n const t = await function(t, e) {\n const n = K(t);\n return n.persistence.runTransaction(\"Reject batch\", \"readwrite-primary\", (t => {\n let s;\n return n.gs.lookupMutationBatch(t, e).next((e => (U(null !== e), s = e.keys(), n.gs.removeMutationBatch(t, e)))).next((() => n.gs.performConsistencyCheck(t))).next((() => n.Us.Es(t, s)));\n }));\n }\n /**\n * Returns the largest (latest) batch id in mutation queue that is pending\n * server response.\n *\n * Returns `BATCHID_UNKNOWN` if the queue is empty.\n */ (s.localStore, e);\n // The local store may or may not be able to apply the write result and\n // raise events immediately (depending on whether the watcher is caught up),\n // so we raise user callbacks first so that they consistently happen before\n // listen events.\n Qc(s, e, n), jc(s, e), s.sharedClientState.updateMutationState(e, \"rejected\", n), \n await Xc(s, t);\n } catch (n) {\n await _r(n);\n }\n}\n\n/**\n * Registers a user callback that resolves when all pending mutations at the moment of calling\n * are acknowledged .\n */ async function Gc(t, e) {\n const n = K(t);\n Qo(n.remoteStore) || M(\"SyncEngine\", \"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.\");\n try {\n const t = await function(t) {\n const e = K(t);\n return e.persistence.runTransaction(\"Get highest unacknowledged batch id\", \"readonly\", (t => e.gs.getHighestUnacknowledgedBatchId(t)));\n }(n.localStore);\n if (-1 === t) \n // Trigger the callback right away if there is no pending writes at the moment.\n return void e.resolve();\n const s = n.Fc.get(t) || [];\n s.push(e), n.Fc.set(t, s);\n } catch (t) {\n const n = dc(t, \"Initialization of waitForPendingWrites() operation failed\");\n e.reject(n);\n }\n}\n\n/**\n * Triggers the callbacks that are waiting for this batch id to get acknowledged by server,\n * if there are any.\n */ function jc(t, e) {\n (t.Fc.get(e) || []).forEach((t => {\n t.resolve();\n })), t.Fc.delete(e);\n}\n\n/** Reject all outstanding callbacks waiting for pending writes to complete. */ function Qc(t, e, n) {\n const s = K(t);\n let i = s.$c[s.currentUser.toKey()];\n // NOTE: Mutations restored from persistence won't have callbacks, so it's\n // okay for there to be no callback for this ID.\n if (i) {\n const t = i.get(e);\n t && (n ? t.reject(n) : t.resolve(), i = i.remove(e)), s.$c[s.currentUser.toKey()] = i;\n }\n}\n\nfunction Wc(t, e, n = null) {\n t.sharedClientState.removeLocalQueryTarget(e);\n for (const s of t.Nc.get(e)) t.Cc.delete(s), n && t.Dc.qc(s, n);\n if (t.Nc.delete(e), t.isPrimaryClient) {\n t.Mc.si(e).forEach((e => {\n t.Mc.containsKey(e) || \n // We removed the last reference for this key\n zc(t, e);\n }));\n }\n}\n\nfunction zc(t, e) {\n t.xc.delete(e.path.canonicalString());\n // It's possible that the target already got removed because the query failed. In that case,\n // the key won't exist in `limboTargetsByKey`. Only do the cleanup if we still have the target.\n const n = t.kc.get(e);\n null !== n && (Uo(t.remoteStore, n), t.kc = t.kc.remove(e), t.Oc.delete(n), Yc(t));\n}\n\nfunction Hc(t, e, n) {\n for (const s of n) if (s instanceof Sc) t.Mc.addReference(s.key, e), Jc(t, s); else if (s instanceof Dc) {\n M(\"SyncEngine\", \"Document no longer in limbo: \" + s.key), t.Mc.removeReference(s.key, e);\n t.Mc.containsKey(s.key) || \n // We removed the last reference for this key\n zc(t, s.key);\n } else L();\n}\n\nfunction Jc(t, e) {\n const n = e.key, s = n.path.canonicalString();\n t.kc.get(n) || t.xc.has(s) || (M(\"SyncEngine\", \"New document in limbo: \" + n), t.xc.add(s), \n Yc(t));\n}\n\n/**\n * Starts listens for documents in limbo that are enqueued for resolution,\n * subject to a maximum number of concurrent resolutions.\n *\n * Without bounding the number of concurrent resolutions, the server can fail\n * with \"resource exhausted\" errors which can lead to pathological client\n * behavior as seen in https://github.com/firebase/firebase-js-sdk/issues/2683.\n */ function Yc(t) {\n for (;t.xc.size > 0 && t.kc.size < t.maxConcurrentLimboResolutions; ) {\n const e = t.xc.values().next().value;\n t.xc.delete(e);\n const n = new Nt(_t.fromString(e)), s = t.Bc.next();\n t.Oc.set(s, new xc(n)), t.kc = t.kc.insert(n, s), Lo(t.remoteStore, new yi(De(Ae(n.path)), s, 2 /* LimboResolution */ , nt.A));\n }\n}\n\nasync function Xc(t, e, n) {\n const s = K(t), i = [], r = [], o = [];\n s.Cc.isEmpty() || (s.Cc.forEach(((t, c) => {\n o.push(s.Uc(c, e, n).then((t => {\n if (t) {\n s.isPrimaryClient && s.sharedClientState.updateQueryState(c.targetId, t.fromCache ? \"not-current\" : \"current\"), \n i.push(t);\n const e = $r.Ss(c.targetId, t);\n r.push(e);\n }\n })));\n })), await Promise.all(o), s.Dc.To(i), await async function(t, e) {\n const n = K(t);\n try {\n await n.persistence.runTransaction(\"notifyLocalViewChanges\", \"readwrite\", (t => si.forEach(e, (e => si.forEach(e.vs, (s => n.persistence.referenceDelegate.addReference(t, e.targetId, s))).next((() => si.forEach(e.Vs, (s => n.persistence.referenceDelegate.removeReference(t, e.targetId, s)))))))));\n } catch (t) {\n if (!ui(t)) throw t;\n // If `notifyLocalViewChanges` fails, we did not advance the sequence\n // number for the documents that were included in this transaction.\n // This might trigger them to be deleted earlier than they otherwise\n // would have, but it should not invalidate the integrity of the data.\n M(\"LocalStore\", \"Failed to update sequence numbers: \" + t);\n }\n for (const t of e) {\n const e = t.targetId;\n if (!t.fromCache) {\n const t = n.Ms.get(e), s = t.snapshotVersion, i = t.withLastLimboFreeSnapshotVersion(s);\n // Advance the last limbo free snapshot version\n n.Ms = n.Ms.insert(e, i);\n }\n }\n }(s.localStore, r));\n}\n\nasync function Zc(t, e) {\n const n = K(t);\n if (!n.currentUser.isEqual(e)) {\n M(\"SyncEngine\", \"User change. New user:\", e.toKey());\n const t = await Ur(n.localStore, e);\n n.currentUser = e, \n // Fails tasks waiting for pending writes requested by previous user.\n function(t, e) {\n t.Fc.forEach((t => {\n t.forEach((t => {\n t.reject(new j(G.CANCELLED, e));\n }));\n })), t.Fc.clear();\n }(n, \"'waitForPendingWrites' promise is rejected due to a user change.\"), \n // TODO(b/114226417): Consider calling this only in the primary tab.\n n.sharedClientState.handleUserChange(e, t.removedBatchIds, t.addedBatchIds), await Xc(n, t.qs);\n }\n}\n\nfunction tu(t, e) {\n const n = K(t), s = n.Oc.get(e);\n if (s && s.Sc) return On().add(s.key);\n {\n let t = On();\n const s = n.Nc.get(e);\n if (!s) return t;\n for (const e of s) {\n const s = n.Cc.get(e);\n t = t.unionWith(s.view.yc);\n }\n return t;\n }\n}\n\n/**\n * Reconcile the list of synced documents in an existing view with those\n * from persistence.\n */ async function eu(t, e) {\n const n = K(t), s = await Hr(n.localStore, e.query, \n /* usePreviousResults= */ !0), i = e.view.vc(s);\n return n.isPrimaryClient && Hc(n, e.targetId, i.Pc), i;\n}\n\n/**\n * Retrieves newly changed documents from remote document cache and raises\n * snapshots if needed.\n */\n// PORTING NOTE: Multi-Tab only.\nasync function nu(t) {\n const e = K(t);\n return Yr(e.localStore).then((t => Xc(e, t)));\n}\n\n/** Applies a mutation state to an existing batch. */\n// PORTING NOTE: Multi-Tab only.\nasync function su(t, e, n, s) {\n const i = K(t), r = await function(t, e) {\n const n = K(t), s = K(n.gs);\n return n.persistence.runTransaction(\"Lookup mutation documents\", \"readonly\", (t => s.Ge(t, e).next((e => e ? n.Us.Es(t, e) : si.resolve(null)))));\n }\n // PORTING NOTE: Multi-Tab only.\n (i.localStore, e);\n null !== r ? (\"pending\" === n ? \n // If we are the primary client, we need to send this write to the\n // backend. Secondary clients will ignore these writes since their remote\n // connection is disabled.\n await Zo(i.remoteStore) : \"acknowledged\" === n || \"rejected\" === n ? (\n // NOTE: Both these methods are no-ops for batches that originated from\n // other clients.\n Qc(i, e, s || null), jc(i, e), function(t, e) {\n K(K(t).gs).Qe(e);\n }\n // PORTING NOTE: Multi-Tab only.\n (i.localStore, e)) : L(), await Xc(i, r)) : \n // A throttled tab may not have seen the mutation before it was completed\n // and removed from the mutation queue, in which case we won't have cached\n // the affected documents. In this case we can safely ignore the update\n // since that means we didn't apply the mutation locally at all (if we\n // had, we would have cached the affected documents), and so we will just\n // see any resulting document changes via normal remote document updates\n // as applicable.\n M(\"SyncEngine\", \"Cannot apply mutation batch with id: \" + e);\n}\n\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\nasync function iu(t, e) {\n const n = K(t);\n if (hu(n), lu(n), !0 === e && !0 !== n.Lc) {\n // Secondary tabs only maintain Views for their local listeners and the\n // Views internal state may not be 100% populated (in particular\n // secondary tabs don't track syncedDocuments, the set of documents the\n // server considers to be in the target). So when a secondary becomes\n // primary, we need to need to make sure that all views for all targets\n // match the state on disk.\n const t = n.sharedClientState.getAllActiveQueryTargets(), e = await ru(n, t.toArray());\n n.Lc = !0, await ac(n.remoteStore, !0);\n for (const t of e) Lo(n.remoteStore, t);\n } else if (!1 === e && !1 !== n.Lc) {\n const t = [];\n let e = Promise.resolve();\n n.Nc.forEach(((s, i) => {\n n.sharedClientState.isLocalQueryTarget(i) ? t.push(i) : e = e.then((() => (Wc(n, i), \n zr(n.localStore, i, \n /*keepPersistedTargetData=*/ !0)))), Uo(n.remoteStore, i);\n })), await e, await ru(n, t), \n // PORTING NOTE: Multi-Tab only.\n function(t) {\n const e = K(t);\n e.Oc.forEach(((t, n) => {\n Uo(e.remoteStore, n);\n })), e.Mc.ii(), e.Oc = new Map, e.kc = new An(Nt.comparator);\n }\n /**\n * Reconcile the query views of the provided query targets with the state from\n * persistence. Raises snapshots for any changes that affect the local\n * client and returns the updated state of all target's query data.\n *\n * @param syncEngine - The sync engine implementation\n * @param targets - the list of targets with views that need to be recomputed\n * @param transitionToPrimary - `true` iff the tab transitions from a secondary\n * tab to a primary tab\n */\n // PORTING NOTE: Multi-Tab only.\n (n), n.Lc = !1, await ac(n.remoteStore, !1);\n }\n}\n\nasync function ru(t, e, n) {\n const s = K(t), i = [], r = [];\n for (const t of e) {\n let e;\n const n = s.Nc.get(t);\n if (n && 0 !== n.length) {\n // For queries that have a local View, we fetch their current state\n // from LocalStore (as the resume token and the snapshot version\n // might have changed) and reconcile their views with the persisted\n // state (the list of syncedDocuments may have gotten out of sync).\n e = await Wr(s.localStore, De(n[0]));\n for (const t of n) {\n const e = s.Cc.get(t), n = await eu(s, e);\n n.snapshot && r.push(n.snapshot);\n }\n } else {\n // For queries that never executed on this client, we need to\n // allocate the target in LocalStore and initialize a new View.\n const n = await Jr(s.localStore, t);\n e = await Wr(s.localStore, n), await Mc(s, ou(n), t, \n /*current=*/ !1);\n }\n i.push(e);\n }\n return s.Dc.To(r), i;\n}\n\n/**\n * Creates a `Query` object from the specified `Target`. There is no way to\n * obtain the original `Query`, so we synthesize a `Query` from the `Target`\n * object.\n *\n * The synthesized result might be different from the original `Query`, but\n * since the synthesized `Query` should return the same results as the\n * original one (only the presentation of results might differ), the potential\n * difference will not cause issues.\n */\n// PORTING NOTE: Multi-Tab only.\nfunction ou(t) {\n return Te(t.path, t.collectionGroup, t.orderBy, t.filters, t.limit, \"F\" /* First */ , t.startAt, t.endAt);\n}\n\n/** Returns the IDs of the clients that are currently active. */\n// PORTING NOTE: Multi-Tab only.\nfunction cu(t) {\n const e = K(t);\n return K(K(e.localStore).persistence).ds();\n}\n\n/** Applies a query target change from a different tab. */\n// PORTING NOTE: Multi-Tab only.\nasync function uu(t, e, n, s) {\n const i = K(t);\n if (i.Lc) \n // If we receive a target state notification via WebStorage, we are\n // either already secondary or another tab has taken the primary lease.\n M(\"SyncEngine\", \"Ignoring unexpected query state notification.\"); else if (i.Nc.has(e)) switch (n) {\n case \"current\":\n case \"not-current\":\n {\n const t = await Yr(i.localStore), s = Fn.createSynthesizedRemoteEventForCurrentChange(e, \"current\" === n);\n await Xc(i, t, s);\n break;\n }\n\n case \"rejected\":\n await zr(i.localStore, e, \n /* keepPersistedTargetData */ !0), Wc(i, e, s);\n break;\n\n default:\n L();\n }\n}\n\n/** Adds or removes Watch targets for queries from different tabs. */ async function au(t, e, n) {\n const s = hu(t);\n if (s.Lc) {\n for (const t of e) {\n if (s.Nc.has(t)) {\n // A target might have been added in a previous attempt\n M(\"SyncEngine\", \"Adding an already active target \" + t);\n continue;\n }\n const e = await Jr(s.localStore, t), n = await Wr(s.localStore, e);\n await Mc(s, ou(e), n.targetId, \n /*current=*/ !1), Lo(s.remoteStore, n);\n }\n for (const t of n) \n // Check that the target is still active since the target might have been\n // removed if it has been rejected by the backend.\n s.Nc.has(t) && \n // Release queries that are still active.\n await zr(s.localStore, t, \n /* keepPersistedTargetData */ !1).then((() => {\n Uo(s.remoteStore, t), Wc(s, t);\n })).catch(_r);\n }\n}\n\nfunction hu(t) {\n const e = K(t);\n return e.remoteStore.remoteSyncer.applyRemoteEvent = Bc.bind(null, e), e.remoteStore.remoteSyncer.getRemoteKeysForTarget = tu.bind(null, e), \n e.remoteStore.remoteSyncer.rejectListen = Uc.bind(null, e), e.Dc.To = Ec.bind(null, e.eventManager), \n e.Dc.qc = Tc.bind(null, e.eventManager), e;\n}\n\nfunction lu(t) {\n const e = K(t);\n return e.remoteStore.remoteSyncer.applySuccessfulWrite = qc.bind(null, e), e.remoteStore.remoteSyncer.rejectFailedWrite = Kc.bind(null, e), \n e;\n}\n\n/**\n * Loads a Firestore bundle into the SDK. The returned promise resolves when\n * the bundle finished loading.\n *\n * @param syncEngine - SyncEngine to use.\n * @param bundleReader - Bundle to load into the SDK.\n * @param task - LoadBundleTask used to update the loading progress to public API.\n */ function fu(t, e, n) {\n const s = K(t);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n (async function(t, e, n) {\n try {\n const s = await e.getMetadata();\n if (await function(t, e) {\n const n = K(t), s = Zn(e.createTime);\n return n.persistence.runTransaction(\"hasNewerBundle\", \"readonly\", (t => n.Kn.getBundleMetadata(t, e.id))).then((t => !!t && t.createTime.compareTo(s) >= 0));\n }\n /**\n * Saves the given `BundleMetadata` to local persistence.\n */ (t.localStore, s)) return await e.close(), void n._completeWith(function(t) {\n return {\n taskState: \"Success\",\n documentsLoaded: t.totalDocuments,\n bytesLoaded: t.totalBytes,\n totalDocuments: t.totalDocuments,\n totalBytes: t.totalBytes\n };\n }(s));\n n._updateProgress(Vc(s));\n const i = new vc(s, t.localStore, e.O);\n let r = await e.Kc();\n for (;r; ) {\n const t = await i.lc(r);\n t && n._updateProgress(t), r = await e.Kc();\n }\n const o = await i.complete();\n // TODO(b/160876443): This currently raises snapshots with\n // `fromCache=false` if users already listen to some queries and bundles\n // has newer version.\n await Xc(t, o.ws, \n /* remoteEvent */ void 0), \n // Save metadata, so loading the same bundle will skip.\n await function(t, e) {\n const n = K(t);\n return n.persistence.runTransaction(\"Save bundle\", \"readwrite\", (t => n.Kn.saveBundleMetadata(t, e)));\n }\n /**\n * Returns a promise of a `NamedQuery` associated with given query name. Promise\n * resolves to undefined if no persisted data can be found.\n */ (t.localStore, s), n._completeWith(o.progress);\n } catch (t) {\n F(\"SyncEngine\", `Loading bundle failed with ${t}`), n._failWith(t);\n }\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Provides all components needed for Firestore with in-memory persistence.\n * Uses EagerGC garbage collection.\n */)(s, e, n).then((() => {\n s.sharedClientState.notifyBundleLoaded();\n }));\n}\n\nclass du {\n constructor() {\n this.synchronizeTabs = !1;\n }\n async initialize(t) {\n this.O = Do(t.databaseInfo.databaseId), this.sharedClientState = this.Gc(t), this.persistence = this.jc(t), \n await this.persistence.start(), this.gcScheduler = this.Qc(t), this.localStore = this.Wc(t);\n }\n Qc(t) {\n return null;\n }\n Wc(t) {\n return Lr(this.persistence, new Fr, t.initialUser, this.O);\n }\n jc(t) {\n return new ao(lo.bi, this.O);\n }\n Gc(t) {\n return new To;\n }\n async terminate() {\n this.gcScheduler && this.gcScheduler.stop(), await this.sharedClientState.shutdown(), \n await this.persistence.shutdown();\n }\n}\n\n/**\n * Provides all components needed for Firestore with IndexedDB persistence.\n */ class _u extends du {\n constructor(t, e, n) {\n super(), this.zc = t, this.cacheSizeBytes = e, this.forceOwnership = n, this.synchronizeTabs = !1;\n }\n async initialize(t) {\n await super.initialize(t), await Xr(this.localStore), await this.zc.initialize(this, t), \n // Enqueue writes from a previous session\n await lu(this.zc.syncEngine), await Zo(this.zc.remoteStore), \n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n await this.persistence.Hn((() => (this.gcScheduler && !this.gcScheduler.started && this.gcScheduler.start(this.localStore), \n Promise.resolve())));\n }\n Wc(t) {\n return Lr(this.persistence, new Fr, t.initialUser, this.O);\n }\n Qc(t) {\n const e = this.persistence.referenceDelegate.garbageCollector;\n return new gr(e, t.asyncQueue);\n }\n jc(t) {\n const e = kr(t.databaseInfo.databaseId, t.databaseInfo.persistenceKey), n = void 0 !== this.cacheSizeBytes ? er.withCacheSize(this.cacheSizeBytes) : er.DEFAULT;\n return new Cr(this.synchronizeTabs, e, t.clientId, n, t.asyncQueue, Vo(), So(), this.O, this.sharedClientState, !!this.forceOwnership);\n }\n Gc(t) {\n return new To;\n }\n}\n\n/**\n * Provides all components needed for Firestore with multi-tab IndexedDB\n * persistence.\n *\n * In the legacy client, this provider is used to provide both multi-tab and\n * non-multi-tab persistence since we cannot tell at build time whether\n * `synchronizeTabs` will be enabled.\n */ class wu extends _u {\n constructor(t, e) {\n super(t, e, /* forceOwnership= */ !1), this.zc = t, this.cacheSizeBytes = e, this.synchronizeTabs = !0;\n }\n async initialize(t) {\n await super.initialize(t);\n const e = this.zc.syncEngine;\n this.sharedClientState instanceof Eo && (this.sharedClientState.syncEngine = {\n hr: su.bind(null, e),\n lr: uu.bind(null, e),\n dr: au.bind(null, e),\n ds: cu.bind(null, e),\n ar: nu.bind(null, e)\n }, await this.sharedClientState.start()), \n // NOTE: This will immediately call the listener, so we make sure to\n // set it after localStore / remoteStore are started.\n await this.persistence.Hn((async t => {\n await iu(this.zc.syncEngine, t), this.gcScheduler && (t && !this.gcScheduler.started ? this.gcScheduler.start(this.localStore) : t || this.gcScheduler.stop());\n }));\n }\n Gc(t) {\n const e = Vo();\n if (!Eo.Vt(e)) throw new j(G.UNIMPLEMENTED, \"IndexedDB persistence is only available on platforms that support LocalStorage.\");\n const n = kr(t.databaseInfo.databaseId, t.databaseInfo.persistenceKey);\n return new Eo(e, t.asyncQueue, n, t.clientId, t.initialUser);\n }\n}\n\n/**\n * Initializes and wires the components that are needed to interface with the\n * network.\n */ class mu {\n async initialize(t, e) {\n this.localStore || (this.localStore = t.localStore, this.sharedClientState = t.sharedClientState, \n this.datastore = this.createDatastore(e), this.remoteStore = this.createRemoteStore(e), \n this.eventManager = this.createEventManager(e), this.syncEngine = this.createSyncEngine(e, \n /* startAsPrimary=*/ !t.synchronizeTabs), this.sharedClientState.onlineStateHandler = t => Lc(this.syncEngine, t, 1 /* SharedClientState */), \n this.remoteStore.remoteSyncer.handleCredentialChange = Zc.bind(null, this.syncEngine), \n await ac(this.remoteStore, this.syncEngine.isPrimaryClient));\n }\n createEventManager(t) {\n return new yc;\n }\n createDatastore(t) {\n const e = Do(t.databaseInfo.databaseId), n = (s = t.databaseInfo, new vo(s));\n var s;\n /** Return the Platform-specific connectivity monitor. */ return function(t, e, n, s) {\n return new Oo(t, e, n, s);\n }(t.authCredentials, t.appCheckCredentials, n, e);\n }\n createRemoteStore(t) {\n return e = this.localStore, n = this.datastore, s = t.asyncQueue, i = t => Lc(this.syncEngine, t, 0 /* RemoteStore */), \n r = Ro.Vt() ? new Ro : new Ao, new $o(e, n, s, i, r);\n var e, n, s, i, r;\n /** Re-enables the network. Idempotent. */ }\n createSyncEngine(t, e) {\n return function(t, e, n, \n // PORTING NOTE: Manages state synchronization in multi-tab environments.\n s, i, r, o) {\n const c = new kc(t, e, n, s, i, r);\n return o && (c.Lc = !0), c;\n }(this.localStore, this.remoteStore, this.eventManager, this.sharedClientState, t.initialUser, t.maxConcurrentLimboResolutions, e);\n }\n terminate() {\n return async function(t) {\n const e = K(t);\n M(\"RemoteStore\", \"RemoteStore shutting down.\"), e.Ko.add(5 /* Shutdown */), await Bo(e), \n e.jo.shutdown(), \n // Set the OnlineState to Unknown (rather than Offline) to avoid potentially\n // triggering spurious listener events with cached data, etc.\n e.Qo.set(\"Unknown\" /* Unknown */);\n }(this.remoteStore);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * How many bytes to read each time when `ReadableStreamReader.read()` is\n * called. Only applicable for byte streams that we control (e.g. those backed\n * by an UInt8Array).\n */\n/**\n * Builds a `ByteStreamReader` from a UInt8Array.\n * @param source - The data source to use.\n * @param bytesPerRead - How many bytes each `read()` from the returned reader\n * will read.\n */\nfunction gu(t, e = 10240) {\n let n = 0;\n // The TypeScript definition for ReadableStreamReader changed. We use\n // `any` here to allow this code to compile with different versions.\n // See https://github.com/microsoft/TypeScript/issues/42970\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async read() {\n if (n < t.byteLength) {\n const s = {\n value: t.slice(n, n + e),\n done: !1\n };\n return n += e, s;\n }\n return {\n done: !0\n };\n },\n async cancel() {},\n releaseLock() {},\n closed: Promise.reject(\"unimplemented\")\n };\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * On web, a `ReadableStream` is wrapped around by a `ByteStreamReader`.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*\n * A wrapper implementation of Observer<T> that will dispatch events\n * asynchronously. To allow immediate silencing, a mute call is added which\n * causes events scheduled to no longer be raised.\n */\nclass yu {\n constructor(t) {\n this.observer = t, \n /**\n * When set to true, will not raise future events. Necessary to deal with\n * async detachment of listener.\n */\n this.muted = !1;\n }\n next(t) {\n this.observer.next && this.Hc(this.observer.next, t);\n }\n error(t) {\n this.observer.error ? this.Hc(this.observer.error, t) : console.error(\"Uncaught Error in snapshot listener:\", t);\n }\n Jc() {\n this.muted = !0;\n }\n Hc(t, e) {\n this.muted || setTimeout((() => {\n this.muted || t(e);\n }), 0);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A class representing a bundle.\n *\n * Takes a bundle stream or buffer, and presents abstractions to read bundled\n * elements out of the underlying content.\n */ class pu {\n constructor(\n /** The reader to read from underlying binary bundle data source. */\n t, e) {\n this.Yc = t, this.O = e, \n /** Cached bundle metadata. */\n this.metadata = new Q, \n /**\n * Internal buffer to hold bundle content, accumulating incomplete element\n * content.\n */\n this.buffer = new Uint8Array, this.Xc = new TextDecoder(\"utf-8\"), \n // Read the metadata (which is the first element).\n this.Zc().then((t => {\n t && t.ac() ? this.metadata.resolve(t.payload.metadata) : this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\\n ${JSON.stringify(null == t ? void 0 : t.payload)}`));\n }), (t => this.metadata.reject(t)));\n }\n close() {\n return this.Yc.cancel();\n }\n async getMetadata() {\n return this.metadata.promise;\n }\n async Kc() {\n // Makes sure metadata is read before proceeding.\n return await this.getMetadata(), this.Zc();\n }\n /**\n * Reads from the head of internal buffer, and pulling more data from\n * underlying stream if a complete element cannot be found, until an\n * element(including the prefixed length and the JSON string) is found.\n *\n * Once a complete element is read, it is dropped from internal buffer.\n *\n * Returns either the bundled element, or null if we have reached the end of\n * the stream.\n */ async Zc() {\n const t = await this.tu();\n if (null === t) return null;\n const e = this.Xc.decode(t), n = Number(e);\n isNaN(n) && this.eu(`length string (${e}) is not valid number`);\n const s = await this.nu(n);\n return new Pc(JSON.parse(s), t.length + n);\n }\n /** First index of '{' from the underlying buffer. */ su() {\n return this.buffer.findIndex((t => t === \"{\".charCodeAt(0)));\n }\n /**\n * Reads from the beginning of the internal buffer, until the first '{', and\n * return the content.\n *\n * If reached end of the stream, returns a null.\n */ async tu() {\n for (;this.su() < 0; ) {\n if (await this.iu()) break;\n }\n // Broke out of the loop because underlying stream is closed, and there\n // happens to be no more data to process.\n if (0 === this.buffer.length) return null;\n const t = this.su();\n // Broke out of the loop because underlying stream is closed, but still\n // cannot find an open bracket.\n t < 0 && this.eu(\"Reached the end of bundle when a length string is expected.\");\n const e = this.buffer.slice(0, t);\n // Update the internal buffer to drop the read length.\n return this.buffer = this.buffer.slice(t), e;\n }\n /**\n * Reads from a specified position from the internal buffer, for a specified\n * number of bytes, pulling more data from the underlying stream if needed.\n *\n * Returns a string decoded from the read bytes.\n */ async nu(t) {\n for (;this.buffer.length < t; ) {\n await this.iu() && this.eu(\"Reached the end of bundle when more is expected.\");\n }\n const e = this.Xc.decode(this.buffer.slice(0, t));\n // Update the internal buffer to drop the read json string.\n return this.buffer = this.buffer.slice(t), e;\n }\n eu(t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n throw this.Yc.cancel(), new Error(`Invalid bundle format: ${t}`);\n }\n /**\n * Pulls more data from underlying stream to internal buffer.\n * Returns a boolean indicating whether the stream is finished.\n */ async iu() {\n const t = await this.Yc.read();\n if (!t.done) {\n const e = new Uint8Array(this.buffer.length + t.value.length);\n e.set(this.buffer), e.set(t.value, this.buffer.length), this.buffer = e;\n }\n return t.done;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Internal transaction object responsible for accumulating the mutations to\n * perform and the base versions for any documents read.\n */\nclass Iu {\n constructor(t) {\n this.datastore = t, \n // The version of each document that was read during this transaction.\n this.readVersions = new Map, this.mutations = [], this.committed = !1, \n /**\n * A deferred usage error that occurred previously in this transaction that\n * will cause the transaction to fail once it actually commits.\n */\n this.lastWriteError = null, \n /**\n * Set of documents that have been written in the transaction.\n *\n * When there's more than one write to the same key in a transaction, any\n * writes after the first are handled differently.\n */\n this.writtenDocs = new Set;\n }\n async lookup(t) {\n if (this.ensureCommitNotCalled(), this.mutations.length > 0) throw new j(G.INVALID_ARGUMENT, \"Firestore transactions require all reads to be executed before all writes.\");\n const e = await async function(t, e) {\n const n = K(t), s = os(n.O) + \"/documents\", i = {\n documents: e.map((t => ns(n.O, t)))\n }, r = await n.Lr(\"BatchGetDocuments\", s, i), o = new Map;\n r.forEach((t => {\n const e = hs(n.O, t);\n o.set(e.key.toString(), e);\n }));\n const c = [];\n return e.forEach((t => {\n const e = o.get(t.toString());\n U(!!e), c.push(e);\n })), c;\n }(this.datastore, t);\n return e.forEach((t => this.recordVersion(t))), e;\n }\n set(t, e) {\n this.write(e.toMutation(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }\n update(t, e) {\n try {\n this.write(e.toMutation(t, this.preconditionForUpdate(t)));\n } catch (t) {\n this.lastWriteError = t;\n }\n this.writtenDocs.add(t.toString());\n }\n delete(t) {\n this.write(new mn(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }\n async commit() {\n if (this.ensureCommitNotCalled(), this.lastWriteError) throw this.lastWriteError;\n const t = this.readVersions;\n // For each mutation, note that the doc was written.\n this.mutations.forEach((e => {\n t.delete(e.key.toString());\n })), \n // For each document that was read but not written to, we want to perform\n // a `verify` operation.\n t.forEach(((t, e) => {\n const n = Nt.fromPath(e);\n this.mutations.push(new gn(n, this.precondition(n)));\n })), await async function(t, e) {\n const n = K(t), s = os(n.O) + \"/documents\", i = {\n writes: e.map((t => fs(n.O, t)))\n };\n await n.Mr(\"Commit\", s, i);\n }(this.datastore, this.mutations), this.committed = !0;\n }\n recordVersion(t) {\n let e;\n if (t.isFoundDocument()) e = t.version; else {\n if (!t.isNoDocument()) throw L();\n // For deleted docs, we must use baseVersion 0 when we overwrite them.\n e = at.min();\n }\n const n = this.readVersions.get(t.key.toString());\n if (n) {\n if (!e.isEqual(n)) \n // This transaction will fail no matter what.\n throw new j(G.ABORTED, \"Document version changed between two reads.\");\n } else this.readVersions.set(t.key.toString(), e);\n }\n /**\n * Returns the version of this document when it was read in this transaction,\n * as a precondition, or no precondition if it was not read.\n */ precondition(t) {\n const e = this.readVersions.get(t.toString());\n return !this.writtenDocs.has(t.toString()) && e ? nn.updateTime(e) : nn.none();\n }\n /**\n * Returns the precondition for a document if the operation is an update.\n */ preconditionForUpdate(t) {\n const e = this.readVersions.get(t.toString());\n // The first time a document is written, we want to take into account the\n // read time and existence\n if (!this.writtenDocs.has(t.toString()) && e) {\n if (e.isEqual(at.min())) \n // The document doesn't exist, so fail the transaction.\n // This has to be validated locally because you can't send a\n // precondition that a document does not exist without changing the\n // semantics of the backend write to be an insert. This is the reverse\n // of what we want, since we want to assert that the document doesn't\n // exist but then send the update and have it fail. Since we can't\n // express that to the backend, we have to validate locally.\n // Note: this can change once we can send separate verify writes in the\n // transaction.\n throw new j(G.INVALID_ARGUMENT, \"Can't update a document that doesn't exist.\");\n // Document exists, base precondition on document update time.\n return nn.updateTime(e);\n }\n // Document was not read, so we just use the preconditions for a blind\n // update.\n return nn.exists(!0);\n }\n write(t) {\n this.ensureCommitNotCalled(), this.mutations.push(t);\n }\n ensureCommitNotCalled() {}\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * TransactionRunner encapsulates the logic needed to run and retry transactions\n * with backoff.\n */\nclass Eu {\n constructor(t, e, n, s) {\n this.asyncQueue = t, this.datastore = e, this.updateFunction = n, this.deferred = s, \n this.ru = 5, this.ro = new Co(this.asyncQueue, \"transaction_retry\" /* TransactionRetry */);\n }\n /** Runs the transaction and sets the result on deferred. */ run() {\n this.ru -= 1, this.ou();\n }\n ou() {\n this.ro.Hr((async () => {\n const t = new Iu(this.datastore), e = this.cu(t);\n e && e.then((e => {\n this.asyncQueue.enqueueAndForget((() => t.commit().then((() => {\n this.deferred.resolve(e);\n })).catch((t => {\n this.uu(t);\n }))));\n })).catch((t => {\n this.uu(t);\n }));\n }));\n }\n cu(t) {\n try {\n const e = this.updateFunction(t);\n return !St(e) && e.catch && e.then ? e : (this.deferred.reject(Error(\"Transaction callback must return a Promise\")), \n null);\n } catch (t) {\n // Do not retry errors thrown by user provided updateFunction.\n return this.deferred.reject(t), null;\n }\n }\n uu(t) {\n this.ru > 0 && this.au(t) ? (this.ru -= 1, this.asyncQueue.enqueueAndForget((() => (this.ou(), \n Promise.resolve())))) : this.deferred.reject(t);\n }\n au(t) {\n if (\"FirebaseError\" === t.name) {\n // In transactions, the backend will fail outdated reads with FAILED_PRECONDITION and\n // non-matching document versions with ABORTED. These errors should be retried.\n const e = t.code;\n return \"aborted\" === e || \"failed-precondition\" === e || !En(e);\n }\n return !1;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * FirestoreClient is a top-level class that constructs and owns all of the\n * pieces of the client SDK architecture. It is responsible for creating the\n * async queue that is shared by all of the other components in the system.\n */\nclass Tu {\n constructor(t, e, \n /**\n * Asynchronous queue responsible for all of our internal processing. When\n * we get incoming work from the user (via public API) or the network\n * (incoming GRPC messages), we should always schedule onto this queue.\n * This ensures all of our work is properly serialized (e.g. we don't\n * start processing a new operation while the previous one is waiting for\n * an async I/O to complete).\n */\n n, s) {\n this.authCredentials = t, this.appCheckCredentials = e, this.asyncQueue = n, this.databaseInfo = s, \n this.user = C.UNAUTHENTICATED, this.clientId = it.R(), this.authCredentialListener = () => Promise.resolve(), \n this.appCheckCredentialListener = () => Promise.resolve(), this.authCredentials.start(n, (async t => {\n M(\"FirestoreClient\", \"Received user=\", t.uid), await this.authCredentialListener(t), \n this.user = t;\n })), this.appCheckCredentials.start(n, (t => (M(\"FirestoreClient\", \"Received new app check token=\", t), \n this.appCheckCredentialListener(t, this.user))));\n }\n async getConfiguration() {\n return {\n asyncQueue: this.asyncQueue,\n databaseInfo: this.databaseInfo,\n clientId: this.clientId,\n authCredentials: this.authCredentials,\n appCheckCredentials: this.appCheckCredentials,\n initialUser: this.user,\n maxConcurrentLimboResolutions: 100\n };\n }\n setCredentialChangeListener(t) {\n this.authCredentialListener = t;\n }\n setAppCheckTokenChangeListener(t) {\n this.appCheckCredentialListener = t;\n }\n /**\n * Checks that the client has not been terminated. Ensures that other methods on\n * this class cannot be called after the client is terminated.\n */ verifyNotTerminated() {\n if (this.asyncQueue.isShuttingDown) throw new j(G.FAILED_PRECONDITION, \"The client has already been terminated.\");\n }\n terminate() {\n this.asyncQueue.enterRestrictedMode();\n const t = new Q;\n return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async () => {\n try {\n this.onlineComponents && await this.onlineComponents.terminate(), this.offlineComponents && await this.offlineComponents.terminate(), \n // The credentials provider must be terminated after shutting down the\n // RemoteStore as it will prevent the RemoteStore from retrieving auth\n // tokens.\n this.authCredentials.shutdown(), this.appCheckCredentials.shutdown(), t.resolve();\n } catch (e) {\n const n = dc(e, \"Failed to shutdown persistence\");\n t.reject(n);\n }\n })), t.promise;\n }\n}\n\nasync function Au(t, e) {\n t.asyncQueue.verifyOperationInProgress(), M(\"FirestoreClient\", \"Initializing OfflineComponentProvider\");\n const n = await t.getConfiguration();\n await e.initialize(n);\n let s = n.initialUser;\n t.setCredentialChangeListener((async t => {\n s.isEqual(t) || (await Ur(e.localStore, t), s = t);\n })), \n // When a user calls clearPersistence() in one client, all other clients\n // need to be terminated to allow the delete to succeed.\n e.persistence.setDatabaseDeletedListener((() => t.terminate())), t.offlineComponents = e;\n}\n\nasync function Ru(t, e) {\n t.asyncQueue.verifyOperationInProgress();\n const n = await Pu(t);\n M(\"FirestoreClient\", \"Initializing OnlineComponentProvider\");\n const s = await t.getConfiguration();\n await e.initialize(n, s), \n // The CredentialChangeListener of the online component provider takes\n // precedence over the offline component provider.\n t.setCredentialChangeListener((t => uc(e.remoteStore, t))), t.setAppCheckTokenChangeListener(((t, n) => uc(e.remoteStore, n))), \n t.onlineComponents = e;\n}\n\nasync function Pu(t) {\n return t.offlineComponents || (M(\"FirestoreClient\", \"Using default OfflineComponentProvider\"), \n await Au(t, new du)), t.offlineComponents;\n}\n\nasync function bu(t) {\n return t.onlineComponents || (M(\"FirestoreClient\", \"Using default OnlineComponentProvider\"), \n await Ru(t, new mu)), t.onlineComponents;\n}\n\nfunction vu(t) {\n return Pu(t).then((t => t.persistence));\n}\n\nfunction Vu(t) {\n return Pu(t).then((t => t.localStore));\n}\n\nfunction Su(t) {\n return bu(t).then((t => t.remoteStore));\n}\n\nfunction Du(t) {\n return bu(t).then((t => t.syncEngine));\n}\n\nasync function Cu(t) {\n const e = await bu(t), n = e.eventManager;\n return n.onListen = Oc.bind(null, e.syncEngine), n.onUnlisten = $c.bind(null, e.syncEngine), \n n;\n}\n\n/** Enables the network connection and re-enqueues all pending operations. */ function Nu(t) {\n return t.asyncQueue.enqueue((async () => {\n const e = await vu(t), n = await Su(t);\n return e.setNetworkEnabled(!0), function(t) {\n const e = K(t);\n return e.Ko.delete(0 /* UserDisabled */), Fo(e);\n }(n);\n }));\n}\n\n/** Disables the network connection. Pending operations will not complete. */ function xu(t) {\n return t.asyncQueue.enqueue((async () => {\n const e = await vu(t), n = await Su(t);\n return e.setNetworkEnabled(!1), async function(t) {\n const e = K(t);\n e.Ko.add(0 /* UserDisabled */), await Bo(e), \n // Set the OnlineState to Offline so get()s return from cache, etc.\n e.Qo.set(\"Offline\" /* Offline */);\n }(n);\n }));\n}\n\n/**\n * Returns a Promise that resolves when all writes that were pending at the time\n * this method was called received server acknowledgement. An acknowledgement\n * can be either acceptance or rejection.\n */ function ku(t, e) {\n const n = new Q;\n return t.asyncQueue.enqueueAndForget((async () => async function(t, e, n) {\n try {\n const s = await function(t, e) {\n const n = K(t);\n return n.persistence.runTransaction(\"read document\", \"readonly\", (t => n.Us.ys(t, e)));\n }(t, e);\n s.isFoundDocument() ? n.resolve(s) : s.isNoDocument() ? n.resolve(null) : n.reject(new j(G.UNAVAILABLE, \"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)\"));\n } catch (t) {\n const s = dc(t, `Failed to get document '${e} from cache`);\n n.reject(s);\n }\n }\n /**\n * Retrieves a latency-compensated document from the backend via a\n * SnapshotListener.\n */ (await Vu(t), e, n))), n.promise;\n}\n\nfunction Ou(t, e, n = {}) {\n const s = new Q;\n return t.asyncQueue.enqueueAndForget((async () => function(t, e, n, s, i) {\n const r = new yu({\n next: r => {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.enqueueAndForget((() => Ic(t, o)));\n const c = r.docs.has(n);\n !c && r.fromCache ? \n // TODO(dimond): If we're online and the document doesn't\n // exist then we resolve with a doc.exists set to false. If\n // we're offline however, we reject the Promise in this\n // case. Two options: 1) Cache the negative response from\n // the server so we can deliver that even when you're\n // offline 2) Actually reject the Promise in the online case\n // if the document doesn't exist.\n i.reject(new j(G.UNAVAILABLE, \"Failed to get document because the client is offline.\")) : c && r.fromCache && s && \"server\" === s.source ? i.reject(new j(G.UNAVAILABLE, 'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to \"server\" to retrieve the cached document.)')) : i.resolve(r);\n },\n error: t => i.reject(t)\n }), o = new Rc(Ae(n.path), r, {\n includeMetadataChanges: !0,\n uc: !0\n });\n return pc(t, o);\n }(await Cu(t), t.asyncQueue, e, n, s))), s.promise;\n}\n\nfunction Mu(t, e) {\n const n = new Q;\n return t.asyncQueue.enqueueAndForget((async () => async function(t, e, n) {\n try {\n const s = await Hr(t, e, \n /* usePreviousResults= */ !0), i = new Cc(e, s.Ks), r = i.Ic(s.documents), o = i.applyChanges(r, \n /* updateLimboDocuments= */ !1);\n n.resolve(o.snapshot);\n } catch (t) {\n const s = dc(t, `Failed to execute query '${e} against cache`);\n n.reject(s);\n }\n }\n /**\n * Retrieves a latency-compensated query snapshot from the backend via a\n * SnapshotListener.\n */ (await Vu(t), e, n))), n.promise;\n}\n\nfunction $u(t, e, n = {}) {\n const s = new Q;\n return t.asyncQueue.enqueueAndForget((async () => function(t, e, n, s, i) {\n const r = new yu({\n next: n => {\n // Remove query first before passing event to user to avoid\n // user actions affecting the now stale query.\n e.enqueueAndForget((() => Ic(t, o))), n.fromCache && \"server\" === s.source ? i.reject(new j(G.UNAVAILABLE, 'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to \"server\" to retrieve the cached documents.)')) : i.resolve(n);\n },\n error: t => i.reject(t)\n }), o = new Rc(n, r, {\n includeMetadataChanges: !0,\n uc: !0\n });\n return pc(t, o);\n }(await Cu(t), t.asyncQueue, e, n, s))), s.promise;\n}\n\nfunction Fu(t, e) {\n const n = new yu(e);\n return t.asyncQueue.enqueueAndForget((async () => function(t, e) {\n K(t).Zo.add(e), \n // Immediately fire an initial event, indicating all existing listeners\n // are in-sync.\n e.next();\n }(await Cu(t), n))), () => {\n n.Jc(), t.asyncQueue.enqueueAndForget((async () => function(t, e) {\n K(t).Zo.delete(e);\n }(await Cu(t), n)));\n };\n}\n\n/**\n * Takes an updateFunction in which a set of reads and writes can be performed\n * atomically. In the updateFunction, the client can read and write values\n * using the supplied transaction object. After the updateFunction, all\n * changes will be committed. If a retryable error occurs (ex: some other\n * client has changed any of the data referenced), then the updateFunction\n * will be called again after a backoff. If the updateFunction still fails\n * after all retries, then the transaction will be rejected.\n *\n * The transaction object passed to the updateFunction contains methods for\n * accessing documents and collections. Unlike other datastore access, data\n * accessed with the transaction will not reflect local changes that have not\n * been committed. For this reason, it is required that all reads are\n * performed before any writes. Transactions must be performed while online.\n */ function Bu(t, e) {\n const n = new Q;\n return t.asyncQueue.enqueueAndForget((async () => {\n const s = await function(t) {\n return bu(t).then((t => t.datastore));\n }(t);\n new Eu(t.asyncQueue, s, e, n).run();\n })), n.promise;\n}\n\nfunction Lu(t, e, n, s) {\n const i = function(t, e) {\n let n;\n n = \"string\" == typeof t ? (new TextEncoder).encode(t) : t;\n return function(t, e) {\n return new pu(t, e);\n }(function(t, e) {\n if (t instanceof Uint8Array) return gu(t, e);\n if (t instanceof ArrayBuffer) return gu(new Uint8Array(t), e);\n if (t instanceof ReadableStream) return t.getReader();\n throw new Error(\"Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream\");\n }(n), e);\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (n, Do(e));\n t.asyncQueue.enqueueAndForget((async () => {\n fu(await Du(t), i, s);\n }));\n}\n\nfunction Uu(t, e) {\n return t.asyncQueue.enqueue((async () => function(t, e) {\n const n = K(t);\n return n.persistence.runTransaction(\"Get named query\", \"readonly\", (t => n.Kn.getNamedQuery(t, e)));\n }(await Vu(t), e)));\n}\n\nconst qu = new Map;\n\n/**\n * An instance map that ensures only one Datastore exists per Firestore\n * instance.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction Ku(t, e, n) {\n if (!n) throw new j(G.INVALID_ARGUMENT, `Function ${t}() cannot be called with an empty ${e}.`);\n}\n\n/**\n * Validates that two boolean options are not set at the same time.\n * @internal\n */ function Gu(t, e, n, s) {\n if (!0 === e && !0 === s) throw new j(G.INVALID_ARGUMENT, `${t} and ${n} cannot be used together.`);\n}\n\n/**\n * Validates that `path` refers to a document (indicated by the fact it contains\n * an even numbers of segments).\n */ function ju(t) {\n if (!Nt.isDocumentKey(t)) throw new j(G.INVALID_ARGUMENT, `Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`);\n}\n\n/**\n * Validates that `path` refers to a collection (indicated by the fact it\n * contains an odd numbers of segments).\n */ function Qu(t) {\n if (Nt.isDocumentKey(t)) throw new j(G.INVALID_ARGUMENT, `Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`);\n}\n\n/**\n * Returns true if it's a non-null object without a custom prototype\n * (i.e. excludes Array, Date, etc.).\n */\n/** Returns a string describing the type / value of the provided input. */\nfunction Wu(t) {\n if (void 0 === t) return \"undefined\";\n if (null === t) return \"null\";\n if (\"string\" == typeof t) return t.length > 20 && (t = `${t.substring(0, 20)}...`), \n JSON.stringify(t);\n if (\"number\" == typeof t || \"boolean\" == typeof t) return \"\" + t;\n if (\"object\" == typeof t) {\n if (t instanceof Array) return \"an array\";\n {\n const e = \n /** try to get the constructor name for an object. */\n function(t) {\n if (t.constructor) return t.constructor.name;\n return null;\n }\n /**\n * Casts `obj` to `T`, optionally unwrapping Compat types to expose the\n * underlying instance. Throws if `obj` is not an instance of `T`.\n *\n * This cast is used in the Lite and Full SDK to verify instance types for\n * arguments passed to the public API.\n * @internal\n */ (t);\n return e ? `a custom ${e} object` : \"an object\";\n }\n }\n return \"function\" == typeof t ? \"a function\" : L();\n}\n\nfunction zu(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n if (\"_delegate\" in t && (\n // Unwrap Compat types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t = t._delegate), !(t instanceof e)) {\n if (e.name === t.constructor.name) throw new j(G.INVALID_ARGUMENT, \"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?\");\n {\n const n = Wu(t);\n throw new j(G.INVALID_ARGUMENT, `Expected type '${e.name}', but it was: ${n}`);\n }\n }\n return t;\n}\n\nfunction Hu(t, e) {\n if (e <= 0) throw new j(G.INVALID_ARGUMENT, `Function ${t}() requires a positive number, but it was: ${e}.`);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// settings() defaults:\n/**\n * A concrete type describing all the values that can be applied via a\n * user-supplied `FirestoreSettings` object. This is a separate type so that\n * defaults can be supplied and the value can be checked for equality.\n */\nclass Ju {\n constructor(t) {\n var e;\n if (void 0 === t.host) {\n if (void 0 !== t.ssl) throw new j(G.INVALID_ARGUMENT, \"Can't provide ssl option if host option is not set\");\n this.host = \"firestore.googleapis.com\", this.ssl = true;\n } else this.host = t.host, this.ssl = null === (e = t.ssl) || void 0 === e || e;\n if (this.credentials = t.credentials, this.ignoreUndefinedProperties = !!t.ignoreUndefinedProperties, \n void 0 === t.cacheSizeBytes) this.cacheSizeBytes = 41943040; else {\n if (-1 !== t.cacheSizeBytes && t.cacheSizeBytes < 1048576) throw new j(G.INVALID_ARGUMENT, \"cacheSizeBytes must be at least 1048576\");\n this.cacheSizeBytes = t.cacheSizeBytes;\n }\n this.experimentalForceLongPolling = !!t.experimentalForceLongPolling, this.experimentalAutoDetectLongPolling = !!t.experimentalAutoDetectLongPolling, \n this.useFetchStreams = !!t.useFetchStreams, Gu(\"experimentalForceLongPolling\", t.experimentalForceLongPolling, \"experimentalAutoDetectLongPolling\", t.experimentalAutoDetectLongPolling);\n }\n isEqual(t) {\n return this.host === t.host && this.ssl === t.ssl && this.credentials === t.credentials && this.cacheSizeBytes === t.cacheSizeBytes && this.experimentalForceLongPolling === t.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t.ignoreUndefinedProperties && this.useFetchStreams === t.useFetchStreams;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The Cloud Firestore service interface.\n *\n * Do not call this constructor directly. Instead, use {@link getFirestore}.\n */ class Yu {\n /** @hideconstructor */\n constructor(t, e, n) {\n this._authCredentials = e, this._appCheckCredentials = n, \n /**\n * Whether it's a Firestore or Firestore Lite instance.\n */\n this.type = \"firestore-lite\", this._persistenceKey = \"(lite)\", this._settings = new Ju({}), \n this._settingsFrozen = !1, t instanceof Vt ? this._databaseId = t : (this._app = t, \n this._databaseId = function(t) {\n if (!Object.prototype.hasOwnProperty.apply(t.options, [ \"projectId\" ])) throw new j(G.INVALID_ARGUMENT, '\"projectId\" not provided in firebase.initializeApp.');\n return new Vt(t.options.projectId);\n }\n /**\n * Modify this instance to communicate with the Cloud Firestore emulator.\n *\n * Note: This must be called before this instance has been used to do any\n * operations.\n *\n * @param firestore - The `Firestore` instance to configure to connect to the\n * emulator.\n * @param host - the emulator host (ex: localhost).\n * @param port - the emulator port (ex: 9000).\n * @param options.mockUserToken - the mock auth token to use for unit testing\n * Security Rules.\n */ (t));\n }\n /**\n * The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service\n * instance.\n */ get app() {\n if (!this._app) throw new j(G.FAILED_PRECONDITION, \"Firestore was not initialized using the Firebase SDK. 'app' is not available\");\n return this._app;\n }\n get _initialized() {\n return this._settingsFrozen;\n }\n get _terminated() {\n return void 0 !== this._terminateTask;\n }\n _setSettings(t) {\n if (this._settingsFrozen) throw new j(G.FAILED_PRECONDITION, \"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.\");\n this._settings = new Ju(t), void 0 !== t.credentials && (this._authCredentials = function(t) {\n if (!t) return new z;\n switch (t.type) {\n case \"gapi\":\n const e = t.client;\n // Make sure this really is a Gapi client.\n return U(!(\"object\" != typeof e || null === e || !e.auth || !e.auth.getAuthHeaderValueForFirstParty)), \n new X(e, t.sessionIndex || \"0\", t.iamToken || null);\n\n case \"provider\":\n return t.client;\n\n default:\n throw new j(G.INVALID_ARGUMENT, \"makeAuthCredentialsProvider failed due to invalid credential type\");\n }\n }(t.credentials));\n }\n _getSettings() {\n return this._settings;\n }\n _freezeSettings() {\n return this._settingsFrozen = !0, this._settings;\n }\n _delete() {\n return this._terminateTask || (this._terminateTask = this._terminate()), this._terminateTask;\n }\n /** Returns a JSON-serializable representation of this `Firestore` instance. */ toJSON() {\n return {\n app: this._app,\n databaseId: this._databaseId,\n settings: this._settings\n };\n }\n /**\n * Terminates all components used by this client. Subclasses can override\n * this method to clean up their own dependencies, but must also call this\n * method.\n *\n * Only ever called once.\n */ _terminate() {\n /**\n * Removes all components associated with the provided instance. Must be called\n * when the `Firestore` instance is terminated.\n */\n return function(t) {\n const e = qu.get(t);\n e && (M(\"ComponentProvider\", \"Removing Datastore\"), qu.delete(t), e.terminate());\n }(this), Promise.resolve();\n }\n}\n\nfunction Xu(t, e, n, s = {}) {\n var i;\n const r = (t = zu(t, Yu))._getSettings();\n if (\"firestore.googleapis.com\" !== r.host && r.host !== e && F(\"Host has been set in both settings() and useEmulator(), emulator host will be used\"), \n t._setSettings(Object.assign(Object.assign({}, r), {\n host: `${e}:${n}`,\n ssl: !1\n })), s.mockUserToken) {\n let e, n;\n if (\"string\" == typeof s.mockUserToken) e = s.mockUserToken, n = C.MOCK_USER; else {\n // Let createMockUserToken validate first (catches common mistakes like\n // invalid field \"uid\" and missing field \"sub\" / \"user_id\".)\n e = createMockUserToken(s.mockUserToken, null === (i = t._app) || void 0 === i ? void 0 : i.options.projectId);\n const r = s.mockUserToken.sub || s.mockUserToken.user_id;\n if (!r) throw new j(G.INVALID_ARGUMENT, \"mockUserToken must contain 'sub' or 'user_id' field!\");\n n = new C(r);\n }\n t._authCredentials = new H(new W(e, n));\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `DocumentReference` refers to a document location in a Firestore database\n * and can be used to write, read, or listen to the location. The document at\n * the referenced location may or may not exist.\n */ class Zu {\n /** @hideconstructor */\n constructor(t, \n /**\n * If provided, the `FirestoreDataConverter` associated with this instance.\n */\n e, n) {\n this.converter = e, this._key = n, \n /** The type of this Firestore reference. */\n this.type = \"document\", this.firestore = t;\n }\n get _path() {\n return this._key.path;\n }\n /**\n * The document's identifier within its collection.\n */ get id() {\n return this._key.path.lastSegment();\n }\n /**\n * A string representing the path of the referenced document (relative\n * to the root of the database).\n */ get path() {\n return this._key.path.canonicalString();\n }\n /**\n * The collection this `DocumentReference` belongs to.\n */ get parent() {\n return new ea(this.firestore, this.converter, this._key.path.popLast());\n }\n withConverter(t) {\n return new Zu(this.firestore, t, this._key);\n }\n}\n\n/**\n * A `Query` refers to a query which you can read or listen to. You can also\n * construct refined `Query` objects by adding filters and ordering.\n */ class ta {\n // This is the lite version of the Query class in the main SDK.\n /** @hideconstructor protected */\n constructor(t, \n /**\n * If provided, the `FirestoreDataConverter` associated with this instance.\n */\n e, n) {\n this.converter = e, this._query = n, \n /** The type of this Firestore reference. */\n this.type = \"query\", this.firestore = t;\n }\n withConverter(t) {\n return new ta(this.firestore, t, this._query);\n }\n}\n\n/**\n * A `CollectionReference` object can be used for adding documents, getting\n * document references, and querying for documents (using {@link query}).\n */ class ea extends ta {\n /** @hideconstructor */\n constructor(t, e, n) {\n super(t, e, Ae(n)), this._path = n, \n /** The type of this Firestore reference. */\n this.type = \"collection\";\n }\n /** The collection's identifier. */ get id() {\n return this._query.path.lastSegment();\n }\n /**\n * A string representing the path of the referenced collection (relative\n * to the root of the database).\n */ get path() {\n return this._query.path.canonicalString();\n }\n /**\n * A reference to the containing `DocumentReference` if this is a\n * subcollection. If this isn't a subcollection, the reference is null.\n */ get parent() {\n const t = this._path.popLast();\n return t.isEmpty() ? null : new Zu(this.firestore, \n /* converter= */ null, new Nt(t));\n }\n withConverter(t) {\n return new ea(this.firestore, t, this._path);\n }\n}\n\nfunction na(t, e, ...n) {\n if (t = getModularInstance(t), Ku(\"collection\", \"path\", e), t instanceof Yu) {\n const s = _t.fromString(e, ...n);\n return Qu(s), new ea(t, /* converter= */ null, s);\n }\n {\n if (!(t instanceof Zu || t instanceof ea)) throw new j(G.INVALID_ARGUMENT, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n const s = t._path.child(_t.fromString(e, ...n));\n return Qu(s), new ea(t.firestore, \n /* converter= */ null, s);\n }\n}\n\n// TODO(firestorelite): Consider using ErrorFactory -\n// https://github.com/firebase/firebase-js-sdk/blob/0131e1f/packages/util/src/errors.ts#L106\n/**\n * Creates and returns a new `Query` instance that includes all documents in the\n * database that are contained in a collection or subcollection with the\n * given `collectionId`.\n *\n * @param firestore - A reference to the root `Firestore` instance.\n * @param collectionId - Identifies the collections to query over. Every\n * collection or subcollection with this ID as the last segment of its path\n * will be included. Cannot contain a slash.\n * @returns The created `Query`.\n */ function sa(t, e) {\n if (t = zu(t, Yu), Ku(\"collectionGroup\", \"collection id\", e), e.indexOf(\"/\") >= 0) throw new j(G.INVALID_ARGUMENT, `Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);\n return new ta(t, \n /* converter= */ null, \n /**\n * Creates a new Query for a collection group query that matches all documents\n * within the provided collection group.\n */\n function(t) {\n return new Ee(_t.emptyPath(), t);\n }(e));\n}\n\nfunction ia(t, e, ...n) {\n if (t = getModularInstance(t), \n // We allow omission of 'pathString' but explicitly prohibit passing in both\n // 'undefined' and 'null'.\n 1 === arguments.length && (e = it.R()), Ku(\"doc\", \"path\", e), t instanceof Yu) {\n const s = _t.fromString(e, ...n);\n return ju(s), new Zu(t, \n /* converter= */ null, new Nt(s));\n }\n {\n if (!(t instanceof Zu || t instanceof ea)) throw new j(G.INVALID_ARGUMENT, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n const s = t._path.child(_t.fromString(e, ...n));\n return ju(s), new Zu(t.firestore, t instanceof ea ? t.converter : null, new Nt(s));\n }\n}\n\n/**\n * Returns true if the provided references are equal.\n *\n * @param left - A reference to compare.\n * @param right - A reference to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */ function ra(t, e) {\n return t = getModularInstance(t), e = getModularInstance(e), (t instanceof Zu || t instanceof ea) && (e instanceof Zu || e instanceof ea) && (t.firestore === e.firestore && t.path === e.path && t.converter === e.converter);\n}\n\n/**\n * Returns true if the provided queries point to the same collection and apply\n * the same constraints.\n *\n * @param left - A `Query` to compare.\n * @param right - A `Query` to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */ function oa(t, e) {\n return t = getModularInstance(t), e = getModularInstance(e), t instanceof ta && e instanceof ta && (t.firestore === e.firestore && Ne(t._query, e._query) && t.converter === e.converter);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class ca {\n constructor() {\n // The last promise in the queue.\n this.hu = Promise.resolve(), \n // A list of retryable operations. Retryable operations are run in order and\n // retried with backoff.\n this.lu = [], \n // Is this AsyncQueue being shut down? Once it is set to true, it will not\n // be changed again.\n this.fu = !1, \n // Operations scheduled to be queued in the future. Operations are\n // automatically removed after they are run or canceled.\n this.du = [], \n // visible for testing\n this._u = null, \n // Flag set while there's an outstanding AsyncQueue operation, used for\n // assertion sanity-checks.\n this.wu = !1, \n // Enabled during shutdown on Safari to prevent future access to IndexedDB.\n this.mu = !1, \n // List of TimerIds to fast-forward delays for.\n this.gu = [], \n // Backoff timer used to schedule retries for retryable operations\n this.ro = new Co(this, \"async_queue_retry\" /* AsyncQueueRetry */), \n // Visibility handler that triggers an immediate retry of all retryable\n // operations. Meant to speed up recovery when we regain file system access\n // after page comes into foreground.\n this.yu = () => {\n const t = So();\n t && M(\"AsyncQueue\", \"Visibility state changed to \" + t.visibilityState), this.ro.Yr();\n };\n const t = So();\n t && \"function\" == typeof t.addEventListener && t.addEventListener(\"visibilitychange\", this.yu);\n }\n get isShuttingDown() {\n return this.fu;\n }\n /**\n * Adds a new operation to the queue without waiting for it to complete (i.e.\n * we ignore the Promise result).\n */ enqueueAndForget(t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.enqueue(t);\n }\n enqueueAndForgetEvenWhileRestricted(t) {\n this.pu(), \n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.Iu(t);\n }\n enterRestrictedMode(t) {\n if (!this.fu) {\n this.fu = !0, this.mu = t || !1;\n const e = So();\n e && \"function\" == typeof e.removeEventListener && e.removeEventListener(\"visibilitychange\", this.yu);\n }\n }\n enqueue(t) {\n if (this.pu(), this.fu) \n // Return a Promise which never resolves.\n return new Promise((() => {}));\n // Create a deferred Promise that we can return to the callee. This\n // allows us to return a \"hanging Promise\" only to the callee and still\n // advance the queue even when the operation is not run.\n const e = new Q;\n return this.Iu((() => this.fu && this.mu ? Promise.resolve() : (t().then(e.resolve, e.reject), \n e.promise))).then((() => e.promise));\n }\n enqueueRetryable(t) {\n this.enqueueAndForget((() => (this.lu.push(t), this.Eu())));\n }\n /**\n * Runs the next operation from the retryable queue. If the operation fails,\n * reschedules with backoff.\n */ async Eu() {\n if (0 !== this.lu.length) {\n try {\n await this.lu[0](), this.lu.shift(), this.ro.reset();\n } catch (t) {\n if (!ui(t)) throw t;\n // Failure will be handled by AsyncQueue\n M(\"AsyncQueue\", \"Operation failed with retryable error: \" + t);\n }\n this.lu.length > 0 && \n // If there are additional operations, we re-schedule `retryNextOp()`.\n // This is necessary to run retryable operations that failed during\n // their initial attempt since we don't know whether they are already\n // enqueued. If, for example, `op1`, `op2`, `op3` are enqueued and `op1`\n // needs to be re-run, we will run `op1`, `op1`, `op2` using the\n // already enqueued calls to `retryNextOp()`. `op3()` will then run in the\n // call scheduled here.\n // Since `backoffAndRun()` cancels an existing backoff and schedules a\n // new backoff on every call, there is only ever a single additional\n // operation in the queue.\n this.ro.Hr((() => this.Eu()));\n }\n }\n Iu(t) {\n const e = this.hu.then((() => (this.wu = !0, t().catch((t => {\n this._u = t, this.wu = !1;\n const e = \n /**\n * Chrome includes Error.message in Error.stack. Other browsers do not.\n * This returns expected output of message + stack when available.\n * @param error - Error or FirestoreError\n */\n function(t) {\n let e = t.message || \"\";\n t.stack && (e = t.stack.includes(t.message) ? t.stack : t.message + \"\\n\" + t.stack);\n return e;\n }\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (t);\n // Re-throw the error so that this.tail becomes a rejected Promise and\n // all further attempts to chain (via .then) will just short-circuit\n // and return the rejected Promise.\n throw $(\"INTERNAL UNHANDLED ERROR: \", e), t;\n })).then((t => (this.wu = !1, t))))));\n return this.hu = e, e;\n }\n enqueueAfterDelay(t, e, n) {\n this.pu(), \n // Fast-forward delays for timerIds that have been overriden.\n this.gu.indexOf(t) > -1 && (e = 0);\n const s = fc.createAndSchedule(this, t, e, n, (t => this.Tu(t)));\n return this.du.push(s), s;\n }\n pu() {\n this._u && L();\n }\n verifyOperationInProgress() {}\n /**\n * Waits until all currently queued tasks are finished executing. Delayed\n * operations are not run.\n */ async Au() {\n // Operations in the queue prior to draining may have enqueued additional\n // operations. Keep draining the queue until the tail is no longer advanced,\n // which indicates that no more new operations were enqueued and that all\n // operations were executed.\n let t;\n do {\n t = this.hu, await t;\n } while (t !== this.hu);\n }\n /**\n * For Tests: Determine if a delayed operation with a particular TimerId\n * exists.\n */ Ru(t) {\n for (const e of this.du) if (e.timerId === t) return !0;\n return !1;\n }\n /**\n * For Tests: Runs some or all delayed operations early.\n *\n * @param lastTimerId - Delayed operations up to and including this TimerId\n * will be drained. Pass TimerId.All to run all delayed operations.\n * @returns a Promise that resolves once all operations have been run.\n */ Pu(t) {\n // Note that draining may generate more delayed ops, so we do that first.\n return this.Au().then((() => {\n // Run ops in the same order they'd run if they ran naturally.\n this.du.sort(((t, e) => t.targetTimeMs - e.targetTimeMs));\n for (const e of this.du) if (e.skipDelay(), \"all\" /* All */ !== t && e.timerId === t) break;\n return this.Au();\n }));\n }\n /**\n * For Tests: Skip all subsequent delays for a timer id.\n */ bu(t) {\n this.gu.push(t);\n }\n /** Called once a DelayedOperation is run or canceled. */ Tu(t) {\n // NOTE: indexOf / slice are O(n), but delayedOperations is expected to be small.\n const e = this.du.indexOf(t);\n this.du.splice(e, 1);\n }\n}\n\nfunction ua(t) {\n /**\n * Returns true if obj is an object and contains at least one of the specified\n * methods.\n */\n return function(t, e) {\n if (\"object\" != typeof t || null === t) return !1;\n const n = t;\n for (const t of e) if (t in n && \"function\" == typeof n[t]) return !0;\n return !1;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Represents the task of loading a Firestore bundle. It provides progress of bundle\n * loading, as well as task completion and error events.\n *\n * The API is compatible with `Promise<LoadBundleTaskProgress>`.\n */ (t, [ \"next\", \"error\", \"complete\" ]);\n}\n\nclass aa {\n constructor() {\n this._progressObserver = {}, this._taskCompletionResolver = new Q, this._lastProgress = {\n taskState: \"Running\",\n totalBytes: 0,\n totalDocuments: 0,\n bytesLoaded: 0,\n documentsLoaded: 0\n };\n }\n /**\n * Registers functions to listen to bundle loading progress events.\n * @param next - Called when there is a progress update from bundle loading. Typically `next` calls occur\n * each time a Firestore document is loaded from the bundle.\n * @param error - Called when an error occurs during bundle loading. The task aborts after reporting the\n * error, and there should be no more updates after this.\n * @param complete - Called when the loading task is complete.\n */ onProgress(t, e, n) {\n this._progressObserver = {\n next: t,\n error: e,\n complete: n\n };\n }\n /**\n * Implements the `Promise<LoadBundleTaskProgress>.catch` interface.\n *\n * @param onRejected - Called when an error occurs during bundle loading.\n */ catch(t) {\n return this._taskCompletionResolver.promise.catch(t);\n }\n /**\n * Implements the `Promise<LoadBundleTaskProgress>.then` interface.\n *\n * @param onFulfilled - Called on the completion of the loading task with a final `LoadBundleTaskProgress` update.\n * The update will always have its `taskState` set to `\"Success\"`.\n * @param onRejected - Called when an error occurs during bundle loading.\n */ then(t, e) {\n return this._taskCompletionResolver.promise.then(t, e);\n }\n /**\n * Notifies all observers that bundle loading has completed, with a provided\n * `LoadBundleTaskProgress` object.\n *\n * @private\n */ _completeWith(t) {\n this._updateProgress(t), this._progressObserver.complete && this._progressObserver.complete(), \n this._taskCompletionResolver.resolve(t);\n }\n /**\n * Notifies all observers that bundle loading has failed, with a provided\n * `Error` as the reason.\n *\n * @private\n */ _failWith(t) {\n this._lastProgress.taskState = \"Error\", this._progressObserver.next && this._progressObserver.next(this._lastProgress), \n this._progressObserver.error && this._progressObserver.error(t), this._taskCompletionResolver.reject(t);\n }\n /**\n * Notifies a progress update of loading a bundle.\n * @param progress - The new progress.\n *\n * @private\n */ _updateProgress(t) {\n this._lastProgress = t, this._progressObserver.next && this._progressObserver.next(t);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** DOMException error code constants. */ const ha = -1;\n\n/**\n * The Cloud Firestore service interface.\n *\n * Do not call this constructor directly. Instead, use {@link getFirestore}.\n */\nclass la extends Yu {\n /** @hideconstructor */\n constructor(t, e, n) {\n super(t, e, n), \n /**\n * Whether it's a {@link Firestore} or Firestore Lite instance.\n */\n this.type = \"firestore\", this._queue = new ca, this._persistenceKey = \"name\" in t ? t.name : \"[DEFAULT]\";\n }\n _terminate() {\n return this._firestoreClient || \n // The client must be initialized to ensure that all subsequent API\n // usage throws an exception.\n wa(this), this._firestoreClient.terminate();\n }\n}\n\n/**\n * Initializes a new instance of {@link Firestore} with the provided settings.\n * Can only be called before any other function, including\n * {@link getFirestore}. If the custom settings are empty, this function is\n * equivalent to calling {@link getFirestore}.\n *\n * @param app - The {@link @firebase/app#FirebaseApp} with which the {@link Firestore} instance will\n * be associated.\n * @param settings - A settings object to configure the {@link Firestore} instance.\n * @returns A newly initialized {@link Firestore} instance.\n */ function fa(t, e) {\n const n = _getProvider(t, \"firestore\");\n if (n.isInitialized()) {\n const t = n.getImmediate(), s = n.getOptions();\n if (deepEqual(s, e)) return t;\n throw new j(G.FAILED_PRECONDITION, \"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.\");\n }\n if (void 0 !== e.cacheSizeBytes && -1 !== e.cacheSizeBytes && e.cacheSizeBytes < 1048576) throw new j(G.INVALID_ARGUMENT, \"cacheSizeBytes must be at least 1048576\");\n return n.initialize({\n options: e\n });\n}\n\n/**\n * Returns the existing {@link Firestore} instance that is associated with the\n * provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new\n * instance with default settings.\n *\n * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}\n * instance is associated with.\n * @returns The {@link Firestore} instance of the provided app.\n */ function da(e = getApp()) {\n return _getProvider(e, \"firestore\").getImmediate();\n}\n\n/**\n * @internal\n */ function _a(t) {\n return t._firestoreClient || wa(t), t._firestoreClient.verifyNotTerminated(), t._firestoreClient;\n}\n\nfunction wa(t) {\n var e;\n const n = t._freezeSettings(), s = function(t, e, n, s) {\n return new vt(t, e, n, s.host, s.ssl, s.experimentalForceLongPolling, s.experimentalAutoDetectLongPolling, s.useFetchStreams);\n }(t._databaseId, (null === (e = t._app) || void 0 === e ? void 0 : e.options.appId) || \"\", t._persistenceKey, n);\n t._firestoreClient = new Tu(t._authCredentials, t._appCheckCredentials, t._queue, s);\n}\n\n/**\n * Attempts to enable persistent storage, if possible.\n *\n * Must be called before any other functions (other than\n * {@link initializeFirestore}, {@link getFirestore} or\n * {@link clearIndexedDbPersistence}.\n *\n * If this fails, `enableIndexedDbPersistence()` will reject the promise it\n * returns. Note that even after this failure, the {@link Firestore} instance will\n * remain usable, however offline persistence will be disabled.\n *\n * There are several reasons why this can fail, which can be identified by\n * the `code` on the error.\n *\n * * failed-precondition: The app is already open in another browser tab.\n * * unimplemented: The browser is incompatible with the offline\n * persistence implementation.\n *\n * @param firestore - The {@link Firestore} instance to enable persistence for.\n * @param persistenceSettings - Optional settings object to configure\n * persistence.\n * @returns A `Promise` that represents successfully enabling persistent storage.\n */ function ma(t, e) {\n ba(t = zu(t, la));\n const n = _a(t), s = t._freezeSettings(), i = new mu;\n return ya(n, i, new _u(i, s.cacheSizeBytes, null == e ? void 0 : e.forceOwnership));\n}\n\n/**\n * Attempts to enable multi-tab persistent storage, if possible. If enabled\n * across all tabs, all operations share access to local persistence, including\n * shared execution of queries and latency-compensated local document updates\n * across all connected instances.\n *\n * If this fails, `enableMultiTabIndexedDbPersistence()` will reject the promise\n * it returns. Note that even after this failure, the {@link Firestore} instance will\n * remain usable, however offline persistence will be disabled.\n *\n * There are several reasons why this can fail, which can be identified by\n * the `code` on the error.\n *\n * * failed-precondition: The app is already open in another browser tab and\n * multi-tab is not enabled.\n * * unimplemented: The browser is incompatible with the offline\n * persistence implementation.\n *\n * @param firestore - The {@link Firestore} instance to enable persistence for.\n * @returns A `Promise` that represents successfully enabling persistent\n * storage.\n */ function ga(t) {\n ba(t = zu(t, la));\n const e = _a(t), n = t._freezeSettings(), s = new mu;\n return ya(e, s, new wu(s, n.cacheSizeBytes));\n}\n\n/**\n * Registers both the `OfflineComponentProvider` and `OnlineComponentProvider`.\n * If the operation fails with a recoverable error (see\n * `canRecoverFromIndexedDbError()` below), the returned Promise is rejected\n * but the client remains usable.\n */ function ya(t, e, n) {\n const s = new Q;\n return t.asyncQueue.enqueue((async () => {\n try {\n await Au(t, n), await Ru(t, e), s.resolve();\n } catch (t) {\n if (!\n /**\n * Decides whether the provided error allows us to gracefully disable\n * persistence (as opposed to crashing the client).\n */\n function(t) {\n if (\"FirebaseError\" === t.name) return t.code === G.FAILED_PRECONDITION || t.code === G.UNIMPLEMENTED;\n if (\"undefined\" != typeof DOMException && t instanceof DOMException) \n // There are a few known circumstances where we can open IndexedDb but\n // trying to read/write will fail (e.g. quota exceeded). For\n // well-understood cases, we attempt to detect these and then gracefully\n // fall back to memory persistence.\n // NOTE: Rather than continue to add to this list, we could decide to\n // always fall back, with the risk that we might accidentally hide errors\n // representing actual SDK bugs.\n // When the browser is out of quota we could get either quota exceeded\n // or an aborted error depending on whether the error happened during\n // schema migration.\n return 22 === t.code || 20 === t.code || \n // Firefox Private Browsing mode disables IndexedDb and returns\n // INVALID_STATE for any usage.\n 11 === t.code;\n return !0;\n }\n /**\n * Clears the persistent storage. This includes pending writes and cached\n * documents.\n *\n * Must be called while the {@link Firestore} instance is not started (after the app is\n * terminated or when the app is first initialized). On startup, this function\n * must be called before other functions (other than {@link\n * initializeFirestore} or {@link getFirestore})). If the {@link Firestore}\n * instance is still running, the promise will be rejected with the error code\n * of `failed-precondition`.\n *\n * Note: `clearIndexedDbPersistence()` is primarily intended to help write\n * reliable tests that use Cloud Firestore. It uses an efficient mechanism for\n * dropping existing data but does not attempt to securely overwrite or\n * otherwise make cached data unrecoverable. For applications that are sensitive\n * to the disclosure of cached data in between user sessions, we strongly\n * recommend not enabling persistence at all.\n *\n * @param firestore - The {@link Firestore} instance to clear persistence for.\n * @returns A `Promise` that is resolved when the persistent storage is\n * cleared. Otherwise, the promise is rejected with an error.\n */ (t)) throw t;\n console.warn(\"Error enabling offline persistence. Falling back to persistence disabled: \" + t), \n s.reject(t);\n }\n })).then((() => s.promise));\n}\n\nfunction pa(t) {\n if (t._initialized && !t._terminated) throw new j(G.FAILED_PRECONDITION, \"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.\");\n const e = new Q;\n return t._queue.enqueueAndForgetEvenWhileRestricted((async () => {\n try {\n await async function(t) {\n if (!ri.Vt()) return Promise.resolve();\n const e = t + \"main\";\n await ri.delete(e);\n }(kr(t._databaseId, t._persistenceKey)), e.resolve();\n } catch (t) {\n e.reject(t);\n }\n })), e.promise;\n}\n\n/**\n * Waits until all currently pending writes for the active user have been\n * acknowledged by the backend.\n *\n * The returned promise resolves immediately if there are no outstanding writes.\n * Otherwise, the promise waits for all previously issued writes (including\n * those written in a previous app session), but it does not wait for writes\n * that were added after the function is called. If you want to wait for\n * additional writes, call `waitForPendingWrites()` again.\n *\n * Any outstanding `waitForPendingWrites()` promises are rejected during user\n * changes.\n *\n * @returns A `Promise` which resolves when all currently pending writes have been\n * acknowledged by the backend.\n */ function Ia(t) {\n return function(t) {\n const e = new Q;\n return t.asyncQueue.enqueueAndForget((async () => Gc(await Du(t), e))), e.promise;\n }(_a(t = zu(t, la)));\n}\n\n/**\n * Re-enables use of the network for this {@link Firestore} instance after a prior\n * call to {@link disableNetwork}.\n *\n * @returns A `Promise` that is resolved once the network has been enabled.\n */ function Ea(t) {\n return Nu(_a(t = zu(t, la)));\n}\n\n/**\n * Disables network usage for this instance. It can be re-enabled via {@link\n * enableNetwork}. While the network is disabled, any snapshot listeners,\n * `getDoc()` or `getDocs()` calls will return results from cache, and any write\n * operations will be queued until the network is restored.\n *\n * @returns A `Promise` that is resolved once the network has been disabled.\n */ function Ta(t) {\n return xu(_a(t = zu(t, la)));\n}\n\n/**\n * Terminates the provided {@link Firestore} instance.\n *\n * After calling `terminate()` only the `clearIndexedDbPersistence()` function\n * may be used. Any other function will throw a `FirestoreError`.\n *\n * To restart after termination, create a new instance of FirebaseFirestore with\n * {@link getFirestore}.\n *\n * Termination does not cancel any pending writes, and any promises that are\n * awaiting a response from the server will not be resolved. If you have\n * persistence enabled, the next time you start this instance, it will resume\n * sending these writes to the server.\n *\n * Note: Under normal circumstances, calling `terminate()` is not required. This\n * function is useful only when you want to force this instance to release all\n * of its resources or in combination with `clearIndexedDbPersistence()` to\n * ensure that all local state is destroyed between test runs.\n *\n * @returns A `Promise` that is resolved when the instance has been successfully\n * terminated.\n */ function Aa(t) {\n return _removeServiceInstance(t.app, \"firestore\"), t._delete();\n}\n\n/**\n * Loads a Firestore bundle into the local cache.\n *\n * @param firestore - The {@link Firestore} instance to load bundles for.\n * @param bundleData - An object representing the bundle to be loaded. Valid\n * objects are `ArrayBuffer`, `ReadableStream<Uint8Array>` or `string`.\n *\n * @returns A `LoadBundleTask` object, which notifies callers with progress\n * updates, and completion or error events. It can be used as a\n * `Promise<LoadBundleTaskProgress>`.\n */ function Ra(t, e) {\n const n = _a(t = zu(t, la)), s = new aa;\n return Lu(n, t._databaseId, e, s), s;\n}\n\n/**\n * Reads a Firestore {@link Query} from local cache, identified by the given\n * name.\n *\n * The named queries are packaged into bundles on the server side (along\n * with resulting documents), and loaded to local cache using `loadBundle`. Once\n * in local cache, use this method to extract a {@link Query} by name.\n *\n * @param firestore - The {@link Firestore} instance to read the query from.\n * @param name - The name of the query.\n * @returns A `Promise` that is resolved with the Query or `null`.\n */ function Pa(t, e) {\n return Uu(_a(t = zu(t, la)), e).then((e => e ? new ta(t, null, e.query) : null));\n}\n\nfunction ba(t) {\n if (t._initialized || t._terminated) throw new j(G.FAILED_PRECONDITION, \"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `FieldPath` refers to a field in a document. The path may consist of a\n * single field name (referring to a top-level field in the document), or a\n * list of field names (referring to a nested field in the document).\n *\n * Create a `FieldPath` by providing field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n */\nclass va {\n /**\n * Creates a `FieldPath` from the provided field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n *\n * @param fieldNames - A list of field names.\n */\n constructor(...t) {\n for (let e = 0; e < t.length; ++e) if (0 === t[e].length) throw new j(G.INVALID_ARGUMENT, \"Invalid field name at argument $(i + 1). Field names must not be empty.\");\n this._internalPath = new mt(t);\n }\n /**\n * Returns true if this `FieldPath` is equal to the provided one.\n *\n * @param other - The `FieldPath` to compare against.\n * @returns true if this `FieldPath` is equal to the provided one.\n */ isEqual(t) {\n return this._internalPath.isEqual(t._internalPath);\n }\n}\n\n/**\n * Returns a special sentinel `FieldPath` to refer to the ID of a document.\n * It can be used in queries to sort or filter by the document ID.\n */ function Va() {\n return new va(\"__name__\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An immutable object representing an array of bytes.\n */ class Sa {\n /** @hideconstructor */\n constructor(t) {\n this._byteString = t;\n }\n /**\n * Creates a new `Bytes` object from the given Base64 string, converting it to\n * bytes.\n *\n * @param base64 - The Base64 string used to create the `Bytes` object.\n */ static fromBase64String(t) {\n try {\n return new Sa(pt.fromBase64String(t));\n } catch (t) {\n throw new j(G.INVALID_ARGUMENT, \"Failed to construct data from Base64 string: \" + t);\n }\n }\n /**\n * Creates a new `Bytes` object from the given Uint8Array.\n *\n * @param array - The Uint8Array used to create the `Bytes` object.\n */ static fromUint8Array(t) {\n return new Sa(pt.fromUint8Array(t));\n }\n /**\n * Returns the underlying bytes as a Base64-encoded string.\n *\n * @returns The Base64-encoded string created from the `Bytes` object.\n */ toBase64() {\n return this._byteString.toBase64();\n }\n /**\n * Returns the underlying bytes in a new `Uint8Array`.\n *\n * @returns The Uint8Array created from the `Bytes` object.\n */ toUint8Array() {\n return this._byteString.toUint8Array();\n }\n /**\n * Returns a string representation of the `Bytes` object.\n *\n * @returns A string representation of the `Bytes` object.\n */ toString() {\n return \"Bytes(base64: \" + this.toBase64() + \")\";\n }\n /**\n * Returns true if this `Bytes` object is equal to the provided one.\n *\n * @param other - The `Bytes` object to compare against.\n * @returns true if this `Bytes` object is equal to the provided one.\n */ isEqual(t) {\n return this._byteString.isEqual(t._byteString);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Sentinel values that can be used when writing document fields with `set()`\n * or `update()`.\n */ class Da {\n /**\n * @param _methodName - The public API endpoint that returns this class.\n * @hideconstructor\n */\n constructor(t) {\n this._methodName = t;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An immutable object representing a geographic location in Firestore. The\n * location is represented as latitude/longitude pair.\n *\n * Latitude values are in the range of [-90, 90].\n * Longitude values are in the range of [-180, 180].\n */ class Ca {\n /**\n * Creates a new immutable `GeoPoint` object with the provided latitude and\n * longitude values.\n * @param latitude - The latitude as number between -90 and 90.\n * @param longitude - The longitude as number between -180 and 180.\n */\n constructor(t, e) {\n if (!isFinite(t) || t < -90 || t > 90) throw new j(G.INVALID_ARGUMENT, \"Latitude must be a number between -90 and 90, but was: \" + t);\n if (!isFinite(e) || e < -180 || e > 180) throw new j(G.INVALID_ARGUMENT, \"Longitude must be a number between -180 and 180, but was: \" + e);\n this._lat = t, this._long = e;\n }\n /**\n * The latitude of this `GeoPoint` instance.\n */ get latitude() {\n return this._lat;\n }\n /**\n * The longitude of this `GeoPoint` instance.\n */ get longitude() {\n return this._long;\n }\n /**\n * Returns true if this `GeoPoint` is equal to the provided one.\n *\n * @param other - The `GeoPoint` to compare against.\n * @returns true if this `GeoPoint` is equal to the provided one.\n */ isEqual(t) {\n return this._lat === t._lat && this._long === t._long;\n }\n /** Returns a JSON-serializable representation of this GeoPoint. */ toJSON() {\n return {\n latitude: this._lat,\n longitude: this._long\n };\n }\n /**\n * Actually private to JS consumers of our API, so this function is prefixed\n * with an underscore.\n */ _compareTo(t) {\n return rt(this._lat, t._lat) || rt(this._long, t._long);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const Na = /^__.*__$/;\n\n/** The result of parsing document data (e.g. for a setData call). */ class xa {\n constructor(t, e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n toMutation(t, e) {\n return null !== this.fieldMask ? new fn(t, this.data, this.fieldMask, e, this.fieldTransforms) : new ln(t, this.data, e, this.fieldTransforms);\n }\n}\n\n/** The result of parsing \"update\" data (i.e. for an updateData call). */ class ka {\n constructor(t, \n // The fieldMask does not include document transforms.\n e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n toMutation(t, e) {\n return new fn(t, this.data, this.fieldMask, e, this.fieldTransforms);\n }\n}\n\nfunction Oa(t) {\n switch (t) {\n case 0 /* Set */ :\n // fall through\n case 2 /* MergeSet */ :\n // fall through\n case 1 /* Update */ :\n return !0;\n\n case 3 /* Argument */ :\n case 4 /* ArrayArgument */ :\n return !1;\n\n default:\n throw L();\n }\n}\n\n/** A \"context\" object passed around while parsing user data. */ class Ma {\n /**\n * Initializes a ParseContext with the given source and path.\n *\n * @param settings - The settings for the parser.\n * @param databaseId - The database ID of the Firestore instance.\n * @param serializer - The serializer to use to generate the Value proto.\n * @param ignoreUndefinedProperties - Whether to ignore undefined properties\n * rather than throw.\n * @param fieldTransforms - A mutable list of field transforms encountered\n * while parsing the data.\n * @param fieldMask - A mutable list of field paths encountered while parsing\n * the data.\n *\n * TODO(b/34871131): We don't support array paths right now, so path can be\n * null to indicate the context represents any location within an array (in\n * which case certain features will not work and errors will be somewhat\n * compromised).\n */\n constructor(t, e, n, s, i, r) {\n this.settings = t, this.databaseId = e, this.O = n, this.ignoreUndefinedProperties = s, \n // Minor hack: If fieldTransforms is undefined, we assume this is an\n // external call and we need to validate the entire path.\n void 0 === i && this.vu(), this.fieldTransforms = i || [], this.fieldMask = r || [];\n }\n get path() {\n return this.settings.path;\n }\n get Vu() {\n return this.settings.Vu;\n }\n /** Returns a new context with the specified settings overwritten. */ Su(t) {\n return new Ma(Object.assign(Object.assign({}, this.settings), t), this.databaseId, this.O, this.ignoreUndefinedProperties, this.fieldTransforms, this.fieldMask);\n }\n Du(t) {\n var e;\n const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), s = this.Su({\n path: n,\n Cu: !1\n });\n return s.Nu(t), s;\n }\n xu(t) {\n var e;\n const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), s = this.Su({\n path: n,\n Cu: !1\n });\n return s.vu(), s;\n }\n ku(t) {\n // TODO(b/34871131): We don't support array paths right now; so make path\n // undefined.\n return this.Su({\n path: void 0,\n Cu: !0\n });\n }\n Ou(t) {\n return nh(t, this.settings.methodName, this.settings.Mu || !1, this.path, this.settings.$u);\n }\n /** Returns 'true' if 'fieldPath' was traversed when creating this context. */ contains(t) {\n return void 0 !== this.fieldMask.find((e => t.isPrefixOf(e))) || void 0 !== this.fieldTransforms.find((e => t.isPrefixOf(e.field)));\n }\n vu() {\n // TODO(b/34871131): Remove null check once we have proper paths for fields\n // within arrays.\n if (this.path) for (let t = 0; t < this.path.length; t++) this.Nu(this.path.get(t));\n }\n Nu(t) {\n if (0 === t.length) throw this.Ou(\"Document fields must not be empty\");\n if (Oa(this.Vu) && Na.test(t)) throw this.Ou('Document fields cannot begin and end with \"__\"');\n }\n}\n\n/**\n * Helper for parsing raw user input (provided via the API) into internal model\n * classes.\n */ class $a {\n constructor(t, e, n) {\n this.databaseId = t, this.ignoreUndefinedProperties = e, this.O = n || Do(t);\n }\n /** Creates a new top-level parse context. */ Fu(t, e, n, s = !1) {\n return new Ma({\n Vu: t,\n methodName: e,\n $u: n,\n path: mt.emptyPath(),\n Cu: !1,\n Mu: s\n }, this.databaseId, this.O, this.ignoreUndefinedProperties);\n }\n}\n\nfunction Fa(t) {\n const e = t._freezeSettings(), n = Do(t._databaseId);\n return new $a(t._databaseId, !!e.ignoreUndefinedProperties, n);\n}\n\n/** Parse document data from a set() call. */ function Ba(t, e, n, s, i, r = {}) {\n const o = t.Fu(r.merge || r.mergeFields ? 2 /* MergeSet */ : 0 /* Set */ , e, n, i);\n Xa(\"Data must be an object, but it was:\", o, s);\n const c = Ja(s, o);\n let u, a;\n if (r.merge) u = new gt(o.fieldMask), a = o.fieldTransforms; else if (r.mergeFields) {\n const t = [];\n for (const s of r.mergeFields) {\n const i = Za(e, s, n);\n if (!o.contains(i)) throw new j(G.INVALID_ARGUMENT, `Field '${i}' is specified in your field mask but missing from your input data.`);\n sh(t, i) || t.push(i);\n }\n u = new gt(t), a = o.fieldTransforms.filter((t => u.covers(t.field)));\n } else u = null, a = o.fieldTransforms;\n return new xa(new zt(c), u, a);\n}\n\nclass La extends Da {\n _toFieldTransform(t) {\n if (2 /* MergeSet */ !== t.Vu) throw 1 /* Update */ === t.Vu ? t.Ou(`${this._methodName}() can only appear at the top level of your update data`) : t.Ou(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);\n // No transform to add for a delete, but we need to add it to our\n // fieldMask so it gets deleted.\n return t.fieldMask.push(t.path), null;\n }\n isEqual(t) {\n return t instanceof La;\n }\n}\n\n/**\n * Creates a child context for parsing SerializableFieldValues.\n *\n * This is different than calling `ParseContext.contextWith` because it keeps\n * the fieldTransforms and fieldMask separate.\n *\n * The created context has its `dataSource` set to `UserDataSource.Argument`.\n * Although these values are used with writes, any elements in these FieldValues\n * are not considered writes since they cannot contain any FieldValue sentinels,\n * etc.\n *\n * @param fieldValue - The sentinel FieldValue for which to create a child\n * context.\n * @param context - The parent context.\n * @param arrayElement - Whether or not the FieldValue has an array.\n */ function Ua(t, e, n) {\n return new Ma({\n Vu: 3 /* Argument */ ,\n $u: e.settings.$u,\n methodName: t._methodName,\n Cu: n\n }, e.databaseId, e.O, e.ignoreUndefinedProperties);\n}\n\nclass qa extends Da {\n _toFieldTransform(t) {\n return new Ze(t.path, new je);\n }\n isEqual(t) {\n return t instanceof qa;\n }\n}\n\nclass Ka extends Da {\n constructor(t, e) {\n super(t), this.Bu = e;\n }\n _toFieldTransform(t) {\n const e = Ua(this, t, \n /*array=*/ !0), n = this.Bu.map((t => Ha(t, e))), s = new Qe(n);\n return new Ze(t.path, s);\n }\n isEqual(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }\n}\n\nclass Ga extends Da {\n constructor(t, e) {\n super(t), this.Bu = e;\n }\n _toFieldTransform(t) {\n const e = Ua(this, t, \n /*array=*/ !0), n = this.Bu.map((t => Ha(t, e))), s = new ze(n);\n return new Ze(t.path, s);\n }\n isEqual(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }\n}\n\nclass ja extends Da {\n constructor(t, e) {\n super(t), this.Lu = e;\n }\n _toFieldTransform(t) {\n const e = new Je(t.O, Le(t.O, this.Lu));\n return new Ze(t.path, e);\n }\n isEqual(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }\n}\n\n/** Parse update data from an update() call. */ function Qa(t, e, n, s) {\n const i = t.Fu(1 /* Update */ , e, n);\n Xa(\"Data must be an object, but it was:\", i, s);\n const r = [], o = zt.empty();\n lt(s, ((t, s) => {\n const c = eh(e, t, n);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n s = getModularInstance(s);\n const u = i.xu(c);\n if (s instanceof La) \n // Add it to the field mask, but don't add anything to updateData.\n r.push(c); else {\n const t = Ha(s, u);\n null != t && (r.push(c), o.set(c, t));\n }\n }));\n const c = new gt(r);\n return new ka(o, c, i.fieldTransforms);\n}\n\n/** Parse update data from a list of field/value arguments. */ function Wa(t, e, n, s, i, r) {\n const o = t.Fu(1 /* Update */ , e, n), c = [ Za(e, s, n) ], u = [ i ];\n if (r.length % 2 != 0) throw new j(G.INVALID_ARGUMENT, `Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);\n for (let t = 0; t < r.length; t += 2) c.push(Za(e, r[t])), u.push(r[t + 1]);\n const a = [], h = zt.empty();\n // We iterate in reverse order to pick the last value for a field if the\n // user specified the field multiple times.\n for (let t = c.length - 1; t >= 0; --t) if (!sh(a, c[t])) {\n const e = c[t];\n let n = u[t];\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n n = getModularInstance(n);\n const s = o.xu(e);\n if (n instanceof La) \n // Add it to the field mask, but don't add anything to updateData.\n a.push(e); else {\n const t = Ha(n, s);\n null != t && (a.push(e), h.set(e, t));\n }\n }\n const l = new gt(a);\n return new ka(h, l, o.fieldTransforms);\n}\n\n/**\n * Parse a \"query value\" (e.g. value in a where filter or a value in a cursor\n * bound).\n *\n * @param allowArrays - Whether the query value is an array that may directly\n * contain additional arrays (e.g. the operand of an `in` query).\n */ function za(t, e, n, s = !1) {\n return Ha(n, t.Fu(s ? 4 /* ArrayArgument */ : 3 /* Argument */ , e));\n}\n\n/**\n * Parses user data to Protobuf Values.\n *\n * @param input - Data to be parsed.\n * @param context - A context object representing the current path being parsed,\n * the source of the data being parsed, etc.\n * @returns The parsed value, or null if the value was a FieldValue sentinel\n * that should not be included in the resulting parsed data.\n */ function Ha(t, e) {\n if (Ya(\n // Unwrap the API type from the Compat SDK. This will return the API type\n // from firestore-exp.\n t = getModularInstance(t))) return Xa(\"Unsupported field value:\", e, t), Ja(t, e);\n if (t instanceof Da) \n // FieldValues usually parse into transforms (except deleteField())\n // in which case we do not want to include this field in our parsed data\n // (as doing so will overwrite the field directly prior to the transform\n // trying to transform it). So we don't add this location to\n // context.fieldMask and we return null as our parsing result.\n /**\n * \"Parses\" the provided FieldValueImpl, adding any necessary transforms to\n * context.fieldTransforms.\n */\n return function(t, e) {\n // Sentinels are only supported with writes, and not within arrays.\n if (!Oa(e.Vu)) throw e.Ou(`${t._methodName}() can only be used with update() and set()`);\n if (!e.path) throw e.Ou(`${t._methodName}() is not currently supported inside arrays`);\n const n = t._toFieldTransform(e);\n n && e.fieldTransforms.push(n);\n }\n /**\n * Helper to parse a scalar value (i.e. not an Object, Array, or FieldValue)\n *\n * @returns The parsed value\n */ (t, e), null;\n if (void 0 === t && e.ignoreUndefinedProperties) \n // If the input is undefined it can never participate in the fieldMask, so\n // don't handle this below. If `ignoreUndefinedProperties` is false,\n // `parseScalarValue` will reject an undefined value.\n return null;\n if (\n // If context.path is null we are inside an array and we don't support\n // field mask paths more granular than the top-level array.\n e.path && e.fieldMask.push(e.path), t instanceof Array) {\n // TODO(b/34871131): Include the path containing the array in the error\n // message.\n // In the case of IN queries, the parsed data is an array (representing\n // the set of values to be included for the IN query) that may directly\n // contain additional arrays (each representing an individual field\n // value), so we disable this validation.\n if (e.settings.Cu && 4 /* ArrayArgument */ !== e.Vu) throw e.Ou(\"Nested arrays are not supported\");\n return function(t, e) {\n const n = [];\n let s = 0;\n for (const i of t) {\n let t = Ha(i, e.ku(s));\n null == t && (\n // Just include nulls in the array for fields being replaced with a\n // sentinel.\n t = {\n nullValue: \"NULL_VALUE\"\n }), n.push(t), s++;\n }\n return {\n arrayValue: {\n values: n\n }\n };\n }(t, e);\n }\n return function(t, e) {\n if (null === (t = getModularInstance(t))) return {\n nullValue: \"NULL_VALUE\"\n };\n if (\"number\" == typeof t) return Le(e.O, t);\n if (\"boolean\" == typeof t) return {\n booleanValue: t\n };\n if (\"string\" == typeof t) return {\n stringValue: t\n };\n if (t instanceof Date) {\n const n = ut.fromDate(t);\n return {\n timestampValue: Jn(e.O, n)\n };\n }\n if (t instanceof ut) {\n // Firestore backend truncates precision down to microseconds. To ensure\n // offline mode works the same with regards to truncation, perform the\n // truncation immediately without waiting for the backend to do that.\n const n = new ut(t.seconds, 1e3 * Math.floor(t.nanoseconds / 1e3));\n return {\n timestampValue: Jn(e.O, n)\n };\n }\n if (t instanceof Ca) return {\n geoPointValue: {\n latitude: t.latitude,\n longitude: t.longitude\n }\n };\n if (t instanceof Sa) return {\n bytesValue: Yn(e.O, t._byteString)\n };\n if (t instanceof Zu) {\n const n = e.databaseId, s = t.firestore._databaseId;\n if (!s.isEqual(n)) throw e.Ou(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${n.projectId}/${n.database}`);\n return {\n referenceValue: ts(t.firestore._databaseId || e.databaseId, t._key.path)\n };\n }\n throw e.Ou(`Unsupported field value: ${Wu(t)}`);\n }\n /**\n * Checks whether an object looks like a JSON object that should be converted\n * into a struct. Normal class/prototype instances are considered to look like\n * JSON objects since they should be converted to a struct value. Arrays, Dates,\n * GeoPoints, etc. are not considered to look like JSON objects since they map\n * to specific FieldValue types other than ObjectValue.\n */ (t, e);\n}\n\nfunction Ja(t, e) {\n const n = {};\n return ft(t) ? \n // If we encounter an empty object, we explicitly add it to the update\n // mask to ensure that the server creates a map entry.\n e.path && e.path.length > 0 && e.fieldMask.push(e.path) : lt(t, ((t, s) => {\n const i = Ha(s, e.Du(t));\n null != i && (n[t] = i);\n })), {\n mapValue: {\n fields: n\n }\n };\n}\n\nfunction Ya(t) {\n return !(\"object\" != typeof t || null === t || t instanceof Array || t instanceof Date || t instanceof ut || t instanceof Ca || t instanceof Sa || t instanceof Zu || t instanceof Da);\n}\n\nfunction Xa(t, e, n) {\n if (!Ya(n) || !function(t) {\n return \"object\" == typeof t && null !== t && (Object.getPrototypeOf(t) === Object.prototype || null === Object.getPrototypeOf(t));\n }(n)) {\n const s = Wu(n);\n throw \"an object\" === s ? e.Ou(t + \" a custom object\") : e.Ou(t + \" \" + s);\n }\n}\n\n/**\n * Helper that calls fromDotSeparatedString() but wraps any error thrown.\n */ function Za(t, e, n) {\n if ((\n // If required, replace the FieldPath Compat class with with the firestore-exp\n // FieldPath.\n e = getModularInstance(e)) instanceof va) return e._internalPath;\n if (\"string\" == typeof e) return eh(t, e);\n throw nh(\"Field path arguments must be of type string or \", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n}\n\n/**\n * Matches any characters in a field path string that are reserved.\n */ const th = new RegExp(\"[~\\\\*/\\\\[\\\\]]\");\n\n/**\n * Wraps fromDotSeparatedString with an error message about the method that\n * was thrown.\n * @param methodName - The publicly visible method name\n * @param path - The dot-separated string form of a field path which will be\n * split on dots.\n * @param targetDoc - The document against which the field path will be\n * evaluated.\n */ function eh(t, e, n) {\n if (e.search(th) >= 0) throw nh(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`, t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n try {\n return new va(...e.split(\".\"))._internalPath;\n } catch (s) {\n throw nh(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`, t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n }\n}\n\nfunction nh(t, e, n, s, i) {\n const r = s && !s.isEmpty(), o = void 0 !== i;\n let c = `Function ${e}() called with invalid data`;\n n && (c += \" (via `toFirestore()`)\"), c += \". \";\n let u = \"\";\n return (r || o) && (u += \" (found\", r && (u += ` in field ${s}`), o && (u += ` in document ${i}`), \n u += \")\"), new j(G.INVALID_ARGUMENT, c + t + u);\n}\n\n/** Checks `haystack` if FieldPath `needle` is present. Runs in O(n). */ function sh(t, e) {\n return t.some((t => t.isEqual(e)));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `DocumentSnapshot` contains data read from a document in your Firestore\n * database. The data can be extracted with `.data()` or `.get(<field>)` to\n * get a specific field.\n *\n * For a `DocumentSnapshot` that points to a non-existing document, any data\n * access will return 'undefined'. You can use the `exists()` method to\n * explicitly verify a document's existence.\n */ class ih {\n // Note: This class is stripped down version of the DocumentSnapshot in\n // the legacy SDK. The changes are:\n // - No support for SnapshotMetadata.\n // - No support for SnapshotOptions.\n /** @hideconstructor protected */\n constructor(t, e, n, s, i) {\n this._firestore = t, this._userDataWriter = e, this._key = n, this._document = s, \n this._converter = i;\n }\n /** Property of the `DocumentSnapshot` that provides the document's ID. */ get id() {\n return this._key.path.lastSegment();\n }\n /**\n * The `DocumentReference` for the document included in the `DocumentSnapshot`.\n */ get ref() {\n return new Zu(this._firestore, this._converter, this._key);\n }\n /**\n * Signals whether or not the document at the snapshot's location exists.\n *\n * @returns true if the document exists.\n */ exists() {\n return null !== this._document;\n }\n /**\n * Retrieves all fields in the document as an `Object`. Returns `undefined` if\n * the document doesn't exist.\n *\n * @returns An `Object` containing all fields in the document or `undefined`\n * if the document doesn't exist.\n */ data() {\n if (this._document) {\n if (this._converter) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n const t = new rh(this._firestore, this._userDataWriter, this._key, this._document, \n /* converter= */ null);\n return this._converter.fromFirestore(t);\n }\n return this._userDataWriter.convertValue(this._document.data.value);\n }\n }\n /**\n * Retrieves the field specified by `fieldPath`. Returns `undefined` if the\n * document or field doesn't exist.\n *\n * @param fieldPath - The path (for example 'foo' or 'foo.bar') to a specific\n * field.\n * @returns The data at the specified field location or undefined if no such\n * field exists in the document.\n */\n // We are using `any` here to avoid an explicit cast by our users.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(t) {\n if (this._document) {\n const e = this._document.data.field(oh(\"DocumentSnapshot.get\", t));\n if (null !== e) return this._userDataWriter.convertValue(e);\n }\n }\n}\n\n/**\n * A `QueryDocumentSnapshot` contains data read from a document in your\n * Firestore database as part of a query. The document is guaranteed to exist\n * and its data can be extracted with `.data()` or `.get(<field>)` to get a\n * specific field.\n *\n * A `QueryDocumentSnapshot` offers the same API surface as a\n * `DocumentSnapshot`. Since query results contain only existing documents, the\n * `exists` property will always be true and `data()` will never return\n * 'undefined'.\n */ class rh extends ih {\n /**\n * Retrieves all fields in the document as an `Object`.\n *\n * @override\n * @returns An `Object` containing all fields in the document.\n */\n data() {\n return super.data();\n }\n}\n\n/**\n * Helper that calls `fromDotSeparatedString()` but wraps any error thrown.\n */ function oh(t, e) {\n return \"string\" == typeof e ? eh(t, e) : e instanceof va ? e._internalPath : e._delegate._internalPath;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Metadata about a snapshot, describing the state of the snapshot.\n */ class ch {\n /** @hideconstructor */\n constructor(t, e) {\n this.hasPendingWrites = t, this.fromCache = e;\n }\n /**\n * Returns true if this `SnapshotMetadata` is equal to the provided one.\n *\n * @param other - The `SnapshotMetadata` to compare against.\n * @returns true if this `SnapshotMetadata` is equal to the provided one.\n */ isEqual(t) {\n return this.hasPendingWrites === t.hasPendingWrites && this.fromCache === t.fromCache;\n }\n}\n\n/**\n * A `DocumentSnapshot` contains data read from a document in your Firestore\n * database. The data can be extracted with `.data()` or `.get(<field>)` to\n * get a specific field.\n *\n * For a `DocumentSnapshot` that points to a non-existing document, any data\n * access will return 'undefined'. You can use the `exists()` method to\n * explicitly verify a document's existence.\n */ class uh extends ih {\n /** @hideconstructor protected */\n constructor(t, e, n, s, i, r) {\n super(t, e, n, s, r), this._firestore = t, this._firestoreImpl = t, this.metadata = i;\n }\n /**\n * Returns whether or not the data exists. True if the document exists.\n */ exists() {\n return super.exists();\n }\n /**\n * Retrieves all fields in the document as an `Object`. Returns `undefined` if\n * the document doesn't exist.\n *\n * By default, `serverTimestamp()` values that have not yet been\n * set to their final value will be returned as `null`. You can override\n * this by passing an options object.\n *\n * @param options - An options object to configure how data is retrieved from\n * the snapshot (for example the desired behavior for server timestamps that\n * have not yet been set to their final value).\n * @returns An `Object` containing all fields in the document or `undefined` if\n * the document doesn't exist.\n */ data(t = {}) {\n if (this._document) {\n if (this._converter) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n const e = new ah(this._firestore, this._userDataWriter, this._key, this._document, this.metadata, \n /* converter= */ null);\n return this._converter.fromFirestore(e, t);\n }\n return this._userDataWriter.convertValue(this._document.data.value, t.serverTimestamps);\n }\n }\n /**\n * Retrieves the field specified by `fieldPath`. Returns `undefined` if the\n * document or field doesn't exist.\n *\n * By default, a `serverTimestamp()` that has not yet been set to\n * its final value will be returned as `null`. You can override this by\n * passing an options object.\n *\n * @param fieldPath - The path (for example 'foo' or 'foo.bar') to a specific\n * field.\n * @param options - An options object to configure how the field is retrieved\n * from the snapshot (for example the desired behavior for server timestamps\n * that have not yet been set to their final value).\n * @returns The data at the specified field location or undefined if no such\n * field exists in the document.\n */\n // We are using `any` here to avoid an explicit cast by our users.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(t, e = {}) {\n if (this._document) {\n const n = this._document.data.field(oh(\"DocumentSnapshot.get\", t));\n if (null !== n) return this._userDataWriter.convertValue(n, e.serverTimestamps);\n }\n }\n}\n\n/**\n * A `QueryDocumentSnapshot` contains data read from a document in your\n * Firestore database as part of a query. The document is guaranteed to exist\n * and its data can be extracted with `.data()` or `.get(<field>)` to get a\n * specific field.\n *\n * A `QueryDocumentSnapshot` offers the same API surface as a\n * `DocumentSnapshot`. Since query results contain only existing documents, the\n * `exists` property will always be true and `data()` will never return\n * 'undefined'.\n */ class ah extends uh {\n /**\n * Retrieves all fields in the document as an `Object`.\n *\n * By default, `serverTimestamp()` values that have not yet been\n * set to their final value will be returned as `null`. You can override\n * this by passing an options object.\n *\n * @override\n * @param options - An options object to configure how data is retrieved from\n * the snapshot (for example the desired behavior for server timestamps that\n * have not yet been set to their final value).\n * @returns An `Object` containing all fields in the document.\n */\n data(t = {}) {\n return super.data(t);\n }\n}\n\n/**\n * A `QuerySnapshot` contains zero or more `DocumentSnapshot` objects\n * representing the results of a query. The documents can be accessed as an\n * array via the `docs` property or enumerated using the `forEach` method. The\n * number of documents can be determined via the `empty` and `size`\n * properties.\n */ class hh {\n /** @hideconstructor */\n constructor(t, e, n, s) {\n this._firestore = t, this._userDataWriter = e, this._snapshot = s, this.metadata = new ch(s.hasPendingWrites, s.fromCache), \n this.query = n;\n }\n /** An array of all the documents in the `QuerySnapshot`. */ get docs() {\n const t = [];\n return this.forEach((e => t.push(e))), t;\n }\n /** The number of documents in the `QuerySnapshot`. */ get size() {\n return this._snapshot.docs.size;\n }\n /** True if there are no documents in the `QuerySnapshot`. */ get empty() {\n return 0 === this.size;\n }\n /**\n * Enumerates all of the documents in the `QuerySnapshot`.\n *\n * @param callback - A callback to be called with a `QueryDocumentSnapshot` for\n * each document in the snapshot.\n * @param thisArg - The `this` binding for the callback.\n */ forEach(t, e) {\n this._snapshot.docs.forEach((n => {\n t.call(e, new ah(this._firestore, this._userDataWriter, n.key, n, new ch(this._snapshot.mutatedKeys.has(n.key), this._snapshot.fromCache), this.query.converter));\n }));\n }\n /**\n * Returns an array of the documents changes since the last snapshot. If this\n * is the first snapshot, all documents will be in the list as 'added'\n * changes.\n *\n * @param options - `SnapshotListenOptions` that control whether metadata-only\n * changes (i.e. only `DocumentSnapshot.metadata` changed) should trigger\n * snapshot events.\n */ docChanges(t = {}) {\n const e = !!t.includeMetadataChanges;\n if (e && this._snapshot.excludesMetadataChanges) throw new j(G.INVALID_ARGUMENT, \"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().\");\n return this._cachedChanges && this._cachedChangesIncludeMetadataChanges === e || (this._cachedChanges = \n /** Calculates the array of `DocumentChange`s for a given `ViewSnapshot`. */\n function(t, e) {\n if (t._snapshot.oldDocs.isEmpty()) {\n let e = 0;\n return t._snapshot.docChanges.map((n => ({\n type: \"added\",\n doc: new ah(t._firestore, t._userDataWriter, n.doc.key, n.doc, new ch(t._snapshot.mutatedKeys.has(n.doc.key), t._snapshot.fromCache), t.query.converter),\n oldIndex: -1,\n newIndex: e++\n })));\n }\n {\n // A `DocumentSet` that is updated incrementally as changes are applied to use\n // to lookup the index of a document.\n let n = t._snapshot.oldDocs;\n return t._snapshot.docChanges.filter((t => e || 3 /* Metadata */ !== t.type)).map((e => {\n const s = new ah(t._firestore, t._userDataWriter, e.doc.key, e.doc, new ch(t._snapshot.mutatedKeys.has(e.doc.key), t._snapshot.fromCache), t.query.converter);\n let i = -1, r = -1;\n return 0 /* Added */ !== e.type && (i = n.indexOf(e.doc.key), n = n.delete(e.doc.key)), \n 1 /* Removed */ !== e.type && (n = n.add(e.doc), r = n.indexOf(e.doc.key)), {\n type: lh(e.type),\n doc: s,\n oldIndex: i,\n newIndex: r\n };\n }));\n }\n }(this, e), this._cachedChangesIncludeMetadataChanges = e), this._cachedChanges;\n }\n}\n\nfunction lh(t) {\n switch (t) {\n case 0 /* Added */ :\n return \"added\";\n\n case 2 /* Modified */ :\n case 3 /* Metadata */ :\n return \"modified\";\n\n case 1 /* Removed */ :\n return \"removed\";\n\n default:\n return L();\n }\n}\n\n// TODO(firestoreexp): Add tests for snapshotEqual with different snapshot\n// metadata\n/**\n * Returns true if the provided snapshots are equal.\n *\n * @param left - A snapshot to compare.\n * @param right - A snapshot to compare.\n * @returns true if the snapshots are equal.\n */ function fh(t, e) {\n return t instanceof uh && e instanceof uh ? t._firestore === e._firestore && t._key.isEqual(e._key) && (null === t._document ? null === e._document : t._document.isEqual(e._document)) && t._converter === e._converter : t instanceof hh && e instanceof hh && (t._firestore === e._firestore && oa(t.query, e.query) && t.metadata.isEqual(e.metadata) && t._snapshot.isEqual(e._snapshot));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function dh(t) {\n if (Pe(t) && 0 === t.explicitOrderBy.length) throw new j(G.UNIMPLEMENTED, \"limitToLast() queries require specifying at least one orderBy() clause\");\n}\n\n/**\n * A `QueryConstraint` is used to narrow the set of documents returned by a\n * Firestore query. `QueryConstraint`s are created by invoking {@link where},\n * {@link orderBy}, {@link (startAt:1)}, {@link (startAfter:1)}, {@link\n * endBefore:1}, {@link (endAt:1)}, {@link limit} or {@link limitToLast} and\n * can then be passed to {@link query} to create a new query instance that\n * also contains this `QueryConstraint`.\n */ class _h {}\n\n/**\n * Creates a new immutable instance of {@link Query} that is extended to also include\n * additional query constraints.\n *\n * @param query - The {@link Query} instance to use as a base for the new constraints.\n * @param queryConstraints - The list of {@link QueryConstraint}s to apply.\n * @throws if any of the provided query constraints cannot be combined with the\n * existing or new constraints.\n */ function wh(t, ...e) {\n for (const n of e) t = n._apply(t);\n return t;\n}\n\nclass mh extends _h {\n constructor(t, e, n) {\n super(), this.Uu = t, this.qu = e, this.Ku = n, this.type = \"where\";\n }\n _apply(t) {\n const e = Fa(t.firestore), n = function(t, e, n, s, i, r, o) {\n let c;\n if (i.isKeyField()) {\n if (\"array-contains\" /* ARRAY_CONTAINS */ === r || \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ === r) throw new j(G.INVALID_ARGUMENT, `Invalid Query. You can't perform '${r}' queries on documentId().`);\n if (\"in\" /* IN */ === r || \"not-in\" /* NOT_IN */ === r) {\n Ch(o, r);\n const e = [];\n for (const n of o) e.push(Dh(s, t, n));\n c = {\n arrayValue: {\n values: e\n }\n };\n } else c = Dh(s, t, o);\n } else \"in\" /* IN */ !== r && \"not-in\" /* NOT_IN */ !== r && \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ !== r || Ch(o, r), \n c = za(n, e, o, \n /* allowArrays= */ \"in\" /* IN */ === r || \"not-in\" /* NOT_IN */ === r);\n const u = ce.create(i, r, c);\n return function(t, e) {\n if (e.S()) {\n const n = ve(t);\n if (null !== n && !n.isEqual(e.field)) throw new j(G.INVALID_ARGUMENT, `Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n.toString()}' and '${e.field.toString()}'`);\n const s = be(t);\n null !== s && Nh(t, e.field, s);\n }\n const n = function(t, e) {\n for (const n of t.filters) if (e.indexOf(n.op) >= 0) return n.op;\n return null;\n }(t, \n /**\n * Given an operator, returns the set of operators that cannot be used with it.\n *\n * Operators in a query must adhere to the following set of rules:\n * 1. Only one array operator is allowed.\n * 2. Only one disjunctive operator is allowed.\n * 3. `NOT_EQUAL` cannot be used with another `NOT_EQUAL` operator.\n * 4. `NOT_IN` cannot be used with array, disjunctive, or `NOT_EQUAL` operators.\n *\n * Array operators: `ARRAY_CONTAINS`, `ARRAY_CONTAINS_ANY`\n * Disjunctive operators: `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`\n */\n function(t) {\n switch (t) {\n case \"!=\" /* NOT_EQUAL */ :\n return [ \"!=\" /* NOT_EQUAL */ , \"not-in\" /* NOT_IN */ ];\n\n case \"array-contains\" /* ARRAY_CONTAINS */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"not-in\" /* NOT_IN */ ];\n\n case \"in\" /* IN */ :\n return [ \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ ];\n\n case \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ ];\n\n case \"not-in\" /* NOT_IN */ :\n return [ \"array-contains\" /* ARRAY_CONTAINS */ , \"array-contains-any\" /* ARRAY_CONTAINS_ANY */ , \"in\" /* IN */ , \"not-in\" /* NOT_IN */ , \"!=\" /* NOT_EQUAL */ ];\n\n default:\n return [];\n }\n }(e.op));\n if (null !== n) \n // Special case when it's a duplicate op to give a slightly clearer error message.\n throw n === e.op ? new j(G.INVALID_ARGUMENT, `Invalid query. You cannot use more than one '${e.op.toString()}' filter.`) : new j(G.INVALID_ARGUMENT, `Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`);\n }(t, u), u;\n }(t._query, \"where\", e, t.firestore._databaseId, this.Uu, this.qu, this.Ku);\n return new ta(t.firestore, t.converter, function(t, e) {\n const n = t.filters.concat([ e ]);\n return new Ee(t.path, t.collectionGroup, t.explicitOrderBy.slice(), n, t.limit, t.limitType, t.startAt, t.endAt);\n }(t._query, n));\n }\n}\n\n/**\n * Creates a {@link QueryConstraint} that enforces that documents must contain the\n * specified field and that the value should satisfy the relation constraint\n * provided.\n *\n * @param fieldPath - The path to compare\n * @param opStr - The operation string (e.g \"<\", \"<=\", \"==\", \"<\",\n * \"<=\", \"!=\").\n * @param value - The value for comparison\n * @returns The created {@link Query}.\n */ function gh(t, e, n) {\n const s = e, i = oh(\"where\", t);\n return new mh(i, s, n);\n}\n\nclass yh extends _h {\n constructor(t, e) {\n super(), this.Uu = t, this.Gu = e, this.type = \"orderBy\";\n }\n _apply(t) {\n const e = function(t, e, n) {\n if (null !== t.startAt) throw new j(G.INVALID_ARGUMENT, \"Invalid query. You must not call startAt() or startAfter() before calling orderBy().\");\n if (null !== t.endAt) throw new j(G.INVALID_ARGUMENT, \"Invalid query. You must not call endAt() or endBefore() before calling orderBy().\");\n const s = new ge(e, n);\n return function(t, e) {\n if (null === be(t)) {\n // This is the first order by. It must match any inequality.\n const n = ve(t);\n null !== n && Nh(t, n, e.field);\n }\n }(t, s), s;\n }\n /**\n * Create a `Bound` from a query and a document.\n *\n * Note that the `Bound` will always include the key of the document\n * and so only the provided document will compare equal to the returned\n * position.\n *\n * Will throw if the document does not contain all fields of the order by\n * of the query or if any of the fields in the order by are an uncommitted\n * server timestamp.\n */ (t._query, this.Uu, this.Gu);\n return new ta(t.firestore, t.converter, function(t, e) {\n // TODO(dimond): validate that orderBy does not list the same key twice.\n const n = t.explicitOrderBy.concat([ e ]);\n return new Ee(t.path, t.collectionGroup, n, t.filters.slice(), t.limit, t.limitType, t.startAt, t.endAt);\n }(t._query, e));\n }\n}\n\n/**\n * Creates a {@link QueryConstraint} that sorts the query result by the\n * specified field, optionally in descending order instead of ascending.\n *\n * @param fieldPath - The field to sort by.\n * @param directionStr - Optional direction to sort by ('asc' or 'desc'). If\n * not specified, order will be ascending.\n * @returns The created {@link Query}.\n */ function ph(t, e = \"asc\") {\n const n = e, s = oh(\"orderBy\", t);\n return new yh(s, n);\n}\n\nclass Ih extends _h {\n constructor(t, e, n) {\n super(), this.type = t, this.ju = e, this.Qu = n;\n }\n _apply(t) {\n return new ta(t.firestore, t.converter, Ce(t._query, this.ju, this.Qu));\n }\n}\n\n/**\n * Creates a {@link QueryConstraint} that only returns the first matching documents.\n *\n * @param limit - The maximum number of items to return.\n * @returns The created {@link Query}.\n */ function Eh(t) {\n return Hu(\"limit\", t), new Ih(\"limit\", t, \"F\" /* First */);\n}\n\n/**\n * Creates a {@link QueryConstraint} that only returns the last matching documents.\n *\n * You must specify at least one `orderBy` clause for `limitToLast` queries,\n * otherwise an exception will be thrown during execution.\n *\n * @param limit - The maximum number of items to return.\n * @returns The created {@link Query}.\n */ function Th(t) {\n return Hu(\"limitToLast\", t), new Ih(\"limitToLast\", t, \"L\" /* Last */);\n}\n\nclass Ah extends _h {\n constructor(t, e, n) {\n super(), this.type = t, this.Wu = e, this.zu = n;\n }\n _apply(t) {\n const e = Sh(t, this.type, this.Wu, this.zu);\n return new ta(t.firestore, t.converter, function(t, e) {\n return new Ee(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, e, t.endAt);\n }(t._query, e));\n }\n}\n\nfunction Rh(...t) {\n return new Ah(\"startAt\", t, \n /*inclusive=*/ !0);\n}\n\nfunction Ph(...t) {\n return new Ah(\"startAfter\", t, \n /*inclusive=*/ !1);\n}\n\nclass bh extends _h {\n constructor(t, e, n) {\n super(), this.type = t, this.Wu = e, this.zu = n;\n }\n _apply(t) {\n const e = Sh(t, this.type, this.Wu, this.zu);\n return new ta(t.firestore, t.converter, function(t, e) {\n return new Ee(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, t.startAt, e);\n }(t._query, e));\n }\n}\n\nfunction vh(...t) {\n return new bh(\"endBefore\", t, \n /*inclusive=*/ !1);\n}\n\nfunction Vh(...t) {\n return new bh(\"endAt\", t, /*inclusive=*/ !0);\n}\n\n/** Helper function to create a bound from a document or fields */ function Sh(t, e, n, s) {\n if (n[0] = getModularInstance(n[0]), n[0] instanceof ih) return function(t, e, n, s, i) {\n if (!s) throw new j(G.NOT_FOUND, `Can't use a DocumentSnapshot that doesn't exist for ${n}().`);\n const r = [];\n // Because people expect to continue/end a query at the exact document\n // provided, we need to use the implicit sort order rather than the explicit\n // sort order, because it's guaranteed to contain the document key. That way\n // the position becomes unambiguous and the query continues/ends exactly at\n // the provided document. Without the key (by using the explicit sort\n // orders), multiple documents could match the position, yielding duplicate\n // results.\n for (const n of Se(t)) if (n.field.isKeyField()) r.push(Ut(e, s.key)); else {\n const t = s.data.field(n.field);\n if (Rt(t)) throw new j(G.INVALID_ARGUMENT, 'Invalid query. You are trying to start or end a query using a document for which the field \"' + n.field + '\" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');\n if (null === t) {\n const t = n.field.canonicalString();\n throw new j(G.INVALID_ARGUMENT, `Invalid query. You are trying to start or end a query using a document for which the field '${t}' (used as the orderBy) does not exist.`);\n }\n r.push(t);\n }\n return new me(r, i);\n }\n /**\n * Converts a list of field values to a `Bound` for the given query.\n */ (t._query, t.firestore._databaseId, e, n[0]._document, s);\n {\n const i = Fa(t.firestore);\n return function(t, e, n, s, i, r) {\n // Use explicit order by's because it has to match the query the user made\n const o = t.explicitOrderBy;\n if (i.length > o.length) throw new j(G.INVALID_ARGUMENT, `Too many arguments provided to ${s}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);\n const c = [];\n for (let r = 0; r < i.length; r++) {\n const u = i[r];\n if (o[r].field.isKeyField()) {\n if (\"string\" != typeof u) throw new j(G.INVALID_ARGUMENT, `Invalid query. Expected a string for document ID in ${s}(), but got a ${typeof u}`);\n if (!Ve(t) && -1 !== u.indexOf(\"/\")) throw new j(G.INVALID_ARGUMENT, `Invalid query. When querying a collection and ordering by documentId(), the value passed to ${s}() must be a plain document ID, but '${u}' contains a slash.`);\n const n = t.path.child(_t.fromString(u));\n if (!Nt.isDocumentKey(n)) throw new j(G.INVALID_ARGUMENT, `Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${s}() must result in a valid document path, but '${n}' is not because it contains an odd number of segments.`);\n const i = new Nt(n);\n c.push(Ut(e, i));\n } else {\n const t = za(n, s, u);\n c.push(t);\n }\n }\n return new me(c, r);\n }\n /**\n * Parses the given `documentIdValue` into a `ReferenceValue`, throwing\n * appropriate errors if the value is anything other than a `DocumentReference`\n * or `string`, or if the string is malformed.\n */ (t._query, t.firestore._databaseId, i, e, n, s);\n }\n}\n\nfunction Dh(t, e, n) {\n if (\"string\" == typeof (n = getModularInstance(n))) {\n if (\"\" === n) throw new j(G.INVALID_ARGUMENT, \"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.\");\n if (!Ve(e) && -1 !== n.indexOf(\"/\")) throw new j(G.INVALID_ARGUMENT, `Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);\n const s = e.path.child(_t.fromString(n));\n if (!Nt.isDocumentKey(s)) throw new j(G.INVALID_ARGUMENT, `Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${s}' is not because it has an odd number of segments (${s.length}).`);\n return Ut(t, new Nt(s));\n }\n if (n instanceof Zu) return Ut(t, n._key);\n throw new j(G.INVALID_ARGUMENT, `Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${Wu(n)}.`);\n}\n\n/**\n * Validates that the value passed into a disjunctive filter satisfies all\n * array requirements.\n */ function Ch(t, e) {\n if (!Array.isArray(t) || 0 === t.length) throw new j(G.INVALID_ARGUMENT, `Invalid Query. A non-empty array is required for '${e.toString()}' filters.`);\n if (t.length > 10) throw new j(G.INVALID_ARGUMENT, `Invalid Query. '${e.toString()}' filters support a maximum of 10 elements in the value array.`);\n}\n\nfunction Nh(t, e, n) {\n if (!n.isEqual(e)) throw new j(G.INVALID_ARGUMENT, `Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Converts Firestore's internal types to the JavaScript types that we expose\n * to the user.\n *\n * @internal\n */ class xh {\n convertValue(t, e = \"none\") {\n switch (kt(t)) {\n case 0 /* NullValue */ :\n return null;\n\n case 1 /* BooleanValue */ :\n return t.booleanValue;\n\n case 2 /* NumberValue */ :\n return Tt(t.integerValue || t.doubleValue);\n\n case 3 /* TimestampValue */ :\n return this.convertTimestamp(t.timestampValue);\n\n case 4 /* ServerTimestampValue */ :\n return this.convertServerTimestamp(t, e);\n\n case 5 /* StringValue */ :\n return t.stringValue;\n\n case 6 /* BlobValue */ :\n return this.convertBytes(At(t.bytesValue));\n\n case 7 /* RefValue */ :\n return this.convertReference(t.referenceValue);\n\n case 8 /* GeoPointValue */ :\n return this.convertGeoPoint(t.geoPointValue);\n\n case 9 /* ArrayValue */ :\n return this.convertArray(t.arrayValue, e);\n\n case 10 /* ObjectValue */ :\n return this.convertObject(t.mapValue, e);\n\n default:\n throw L();\n }\n }\n convertObject(t, e) {\n const n = {};\n return lt(t.fields, ((t, s) => {\n n[t] = this.convertValue(s, e);\n })), n;\n }\n convertGeoPoint(t) {\n return new Ca(Tt(t.latitude), Tt(t.longitude));\n }\n convertArray(t, e) {\n return (t.values || []).map((t => this.convertValue(t, e)));\n }\n convertServerTimestamp(t, e) {\n switch (e) {\n case \"previous\":\n const n = Pt(t);\n return null == n ? null : this.convertValue(n, e);\n\n case \"estimate\":\n return this.convertTimestamp(bt(t));\n\n default:\n return null;\n }\n }\n convertTimestamp(t) {\n const e = Et(t);\n return new ut(e.seconds, e.nanos);\n }\n convertDocumentKey(t, e) {\n const n = _t.fromString(t);\n U(vs(n));\n const s = new Vt(n.get(1), n.get(3)), i = new Nt(n.popFirst(5));\n return s.isEqual(e) || \n // TODO(b/64130202): Somehow support foreign references.\n $(`Document ${i} contains a document reference within a different database (${s.projectId}/${s.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`), \n i;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Converts custom model object of type T into `DocumentData` by applying the\n * converter if it exists.\n *\n * This function is used when converting user objects to `DocumentData`\n * because we want to provide the user with a more specific error message if\n * their `set()` or fails due to invalid data originating from a `toFirestore()`\n * call.\n */ function kh(t, e, n) {\n let s;\n // Cast to `any` in order to satisfy the union type constraint on\n // toFirestore().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return s = t ? n && (n.merge || n.mergeFields) ? t.toFirestore(e, n) : t.toFirestore(e) : e, \n s;\n}\n\nclass Oh extends xh {\n constructor(t) {\n super(), this.firestore = t;\n }\n convertBytes(t) {\n return new Sa(t);\n }\n convertReference(t) {\n const e = this.convertDocumentKey(t, this.firestore._databaseId);\n return new Zu(this.firestore, /* converter= */ null, e);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A write batch, used to perform multiple writes as a single atomic unit.\n *\n * A `WriteBatch` object can be acquired by calling {@link writeBatch}. It\n * provides methods for adding writes to the write batch. None of the writes\n * will be committed (or visible locally) until {@link WriteBatch.commit} is\n * called.\n */ class Mh {\n /** @hideconstructor */\n constructor(t, e) {\n this._firestore = t, this._commitHandler = e, this._mutations = [], this._committed = !1, \n this._dataReader = Fa(t);\n }\n set(t, e, n) {\n this._verifyNotCommitted();\n const s = $h(t, this._firestore), i = kh(s.converter, e, n), r = Ba(this._dataReader, \"WriteBatch.set\", s._key, i, null !== s.converter, n);\n return this._mutations.push(r.toMutation(s._key, nn.none())), this;\n }\n update(t, e, n, ...s) {\n this._verifyNotCommitted();\n const i = $h(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n let r;\n return r = \"string\" == typeof (e = getModularInstance(e)) || e instanceof va ? Wa(this._dataReader, \"WriteBatch.update\", i._key, e, n, s) : Qa(this._dataReader, \"WriteBatch.update\", i._key, e), \n this._mutations.push(r.toMutation(i._key, nn.exists(!0))), this;\n }\n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `WriteBatch` instance. Used for chaining method calls.\n */ delete(t) {\n this._verifyNotCommitted();\n const e = $h(t, this._firestore);\n return this._mutations = this._mutations.concat(new mn(e._key, nn.none())), this;\n }\n /**\n * Commits all of the writes in this write batch as a single atomic unit.\n *\n * The result of these writes will only be reflected in document reads that\n * occur after the returned promise resolves. If the client is offline, the\n * write fails. If you would like to see local modifications or buffer writes\n * until the client is online, use the full Firestore SDK.\n *\n * @returns A `Promise` resolved once all of the writes in the batch have been\n * successfully written to the backend as an atomic unit (note that it won't\n * resolve while you're offline).\n */ commit() {\n return this._verifyNotCommitted(), this._committed = !0, this._mutations.length > 0 ? this._commitHandler(this._mutations) : Promise.resolve();\n }\n _verifyNotCommitted() {\n if (this._committed) throw new j(G.FAILED_PRECONDITION, \"A write batch can no longer be used after commit() has been called.\");\n }\n}\n\nfunction $h(t, e) {\n if ((t = getModularInstance(t)).firestore !== e) throw new j(G.INVALID_ARGUMENT, \"Provided document reference is from a different Firestore instance.\");\n return t;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// TODO(mrschmidt) Consider using `BaseTransaction` as the base class in the\n// legacy SDK.\n/**\n * A reference to a transaction.\n *\n * The `Transaction` object passed to a transaction's `updateFunction` provides\n * the methods to read and write data within the transaction context. See\n * {@link runTransaction}.\n */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Reads the document referred to by this `DocumentReference`.\n *\n * Note: `getDoc()` attempts to provide up-to-date data when possible by waiting\n * for data from the server, but it may return cached data or fail if you are\n * offline and the server cannot be reached. To specify this behavior, invoke\n * {@link getDocFromCache} or {@link getDocFromServer}.\n *\n * @param reference - The reference of the document to fetch.\n * @returns A Promise resolved with a `DocumentSnapshot` containing the\n * current document contents.\n */\nfunction Fh(t) {\n t = zu(t, Zu);\n const e = zu(t.firestore, la);\n return Ou(_a(e), t._key).then((n => Xh(e, t, n)));\n}\n\nclass Bh extends xh {\n constructor(t) {\n super(), this.firestore = t;\n }\n convertBytes(t) {\n return new Sa(t);\n }\n convertReference(t) {\n const e = this.convertDocumentKey(t, this.firestore._databaseId);\n return new Zu(this.firestore, /* converter= */ null, e);\n }\n}\n\n/**\n * Reads the document referred to by this `DocumentReference` from cache.\n * Returns an error if the document is not currently cached.\n *\n * @returns A `Promise` resolved with a `DocumentSnapshot` containing the\n * current document contents.\n */ function Lh(t) {\n t = zu(t, Zu);\n const e = zu(t.firestore, la), n = _a(e), s = new Bh(e);\n return ku(n, t._key).then((n => new uh(e, s, t._key, n, new ch(null !== n && n.hasLocalMutations, \n /* fromCache= */ !0), t.converter)));\n}\n\n/**\n * Reads the document referred to by this `DocumentReference` from the server.\n * Returns an error if the network is not available.\n *\n * @returns A `Promise` resolved with a `DocumentSnapshot` containing the\n * current document contents.\n */ function Uh(t) {\n t = zu(t, Zu);\n const e = zu(t.firestore, la);\n return Ou(_a(e), t._key, {\n source: \"server\"\n }).then((n => Xh(e, t, n)));\n}\n\n/**\n * Executes the query and returns the results as a `QuerySnapshot`.\n *\n * Note: `getDocs()` attempts to provide up-to-date data when possible by\n * waiting for data from the server, but it may return cached data or fail if\n * you are offline and the server cannot be reached. To specify this behavior,\n * invoke {@link getDocsFromCache} or {@link getDocsFromServer}.\n *\n * @returns A `Promise` that will be resolved with the results of the query.\n */ function qh(t) {\n t = zu(t, ta);\n const e = zu(t.firestore, la), n = _a(e), s = new Bh(e);\n return dh(t._query), $u(n, t._query).then((n => new hh(e, s, t, n)));\n}\n\n/**\n * Executes the query and returns the results as a `QuerySnapshot` from cache.\n * Returns an error if the document is not currently cached.\n *\n * @returns A `Promise` that will be resolved with the results of the query.\n */ function Kh(t) {\n t = zu(t, ta);\n const e = zu(t.firestore, la), n = _a(e), s = new Bh(e);\n return Mu(n, t._query).then((n => new hh(e, s, t, n)));\n}\n\n/**\n * Executes the query and returns the results as a `QuerySnapshot` from the\n * server. Returns an error if the network is not available.\n *\n * @returns A `Promise` that will be resolved with the results of the query.\n */ function Gh(t) {\n t = zu(t, ta);\n const e = zu(t.firestore, la), n = _a(e), s = new Bh(e);\n return $u(n, t._query, {\n source: \"server\"\n }).then((n => new hh(e, s, t, n)));\n}\n\nfunction jh(t, e, n) {\n t = zu(t, Zu);\n const s = zu(t.firestore, la), i = kh(t.converter, e, n);\n return Yh(s, [ Ba(Fa(s), \"setDoc\", t._key, i, null !== t.converter, n).toMutation(t._key, nn.none()) ]);\n}\n\nfunction Qh(t, e, n, ...s) {\n t = zu(t, Zu);\n const i = zu(t.firestore, la), r = Fa(i);\n let o;\n o = \"string\" == typeof (\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n e = getModularInstance(e)) || e instanceof va ? Wa(r, \"updateDoc\", t._key, e, n, s) : Qa(r, \"updateDoc\", t._key, e);\n return Yh(i, [ o.toMutation(t._key, nn.exists(!0)) ]);\n}\n\n/**\n * Deletes the document referred to by the specified `DocumentReference`.\n *\n * @param reference - A reference to the document to delete.\n * @returns A Promise resolved once the document has been successfully\n * deleted from the backend (note that it won't resolve while you're offline).\n */ function Wh(t) {\n return Yh(zu(t.firestore, la), [ new mn(t._key, nn.none()) ]);\n}\n\n/**\n * Add a new document to specified `CollectionReference` with the given data,\n * assigning it a document ID automatically.\n *\n * @param reference - A reference to the collection to add this document to.\n * @param data - An Object containing the data for the new document.\n * @returns A `Promise` resolved with a `DocumentReference` pointing to the\n * newly created document after it has been written to the backend (Note that it\n * won't resolve while you're offline).\n */ function zh(t, e) {\n const n = zu(t.firestore, la), s = ia(t), i = kh(t.converter, e);\n return Yh(n, [ Ba(Fa(t.firestore), \"addDoc\", s._key, i, null !== t.converter, {}).toMutation(s._key, nn.exists(!1)) ]).then((() => s));\n}\n\nfunction Hh(t, ...e) {\n var n, s, i;\n t = getModularInstance(t);\n let r = {\n includeMetadataChanges: !1\n }, o = 0;\n \"object\" != typeof e[o] || ua(e[o]) || (r = e[o], o++);\n const c = {\n includeMetadataChanges: r.includeMetadataChanges\n };\n if (ua(e[o])) {\n const t = e[o];\n e[o] = null === (n = t.next) || void 0 === n ? void 0 : n.bind(t), e[o + 1] = null === (s = t.error) || void 0 === s ? void 0 : s.bind(t), \n e[o + 2] = null === (i = t.complete) || void 0 === i ? void 0 : i.bind(t);\n }\n let u, a, h;\n if (t instanceof Zu) a = zu(t.firestore, la), h = Ae(t._key.path), u = {\n next: n => {\n e[o] && e[o](Xh(a, t, n));\n },\n error: e[o + 1],\n complete: e[o + 2]\n }; else {\n const n = zu(t, ta);\n a = zu(n.firestore, la), h = n._query;\n const s = new Bh(a);\n u = {\n next: t => {\n e[o] && e[o](new hh(a, s, n, t));\n },\n error: e[o + 1],\n complete: e[o + 2]\n }, dh(t._query);\n }\n return function(t, e, n, s) {\n const i = new yu(s), r = new Rc(e, i, n);\n return t.asyncQueue.enqueueAndForget((async () => pc(await Cu(t), r))), () => {\n i.Jc(), t.asyncQueue.enqueueAndForget((async () => Ic(await Cu(t), r)));\n };\n }(_a(a), h, c, u);\n}\n\nfunction Jh(t, e) {\n return Fu(_a(t = zu(t, la)), ua(e) ? e : {\n next: e\n });\n}\n\n/**\n * Locally writes `mutations` on the async queue.\n * @internal\n */ function Yh(t, e) {\n return function(t, e) {\n const n = new Q;\n return t.asyncQueue.enqueueAndForget((async () => Fc(await Du(t), e, n))), n.promise;\n }(_a(t), e);\n}\n\n/**\n * Converts a {@link ViewSnapshot} that contains the single document specified by `ref`\n * to a {@link DocumentSnapshot}.\n */ function Xh(t, e, n) {\n const s = n.docs.get(e._key), i = new Bh(t);\n return new uh(t, i, e._key, s, new ch(n.hasPendingWrites, n.fromCache), e.converter);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A reference to a transaction.\n *\n * The `Transaction` object passed to a transaction's `updateFunction` provides\n * the methods to read and write data within the transaction context. See\n * {@link runTransaction}.\n */ class Zh extends class {\n /** @hideconstructor */\n constructor(t, e) {\n this._firestore = t, this._transaction = e, this._dataReader = Fa(t);\n }\n /**\n * Reads the document referenced by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be read.\n * @returns A `DocumentSnapshot` with the read data.\n */ get(t) {\n const e = $h(t, this._firestore), n = new Oh(this._firestore);\n return this._transaction.lookup([ e._key ]).then((t => {\n if (!t || 1 !== t.length) return L();\n const s = t[0];\n if (s.isFoundDocument()) return new ih(this._firestore, n, s.key, s, e.converter);\n if (s.isNoDocument()) return new ih(this._firestore, n, e._key, null, e.converter);\n throw L();\n }));\n }\n set(t, e, n) {\n const s = $h(t, this._firestore), i = kh(s.converter, e, n), r = Ba(this._dataReader, \"Transaction.set\", s._key, i, null !== s.converter, n);\n return this._transaction.set(s._key, r), this;\n }\n update(t, e, n, ...s) {\n const i = $h(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n let r;\n return r = \"string\" == typeof (e = getModularInstance(e)) || e instanceof va ? Wa(this._dataReader, \"Transaction.update\", i._key, e, n, s) : Qa(this._dataReader, \"Transaction.update\", i._key, e), \n this._transaction.update(i._key, r), this;\n }\n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `Transaction` instance. Used for chaining method calls.\n */ delete(t) {\n const e = $h(t, this._firestore);\n return this._transaction.delete(e._key), this;\n }\n} {\n // This class implements the same logic as the Transaction API in the Lite SDK\n // but is subclassed in order to return its own DocumentSnapshot types.\n /** @hideconstructor */\n constructor(t, e) {\n super(t, e), this._firestore = t;\n }\n /**\n * Reads the document referenced by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be read.\n * @returns A `DocumentSnapshot` with the read data.\n */ get(t) {\n const e = $h(t, this._firestore), n = new Bh(this._firestore);\n return super.get(t).then((t => new uh(this._firestore, n, e._key, t._document, new ch(\n /* hasPendingWrites= */ !1, \n /* fromCache= */ !1), e.converter)));\n }\n}\n\n/**\n * Executes the given `updateFunction` and then attempts to commit the changes\n * applied within the transaction. If any document read within the transaction\n * has changed, Cloud Firestore retries the `updateFunction`. If it fails to\n * commit after 5 attempts, the transaction fails.\n *\n * The maximum number of writes allowed in a single transaction is 500.\n *\n * @param firestore - A reference to the Firestore database to run this\n * transaction against.\n * @param updateFunction - The function to execute within the transaction\n * context.\n * @returns If the transaction completed successfully or was explicitly aborted\n * (the `updateFunction` returned a failed promise), the promise returned by the\n * `updateFunction `is returned here. Otherwise, if the transaction failed, a\n * rejected promise with the corresponding failure error is returned.\n */ function tl(t, e) {\n return Bu(_a(t = zu(t, la)), (n => e(new Zh(t, n))));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns a sentinel for use with {@link @firebase/firestore/lite#(updateDoc:1)} or\n * {@link @firebase/firestore/lite#(setDoc:1)} with `{merge: true}` to mark a field for deletion.\n */ function el() {\n return new La(\"deleteField\");\n}\n\n/**\n * Returns a sentinel used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link @firebase/firestore/lite#(updateDoc:1)} to\n * include a server-generated timestamp in the written data.\n */ function nl() {\n return new qa(\"serverTimestamp\");\n}\n\n/**\n * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link\n * @firebase/firestore/lite#(updateDoc:1)} that tells the server to union the given elements with any array\n * value that already exists on the server. Each specified element that doesn't\n * already exist in the array will be added to the end. If the field being\n * modified is not already an array it will be overwritten with an array\n * containing exactly the specified elements.\n *\n * @param elements - The elements to union into the array.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`.\n */ function sl(...t) {\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new Ka(\"arrayUnion\", t);\n}\n\n/**\n * Returns a special value that can be used with {@link (setDoc:1)} or {@link\n * updateDoc:1} that tells the server to remove the given elements from any\n * array value that already exists on the server. All instances of each element\n * specified will be removed from the array. If the field being modified is not\n * already an array it will be overwritten with an empty array.\n *\n * @param elements - The elements to remove from the array.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`\n */ function il(...t) {\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new Ga(\"arrayRemove\", t);\n}\n\n/**\n * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link\n * @firebase/firestore/lite#(updateDoc:1)} that tells the server to increment the field's current value by\n * the given value.\n *\n * If either the operand or the current field value uses floating point\n * precision, all arithmetic follows IEEE 754 semantics. If both values are\n * integers, values outside of JavaScript's safe number range\n * (`Number.MIN_SAFE_INTEGER` to `Number.MAX_SAFE_INTEGER`) are also subject to\n * precision loss. Furthermore, once processed by the Firestore backend, all\n * integer operations are capped between -2^63 and 2^63-1.\n *\n * If the current field value is not of type `number`, or if the field does not\n * yet exist, the transformation sets the field to the given value.\n *\n * @param n - The value to increment by.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`\n */ function rl(t) {\n return new ja(\"increment\", t);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Creates a write batch, used for performing multiple writes as a single\n * atomic operation. The maximum number of writes allowed in a single {@link WriteBatch}\n * is 500.\n *\n * Unlike transactions, write batches are persisted offline and therefore are\n * preferable when you don't need to condition your writes on read data.\n *\n * @returns A {@link WriteBatch} that can be used to atomically execute multiple\n * writes.\n */ function ol(t) {\n return _a(t = zu(t, la)), new Mh(t, (e => Yh(t, e)));\n}\n\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function cl(t, e) {\n _a(t = zu(t, la));\n const n = \"string\" == typeof e ? function(t) {\n try {\n return JSON.parse(t);\n } catch (t) {\n throw new j(G.INVALID_ARGUMENT, \"Failed to parse JSON:\" + t.message);\n }\n }(e) : e, s = [];\n // PORTING NOTE: We don't return an error if the user has not enabled\n // persistence since `enableIndexeddbPersistence()` can fail on the Web.\n if (Array.isArray(n.indexes)) for (const t of n.indexes) {\n const e = ul(t, \"collectionGroup\"), n = [];\n if (Array.isArray(t.fields)) for (const e of t.fields) {\n const t = eh(\"setIndexConfiguration\", ul(e, \"fieldPath\"));\n \"CONTAINS\" === e.arrayConfig ? n.push(new Xt(t, 2 /* CONTAINS */)) : \"ASCENDING\" === e.order ? n.push(new Xt(t, 0 /* ASCENDING */)) : \"DESCENDING\" === e.order && n.push(new Xt(t, 1 /* DESCENDING */));\n }\n s.push(new Yt(Yt.UNKNOWN_ID, e, n, Zt.empty()));\n }\n // TODO(indexing): Configure indexes\n return Promise.resolve();\n}\n\nfunction ul(t, e) {\n if (\"string\" != typeof t[e]) throw new j(G.INVALID_ARGUMENT, \"Missing string value for: \" + e);\n return t[e];\n}\n\n/**\n * Cloud Firestore\n *\n * @packageDocumentation\n */ !function(t, e = !0) {\n !function(t) {\n N = t;\n }(SDK_VERSION), _registerComponent(new Component(\"firestore\", ((t, {options: n}) => {\n const s = t.getProvider(\"app\").getImmediate(), i = new la(s, new J(t.getProvider(\"auth-internal\")), new tt(t.getProvider(\"app-check-internal\")));\n return n = Object.assign({\n useFetchStreams: e\n }, n), i._setSettings(n), i;\n }), \"PUBLIC\")), registerVersion(D, \"3.4.5\", t), \n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(D, \"3.4.5\", \"esm2017\");\n}();\n\nexport { xh as AbstractUserDataWriter, Sa as Bytes, ha as CACHE_SIZE_UNLIMITED, ea as CollectionReference, Zu as DocumentReference, uh as DocumentSnapshot, va as FieldPath, Da as FieldValue, la as Firestore, j as FirestoreError, Ca as GeoPoint, aa as LoadBundleTask, ta as Query, _h as QueryConstraint, ah as QueryDocumentSnapshot, hh as QuerySnapshot, ch as SnapshotMetadata, ut as Timestamp, Zh as Transaction, Mh as WriteBatch, Vt as _DatabaseId, Nt as _DocumentKey, et as _EmptyAppCheckTokenProvider, z as _EmptyAuthCredentialsProvider, mt as _FieldPath, zu as _cast, q as _debugAssert, yt as _isBase64Available, F as _logWarn, cl as _setIndexConfiguration, Gu as _validateIsNotUsedTogether, zh as addDoc, il as arrayRemove, sl as arrayUnion, pa as clearIndexedDbPersistence, na as collection, sa as collectionGroup, Xu as connectFirestoreEmulator, Wh as deleteDoc, el as deleteField, Ta as disableNetwork, ia as doc, Va as documentId, ma as enableIndexedDbPersistence, ga as enableMultiTabIndexedDbPersistence, Ea as enableNetwork, Vh as endAt, vh as endBefore, _a as ensureFirestoreConfigured, Yh as executeWrite, Fh as getDoc, Lh as getDocFromCache, Uh as getDocFromServer, qh as getDocs, Kh as getDocsFromCache, Gh as getDocsFromServer, da as getFirestore, rl as increment, fa as initializeFirestore, Eh as limit, Th as limitToLast, Ra as loadBundle, Pa as namedQuery, Hh as onSnapshot, Jh as onSnapshotsInSync, ph as orderBy, wh as query, oa as queryEqual, ra as refEqual, tl as runTransaction, nl as serverTimestamp, jh as setDoc, O as setLogLevel, fh as snapshotEqual, Ph as startAfter, Rh as startAt, Aa as terminate, Qh as updateDoc, Ia as waitForPendingWrites, gh as where, ol as writeBatch };\n//# sourceMappingURL=index.esm2017.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0 : style.getPropertyValue(\"display\") == \"none\";\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\nexports.operationReducer = exports.playerReducer = void 0;\n\nvar _player = _interopRequireDefault(require(\"./player\"));\n\nvar _operation = _interopRequireDefault(require(\"./operation\"));\n\nfunction _default() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n return {\n player: (0, _player[\"default\"])(state.player, action),\n operation: (0, _operation[\"default\"])(state.operation, action)\n };\n}\n\nvar playerReducer = _player[\"default\"];\nexports.playerReducer = playerReducer;\nvar operationReducer = _operation[\"default\"];\nexports.operationReducer = operationReducer;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar Fullscreen =\n/*#__PURE__*/\nfunction () {\n function Fullscreen() {\n (0, _classCallCheck2[\"default\"])(this, Fullscreen);\n }\n\n (0, _createClass2[\"default\"])(Fullscreen, [{\n key: \"request\",\n value: function request(elm) {\n if (elm.requestFullscreen) {\n elm.requestFullscreen();\n } else if (elm.webkitRequestFullscreen) {\n elm.webkitRequestFullscreen();\n } else if (elm.mozRequestFullScreen) {\n elm.mozRequestFullScreen();\n } else if (elm.msRequestFullscreen) {\n elm.msRequestFullscreen();\n }\n }\n }, {\n key: \"exit\",\n value: function exit() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(handler) {\n document.addEventListener('fullscreenchange', handler);\n document.addEventListener('webkitfullscreenchange', handler);\n document.addEventListener('mozfullscreenchange', handler);\n document.addEventListener('MSFullscreenChange', handler);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(handler) {\n document.removeEventListener('fullscreenchange', handler);\n document.removeEventListener('webkitfullscreenchange', handler);\n document.removeEventListener('mozfullscreenchange', handler);\n document.removeEventListener('MSFullscreenChange', handler);\n }\n }, {\n key: \"isFullscreen\",\n get: function get() {\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\n }\n }, {\n key: \"enabled\",\n get: function get() {\n return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled;\n }\n }]);\n return Fullscreen;\n}();\n\nvar _default = new Fullscreen();\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n position: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n position: 'left'\n};\n\nvar BigPlayButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(BigPlayButton, _Component);\n\n function BigPlayButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, BigPlayButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(BigPlayButton).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(BigPlayButton, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"handleClick\",\n value: function handleClick() {\n var actions = this.props.actions;\n actions.play();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n player = _this$props.player,\n position = _this$props.position;\n return _react[\"default\"].createElement(\"button\", {\n className: (0, _classnames[\"default\"])('video-react-big-play-button', \"video-react-big-play-button-\".concat(position), this.props.className, {\n 'big-play-button-hide': player.hasStarted || !player.currentSrc\n }),\n type: \"button\",\n \"aria-live\": \"polite\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Play Video\"));\n }\n }]);\n return BigPlayButton;\n}(_react.Component);\n\nexports[\"default\"] = BigPlayButton;\nBigPlayButton.propTypes = propTypes;\nBigPlayButton.defaultProps = defaultProps;\nBigPlayButton.displayName = 'BigPlayButton';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = LoadingSpinner;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction LoadingSpinner(_ref) {\n var player = _ref.player,\n className = _ref.className;\n\n if (player.error) {\n return null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-loading-spinner', className)\n });\n}\n\nLoadingSpinner.propTypes = propTypes;\nLoadingSpinner.displayName = 'LoadingSpinner';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n poster: _propTypes[\"default\"].string,\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction PosterImage(_ref) {\n var poster = _ref.poster,\n player = _ref.player,\n actions = _ref.actions,\n className = _ref.className;\n\n if (!poster || player.hasStarted) {\n return null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-poster', className),\n style: {\n backgroundImage: \"url(\\\"\".concat(poster, \"\\\")\")\n },\n onClick: function onClick() {\n if (player.paused) {\n actions.play();\n }\n }\n });\n}\n\nPosterImage.propTypes = propTypes;\nPosterImage.displayName = 'PosterImage';\nvar _default = PosterImage;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../utils\");\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].any,\n startTime: _propTypes[\"default\"].number,\n loop: _propTypes[\"default\"].bool,\n muted: _propTypes[\"default\"].bool,\n autoPlay: _propTypes[\"default\"].bool,\n playsInline: _propTypes[\"default\"].bool,\n src: _propTypes[\"default\"].string,\n poster: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n preload: _propTypes[\"default\"].oneOf(['auto', 'metadata', 'none']),\n crossOrigin: _propTypes[\"default\"].string,\n onLoadStart: _propTypes[\"default\"].func,\n onWaiting: _propTypes[\"default\"].func,\n onCanPlay: _propTypes[\"default\"].func,\n onCanPlayThrough: _propTypes[\"default\"].func,\n onPlaying: _propTypes[\"default\"].func,\n onEnded: _propTypes[\"default\"].func,\n onSeeking: _propTypes[\"default\"].func,\n onSeeked: _propTypes[\"default\"].func,\n onPlay: _propTypes[\"default\"].func,\n onPause: _propTypes[\"default\"].func,\n onProgress: _propTypes[\"default\"].func,\n onDurationChange: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onSuspend: _propTypes[\"default\"].func,\n onAbort: _propTypes[\"default\"].func,\n onEmptied: _propTypes[\"default\"].func,\n onStalled: _propTypes[\"default\"].func,\n onLoadedMetadata: _propTypes[\"default\"].func,\n onLoadedData: _propTypes[\"default\"].func,\n onTimeUpdate: _propTypes[\"default\"].func,\n onRateChange: _propTypes[\"default\"].func,\n onVolumeChange: _propTypes[\"default\"].func,\n onResize: _propTypes[\"default\"].func\n};\n\nvar Video =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Video, _Component);\n\n function Video(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Video);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Video).call(this, props));\n _this.video = null; // the html5 video\n\n _this.play = _this.play.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.pause = _this.pause.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.seek = _this.seek.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.forward = _this.forward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.replay = _this.replay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.toggleFullscreen = _this.toggleFullscreen.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getProperties = _this.getProperties.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.renderChildren = _this.renderChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadStart = _this.handleLoadStart.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleCanPlay = _this.handleCanPlay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleCanPlayThrough = _this.handleCanPlayThrough.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePlay = _this.handlePlay.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePlaying = _this.handlePlaying.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePause = _this.handlePause.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEnded = _this.handleEnded.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleWaiting = _this.handleWaiting.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSeeking = _this.handleSeeking.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSeeked = _this.handleSeeked.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFullscreenChange = _this.handleFullscreenChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleError = _this.handleError.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSuspend = _this.handleSuspend.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleAbort = _this.handleAbort.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleEmptied = _this.handleEmptied.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleStalled = _this.handleStalled.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadedMetaData = _this.handleLoadedMetaData.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleLoadedData = _this.handleLoadedData.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTimeUpdate = _this.handleTimeUpdate.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleRateChange = _this.handleRateChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleVolumeChange = _this.handleVolumeChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDurationChange = _this.handleDurationChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleProgress = (0, _utils.throttle)(_this.handleProgress.bind((0, _assertThisInitialized2[\"default\"])(_this)), 250);\n _this.handleKeypress = _this.handleKeypress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleTextTrackChange = _this.handleTextTrackChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Video, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.forceUpdate(); // make sure the children can get the video property\n\n if (this.video && this.video.textTracks) {\n this.video.textTracks.onaddtrack = this.handleTextTrackChange;\n this.video.textTracks.onremovetrack = this.handleTextTrackChange;\n }\n } // get all video properties\n\n }, {\n key: \"getProperties\",\n value: function getProperties() {\n var _this2 = this;\n\n if (!this.video) {\n return null;\n }\n\n return _utils.mediaProperties.reduce(function (properties, key) {\n properties[key] = _this2.video[key];\n return properties;\n }, {});\n } // get playback rate\n\n }, {\n key: \"handleTextTrackChange\",\n value: function handleTextTrackChange() {\n var _this$props = this.props,\n actions = _this$props.actions,\n player = _this$props.player;\n\n if (this.video && this.video.textTracks) {\n var activeTextTrack = Array.from(this.video.textTracks).find(function (textTrack) {\n return textTrack.mode === 'showing';\n });\n\n if (activeTextTrack !== player.activeTextTrack) {\n actions.activateTextTrack(activeTextTrack);\n }\n }\n } // play the video\n\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.video.play();\n\n if (promise !== undefined) {\n promise[\"catch\"](function () {}).then(function () {});\n }\n } // pause the video\n\n }, {\n key: \"pause\",\n value: function pause() {\n var promise = this.video.pause();\n\n if (promise !== undefined) {\n promise[\"catch\"](function () {}).then(function () {});\n }\n } // Change the video source and re-load the video:\n\n }, {\n key: \"load\",\n value: function load() {\n this.video.load();\n } // Add a new text track to the video\n\n }, {\n key: \"addTextTrack\",\n value: function addTextTrack() {\n var _this$video;\n\n (_this$video = this.video).addTextTrack.apply(_this$video, arguments);\n } // Check if your browser can play different types of video:\n\n }, {\n key: \"canPlayType\",\n value: function canPlayType() {\n var _this$video2;\n\n (_this$video2 = this.video).canPlayType.apply(_this$video2, arguments);\n } // toggle play\n\n }, {\n key: \"togglePlay\",\n value: function togglePlay() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n } // seek video by time\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n try {\n this.video.currentTime = time;\n } catch (e) {// console.log(e, 'Video is not ready.')\n }\n } // jump forward x seconds\n\n }, {\n key: \"forward\",\n value: function forward(seconds) {\n this.seek(this.video.currentTime + seconds);\n } // jump back x seconds\n\n }, {\n key: \"replay\",\n value: function replay(seconds) {\n this.forward(-seconds);\n } // enter or exist full screen\n\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions;\n actions.toggleFullscreen(player);\n } // Fired when the user agent\n // begins looking for media data\n\n }, {\n key: \"handleLoadStart\",\n value: function handleLoadStart() {\n var _this$props3 = this.props,\n actions = _this$props3.actions,\n onLoadStart = _this$props3.onLoadStart;\n actions.handleLoadStart(this.getProperties());\n\n if (onLoadStart) {\n onLoadStart.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handleCanPlay\",\n value: function handleCanPlay() {\n var _this$props4 = this.props,\n actions = _this$props4.actions,\n onCanPlay = _this$props4.onCanPlay;\n actions.handleCanPlay(this.getProperties());\n\n if (onCanPlay) {\n onCanPlay.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handleCanPlayThrough\",\n value: function handleCanPlayThrough() {\n var _this$props5 = this.props,\n actions = _this$props5.actions,\n onCanPlayThrough = _this$props5.onCanPlayThrough;\n actions.handleCanPlayThrough(this.getProperties());\n\n if (onCanPlayThrough) {\n onCanPlayThrough.apply(void 0, arguments);\n }\n } // A handler for events that\n // signal that waiting has ended\n\n }, {\n key: \"handlePlaying\",\n value: function handlePlaying() {\n var _this$props6 = this.props,\n actions = _this$props6.actions,\n onPlaying = _this$props6.onPlaying;\n actions.handlePlaying(this.getProperties());\n\n if (onPlaying) {\n onPlaying.apply(void 0, arguments);\n }\n } // Fired whenever the media has been started\n\n }, {\n key: \"handlePlay\",\n value: function handlePlay() {\n var _this$props7 = this.props,\n actions = _this$props7.actions,\n onPlay = _this$props7.onPlay;\n actions.handlePlay(this.getProperties());\n\n if (onPlay) {\n onPlay.apply(void 0, arguments);\n }\n } // Fired whenever the media has been paused\n\n }, {\n key: \"handlePause\",\n value: function handlePause() {\n var _this$props8 = this.props,\n actions = _this$props8.actions,\n onPause = _this$props8.onPause;\n actions.handlePause(this.getProperties());\n\n if (onPause) {\n onPause.apply(void 0, arguments);\n }\n } // Fired when the duration of\n // the media resource is first known or changed\n\n }, {\n key: \"handleDurationChange\",\n value: function handleDurationChange() {\n var _this$props9 = this.props,\n actions = _this$props9.actions,\n onDurationChange = _this$props9.onDurationChange;\n actions.handleDurationChange(this.getProperties());\n\n if (onDurationChange) {\n onDurationChange.apply(void 0, arguments);\n }\n } // Fired while the user agent\n // is downloading media data\n\n }, {\n key: \"handleProgress\",\n value: function handleProgress() {\n var _this$props10 = this.props,\n actions = _this$props10.actions,\n onProgress = _this$props10.onProgress;\n\n if (this.video) {\n actions.handleProgressChange(this.getProperties());\n }\n\n if (onProgress) {\n onProgress.apply(void 0, arguments);\n }\n } // Fired when the end of the media resource\n // is reached (currentTime == duration)\n\n }, {\n key: \"handleEnded\",\n value: function handleEnded() {\n var _this$props11 = this.props,\n loop = _this$props11.loop,\n player = _this$props11.player,\n actions = _this$props11.actions,\n onEnded = _this$props11.onEnded;\n\n if (loop) {\n this.seek(0);\n this.play();\n } else if (!player.paused) {\n this.pause();\n }\n\n actions.handleEnd(this.getProperties());\n\n if (onEnded) {\n onEnded.apply(void 0, arguments);\n }\n } // Fired whenever the media begins waiting\n\n }, {\n key: \"handleWaiting\",\n value: function handleWaiting() {\n var _this$props12 = this.props,\n actions = _this$props12.actions,\n onWaiting = _this$props12.onWaiting;\n actions.handleWaiting(this.getProperties());\n\n if (onWaiting) {\n onWaiting.apply(void 0, arguments);\n }\n } // Fired whenever the player\n // is jumping to a new time\n\n }, {\n key: \"handleSeeking\",\n value: function handleSeeking() {\n var _this$props13 = this.props,\n actions = _this$props13.actions,\n onSeeking = _this$props13.onSeeking;\n actions.handleSeeking(this.getProperties());\n\n if (onSeeking) {\n onSeeking.apply(void 0, arguments);\n }\n } // Fired when the player has\n // finished jumping to a new time\n\n }, {\n key: \"handleSeeked\",\n value: function handleSeeked() {\n var _this$props14 = this.props,\n actions = _this$props14.actions,\n onSeeked = _this$props14.onSeeked;\n actions.handleSeeked(this.getProperties());\n\n if (onSeeked) {\n onSeeked.apply(void 0, arguments);\n }\n } // Handle Fullscreen Change\n\n }, {\n key: \"handleFullscreenChange\",\n value: function handleFullscreenChange() {} // Fires when the browser is\n // intentionally not getting media data\n\n }, {\n key: \"handleSuspend\",\n value: function handleSuspend() {\n var _this$props15 = this.props,\n actions = _this$props15.actions,\n onSuspend = _this$props15.onSuspend;\n actions.handleSuspend(this.getProperties());\n\n if (onSuspend) {\n onSuspend.apply(void 0, arguments);\n }\n } // Fires when the loading of an audio/video is aborted\n\n }, {\n key: \"handleAbort\",\n value: function handleAbort() {\n var _this$props16 = this.props,\n actions = _this$props16.actions,\n onAbort = _this$props16.onAbort;\n actions.handleAbort(this.getProperties());\n\n if (onAbort) {\n onAbort.apply(void 0, arguments);\n }\n } // Fires when the current playlist is empty\n\n }, {\n key: \"handleEmptied\",\n value: function handleEmptied() {\n var _this$props17 = this.props,\n actions = _this$props17.actions,\n onEmptied = _this$props17.onEmptied;\n actions.handleEmptied(this.getProperties());\n\n if (onEmptied) {\n onEmptied.apply(void 0, arguments);\n }\n } // Fires when the browser is trying to\n // get media data, but data is not available\n\n }, {\n key: \"handleStalled\",\n value: function handleStalled() {\n var _this$props18 = this.props,\n actions = _this$props18.actions,\n onStalled = _this$props18.onStalled;\n actions.handleStalled(this.getProperties());\n\n if (onStalled) {\n onStalled.apply(void 0, arguments);\n }\n } // Fires when the browser has loaded\n // meta data for the audio/video\n\n }, {\n key: \"handleLoadedMetaData\",\n value: function handleLoadedMetaData() {\n var _this$props19 = this.props,\n actions = _this$props19.actions,\n onLoadedMetadata = _this$props19.onLoadedMetadata,\n startTime = _this$props19.startTime;\n\n if (startTime && startTime > 0) {\n this.video.currentTime = startTime;\n }\n\n actions.handleLoadedMetaData(this.getProperties());\n\n if (onLoadedMetadata) {\n onLoadedMetadata.apply(void 0, arguments);\n }\n } // Fires when the browser has loaded\n // the current frame of the audio/video\n\n }, {\n key: \"handleLoadedData\",\n value: function handleLoadedData() {\n var _this$props20 = this.props,\n actions = _this$props20.actions,\n onLoadedData = _this$props20.onLoadedData;\n actions.handleLoadedData(this.getProperties());\n\n if (onLoadedData) {\n onLoadedData.apply(void 0, arguments);\n }\n } // Fires when the current\n // playback position has changed\n\n }, {\n key: \"handleTimeUpdate\",\n value: function handleTimeUpdate() {\n var _this$props21 = this.props,\n actions = _this$props21.actions,\n onTimeUpdate = _this$props21.onTimeUpdate;\n actions.handleTimeUpdate(this.getProperties());\n\n if (onTimeUpdate) {\n onTimeUpdate.apply(void 0, arguments);\n }\n }\n /**\n * Fires when the playing speed of the audio/video is changed\n */\n\n }, {\n key: \"handleRateChange\",\n value: function handleRateChange() {\n var _this$props22 = this.props,\n actions = _this$props22.actions,\n onRateChange = _this$props22.onRateChange;\n actions.handleRateChange(this.getProperties());\n\n if (onRateChange) {\n onRateChange.apply(void 0, arguments);\n }\n } // Fires when the volume has been changed\n\n }, {\n key: \"handleVolumeChange\",\n value: function handleVolumeChange() {\n var _this$props23 = this.props,\n actions = _this$props23.actions,\n onVolumeChange = _this$props23.onVolumeChange;\n actions.handleVolumeChange(this.getProperties());\n\n if (onVolumeChange) {\n onVolumeChange.apply(void 0, arguments);\n }\n } // Fires when an error occurred\n // during the loading of an audio/video\n\n }, {\n key: \"handleError\",\n value: function handleError() {\n var _this$props24 = this.props,\n actions = _this$props24.actions,\n onError = _this$props24.onError;\n actions.handleError(this.getProperties());\n\n if (onError) {\n onError.apply(void 0, arguments);\n }\n }\n }, {\n key: \"handleResize\",\n value: function handleResize() {\n var _this$props25 = this.props,\n actions = _this$props25.actions,\n onResize = _this$props25.onResize;\n actions.handleResize(this.getProperties());\n\n if (onResize) {\n onResize.apply(void 0, arguments);\n }\n }\n }, {\n key: \"handleKeypress\",\n value: function handleKeypress() {}\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var _this3 = this;\n\n var props = (0, _objectSpread2[\"default\"])({}, this.props, {\n video: this.video\n }); // to make sure the children can get video property\n\n if (!this.video) {\n return null;\n } // only keep <source />, <track />, <MyComponent isVideoChild /> elements\n\n\n return _react[\"default\"].Children.toArray(this.props.children).filter(_utils.isVideoChild).map(function (c) {\n var cprops;\n\n if (typeof c.type === 'string') {\n // add onError to <source />\n if (c.type === 'source') {\n cprops = (0, _objectSpread2[\"default\"])({}, c.props);\n var preOnError = cprops.onError;\n\n cprops.onError = function () {\n if (preOnError) {\n preOnError.apply(void 0, arguments);\n }\n\n _this3.handleError.apply(_this3, arguments);\n };\n }\n } else {\n cprops = props;\n }\n\n return _react[\"default\"].cloneElement(c, cprops);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props26 = this.props,\n loop = _this$props26.loop,\n poster = _this$props26.poster,\n preload = _this$props26.preload,\n src = _this$props26.src,\n autoPlay = _this$props26.autoPlay,\n playsInline = _this$props26.playsInline,\n muted = _this$props26.muted,\n crossOrigin = _this$props26.crossOrigin,\n videoId = _this$props26.videoId;\n return _react[\"default\"].createElement(\"video\", {\n className: (0, _classnames[\"default\"])('video-react-video', this.props.className),\n id: videoId,\n crossOrigin: crossOrigin,\n ref: function ref(c) {\n _this4.video = c;\n },\n muted: muted,\n preload: preload,\n loop: loop,\n playsInline: playsInline,\n autoPlay: autoPlay,\n poster: poster,\n src: src,\n onLoadStart: this.handleLoadStart,\n onWaiting: this.handleWaiting,\n onCanPlay: this.handleCanPlay,\n onCanPlayThrough: this.handleCanPlayThrough,\n onPlaying: this.handlePlaying,\n onEnded: this.handleEnded,\n onSeeking: this.handleSeeking,\n onSeeked: this.handleSeeked,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onProgress: this.handleProgress,\n onDurationChange: this.handleDurationChange,\n onError: this.handleError,\n onSuspend: this.handleSuspend,\n onAbort: this.handleAbort,\n onEmptied: this.handleEmptied,\n onStalled: this.handleStalled,\n onLoadedMetadata: this.handleLoadedMetaData,\n onLoadedData: this.handleLoadedData,\n onTimeUpdate: this.handleTimeUpdate,\n onRateChange: this.handleRateChange,\n onVolumeChange: this.handleVolumeChange,\n tabIndex: \"-1\"\n }, this.renderChildren());\n }\n }, {\n key: \"playbackRate\",\n get: function get() {\n return this.video.playbackRate;\n } // set playback rate\n // speed of video\n ,\n set: function set(rate) {\n this.video.playbackRate = rate;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this.video.muted;\n },\n set: function set(val) {\n this.video.muted = val;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this.video.volume;\n },\n set: function set(val) {\n if (val > 1) {\n val = 1;\n }\n\n if (val < 0) {\n val = 0;\n }\n\n this.video.volume = val;\n } // video width\n\n }, {\n key: \"videoWidth\",\n get: function get() {\n return this.video.videoWidth;\n } // video height\n\n }, {\n key: \"videoHeight\",\n get: function get() {\n return this.video.videoHeight;\n }\n }]);\n return Video;\n}(_react.Component);\n\nexports[\"default\"] = Video;\nVideo.propTypes = propTypes;\nVideo.displayName = 'Video';","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n manager: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar Bezel =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Bezel, _Component);\n\n function Bezel(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Bezel);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Bezel).call(this, props, context));\n _this.timer = null;\n props.manager.subscribeToOperationStateChange(_this.handleStateChange.bind((0, _assertThisInitialized2[\"default\"])(_this)));\n _this.state = {\n hidden: true,\n operation: {}\n };\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Bezel, [{\n key: \"handleStateChange\",\n value: function handleStateChange(state, prevState) {\n var _this2 = this;\n\n if (state.count !== prevState.count && state.operation.source === 'shortcut') {\n if (this.timer) {\n // previous animation is not finished\n clearTimeout(this.timer); // cancel it\n\n this.timer = null;\n } // show it\n // update operation\n\n\n this.setState({\n hidden: false,\n count: state.count,\n operation: state.operation\n }); // hide it after 0.5s\n\n this.timer = setTimeout(function () {\n _this2.setState({\n hidden: true\n });\n\n _this2.timer = null;\n }, 500);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n // only displays for shortcut so far\n if (this.state.operation.source !== 'shortcut') {\n return null;\n }\n\n var style = this.state.hidden ? {\n display: 'none'\n } : null;\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-bezel': true,\n 'video-react-bezel-animation': this.state.count % 2 === 0,\n 'video-react-bezel-animation-alt': this.state.count % 2 === 1\n }, this.props.className),\n style: style,\n role: \"status\",\n \"aria-label\": this.state.operation.action\n }, _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-bezel-icon', \"video-react-bezel-icon-\".concat(this.state.operation.action))\n }));\n }\n }]);\n return Bezel;\n}(_react.Component);\n\nexports[\"default\"] = Bezel;\nBezel.propTypes = propTypes;\nBezel.displayName = 'Bezel';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _dom = require(\"../utils/dom\");\n\nvar propTypes = {\n clickable: _propTypes[\"default\"].bool,\n dblclickable: _propTypes[\"default\"].bool,\n manager: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n shortcuts: _propTypes[\"default\"].array\n};\nvar defaultProps = {\n clickable: true,\n dblclickable: true\n};\n\nvar Shortcut =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Shortcut, _Component);\n\n function Shortcut(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Shortcut);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Shortcut).call(this, props, context));\n _this.defaultShortcuts = [{\n keyCode: 32,\n // spacebar\n handle: _this.togglePlay\n }, {\n keyCode: 75,\n // k\n handle: _this.togglePlay\n }, {\n keyCode: 70,\n // f\n handle: _this.toggleFullscreen\n }, {\n keyCode: 37,\n // Left arrow\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.replay(5, {\n action: 'replay-5',\n source: 'shortcut'\n }); // Go back 5 seconds\n }\n }, {\n keyCode: 74,\n // j\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.replay(10, {\n action: 'replay-10',\n source: 'shortcut'\n }); // Go back 10 seconds\n }\n }, {\n keyCode: 39,\n // Right arrow\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.forward(5, {\n action: 'forward-5',\n source: 'shortcut'\n }); // Go forward 5 seconds\n }\n }, {\n keyCode: 76,\n // l\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.forward(10, {\n action: 'forward-10',\n source: 'shortcut'\n }); // Go forward 10 seconds\n }\n }, {\n keyCode: 36,\n // Home\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n }\n\n actions.seek(0); // Go to beginning of video\n }\n }, {\n keyCode: 35,\n // End\n handle: function handle(player, actions) {\n if (!player.hasStarted) {\n return;\n } // Go to end of video\n\n\n actions.seek(player.duration);\n }\n }, {\n keyCode: 38,\n // Up arrow\n handle: function handle(player, actions) {\n // Increase volume 5%\n var v = player.volume + 0.05;\n\n if (v > 1) {\n v = 1;\n }\n\n actions.changeVolume(v, {\n action: 'volume-up',\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 40,\n // Down arrow\n handle: function handle(player, actions) {\n // Decrease volume 5%\n var v = player.volume - 0.05;\n\n if (v < 0) {\n v = 0;\n }\n\n var action = v > 0 ? 'volume-down' : 'volume-off';\n actions.changeVolume(v, {\n action: action,\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 190,\n // Shift + >\n shift: true,\n handle: function handle(player, actions) {\n // Increase speed\n var playbackRate = player.playbackRate;\n\n if (playbackRate >= 1.5) {\n playbackRate = 2;\n } else if (playbackRate >= 1.25) {\n playbackRate = 1.5;\n } else if (playbackRate >= 1.0) {\n playbackRate = 1.25;\n } else if (playbackRate >= 0.5) {\n playbackRate = 1.0;\n } else if (playbackRate >= 0.25) {\n playbackRate = 0.5;\n } else if (playbackRate >= 0) {\n playbackRate = 0.25;\n }\n\n actions.changeRate(playbackRate, {\n action: 'fast-forward',\n source: 'shortcut'\n });\n }\n }, {\n keyCode: 188,\n // Shift + <\n shift: true,\n handle: function handle(player, actions) {\n // Decrease speed\n var playbackRate = player.playbackRate;\n\n if (playbackRate <= 0.5) {\n playbackRate = 0.25;\n } else if (playbackRate <= 1.0) {\n playbackRate = 0.5;\n } else if (playbackRate <= 1.25) {\n playbackRate = 1.0;\n } else if (playbackRate <= 1.5) {\n playbackRate = 1.25;\n } else if (playbackRate <= 2) {\n playbackRate = 1.5;\n }\n\n actions.changeRate(playbackRate, {\n action: 'fast-rewind',\n source: 'shortcut'\n });\n }\n }];\n _this.shortcuts = (0, _toConsumableArray2[\"default\"])(_this.defaultShortcuts);\n _this.mergeShortcuts = _this.mergeShortcuts.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleDoubleClick = _this.handleDoubleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Shortcut, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mergeShortcuts();\n document.addEventListener('keydown', this.handleKeyPress);\n document.addEventListener('click', this.handleClick);\n document.addEventListener('dblclick', this.handleDoubleClick);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.shortcuts !== this.props.shortcuts) {\n this.mergeShortcuts();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyPress);\n document.removeEventListener('click', this.handleClick);\n document.removeEventListener('dblclick', this.handleDoubleClick);\n } // merge the shortcuts from props\n\n }, {\n key: \"mergeShortcuts\",\n value: function mergeShortcuts() {\n var getShortcutKey = function getShortcutKey(_ref) {\n var _ref$keyCode = _ref.keyCode,\n keyCode = _ref$keyCode === void 0 ? 0 : _ref$keyCode,\n _ref$ctrl = _ref.ctrl,\n ctrl = _ref$ctrl === void 0 ? false : _ref$ctrl,\n _ref$shift = _ref.shift,\n shift = _ref$shift === void 0 ? false : _ref$shift,\n _ref$alt = _ref.alt,\n alt = _ref$alt === void 0 ? false : _ref$alt;\n return \"\".concat(keyCode, \":\").concat(ctrl, \":\").concat(shift, \":\").concat(alt);\n };\n\n var defaultShortcuts = this.defaultShortcuts.reduce(function (shortcuts, shortcut) {\n return Object.assign(shortcuts, (0, _defineProperty2[\"default\"])({}, getShortcutKey(shortcut), shortcut));\n }, {});\n var mergedShortcuts = (this.props.shortcuts || []).reduce(function (shortcuts, shortcut) {\n var keyCode = shortcut.keyCode,\n handle = shortcut.handle;\n\n if (keyCode && typeof handle === 'function') {\n return Object.assign(shortcuts, (0, _defineProperty2[\"default\"])({}, getShortcutKey(shortcut), shortcut));\n }\n\n return shortcuts;\n }, defaultShortcuts);\n\n var gradeShortcut = function gradeShortcut(s) {\n var score = 0;\n var ps = ['ctrl', 'shift', 'alt'];\n ps.forEach(function (key) {\n if (s[key]) {\n score++;\n }\n });\n return score;\n };\n\n this.shortcuts = Object.keys(mergedShortcuts).map(function (key) {\n return mergedShortcuts[key];\n }).sort(function (a, b) {\n return gradeShortcut(b) - gradeShortcut(a);\n });\n }\n }, {\n key: \"togglePlay\",\n value: function togglePlay(player, actions) {\n if (player.paused) {\n actions.play({\n action: 'play',\n source: 'shortcut'\n });\n } else {\n actions.pause({\n action: 'pause',\n source: 'shortcut'\n });\n }\n }\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen(player, actions) {\n actions.toggleFullscreen(player);\n }\n }, {\n key: \"handleKeyPress\",\n value: function handleKeyPress(e) {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n\n if (!player.isActive) {\n return;\n }\n\n if (document.activeElement && ((0, _dom.hasClass)(document.activeElement, 'video-react-control') || (0, _dom.hasClass)(document.activeElement, 'video-react-menu-button-active') // || hasClass(document.activeElement, 'video-react-slider')\n || (0, _dom.hasClass)(document.activeElement, 'video-react-big-play-button'))) {\n return;\n }\n\n var keyCode = e.keyCode || e.which;\n var ctrl = e.ctrlKey || e.metaKey;\n var shift = e.shiftKey;\n var alt = e.altKey;\n var shortcut = this.shortcuts.filter(function (s) {\n if (!s.keyCode || s.keyCode - keyCode !== 0) {\n return false;\n }\n\n if (s.ctrl !== undefined && s.ctrl !== ctrl || s.shift !== undefined && s.shift !== shift || s.alt !== undefined && s.alt !== alt) {\n return false;\n }\n\n return true;\n })[0];\n\n if (shortcut) {\n shortcut.handle(player, actions);\n e.preventDefault();\n }\n } // only if player is active and player is ready\n\n }, {\n key: \"canBeClicked\",\n value: function canBeClicked(player, e) {\n if (!player.isActive || e.target.nodeName !== 'VIDEO' || player.readyState !== 4) {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(e) {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions,\n clickable = _this$props2.clickable;\n\n if (!this.canBeClicked(player, e) || !clickable) {\n return;\n }\n\n this.togglePlay(player, actions); // e.preventDefault();\n }\n }, {\n key: \"handleDoubleClick\",\n value: function handleDoubleClick(e) {\n var _this$props3 = this.props,\n player = _this$props3.player,\n actions = _this$props3.actions,\n dblclickable = _this$props3.dblclickable;\n\n if (!this.canBeClicked(player, e) || !dblclickable) {\n return;\n }\n\n this.toggleFullscreen(player, actions); // e.preventDefault();\n } // this component dose not render anything\n // it's just for the key down event\n\n }, {\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n return Shortcut;\n}(_react.Component);\n\nexports[\"default\"] = Shortcut;\nShortcut.propTypes = propTypes;\nShortcut.defaultProps = defaultProps;\nShortcut.displayName = 'Shortcut';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ProgressControl = _interopRequireDefault(require(\"./ProgressControl\"));\n\nvar _PlayToggle = _interopRequireDefault(require(\"./PlayToggle\"));\n\nvar _ForwardControl = _interopRequireDefault(require(\"./ForwardControl\"));\n\nvar _ReplayControl = _interopRequireDefault(require(\"./ReplayControl\"));\n\nvar _FullscreenToggle = _interopRequireDefault(require(\"./FullscreenToggle\"));\n\nvar _RemainingTimeDisplay = _interopRequireDefault(require(\"../time-controls/RemainingTimeDisplay\"));\n\nvar _CurrentTimeDisplay = _interopRequireDefault(require(\"../time-controls/CurrentTimeDisplay\"));\n\nvar _DurationDisplay = _interopRequireDefault(require(\"../time-controls/DurationDisplay\"));\n\nvar _TimeDivider = _interopRequireDefault(require(\"../time-controls/TimeDivider\"));\n\nvar _VolumeMenuButton = _interopRequireDefault(require(\"./VolumeMenuButton\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./PlaybackRateMenuButton\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n children: _propTypes[\"default\"].any,\n autoHide: _propTypes[\"default\"].bool,\n autoHideTime: _propTypes[\"default\"].number,\n // used in Player\n disableDefaultControls: _propTypes[\"default\"].bool,\n disableCompletely: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n autoHide: true,\n disableCompletely: false\n};\n\nvar ControlBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ControlBar, _Component);\n\n function ControlBar(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ControlBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ControlBar).call(this, props));\n _this.getDefaultChildren = _this.getDefaultChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getFullChildren = _this.getFullChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ControlBar, [{\n key: \"getDefaultChildren\",\n value: function getDefaultChildren() {\n return [_react[\"default\"].createElement(_PlayToggle[\"default\"], {\n key: \"play-toggle\",\n order: 1\n }), _react[\"default\"].createElement(_VolumeMenuButton[\"default\"], {\n key: \"volume-menu-button\",\n order: 4\n }), _react[\"default\"].createElement(_CurrentTimeDisplay[\"default\"], {\n key: \"current-time-display\",\n order: 5.1\n }), _react[\"default\"].createElement(_TimeDivider[\"default\"], {\n key: \"time-divider\",\n order: 5.2\n }), _react[\"default\"].createElement(_DurationDisplay[\"default\"], {\n key: \"duration-display\",\n order: 5.3\n }), _react[\"default\"].createElement(_ProgressControl[\"default\"], {\n key: \"progress-control\",\n order: 6\n }), _react[\"default\"].createElement(_FullscreenToggle[\"default\"], {\n key: \"fullscreen-toggle\",\n order: 8\n })];\n }\n }, {\n key: \"getFullChildren\",\n value: function getFullChildren() {\n return [_react[\"default\"].createElement(_PlayToggle[\"default\"], {\n key: \"play-toggle\",\n order: 1\n }), _react[\"default\"].createElement(_ReplayControl[\"default\"], {\n key: \"replay-control\",\n order: 2\n }), _react[\"default\"].createElement(_ForwardControl[\"default\"], {\n key: \"forward-control\",\n order: 3\n }), _react[\"default\"].createElement(_VolumeMenuButton[\"default\"], {\n key: \"volume-menu-button\",\n order: 4\n }), _react[\"default\"].createElement(_CurrentTimeDisplay[\"default\"], {\n key: \"current-time-display\",\n order: 5\n }), _react[\"default\"].createElement(_TimeDivider[\"default\"], {\n key: \"time-divider\",\n order: 6\n }), _react[\"default\"].createElement(_DurationDisplay[\"default\"], {\n key: \"duration-display\",\n order: 7\n }), _react[\"default\"].createElement(_ProgressControl[\"default\"], {\n key: \"progress-control\",\n order: 8\n }), _react[\"default\"].createElement(_RemainingTimeDisplay[\"default\"], {\n key: \"remaining-time-display\",\n order: 9\n }), _react[\"default\"].createElement(_PlaybackRateMenuButton[\"default\"], {\n rates: [1, 1.25, 1.5, 2],\n key: \"playback-rate\",\n order: 10\n }), _react[\"default\"].createElement(_FullscreenToggle[\"default\"], {\n key: \"fullscreen-toggle\",\n order: 11\n })];\n }\n }, {\n key: \"getChildren\",\n value: function getChildren() {\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n var defaultChildren = this.props.disableDefaultControls ? [] : this.getDefaultChildren();\n var _this$props = this.props,\n className = _this$props.className,\n parentProps = (0, _objectWithoutProperties2[\"default\"])(_this$props, [\"className\"]); // remove className\n\n return (0, _utils.mergeAndSortChildren)(defaultChildren, children, parentProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n autoHide = _this$props2.autoHide,\n className = _this$props2.className,\n disableCompletely = _this$props2.disableCompletely;\n var children = this.getChildren();\n return disableCompletely ? null : _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-control-bar', {\n 'video-react-control-bar-auto-hide': autoHide\n }, className)\n }, children);\n }\n }]);\n return ControlBar;\n}(_react.Component);\n\nexports[\"default\"] = ControlBar;\nControlBar.propTypes = propTypes;\nControlBar.defaultProps = defaultProps;\nControlBar.displayName = 'ControlBar';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar Dom = _interopRequireWildcard(require(\"../../utils/dom\"));\n\nvar _SeekBar = _interopRequireDefault(require(\"./SeekBar\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar ProgressControl =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ProgressControl, _Component);\n\n function ProgressControl(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ProgressControl);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ProgressControl).call(this, props, context));\n _this.state = {\n mouseTime: {\n time: null,\n position: 0\n }\n };\n _this.handleMouseMoveThrottle = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ProgressControl, [{\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n if (!event.pageX) {\n return;\n }\n\n var duration = this.props.player.duration;\n var node = this.seekBar;\n var newTime = Dom.getPointerPosition(node, event).x * duration;\n var position = event.pageX - Dom.findElPosition(node).left;\n this.setState({\n mouseTime: {\n time: newTime,\n position: position\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var className = this.props.className;\n return _react[\"default\"].createElement(\"div\", {\n onMouseMove: this.handleMouseMoveThrottle,\n className: (0, _classnames[\"default\"])('video-react-progress-control video-react-control', className)\n }, _react[\"default\"].createElement(_SeekBar[\"default\"], (0, _extends2[\"default\"])({\n mouseTime: this.state.mouseTime,\n ref: function ref(c) {\n _this2.seekBar = c;\n }\n }, this.props)));\n }\n }]);\n return ProgressControl;\n}(_react.Component);\n\nexports[\"default\"] = ProgressControl;\nProgressControl.propTypes = propTypes;\nProgressControl.displayName = 'ProgressControl';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Slider = _interopRequireDefault(require(\"../Slider\"));\n\nvar _PlayProgressBar = _interopRequireDefault(require(\"./PlayProgressBar\"));\n\nvar _LoadProgressBar = _interopRequireDefault(require(\"./LoadProgressBar\"));\n\nvar _MouseTimeDisplay = _interopRequireDefault(require(\"./MouseTimeDisplay\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n mouseTime: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar SeekBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(SeekBar, _Component);\n\n function SeekBar(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, SeekBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(SeekBar).call(this, props, context));\n _this.getPercent = _this.getPercent.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getNewTime = _this.getNewTime.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseUp = _this.handleMouseUp.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(SeekBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {}\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n\n }, {\n key: \"getPercent\",\n value: function getPercent() {\n var _this$props$player = this.props.player,\n currentTime = _this$props$player.currentTime,\n seekingTime = _this$props$player.seekingTime,\n duration = _this$props$player.duration;\n var time = seekingTime || currentTime;\n var percent = time / duration;\n return percent >= 1 ? 1 : percent;\n }\n }, {\n key: \"getNewTime\",\n value: function getNewTime(event) {\n var duration = this.props.player.duration;\n var distance = this.slider.calculateDistance(event);\n var newTime = distance * duration; // Don't let video end while scrubbing.\n\n return newTime === duration ? newTime - 0.1 : newTime;\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown() {}\n }, {\n key: \"handleMouseUp\",\n value: function handleMouseUp(event) {\n var actions = this.props.actions;\n var newTime = this.getNewTime(event); // Set new time (tell video to seek to new time)\n\n actions.seek(newTime);\n actions.handleEndSeeking(newTime);\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var actions = this.props.actions;\n var newTime = this.getNewTime(event);\n actions.handleSeekingTime(newTime);\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n var actions = this.props.actions;\n actions.forward(5);\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n var actions = this.props.actions;\n actions.replay(5);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n _this$props$player2 = _this$props.player,\n currentTime = _this$props$player2.currentTime,\n seekingTime = _this$props$player2.seekingTime,\n duration = _this$props$player2.duration,\n buffered = _this$props$player2.buffered,\n mouseTime = _this$props.mouseTime;\n var time = seekingTime || currentTime;\n return _react[\"default\"].createElement(_Slider[\"default\"], {\n ref: function ref(input) {\n _this2.slider = input;\n },\n label: \"video progress bar\",\n className: (0, _classnames[\"default\"])('video-react-progress-holder', this.props.className),\n valuenow: (this.getPercent() * 100).toFixed(2),\n valuetext: (0, _utils.formatTime)(time, duration),\n onMouseDown: this.handleMouseDown,\n onMouseMove: this.handleMouseMove,\n onMouseUp: this.handleMouseUp,\n getPercent: this.getPercent,\n stepForward: this.stepForward,\n stepBack: this.stepBack\n }, _react[\"default\"].createElement(_LoadProgressBar[\"default\"], {\n buffered: buffered,\n currentTime: time,\n duration: duration\n }), _react[\"default\"].createElement(_MouseTimeDisplay[\"default\"], {\n duration: duration,\n mouseTime: mouseTime\n }), _react[\"default\"].createElement(_PlayProgressBar[\"default\"], {\n currentTime: time,\n duration: duration\n }));\n }\n }]);\n return SeekBar;\n}(_react.Component);\n\nexports[\"default\"] = SeekBar;\nSeekBar.propTypes = propTypes;\nSeekBar.displayName = 'SeekBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = PlayProgressBar;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n currentTime: _propTypes[\"default\"].number,\n duration: _propTypes[\"default\"].number,\n percentage: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n}; // Shows play progress\n\nfunction PlayProgressBar(_ref) {\n var currentTime = _ref.currentTime,\n duration = _ref.duration,\n percentage = _ref.percentage,\n className = _ref.className;\n return _react[\"default\"].createElement(\"div\", {\n \"data-current-time\": (0, _utils.formatTime)(currentTime, duration),\n className: (0, _classnames[\"default\"])('video-react-play-progress video-react-slider-bar', className),\n style: {\n width: percentage\n }\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Progress: \".concat(percentage)));\n}\n\nPlayProgressBar.propTypes = propTypes;\nPlayProgressBar.displayName = 'PlayProgressBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = LoadProgressBar;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n duration: _propTypes[\"default\"].number,\n buffered: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n}; // Shows load progress\n\nfunction LoadProgressBar(_ref) {\n var buffered = _ref.buffered,\n duration = _ref.duration,\n className = _ref.className;\n\n if (!buffered || !buffered.length) {\n return null;\n }\n\n var bufferedEnd = buffered.end(buffered.length - 1);\n var style = {};\n\n if (bufferedEnd > duration) {\n bufferedEnd = duration;\n } // get the percent width of a time compared to the total end\n\n\n function percentify(time, end) {\n var percent = time / end || 0; // no NaN\n\n return \"\".concat((percent >= 1 ? 1 : percent) * 100, \"%\");\n } // the width of the progress bar\n\n\n style.width = percentify(bufferedEnd, duration);\n var parts = []; // add child elements to represent the individual buffered time ranges\n\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i); // set the percent based on the width of the progress bar (bufferedEnd)\n\n var part = _react[\"default\"].createElement(\"div\", {\n style: {\n left: percentify(start, bufferedEnd),\n width: percentify(end - start, bufferedEnd)\n },\n key: \"part-\".concat(i)\n });\n\n parts.push(part);\n }\n\n if (parts.length === 0) {\n parts = null;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n style: style,\n className: (0, _classnames[\"default\"])('video-react-load-progress', className)\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Loaded: 0%\"), parts);\n}\n\nLoadProgressBar.propTypes = propTypes;\nLoadProgressBar.displayName = 'LoadProgressBar';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nfunction MouseTimeDisplay(_ref) {\n var duration = _ref.duration,\n mouseTime = _ref.mouseTime,\n className = _ref.className,\n text = _ref.text;\n\n if (!mouseTime.time) {\n return null;\n }\n\n var time = text || (0, _utils.formatTime)(mouseTime.time, duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-mouse-display', className),\n style: {\n left: \"\".concat(mouseTime.position, \"px\")\n },\n \"data-current-time\": time\n });\n}\n\nMouseTimeDisplay.propTypes = {\n duration: _propTypes[\"default\"].number,\n mouseTime: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\nMouseTimeDisplay.displayName = 'MouseTimeDisplay';\nvar _default = MouseTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar PlayToggle =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlayToggle, _Component);\n\n function PlayToggle(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlayToggle);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlayToggle).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlayToggle, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n actions = _this$props.actions,\n player = _this$props.player;\n\n if (player.paused) {\n actions.play();\n } else {\n actions.pause();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n player = _this$props2.player,\n className = _this$props2.className;\n var controlText = player.paused ? 'Play' : 'Pause';\n return _react[\"default\"].createElement(\"button\", {\n ref: function ref(c) {\n _this2.button = c;\n },\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-play-control': true,\n 'video-react-control': true,\n 'video-react-button': true,\n 'video-react-paused': player.paused,\n 'video-react-playing': !player.paused\n }),\n type: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, controlText));\n }\n }]);\n return PlayToggle;\n}(_react.Component);\n\nexports[\"default\"] = PlayToggle;\nPlayToggle.propTypes = propTypes;\nPlayToggle.displayName = 'PlayToggle';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ForwardReplayControl = _interopRequireDefault(require(\"./ForwardReplayControl\"));\n\n// Pass mode into parent function\nvar ForwardControl = (0, _ForwardReplayControl[\"default\"])('forward');\nForwardControl.displayName = 'ForwardControl';\nvar _default = ForwardControl;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n seconds: _propTypes[\"default\"].oneOf([5, 10, 30])\n};\nvar defaultProps = {\n seconds: 10\n};\n\nvar _default = function _default(mode) {\n var ForwardReplayControl =\n /*#__PURE__*/\n function (_Component) {\n (0, _inherits2[\"default\"])(ForwardReplayControl, _Component);\n\n function ForwardReplayControl(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ForwardReplayControl);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ForwardReplayControl).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ForwardReplayControl, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n actions = _this$props.actions,\n seconds = _this$props.seconds; // Depends mode to implement different actions\n\n if (mode === 'forward') {\n actions.forward(seconds);\n } else {\n actions.replay(seconds);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n seconds = _this$props2.seconds,\n className = _this$props2.className;\n var classNames = ['video-react-control', 'video-react-button', 'video-react-icon'];\n classNames.push(\"video-react-icon-\".concat(mode, \"-\").concat(seconds), \"video-react-\".concat(mode, \"-control\"));\n\n if (className) {\n classNames.push(className);\n }\n\n return _react[\"default\"].createElement(\"button\", {\n ref: function ref(c) {\n _this2.button = c;\n },\n className: classNames.join(' '),\n type: \"button\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"\".concat(mode, \" \").concat(seconds, \" seconds\")));\n }\n }]);\n return ForwardReplayControl;\n }(_react.Component);\n\n ForwardReplayControl.propTypes = propTypes;\n ForwardReplayControl.defaultProps = defaultProps;\n return ForwardReplayControl;\n};\n\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ForwardReplayControl = _interopRequireDefault(require(\"./ForwardReplayControl\"));\n\n// Pass mode into parent function\nvar ReplayControl = (0, _ForwardReplayControl[\"default\"])('replay');\nReplayControl.displayName = 'ReplayControl';\nvar _default = ReplayControl;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nvar FullscreenToggle =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(FullscreenToggle, _Component);\n\n function FullscreenToggle(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, FullscreenToggle);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(FullscreenToggle).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(FullscreenToggle, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n actions.toggleFullscreen(player);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n player = _this$props2.player,\n className = _this$props2.className;\n return _react[\"default\"].createElement(\"button\", {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-icon-fullscreen-exit': player.isFullscreen,\n 'video-react-icon-fullscreen': !player.isFullscreen\n }, 'video-react-fullscreen-control video-react-control video-react-button video-react-icon'),\n ref: function ref(c) {\n _this2.button = c;\n },\n type: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Non-Fullscreen\"));\n }\n }]);\n return FullscreenToggle;\n}(_react.Component);\n\nexports[\"default\"] = FullscreenToggle;\nFullscreenToggle.propTypes = propTypes;\nFullscreenToggle.displayName = 'FullscreenToggle';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction RemainingTimeDisplay(_ref) {\n var _ref$player = _ref.player,\n currentTime = _ref$player.currentTime,\n duration = _ref$player.duration,\n className = _ref.className;\n var remainingTime = duration - currentTime;\n var formattedTime = (0, _utils.formatTime)(remainingTime);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-remaining-time video-react-time-control video-react-control', className)\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-remaining-time-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Remaining Time \"), \"-\".concat(formattedTime)));\n}\n\nRemainingTimeDisplay.propTypes = propTypes;\nRemainingTimeDisplay.displayName = 'RemainingTimeDisplay';\nvar _default = RemainingTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction CurrentTimeDisplay(_ref) {\n var _ref$player = _ref.player,\n currentTime = _ref$player.currentTime,\n duration = _ref$player.duration,\n className = _ref.className;\n var formattedTime = (0, _utils.formatTime)(currentTime, duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-current-time video-react-time-control video-react-control', className)\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-current-time-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Current Time \"), formattedTime));\n}\n\nCurrentTimeDisplay.propTypes = propTypes;\nCurrentTimeDisplay.displayName = 'CurrentTimeDisplay';\nvar _default = CurrentTimeDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../../utils\");\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string\n};\n\nfunction DurationDisplay(_ref) {\n var duration = _ref.player.duration,\n className = _ref.className;\n var formattedTime = (0, _utils.formatTime)(duration);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(className, 'video-react-duration video-react-time-control video-react-control')\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-duration-display\",\n \"aria-live\": \"off\"\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Duration Time \"), formattedTime));\n}\n\nDurationDisplay.propTypes = propTypes;\nDurationDisplay.displayName = 'DurationDisplay';\nvar _default = DurationDisplay;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = TimeDivider;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n separator: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string\n};\n\nfunction TimeDivider(_ref) {\n var separator = _ref.separator,\n className = _ref.className;\n var separatorText = separator || '/';\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])('video-react-time-control video-react-time-divider', className),\n dir: \"ltr\"\n }, _react[\"default\"].createElement(\"div\", null, _react[\"default\"].createElement(\"span\", null, separatorText)));\n}\n\nTimeDivider.propTypes = propTypes;\nTimeDivider.displayName = 'TimeDivider';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _PopupButton = _interopRequireDefault(require(\"../popup/PopupButton\"));\n\nvar _VolumeBar = _interopRequireDefault(require(\"../volume-control/VolumeBar\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n vertical: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string,\n alwaysShowVolume: _propTypes[\"default\"].bool\n};\nvar defaultProps = {\n vertical: false\n};\n\nvar VolumeMenuButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(VolumeMenuButton, _Component);\n\n function VolumeMenuButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, VolumeMenuButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(VolumeMenuButton).call(this, props, context));\n _this.state = {\n active: false\n };\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(VolumeMenuButton, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n actions.mute(!player.muted);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.setState({\n active: true\n });\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.setState({\n active: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n vertical = _this$props2.vertical,\n player = _this$props2.player,\n className = _this$props2.className;\n var inline = !vertical;\n var level = this.volumeLevel;\n return _react[\"default\"].createElement(_PopupButton[\"default\"], {\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-volume-menu-button-vertical': vertical,\n 'video-react-volume-menu-button-horizontal': !vertical,\n 'video-react-vol-muted': player.muted,\n 'video-react-vol-0': level === 0 && !player.muted,\n 'video-react-vol-1': level === 1,\n 'video-react-vol-2': level === 2,\n 'video-react-vol-3': level === 3,\n 'video-react-slider-active': this.props.alwaysShowVolume || this.state.active,\n 'video-react-lock-showing': this.props.alwaysShowVolume || this.state.active\n }, 'video-react-volume-menu-button'),\n onClick: this.handleClick,\n inline: inline\n }, _react[\"default\"].createElement(_VolumeBar[\"default\"], (0, _extends2[\"default\"])({\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, this.props)));\n }\n }, {\n key: \"volumeLevel\",\n get: function get() {\n var _this$props$player = this.props.player,\n volume = _this$props$player.volume,\n muted = _this$props$player.muted;\n var level = 3;\n\n if (volume === 0 || muted) {\n level = 0;\n } else if (volume < 0.33) {\n level = 1;\n } else if (volume < 0.67) {\n level = 2;\n }\n\n return level;\n }\n }]);\n return VolumeMenuButton;\n}(_react.Component);\n\nVolumeMenuButton.propTypes = propTypes;\nVolumeMenuButton.defaultProps = defaultProps;\nVolumeMenuButton.displayName = 'VolumeMenuButton';\nvar _default = VolumeMenuButton;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n tagName: _propTypes[\"default\"].string,\n onClick: _propTypes[\"default\"].func.isRequired,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n tagName: 'div'\n};\n\nvar ClickableComponent =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ClickableComponent, _Component);\n\n function ClickableComponent(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ClickableComponent);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ClickableComponent).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeypress = _this.handleKeypress.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ClickableComponent, [{\n key: \"handleKeypress\",\n value: function handleKeypress(event) {\n // Support Space (32) or Enter (13) key operation to fire a click event\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n var onClick = this.props.onClick;\n onClick(event);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n document.addEventListener('keydown', this.handleKeypress);\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n document.removeEventListener('keydown', this.handleKeypress);\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var Tag = this.props.tagName;\n var props = (0, _objectSpread2[\"default\"])({}, this.props);\n delete props.tagName;\n delete props.className;\n return _react[\"default\"].createElement(Tag, (0, _extends2[\"default\"])({\n className: (0, _classnames[\"default\"])(this.props.className),\n role: \"button\",\n tabIndex: \"0\",\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n }, props));\n }\n }]);\n return ClickableComponent;\n}(_react.Component);\n\nexports[\"default\"] = ClickableComponent;\nClickableComponent.propTypes = propTypes;\nClickableComponent.defaultProps = defaultProps;\nClickableComponent.displayName = 'ClickableComponent';","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\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\nmodule.exports = toFinite;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = baseTrim(value);\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 = toNumber;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2.default)(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n\n if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);\n\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n\n\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;\n\n // something + 0 => something\n // something - 0 => something\n if (right.value === 0) return left;\n\n // 0 + something => something\n if (left.value === 0 && op === \"+\") return right;\n\n // 0 - something => -something\n if (left.value === 0 && op === \"-\") return flipValue(right);\n\n // value + value\n // value - value\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n }\n\n // value <op> (expr)\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n }\n // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n }\n\n // (expr) <op> value\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n }\n // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n return reduce(node, precision);\n }\n }\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n\n if (node.right.value === 0) throw new Error('Cannot divide by zero');\n\n // (expr) / value\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n return node;\n }\n // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n }\n // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n }\n // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n }\n // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n case \"/\":\n return reduceDivisionExpression(node, precision);\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n return node;\n}\n\nexports.default = reduce;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `<TransitionGroup>` renders a `<div>` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `<div>` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport type MemoFunc = [\n // memoize\n (obj: any) => boolean,\n // unmemoize\n (obj: any) => void,\n];\n\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder(): MemoFunc {\n const hasWeakSet = typeof WeakSet === 'function';\n const inner: any = hasWeakSet ? new WeakSet() : [];\n function memoize(obj: any): boolean {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < inner.length; i++) {\n const value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj: any): void {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n","import { Session as SessionInterface, SessionContext, SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n\n/**\n * @inheritdoc\n */\nexport class Session implements SessionInterface {\n public userAgent?: string;\n public errors: number = 0;\n public release?: string;\n public sid: string = uuid4();\n public did?: string;\n public timestamp: number;\n public started: number;\n public duration?: number = 0;\n public status: SessionStatus = 'ok';\n public environment?: string;\n public ipAddress?: string;\n public init: boolean = true;\n public ignoreDuration: boolean = false;\n\n public constructor(context?: Omit<SessionContext, 'started' | 'status'>) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n\n /** JSDoc */\n // eslint-disable-next-line complexity\n public update(context: SessionContext = {}): void {\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n } else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n } else {\n const duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n }\n\n /** JSDoc */\n public close(status?: Exclude<SessionStatus, 'ok'>): void {\n if (status) {\n this.update({ status });\n } else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n } else {\n this.update();\n }\n }\n\n /** JSDoc */\n public toJSON(): {\n init: boolean;\n sid: string;\n did?: string;\n timestamp: string;\n started: string;\n duration?: number;\n status: SessionStatus;\n errors: number;\n attrs?: {\n release?: string;\n environment?: string;\n user_agent?: string;\n ip_address?: string;\n };\n } {\n return dropUndefinedKeys({\n sid: `${this.sid}`,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? `${this.did}` : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n }\n}\n","// tslint:disable:no-bitwise\n// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n/**\n * Calculate the CRC32 of an ArrayBufferLike.\n * @param buf The BufferLike to calculate the CRC32 of.\n */\nexport function getCrc32(buf) {\n const b = new Uint8Array(buf);\n let crc = -1;\n // tslint:disable-next-line:prefer-for-of\n for (let i = 0; i < b.length; i++) {\n const byte = b[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n return (crc ^ -1) >>> 0;\n}\n//# sourceMappingURL=getCrc.js.map","import { sha224 as jsSha224 } from 'js-sha256';\n/**\n *\n * @param data Arraybuffer to encode\n * @returns sha244-encoded BinaryBlob\n */\nexport function sha224(data) {\n const shaObj = jsSha224.create();\n shaObj.update(data);\n return new Uint8Array(shaObj.array());\n}\n//# sourceMappingURL=sha224.js.map","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n \"use strict\";\n\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n // Use a lookup table to find the index.\n var lookup = new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(i+3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})();\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = name + '=' + value;\n\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n};\n\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var query = window.location.search.substring(1);\n var params = query.split('&');\n\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\n\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n\n return hasLocalStorageSupport;\n};\n\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\n\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n\n return hasSessionStorageSupport;\n};\n\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.href.match(/(?:http[s]*\\:\\/\\/)*(.*?)\\.(?=[^\\/]*\\..{2,5})/gi);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromSubdomainIndex === 'number') {\n found = language[options.lookupFromSubdomainIndex].replace('http://', '').replace('https://', '').replace('.', '');\n } else {\n found = language[0].replace('http://', '').replace('https://', '').replace('.', '');\n }\n }\n }\n\n return found;\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'] //cookieMinutes: 10,\n //cookieDomain: 'myDomain'\n\n };\n}\n\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Browser);\n\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n\n return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","module.exports = require('./src/normalizeWheel.js');\n","module.exports = require('./lib/axios');","/*\n * base64.js\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n */\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? module.exports = factory(global)\n : typeof define === 'function' && define.amd\n ? define(factory) : factory(global)\n}((\n typeof self !== 'undefined' ? self\n : typeof window !== 'undefined' ? window\n : typeof global !== 'undefined' ? global\n: this\n), function(global) {\n 'use strict';\n // existing version for noConflict()\n global = global || {};\n var _Base64 = global.Base64;\n var version = \"2.6.4\";\n // constants\n var b64chars\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var b64tab = function(bin) {\n var t = {};\n for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;\n return t;\n }(b64chars);\n var fromCharCode = String.fromCharCode;\n // encoder stuff\n var cb_utob = function(c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))\n + fromCharCode(0x80 | (cc & 0x3f)))\n : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))\n + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))\n + fromCharCode(0x80 | ( cc & 0x3f)));\n } else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))\n + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))\n + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))\n + fromCharCode(0x80 | ( cc & 0x3f)));\n }\n };\n var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n var utob = function(u) {\n return u.replace(re_utob, cb_utob);\n };\n var cb_encode = function(ccc) {\n var padlen = [0, 2, 1][ccc.length % 3],\n ord = ccc.charCodeAt(0) << 16\n | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)\n | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),\n chars = [\n b64chars.charAt( ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63)\n ];\n return chars.join('');\n };\n var btoa = global.btoa && typeof global.btoa == 'function'\n ? function(b){ return global.btoa(b) } : function(b) {\n if (b.match(/[^\\x00-\\xFF]/)) throw new RangeError(\n 'The string contains invalid characters.'\n );\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n var _encode = function(u) {\n return btoa(utob(String(u)));\n };\n var mkUriSafe = function (b64) {\n return b64.replace(/[+\\/]/g, function(m0) {\n return m0 == '+' ? '-' : '_';\n }).replace(/=/g, '');\n };\n var encode = function(u, urisafe) {\n return urisafe ? mkUriSafe(_encode(u)) : _encode(u);\n };\n var encodeURI = function(u) { return encode(u, true) };\n var fromUint8Array;\n if (global.Uint8Array) fromUint8Array = function(a, urisafe) {\n // return btoa(fromCharCode.apply(null, a));\n var b64 = '';\n for (var i = 0, l = a.length; i < l; i += 3) {\n var a0 = a[i], a1 = a[i+1], a2 = a[i+2];\n var ord = a0 << 16 | a1 << 8 | a2;\n b64 += b64chars.charAt( ord >>> 18)\n + b64chars.charAt((ord >>> 12) & 63)\n + ( typeof a1 != 'undefined'\n ? b64chars.charAt((ord >>> 6) & 63) : '=')\n + ( typeof a2 != 'undefined'\n ? b64chars.charAt( ord & 63) : '=');\n }\n return urisafe ? mkUriSafe(b64) : b64;\n };\n // decoder stuff\n var re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\n var cb_btou = function(cccc) {\n switch(cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)),\n offset = cp - 0x10000;\n return (fromCharCode((offset >>> 10) + 0xD800)\n + fromCharCode((offset & 0x3FF) + 0xDC00));\n case 3:\n return fromCharCode(\n ((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2))\n );\n default:\n return fromCharCode(\n ((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1))\n );\n }\n };\n var btou = function(b) {\n return b.replace(re_btou, cb_btou);\n };\n var cb_decode = function(cccc) {\n var len = cccc.length,\n padlen = len % 4,\n n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)\n | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)\n | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)\n | (len > 3 ? b64tab[cccc.charAt(3)] : 0),\n chars = [\n fromCharCode( n >>> 16),\n fromCharCode((n >>> 8) & 0xff),\n fromCharCode( n & 0xff)\n ];\n chars.length -= [0, 0, 2, 1][padlen];\n return chars.join('');\n };\n var _atob = global.atob && typeof global.atob == 'function'\n ? function(a){ return global.atob(a) } : function(a){\n return a.replace(/\\S{1,4}/g, cb_decode);\n };\n var atob = function(a) {\n return _atob(String(a).replace(/[^A-Za-z0-9\\+\\/]/g, ''));\n };\n var _decode = function(a) { return btou(_atob(a)) };\n var _fromURI = function(a) {\n return String(a).replace(/[-_]/g, function(m0) {\n return m0 == '-' ? '+' : '/'\n }).replace(/[^A-Za-z0-9\\+\\/]/g, '');\n };\n var decode = function(a){\n return _decode(_fromURI(a));\n };\n var toUint8Array;\n if (global.Uint8Array) toUint8Array = function(a) {\n return Uint8Array.from(atob(_fromURI(a)), function(c) {\n return c.charCodeAt(0);\n });\n };\n var noConflict = function() {\n var Base64 = global.Base64;\n global.Base64 = _Base64;\n return Base64;\n };\n // export Base64\n global.Base64 = {\n VERSION: version,\n atob: atob,\n btoa: btoa,\n fromBase64: decode,\n toBase64: encode,\n utob: utob,\n encode: encode,\n encodeURI: encodeURI,\n btou: btou,\n decode: decode,\n noConflict: noConflict,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array\n };\n // if ES5 is available, make Base64.extendString() available\n if (typeof Object.defineProperty === 'function') {\n var noEnum = function(v){\n return {value:v,enumerable:false,writable:true,configurable:true};\n };\n global.Base64.extendString = function () {\n Object.defineProperty(\n String.prototype, 'fromBase64', noEnum(function () {\n return decode(this)\n }));\n Object.defineProperty(\n String.prototype, 'toBase64', noEnum(function (urisafe) {\n return encode(this, urisafe)\n }));\n Object.defineProperty(\n String.prototype, 'toBase64URI', noEnum(function () {\n return encode(this, true)\n }));\n };\n }\n //\n // export Base64 to the namespace\n //\n if (global['Meteor']) { // Meteor.js\n Base64 = global.Base64;\n }\n // module.exports and AMD are mutually exclusive.\n // module.exports has precedence.\n if (typeof module !== 'undefined' && module.exports) {\n module.exports.Base64 = global.Base64;\n }\n else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function(){ return global.Base64 });\n }\n // that's it!\n return {Base64: global.Base64}\n}));\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'));\n","(function (name, context, definition) {\n if (typeof module !== 'undefined' && module.exports) module.exports = definition();\n else if (typeof define === 'function' && define.amd) define(definition);\n else context[name] = definition();\n})('urljoin', this, function () {\n\n function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n }\n\n return function () {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n };\n\n});\n","var RFC4648 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'\nvar RFC4648_HEX = '0123456789ABCDEFGHIJKLMNOPQRSTUV'\nvar CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'\n\nfunction readChar (alphabet, char) {\n var idx = alphabet.indexOf(char)\n\n if (idx === -1) {\n throw new Error('Invalid character found: ' + char)\n }\n\n return idx\n}\n\nmodule.exports = function base32Decode (input, variant) {\n var alphabet\n\n switch (variant) {\n case 'RFC3548':\n case 'RFC4648':\n alphabet = RFC4648\n input = input.replace(/=+$/, '')\n break\n case 'RFC4648-HEX':\n alphabet = RFC4648_HEX\n input = input.replace(/=+$/, '')\n break\n case 'Crockford':\n alphabet = CROCKFORD\n input = input.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')\n break\n default:\n throw new Error('Unknown base32 variant: ' + variant)\n }\n\n var length = input.length\n\n var bits = 0\n var value = 0\n\n var index = 0\n var output = new Uint8Array((length * 5 / 8) | 0)\n\n for (var i = 0; i < length; i++) {\n value = (value << 5) | readChar(alphabet, input[i])\n bits += 5\n\n if (bits >= 8) {\n output[index++] = (value >>> (bits - 8)) & 255\n bits -= 8\n }\n }\n\n return output.buffer\n}\n","var toDataView = require('to-data-view')\n\nvar RFC4648 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'\nvar RFC4648_HEX = '0123456789ABCDEFGHIJKLMNOPQRSTUV'\nvar CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'\n\nmodule.exports = function base32Encode (data, variant, options) {\n options = options || {}\n var alphabet, defaultPadding\n\n switch (variant) {\n case 'RFC3548':\n case 'RFC4648':\n alphabet = RFC4648\n defaultPadding = true\n break\n case 'RFC4648-HEX':\n alphabet = RFC4648_HEX\n defaultPadding = true\n break\n case 'Crockford':\n alphabet = CROCKFORD\n defaultPadding = false\n break\n default:\n throw new Error('Unknown base32 variant: ' + variant)\n }\n\n var padding = (options.padding !== undefined ? options.padding : defaultPadding)\n var view = toDataView(data)\n\n var bits = 0\n var value = 0\n var output = ''\n\n for (var i = 0; i < view.byteLength; i++) {\n value = (value << 8) | view.getUint8(i)\n bits += 8\n\n while (bits >= 5) {\n output += alphabet[(value >>> (bits - 5)) & 31]\n bits -= 5\n }\n }\n\n if (bits > 0) {\n output += alphabet[(value << (5 - bits)) & 31]\n }\n\n if (padding) {\n while ((output.length % 8) !== 0) {\n output += '='\n }\n }\n\n return output\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.idb = {}));\n}(this, function (exports) { 'use strict';\n\n function toArray(arr) {\n return Array.prototype.slice.call(arr);\n }\n\n function promisifyRequest(request) {\n return new Promise(function(resolve, reject) {\n request.onsuccess = function() {\n resolve(request.result);\n };\n\n request.onerror = function() {\n reject(request.error);\n };\n });\n }\n\n function promisifyRequestCall(obj, method, args) {\n var request;\n var p = new Promise(function(resolve, reject) {\n request = obj[method].apply(obj, args);\n promisifyRequest(request).then(resolve, reject);\n });\n\n p.request = request;\n return p;\n }\n\n function promisifyCursorRequestCall(obj, method, args) {\n var p = promisifyRequestCall(obj, method, args);\n return p.then(function(value) {\n if (!value) return;\n return new Cursor(value, p.request);\n });\n }\n\n function proxyProperties(ProxyClass, targetProp, properties) {\n properties.forEach(function(prop) {\n Object.defineProperty(ProxyClass.prototype, prop, {\n get: function() {\n return this[targetProp][prop];\n },\n set: function(val) {\n this[targetProp][prop] = val;\n }\n });\n });\n }\n\n function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function proxyMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return this[targetProp][prop].apply(this[targetProp], arguments);\n };\n });\n }\n\n function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyCursorRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function Index(index) {\n this._index = index;\n }\n\n proxyProperties(Index, '_index', [\n 'name',\n 'keyPath',\n 'multiEntry',\n 'unique'\n ]);\n\n proxyRequestMethods(Index, '_index', IDBIndex, [\n 'get',\n 'getKey',\n 'getAll',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(Index, '_index', IDBIndex, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n function Cursor(cursor, request) {\n this._cursor = cursor;\n this._request = request;\n }\n\n proxyProperties(Cursor, '_cursor', [\n 'direction',\n 'key',\n 'primaryKey',\n 'value'\n ]);\n\n proxyRequestMethods(Cursor, '_cursor', IDBCursor, [\n 'update',\n 'delete'\n ]);\n\n // proxy 'next' methods\n ['advance', 'continue', 'continuePrimaryKey'].forEach(function(methodName) {\n if (!(methodName in IDBCursor.prototype)) return;\n Cursor.prototype[methodName] = function() {\n var cursor = this;\n var args = arguments;\n return Promise.resolve().then(function() {\n cursor._cursor[methodName].apply(cursor._cursor, args);\n return promisifyRequest(cursor._request).then(function(value) {\n if (!value) return;\n return new Cursor(value, cursor._request);\n });\n });\n };\n });\n\n function ObjectStore(store) {\n this._store = store;\n }\n\n ObjectStore.prototype.createIndex = function() {\n return new Index(this._store.createIndex.apply(this._store, arguments));\n };\n\n ObjectStore.prototype.index = function() {\n return new Index(this._store.index.apply(this._store, arguments));\n };\n\n proxyProperties(ObjectStore, '_store', [\n 'name',\n 'keyPath',\n 'indexNames',\n 'autoIncrement'\n ]);\n\n proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'put',\n 'add',\n 'delete',\n 'clear',\n 'get',\n 'getAll',\n 'getKey',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n proxyMethods(ObjectStore, '_store', IDBObjectStore, [\n 'deleteIndex'\n ]);\n\n function Transaction(idbTransaction) {\n this._tx = idbTransaction;\n this.complete = new Promise(function(resolve, reject) {\n idbTransaction.oncomplete = function() {\n resolve();\n };\n idbTransaction.onerror = function() {\n reject(idbTransaction.error);\n };\n idbTransaction.onabort = function() {\n reject(idbTransaction.error);\n };\n });\n }\n\n Transaction.prototype.objectStore = function() {\n return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments));\n };\n\n proxyProperties(Transaction, '_tx', [\n 'objectStoreNames',\n 'mode'\n ]);\n\n proxyMethods(Transaction, '_tx', IDBTransaction, [\n 'abort'\n ]);\n\n function UpgradeDB(db, oldVersion, transaction) {\n this._db = db;\n this.oldVersion = oldVersion;\n this.transaction = new Transaction(transaction);\n }\n\n UpgradeDB.prototype.createObjectStore = function() {\n return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments));\n };\n\n proxyProperties(UpgradeDB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(UpgradeDB, '_db', IDBDatabase, [\n 'deleteObjectStore',\n 'close'\n ]);\n\n function DB(db) {\n this._db = db;\n }\n\n DB.prototype.transaction = function() {\n return new Transaction(this._db.transaction.apply(this._db, arguments));\n };\n\n proxyProperties(DB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(DB, '_db', IDBDatabase, [\n 'close'\n ]);\n\n // Add cursor iterators\n // TODO: remove this once browsers do the right thing with promises\n ['openCursor', 'openKeyCursor'].forEach(function(funcName) {\n [ObjectStore, Index].forEach(function(Constructor) {\n // Don't create iterateKeyCursor if openKeyCursor doesn't exist.\n if (!(funcName in Constructor.prototype)) return;\n\n Constructor.prototype[funcName.replace('open', 'iterate')] = function() {\n var args = toArray(arguments);\n var callback = args[args.length - 1];\n var nativeObject = this._store || this._index;\n var request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1));\n request.onsuccess = function() {\n callback(request.result);\n };\n };\n });\n });\n\n // polyfill getAll\n [Index, ObjectStore].forEach(function(Constructor) {\n if (Constructor.prototype.getAll) return;\n Constructor.prototype.getAll = function(query, count) {\n var instance = this;\n var items = [];\n\n return new Promise(function(resolve) {\n instance.iterateCursor(query, function(cursor) {\n if (!cursor) {\n resolve(items);\n return;\n }\n items.push(cursor.value);\n\n if (count !== undefined && items.length == count) {\n resolve(items);\n return;\n }\n cursor.continue();\n });\n });\n };\n });\n\n function openDb(name, version, upgradeCallback) {\n var p = promisifyRequestCall(indexedDB, 'open', [name, version]);\n var request = p.request;\n\n if (request) {\n request.onupgradeneeded = function(event) {\n if (upgradeCallback) {\n upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction));\n }\n };\n }\n\n return p.then(function(db) {\n return new DB(db);\n });\n }\n\n function deleteDb(name) {\n return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]);\n }\n\n exports.openDb = openDb;\n exports.deleteDb = deleteDb;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { registerVersion } from '@firebase/app';\nimport { name, version } from '../package.json';\n\nregisterVersion(name, version, 'app');\nexport * from '@firebase/app';\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Linkify = require('./components/Linkify');\n\nvar _Linkify2 = _interopRequireDefault(_Linkify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Linkify2.default;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { filterProps, adaptEventHandlers } from '../util/types';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n}; // use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\n\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer = // eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear = // eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\n\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n};\n\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\n};\n\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n};\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var data = child.props.data;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\n\n\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n\n return null;\n};\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks;\n var axisId = child.props[axisIdKey];\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n // has dataKey in <Axis />\n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is catrgorical axis\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && child.props.domain) {\n var axisDomain = child.props.domain;\n var isDomainValidate = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n\n if (isDomainValidate) {\n domain = axisDomain;\n }\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1; // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorical: isCategorical,\n layout: layout // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n};\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n\n return axisMap;\n};\n\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n\n\nvar createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush.displayName);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = brushItem && brushItem.props && brushItem.props.endIndex || props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\n\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\n\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\n\n\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush.displayName);\n var legendItem = findChildByType(children, Legend.displayName);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\n\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class, _temp;\n\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n\n // 如果是bar,计算bar的位置\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n\n var composedFn = item && item.type && item.type.getComposedData;\n\n if (composedFn) {\n var _objectSpread7;\n\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n\n\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n var _super = _createSuper(CategoricalChartWrapper);\n\n // todo join specific chart propTypes\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _super.call(this, _props);\n _this.uniqueChartId = void 0;\n _this.clipPathId = void 0;\n _this.legendInstance = void 0;\n _this.deferId = void 0;\n _this.container = void 0;\n\n _this.clearDeferId = function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n\n _this.deferId = null;\n };\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n };\n\n _this.handleBrushChange = function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState);\n\n _this.triggerSyncEvent(_nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _this.handleItemMouseEnter = function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n };\n\n _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n\n _this.cancelThrottledTriggerAfterMouseMove();\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n var event = _get(_this.props, \"\".concat(eventName));\n\n if (eventName && _isFunction(event)) {\n var mouse;\n\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n\n var handler = event;\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n\n _this.setState(_nextState2);\n\n _this.triggerSyncEvent(_nextState2);\n\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n\n onMouseDown(_nextState3, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n\n onMouseUp(_nextState4, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n };\n\n _this.horizontalCoordinatesGenerator = function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n };\n\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.renderCursor = function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n\n var tooltipEventType = _this.getTooltipEventType();\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _this.renderXAxis = function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderYAxis = function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n };\n\n _this.renderGrid = function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n };\n\n _this.renderPolarGrid = function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n };\n\n _this.renderLegend = function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n };\n\n _this.renderTooltip = function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n };\n\n _this.renderBrush = function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId; // TODO: update brush when children update\n\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n };\n\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n };\n\n _this.renderActivePoints = function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n };\n\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var tooltipEventType = _this.getTooltipEventType();\n\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n };\n\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n _this.state = {};\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip.displayName);\n\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n\n return defaultTooltipEventType;\n }\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip.displayName);\n var tooltipEvents = {};\n\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n others = _objectWithoutProperties(_this$props6, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component), _class.displayName = chartName, _class.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps), _class.getDerivedStateFromProps = function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps); // Fixes https://github.com/recharts/recharts/issues/2143\n\n\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n\n return null;\n }, _class.renderActiveDot = function (option, props) {\n var dot;\n\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }, _temp;\n};","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\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 a boolean, 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) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","import {\n EqualityComparator,\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areRegExpsEqual,\n areSetsEqual,\n isPlainObject,\n isPromiseLike,\n sameValueZeroEqual,\n} from './utils';\n\nconst HAS_MAP_SUPPORT = typeof Map === 'function';\nconst HAS_SET_SUPPORT = typeof Set === 'function';\n\ntype EqualityComparatorCreator = (fn: EqualityComparator) => EqualityComparator;\n\nexport function createComparator(createIsEqual?: EqualityComparatorCreator) {\n const isEqual: EqualityComparator =\n /* eslint-disable no-use-before-define */\n typeof createIsEqual === 'function'\n ? createIsEqual(comparator)\n : comparator;\n /* eslint-enable */\n\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n *\n * @param a the value to test against\n * @param b the value to test\n * @param [meta] an optional meta object that is passed through to all equality test calls\n * @returns are a and b equivalent in value\n */\n function comparator(a: any, b: any, meta?: any) {\n if (a === b) {\n return true;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (isPlainObject(a) && isPlainObject(b)) {\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n let aShape = Array.isArray(a);\n let bShape = Array.isArray(b);\n\n if (aShape || bShape) {\n return aShape === bShape && areArraysEqual(a, b, isEqual, meta);\n }\n\n aShape = a instanceof Date;\n bShape = b instanceof Date;\n\n if (aShape || bShape) {\n return (\n aShape === bShape && sameValueZeroEqual(a.getTime(), b.getTime())\n );\n }\n\n aShape = a instanceof RegExp;\n bShape = b instanceof RegExp;\n\n if (aShape || bShape) {\n return aShape === bShape && areRegExpsEqual(a, b);\n }\n\n if (isPromiseLike(a) || isPromiseLike(b)) {\n return a === b;\n }\n\n if (HAS_MAP_SUPPORT) {\n aShape = a instanceof Map;\n bShape = b instanceof Map;\n\n if (aShape || bShape) {\n return aShape === bShape && areMapsEqual(a, b, isEqual, meta);\n }\n }\n\n if (HAS_SET_SUPPORT) {\n aShape = a instanceof Set;\n bShape = b instanceof Set;\n\n if (aShape || bShape) {\n return aShape === bShape && areSetsEqual(a, b, isEqual, meta);\n }\n }\n\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n return a !== a && b !== b;\n }\n\n return comparator;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/types';\nexport var Cross = /*#__PURE__*/function (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n var _super = _createSuper(Cross);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: classNames('recharts-cross', className),\n d: Cross.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n }\n }]);\n\n return Cross;\n}(PureComponent);\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/types';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\n\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\n\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle); // When the angle of sector equals to 360, star point and end point coincide\n\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n\n return path;\n};\n\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n\n return path;\n};\n\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n var _super = _createSuper(Sector);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function FiActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"}}]})(props);\n};\nexport function FiAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"}}]})(props);\n};\nexport function FiAlertCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiAlertOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiAlertTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"}}]})(props);\n};\nexport function FiAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"10\",\"x2\":\"6\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"18\",\"x2\":\"6\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"7\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"7\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"}}]})(props);\n};\nexport function FiAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"8\",\"x2\":\"20.05\",\"y2\":\"17.94\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"8\",\"x2\":\"21.17\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"y1\":\"12\",\"x2\":\"13.12\",\"y2\":\"2.06\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"16\",\"x2\":\"3.95\",\"y2\":\"6.06\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"16\",\"x2\":\"2.83\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"y1\":\"12\",\"x2\":\"10.88\",\"y2\":\"21.94\"}}]})(props);\n};\nexport function FiArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 8 21 21 3 21 3 8\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"22\",\"height\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"12\",\"x2\":\"14\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiArrowDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 12 12 16 16 12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiArrowDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 17 7 17 7 7\"}}]})(props);\n};\nexport function FiArrowDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"17\",\"y2\":\"17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 7 17 17 7 17\"}}]})(props);\n};\nexport function FiArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 12 12 19 5 12\"}}]})(props);\n};\nexport function FiArrowLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 8 8 12 12 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"12\",\"x2\":\"8\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 19 5 12 12 5\"}}]})(props);\n};\nexport function FiArrowRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 16 16 12 12 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 5 19 12 12 19\"}}]})(props);\n};\nexport function FiArrowUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 12 12 8 8 12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"8\"}}]})(props);\n};\nexport function FiArrowUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 7 7 17 7\"}}]})(props);\n};\nexport function FiArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"17\",\"x2\":\"17\",\"y2\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 7 17 7 17 17\"}}]})(props);\n};\nexport function FiArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 12 12 5 19 12\"}}]})(props);\n};\nexport function FiAtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"}}]})(props);\n};\nexport function FiAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"}}]})(props);\n};\nexport function FiBarChart2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 6 7 12 13 12 9 18\"}}]})(props);\n};\nexport function FiBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"6\",\"width\":\"18\",\"height\":\"12\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiBellOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.63 13A17.89 17.89 0 0 1 18 8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a6 6 0 0 0-9.33-5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"}}]})(props);\n};\nexport function FiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"}}]})(props);\n};\nexport function FiBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"}}]})(props);\n};\nexport function FiBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"}}]})(props);\n};\nexport function FiBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"}}]})(props);\n};\nexport function FiBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"}}]})(props);\n};\nexport function FiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"}}]})(props);\n};\nexport function FiCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"2\",\"x2\":\"16\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"10\"}}]})(props);\n};\nexport function FiCameraOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"}}]})(props);\n};\nexport function FiCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"4\"}}]})(props);\n};\nexport function FiCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"20\",\"x2\":\"2.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"}}]})(props);\n};\nexport function FiCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"}}]})(props);\n};\nexport function FiCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"}}]})(props);\n};\nexport function FiChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 12 15 18 9\"}}]})(props);\n};\nexport function FiChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 18 9 12 15 6\"}}]})(props);\n};\nexport function FiChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 18 15 12 9 6\"}}]})(props);\n};\nexport function FiChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 15 12 9 6 15\"}}]})(props);\n};\nexport function FiChevronsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 13 12 18 17 13\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 6 12 11 17 6\"}}]})(props);\n};\nexport function FiChevronsLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 17 6 12 11 7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 17 13 12 18 7\"}}]})(props);\n};\nexport function FiChevronsRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 17 18 12 13 7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 17 11 12 6 7\"}}]})(props);\n};\nexport function FiChevronsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 12 6 7 11\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 12 13 7 18\"}}]})(props);\n};\nexport function FiChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"y1\":\"6.06\",\"x2\":\"8.54\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"y1\":\"21.94\",\"x2\":\"15.46\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function FiClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"2\",\"width\":\"8\",\"height\":\"4\",\"rx\":\"1\",\"ry\":\"1\"}}]})(props);\n};\nexport function FiClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"}}]})(props);\n};\nexport function FiCloudDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"19\",\"x2\":\"8\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"19\",\"x2\":\"16\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"17\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"}}]})(props);\n};\nexport function FiCloudLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 11 9 17 15 17 11 23\"}}]})(props);\n};\nexport function FiCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"}}]})(props);\n};\nexport function FiCloudSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"16\",\"x2\":\"8.01\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"20\",\"x2\":\"8.01\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12.01\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"16\",\"x2\":\"16.01\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"20\",\"x2\":\"16.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"}}]})(props);\n};\nexport function FiCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"}}]})(props);\n};\nexport function FiCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"15.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"8.5\"}}]})(props);\n};\nexport function FiCodesandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h1a4 4 0 0 1 0 8h-1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"1\",\"x2\":\"6\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"1\",\"x2\":\"10\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"1\",\"x2\":\"14\",\"y2\":\"4\"}}]})(props);\n};\nexport function FiColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"}}]})(props);\n};\nexport function FiCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"}}]})(props);\n};\nexport function FiCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"}}]})(props);\n};\nexport function FiCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"13\",\"height\":\"13\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"}}]})(props);\n};\nexport function FiCornerDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"}}]})(props);\n};\nexport function FiCornerDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"}}]})(props);\n};\nexport function FiCornerLeftDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"}}]})(props);\n};\nexport function FiCornerLeftUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"}}]})(props);\n};\nexport function FiCornerRightDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"}}]})(props);\n};\nexport function FiCornerRightUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"}}]})(props);\n};\nexport function FiCornerUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"}}]})(props);\n};\nexport function FiCornerUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"}}]})(props);\n};\nexport function FiCpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"1\",\"x2\":\"9\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"1\",\"x2\":\"15\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"9\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"14\",\"x2\":\"23\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"9\",\"x2\":\"4\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"4\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"4\",\"width\":\"22\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"10\",\"x2\":\"23\",\"y2\":\"10\"}}]})(props);\n};\nexport function FiCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"}}]})(props);\n};\nexport function FiCrosshair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"18\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12\",\"y2\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"}}]})(props);\n};\nexport function FiDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"18\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiDivideCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}}]})(props);\n};\nexport function FiDivideSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"}}]})(props);\n};\nexport function FiDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function FiDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"}}]})(props);\n};\nexport function FiDownloadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 17 12 21 16 17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"}}]})(props);\n};\nexport function FiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"}}]})(props);\n};\nexport function FiDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"}}]})(props);\n};\nexport function FiDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"}}]})(props);\n};\nexport function FiEdit2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"}}]})(props);\n};\nexport function FiEdit3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"}}]})(props);\n};\nexport function FiEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"}}]})(props);\n};\nexport function FiExternalLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"14\",\"x2\":\"21\",\"y2\":\"3\"}}]})(props);\n};\nexport function FiEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"}}]})(props);\n};\nexport function FiFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"}}]})(props);\n};\nexport function FiFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"2\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"15\",\"x2\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"}}]})(props);\n};\nexport function FiFileMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFilePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 9 9 8 9\"}}]})(props);\n};\nexport function FiFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 2 13 9 20 9\"}}]})(props);\n};\nexport function FiFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"2.18\",\"ry\":\"2.18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"2\",\"x2\":\"7\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"2\",\"x2\":\"17\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"22\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"22\",\"y2\":\"7\"}}]})(props);\n};\nexport function FiFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"}}]})(props);\n};\nexport function FiFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"22\",\"x2\":\"4\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"11\",\"x2\":\"12\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"}}]})(props);\n};\nexport function FiFramer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"}}]})(props);\n};\nexport function FiFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"}}]})(props);\n};\nexport function FiGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"3\",\"x2\":\"6\",\"y2\":\"15\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"}}]})(props);\n};\nexport function FiGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1.05\",\"y1\":\"12\",\"x2\":\"7\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.01\",\"y1\":\"12\",\"x2\":\"22.96\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"}}]})(props);\n};\nexport function FiGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"9\",\"x2\":\"6\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"}}]})(props);\n};\nexport function FiGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"}}]})(props);\n};\nexport function FiGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"}}]})(props);\n};\nexport function FiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"}}]})(props);\n};\nexport function FiHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"16\",\"x2\":\"6.01\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"16\",\"x2\":\"10.01\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"9\",\"x2\":\"20\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"15\",\"x2\":\"20\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"3\",\"x2\":\"8\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18v-6a9 9 0 0 1 18 0v6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"}}]})(props);\n};\nexport function FiHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"}}]})(props);\n};\nexport function FiHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"}}]})(props);\n};\nexport function FiHexagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}}]})(props);\n};\nexport function FiHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"}}]})(props);\n};\nexport function FiImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 15 16 10 5 21\"}}]})(props);\n};\nexport function FiInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"}}]})(props);\n};\nexport function FiInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"}}]})(props);\n};\nexport function FiInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"5\",\"ry\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"6.5\",\"x2\":\"17.51\",\"y2\":\"6.5\"}}]})(props);\n};\nexport function FiItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"4\",\"x2\":\"10\",\"y2\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"20\",\"x2\":\"5\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"}}]})(props);\n};\nexport function FiLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"}}]})(props);\n};\nexport function FiLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"9\",\"x2\":\"21\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"21\",\"x2\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiLifeBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"9.17\",\"y2\":\"9.17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"14.83\",\"x2\":\"19.07\",\"y2\":\"19.07\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"19.07\",\"y2\":\"4.93\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"18.36\",\"y2\":\"5.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"9.17\",\"y2\":\"14.83\"}}]})(props);\n};\nexport function FiLink2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}}]})(props);\n};\nexport function FiLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"9\",\"width\":\"4\",\"height\":\"12\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"}}]})(props);\n};\nexport function FiList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"3.01\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"3.01\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"3.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiLoader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"7.76\",\"y2\":\"7.76\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"16.24\",\"x2\":\"19.07\",\"y2\":\"19.07\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"6\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"7.76\",\"y2\":\"16.24\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"7.76\",\"x2\":\"19.07\",\"y2\":\"4.93\"}}]})(props);\n};\nexport function FiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"}}]})(props);\n};\nexport function FiLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"9\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22,6 12,13 2,6\"}}]})(props);\n};\nexport function FiMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"}}]})(props);\n};\nexport function FiMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"6\",\"x2\":\"16\",\"y2\":\"22\"}}]})(props);\n};\nexport function FiMaximize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"}}]})(props);\n};\nexport function FiMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"15\",\"x2\":\"16\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiMessageCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"}}]})(props);\n};\nexport function FiMessageSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"}}]})(props);\n};\nexport function FiMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiMinimize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"}}]})(props);\n};\nexport function FiMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"}}]})(props);\n};\nexport function FiMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"3\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"21\",\"x2\":\"16\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"}}]})(props);\n};\nexport function FiMoreHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"}}]})(props);\n};\nexport function FiMoreVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function FiMousePointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13l6 6\"}}]})(props);\n};\nexport function FiMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"22\"}}]})(props);\n};\nexport function FiMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"}}]})(props);\n};\nexport function FiNavigation2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"}}]})(props);\n};\nexport function FiNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"}}]})(props);\n};\nexport function FiOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}}]})(props);\n};\nexport function FiPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16.5\",\"y1\":\"9.4\",\"x2\":\"7.5\",\"y2\":\"4.21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"}}]})(props);\n};\nexport function FiPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"15\",\"x2\":\"10\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"15\",\"x2\":\"14\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"}}]})(props);\n};\nexport function FiPenTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19l7-7 3 3-7 7-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2l7.586 7.586\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"}}]})(props);\n};\nexport function FiPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"5\",\"y2\":\"19\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function FiPhoneCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 1 23 5 19 9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"5\",\"x2\":\"23\",\"y2\":\"5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneIncoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"16\",\"y2\":\"8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"17\",\"y2\":\"7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"7\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"1\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiPhoneOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 7 23 1 17 1\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"}}]})(props);\n};\nexport function FiPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"}}]})(props);\n};\nexport function FiPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"}}]})(props);\n};\nexport function FiPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"}}]})(props);\n};\nexport function FiPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"}}]})(props);\n};\nexport function FiPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"12\",\"height\":\"8\"}}]})(props);\n};\nexport function FiRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"}}]})(props);\n};\nexport function FiRefreshCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 20 23 14 17 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"}}]})(props);\n};\nexport function FiRefreshCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 20 1 14 7 14\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"}}]})(props);\n};\nexport function FiRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 1 21 5 17 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11V9a4 4 0 0 1 4-4h14\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 23 3 19 7 15\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v2a4 4 0 0 1-4 4H3\"}}]})(props);\n};\nexport function FiRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"}}]})(props);\n};\nexport function FiRotateCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"}}]})(props);\n};\nexport function FiRotateCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"}}]})(props);\n};\nexport function FiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"}}]})(props);\n};\nexport function FiSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"}}]})(props);\n};\nexport function FiScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"4\",\"x2\":\"8.12\",\"y2\":\"15.88\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.47\",\"y1\":\"14.48\",\"x2\":\"20\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.12\",\"y1\":\"8.12\",\"x2\":\"12\",\"y2\":\"12\"}}]})(props);\n};\nexport function FiSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"}}]})(props);\n};\nexport function FiSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"2\",\"x2\":\"11\",\"y2\":\"13\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 2 15 22 11 13 2 9 22 2\"}}]})(props);\n};\nexport function FiServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"14\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"6.01\",\"y2\":\"6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"18\",\"x2\":\"6.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"}}]})(props);\n};\nexport function FiShare2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"y1\":\"13.51\",\"x2\":\"15.42\",\"y2\":\"17.49\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"y1\":\"6.51\",\"x2\":\"8.59\",\"y2\":\"10.49\"}}]})(props);\n};\nexport function FiShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiShieldOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"}}]})(props);\n};\nexport function FiShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"}}]})(props);\n};\nexport function FiShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"21\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"}}]})(props);\n};\nexport function FiShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 3 21 3 21 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"20\",\"x2\":\"21\",\"y2\":\"3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 16 21 21 16 21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"15\",\"x2\":\"21\",\"y2\":\"21\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"3\",\"x2\":\"9\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiSkipBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"19\",\"x2\":\"5\",\"y2\":\"5\"}}]})(props);\n};\nexport function FiSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"19\",\"y2\":\"19\"}}]})(props);\n};\nexport function FiSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"}}]})(props);\n};\nexport function FiSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"19.07\",\"y2\":\"19.07\"}}]})(props);\n};\nexport function FiSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"4\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"10\",\"x2\":\"4\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"12\",\"x2\":\"20\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"7\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"8\",\"x2\":\"15\",\"y2\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"16\",\"x2\":\"23\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"}}]})(props);\n};\nexport function FiSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12.01\",\"y2\":\"6\"}}]})(props);\n};\nexport function FiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}}]})(props);\n};\nexport function FiStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"}}]})(props);\n};\nexport function FiStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"}}]})(props);\n};\nexport function FiSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"4.22\",\"x2\":\"5.64\",\"y2\":\"5.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"18.36\",\"x2\":\"19.78\",\"y2\":\"19.78\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"23\",\"y2\":\"12\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"19.78\",\"x2\":\"5.64\",\"y2\":\"18.36\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"5.64\",\"x2\":\"19.78\",\"y2\":\"4.22\"}}]})(props);\n};\nexport function FiSunrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"9\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"}}]})(props);\n};\nexport function FiSunset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 5 12 9 8 5\"}}]})(props);\n};\nexport function FiTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"7.01\",\"y2\":\"7\"}}]})(props);\n};\nexport function FiTarget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function FiTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"20\",\"y2\":\"19\"}}]})(props);\n};\nexport function FiThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"}}]})(props);\n};\nexport function FiThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"}}]})(props);\n};\nexport function FiThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"}}]})(props);\n};\nexport function FiToggleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiToggleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"3\"}}]})(props);\n};\nexport function FiTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"}}]})(props);\n};\nexport function FiTrash2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"11\",\"x2\":\"10\",\"y2\":\"17\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"17\"}}]})(props);\n};\nexport function FiTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"}}]})(props);\n};\nexport function FiTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"width\":\"3\",\"height\":\"9\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"7\",\"width\":\"3\",\"height\":\"5\"}}]})(props);\n};\nexport function FiTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 18 13.5 8.5 8.5 13.5 1 6\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 23 18 23 12\"}}]})(props);\n};\nexport function FiTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 6 13.5 15.5 8.5 10.5 1 18\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 6 23 6 23 12\"}}]})(props);\n};\nexport function FiTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"}}]})(props);\n};\nexport function FiTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"15\",\"height\":\"13\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16 8 20 8 23 11 23 16 16 16 16 8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"18.5\",\"r\":\"2.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"18.5\",\"r\":\"2.5\"}}]})(props);\n};\nexport function FiTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"15\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"}}]})(props);\n};\nexport function FiTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\"}}]})(props);\n};\nexport function FiTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"}}]})(props);\n};\nexport function FiType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"20\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"4\",\"x2\":\"12\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"}}]})(props);\n};\nexport function FiUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"21\"}}]})(props);\n};\nexport function FiUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"}}]})(props);\n};\nexport function FiUploadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"}}]})(props);\n};\nexport function FiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 19 13 23 9\"}}]})(props);\n};\nexport function FiUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"8\",\"x2\":\"20\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiUserX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"13\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"8\",\"x2\":\"18\",\"y2\":\"13\"}}]})(props);\n};\nexport function FiUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"}}]})(props);\n};\nexport function FiUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21v-2a4 4 0 0 0-3-3.87\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"}}]})(props);\n};\nexport function FiVideoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"23 7 16 12 23 17 23 7\"}},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"}}]})(props);\n};\nexport function FiVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"11.5\",\"r\":\"4.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"11.5\",\"r\":\"4.5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"5.5\",\"y1\":\"16\",\"x2\":\"18.5\",\"y2\":\"16\"}}]})(props);\n};\nexport function FiVolume1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"}}]})(props);\n};\nexport function FiVolume2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"}}]})(props);\n};\nexport function FiVolumeX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"9\",\"x2\":\"17\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"}}]})(props);\n};\nexport function FiWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 9 12 12 13.5 13.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"}}]})(props);\n};\nexport function FiWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.71 5.05A16 16 0 0 1 22.58 9\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a11 11 0 0 1 14.08 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a16 16 0 0 1 21.16 0\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"}}]})(props);\n};\nexport function FiWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"}}]})(props);\n};\nexport function FiXCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiXOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiXSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"}}]})(props);\n};\nexport function FiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\"}}]})(props);\n};\nexport function FiYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"}},{\"tag\":\"polygon\",\"attr\":{\"points\":\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"}}]})(props);\n};\nexport function FiZapOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"}},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"}}]})(props);\n};\nexport function FiZap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"}}]})(props);\n};\nexport function FiZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"y1\":\"8\",\"x2\":\"11\",\"y2\":\"14\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"}}]})(props);\n};\nexport function FiZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"}},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"}}]})(props);\n};\n",null,null,null,null,null,null,null,null,null,null,null,null,null,"(function() {\n var crypt = require('crypt'),\n utf8 = require('charenc').utf8,\n bin = require('charenc').bin,\n\n // The core\n sha1 = function (message) {\n // Convert to byte array\n if (message.constructor == String)\n message = utf8.stringToBytes(message);\n else if (typeof Buffer !== 'undefined' && typeof Buffer.isBuffer == 'function' && Buffer.isBuffer(message))\n message = Array.prototype.slice.call(message, 0);\n else if (!Array.isArray(message))\n message = message.toString();\n\n // otherwise assume byte array\n\n var m = crypt.bytesToWords(message),\n l = message.length * 8,\n w = [],\n H0 = 1732584193,\n H1 = -271733879,\n H2 = -1732584194,\n H3 = 271733878,\n H4 = -1009589776;\n\n // Padding\n m[l >> 5] |= 0x80 << (24 - l % 32);\n m[((l + 64 >>> 9) << 4) + 15] = l;\n\n for (var i = 0; i < m.length; i += 16) {\n var a = H0,\n b = H1,\n c = H2,\n d = H3,\n e = H4;\n\n for (var j = 0; j < 80; j++) {\n\n if (j < 16)\n w[j] = m[i + j];\n else {\n var n = w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16];\n w[j] = (n << 1) | (n >>> 31);\n }\n\n var t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + (\n j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 :\n j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 :\n j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 :\n (H1 ^ H2 ^ H3) - 899497514);\n\n H4 = H3;\n H3 = H2;\n H2 = (H1 << 30) | (H1 >>> 2);\n H1 = H0;\n H0 = t;\n }\n\n H0 += a;\n H1 += b;\n H2 += c;\n H3 += d;\n H4 += e;\n }\n\n return [H0, H1, H2, H3, H4];\n },\n\n // Public API\n api = function (message, options) {\n var digestbytes = crypt.wordsToBytes(sha1(message));\n return options && options.asBytes ? digestbytes :\n options && options.asString ? bin.bytesToString(digestbytes) :\n crypt.bytesToHex(digestbytes);\n };\n\n api._blocksize = 16;\n api._digestsize = 20;\n\n module.exports = api;\n})();\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function IoIosAddCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M346.5 240H272v-74.5c0-8.8-7.2-16-16-16s-16 7.2-16 16V240h-74.5c-8.8 0-16 6-16 16s7.5 16 16 16H240v74.5c0 9.5 7 16 16 16s16-7.2 16-16V272h74.5c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}}]})(props);\n};\nexport function IoIosAddCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm90.5 224H272v74.5c0 8.8-7.2 16-16 16-4.4 0-8.4-1.8-11.3-4.7-2.9-2.9-4.7-6.9-4.7-11.3V272h-74.5c-4.4 0-8.4-1.8-11.3-4.7-2.9-2.9-4.7-6.9-4.7-11.3 0-8.8 7.2-16 16-16H240v-74.5c0-8.8 7.2-16 16-16s16 7.2 16 16V240h74.5c8.8 0 16 7.2 16 16s-7.2 16-16 16z\"}}]})(props);\n};\nexport function IoIosAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.5 240H272v-96.5c0-8.8-7.2-16-16-16s-16 7.2-16 16V240h-96.5c-8.8 0-16 7.2-16 16 0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7H240v96.5c0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7 8.8 0 16-7.2 16-16V272h96.5c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"}}]})(props);\n};\nexport function IoIosAirplane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.7 224c-3.4 0-14.8.1-18 .3l-64.9 1.7c-.7 0-1.4-.3-1.7-.9L225.8 79.4c-2.9-4.6-8.1-7.4-13.5-7.4h-23.7c-5.6 0-7.5 5.6-5.5 10.8l50.1 142.8c.5 1.3-.4 2.7-1.8 2.7L109 230.1c-2.6.1-5-1.1-6.6-3.1l-37-45c-3-3.9-7.7-6.1-12.6-6.1H36c-2.8 0-4.7 2.7-3.8 5.3l19.9 68.7c1.5 3.8 1.5 8.1 0 11.9l-19.9 68.7c-.9 2.6 1 5.3 3.8 5.3h16.7c4.9 0 9.6-2.3 12.6-6.1L103 284c1.6-2 4.1-3.2 6.6-3.1l121.7 2.7c1.4.1 2.3 1.4 1.8 2.7L183 429.2c-2 5.2-.1 10.8 5.5 10.8h23.7c5.5 0 10.6-2.8 13.5-7.4L323.1 287c.4-.6 1-.9 1.7-.9l64.9 1.7c3.3.2 14.6.3 18 .3 44.3 0 72.3-14.3 72.3-32S452.1 224 407.7 224z\"}}]})(props);\n};\nexport function IoIosAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381.2 64.1c-1.3-.1-2.6-.1-3.9-.1h-.2c-16.2 0-32 5.4-44.6 15.1-1.6 1.3-2.6 3.2-2.7 5.2-.1 2 .8 4 2.3 5.4l89.8 80.5c1.3 1.1 2.9 1.8 4.6 1.8h.4c1.9-.1 3.6-1 4.8-2.4C440.9 159 448 150.8 448 133c.1-36.4-29.1-66.8-66.8-68.9zM64 133c0 17.8 7.1 26 16.3 36.6 1.2 1.4 2.9 2.3 4.8 2.4h.4c1.7 0 3.3-.6 4.6-1.8L180 89.7c1.5-1.4 2.4-3.3 2.3-5.4-.1-2-1-3.9-2.7-5.2C167 69.4 151.2 64 135 64h-.2c-1.3 0-2.6 0-3.9.1-37.7 2.1-67 32.5-66.9 68.9z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M390 386c26.2-30.7 42-70.5 42-114 0-97.2-78.8-176-176-176S80 174.8 80 272c0 43.5 15.8 83.3 42 114l-34.7 35.5c-6.2 6.3-6 15.5.3 21.6 3.1 3 7.4 4.8 11.4 4.8 4.2 0 8.1-1.9 11.2-5.1l34.6-34.5c30.3 24.7 69 39.6 111.2 39.6s80.9-14.8 111.2-39.6l33.6 34.5c3.1 3.2 7.3 5.1 11.5 5.1 4 0 8.1-1.8 11.2-4.8 6.3-6.2 7.5-15.3 1.3-21.6L390 386zM270 274c0 7.7-6.3 14-14 14h-82c-7.7 0-14-6.3-14-14s6.3-14 14-14h68V158c0-7.7 6.3-14 14-14s14 6.3 14 14v116z\"}}]}]})(props);\n};\nexport function IoIosAlbums (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460.9 161H51.1C31.8 161 16 176.8 16 196.1V428c0 19.3 15.8 35.1 35.1 35.1H461c19.3 0 35.1-15.8 35.1-35.1V196.1c-.1-19.3-15.9-35.1-35.2-35.1zM434 133H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h356c7.7 0 14 6.3 14 14s-6.3 14-14 14zM403.2 77H108.8c-7 0-12.8-5.8-12.8-12.8v-2.4c0-7 5.8-12.8 12.8-12.8h294.4c7 0 12.8 5.8 12.8 12.8v2.4c0 7-5.8 12.8-12.8 12.8z\"}}]})(props);\n};\nexport function IoIosAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm17.2 109.6l-3.1 115.1c-.2 8.2-5.9 14.8-14.1 14.8s-13.9-6.6-14.1-14.8l-3.1-115.1c-.2-9.6 7.5-17.6 17.2-17.6 9.6 0 17.4 7.9 17.2 17.6zM256 354c-10.7 0-19.1-8.1-19.1-18.4s8.4-18.4 19.1-18.4c10.7 0 19.1 8.1 19.1 18.4S266.7 354 256 354z\"}}]})(props);\n};\nexport function IoIosAmericanFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.6 133.4C338.1 92.9 283.9 71 231.4 59.6L59.6 231.4C71 284 92.9 338.1 133.4 378.6c40.5 40.5 94.7 62.4 147.2 73.8l171.8-171.8c-11.4-52.5-33.3-106.7-73.8-147.2zM344.1 288l-19.2 19.2 14.8 14.8c4.9 4.9 4.9 12.7 0 17.6-4.9 4.9-12.7 4.9-17.6 0l-14.8-14.8-19.3 19.4c-2 2-4.5 3.4-7.3 3.9-4.2.7-8.4-.7-11.3-3.6-1.5-1.5-2.6-3.3-3.2-5.3-1.4-4.9-.1-9.7 3.2-13.1l19.5-19.5-15.6-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-15.5-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-15.5-15.6-19.3 19.3c-2.1 2.1-4.7 3.5-7.6 3.9-5.5.7-10.7-1.9-13.4-7-.3-.6-.6-1.2-.8-1.9-1.5-4.9-.2-9.8 3.2-13.2l19.5-19.5-14.8-14.8c-4.9-4.9-4.9-12.7 0-17.6 4.9-4.9 12.7-4.9 17.6 0l14.8 14.8 19.3-19.3c2.1-2.1 4.7-3.5 7.6-3.9 5.5-.7 10.7 1.9 13.4 7 .3.6.6 1.2.8 1.9 1.5 4.9.2 9.8-3.2 13.2l-19.5 19.5 15.6 15.6 19.3-19.3c2-2 4.5-3.4 7.3-3.9 4.2-.7 8.4.7 11.3 3.6 1.5 1.4 2.6 3.2 3.2 5.2 1.5 4.9.2 9.8-3.2 13.2L257 239.4l15.6 15.6 19.3-19.3c2.1-2.1 4.7-3.5 7.6-3.9 5.5-.7 10.7 1.9 13.4 7 .3.6.6 1.2.8 1.9 1.5 4.9.2 9.8-3.2 13.2L291 273.4l15.6 15.6 19.3-19.3c2.2-2.2 5-3.6 8-4 4.4-.5 8.6 1.2 11.4 4.6 4.1 5 3.5 13.1-1.2 17.7zM395.1 464c27.6 0 48.8-1.8 58.8-2.9 3.7-.4 6.7-3.4 7.1-7.1 2-18.9 6.8-77.6-3.2-143.7L310.3 457.9c31 4.7 60.4 6.1 84.8 6.1zM116.8 48C89.3 48 68 49.8 58 50.9c-3.7.4-6.7 3.4-7.1 7.1-2 18.9-6.8 77.6 3.2 143.6L201.6 54.1c-31-4.7-60.4-6.1-84.8-6.1z\"}}]})(props);\n};\nexport function IoIosAnalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zM76 256c0-48.1 18.7-93.3 52.7-127.3S207.9 76 256 76c48.1 0 93.3 18.7 127.3 52.7 32.2 32.2 50.7 74.5 52.6 119.7-8.8-10.3-24.2-24-43.8-24-27.5 0-41.7 25.7-51 42.7-1.4 2.5-2.7 4.9-3.9 7-11.4 19.2-27.3 30-42.5 28.9-13.4-.9-24.8-11.2-32.2-28.8-9.2-22.1-29.1-45.8-52.9-49.2-11.3-1.6-28.1.8-44.7 21.4-3.2 4-6.9 9.4-11.1 15.6-10.4 15.5-26.2 38.8-38.1 40.8-17.3 2.8-30.9-7.5-36.4-12.3-2.2-11.2-3.3-22.8-3.3-34.5z\"}}]})(props);\n};\nexport function IoIosAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.2 371.4c-1.8 0-2.7 2.2-1.4 3.4l54.9 54.9L326 452c42.4-15.2 78.5-43.7 103.1-80.6H250.2zM167 334.6V444c27 12.8 57.1 20 89 20 14.1 0 27.9-1.4 41.2-4.1L170.4 333.2c-1.2-1.3-3.4-.4-3.4 1.4zM256 48c-13.9 0-27.4 1.4-40.5 4l126.8 126.8c1.3 1.3 3.4.4 3.4-1.4V68.3C318.6 55.3 288.2 48 256 48zM68.1 166.6C55.2 193.7 48 224 48 256c0 14.1 1.4 27.9 4.1 41.2L179.2 170c1.3-1.3.4-3.4-1.4-3.4H68.1zM186.7 59.9C144 75 107.7 103.6 83 140.7h179.7c1.8 0 2.7-2.2 1.4-3.4l-77.4-77.4zM167 220.6v70.7c0 1.1.4 2.1 1.2 2.8l50 50c.8.8 1.8 1.2 2.8 1.2h70.7c1.1 0 2.1-.4 2.8-1.2l50-50c.8-.8 1.2-1.8 1.2-2.8v-70.7c0-1.1-.4-2.1-1.2-2.8l-50-50c-.8-.8-1.8-1.2-2.8-1.2H221c-1.1 0-2.1.4-2.8 1.2l-50 50c-.7.8-1.2 1.8-1.2 2.8zM460 215.5L333.6 342c-1.3 1.3-.4 3.4 1.4 3.4h108.8c13-27.1 20.2-57.4 20.2-89.4 0-13.9-1.4-27.4-4-40.5zM371.8 83.2v179c0 1.8 2.2 2.7 3.4 1.4l76.9-76.9c-15-42.6-43.5-78.8-80.3-103.5zM60.1 325.9c15.2 42.6 43.9 78.8 81 103.4V249.8c0-1.8-2.2-2.7-3.4-1.4l-77.6 77.5z\"}}]})(props);\n};\nexport function IoIosApps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.8 137.6L285.4 69.5c-16.2-7.4-42.7-7.4-58.9 0L77.2 137.6c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.6-8 17.6-21.1 0-29.1zM225.2 375.2l-99.8-45.5c-4.2-1.9-9.1-1.9-13.3 0l-34.9 15.9c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-34.9-15.9c-4.2-1.9-9.1-1.9-13.3 0l-99.8 45.5c-16.9 7.7-44.7 7.7-61.6 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M434.8 241.6l-31.7-14.4c-4.2-1.9-9-1.9-13.2 0l-108 48.9c-15.3 5.2-36.6 5.2-51.9 0l-108-48.9c-4.2-1.9-9-1.9-13.2 0l-31.7 14.4c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.9 7.7 44.7 7.7 61.6 0l148-67.5c17.7-8 17.7-21.1.1-29.1z\"}}]})(props);\n};\nexport function IoIosAppstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-78.9 296.9c-2.7 4.6-7.5 7.1-12.5 7.1-2.5 0-5-.6-7.3-2-6.9-4-9.2-12.8-5.2-19.7l14.2-23.6c1.5-2.5 4.1-4 7-4h2.1c10.3 0 17.5 6.2 19.6 12.2l-17.9 30zm120.2-46.4l-93 .1h-61.8c-8.2 0-14.8-6.8-14.4-15 .3-7.8 7.1-13.7 14.9-13.7h44.8l53.1-90.4-17.2-29.3c-3.9-6.7-2.2-15.5 4.4-19.7 7-4.5 16.2-2.2 20.3 4.8l9.2 15.7h.1l9.2-15.7c4.1-7 13.4-9.3 20.3-4.8 6.6 4.2 8.3 13 4.4 19.7l-17.2 29.3-16.7 28.5-36.3 61.9v.1h53.5c6.7 0 15.1 3.6 18.5 9.4l.3.6c3 5.1 4.7 8.6 4.7 13.7-.1 2.8-1.1 4.8-1.1 4.8zm72.2.1h-25.2v.1l18.4 31.3c4 6.8 2.1 15.8-4.8 20-2.3 1.4-4.9 2.1-7.5 2.1-5 0-9.8-2.6-12.5-7.1l-27.2-46.3-16.9-28.8-21.8-37.3c-6.4-10.9-6.7-24.5-.6-35.3 4.3-7.6 7.6-9.6 7.6-9.6l48.5 82.1h41.7c7.8 0 14.5 6 14.9 13.7.3 8.3-6.3 15.1-14.6 15.1z\"}}]})(props);\n};\nexport function IoIosArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460 120H52c-2.2 0-4-1.8-4-4V96c0-17.7 14.3-32 32-32h352c17.7 0 32 14.3 32 32v20c0 2.2-1.8 4-4 4zM440 146H72c-4.4 0-8 3.6-8 8v262c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V154c0-4.4-3.6-8-8-8zM306 288h-99.6c-7.1 0-13.4-5.2-14.3-12.3-1-8.5 5.6-15.7 13.9-15.7h99.6c7.1 0 13.4 5.2 14.3 12.3 1 8.4-5.6 15.7-13.9 15.7z\"}}]})(props);\n};\nexport function IoIosArrowBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M217.9 256L345 129c9.4-9.4 9.4-24.6 0-33.9-9.4-9.4-24.6-9.3-34 0L167 239c-9.1 9.1-9.3 23.7-.7 33.1L310.9 417c4.7 4.7 10.9 7 17 7s12.3-2.3 17-7c9.4-9.4 9.4-24.6 0-33.9L217.9 256z\"}}]})(props);\n};\nexport function IoIosArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 294.1L383 167c9.4-9.4 24.6-9.4 33.9 0s9.3 24.6 0 34L273 345c-9.1 9.1-23.7 9.3-33.1.7L95 201.1c-4.7-4.7-7-10.9-7-17s2.3-12.3 7-17c9.4-9.4 24.6-9.4 33.9 0l127.1 127z\"}}]})(props);\n};\nexport function IoIosArrowDropdownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm289.1-43.4c7.5-7.5 19.8-7.5 27.3 0 3.8 3.8 5.6 8.7 5.6 13.6s-1.9 9.9-5.7 13.7l-94.3 94c-7.6 6.9-19.3 6.7-26.6-.6l-95.7-95.4c-7.5-7.5-7.6-19.7 0-27.3 7.5-7.5 19.7-7.6 27.3 0l81.1 81.9 81-79.9z\"}}]})(props);\n};\nexport function IoIosArrowDropdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M147.6 210.7c-7.5 7.5-7.5 19.8 0 27.3l95.7 95.4c7.3 7.3 19.1 7.5 26.6.6l94.3-94c3.8-3.8 5.7-8.7 5.7-13.7 0-4.9-1.9-9.9-5.6-13.6-7.5-7.5-19.7-7.6-27.3 0l-81 79.8-81.1-81.9c-7.5-7.5-19.7-7.5-27.3.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm332.4-124.4C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6z\"}}]})(props);\n};\nexport function IoIosArrowDropleftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm43.4 289.1c7.5 7.5 7.5 19.8 0 27.3-3.8 3.8-8.7 5.6-13.6 5.6s-9.9-1.9-13.7-5.7l-94-94.3c-6.9-7.6-6.7-19.3.6-26.6l95.4-95.7c7.5-7.5 19.7-7.6 27.3 0 7.5 7.5 7.6 19.7 0 27.3l-81.9 81 79.9 81.1z\"}}]})(props);\n};\nexport function IoIosArrowDropleft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.3 147.6c-7.5-7.5-19.8-7.5-27.3 0l-95.4 95.7c-7.3 7.3-7.5 19.1-.6 26.6l94 94.3c3.8 3.8 8.7 5.7 13.7 5.7 4.9 0 9.9-1.9 13.6-5.6 7.5-7.5 7.6-19.7 0-27.3l-79.8-81 81.9-81.1c7.5-7.5 7.5-19.7-.1-27.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm124.4 332.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4z\"}}]})(props);\n};\nexport function IoIosArrowDroprightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm244.5 0l-81.9-81.1c-7.5-7.5-7.5-19.8 0-27.3s19.8-7.5 27.3 0l95.4 95.7c7.3 7.3 7.5 19.1.6 26.6l-94 94.3c-3.8 3.8-8.7 5.7-13.7 5.7-4.9 0-9.9-1.9-13.6-5.6-7.5-7.5-7.6-19.7 0-27.3l79.9-81z\"}}]})(props);\n};\nexport function IoIosArrowDropright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M210.7 147.6c7.5-7.5 19.8-7.5 27.3 0l95.4 95.7c7.3 7.3 7.5 19.1.6 26.6l-94 94.3c-3.8 3.8-8.7 5.7-13.7 5.7-4.9 0-9.9-1.9-13.6-5.6-7.5-7.5-7.6-19.7 0-27.3l79.9-81.1-81.9-81.1c-7.6-7.4-7.6-19.6 0-27.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256c0 114.9 93.1 208 208 208s208-93.1 208-208S370.9 48 256 48 48 141.1 48 256zm32 0c0-47 18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432s-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256z\"}}]})(props);\n};\nexport function IoIosArrowDropupCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256s93.1 208 208 208zm0-244.5l-81.1 81.9c-7.5 7.5-19.8 7.5-27.3 0s-7.5-19.8 0-27.3l95.7-95.4c7.3-7.3 19.1-7.5 26.6-.6l94.3 94c3.8 3.8 5.7 8.7 5.7 13.7 0 4.9-1.9 9.9-5.6 13.6-7.5 7.5-19.7 7.6-27.3 0l-81-79.9z\"}}]})(props);\n};\nexport function IoIosArrowDropup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M147.6 301.3c-7.5-7.5-7.5-19.8 0-27.3l95.7-95.4c7.3-7.3 19.1-7.5 26.6-.6l94.3 94c3.8 3.8 5.7 8.7 5.7 13.7 0 4.9-1.9 9.9-5.6 13.6-7.5 7.5-19.7 7.6-27.3 0l-81-79.8-81.1 81.9c-7.5 7.5-19.7 7.5-27.3-.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256s93.1 208 208 208zm0-32c-47 0-91.2-18.3-124.4-51.6C98.3 347.2 80 303 80 256s18.3-91.2 51.6-124.4C164.8 98.3 209 80 256 80s91.2 18.3 124.4 51.6C413.7 164.8 432 209 432 256s-18.3 91.2-51.6 124.4C347.2 413.7 303 432 256 432z\"}}]})(props);\n};\nexport function IoIosArrowForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z\"}}]})(props);\n};\nexport function IoIosArrowRoundBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216.4 163.7c5.1 5 5.1 13.3.1 18.4L155.8 243h231.3c7.1 0 12.9 5.8 12.9 13s-5.8 13-12.9 13H155.8l60.8 60.9c5 5.1 4.9 13.3-.1 18.4-5.1 5-13.2 5-18.3-.1l-82.4-83c-1.1-1.2-2-2.5-2.7-4.1-.7-1.6-1-3.3-1-5 0-3.4 1.3-6.6 3.7-9.1l82.4-83c4.9-5.2 13.1-5.3 18.2-.3z\"}}]})(props);\n};\nexport function IoIosArrowRoundDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348.3 295.6c-5-5.1-13.3-5.1-18.4-.1L269 356.2V124.9c0-7.1-5.8-12.9-13-12.9s-13 5.8-13 12.9v231.3l-60.9-60.8c-5.1-5-13.3-4.9-18.4.1-5 5.1-5 13.2.1 18.3l83 82.4c1.2 1.1 2.5 2 4.1 2.7 1.6.7 3.3 1 5 1 3.4 0 6.6-1.3 9.1-3.7l83-82.4c5.2-4.9 5.3-13.1.3-18.2z\"}}]})(props);\n};\nexport function IoIosArrowRoundForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M295.6 163.7c-5.1 5-5.1 13.3-.1 18.4l60.8 60.9H124.9c-7.1 0-12.9 5.8-12.9 13s5.8 13 12.9 13h231.3l-60.8 60.9c-5 5.1-4.9 13.3.1 18.4 5.1 5 13.2 5 18.3-.1l82.4-83c1.1-1.2 2-2.5 2.7-4.1.7-1.6 1-3.3 1-5 0-3.4-1.3-6.6-3.7-9.1l-82.4-83c-4.9-5.2-13.1-5.3-18.2-.3z\"}}]})(props);\n};\nexport function IoIosArrowRoundUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348.3 216.4c-5 5.1-13.3 5.1-18.4.1L269 155.8v231.3c0 7.1-5.8 12.9-13 12.9s-13-5.8-13-12.9V155.8l-60.9 60.8c-5.1 5-13.3 4.9-18.4-.1-5-5.1-5-13.2.1-18.3l83-82.4c1.2-1.1 2.5-2 4.1-2.7 1.6-.7 3.3-1 5-1 3.4 0 6.6 1.3 9.1 3.7l83 82.4c5.2 4.9 5.3 13.1.3 18.2z\"}}]})(props);\n};\nexport function IoIosArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 217.9L383 345c9.4 9.4 24.6 9.4 33.9 0 9.4-9.4 9.3-24.6 0-34L273 167c-9.1-9.1-23.7-9.3-33.1-.7L95 310.9c-4.7 4.7-7 10.9-7 17s2.3 12.3 7 17c9.4 9.4 24.6 9.4 33.9 0l127.1-127z\"}}]})(props);\n};\nexport function IoIosAt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 234.3c0 74.1-34.7 120.8-89.6 120.8-28.1 0-49.5-15-53.2-37.3h-4c-9.9 23.2-30.3 35.9-57.7 35.9-48.8 0-81.4-39.1-81.4-97.3 0-55.9 32.8-94.8 80.7-94.8 24.6 0 45.5 12.4 54.7 32.7h4v-27.8h39.9v129.3c0 16.1 8.9 25.8 24.9 25.8 27.7 0 45.3-33.6 45.3-85.8 0-83.3-62.4-139-154.6-139-91.2 0-156.2 66.5-156.2 160.6 0 96.2 64.3 157.6 164.4 157.6 19.6 0 39.3-1.7 54.4-4.6 9.8-1.8 18.8 5.6 18.8 15.5 0 7.3-5 13.7-12.1 15.4-18.2 4.3-40.1 6.8-62.7 6.8C141.9 448 64 372.8 64 256.1 64 142.2 143.5 64 259.4 64 370.8 64 448 133.5 448 234.3zm-242.8 23c0 37 17.4 59.4 45.7 59.4 29.8 0 48.6-23 48.6-59.4s-18.8-58.9-48.1-58.9c-29.1 0-46.2 21.8-46.2 58.9z\"}}]})(props);\n};\nexport function IoIosAttach (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M355.9 161.1c-8.6 0-15.6 7-15.6 15.6v194.4c0 20.3-8 40.4-22 55.1-13.9 14.6-35.2 23.7-55.5 23.7h-13.6c-19.6 0-39.5-8.9-54.8-24.6-15.2-15.5-23.9-35.6-23.9-55.2V119.3c0-14.9 6.2-28.9 17.3-39.5 11.1-10.5 25.7-16.3 41-16.3 15.1 0 29.3 5.8 39.8 16.2 10.5 10.5 16.4 24.6 16.4 39.6v234.2c0 17.1-13.6 32.2-29 32.2-13.6 0-28.2-12.9-28.2-32.2V219.9c0-8.6-7-15.6-15.6-15.6s-15.6 7-15.6 15.6v133.6c0 35.5 25.5 62.3 59.4 62.3 16.5 0 31.7-6.1 42.7-17.3 11.3-11.4 17.5-27.4 17.5-45V119.3c0-23.4-9.1-45.4-25.7-61.8C274 41 252 32 228.5 32s-45.5 9-62.2 25.5c-16.7 16.5-25.9 38.4-25.9 61.9v250.8c0 28.7 12.2 57.9 32.6 78 20.9 20.6 47.9 31.9 76.1 31.9h13.6c27.6 0 55.3-11.7 75.9-32.1 10.2-10.1 18.2-21.7 23.9-34.6 5.9-13.5 8.9-27.7 8.9-42.1V176.7c.1-8.6-6.9-15.6-15.5-15.6z\"}}]})(props);\n};\nexport function IoIosBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395 96H230c-46.7 0-73.2 34.7-102 63.5s-72.1 74.7-72.1 74.7C51 239.8 48 247 48 255.1c0 8 3 15.3 7.9 21 0 0 34.3 37.6 72.1 75.5 37.8 37.8 56.7 64.5 102 64.5h165c38.5 0 69-32.5 69-71V165c0-38.5-30.5-69-69-69zm-17.7 212.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.2-16.4 6.2-22.6 0L302 278.6l-52.7 52.7c-6.2 6.2-16.3 6.4-22.6 0-6.4-6.4-6.7-15.9 0-22.6l52.7-52.7-52.7-52.7c-6-6-7.1-15.6 0-22.6 7.1-7.1 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L324.6 256l52.7 52.7z\"}}]})(props);\n};\nexport function IoIosBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121.6 388H80.8c-2.2 0-4-1.8-4-4V128c0-2.2 1.8-4 4-4h40.5c7.9 0 14.5-6.4 14.7-14 .1-3.9-1.3-7.2-4.1-10-2.7-2.8-8-4-11.9-4H66c-10 0-18 6-18 16v288c0 10 7 16 17 16h56.3c7.9 0 14.5-5.2 14.7-12.8.1-3.9-1.3-7.5-4.1-10.3-2.7-2.8-6.4-4.9-10.3-4.9zM447 96h-56.3c-9.5 0-17.1 8.3-14 18.3.2.7.5 1.3.8 1.9 2.7 5.2 7.6 7.8 12.9 7.8h40.8c2.2 0 4 1.8 4 4v255.9c0 2.2-1.8 4-4 4h-40.5c-7.9 0-14.5 6.2-14.7 13.9-.1 3.9 1.3 7.6 4.1 10.4 2.7 2.8 6.4 3.8 10.3 3.8H447c10 0 17-6 17-16.4V112c0-10-7-16-17-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M122.5 176c-7.7 0-14 6.3-14 13.9V322c0 7.7 6.3 13.9 14 13.9s14-6.3 14-13.9V189.9c0-7.6-6.3-13.9-14-13.9zM389.5 336c7.7 0 14-6.3 14-13.9V189.9c0-7.7-6.3-13.9-14-13.9s-14 6.3-14 13.9V322c0 7.7 6.3 14 14 14zM326.5 144c-7.7 0-14 6.5-14 14.4v195.1c0 8 6.3 14.4 14 14.4s14-6.5 14-14.4V158.4c0-7.9-6.3-14.4-14-14.4zM185.5 144c-7.7 0-14 6.5-14 14.4v195.1c0 8 6.3 14.4 14 14.4s14-6.5 14-14.4V158.4c0-7.9-6.2-14.4-14-14.4zM256 160c-7.7 0-14 6.4-14 14.2v163.5c0 7.8 6.3 14.2 14 14.2s14-6.4 14-14.2V174.2c0-7.8-6.3-14.2-14-14.2z\"}}]})(props);\n};\nexport function IoIosBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.3 74.2l9.7-3.1c4.7-1.5 9.7 1.1 11.2 5.7l.1.4c1.5 4.7-1.1 9.7-5.7 11.2L260.1 92c-2.1.7-3.2 2.9-2.6 4.9 2.1 6.9 4.5 13.7 7.2 20.5 1.9 4.6 3.9 9.2 6.1 13.7 1.1 2.2 3.8 3 5.9 1.6l8.5-5.8c4.1-2.7 9.6-1.7 12.3 2.4l.2.3c2.7 4.1 1.7 9.6-2.4 12.3l-10.4 7.1a4 4 0 0 0-1.2 5.4c7 11 14.9 21.5 23.7 31.3 1.5 1.7 4.2 1.8 5.8.2l7.5-7.5c3.5-3.5 9.1-3.5 12.5 0l.3.3c3.5 3.5 3.5 9.1 0 12.5l-7.5 7.5c-1.6 1.6-1.5 4.3.2 5.8 10.2 9.1 21 17.3 32.5 24.4a4 4 0 0 0 5.4-1.2l6.9-10.2c2.7-4.1 8.3-5.1 12.3-2.4l.3.2c4.1 2.7 5.1 8.3 2.4 12.3l-5.5 8.1c-1.4 2-.6 4.8 1.6 5.9 4.1 1.9 8.2 3.8 12.4 5.5 7.1 2.9 14.3 5.4 21.7 7.6 2.1.6 4.3-.5 5-2.6l3.5-10.8c1.5-4.7 6.5-7.2 11.2-5.7l.4.1c4.7 1.5 7.2 6.5 5.7 11.2l-2.8 8.8c-.7 2.3.7 4.7 3.1 5.2 7.1 1.3 14.3 2.3 21.5 2.9.1-2.6.2-5.3.2-7.9 0-114.9-93.1-208-208-208-2.7 0-5.3.1-8 .2.7 7.7 1.7 15.3 3.1 22.9.4 2.5 2.9 3.9 5.2 3.2zM258 447.2c-.4-2.4-2.8-3.9-5.2-3.2l-11.6 3.7c-4.7 1.5-9.7-1.1-11.2-5.7l-.1-.4c-1.5-4.7 1.1-9.7 5.7-11.2l13.8-4.4c2-.7 3.2-2.8 2.6-4.9-2.3-7.9-5-15.6-8.1-23.3-1.6-4-3.3-7.9-5.2-11.8-1-2.2-3.8-3-5.9-1.6l-10.9 7.4c-4.1 2.7-9.6 1.7-12.3-2.4l-.2-.3c-2.7-4.1-1.7-9.6 2.4-12.3l13-8.8a4 4 0 0 0 1.2-5.4c-7.2-11.7-15.5-22.7-24.8-33.1-1.5-1.7-4.2-1.8-5.8-.2l-9.9 9.9c-3.5 3.5-9.1 3.5-12.5 0l-.3-.3c-3.5-3.5-3.5-9.1 0-12.5l9.9-9.9c1.6-1.6 1.5-4.3-.2-5.8-10-9-20.6-17-31.9-24a4 4 0 0 0-5.4 1.2l-9 13.3c-2.7 4.1-8.3 5.1-12.3 2.4l-.3-.2c-4.1-2.7-5.1-8.3-2.4-12.3l7.6-11.3c1.4-2 .6-4.8-1.6-5.9-4.3-2.1-8.6-4-13.1-5.8-7.3-2.9-14.6-5.5-22.1-7.7-2-.6-4.3.6-4.9 2.6l-4.6 14.4c-1.5 4.7-6.5 7.2-11.2 5.7l-.4-.1c-4.7-1.5-7.2-6.5-5.7-11.2l4-12.4c.7-2.3-.7-4.8-3.1-5.2-5.8-1-11.7-1.8-17.6-2.4-.1 0-.3 0-.4-.1v4.2c0 114.9 93.1 208 208 208h4.2c0-.1-.1-.3-.1-.4-.5-5.4-1.2-10.9-2.1-16.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M431.1 280.9l-5.9 18.4c-1.5 4.7-6.5 7.2-11.2 5.7l-.4-.1c-4.7-1.5-7.2-6.5-5.7-11.2l5.3-16.6c.7-2.1-.5-4.4-2.7-5.1-13.5-4-26.8-9.2-39.7-15.6-1.8-.9-4-.3-5.1 1.3l-10.5 15.4c-2.7 4.1-8.3 5.1-12.3 2.4l-.3-.2c-4.1-2.7-5.1-8.3-2.4-12.3l9.2-13.6c1.3-1.9.7-4.4-1.2-5.6-12.3-7.7-24.1-16.6-35.2-26.7-1.6-1.4-4-1.4-5.5.1L294.7 230c-3.5 3.5-9.1 3.5-12.5 0l-.3-.3c-3.5-3.5-3.5-9.1 0-12.5l12.8-12.8c1.5-1.5 1.6-3.9.1-5.5-9.7-10.8-18.4-22.2-26-34-1.2-1.9-3.8-2.5-5.6-1.2l-13.3 9c-4.1 2.7-9.6 1.7-12.3-2.4l-.2-.3c-2.7-4.1-1.7-9.6 2.4-12.3l15.1-10.2c1.7-1.1 2.2-3.3 1.3-5.1-6.4-12.9-11.7-26.2-15.8-39.7-.7-2.1-2.9-3.4-5.1-2.7l-15.9 5.1c-4.7 1.5-9.7-1.1-11.2-5.7l-.1-.4c-1.5-4.7 1.1-9.7 5.7-11.2l17.6-5.6c1.9-.6 3.1-2.6 2.7-4.6-1.8-9.2-3.1-18.6-3.9-27.9-95.4 11.8-170.8 88.2-181 184.1h1c7.5.7 15 1.8 22.4 3.2 2 .4 4-.8 4.6-2.7l4.7-14.8c1.5-4.7 6.5-7.2 11.2-5.7l.4.1c4.7 1.5 7.2 6.5 5.7 11.2l-4.2 13c-.7 2.2.5 4.4 2.7 5.1 13.9 4.1 27.5 9.4 40.7 16 1.8.9 4 .3 5.1-1.3l8.3-12.3c2.7-4.1 8.3-5.1 12.3-2.4l.3.2c4.1 2.7 5.1 8.3 2.4 12.3l-7.1 10.5c-1.3 1.9-.7 4.4 1.2 5.6 12.1 7.7 23.7 16.4 34.6 26.3 1.6 1.4 4 1.4 5.5-.1l10.4-10.4c3.5-3.5 9.1-3.5 12.5 0l.3.3c3.5 3.5 3.5 9.1 0 12.5L214 310.8c-1.5 1.5-1.6 3.9-.1 5.5 10.2 11.3 19.2 23.3 27 35.8 1.2 2 3.7 2.5 5.7 1.2l10.8-7.3c4.1-2.7 9.6-1.7 12.3 2.4l.2.3c2.7 4.1 1.7 9.6-2.4 12.3l-12.7 8.6c-1.7 1.1-2.2 3.3-1.3 5.1 6.4 13.2 11.7 26.7 15.7 40.6.6 2.2 2.9 3.4 5.1 2.7l13.6-4.4c4.7-1.5 9.7 1.1 11.2 5.7l.1.4c1.5 4.7-1.1 9.7-5.7 11.2l-15.6 5c-1.9.6-3.1 2.6-2.7 4.6 1.3 7 2.3 14.1 3 21.2v1c95.9-10.2 172.3-85.6 184.1-181-8.9-.7-17.9-1.9-26.7-3.6-1.9-.3-3.9.9-4.5 2.8z\"}}]})(props);\n};\nexport function IoIosBasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M387.9 373.7h49.2l17.5-75.4h-66.7zM387.9 448h.5c18.7 0 33.4-12.5 38.3-29.5l6-25.9h-44.8V448zM265.4 392.5h103.7V448H265.4zM75 373.7h49v-75.4H57.5zM142.9 192h103.7v87.5H142.9zM265.4 192h103.7v87.5H265.4zM85.5 418.3c4.7 17 19.4 29.7 38.1 29.7h.5v-55.5H79.4l6.1 25.8zM142.9 392.5h103.7V448H142.9zM265.4 298.3h103.7v75.4H265.4zM142.9 298.3h103.7v75.4H142.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M464 192h-47.9V96c0-17.6-14.4-32-32-32H127.9c-17.6 0-32 14.4-32 32v96H48c-10.3 0-17.9 9.6-15.6 19.6l19.7 67.9H124V106c0-7.7 6.3-14 14-14h236c7.7 0 14 6.3 14 14v173.5h72l19.6-67.9c2.3-10-5.3-19.6-15.6-19.6z\"}}]})(props);\n};\nexport function IoIosBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.6 306.4c14.3-11.8 28.3-24.4 41.4-37.6l6.1-6.1c-2.8-2.9-5.6-5.8-8.3-8.5-49.9-49.9-107.7-89.6-171.8-118.1-18.4 26.1-31 56.6-35.8 89.6 32.2 2.3 63.2 10.5 92.2 24.5 28.8 13.9 54.4 32.8 76.2 56.2zM326.1 185.6c.5.5 1.1 1.1 1.7 1.6 20.9-30.5 38.8-63.2 53.5-97.4-33.8-25.5-75.6-41-121-41.9 2.4 22.3 8 44.1 16.7 64.7 11.5 27.4 28.1 52 49.1 73zM399 234.8c20.7 8.8 42.6 14.4 65 16.7-1.2-56.3-24.8-107.1-62.2-143.9-15 33.8-33.3 66.3-54.4 96.8 15.8 12.4 33.2 22.6 51.6 30.4zM193.9 318.1c-21.1-21.1-45.6-37.6-72.9-49.2-23.2-9.8-47.7-15.6-72.9-17.4 0 1.5-.1 3-.1 4.4 0 48.7 16.7 93.5 44.8 128.9 37.3-17 72.7-37.9 105.4-62.4-1.5-1.4-2.9-2.9-4.3-4.3zM283.8 243.6c10.1-11.3 19.7-23.1 28.8-35.1-44.5-42.3-72.1-98.6-78.2-159.5-51.9 5.4-98.1 29.8-131.5 66.2 33.4 15.3 65.5 33.8 95.6 55.1 30.5 21.7 59.2 46.3 85.3 73.3zM301.4 262.8c38.9 44 70.9 93.2 95.3 146.4 36.4-33.5 60.9-79.8 66.2-131.7-47.7-4.7-92.8-22.6-130.8-52-9.6 12.7-20 25.3-30.7 37.3zM235.3 326.2c29.9 39.5 47.5 86.2 51 135.6 33-4.8 63.5-17.4 89.5-35.8-23.4-52.6-54.3-101-92.2-144.2-15.2 15.6-31.4 30.5-48.3 44.4zM214.9 342.3c-32.4 24.4-67.4 45.5-104 62.8 37.5 36.5 88.6 59 145.1 59 1.5 0 3 0 4.5-.1-1.8-25.2-7.6-49.7-17.4-72.9-7.4-17.5-16.8-33.8-28.2-48.8z\"}}]})(props);\n};\nexport function IoIosBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192H76c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h308c6.6 0 12-5.4 12-12V204c0-6.6-5.4-12-12-12zM218.8 308l8.4-43H200l45.2-61-8.4 43H264l-45.2 61z\"}}]})(props);\n};\nexport function IoIosBatteryDead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z\"}}]})(props);\n};\nexport function IoIosBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 144H64c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h332c26.4 0 48-21.6 48-48V192c0-26.4-21.6-48-48-48zm20 176c0 11-9 20-20 20H64c-11 0-20-9-20-20V192c0-11 9-20 20-20h332c11 0 20 9 20 20v128zM464 204.6v102.8c16 0 32-27.7 32-51.4s-16-51.4-32-51.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192H76c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h308c6.6 0 12-5.4 12-12V204c0-6.6-5.4-12-12-12z\"}}]})(props);\n};\nexport function IoIosBeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.2 48H128.5C74.1 48 64 75.9 64 88.2c30.3 4.2 32 4.2 32 36.2v275.5c0 35.3 28.9 64 64.2 64H368c35.4 0 63-29.2 63-64.5V89.2c2-17.5 12.5-31.6 13.6-33.3 1.2-1.9 3.4-4.4 3.4-5.5 0-1.2-.3-2.4-2.8-2.4zm-333 29.3c0-.1 0-.1 0 0 6-1 12-1.3 16.3-1.3H405c-.9 3.7-1.5 7.1-1.8 10-.1 1.1-.2 2.1-.2 3.2v70.9-.1H124v-35.5c0-17.6 0-34.2-11.8-47.2z\"}}]})(props);\n};\nexport function IoIosBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458.2 208h-.4c-12 0-21.8 9.8-21.8 21.8 0 1.2-1 2.2-2.2 2.2H78.2c-1.2 0-2.2-1-2.2-2.2 0-12-9.8-21.8-21.8-21.8h-.4c-12 0-21.8 9.8-21.8 21.8v180.4c0 12 9.8 21.8 21.8 21.8h.4c12 0 21.8-9.8 21.8-21.8V404c0-2.2 1.8-4 4-4h352c2.2 0 4 1.8 4 4v6.2c0 12 9.8 21.8 21.8 21.8h.4c12 0 21.8-9.8 21.8-21.8V229.8c0-12-9.8-21.8-21.8-21.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M84 214h22.5c2.2 0 4-1.8 4-4v-13c0-8.8 7.2-16 16-16H224c8.8 0 16 7.2 16 16v13c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4v-13c0-8.8 7.2-16 16-16h97.5c8.8 0 16 7.2 16 16v13c0 2.2 1.8 4 4 4H428c4.4 0 8-3.6 8-8v-94c0-17.6-14.4-32-32-32H108c-17.6 0-32 14.4-32 32v94c0 4.4 3.6 8 8 8z\"}}]})(props);\n};\nexport function IoIosBeer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 162c0-13.3 10.7-24 24-24h229.5c4.9 0 9.6 1.5 13.5 4.4 2 1.5 4.9 0 4.8-2.5-.1-5.7-.2-9.3-.2-21.6 0-20.8-17.2-38.3-38.1-38.3h-.2c-5.7-.4-10.8-4-12.9-9.3-9-22.6-32.3-38.6-56.4-38.6-21 0-34.2 7-44 18.3-4.4 5-11.8 5.9-17.4 2.4-7.3-4.6-16.1-7.1-25.5-7.1-14.4 0-27.2 7.1-35.8 17.4-4 4.9-10.4 7-16.6 5.9-5.2-1-12.6-1.8-22.7-1.8-25 0-50 16.6-50 42.4v4c0 28.8 16 22.9 16 41.8v50.8c0 13.4-11.2 19.3-11.2 35.2 0 8.8 8 16.8 16.8 16.8H112V162zM386 452H110c-7.7 0-14 6.3-14 14s6.3 14 14 14h276c7.7 0 14-6.3 14-14s-6.3-14-14-14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 194h-32v-24c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v213.8c0 12.1-1.1 18.2-3.2 30.1l-.1.5c-.8 4.7.2 9.5 2.8 13.5 3.4 5.1 9.1 8.2 15.3 8.2h213.9c4.1 0 8.1-1.4 11.1-4.1 4.7-4.1 6.5-10.3 5.2-16-2.7-11.8-4.5-17.8-4.8-29.9H400c26.4 0 48-21.6 48-48v-96c0-26.5-21.6-48.1-48-48.1zm20 144c0 11-9 20-20 20h-32V222h32c11 0 20 9 20 20v96z\"}}]})(props);\n};\nexport function IoIosBicycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.3 289.3c17.3 0 33.7 6.8 46.1 19.2 12.4 12.4 19.2 28.8 19.2 46.1s-6.8 33.7-19.2 46.1c-12.4 12.4-28.8 19.2-46.1 19.2s-33.7-6.8-46.1-19.2C66.8 388.4 60 372 60 354.7s6.8-33.7 19.2-46.1c12.4-12.4 28.8-19.3 46.1-19.3m0-28c-51.3 0-93.3 42-93.3 93.3C32 406 74 448 125.3 448s93.3-42 93.3-93.3c.1-51.4-41.9-93.4-93.3-93.4zM319.8 127.8c17.8 0 32-14.2 32-32S337.8 64 320 64s-32.2 14-32.2 31.8c0 17.7 14.3 32 32 32zM386.7 289.3c17.3 0 33.7 6.8 46.1 19.2 12.4 12.4 19.2 28.8 19.2 46.1s-6.8 33.7-19.2 46.1C420.4 413.2 404 420 386.7 420s-33.7-6.8-46.1-19.2c-12.4-12.4-19.2-28.8-19.2-46.1s6.8-33.7 19.2-46.1c12.3-12.4 28.7-19.3 46.1-19.3m0-28c-51.3 0-93.3 42-93.3 93.3s42 93.3 93.3 93.3 93.3-42 93.3-93.3-42-93.3-93.3-93.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M368 192h-48l-29.5-60.1c-5.6-9.3-15.9-15.9-27.1-15.9-8.4 0-16.8 3.7-22.4 9.3l-71.7 69.1c-5.6 5.6-9.3 14-9.3 22.4 0 17.4 12.6 23.6 18.5 27.1C224 270.1 240 273 240 286.1V352c0 8.8 7.2 16 16 16s16-7.2 16-16v-90c0-13.2-30.4-24-48.3-38l48.9-51.5c18.7 28.5 27.3 51.5 38 51.5H368c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"}}]})(props);\n};\nexport function IoIosBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.5 333l-88.3-77 88.2-76.1c6.9-6 7.4-16.3 1.1-22.9L262.7 35.6c-2.2-2.3-5.4-3.6-8.6-3.6-6.1 0-11.1 4.9-11.1 10.8V212l-86.3-73.3c-7.1-6-17.8-5.3-24.1 1.5-6.5 7-5.8 17.9 1.6 24.1L243 256l-108.1 90.9c-7.3 6.1-8.1 16.8-1.7 23.9l.3.3c6.3 7 17.3 7.7 24.5 1.5l85-73.6v169.8c0 6.2 5.1 11.2 11.5 11.2 3.2 0 6.2-1.3 8.4-3.5L379.6 356c6.3-6.6 5.8-16.9-1.1-23zm-99.1-232.1l62.7 65.9c.8.8.7 2.1-.2 2.9l-62.7 53c-1.3 1.1-3.4.2-3.4-1.5V102.3c.1-1.9 2.4-2.7 3.6-1.4zm-3.5 309V291.6c0-1.7 2.1-2.6 3.4-1.5l62.7 53c.9.7.9 2 .2 2.9l-62.7 65.3c-1.3 1.3-3.6.4-3.6-1.4z\"}}]})(props);\n};\nexport function IoIosBoat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M351.8 422c-26.2 9.2-66.5 14.9-96.1 14.9-29.6 0-69.9-5.7-96.1-14.9 0 0-26.1 23.9-62.3 36.2-2.3.8-1.5 4.2.9 3.9 22.6-2.6 40.2-6.5 61.4-12 23 9 66.7 13.9 96.1 13.9 29.4 0 74.1-3.8 96.1-13.9 21.5 5.6 38.8 9.6 62 12.1 2.4.3 3.2-3.1.9-3.9-35.7-12.4-62.9-36.3-62.9-36.3zM445.5 263l-186.2-85.5c-2.1-1-4.6-1-6.7 0L66.5 263c-6.2 2.9-10.5 9.1-10.5 16.4 0 2.4.5 4.6 1.3 6.7L112 422c27.5 0 56.7-22 56.7-22 18 9 53.1 17.1 79.3 18.6 2.8.2 5.5.2 8 .2s5.2-.1 8-.2c26.2-1.5 61.3-9.5 79.3-18.6 0 0 29.2 22 56.7 22l54.7-135.9c.8-2.1 1.3-4.3 1.3-6.7 0-7.3-4.3-13.5-10.5-16.4zM212 288c-6.6 0-12-9.8-12-22s5.4-22 12-22 12 9.8 12 22-5.4 22-12 22zm88 0c-6.6 0-12-9.8-12-22s5.4-22 12-22 12 9.8 12 22-5.4 22-12 22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M391.9 127v-.1C386.3 100.3 374.4 80 352 80h-34.6l-2-8c-3.6-14.1-16.4-24-31-24h-57c-14.6 0-27.4 9.9-31 24.1l-2 7.9H160c-22.9 0-35.1 20.7-39.8 47L102 223.8c-.6 3.2 2.6 5.7 5.6 4.4l25.3-11.6c1.2-.5 2-1.6 2.3-2.9l16.2-85.6c2.5-10.7 7.3-16 16.1-16h177.1c8.9 0 13.1 5 16.1 16l16.2 85.6c.2 1.3 1.1 2.4 2.3 2.9l25.4 11.7c3 1.4 6.2-1.2 5.6-4.4L391.9 127z\"}}]})(props);\n};\nexport function IoIosBody (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"256\",\"cy\":\"80\",\"rx\":\"48\",\"ry\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M424 144H88c-13.3 0-24 10.7-24 24s10.7 24 24 24h98.5c5.6 1 13.2 3.8 17.2 14.2 4.7 12.1 2.4 33.6-.5 51.7l-3.8 21.4c0 .1 0 .2-.1.3l-30.4 172.2c-2.3 13 6.4 25.5 19.5 27.8 13.1 2.3 25.3-6.4 27.6-19.5l21-119.9v.2s6.2-32.5 18.5-32.5h1.1c12.5 0 18.5 32.5 18.5 32.5v-.1l21 119.9c2.3 13 14.7 21.7 27.7 19.4 13.1-2.3 21.7-14.8 19.4-27.8l-30.4-172.2c0-.1 0-.2-.1-.3l-3.8-21.4c-2.9-18.1-5.2-39.6-.5-51.7 4-10.4 11.6-13.2 17.2-14.2H424c13.3 0 24-10.7 24-24s-10.7-24-24-24z\"}}]})(props);\n};\nexport function IoIosBonfire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M270.9 350.6c-.7-8.2-7.6-14.6-15.9-14.6-7.6 0-14 5.4-15.6 12.5L223.8 427c-.5 2.3-.8 4.6-.8 7 0 17.7 14.3 30 32 30s32-12.3 32-30c0-2.9-.4-5.7-1.1-8.4l-15-75zM305.9 355zM388.9 386.3c-1.7-1.4-3.3-2.9-5.1-3.9l-59.6-43.5c-5.8-3.8-12-3.7-16.5.9-4.1 4.1-4.7 10.4-1.7 15.4l45 61.8c.9 1.5 2.2 2.8 3.4 4.2 7.8 9.1 25.1 9.6 34.6 0 9.4-9.8 9.3-27.2-.1-34.9zM372.5 335zM435.4 320h-59.5c-3.9 0-7.4 2.2-8.1 6.2-.6 3.6 1.3 7.1 4.7 8.8h.1l57.7 17.8c8.3 1.9 17.7-5.5 17.7-14.8 0-11.8-4.8-18-12.6-18zM139.2 335zM139.2 335c3.3-1.6 5.3-5.2 4.7-8.8-.7-4-3.9-6.2-8.1-6.2H76.3c-7.6 0-12.3 8.3-12.3 17.6s9.1 17.1 17.4 15.2l57.7-17.8h.1zM187.9 338.8l-59.6 43.4c-1.8 1.1-3.6 2.4-5.1 3.9-9.6 9.6-9.6 25.1 0 34.6 9.6 9.6 25.1 9.6 34.6 0 1.3-1.3 2.4-2.7 3.4-4.2l45-61.6c3-5 2.5-11.2-1.7-15.3-4.6-4.5-11.8-4.8-16.6-.8zM358.7 138.7c0-57.6-72.4-90.7-96-90.7 12 80.8-101.7 113-112 181.3-10.3 68.3 48 90.7 48 90.7 16.3-56.6 72.4-75.6 109.7-99.8 40.7-26.4 50.3-51.3 50.3-81.5zM358.7 259.6c5-14.7 1.9-49.3-3-63.4-9 17.5-26.3 32.4-47.2 46-8.6 5.6-20.9 10.8-29.8 15.9-18.7 10.5-34 20.6-46.3 34.4 11.3 16.4 31.3 27.7 46.3 27.7 36-.2 64-13.7 80-60.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M161.8 171.9c11.7-15.1 24.9-23.8 38.2-36.2 13.4-12.5 22.1-21.2 27.5-31.3-10.7-20.1-30.8-28.1-44.7-26.1 2.3 28.6-30 44-32 64.8-1.3 12.6 5.4 25 11 28.8z\"}}]})(props);\n};\nexport function IoIosBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M146 64.1c54.1 0 100 27.9 100 82V446c0 2.2-3.1 2.7-3.8.7v-.1c-10.3-34.2-38.2-67.6-82.3-70.5-34.2-2.2-66.9 12.9-93.1 37.1-1.6 1.5-4.3 2.9-6.6 2.9h-4.5c-3.7 0-7.6-2.7-7.6-6.1V120.2C48 88.1 91.9 64.1 146 64.1zM366 64c-54.1 0-100 27.9-100 82v299.9c0 2.2 3.1 2.7 3.8.7v-.1c10.3-34.2 39.4-67.9 82.3-70.5 32.9-2 63.9 11 93.1 37.1 1.6 1.4 4.3 2.9 6.6 2.9h4.5c3.7 0 7.6-2.7 7.6-6.1V120c.1-32-43.8-56-97.9-56z\"}}]})(props);\n};\nexport function IoIosBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 80v380c0 3.3 3.8 5.2 6.4 3.2l116.8-92c2.9-2.1 6.8-2.1 9.6 0l116.8 92c2.6 2 6.4.1 6.4-3.2V80c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32z\"}}]})(props);\n};\nexport function IoIosBookmarks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32v127.9l-22.9-14.5-9.1-6.4-9.1 6.4-22.9 14.5V32h-41.4c-22.5.2-40.6 18.8-40.6 41.4v313.2c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14V73.4c0-22.6-18.1-41.2-40.6-41.4H95.1C64.8 32 40 56.8 40 87.1v289.8c0 30.3 24.8 55.1 55.1 55.1l108-.1c4.2.1 8.3.6 12.2 1.4 15.3 3.1 26.8 16.6 26.6 32.2-.1 7.2 5.2 13.6 12.4 14.4 8.5.9 15.7-5.7 15.6-14.1-.2-15.8 11.4-29.4 26.9-32.5 3.8-.8 7.9-1.2 12-1.3l108 .1c30.3 0 55.1-24.8 55.1-55.1V87.1C472 56.8 446.3 32 416 32z\"}}]})(props);\n};\nexport function IoIosBowtie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.8 213.5C286 205 277 202.2 266 202.2v-.2c-6 0-14.3 1.3-22.6 2.9-11.9 2.3-19.7 7.1-19.7 7.1s3.6 27.3.1 58.5-7.9 42.5-7.9 42.5 5.3 12.1 40 15c3.9.3 7.6.5 11 .5 24.5 0 36.4-7.3 36.4-7.3s3.3-5.4 4.3-22.1c1.9-32.2-7-68.5-16.8-85.6zM205.7 208.8c-22-40.2-86.2-96.8-121.3-96.8C57.9 112 32 180.5 32 256s23 144 51.5 144c33.4 0 110.5-80 110.5-80s5.7-12.6 9.9-33.6l1.8-10.4c.7-4.7 1.3-9.7 1.7-15 .3-3.5.5-6.8.6-9.9l.3-9.8c.7-16-2.6-32.5-2.6-32.5zM427.6 112c-36.4 0-96.4 56.5-118.3 96.8l-.8 1.4s1.4 2.5 1.9 3.4c3.4 6 6.7 14.3 9.4 24l2.9 11.7c2.2 10.2 3.7 21.2 4.2 32.2l.2 9c0 2.9-.1 5.7-.3 8.5-1 16.7-4.6 22.1-4.6 22.1 7.6 10.5 69 78.9 106.2 78.9 28.5 0 51.5-68.5 51.5-144s-25.8-144-52.3-144z\"}}]})(props);\n};\nexport function IoIosBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 448h352c17.7 0 32-14.3 32-32V224H48v192c0 17.7 14.3 32 32 32zM432 128h-8v-8c0-4.4-3.6-8-8-8h-32c-4.4 0-8 3.6-8 8v8h-28V96c0-17.6-14.4-32-32-32H196c-17.6 0-32 14.4-32 32v32h-28v-8c0-4.4-3.6-8-8-8H96c-4.4 0-8 3.6-8 8v8h-8c-17.7 0-32 14.3-32 32v40h416v-40c0-17.7-14.3-32-32-32zm-112 0H192v-28c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v28z\"}}]})(props);\n};\nexport function IoIosBrowsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 181.4V424c0 22.1 17.9 40 40 40h242.6c22.1 0 40-17.9 40-40V181.4c0-22.1-17.9-40-40-40H88c-22.1 0-40 17.9-40 40z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M141.4 88v28.4c0 2.2 1.8 4 4 4h198.2c26.4 0 48 21.6 48 48v198.2c0 2.2 1.8 4 4 4H424c22.1 0 40-17.9 40-40V88c0-22.1-17.9-40-40-40H181.4c-22.1 0-40 17.9-40 40z\"}}]})(props);\n};\nexport function IoIosBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.6 283.3c-51.9 0-83.9 45.7-83.9 95.1 0 21.3-10.9 37.1-31.4 46.4-2.2 1-3 3.8-1.7 5.8 16.7 24.6 63.3 33.3 95.3 33.3 8.4 0 15.9-.6 21.8-1.7 35.6-6.4 80.1-24.9 90.7-77 12.2-60.5-38.9-101.9-90.8-101.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M467.7 60.4C460 52.7 450.9 48 441.6 48c-6.3 0-12.7 2.2-18.8 7L257.7 200.3c-5.4 4.8-12.4 7.4-19.7 7.4h-.1-.1c-5.6 0-11.1 2.1-15.4 5.8l-53.6 43.8c-2.1 1.8-2.7 4.8-1.4 7.2.9 1.7 2.6 2.9 4.5 3.1 45.6 4.5 87 37 87.3 86.6 0 1.7.7 3.4 2 4.5 2.5 2.1 6 1.7 8-.6l45.1-52.2c3.5-4 5.8-9.1 6-14.5v-1.2c0-7.5 3-14.8 8-20.4l144.8-164.4c11.9-15.1 7.6-32.1-5.4-45z\"}}]})(props);\n};\nexport function IoIosBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M374.6 127.3C345.4 88.5 303.1 64 256 64c-47.1 0-89.4 24.5-118.6 63.3 6.4 15.6 15.8 30 28.1 42.3 24.2 24.2 56.3 37.5 90.5 37.5s66.3-13.3 90.5-37.5c12.3-12.3 21.8-26.6 28.1-42.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M122 150s-3.8-1.6-5.9-3.3c-2.1-1.7-5-4.9-6.5-8.4 5.4-11.3 1.2-25-9.9-31.3-11.8-6.6-26.9-2.2-33.1 10-4.5 8.9-2.9 19.8 3.8 27.1 1.8 1.9 3.7 3.4 5.7 4.6 2.8 1.6 4.9 4 6.4 6.8 2.7 5.2 6.4 10.7 11.1 14.6 4.2 3.5 8.8 7.1 15.2 10.7-7.2 20.3-11.6 42.3-12.5 65.4-11 .2-18.6 2.1-25.5 4.1-4.2 1.2-8.2 3.4-11.8 5.9-1-.1-1.9-.2-2.9-.2-13.8 0-24.8 11.6-24 25.6.7 11.8 10.3 21.5 22.2 22.4 11 .8 20.6-5.9 24.3-15.5 2-5.3 6.7-9.2 12.4-9.9 1.9-.2 3.9-.4 6.2-.4 3.2 33 13.3 63.5 28.6 89.2-14.2 11-22.9 23-26.6 36.3 0 0-.8.4-1.9 1.4-1 .8-1.9 1.6-2.8 2.6-8.9 9.9-8.1 25 1.8 33.9 9.9 8.9 25 8.1 33.9-1.8 6.2-6.9 7.6-16.3 4.6-24.5-2.2-6-.7-12.7 3.9-17 1.6-1.5 3.5-3.1 5.7-4.9 27.1 31.7 59.4 52 99.7 54.4V232.9C190.8 230 144.4 195.3 122 150zM456 256.1c-1 0-2 .1-2.9.2-3.6-2.5-7.7-4.6-11.8-5.9-6.9-2-14.4-3.9-25.5-4.1-1-23.1-5.4-45.2-12.5-65.4 6.4-3.6 11-7.2 15.2-10.7 4.9-4.1 8.7-10 11.5-15.3 1.3-2.5 3.3-4.5 5.8-5.9 0 0 .1 0 .1-.1 11.6-6.5 15.7-21.1 9.2-32.7-6.5-11.6-21.1-15.7-32.7-9.2-11.1 6.2-15.3 19.9-9.9 31.3-1.6 3.4-3.4 5.7-6.5 8.4-2.3 2-5.9 4.3-5.9 4.3-22.4 45.3-68.8 79-122 81.9V448c40.3-2.4 72.6-22.8 99.7-54.4 2.1 1.7 3.9 3.2 5.4 4.6 4.8 4.4 6.4 11.3 4.2 17.5-3 8.1-1.5 17.5 4.7 24.3 8.9 9.9 24 10.7 33.9 1.8 9.9-8.9 10.7-24 1.8-33.9-.9-1-1.8-1.8-2.8-2.6-1.1-.9-1.9-1.4-1.9-1.4-3.7-13.3-12.4-25.3-26.6-36.3 15.3-25.7 25.4-56.2 28.6-89.2 2.1 0 4.1.2 5.9.4 5.9.7 10.7 4.7 12.9 10.2 3.7 9.4 13.2 15.9 24.1 15.1 11.8-.9 21.4-10.5 22.2-22.4.6-14-10.4-25.6-24.2-25.6z\"}}]})(props);\n};\nexport function IoIosBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441.1 131.1l-44.9 45.1c-.9.9-2.3 1.3-3.5 1.1l-46.4-8.4c-1.6-.3-2.9-1.6-3.2-3.2l-8.3-46.4c-.2-1.3.2-2.6 1.1-3.5l44.8-45c3.5-3.5 3-9.3-1-12.1-10.1-7.2-22.1-10.7-31.8-10.7-.7 0-1.4 0-2 .1-12.5.7-39.3 7.7-60 29.7-20.1 21.2-41.1 60.6-22.5 104.5 2.2 5.3 4.7 12.3-2.7 19.7C253.1 209.4 61 390.3 61 390.3c-18 15.5-16.7 44.2-.1 60.9 8.5 8.4 20 12.8 31.3 12.8 11.1 0 21.9-4.2 29.6-13.1 0 0 179.4-191.1 188.2-199.8 4-3.9 7.7-5.1 11.1-5.1 3.3 0 6.3 1.2 8.6 2.4 9.9 5.1 21 7.4 32.4 7.4 26.8 0 55-12.4 72.2-29.6 24.4-24.4 28.9-48 29.6-60.1.6-9.9-2.2-22.6-10.7-34.2-2.9-3.8-8.6-4.2-12.1-.8zM102.5 429.3c-5.5 5.4-14.4 5.4-19.9 0-5.4-5.5-5.4-14.4 0-19.9 5.5-5.4 14.4-5.4 19.9 0 5.4 5.6 5.4 14.5 0 19.9z\"}}]})(props);\n};\nexport function IoIosBulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404 188.9C404 111 333.9 48 256 48s-148 63.1-148 140.9c0 31 13.2 56.1 30.2 80.1h-.3c10.9 15 21.4 17.7 31.5 35 14.7 25.2 18.1 40.7 18.7 55.7.4 8.6 7.5 15.3 16 15.3h8.9c2.2 0 4-1.8 4-4v-94.5c0-5-1.2-9.8-3.4-14.3l-21-42c-3.5-7 1.6-15.2 9.4-15.2 4 0 7.7 2.3 9.4 5.9l25.3 51.4c2.2 4.4 3.3 9.2 3.3 14.1V371c0 2.2 1.8 4 4 4h24c2.2 0 4-1.8 4-4v-94.6c0-4.9 1.1-9.7 3.3-14.1l25.4-51.6c1.7-3.4 5.2-5.6 9-5.6 7.5 0 12.4 7.9 9 14.6l-21.3 42.6c-2.2 4.5-3.4 9.4-3.4 14.3V371c0 2.2 1.8 4 4 4h10c8.5 0 15.5-6.6 16-15 .9-15.4 4.7-32.3 18.4-56 10.1-17.3 20.6-20 31.5-35h-.1c17-24 30.2-49.1 30.2-80.1zM238 464h36c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14zM218 420h76c7.7 0 14-6.3 14-14s-6.3-14-14-14h-76c-7.7 0-14 6.3-14 14s6.3 14 14 14z\"}}]})(props);\n};\nexport function IoIosBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M109.6 416.7c-1.9-1.9-5.7-.5-5.6 2.2 1 21.5 1.4 29 5.5 29h55.1c4.4 0 3.3-11.5 3.3-22-34.3.1-46.9 2.3-58.3-9.2zM402.4 416.7c1.9-1.9 5.7-.5 5.6 2.2-1 21.5-1.4 29-5.5 29h-55.1c-4.4 0-3.3-11.5-3.3-22 34.3.1 46.9 2.3 58.3-9.2zM384 64H128c-17.6 0-32 14.4-32 32v276c0 22 18 40 40 40h240c22 0 40-18 40-40V96c0-17.6-14.4-32-32-32zM162 375.9c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-1 11.7-10.4 21.1-22 22zm76-77.9h-97.8c-8.9 0-16.2-7.3-16.2-16.2V166.2c0-8.9 7.3-16.2 16.2-16.2H238c2.2 0 4 1.8 4 4v140c0 2.2-1.8 4-4 4zm115.9 77.9c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-.9 11.7-10.3 21.1-22 22zM388 282c0 8.8-7.2 16-16 16h-98c-2.2 0-4-1.8-4-4V154c0-2.2 1.8-4 4-4h98c8.8 0 16 7.2 16 16v116zm-15-162H139c-8.8 0-15-6.3-15-14s6.2-14 15-14h234c8.8 0 15 6.3 15 14s-6.2 14-15 14z\"}}]})(props);\n};\nexport function IoIosBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M146 80h220c9.9 0 18-8.1 18-18s-8.1-18-18-18H146c-9.9 0-18 8.1-18 18s8.1 18 18 18zM398 100H114c-9.9 0-18 8.1-18 18 0 9.3 6.9 17.1 16 18v300c0 13.2 10.8 24 24 24h88c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h32c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h88c13.2 0 24-10.8 24-24V136c9.1-.9 16-8.7 16-18 0-9.9-8.1-18-18-18zM192 364c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm80 192c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm80 192c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v16z\"}}]})(props);\n};\nexport function IoIosCafe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.7 404H110.1c-7.6 0-14.1 5.8-14.4 13.4-.4 8 6 14.6 14 14.6h259.6c7.6 0 14.1-5.8 14.4-13.4.3-8-6.1-14.6-14-14.6zM399.2 118.5c.1-10.8-4.2-20.9-12.2-28.4-7.2-6.6-16.7-10.1-26.5-10.1H86.8c-9.9 0-19.7 3.6-26.9 10.4-8.1 7.7-12.4 18.2-11.9 29.3C50.4 172 58.3 218 71.8 256.3c11 31.6 25.8 58.1 43.9 78.9 31.8 36.6 68.8 48.8 77.9 48.8h60.1c5.5 0 25-7.2 44.2-19.5 22.4-14.4 42.4-36.7 58.1-64.6 2 .1 4 .2 5.9.2 27.2 0 52.8-9.7 72.1-27.4 19.4-17.8 30.1-41.4 30.1-66.6-.1-38.9-25.9-73.5-64.9-87.6zm-29.7 153.1c14.2-34.5 23.6-76 27.8-123.4 0 0 0-.1.1 0 10.3 5 19.1 12.2 25.8 20.9 8.4 10.9 12.8 23.7 12.8 37 0 34-29.2 62.1-66.5 65.5z\"}}]})(props);\n};\nexport function IoIosCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 48H140c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h232c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zm-12 272v80c0 13.3-10.7 24-24 24s-24-10.7-24-24v-80c0-13.3 10.7-24 24-24s24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-80 160c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-80 160c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm0-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm-48-80v-48c0-8.8 7.2-16 16-16h176c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H168c-8.8 0-16-7.2-16-16z\"}}]})(props);\n};\nexport function IoIosCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 96h-40v24c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V96H160v24c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V96H88c-22 0-40 18-40 40v272c0 22 18 40 40 40h336c22 0 40-18 40-40V136c0-22-18-40-40-40zm8 300c0 11-9 20-20 20H100c-11 0-20-9-20-20V216c0-4.4 3.6-8 8-8h336c4.4 0 8 3.6 8 8v180zM160 72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h32V72zM384 72c0-4.4-3.6-8-8-8h-16c-4.4 0-8 3.6-8 8v24h32V72z\"}}]})(props);\n};\nexport function IoIosCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436.9 364.8c-14.7-14.7-50-36.8-67.4-45.1-20.2-9.7-27.6-9.5-41.9.8-11.9 8.6-19.6 16.6-33.3 13.6-13.7-2.9-40.7-23.4-66.9-49.5-26.2-26.2-46.6-53.2-49.5-66.9-2.9-13.8 5.1-21.4 13.6-33.3 10.3-14.3 10.6-21.7.8-41.9C184 125 162 89.8 147.2 75.1c-14.7-14.7-18-11.5-26.1-8.6 0 0-12 4.8-23.9 12.7-14.7 9.8-22.9 18-28.7 30.3-5.7 12.3-12.3 35.2 21.3 95 27.1 48.3 53.7 84.9 93.2 124.3l.1.1.1.1c39.5 39.5 76 66.1 124.3 93.2 59.8 33.6 82.7 27 95 21.3 12.3-5.7 20.5-13.9 30.3-28.7 7.9-11.9 12.7-23.9 12.7-23.9 2.9-8.1 6.2-11.4-8.6-26.1z\"}}]})(props);\n};\nexport function IoIosCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"275\",\"r\":\"57.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M417.5 160H363c-4.6 0-8.9-2-12-5.4-28.4-31.8-39.1-42.6-50.7-42.6h-85.5c-11.7 0-23.2 10.8-51.7 42.7-3 3.4-7.4 5.3-11.9 5.3h-4.1v-8c0-4.4-3.6-8-8-8h-26c-4.4 0-8 3.6-8 8v8h-7.5C79.9 160 64 173.2 64 190.7v176c0 17.5 15.9 33.3 33.5 33.3h320c17.6 0 30.5-15.8 30.5-33.3v-176c0-17.5-12.9-30.7-30.5-30.7zM260 360.4c-50.3 2.3-91.7-39.1-89.4-89.4 2-43.9 37.5-79.4 81.4-81.4 50.3-2.3 91.7 39.1 89.4 89.4-2 43.9-37.5 79.4-81.4 81.4zM352 218c-7.2 0-13-5.8-13-13s5.8-13 13-13 13 5.8 13 13-5.8 13-13 13z\"}}]})(props);\n};\nexport function IoIosCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 196.2c-13.8-30.8-49-92.2-100-92.2H196c-51 0-84.8 59.4-100 92.2-24 23-48 45.7-48 84.8v76c0 3.7 2.6 7 6.2 7.8C69.1 368.2 116.4 375 256 375s186.9-6.8 201.8-10.2c3.6-.8 6.2-4.1 6.2-7.8v-76c0-39-22.3-63.1-48-84.8zM190 128h132c40.5 0 62 60 62 70H128c0-10 27-70 62-70zm-78 203.7c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32c0 17.6-14.3 32-32 32zM328 300c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16s7.2-16 16-16h112c8.8 0 16 7.2 16 16zm72 32c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zM160 384c-47.9 0-96-5-96-5 0 17-.3 29 6 29h85c6.3 0 5-13.2 5-24zM352 384c48 0 96-5 96-5 0 16 2 29-5 29h-86c-6.7 0-5-13.5-5-24z\"}}]})(props);\n};\nexport function IoIosCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128c0-17.6-14.4-32-32-32H64c-17.6 0-32 14.4-32 32v48h448v-48zM32 384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V224H32v160zm142-48h164c7.7 0 14 6.3 14 14s-6.3 14-14 14H174c-7.7 0-14-6.3-14-14s6.3-14 14-14zm-72 0h12c7.7 0 14 6.3 14 14s-6.3 14-14 14h-12c-7.7 0-14-6.3-14-14s6.3-14 14-14z\"}}]})(props);\n};\nexport function IoIosCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"transform\":\"rotate(-1.057 159.995 423.97) scale(.99997)\",\"cx\":\"160\",\"cy\":\"424\",\"rx\":\"24\",\"ry\":\"24\"}},{\"tag\":\"ellipse\",\"attr\":{\"transform\":\"matrix(.02382 -.9997 .9997 .02382 -48.51 798.282)\",\"cx\":\"384.5\",\"cy\":\"424\",\"rx\":\"24\",\"ry\":\"24\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M463.8 132.2c-.7-2.4-2.8-4-5.2-4.2L132.9 96.5c-2.8-.3-6.2-2.1-7.5-4.7-3.8-7.1-6.2-11.1-12.2-18.6-7.7-9.4-22.2-9.1-48.8-9.3-9-.1-16.3 5.2-16.3 14.1 0 8.7 6.9 14.1 15.6 14.1s21.3.5 26 1.9c4.7 1.4 8.5 9.1 9.9 15.8 0 .1 0 .2.1.3.2 1.2 2 10.2 2 10.3l40 211.6c2.4 14.5 7.3 26.5 14.5 35.7 8.4 10.8 19.5 16.2 32.9 16.2h236.6c7.6 0 14.1-5.8 14.4-13.4.4-8-6-14.6-14-14.6H188.9c-2 0-4.9 0-8.3-2.8-3.5-3-8.3-9.9-11.5-26l-4.3-23.7c0-.3.1-.5.4-.6l277.7-47c2.6-.4 4.6-2.5 4.9-5.2l16-115.8c.2-.8.2-1.7 0-2.6z\"}}]})(props);\n};\nexport function IoIosCash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466 355.9H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h420c7.7 0 14-6.3 14-14s-6.3-14-14-14zM466 403.9H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h420c7.7 0 14-6.3 14-14s-6.3-14-14-14zM444.9 80.1H67.1C47.8 80.1 32 95.9 32 115.2V293c0 19.3 15.8 35.1 35.1 35.1h377.8c19.3 0 35.1-15.8 35.1-35.1V115.2c0-19.3-15.8-35.1-35.1-35.1zM114 296.1H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-156H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm142 144c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm178 12h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-156h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"206\",\"r\":\"53\"}}]})(props);\n};\nexport function IoIosCellular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408.4 51.8c-2.6-2.5-6.1-3.8-9.7-3.8-3.7 0-7.2 1.4-9.9 3.9-2.7 2.6-4.1 6-4.1 9.6 0 3.6 1.5 7 4.2 9.6 30.4 28.5 47.1 66.5 47.1 107.1 0 40.5-16.7 78.5-47.1 107.1-2.7 2.5-4.2 5.9-4.2 9.6 0 3.6 1.4 7 4.1 9.6 2.6 2.5 6.1 3.9 9.9 3.9 3.7 0 7.1-1.4 9.7-3.8C444.3 271 464 226.1 464 178.2v-.1c0-47.9-19.8-92.7-55.6-126.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M351 96.8c-2.4-2.3-5.6-3.5-9-3.5-3.3 0-6.5 1.2-8.9 3.4-2.5 2.3-3.9 5.4-3.9 8.7 0 3.3 1.3 6.4 3.8 8.7 18 17 27.8 39.8 27.8 64 0 24.2-9.9 47-27.8 64-2.5 2.3-3.8 5.4-3.8 8.7 0 3.3 1.4 6.4 3.9 8.7 2.4 2.2 5.5 3.4 8.9 3.4 3.4 0 6.6-1.3 9-3.5 22.8-21.7 35.4-50.5 35.4-81.3v-.1c0-30.7-12.6-59.5-35.4-81.2zM123.1 71.1c2.7-2.5 4.2-5.9 4.2-9.6 0-3.6-1.4-7-4.1-9.6-2.6-2.5-6.1-3.9-9.9-3.9-3.7 0-7.1 1.4-9.7 3.8C67.7 85.4 48 130.3 48 178.2v.2c0 47.8 19.8 92.6 55.6 126.2 2.6 2.5 6.1 3.8 9.7 3.8 3.7 0 7.2-1.4 9.9-3.9 2.7-2.6 4.1-6 4.1-9.6 0-3.6-1.5-7-4.2-9.6C92.7 256.8 76 218.8 76 178.2c-.1-40.6 16.7-78.6 47.1-107.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M179 114.1c2.5-2.3 3.8-5.4 3.8-8.7 0-3.3-1.4-6.4-3.9-8.7-2.4-2.2-5.5-3.4-8.9-3.4-3.4 0-6.6 1.3-9 3.5-22.8 21.7-35.4 50.5-35.4 81.3v.1c0 30.8 12.6 59.6 35.4 81.2 2.4 2.3 5.6 3.5 9 3.5 3.3 0 6.5-1.2 8.9-3.4 2.5-2.3 3.9-5.4 3.9-8.7 0-3.3-1.3-6.4-3.8-8.7-18-17-27.8-39.8-27.8-64-.1-24.2 9.8-46.9 27.8-64zM256 123.2c-26.5 0-48 21.5-48 48 0 21.6 14.3 39.9 34 45.9v233c0 7.7 6.3 13.9 14 13.9s14-6.2 14-13.9v-233c19.7-6 34-24.3 34-45.9 0-26.5-21.5-48-48-48z\"}}]})(props);\n};\nexport function IoIosChatboxes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.9 170.4H204.3c-21 0-38.1 17.1-38.1 38.1v154.3c0 21 17.1 38 38.1 38h126.8c2.8 0 5.6 1.2 7.6 3.2l63 58.1c3.5 3.4 9.3 2 9.3-2.9v-50.6c0-6 3.8-7.9 9.8-7.9h1c21 0 42.1-16.9 42.1-38V208.5c.1-21.1-17-38.1-38-38.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M174.4 145.9h177.4V80.6c0-18-14.6-32.6-32.6-32.6H80.6C62.6 48 48 62.6 48 80.6v165.2c0 18 14.6 32.6 32.6 32.6h61.1v-99.9c.1-18 14.7-32.6 32.7-32.6z\"}}]})(props);\n};\nexport function IoIosChatbubbles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431 320.6c0-4.4 1.2-8.6 3.3-12.2.6-1.1 1.4-2.1 2.1-3.1 17.4-26 27.6-57.1 27.6-90.3.3-92.2-77.5-167-173.7-167-83.9 0-153.9 57.1-170.3 132.9-2.4 11.1-3.7 22.4-3.7 34.2 0 92.3 74.8 169.1 171 169.1 15.3 0 35.9-4.6 47.2-7.7 11.3-3.1 22.5-7.2 25.4-8.3 2.9-1.1 6.1-1.7 9.3-1.7 3.6 0 7 .7 10.1 2l56.7 20.1s2.4 1 3.9 1c4.4 0 8-3.5 8-8 0-1-.5-2.7-.5-2.7L431 320.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M318.5 392.5c-3.6 1-8.2 2.1-13.2 3.2-10.5 2.2-23.9 4.5-34 4.5-96.2 0-171-76.8-171-169.1 0-6.6.7-15 1.5-21.4.6-4.3 1.3-8.6 2.3-12.8 1-4.5 2.2-9 3.5-13.4l-8 7.1C66.8 219.2 48 260 48 302.5c0 29.3 8.5 57.5 24.8 82 2.3 3.5 3.6 6.2 3.2 8-.4 1.8-11.9 62-11.9 62-.6 2.9.5 5.8 2.7 7.7 1.5 1.2 3.3 1.8 5.1 1.8 1 0 2-.2 2.9-.6l56.1-22.1c1.8-.7 3.7-1.1 5.7-1.1 0 0 2.4-.2 6.3 1.3 18.9 7.4 39.8 12 60.7 12 46.6 0 90.4-20.1 120.1-55.1 0 0 3.2-4.4 6.9-9.6-3.7 1.3-7.9 2.6-12.1 3.7z\"}}]})(props);\n};\nexport function IoIosCheckboxOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64H96c-17.7 0-32 14.3-32 32v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm4 348c0 4.4-3.6 8-8 8H100c-4.4 0-8-3.6-8-8V100c0-4.4 3.6-8 8-8h312c4.4 0 8 3.6 8 8v312z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M363.6 192.9L346 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z\"}}]})(props);\n};\nexport function IoIosCheckbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64H96c-17.7 0-32 14.3-32 32v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-52.5 134.5L229.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z\"}}]})(props);\n};\nexport function IoIosCheckmarkCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.6 192.9L345 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}}]})(props);\n};\nexport function IoIosCheckmarkCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm106.5 150.5L228.8 332.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z\"}}]})(props);\n};\nexport function IoIosCheckmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.6 192.9L345 174.8c-.7-.8-1.8-1.2-2.8-1.2-1.1 0-2.1.4-2.8 1.2l-122 122.9-44.4-44.4c-.8-.8-1.8-1.2-2.8-1.2-1 0-2 .4-2.8 1.2l-17.8 17.8c-1.6 1.6-1.6 4.1 0 5.7l56 56c3.6 3.6 8 5.7 11.7 5.7 5.3 0 9.9-3.9 11.6-5.5h.1l133.7-134.4c1.4-1.7 1.4-4.2-.1-5.7z\"}}]})(props);\n};\nexport function IoIosClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M140.5 160v240c0 8.8 7.2 16 16 16h200c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16h-200c-8.8 0-16 7.2-16 16zM321.5 81h-17c0-5.6-1-11-2.7-16-2.1-6-5.3-11.4-9.4-16-8.8-9.9-21.6-17-35.9-17s-27.1 7.1-35.9 17c-4.1 4.6-7.3 10-9.4 16-1.7 5-2.7 10.4-2.7 16H194c-9.6 0-17.5 7.9-17.5 17.5V114c0 1.1.9 2 2 2h156c1.1 0 2-.9 2-2V96c0-8.3-6.7-15-15-15zm-62.9 15.5c-10.5 1.3-19.3-7.5-17.9-17.9.9-7.1 6.7-12.9 13.8-13.8 10.5-1.3 19.3 7.5 17.9 17.9-.9 7.2-6.7 12.9-13.8 13.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 48h-75.2c-1.7 0-2.6 1.9-1.6 3.2 2.9 3.9 5.3 8.1 7 12.8.3.8 1 1.3 1.9 1.3h.5c18.7 0 26.9 14.9 27.5 33.5V114c0 1.1.9 2 2 2h20.3c8.8 0 16 7.2 16 16v297.4c0 8.8-7.2 16-16 16h-253c-8.8 0-16-7.2-16-16V132c0-8.8 7.2-16 16-16h21.3c1.1 0 2-.9 2-2v-8.8c0-19.1 5.6-36.7 27.6-36.7h.3c.9 0 1.8-.6 1.9-1.6 1.5-6.9 4.1-11.7 7.2-15.8 1-1.3.1-3.2-1.6-3.2l-76.3-.1C94.3 47.9 80 62.1 80 79.7V424c0 41.7 14.3 56 32 56h288.5c17.4 0 31.5-14.1 31.5-31.5V80c0-17.7-14.3-32-32-32z\"}}]})(props);\n};\nexport function IoIosClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.1 108.9c-81.2-81.2-212.9-81.2-294.2 0-81.3 81.2-81.2 212.9 0 294.2 81.2 81.2 212.9 81.2 294.2 0 81.2-81.2 81.2-213 0-294.2zM89.6 263.8c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm26.2 82.2c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm2.3-171.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zM179.6 404c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zm-2.3-287.5c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm35.4 76.3c-2.3-3.8-1-8.7 2.7-11 3.8-2.3 8.7-1 11 2.7l33.7 62.3c2.5 4.7 3.9 9.9 3.9 15.2v122c0 5-3 8-8 8s-8-3-8-8V262c0-2.7-.7-5.3-1.9-7.6l-33.4-61.6zm44.9 239c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm0-336c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3zm87.7 311.7c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm2.3-294.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zm61.5 229.5c-1.9 5.4-8.5 7.2-12.8 3.5-2.4-2.1-3.3-5.5-2.3-8.5 1.9-5.4 8.5-7.2 12.8-3.5 2.4 2.1 3.3 5.5 2.3 8.5zM406.8 178c-4.3 3.7-11 1.9-12.8-3.5-1-3-.1-6.5 2.3-8.5 4.3-3.7 11-1.9 12.8 3.5 1 3 .1 6.4-2.3 8.5zm18.8 85.8c-5.6 1.1-10.5-3.8-9.4-9.4.6-3.1 3.1-5.7 6.3-6.3 5.6-1.1 10.5 3.8 9.4 9.4-.6 3.2-3.2 5.7-6.3 6.3z\"}}]})(props);\n};\nexport function IoIosCloseCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M331.3 308.7L278.6 256l52.7-52.7c6.2-6.2 6.2-16.4 0-22.6-6.2-6.2-16.4-6.2-22.6 0L256 233.4l-52.7-52.7c-6.2-6.2-15.6-7.1-22.6 0-7.1 7.1-6 16.6 0 22.6l52.7 52.7-52.7 52.7c-6.7 6.7-6.4 16.3 0 22.6 6.4 6.4 16.4 6.2 22.6 0l52.7-52.7 52.7 52.7c6.2 6.2 16.4 6.2 22.6 0 6.3-6.2 6.3-16.4 0-22.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}}]})(props);\n};\nexport function IoIosCloseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm52.7 283.3L256 278.6l-52.7 52.7c-6.2 6.2-16.4 6.2-22.6 0-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3l52.7-52.7-52.7-52.7c-3.1-3.1-4.7-7.2-4.7-11.3 0-4.1 1.6-8.2 4.7-11.3 6.2-6.2 16.4-6.2 22.6 0l52.7 52.7 52.7-52.7c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6L278.6 256l52.7 52.7c6.2 6.2 6.2 16.4 0 22.6-6.2 6.3-16.4 6.3-22.6 0z\"}}]})(props);\n};\nexport function IoIosClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.6 256l68.2-68.2c6.2-6.2 6.2-16.4 0-22.6-6.2-6.2-16.4-6.2-22.6 0L256 233.4l-68.2-68.2c-6.2-6.2-16.4-6.2-22.6 0-3.1 3.1-4.7 7.2-4.7 11.3 0 4.1 1.6 8.2 4.7 11.3l68.2 68.2-68.2 68.2c-3.1 3.1-4.7 7.2-4.7 11.3 0 4.1 1.6 8.2 4.7 11.3 6.2 6.2 16.4 6.2 22.6 0l68.2-68.2 68.2 68.2c6.2 6.2 16.4 6.2 22.6 0 6.2-6.2 6.2-16.4 0-22.6L278.6 256z\"}}]})(props);\n};\nexport function IoIosCloudCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm82.6 272H173.4c-25.1 0-45.4-21.4-45.4-47.2 0-21 13.2-39.8 33.2-46.2.3-20 16.2-36.1 35.7-36.1 5.3 0 10.4 1.2 14.9 3.4 13.1-20.5 36.9-33.8 62.5-33.8 37.7 0 67.5 29.3 71.4 66.9 21.7 3.5 38.3 22.7 38.3 45.9 0 25.7-20.3 47.1-45.4 47.1z\"}}]})(props);\n};\nexport function IoIosCloudDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.1 229.8C429 154.6 365.4 96 288 96c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5-.1-44.7-32.4-84.1-75-91.7zm-74.6-17.3L228.8 346.8h-.1c-1.7 1.7-6.3 5.5-11.6 5.5-3.8 0-8.1-2.1-11.7-5.7l-56-56c-1.6-1.6-1.6-4.1 0-5.7l17.8-17.8c.8-.8 1.8-1.2 2.8-1.2 1 0 2 .4 2.8 1.2l44.4 44.4 122-122.9c.8-.8 1.8-1.2 2.8-1.2 1.1 0 2.1.4 2.8 1.2l17.5 18.1c1.8 1.7 1.8 4.2.2 5.8z\"}}]})(props);\n};\nexport function IoIosCloudDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.1 165.8C429 90.6 365.4 32 288 32c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 177.5 0 216.5 0 257.5 0 307.7 40.7 352 90.9 352H243V211c0-7.2 5.8-13 13-13s13 5.8 13 13v141h152.1c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7zM243 435.9l-47.9-47.2c-5.1-5-13.3-5-18.4.1-5 5.1-5 13.3.1 18.4l70 69c2.5 2.4 5.8 3.7 9.1 3.7 1.7 0 3.4-.3 5-1 1.5-.6 2.9-1.6 4.1-2.7l70-69c5.1-5 5.2-13.3.1-18.4-5-5.1-13.3-5.2-18.4-.1L269 435.9V352h-26v83.9z\"}}]})(props);\n};\nexport function IoIosCloudOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 124c30.3 0 59.3 11.2 81.8 31.5 22.3 20.1 36.3 47.6 39.5 77.3l1.2 11.1c.6 5.8 5 10.5 10.7 11.5l11 2c14 2.5 27 10.4 36.7 22.1 9.8 12 15.2 26.9 15.2 42.1 0 17-6.9 34.1-18.9 46.8C453 381 437.4 388 421.1 388H90.9c-16.3 0-31.9-7-43.9-19.7s-18.9-29.7-18.9-46.8c0-14.4 4.6-28.9 13.1-40.9 8.6-12.2 20.2-20.9 33.7-25.1l10.3-3.3c5.3-1.7 9-6.6 9.1-12.2l.2-10.8c.2-11.8 5.1-23.6 13.5-32.4 8.3-8.7 18.9-13.4 29.9-13.4 5.6 0 11.1 1.1 16.3 3.2l11.1 4.5c5.7 2.3 12.2.4 15.7-4.7l6.8-9.8C210.4 143.7 248 124 288 124m0-28c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7C429 154.6 365.4 96 288 96z\"}}]})(props);\n};\nexport function IoIosCloudUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.1 165.8C429 90.6 365.4 32 288 32c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 177.5 0 216.5 0 257.5 0 307.7 40.7 352 90.9 352H243V210.1l-47.9 47.2c-5.1 5-13.3 5-18.4-.1-5-5.1-5-13.3.1-18.4l70-69c1.2-1.1 2.5-2.1 4.1-2.7 1.6-.7 3.3-1 5-1 3.4 0 6.6 1.3 9.1 3.7l70 69c5.1 5 5.2 13.3.1 18.4-5 5.1-13.3 5.2-18.4.1L269 210.1V352h152.1c50.2 0 90.9-44.3 90.9-94.5 0-44.7-32.3-84.1-74.9-91.7zM243 467c0 7.2 5.8 13 13 13s13-5.8 13-13V352h-26v115z\"}}]})(props);\n};\nexport function IoIosCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.1 229.8C429 154.6 365.4 96 288 96c-51.2 0-96.3 25.6-123.4 64.7-8.3-3.4-17.4-5.3-26.9-5.3-39.1 0-70.8 34.4-71.4 73.4C26.4 241.5 0 280.5 0 321.5 0 371.7 40.7 416 90.9 416h330.3c50.2 0 90.9-44.3 90.9-94.5-.1-44.7-32.4-84.1-75-91.7z\"}}]})(props);\n};\nexport function IoIosCloudyNight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.8 294.8c-.5 0-1.1-.1-1.6-.1-2.6 0-5.2 0-7.8.3-9.3-40.8-45.9-71.5-89.7-71.5-50.8 0-91.9 40.9-91.9 91.4 0 3.1.2 6.1.5 9.1-31 2.7-55.3 30.1-55.3 61.6C32 419 58.8 448 92.3 448h185.5c41.9 0 75.8-34.7 75.8-76.3 0-41.6-33.9-76.9-75.8-76.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M452.1 305.4c-2.5.1-5 .2-7.6.2-41.7 0-80.8-15.7-110.3-44.3-29.5-28.5-45.7-66.5-45.7-106.8 0-23 5.3-45.2 15.2-65.3L315.4 70c1.7-2.9-.8-6.5-4.1-6-7.6 1.2-15.7 4-23.2 6.3-59.5 18.2-104.4 68.1-113.7 129.3 1.4-.1 2.9-.1 4.3-.1 26.5 0 52.4 9.2 73 25.9 15.1 12.2 26.9 28 34.2 45.7 23.7 2 45.7 12.4 62.7 29.8 18.7 19.1 29 44.2 29 70.7 0 2.3-.1 4.6-.2 6.8 34.2-8.1 64.3-26.6 86.4-51.8 4.8-5.5 11.3-12.8 15.3-18.5 2-2.8-.3-6.7-3.8-6.3-6.8 1-15.9 3.2-23.2 3.6z\"}}]})(props);\n};\nexport function IoIosCloudy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M236 96c-70 0-127.8 59.7-127.8 130.8 0 4.3.3 8.6.8 12.8-43.2 3.9-77 44-77 88.4 0 47 37.9 88 84.6 88h257.8c58.3 0 105.6-49.4 105.6-108s-47.3-108.8-105.6-108.8c-2.3 0-4.8-.2-7.2-.2-2.1 0-4.2 0-6.1.1C349.3 145.6 306 96 236 96z\"}}]})(props);\n};\nexport function IoIosCodeDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L332 142.7zM106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M332.8 267.2c.1-3.9-1.4-7.6-4.2-10.4l-.1-.1c-2.7-2.7-6.2-4.2-10-4.2-3.5 0-6.8 1.3-9.4 3.6l-38.9 34.6V184.6c0-7.8-6.4-14.2-14.2-14.2-7.8 0-14.2 6.4-14.2 14.2v106.2l-38.9-34.6c-2.6-2.3-6-3.6-9.4-3.6-3.8 0-7.4 1.5-10.1 4.2l-.1.1c-2.8 2.8-4.2 6.4-4.2 10.4.1 3.9 1.7 7.5 4.6 10.2l62.8 57.7c2.6 2.4 6 3.7 9.5 3.7s6.9-1.3 9.5-3.7l62.8-57.7c2.8-2.8 4.5-6.4 4.5-10.3z\"}}]})(props);\n};\nexport function IoIosCodeWorking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.1 251.6L332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3-.1-1.7-.8-3.2-2-4.4zM106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"22\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"192\",\"cy\":\"256\",\"r\":\"22\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"320\",\"cy\":\"256\",\"r\":\"22\"}}]})(props);\n};\nexport function IoIosCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M332 142.7c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7L310 155.9c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l95.8 91.5-95.8 91.5c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l13.8 13.2c1.2 1.1 2.6 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l114.2-109c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L332 142.7zM204 160.2c0-1.6-.7-3.2-1.9-4.3l-13.8-13.2c-1.2-1.1-2.7-1.7-4.1-1.7s-3 .6-4.1 1.7l-114.2 109c-1.2 1.1-1.9 2.7-1.9 4.3 0 1.6.7 3.2 1.9 4.3l114.2 109c1.2 1.1 2.7 1.7 4.1 1.7 1.5 0 3-.6 4.1-1.7l13.8-13.2c1.2-1.1 1.9-2.7 1.9-4.3 0-1.6-.7-3.2-1.9-4.3L106.3 256l95.8-91.5c1.2-1.1 1.9-2.7 1.9-4.3z\"}}]})(props);\n};\nexport function IoIosCog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456.9 242.2l-26.1-4.2c-3.5-.6-6.1-3.3-6.6-6.8-.5-3.2-1-6.4-1.7-9.5-.7-3.4.9-6.9 3.9-8.6l23.1-12.8c3.6-1.8 5.3-6.1 3.9-9.9l-4-11c-1.4-3.8-5.4-6-9.4-5l-25.9 5c-3.4.7-6.9-1-8.6-4.1-1.5-2.8-3.1-5.6-4.8-8.4-1.8-3-1.6-6.8.7-9.5l17.3-19.9c2.8-3 2.9-7.5.3-10.6l-7.5-9c-2.6-3.1-7.1-3.8-10.5-1.5L378.3 130c-3 1.8-6.8 1.4-9.4-.9-2.4-2.1-4.9-4.2-7.4-6.2-2.7-2.2-3.8-5.9-2.5-9.1l9.4-24.7c1.6-3.7.2-8.1-3.3-10.1l-10.2-5.9c-3.5-2-8-1.1-10.4 2.2l-16.6 20.8c-2 2.5-4.9 3.8-8.5 2.5 0 0-5.6-2.3-9.8-3.7-3.3-1.1-5.6-4.2-5.5-7.7l.4-26.4c.2-4.1-2.6-7.7-6.6-8.4l-11.6-2c-4-.7-7.9 1.7-9.1 5.6l-8.6 25c-1.1 3.3-4.3 5.5-7.8 5.4-1.6 0-3.3-.1-4.9-.1s-3.3 0-4.9.1c-3.5.1-6.6-2.1-7.8-5.4l-8.6-25c-1.2-3.9-5.1-6.3-9.1-5.6l-11.6 2c-4 .7-6.8 4.3-6.6 8.4l.4 26.4c.1 3.5-2.1 6.4-5.5 7.7-2.3.9-7.3 2.8-9.7 3.7-2.8 1-6.1.2-8.8-2.9l-16.5-20.3c-2.4-3.3-6.9-4.2-10.4-2.2l-10.2 5.9c-3.5 2-5 6.4-3.3 10.1l9.4 24.7c1.2 3.3.2 7-2.5 9.1-2.5 2-5 4.1-7.4 6.2-2.6 2.3-6.4 2.7-9.4.9L111 116.3c-3.4-2.2-7.9-1.6-10.5 1.5l-7.5 9c-2.6 3.1-2.5 7.7.3 10.6l17.3 19.9c2.3 2.6 2.6 6.5.7 9.5-1.7 2.7-3.3 5.5-4.8 8.4-1.7 3.1-5.1 4.7-8.6 4.1l-25.9-5c-4-.9-8 1.2-9.4 5l-4 11c-1.4 3.8.3 8.1 3.9 9.9L85.6 213c3.1 1.7 4.6 5.2 3.9 8.6-.6 3.2-1.2 6.3-1.7 9.5-.5 3.5-3.2 6.2-6.6 6.8l-26.1 4.2c-4 .5-7.1 3.9-7.1 7.9v11.7c0 4.1 3 7.5 7.1 7.9l26.1 4.2c3.5.6 6.1 3.3 6.6 6.8.5 3.2 1 6.4 1.7 9.5.7 3.4-.9 6.9-3.9 8.6l-23.1 12.8c-3.6 1.8-5.3 6.1-3.9 9.9l4 11c1.4 3.8 5.4 6 9.4 5l25.9-5c3.4-.7 6.9 1 8.6 4.1 1.5 2.8 3.1 5.6 4.8 8.4 1.8 3 1.6 6.8-.7 9.5l-17.3 19.9c-2.8 3-2.9 7.5-.3 10.6l7.5 9c2.6 3.1 7.1 3.8 10.5 1.5l22.7-13.6c3-1.8 6.8-1.4 9.4.9 2.4 2.1 4.9 4.2 7.4 6.2 2.7 2.2 3.8 5.9 2.5 9.1l-9.4 24.7c-1.6 3.7-.2 8.1 3.3 10.1l10.2 5.9c3.5 2 8 1.1 10.4-2.2l16.8-20.6c2.1-2.6 5.5-3.7 8.2-2.6 3.4 1.4 5.7 2.2 9.9 3.6 3.3 1.1 5.6 4.2 5.5 7.7l-.4 26.4c-.2 4.1 2.6 7.7 6.6 8.4l11.6 2c4 .7 7.9-1.7 9.1-5.6l8.6-25c1.1-3.3 4.3-5.5 7.8-5.4 1.6 0 3.3.1 4.9.1s3.3 0 4.9-.1c3.5-.1 6.6 2.1 7.8 5.4l8.6 25c1.2 3.9 5.1 6.3 9.1 5.6l11.6-2c4-.7 6.8-4.3 6.6-8.4l-.4-26.4c-.1-3.5 2.2-6.6 5.5-7.7 4.2-1.4 7-2.5 9.6-3.5 2.6-.9 5.8-1 8.3 2.1l17 20.9c2.4 3.3 6.9 4.2 10.4 2.2l10.2-5.9c3.5-2 5-6.4 3.3-10.1l-9.4-24.7c-1.2-3.3-.2-7 2.5-9.1 2.5-2 5-4.1 7.4-6.2 2.6-2.3 6.4-2.7 9.4-.9l22.7 13.6c3.4 2.2 7.9 1.6 10.5-1.5l7.5-9c2.6-3.1 2.5-7.7-.3-10.6l-17.3-19.9c-2.3-2.6-2.6-6.5-.7-9.5 1.7-2.7 3.3-5.5 4.8-8.4 1.7-3.1 5.1-4.7 8.6-4.1l25.9 5c4 .9 8-1.2 9.4-5l4-11c1.4-3.8-.3-8.1-3.9-9.9l-23.1-12.8c-3.1-1.7-4.6-5.2-3.9-8.6.6-3.2 1.2-6.3 1.7-9.5.5-3.5 3.2-6.2 6.6-6.8l26.1-4.2c4-.5 7.1-3.9 7.1-7.9v-11.7c-.2-3.8-3.2-7.3-7.3-7.7zM181.8 356.9c-5.2 9-17.4 10.7-25 3.6C129.2 334.2 112 297.1 112 256c0-40.9 17.1-77.9 44.5-104.1 7.5-7.2 19.8-5.5 25 3.5l56 96.6c1.4 2.5 1.4 5.5 0 8l-55.7 96.9zM396 289.7C380.9 353 323.9 400 256 400c-14.1 0-27.8-2-40.6-5.8-9.9-2.9-14.5-14.4-9.3-23.3l55.7-96.9c1.4-2.5 4.1-4 6.9-4h111.7c10.4 0 18 9.6 15.6 19.7zM380.5 242H268.7c-2.9 0-5.5-1.5-6.9-4l-56.1-96.7c-5.2-8.9-.7-20.4 9.2-23.4 13-3.9 26.8-5.9 41.1-5.9 67.9 0 124.9 47 140 110.3 2.4 10.1-5.2 19.7-15.5 19.7z\"}}]})(props);\n};\nexport function IoIosColorFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M231.5 118.3c.1 0 .1-.1 0 0L175.3 62c-9.3-9.3-21.6-14-33.9-14-12.3 0-24.6 4.7-33.9 14-18.7 18.7-18.7 49.2 0 67.9l49.3 49.3-84.5 84c-11.1 11.1-11 29.2.3 40l131.2 126c10.9 10.4 28 10.4 38.9-.1 37.8-36.6 118.3-114.5 126.7-122.9 5.8-5.8 18.2-7.1 28.7-7.1h.3c5.9 0 8.8-7.1 4.6-11.2L231.5 118.3zm-103.9-7.9c-7.2-7.2-8.3-18.8-2-26.8 3.8-4.9 9.6-7.6 15.8-7.6 5.4 0 10.4 2.1 14.1 5.8l49.3 49.3-28.3 28.3-48.9-49zM403 339.5c-1.6-1.9-4.5-1.9-6.1 0-10.5 12.2-45 53.9-45 76.4 0 26.6 21.5 48.1 48 48.1s48-21.6 48-48.1c.1-22.6-34.3-64.2-44.9-76.4z\"}}]})(props);\n};\nexport function IoIosColorFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M442 248.9c-15.7-20.6-37.7-35.9-62.1-43.6 1-6.3 1.4-12.7 1.4-19.1 0-33.7-13-65.4-36.7-89.2C321 73.1 289.5 60 256 60s-65 13.1-88.6 37c-23.7 23.8-36.7 55.5-36.7 89.2 0 6.4.5 12.8 1.4 19.1-24.5 7.7-46.4 23.1-62.1 43.6-17 22.2-26 48.8-26 76.9 0 33.7 13 65.4 36.7 89.2 23.7 23.8 55.2 37 88.6 37 32.6 0 63.2-12.4 86.7-35 23.4 22.6 54.1 35 86.7 35 33.5 0 65-13.1 88.6-37 23.7-23.8 36.7-55.5 36.7-89.2 0-28.1-9-54.7-26-76.9zM256 85.5c55.1 0 100 45.2 100 100.7 0 4.7-.3 9.4-1 14.1-4.1-.4-8.2-.6-12.4-.6-32.6 0-63.2 12.4-86.7 35-23.4-22.6-54.1-35-86.7-35-4.1 0-8.3.2-12.4.6-.6-4.6-1-9.4-1-14.1.2-55.6 45.1-100.7 100.2-100.7zm0 201.4c-1.8 0-3.7-.1-5.5-.2 1.6-3.8 3.4-7.5 5.5-11.1 2.1 3.6 3.9 7.3 5.5 11.1-1.8.2-3.7.2-5.5.2zm-46.6 131.2c-12.7 5.6-26.1 8.4-40.1 8.4-55.1 0-100-45.2-100-100.7 0-22.3 7.1-43.5 20.6-61.2 12.3-16.1 29.4-28.3 48.5-34.6 6.6 17.9 17.3 34.3 31.2 47.6 13.9 13.4 30.9 23.4 49.2 29.1-1 6.3-1.4 12.7-1.4 19.1 0 25.8 7.7 50.6 22.2 71.7-8.8 8.7-19 15.6-30.2 20.6zM225.1 282c-27.6-9-50-29.8-61.3-56.7 1.8-.1 3.7-.2 5.5-.2 13.9 0 27.4 2.8 40.1 8.4 11.2 5 21.4 11.9 30.1 20.6-5.9 8.7-10.8 18-14.4 27.9zm30.9 94c-8.7-15.2-13.3-32.5-13.3-50.2 0-4.7.3-9.4 1-14.1a128.658 128.658 0 0 0 24.8 0c.6 4.6 1 9.4 1 14.1-.2 17.7-4.8 35-13.5 50.2zm46.6-142.5c12.7-5.6 26.1-8.4 40.1-8.4 1.8 0 3.7.1 5.5.2-11.3 26.9-33.7 47.7-61.3 56.7-3.6-9.8-8.5-19.2-14.4-27.9 8.7-8.7 18.9-15.6 30.1-20.6zm40.1 193c-13.9 0-27.4-2.8-40.1-8.4-11.2-5-21.4-11.9-30.1-20.6 14.5-21.1 22.2-45.8 22.2-71.7 0-6.4-.5-12.8-1.4-19.1 18.3-5.7 35.2-15.7 49.2-29.1 13.8-13.3 24.5-29.6 31.2-47.6 19.1 6.3 36.2 18.4 48.5 34.6 13.5 17.7 20.6 38.9 20.6 61.2-.1 55.6-45 100.7-100.1 100.7z\"}}]})(props);\n};\nexport function IoIosColorPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"}}]})(props);\n};\nexport function IoIosColorWand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.7 405.6L201.3 160.4c-3.1-3.1-8.2-3.1-11.3 0l-28.7 28.8c-3.1 3.1-3.1 8.2 0 11.3l244.4 245.2c3.1 3.1 8.2 3.1 11.3 0l28.6-28.8c3.2-3.1 3.2-8.2.1-11.3zm-25.5 14.3l-.1.1c-3.1 3.1-8.2 3.1-11.3 0L218.9 229.5c-3.1-3.1-3.1-8.2 0-11.3l.1-.1c3.1-3.1 8.2-3.1 11.3 0l189.9 190.5c3.1 3.1 3.1 8.2 0 11.3zM192.8 120.1c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12s-12 5.4-12 12v32.1c0 6.6 5.4 12 12 12zM192.8 263.3c-6.6 0-12 5.4-12 12v32.1c0 6.6 5.4 12 12 12s12-5.4 12-12v-32.1c0-6.6-5.4-12-12-12zM270.7 190.2c0 6.6 5.4 12 12 12h32c6.6 0 12-5.4 12-12s-5.4-12-12-12h-32c-6.6 0-12 5.4-12 12zM119.9 190.2c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12s5.4 12 12 12h32c6.5 0 11.9-5.4 11.9-12zM124.8 141c2.3 2.3 5.3 3.5 8.5 3.5s6.2-1.3 8.5-3.5c4.7-4.7 4.7-12.3 0-17l-20.9-21c-2.3-2.3-5.3-3.5-8.5-3.5s-6.2 1.3-8.5 3.5c-4.7 4.7-4.7 12.3 0 17l20.9 21zM133.3 239.9c-3.2 0-6.2 1.3-8.5 3.5l-20.9 21c-2.3 2.3-3.5 5.3-3.5 8.5s1.2 6.2 3.5 8.5 5.3 3.5 8.5 3.5 6.2-1.3 8.5-3.5l20.9-21c4.7-4.7 4.7-12.3 0-17-2.3-2.2-5.3-3.5-8.5-3.5zM252.4 144.5c3.2 0 6.2-1.3 8.5-3.5l20.9-21c4.7-4.7 4.7-12.3 0-17-2.3-2.3-5.3-3.5-8.5-3.5s-6.2 1.3-8.5 3.5l-20.9 21c-2.3 2.3-3.5 5.3-3.5 8.5s1.2 6.2 3.5 8.5c2.3 2.2 5.3 3.5 8.5 3.5z\"}}]})(props);\n};\nexport function IoIosCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280.5 280.5l-49-49c-.9-.9-2.5-.7-3.2.4l-49.5 98.5c-1.1 1.8 1 3.9 2.8 2.8l98.5-49.5c1.1-.7 1.3-2.3.4-3.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm40.6 249.3L137 377.8c-1.8 1.1-3.9-1-2.8-2.8l80.6-159.6c.2-.3.4-.5.7-.7L375 134.2c1.8-1.1 3.9 1 2.8 2.8l-80.6 159.6c-.1.3-.3.5-.6.7z\"}}]})(props);\n};\nexport function IoIosConstruct (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380 64.4zM275.1 57.6c-9.4-5.9-23.3-9.6-37.9-9.6-14.3 0-30.3 2.5-46.7 9.2-46.5 19-74 45.4-81.1 52.4-7 7-16.8 18-22.9 26.6-6.1 8.7 1.9 21-6.1 29s-24.7 0-24.7 0c-1.4 0-2.9.5-3.9 1.6l-34.1 33.9c-2.2 2.1-2.2 5.7 0 7.8l63.5 63.1c1.1 1.1 2.5 1.6 3.9 1.6s2.9-.5 3.9-1.6l33.2-34.8c2.2-2.1 2.2-5.7 0-7.8 0 0-5.3-5.2-12.1-12s.8-19.3 5.3-23.4c4.5-4.1 11.6-6.8 21.1-6.8 4.3 0 7.4.7 11.4 1.8 12.2 3.4 25.8 15.9 50.9 40.8l-3.9 6.5c-2.3 3.8-.9 8.3 1.3 10.4 0 0-5-4.9 13.1 13.1l50-47.2c-19.1-18.9-14.5-14.1-14.5-14.1-1.4-1.4-3.8-2.3-6.3-2.3-1.4 0-2.9.3-4.2 1l-5.6 3c-28-27.8-35.3-40.2-34.3-61.7 1.1-22.4 12.3-37.1 30.5-52.7 24.7-21.1 60.6-15.2 60.6-15.2 8-.1-4.2-8.6-10.4-12.6zM462.5 399.9s-68.9-57.2-130.2-115.7l-47.7 50.6c58.5 60.6 114.9 127.6 114.9 127.6 1.1 1.1 2.5 1.6 3.9 1.6s2.9-.5 3.9-1.6l55.1-54.7c2.2-2.1 2.2-5.7.1-7.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M479.2 125.3l-52.4 52.6-51.1-9.3-9.2-51.1 52.4-52.6c-11.1-11.1-26.8-16.6-39-16.6-.7 0-1.4 0-2 .1-12.5.6-39.2 7.7-59.9 29.7-20 21.1-41.1 60.6-22.4 104.3 2.2 5.3 4.7 12.2-2.7 19.7-1.5 1.4-9.9 9.4-22.5 21.3-3.6 3.4-7.4 7-11.6 11-8 7.6-17.1 16.2-26.8 25.2-3.8 3.6-7.7 7.2-11.6 11-57 53.8-126.9 119.5-126.9 119.5-18 15.5-16.7 44.1-.1 60.8 8.5 8.4 20 12.8 31.3 12.8 11 0 21.9-4.2 29.5-13.1 0 0 65.5-69.8 119.3-126.9 3.7-4 7.4-7.8 11-11.7 9.3-9.9 18-19.1 25.8-27.3 3.9-4.2 7.6-8.1 11-11.6 11.5-12.2 19.3-20.4 21-22 4-3.9 7.7-5.1 11.1-5.1 3.3 0 6.2 1.2 8.6 2.4 9.9 5.1 21 7.3 32.4 7.3 26.7 0 55-12.4 72.1-29.5 24.4-24.4 28.8-47.9 29.6-60 .6-11.8-3.6-27.6-16.9-40.9zM137.4 426.1c-5.5 5.4-14.4 5.4-19.8 0-5.4-5.5-5.4-14.4 0-19.8 5.5-5.4 14.4-5.4 19.8 0 5.4 5.5 5.4 14.4 0 19.8z\"}}]})(props);\n};\nexport function IoIosContact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C148.5 48 60.1 129.5 49.2 234.1c-.8 7.2-1.2 14.5-1.2 21.9 0 7.4.4 14.7 1.2 21.9C60.1 382.5 148.5 464 256 464c114.9 0 208-93.1 208-208S370.9 48 256 48zm135.8 326.1c-22.7-8.6-59.5-21.2-82.4-28-2.4-.7-2.7-.9-2.7-10.7 0-8.1 3.3-16.3 6.6-23.3 3.6-7.5 7.7-20.2 9.2-31.6 4.2-4.9 10-14.5 13.6-32.9 3.2-16.2 1.7-22.1-.4-27.6-.2-.6-.5-1.2-.6-1.7-.8-3.8.3-23.5 3.1-38.8 1.9-10.5-.5-32.8-14.9-51.3-9.1-11.7-26.6-26-58.5-28h-17.5c-31.4 2-48.8 16.3-58 28-14.5 18.5-16.9 40.8-15 51.3 2.8 15.3 3.9 35 3.1 38.8-.2.7-.4 1.2-.6 1.8-2.1 5.5-3.7 11.4-.4 27.6 3.7 18.4 9.4 28 13.6 32.9 1.5 11.4 5.7 24 9.2 31.6 2.6 5.5 3.8 13 3.8 23.6 0 9.9-.4 10-2.6 10.7-23.7 7-58.9 19.4-80 27.8C91.6 341.4 76 299.9 76 256c0-48.1 18.7-93.3 52.7-127.3S207.9 76 256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256c0 43.9-15.6 85.4-44.2 118.1z\"}}]})(props);\n};\nexport function IoIosContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm143.3 263.9c-8.1-2.6-23.7-3.4-29.5-10.4-2.9-3.5-1-16.6-1-16.6 25.2-1.4 31-6.1 31-6.1 3.9-2.3 2.1-2.7.1-6.1-10.9-18.3-6-41.5-6.5-61.6-.4-16.7-4.8-35-20-44.4-7.6-4.7-19.7-6.9-31.4-6.9-9.5 0-18.7 1.4-25.3 4.1-42.4 17-17.4 73.2-31.9 105.4-2.5 5.4-6.1 7.3.2 10.5 0 0 7.5 4.4 28.9 6.3 0 0 .3 12.6 0 13.9-1.1 4.9-11.8 8.3-15.8 9.4-2.7.7-8.7 2.5-16.4 5.7-3.7 1.5-3.1 6.9.8 7.6 3.9.7 8.1 1.7 11.5 2.9 0 0 26.4 6 46 25 13.2 12.7 18.1 27.6 20 44.6.5 4.5-1.7 8.9-5.5 11.5l-5.7 3.6c-1.9 1.1-4.2-.2-4.3-2.4 0-29.5-17.8-55.5-45.8-65.2-13.5-4.7-28.1-5-41.6-9.7-4.1-1.4-12.2-3.1-13.9-7.8-1.6-4.6-1.6-10-1.9-14.8-.2-3.8-.3-7.6-.3-11.4 0-2.5 6.4-7.8 7.8-10.1 5.4-9 5.9-21.1 6.9-31.3 8.7 2.4 9.8-13.7 11.3-18.6 1.1-3.4 5-20.9-2.6-23.6 2.5-4.4 3.5-9.8 4.2-14.7 2-12.8 2.8-26.8-1.1-39.3-8.1-26-33-40.6-59.3-41.4-26.7-.9-53.5 11.9-63.5 37.8-4.8 12.6-4.4 26.3-2.8 39.5.7 6 1.7 12.7 4.7 18.1-6.4 2.8-4.5 17.7-3.4 21.3 1.6 5.1 3 23.4 12.1 20.9.8 8.1 1.7 16.4 3.9 24.3 1.5 5.3 4.6 9.8 8.2 13.9 1.8 2 2.7 2.2 2.6 4.8-.1 7.8.1 16.2-1.9 23.8s-18.7 10.8-25.4 12.2c-14.8 3-28.6 4.7-41.4 11.5C84.8 320.6 76 289 76 256c0-47.9 19.2-94 53.2-127.7C162.7 95 207.1 76.4 254.3 76c47.6-.4 93.7 18.1 127.8 51.5 34.8 34.1 54 79.9 54 128.5 0 24.9-5 48.9-14.5 71.1-5.6-7-13.4-12.3-22.3-15.2z\"}}]})(props);\n};\nexport function IoIosContract (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184.3 204.8h-77.7c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9V106.6c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v77.7L87.7 68c-2.6-2.6-6.1-4-9.8-4-3.7 0-7.2 1.4-9.8 4.1-5.4 5.4-5.4 14.2 0 19.6l116.2 117.1zM293.1 232.8h112.2c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9h-77.7L444 87.7c5.4-5.4 5.4-14.2 0-19.6-2.6-2.6-6.1-4.1-9.8-4.1-3.7 0-7.2 1.4-9.8 4L307.3 184.3v-77.7c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v112.2c0 7.7 6.2 14 13.8 14zM77.9 448c3.7 0 7.2-1.4 9.8-4l117.1-116.3v77.7c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9V293.1c0-7.7-6.2-13.9-13.9-13.9H106.6c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h77.7L68 424.3c-5.4 5.4-5.4 14.2 0 19.6 2.7 2.7 6.2 4.1 9.9 4.1zM293.1 419.2h.2c7.7 0 13.9-6.2 13.9-13.9v-77.7L424.3 444c2.6 2.6 6.1 4 9.8 4 3.7 0 7.2-1.4 9.8-4.1 5.4-5.4 5.4-14.2 0-19.6L327.7 307.2h77.7c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9H293.1c-7.7 0-13.9 6.2-13.9 13.9v112.2c.1 7.7 6.3 13.9 13.9 13.9z\"}}]})(props);\n};\nexport function IoIosContrast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm127.3 335.3c-34 34-79.2 52.7-127.3 52.7V76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3z\"}}]})(props);\n};\nexport function IoIosCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 115h90c3.3 0 6-2.7 6-6 0-8.2-3.7-16-10-21.3l-77.1-64.2c-4.9-4.1-14.2-7.4-20.6-7.4-4.1 0-7.4 3.3-7.4 7.4V96c.1 10.5 8.6 19 19.1 19z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M307 96V16H176c-17.6 0-32 14.4-32 32v336c0 17.6 14.4 32 32 32h240c17.6 0 32-14.4 32-32V141h-96c-24.8 0-45-20.2-45-45z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M116 412V80H96c-17.6 0-32 14.4-32 32v352c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32v-20H148c-17.6 0-32-14.4-32-32z\"}}]})(props);\n};\nexport function IoIosCreate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404.3 86l-202 202c-1.5 1.5-2.3 3.5-2.3 5.6v26.5c0 4.4 3.6 7.9 7.9 7.9h26.3c2.1 0 4.2-.8 5.7-2.3l202.1-202c3.1-3.1 3.1-8.1 0-11.2L415.5 86c-3.1-3.1-8.1-3.1-11.2 0zM475.6 67l-14.4-14.4-.2-.2c-3.1-2.7-7.2-4.4-11.5-4.4-4.4 0-8.5 1.7-11.6 4.5l-11.3 11.4c-1.5 1.6-1.5 4.1 0 5.6L437 79.9l21.7 21.7c1.6 1.6 4.1 1.6 5.7 0l11.3-11.3c2.8-3.1 4.4-7.1 4.4-11.6-.1-4.4-1.7-8.6-4.5-11.7z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250 342c-3 3-7.1 4.7-11.3 4.7H197.3c-8.8 0-16-7.2-16-16V289.2c0-4.2 1.7-8.3 4.7-11.3l.8-.8 147.6-147.6c2.5-2.5.7-6.8-2.8-6.8H90.7C58.3 122.7 32 149 32 181.4v224c0 32.4 26.3 58.7 58.7 58.7h256c32.4 0 58.7-26.3 58.7-58.7v-209c0-3.6-4.3-5.3-6.8-2.8L250.8 341.2l-.8.8z\"}}]}]})(props);\n};\nexport function IoIosCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M142 64c-7.7 0-14 6.3-14 14v20c0 7.7 6.3 14 14 14s14-6.3 14-14V78c0-7.7-6.3-14-14-14zM156 342V190c0-7.7-6.3-14-14-14s-14 6.3-14 14v166c0 15.5 12.5 28 28 28h166c7.7 0 14-6.3 14-14s-6.3-14-14-14H170c-7.7 0-14-6.3-14-14zM434 356h-20c-7.7 0-14 6.3-14 14s6.3 14 14 14h20c7.7 0 14-6.3 14-14s-6.3-14-14-14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M64 142c0 7.7 6.3 14 14 14h264c7.7 0 14 6.3 14 14v264c0 7.7 6.3 14 14 14s14-6.3 14-14V156c0-15.5-12.5-28-28-28H78c-7.7 0-14 6.3-14 14z\"}}]})(props);\n};\nexport function IoIosCube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.8 129.5L261.7 49.2c-3.6-1.6-7.7-1.6-11.3 0L71.2 129.5c-6 2.7-6.2 11.8-.4 14.8l178.7 94.1c4.1 2.2 8.9 2.2 13 0l178.7-94.1c5.8-3 5.6-12.1-.4-14.8zM280.2 462.9l180.1-95.3c2.2-1.4 3.6-4 3.6-6.8V175.9c0-5.9-5.8-9.7-10.7-7.1l-180.1 92.8c-2.6 1.3-4.2 4.1-4.2 7.1V456c.1 6.2 6.4 10 11.3 6.9zM48 175.9v184.8c0 2.8 1.4 5.4 3.6 6.8l180.1 95.3c5 3.2 11.2-.6 11.2-6.8V268.7c0-3-1.6-5.8-4.2-7.1l-180-92.8c-4.9-2.6-10.7 1.3-10.7 7.1z\"}}]})(props);\n};\nexport function IoIosCut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 277.2c25.5-33 80.5-111.5 90.2-135.4 7.2-17.6 10.6-32.8 10.4-46.2-.2-17.9-6-29.3-18.3-40.6-5.2-4.8-13.5-6.9-20-6.9L255.9 201.7l-10 13.4-2.9 3.9-.1.1-14.5 19.7c-.1.1-.2.3-.3.4-.5.8-7.5 10.9-15.2 22.7-3 4.6-6.1 9.5-9 14.1-3.5 5.6-6.6 11-8.8 15.2-3.6 7.1-7.3 14.4-10.7 21.5-3.7 7.5-7.2 14.6-10.4 20.7-10.2-7.3-22-11.1-34.3-11.1-17.5 0-33.7 7.7-45.8 21.6C82.4 357.1 76 374.6 76 393.1c0 18.5 6.4 36 17.9 49.3 12.1 13.9 28.4 21.6 45.8 21.6 14.4 0 28-5.2 39.2-15 10.5-9.1 18-21.3 21.8-35.4 1-3.1 11.6-34.7 26.1-57.3 9.2-14.4 22.2-23.4 29.6-27.8l13.5-9.7c0 .1 12.7-8.7 38.1-41.6zM139.9 421.1c-13.3 0-24-12.6-24-28s10.7-28 24-28 24 12.6 24 28c0 15.5-10.8 28-24 28zm116.2-132.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M191.5 260.4c.7 1 1.6 1.9 2.5 2.7 1.7-2.8 3.6-5.7 5.4-8.6l46.5-65.8L140.9 48c-8.9 0-14.4.9-18.5 3.9-11.9 8.9-19.1 25.6-19.3 43.6-.2 13.5 3.3 28.6 10.4 46.2 8.6 21 42.6 70.2 78 118.7zM372 322.3c-12.3 0-24.1 3.8-34.3 11.1-3.2-6.1-6.7-13.2-10.4-20.7-3.4-6.9-6.9-14-10.4-20.8L306 305.8l-36.4 33.1c5.2 4.6 10.7 10.4 15.3 17.5 14.5 22.6 25 54.2 26 57.3 3.8 14.1 11.3 26.3 21.8 35.4 11.3 9.8 24.9 15 39.2 15 35.3 0 64-31.8 64-70.9s-28.6-70.9-63.9-70.9zm.1 98.8c-13.3 0-24-12.6-24-28s10.7-28 24-28 24 12.6 24 28c0 15.5-10.7 28-24 28z\"}}]})(props);\n};\nexport function IoIosDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 442.2c-.3-2.2-2-3.9-4.2-4.3l-22.3-1.9c-11.8-3.1-20.5-16.2-22.3-28.3L302 400h-92l-1.2 7.6c-1.9 12.1-10.5 25.2-22.3 28.3l-22.3 1.9c-2.1.5-3.9 2.2-4.2 4.3-.4 3.1 2 5.8 5.1 5.8h181.8c3 .1 5.5-2.6 5.1-5.7zM472.9 71c-4.5-4.5-10.7-7-17-7H56.2c-6.4 0-12.5 2.5-17 7S32 81.7 32 88v272c0 6.4 2.7 12.5 7.2 17s10.5 7 16.8 7h400c6.4 0 12.3-2.5 16.8-7s7.2-10.7 7.2-17V88c.1-6.3-2.6-12.5-7.1-17zM256 360c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8zm203.9-40H52.2c-2.2 0-4-1.8-4-4V92c0-6.6 5.4-12 12-12h391.7c6.6 0 12 5.4 12 12v224c0 2.2-1.8 4-4 4z\"}}]})(props);\n};\nexport function IoIosDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 165.8c-49.9 0-90.3 40.4-90.3 90.3s40.4 90.2 90.3 90.2 90.3-40.4 90.3-90.2c0-49.9-40.4-90.3-90.3-90.3zm0 130.6c-22.3 0-40.4-18.1-40.4-40.4s18.1-40.4 40.4-40.4 40.4 18.1 40.4 40.4-18.1 40.4-40.4 40.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 322c-63 0-114-51.1-114-114 0-63 51.1-114 114-114s114 51 114 114-51 114-114 114z\"}}]})(props);\n};\nexport function IoIosDocument (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 155h91c2.8 0 5-2.2 5-5 0-8.9-3.9-17.3-10.7-22.9L321 63.5c-5.8-4.8-13-7.4-20.6-7.4-4.1 0-7.4 3.3-7.4 7.4V136c0 10.5 8.5 19 19 19z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M267 136V56H136c-17.6 0-32 14.4-32 32v336c0 17.6 14.4 32 32 32h240c17.6 0 32-14.4 32-32V181h-96c-24.8 0-45-20.2-45-45z\"}}]})(props);\n};\nexport function IoIosDoneAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M317.5 210.3c1.7-1.8 1.8-4.7 0-6.5l-19.8-21c-.8-.9-2-1.4-3.2-1.4-1.2 0-2.4.5-3.2 1.4l-66.5 69.1 26.4 27.1 66.3-68.7zM123.8 253.1c-.9-.9-2-1.4-3.2-1.4-1.2 0-2.3.5-3.2 1.4l-20.1 20.7c-1.8 1.8-1.8 4.8 0 6.6l63.2 65c4 4.2 9 6.6 13.2 6.6 6 0 11.1-4.5 13.1-6.4l.1-.1 13.4-13.8-76.5-78.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M414.7 182.4l-19.8-21c-.8-.9-2-1.4-3.2-1.4-1.2 0-2.4.5-3.2 1.4L250.7 304.1l-50.1-51.6c-.9-.9-2-1.4-3.2-1.4-1.2 0-2.3.5-3.2 1.4l-20.1 20.7c-1.8 1.8-1.8 4.8 0 6.6l63.2 65c4 4.2 9 6.6 13.2 6.6 6 0 11.1-4.5 13.1-6.4l.1-.1 151-156.1c1.7-1.7 1.7-4.6 0-6.4z\"}}]})(props);\n};\nexport function IoIosDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 144H269v179.9l47.9-47.2c5.1-5 13.3-5 18.4.1 5 5.1 5 13.3-.1 18.4l-70 69c-2.5 2.4-5.8 3.7-9.1 3.7-1.7 0-3.4-.3-5-1-1.5-.6-2.9-1.6-4.1-2.7l-70-69c-5.1-5-5.2-13.3-.1-18.4 5-5.1 13.3-5.2 18.4-.1l47.9 47.2V144H136c-22 0-40 18-40 40v240c0 22 18 40 40 40h240c22 0 40-18 40-40V184c0-22-18-40-40-40zM269 61c0-7.2-5.8-13-13-13s-13 5.8-13 13v83h26V61z\"}}]})(props);\n};\nexport function IoIosEasel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434 461.5l-26.6-69.1c-2.1-5.1-7-8.4-12.4-8.4-4.5 0-8.6 2.2-11.1 5.9s-3 8.4-1.4 12.5l26 69.1c2.1 5.1 7 8.5 12.5 8.5h.5c4.5 0 8.7-2.2 11.2-5.9 2.5-3.8 3-8.5 1.3-12.6zM117.6 384c-5.5 0-10.4 3.3-12.4 8.4l-26.6 69.1c-1.7 4.2-1.2 8.9 1.3 12.6 2.5 3.7 6.7 5.9 11.2 5.9h.5c5.5 0 10.4-3.3 12.5-8.5l26-69.1c1.7-4.1 1.2-8.8-1.4-12.5-2.4-3.7-6.6-5.9-11.1-5.9zM256.6 384h-1.1c-7.4 0-13.4 6-13.4 13.4v36.1c0 7.4 6 14.4 13.4 14.4h1.1c7.4 0 13.4-7 13.4-14.4v-36.1c0-7.4-6-13.4-13.4-13.4z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 128H88c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h336c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80H63.9C46.3 80 32 94.3 32 111.9v224.2c0 17.6 14.3 31.9 31.9 31.9H448c17.7 0 32-14.3 32-32V112c0-17.7-14.3-32-32-32zm4 244c0 8.8-7.2 16-16 16H76c-8.8 0-16-7.2-16-16V124c0-8.8 7.2-16 16-16h364.6c3 0 5.9 1.2 8 3.3 2.1 2.1 3.3 5 3.3 8V324z\"}}]},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c-13.4-.2-24.4 12.2-24.4 25.6h48.7c.1-13.4-10.9-25.8-24.3-25.6z\"}}]})(props);\n};\nexport function IoIosEgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C192 32 96 165.2 96 288.9 96 412.6 160 480 256 480s160-67.4 160-191.1C416 165.2 320 32 256 32z\"}}]})(props);\n};\nexport function IoIosExit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 136v107h179.9l-47.2-47.9c-5-5.1-5-13.3.1-18.4 5.1-5 13.3-5 18.4.1l69 70c2.4 2.5 3.7 5.8 3.7 9.1 0 1.7-.3 3.4-1 5-.6 1.5-1.6 2.9-2.7 4.1l-69 70c-5 5.1-13.3 5.2-18.4.1-5.1-5-5.2-13.3-.1-18.4l47.2-47.9H144v107c0 22 18 40 40 40h240c22 0 40-18 40-40V136c0-22-18-40-40-40H184c-22 0-40 18-40 40zM61 243c-7.2 0-13 5.8-13 13s5.8 13 13 13h83v-26H61z\"}}]})(props);\n};\nexport function IoIosExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112.4 92h77.7c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9H77.9C70.2 64 64 70.2 64 77.9v112.2c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9v-77.7l117.1 116.3c2.6 2.6 6.1 4 9.8 4 3.7 0 7.2-1.4 9.8-4.1 5.4-5.4 5.4-14.2 0-19.6L112.4 92zM434.1 64H321.9c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h77.7L283.3 209.1c-5.4 5.4-5.4 14.2 0 19.6 2.6 2.6 6.1 4.1 9.8 4.1 3.7 0 7.2-1.4 9.8-4L420 112.4v77.7c0 7.7 6.2 13.9 13.9 13.9h.2c7.7 0 13.9-6.2 13.9-13.9V77.9c0-7.7-6.2-13.9-13.9-13.9zM218.9 279.2c-3.7 0-7.2 1.4-9.8 4L92 399.6v-77.7c0-7.7-6.2-13.9-13.9-13.9h-.2c-7.7 0-13.9 6.2-13.9 13.9v112.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9v-.2c0-7.7-6.2-13.9-13.9-13.9h-77.7l116.3-117.1c5.4-5.4 5.4-14.2 0-19.6-2.6-2.6-6.1-4.1-9.8-4.1zM434.1 308h-.2c-7.7 0-13.9 6.2-13.9 13.9v77.7L302.9 283.3c-2.6-2.6-6.1-4-9.8-4-3.7 0-7.2 1.4-9.8 4.1-5.4 5.4-5.4 14.2 0 19.6l116.3 117h-77.7c-7.7 0-13.9 6.2-13.9 13.9v.2c0 7.7 6.2 13.9 13.9 13.9h112.2c7.7 0 13.9-6.2 13.9-13.9V321.9c0-7.7-6.2-13.9-13.9-13.9z\"}}]})(props);\n};\nexport function IoIosEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88.3 68.1c-5.6-5.5-14.6-5.5-20.1.1-5.5 5.5-5.5 14.5 0 20l355.5 355.7c3.7 3.7 9 4.9 13.7 3.6 2.4-.6 4.6-1.9 6.4-3.7 5.5-5.5 5.5-14.5 0-20L88.3 68.1zM260.2 345.9c-53 2.4-96.6-41.2-94.1-94.1.6-12.2 3.6-23.8 8.6-34.3L121.3 164c-27.7 21.4-55.4 48.9-85.1 81.3-5.5 6.1-5.6 15.2-.1 21.3C101 338.3 158.2 400 255.8 400c29.7 0 57.1-7.4 82.3-19.2l-43.5-43.5c-10.6 5-22.2 8-34.4 8.6zM475.8 266c5.3-5.8 5.6-14.6.5-20.7C424 181.8 351.5 112 255.8 112c-29.1 0-56 6.6-82 19l43.7 43.7c10.5-5 22.1-8.1 34.3-8.6 53-2.4 96.6 41.2 94.1 94.1-.6 12.2-3.6 23.8-8.6 34.3l53.5 53.5c33-25.3 61.3-55.9 85-82z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M192.2 260.9c2.4 31.3 27.6 56.5 58.9 58.9 8.2.6 16.1-.3 23.4-2.6l-79.8-79.8c-2.2 7.4-3.1 15.3-2.5 23.5zM320 256c0-1.3-.1-2.6-.1-3.9-5.6 2.5-11.7 3.9-18.2 3.9-1.1 0-2.1 0-3.1-.1l18.6 18.7c1.8-5.9 2.8-12.2 2.8-18.6zM256 209c0-6 1.1-11.7 3.1-16.9-1 0-2-.1-3.1-.1-6.4 0-12.6 1-18.5 2.8l18.7 18.7c-.1-1.5-.2-3-.2-4.5z\"}}]})(props);\n};\nexport function IoIosEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.8 112c-80.4 0-143.8 50.6-219.6 133.3-5.5 6.1-5.6 15.2-.1 21.3C101 338.3 158.2 400 255.8 400c96.4 0 168.7-77.7 220.1-134 5.3-5.8 5.6-14.6.5-20.7C424 181.8 351.5 112 255.8 112zm4.4 233.9c-53 2.4-96.6-41.2-94.1-94.1 2.1-46.2 39.5-83.6 85.7-85.7 53-2.4 96.6 41.2 94.1 94.1-2.1 46.2-39.5 83.6-85.7 85.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 209c0-6 1.1-11.7 3.1-16.9-1 0-2-.1-3.1-.1-36.9 0-66.6 31.4-63.8 68.9 2.4 31.3 27.6 56.5 58.9 58.9 37.5 2.8 68.9-26.9 68.9-63.8 0-1.3-.1-2.6-.1-3.9-5.6 2.5-11.7 3.9-18.2 3.9-25.2 0-45.7-21.1-45.7-47z\"}}]})(props);\n};\nexport function IoIosFastforward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.1 249.3L268 129.1c-5.4-3.1-12.3.6-12.3 6.7V251L44.3 129.1c-5.4-3.1-12.3.6-12.3 6.7v240.3c0 6.1 6.9 9.8 12.3 6.7L255.6 261v115.2c0 6.1 6.9 9.8 12.3 6.7L476 262.7c5.3-3 5.3-10.4.1-13.4z\"}}]})(props);\n};\nexport function IoIosFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.6 464c3.6 0 7.1-1.4 9.6-4l44.8-44.8 37 37c2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4 5.3-5.3 5.3-13.9 0-19.2l-37-37 50-50c30.6 26 69.3 40.3 109.6 40.3 22.8 0 45-4.5 65.8-13.3 20.1-8.5 38.2-20.7 53.8-36.2 15.5-15.5 27.7-33.6 36.2-53.8 8.8-20.9 13.3-43 13.3-65.8s-4.5-45-13.3-65.8c-8.5-20.1-20.7-38.2-36.2-53.8-15.5-15.5-33.6-27.7-53.8-36.2-20.9-8.8-43-13.3-65.8-13.3-22.8 0-45 4.5-65.8 13.3-20.1 8.5-38.2 20.7-53.8 36.2-15.5 15.5-27.7 33.6-36.2 53.8-8.8 20.9-13.3 43-13.3 65.8 0 40.3 14.3 79 40.3 109.6l-50 50-37-37c-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4-5.3 5.3-5.3 13.9 0 19.2l37 37L52 440.8c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4zm132.9-347.2C221.3 90 257 75.2 294.9 75.2c37.9 0 73.5 14.8 100.3 41.6 26.8 26.8 41.6 62.4 41.6 100.3s-14.8 73.5-41.6 100.3c-26.8 26.8-62.4 41.6-100.3 41.6s-73.5-14.8-100.3-41.6C167.7 290.7 153 255 153 217.1s14.7-73.5 41.5-100.3z\"}}]})(props);\n};\nexport function IoIosFiling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 64H88c-22 0-40 18-40 40v304c0 22 18 40 40 40h336c22 0 40-18 40-40V104c0-22-18-40-40-40zm12 176c0 8.8-7.2 16-16 16h-86.8c-6.8 0-12.8 4.2-15.1 10.6C314 278.2 303.8 288 292 288h-72c-11.9 0-22.1-9.8-26.1-21.4-2.2-6.4-8.3-10.6-15.1-10.6H92c-8.8 0-16-7.2-16-16V108c0-8.8 7.2-16 16-16h328c8.8 0 16 7.2 16 16v132z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M386 156H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14zM386 220H126c-7.7 0-14-6.3-14-14s6.3-14 14-14h260c7.7 0 14 6.3 14 14s-6.3 14-14 14z\"}}]})(props);\n};\nexport function IoIosFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.9 80H64.1C46.5 80 32 94.5 32 112.1v287.7c0 17.7 14.5 32.1 32.1 32.1h383.7c17.7 0 32.1-14.5 32.1-32.1V112.1c.1-17.6-14.4-32.1-32-32.1zM120 400c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8H64c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm232 108H160c-6.6 0-12-5.4-12-12s5.4-12 12-12h192c6.6 0 12 5.4 12 12s-5.4 12-12 12zm104 132c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48zm0-80c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v48z\"}}]})(props);\n};\nexport function IoIosFingerPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.8 182c-8.6-24.4-20.3-44.9-33-57.5-2.6-2.6-6-4-9.7-4-3.7 0-7.1 1.4-9.7 4-5.3 5.3-5.3 14 0 19.4 9.9 9.9 19.6 27.4 26.8 48.1 7.3 21.2 11.4 43.6 11.4 63.1 0 3-.1 7.6-.2 10.1-.2 3.7 1.1 7.1 3.6 9.8 2.5 2.7 5.8 4.3 9.5 4.4h.6c7.3 0 13.3-5.7 13.7-13.1.1-3.1.2-8.1.2-11.3 0-22.8-4.7-48.8-13.2-73zM143 110.6c2.9 0 5.6-.9 8-2.6 29.9-21.4 66.2-32.7 105-32.7 40.8 0 80.1 14.8 113.7 42.8 2.5 2 5.6 3.2 8.8 3.2 4.1 0 7.9-1.8 10.5-4.9 4.8-5.8 4-14.4-1.7-19.3C348.6 65 303.3 48 256 48c-44.6 0-86.4 13.1-121 37.8-3 2.1-4.9 5.3-5.5 8.9-.6 3.6.2 7.2 2.4 10.2 2.5 3.6 6.7 5.7 11.1 5.7zM75.4 255c0-43.7 15.8-85.8 44.5-118.7 2.4-2.8 3.6-6.3 3.3-9.9-.2-3.6-1.9-7-4.7-9.4-2.5-2.2-5.7-3.4-9-3.4-4 0-7.7 1.7-10.3 4.7C66.2 156.2 48 204.7 48 255c0 32.8 5.9 58.8 15.4 90.2 1.8 5.8 7 9.7 13.1 9.7 1.3 0 2.7-.2 4-.6 3.5-1.1 6.4-3.4 8.1-6.6 1.7-3.2 2.1-6.9 1-10.4-8.8-29-14.2-52.8-14.2-82.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M355.7 129.8C328.4 106.1 295 93.6 259 93.6c-48.3 0-91.4 17.8-121.5 50.1-28.7 30.8-42.8 71.7-39.7 115.1 2.3 32.7 6 50.7 9.3 66.6 4.3 21.1 7.7 37.8 5.1 84.1-.4 6.7 3.7 12.7 10 14.6 1.2.4 2.3.5 3.6.5 7.2 0 13.2-5.7 13.7-12.9 2.9-50.4-.8-68.7-5.5-91.9-3.1-15.1-6.6-32.2-8.8-63.1-2.6-35.7 9-69.3 32.4-94.5 24.8-26.7 60.9-41.4 101.4-41.4 29.3 0 56.5 10.2 78.7 29.5 22.3 19.3 39.2 47.4 49 81.1 11.4 39.3 14.5 89.3 9.1 144.5-.7 7.5 4.8 14.2 12.3 15 .4 0 .9.1 1.3.1 7.1 0 12.9-5.3 13.6-12.4 5.8-58.7 2.3-112.2-10.1-154.8-11.1-38.6-30.9-71.2-57.2-94z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M373.5 267.5c-5.9-37.5-19.9-68.8-40.6-90.6-20.8-22-47.4-33.7-76.9-33.7-19 0-37.7 4.1-54.1 12-3.7 1.8-6.4 5.1-7.4 9.1-1 4.1-.1 8.3 2.5 11.6 2.6 3.4 6.5 5.3 10.8 5.3 2.1 0 4-.5 5.9-1.3 12.6-6 27.2-9.2 42.2-9.2 22.4 0 42.5 9.2 58.3 26.6 16.1 17.8 27.3 43.6 32.1 74.6 4.7 29.6 7 53.5 7.1 73.1.2 39.7-4.8 72.7-4.8 73.1-.6 3.6.3 7.2 2.5 10.2 2.2 3 5.3 4.9 8.9 5.5.7.1 1.4.2 2.1.2 6.8 0 12.5-4.9 13.5-11.6.2-1.4 5.4-35.2 5.2-77.5 0-21.3-2.4-46.5-7.3-77.4zM185.3 203.5c4-5.8 2.9-13.6-2.5-18.2-2.5-2.1-5.6-3.2-8.8-3.2-4.5 0-8.7 2.2-11.3 5.9-14.7 21.5-19.7 49.1-14.4 79.8 8.9 51.3 16.9 111.1 9.4 165-.5 3.8.5 7.7 2.9 10.7 2.3 3 5.7 4.8 9.4 5.1.4 0 .8.1 1.2.1 6.8 0 12.6-5.1 13.5-11.8 8.2-57.7-.2-120.2-9.5-173.8-4.1-23.8-.7-43.9 10.1-59.6zM317.5 388h-.5c-7.6.3-13.5 6.6-13.2 14.2 0 .2.6 17.9-2.6 34.7-1.3 6.9 2.6 13.7 9.1 15.8 1.4.4 2.8.7 4.3.7 6.6 0 12.2-4.7 13.4-11.1 3.8-20.1 3.1-40.2 3.1-41.1-.2-7.5-6.2-13.2-13.6-13.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M294.6 205.9c-11.2-10.5-25.2-16.1-40.5-16.1-19.8 0-36.7 7.3-47.6 20.5-8.3 10.1-17 28.8-10.9 60 12.3 62.5 15 121.6 8.1 175.6-1 7.5 4.4 14.4 11.8 15.3.6.1 1.2.1 1.7.1 6.9 0 12.7-5.1 13.6-12 7.3-57 4.5-119-8.3-184.4-3.2-16.4-1.4-29.3 5.1-37.3 5.6-6.8 15-10.5 26.4-10.5 25 0 35.1 27.6 38.3 39.4 6.9 25.7 10.9 63 11.5 107.7.1 7.4 6.2 13.5 13.7 13.5h.2c3.6-.1 7-1.5 9.6-4.1 2.5-2.6 3.9-6.1 3.9-9.7-.7-47-5-86.5-12.5-114.4-4.9-18.5-13.1-33.2-24.1-43.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M265.2 245.9c-2.1-5.1-7.1-8.5-12.7-8.5-1.8 0-3.6.4-5.2 1-7 2.9-10.3 10.9-7.4 17.9 6.6 16 11.8 46.2 14.1 82.8 2.4 36.9 1.7 76.9-2 109.6-.4 3.6.6 7.2 2.9 10.1 2.3 2.9 5.5 4.6 9.2 5 .5.1 1 .1 1.5.1 7 0 12.8-5.2 13.6-12.2 3.9-35.5 4.6-76.6 2-115.8-2.5-39.3-8.2-71.3-16-90z\"}}]})(props);\n};\nexport function IoIosFitness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 280H160c-4.4 0-8-3.6-8-8v-32c0-4.4 3.6-8 8-8h192c4.4 0 8 3.6 8 8v32c0 4.4-3.6 8-8 8zM378 362V150c0-12.1 9.9-22 22-22s22 9.9 22 22v212c0 12.1-9.9 22-22 22s-22-9.9-22-22zM460 192h-12c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h12c11 0 20-9 20-20v-88c0-11-9-20-20-20zM134 362V150c0-12.1-9.9-22-22-22s-22 9.9-22 22v212c0 12.1 9.9 22 22 22s22-9.9 22-22zM64 192H52c-11 0-20 9-20 20v88c0 11 9 20 20 20h12c4.4 0 8-3.6 8-8V200c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function IoIosFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.7 80.8c-3.1.5-6.4 1-9.9 1.4-13.2 1.7-42.8 5.2-60.6 5.2-27.7 0-52.8-6.8-78.2-12.2-25.8-5.5-52.4-11.2-80.6-11.2-56.2 0-75.3 12.1-77.3 13.4L96 80.3v353.3c0 7.2 5.2 13.4 12.3 14.3 8.5 1 15.7-5.6 15.7-13.9V279.6c0-3.8 2.7-7.1 6.4-7.9 10.5-2.1 25.8-3.9 47-3.9 26.2 0 50.7 10 76.6 15.5 26.4 5.6 48.6 11.5 83.4 11.5s71.8-6.6 71.8-6.6c3.9-.6 6.9-3.9 6.9-7.9V88.7c-.1-4.9-4.5-8.7-9.4-7.9z\"}}]})(props);\n};\nexport function IoIosFlame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.1 48C249.1 182.6 111 179.9 112 315.4c.8 111 118.4 148.6 144.5 148.6 26.1 0 134.8-23.6 143.1-148.6 7.1-106.4-81.7-208-179.5-267.4zm74.3 354.7c-10.2 38.9-66 39-76.4.1-1.5-5.6-2.4-11.5-2.4-17.5 0-41 40.6-88.3 40.6-88.3s40.4 47.3 40.4 88.3c.1 6-.7 11.8-2.2 17.4z\"}}]})(props);\n};\nexport function IoIosFlashOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.1 442.7L154.5 55c-4-6.7-12.7-9-19.5-5.1-6.8 3.9-9.1 12.6-5.1 19.3L357.5 457c2.6 4.5 7.4 7 12.3 7 2.4 0 4.9-.6 7.2-1.9 6.7-4 9-12.6 5.1-19.4zM324.6 313.3l57.9-75.8c3.8-5.6.2-13.4-6.3-13.4h-104l52.4 89.2zM320.4 37.1c.9-4.5-4.6-7.1-7.2-3.4L227 146.9l42.4 72.3 51-182.1zM187.4 198.7l-57.9 75.8c-3.8 5.6-.2 13.4 6.3 13.4h103.9l-52.3-89.2zM191.6 474.9c-.9 4.5 4.6 7.1 7.2 3.4L285 365.1l-42.4-72.3-51 182.1z\"}}]})(props);\n};\nexport function IoIosFlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376.2 224H268l52.4-186.9c.9-4.5-4.6-7.1-7.2-3.4L129.5 274.6c-3.8 5.6-.2 13.4 6.3 13.4H244l-52.4 186.9c-.9 4.5 4.6 7.1 7.2 3.4l183.7-240.8c3.7-5.7.2-13.5-6.3-13.5z\"}}]})(props);\n};\nexport function IoIosFlashlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M317 32H195c-17.6 0-24 14.4-24 32h170c0-17.6-6.4-32-24-32zM196.1 147.5c7.6 8.8 11.9 20 11.9 31.7v265.9c0 21.9 17.9 34.9 39.9 34.9h16.3c21.9 0 39.9-12.9 39.9-34.9V179.2c0-11.7 4.3-22.8 11.9-31.7 15.4-17.9 25-34.5 25-67.5H171c0 35 9.6 49.6 25.1 67.5zm31.9 90.8c0-15.6 12.6-28.3 28-28.3s28 12.7 28 28.3v35.4c0 15.6-12.6 28.3-28 28.3s-28-12.7-28-28.3v-35.4z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"273\",\"r\":\"20\"}}]})(props);\n};\nexport function IoIosFlask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.4 354.4L320.7 159.9c-.4-.6-.6-1.3-.6-2.1V80c0-2.2 1.8-4 4-4 6.6 0 12-5.4 12-12v-4c0-6.6-5.4-12-12-12H187.8c-6.6 0-12 5.4-12 12v4c0 6.6 5.4 12 12 12 2.2 0 4 1.8 4 4v77.9c0 .7-.2 1.4-.6 2L75.7 354.4c-8.4 15.8-12.5 31.4-12.1 45.6 1.1 36.5 28.8 64 65.2 64h256.6c36.4 0 62.3-27.6 63.2-64 .2-14.2-2.7-29.7-11.2-45.6zM161.8 288c-6.2 0-10.1-6.8-6.9-12.1l60.5-101.7c2.9-4.9 4.5-10.6 4.5-16.3V80c0-1.4-.1-2.7-.2-4h72.7c-.2 1.3-.2 2.6-.2 4v77.9c0 5.8 1.6 11.5 4.6 16.4l60.4 101.6c3.2 5.3-.7 12.1-6.9 12.1H161.8z\"}}]})(props);\n};\nexport function IoIosFlower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.1 230.2c-26.7 0-60.1 6.9-86.3 13.5-.9-3.2-2.1-6.2-3.7-9.1 23.2-13.8 51.7-32.5 70.5-51.4 36.7-36.7 48.3-63.6 37.6-74.3-2.6-2.6-6-3.8-10.3-3.8-13.8 0-36 13.4-64 41.4-18.8 18.8-37.6 47.2-51.4 70.4-2.8-1.6-5.9-2.8-9.1-3.8 6.7-26.2 13.5-59.5 13.5-86.1 0-51.9-10.8-79.1-26-79.1s-26 27.2-26 79.1c0 26.6 6.8 60 13.5 86.1-3.2.9-6.2 2.2-9.1 3.8-13.8-23.2-32.5-51.6-51.4-70.4-28-28-50.3-41.4-64-41.4-4.3 0-7.7 1.3-10.3 3.8-10.8 10.8.8 37.6 37.6 74.3 18.9 18.9 47.3 37.6 70.5 51.4-1.5 2.8-2.8 5.9-3.7 9.1-26.2-6.7-59.6-13.5-86.3-13.5-51.8 0-78.7 10.6-78.7 25.8s26.9 26.2 78.9 26.2c26.7 0 60.2-6.9 86.4-13.6.9 3.1 2.2 6.2 3.8 9-23.3 13.8-51.8 32.6-70.7 51.5-36.7 36.7-48.3 63.6-37.6 74.3 2.6 2.6 6 3.8 10.3 3.8 13.8 0 36-13.4 64-41.4 18.9-18.9 37.8-47.5 51.6-70.8 2.8 1.5 5.8 2.8 9 3.7-6.7 26.2-13.6 59.8-13.6 86.5 0 51.9 10.8 78.6 26 78.6s26-26.7 26-78.6c0-26.8-6.9-60.3-13.6-86.5 3.1-.9 6.1-2.1 9-3.7 13.8 23.3 32.6 51.9 51.6 70.8 28 28 50.3 41.4 64 41.4 4.3 0 7.7-1.3 10.3-3.8 10.8-10.8-.8-37.6-37.6-74.3-18.9-18.9-47.5-37.7-70.7-51.5 1.6-2.8 2.8-5.8 3.8-9 26.2 6.7 59.7 13.6 86.4 13.6 51.9 0 78.9-10.8 78.9-26-.2-15.2-27.1-26-79.1-26z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M318.4 376.4c-8.5-8.5-16.9-18.7-24.8-29.5 2 13.2 3.3 26.4 3.3 38.4 0 11.7-.5 22.5-1.6 32.1 12.3 21.8 24.3 32.7 34 32.7 1.6 0 3.2-.3 4.7-.9 11-4.5 13.3-23.3 4.5-54.3-6.4-5.3-13.1-11.5-20.1-18.5zM193.8 136.1c8.4 8.4 16.7 18.5 24.6 29.2-2-13.2-3.2-26.3-3.2-38.2 0-11.7.5-22.5 1.6-32.1-12.3-21.8-24.3-32.7-34-32.7-1.6 0-3.2.3-4.7.9-11 4.5-13.3 23.3-4.5 54.3 6.4 5.4 13.2 11.6 20.2 18.6zM135.8 318.6c8.5-8.5 18.7-16.9 29.5-24.8-13.2 2-26.4 3.3-38.4 3.3-11.7 0-22.5-.5-32.1-1.6-25.5 14.4-36.1 28.2-31.8 38.7 2.6 6.4 10.1 9.9 22.1 9.9 8.5 0 19.3-1.7 32.2-5.4 5.4-6.4 11.5-13.1 18.5-20.1zM376.2 193.8c-8.5 8.5-18.7 16.9-29.5 24.8 13.2-2 26.4-3.3 38.4-3.3 11.7 0 22.5.5 32.1 1.6 25.5-14.4 36.1-28.2 31.8-38.7-2.6-6.4-10.1-9.9-22.1-9.9-8.5 0-19.3 1.7-32.2 5.4-5.4 6.5-11.5 13.2-18.5 20.1zM193.6 376.4c-8.3 8.3-16.3 15.6-23.8 21.6-7.8 28.2-5.5 45.4 4.9 49.9 1.6.7 3.2 1 4.9 1 10.3 0 23.2-12 36.7-36.2-.7-8.4-1.1-17.5-1.1-27.3 0-12 1.3-25.2 3.3-38.4-8 10.7-16.4 20.9-24.9 29.4zM318.4 136.2c8.3-8.3 16.2-15.5 23.7-21.5 7.9-28.4 5.7-45.8-4.8-50.2-1.6-.7-3.2-1-4.9-1-10.3 0-23.2 12-36.7 36.2.7 8.4 1.1 17.5 1.1 27.3 0 12.1-1.3 25.3-3.3 38.7 8-10.7 16.4-21 24.9-29.5zM99.6 216.5c8.4-.7 17.5-1.1 27.3-1.1 12 0 25.1 1.3 38.3 3.3-10.7-7.9-20.9-16.3-29.4-24.8-8.3-8.3-15.6-16.3-21.7-23.9-11.3-3.1-20.9-4.6-28.6-4.6-11.4 0-18.6 3.3-21.2 9.5-4.6 10.9 7.1 25.9 35.3 41.6zM412.4 296c-8.4.7-17.5 1.1-27.3 1.1-12 0-25.2-1.3-38.4-3.3 10.8 7.9 21 16.4 29.5 24.8 8.3 8.3 15.5 16.3 21.6 23.8 11.4 3.2 20.9 4.7 28.6 4.7 11.4 0 18.6-3.3 21.2-9.5 4.7-11-7-25.9-35.2-41.6z\"}}]})(props);\n};\nexport function IoIosFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 119c0-13.3-9.4-23-22.8-23H230.9c-2.8 0-4.3-.6-6.1-2.4l-22.5-22.5-.2-.2c-4.9-4.6-8.9-6.9-17.3-6.9H88.7C74.9 64 64 74.3 64 87v73h384v-41zM64 188h-8.3c-12.8 0-25.3 5.1-23.5 24.3C34 231.5 55.7 423 55.7 423c2.7 17.8 11.7 25 25 25h352.5c12.7 0 21-7.8 23-25 0 0 22.2-184.9 23.6-205.5 1.4-20.5-8.9-29.5-23.6-29.5H64z\"}}]})(props);\n};\nexport function IoIosFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 119c0-13.3-9.4-23-22.8-23H198.9c-2.8 0-4.3-.6-6.1-2.4l-22.5-22.5-.2-.2c-4.9-4.6-8.9-6.9-17.3-6.9H56.7C42.9 64 32 74.3 32 87v73.7c0 1.6 1.7 1.5 3 .7s5-1.4 7-1.4h428c2 0 5.7.6 7 1.4 1.3.8 3 .9 3-.7V119zM32 416.4c0 17.5 14.2 31.6 31.6 31.6H448c17.6 0 32-14.4 32-32V204c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v212.4z\"}}]})(props);\n};\nexport function IoIosFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256c0 114.7 93.3 208 208 208 114.9 0 208-93.1 208-208 0-114.7-93.3-208-208-208zm127.3 80.7c8.5 8.5 16.1 17.7 22.6 27.5.7 1 .9 2.4.4 3.5L391.9 201c-.4 1-1.1 1.9-2.1 2.3l-57.5 26.2c-1.4.6-3 .4-4.2-.6l-56.6-47.6a4.1 4.1 0 0 1-1.4-3.1v-63.1c0-1.3.7-2.6 1.8-3.3l38.4-26.1c1-.7 2.3-.9 3.5-.5 25.8 8.9 49.6 23.6 69.5 43.5zm-73.9 297.6c-.4 1.2-1.4 2.1-2.6 2.4-16.3 4.8-33.4 7.2-50.8 7.2-17.5 0-34.5-2.5-50.8-7.2-1.2-.4-2.2-1.3-2.6-2.4l-16.4-43c-.4-1.1-.3-2.3.2-3.3l22.3-42.3c.7-1.3 2.1-2.1 3.5-2.1h87.5c1.5 0 2.8.8 3.5 2.1l22.3 42.3c.5 1 .6 2.2.2 3.3l-16.3 43zm-67.4-311v63.1c0 1.2-.5 2.3-1.4 3.1L183.9 229c-1.2 1-2.8 1.2-4.2.6l-57.5-26.2c-1-.5-1.8-1.3-2.1-2.3l-14.4-41.2c-.4-1.2-.3-2.5.4-3.5 6.5-9.8 14.1-19 22.6-27.5 19.9-19.9 43.7-34.6 69.6-43.3 1.2-.4 2.5-.2 3.5.5l38.4 26.1c1.1.5 1.8 1.7 1.8 3.1zM77.7 264.1l36.1-31.2c1.2-1 2.9-1.3 4.3-.6l52.4 23.8c1.1.5 1.9 1.5 2.2 2.7l14.6 57.3c.2 1 .1 2-.3 2.9l-23.2 43.9c-.7 1.3-2.1 2.2-3.6 2.1l-46-.6c-1.2 0-2.4-.6-3.2-1.6-20.5-27.7-32.5-60.6-34.7-95.4 0-1.3.5-2.5 1.4-3.3zm270.4 98.7L325 319c-.5-.9-.6-1.9-.3-2.9l14.6-57.3c.3-1.2 1.1-2.2 2.2-2.7l52.4-23.8c1.4-.6 3.1-.4 4.3.6l36.1 31.2c.9.8 1.5 2 1.4 3.3-2.1 34.8-14.2 67.6-34.7 95.4-.7 1-1.9 1.6-3.2 1.6l-46.1.6c-1.5-.1-2.9-.9-3.6-2.2z\"}}]})(props);\n};\nexport function IoIosFunnel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 87.2c0 5.8 2 11.4 5.6 15.7l152.2 179.8c3.6 4.3 5.6 9.9 5.6 15.7v107c0 10 5.9 18.8 14.6 22l55 19.8c9.6 3.5 19.6-4.3 19.6-15.3V298.3c0-5.8 2-11.4 5.6-15.7l152.2-179.8c3.6-4.3 5.6-9.9 5.6-15.7 0-12.8-9.6-23.2-21.4-23.2H69.4C57.6 64 48 74.4 48 87.2z\"}}]})(props);\n};\nexport function IoIosGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 136h-84.3c12.4-11 20.3-26.6 20.3-44 0-33.1-28.3-60-63.1-60-20.6 0-37.9 9.7-48.9 27.4C245 41.7 227.7 32 207.1 32 172.3 32 144 58.9 144 92c0 17.4 7.8 33 20.3 44H80c-17.7 0-32 14.3-32 32v20c0 2.2 1.8 4 4 4h408c2.2 0 4-1.8 4-4v-20c0-17.7-14.3-32-32-32zM304.9 60c18.6 0 33.7 14.3 33.7 32s-15.1 32-33.7 32h-33.7c0-48 15.1-64 33.7-64zm-97.8 0c18.6 0 33.7 16 33.7 64h-33.7c-18.6 0-33.7-14.3-33.7-32s15.1-32 33.7-32zM64 226v222c0 17.6 14.4 32 32 32h146V218H72c-4.4 0-8 3.6-8 8zM440 218H270v262h146c17.6 0 32-14.4 32-32V226c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\nexport function IoIosGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96c-38.6 0-70 31.4-70 70 0 33.4 23.7 61.9 55.9 68.5-1.2 19.1-10.3 29.3-27 42.2-20.4 15.7-46.7 20-65.3 23.4-40.7 7.4-62.9 27-72.5 40V170.8c15-2.8 28.7-10.5 39-21.9 11.6-12.9 18-29.5 18-46.9 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v171.3c-14.5 3.2-27.8 11-37.7 22.3C96.2 376.7 90 393 90 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-23.4-11.6-44.9-30.7-57.9 8.6-9.7 24.5-19.6 51.1-24.4 21.6-3.9 52.6-9.6 77.4-28.8 23.6-18.2 36.7-36.5 38-64.3 32.3-6.5 56.1-35.1 56.1-68.6.1-38.6-31.3-70-69.9-70zm-234 6c0-23.2 18.8-42 42-42s42 18.8 42 42-18.8 42-42 42-42-18.8-42-42zm84 308c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm150-202c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z\"}}]})(props);\n};\nexport function IoIosGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466 242h-76.7c-3.3-31.9-17.8-61.3-41.3-83.5-25-23.5-57.7-36.5-92-36.5s-67 13-91.9 36.5c-23.5 22.2-38 51.6-41.3 83.5H46c-7.7 0-14 6.3-14 14s6.3 14 14 14h76.7c3.3 31.9 17.8 61.3 41.3 83.5 25 23.5 57.7 36.5 92 36.5s67-13 91.9-36.5c23.5-22.2 38-51.6 41.3-83.5H466c7.7 0 14-6.3 14-14s-6.3-14-14-14zm-135 89c-20 20-46.6 31-75 31-28.3 0-54.9-11-75-31-20-20-31-46.6-31-75s11-54.9 31-75c20-20 46.6-31 75-31 28.3 0 54.9 11 75 31 20 20 31 46.6 31 75s-11 54.9-31 75z\"}}]})(props);\n};\nexport function IoIosGitCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.9 328.1c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-2.6 2.6-4.1 6.1-4.1 9.9 0 3.7 1.4 7.3 4.1 9.9l.1.1 41.1 40.1H166c-20.4 0-33.6-7.5-41.6-23.5-8.4-17-9.4-41.5-9.4-58.5V170.8c15-2.8 28.7-10.5 39-21.9 11.6-12.9 18-29.5 18-46.9 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3V306c0 14.7 0 42.1 9.4 65.3 11.9 29.3 36 44.7 69.6 44.7h89.7L216 456.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l57.6-57.4c4.2-4.2 6.5-9.8 6.5-15.7 0-5.9-2.3-11.3-6.5-15.5l-59.5-59.2zM102 144c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM425 341.6V206c0-14.7 0-42.1-9.4-65.3-11.9-29.2-36-44.7-69.6-44.7h-89.7L296 55.8c5.4-5.4 5.4-14.3 0-19.8l-.1-.1c-2.7-2.5-6.2-3.9-9.8-3.9-3.8 0-7.3 1.4-9.9 4.1l-57.6 57.4c-4.2 4.2-6.5 9.8-6.5 15.7 0 5.9 2.3 11.3 6.5 15.5l59.6 59.4c2.6 2.6 6.1 4.1 9.9 4.1 3.7 0 7.3-1.4 9.9-4.1 2.6-2.6 4.1-6.1 4.1-9.9 0-3.7-1.4-7.3-4.1-9.9l-.1-.1-41.2-40.2H346c20.4 0 33.6 7.5 41.6 23.5 8.4 17 9.4 41.5 9.4 58.5v135.2c-15 2.8-28.7 10.5-39 21.9-11.6 12.9-18 29.5-18 46.9 0 38.6 31.4 70 70 70s70-31.4 70-70c0-17-6.2-33.3-17.3-46.1-9.9-11.3-23.2-19.1-37.7-22.3zM410 452c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z\"}}]})(props);\n};\nexport function IoIosGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378 218c-33.5 0-62.1 23.8-68.6 56.1-10.3-.5-18.4-2.7-39.2-10.8-30.5-11.9-71.8-33.2-111.5-95.8 27.1-10.1 45.4-36 45.4-65.5 0-38.6-31.4-70-70-70s-70 31.4-70 70c0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v171.3c-14.5 3.2-27.8 11-37.7 22.3C70.2 376.7 64 393 64 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-17.4-6.4-34-18-46.9-10.3-11.4-24-19.1-39-21.9V200.3c40.8 56.8 82 77 113 89.1 25.2 9.8 37.1 12.3 49.5 12.8 6.6 32.2 35.2 55.8 68.5 55.8 38.6 0 70-31.4 70-70s-31.4-70-70-70zM176 410c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm-42-266c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zm244 186c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z\"}}]})(props);\n};\nexport function IoIosGitNetwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.4 32c-38.9 0-70.6 31.7-70.6 70.7 0 17.1 6.2 33.7 17.5 46.6 10 11.5 23.5 19.4 38.2 22.5v43.1L256 270.3l-106.4-55.4v-43.1c32.2-6.9 55.7-35.6 55.7-69.1 0-39-31.7-70.7-70.6-70.7S64 63.7 64 102.7c0 17.1 6.2 33.7 17.5 46.6 10 11.5 23.5 19.4 38.2 22.5v57.4c0 2.7 1.5 5.1 3.9 6.3l117.5 60.8v43.9c-32.2 6.9-55.7 35.6-55.7 69.1 0 39 31.7 70.7 70.6 70.7s70.6-31.7 70.6-70.7c0-17.1-6.2-33.7-17.5-46.6-10-11.5-23.5-19.4-38.2-22.5v-43.9l117.5-60.8c2.4-1.2 3.9-3.6 3.9-6.3v-57.4c32.2-6.9 55.7-35.6 55.7-69.1 0-39-31.7-70.7-70.6-70.7zM93.8 102.7c0-22.5 18.3-40.8 40.8-40.8s40.8 18.3 40.8 40.8c0 22.5-18.3 40.8-40.8 40.8s-40.8-18.3-40.8-40.8zm203 306.6c0 22.5-18.3 40.8-40.8 40.8s-40.8-18.3-40.8-40.8c0-22.5 18.3-40.8 40.8-40.8s40.8 18.3 40.8 40.8zm80.6-265.7c-22.5 0-40.8-18.3-40.8-40.8 0-22.5 18.3-40.8 40.8-40.8 22.5 0 40.8 18.3 40.8 40.8 0 22.4-18.3 40.8-40.8 40.8z\"}}]})(props);\n};\nexport function IoIosGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393 341.6V206c0-14.7 0-42.1-9.4-65.3-11.9-29.2-36-44.7-69.6-44.7h-77.7L276 55.8c5.4-5.4 5.4-14.3 0-19.8l-.1-.1c-2.7-2.5-6.2-3.9-9.8-3.9-3.8 0-7.3 1.4-9.9 4.1l-54.8 54.6C192.9 61.5 165.9 40 134 40c-38.6 0-70 31.4-70 70 0 17 6.2 33.3 17.3 46.1 9.9 11.3 23.1 19.1 37.7 22.3v163.3c-14.5 3.2-27.8 11-37.7 22.3C70.2 376.7 64 393 64 410c0 38.6 31.4 70 70 70s70-31.4 70-70c0-17.4-6.4-34-18-46.9-10.3-11.4-24-19.1-39-21.9V178.8c15-2.8 28.7-10.5 39-21.9 7.6-8.4 12.9-18.4 15.7-29.1l56.4 56.2c2.6 2.6 6.1 4.1 9.9 4.1 3.7 0 7.3-1.4 9.9-4.1 2.6-2.6 4.1-6.1 4.1-9.9 0-3.7-1.4-7.3-4.1-9.9l-.1-.1-41.1-40.1H314c20.4 0 33.6 7.5 41.6 23.5 8.4 17 9.4 41.5 9.4 58.5v135.2c-15 2.8-28.7 10.5-39 21.9-11.6 12.9-18 29.5-18 46.9 0 38.6 31.4 70 70 70s70-31.4 70-70c0-17-6.2-33.3-17.3-46.1-9.9-11.3-23.2-19.1-37.7-22.3zM176 410c0 23.2-18.8 42-42 42s-42-18.8-42-42 18.8-42 42-42 42 18.8 42 42zm-42-258c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zm244 300c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42z\"}}]})(props);\n};\nexport function IoIosGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.5 240.9h-6.2c-3.3-21.1-13.3-40.5-28.5-55.2-17.3-16.6-39.8-25.8-63.4-25.8-20.5 0-40 6.7-56.2 19.4-13.8 10.8-24.2 25.1-30.5 41.7-7-4.6-15.4-7.3-23.7-7.3-8.3 0-16.7 2.6-23.7 7.3-6.2-16.6-16.6-30.9-30.5-41.7-16.2-12.7-35.7-19.4-56.2-19.4-23.6 0-46.1 9.1-63.4 25.6C67 200.4 57 219.9 53.7 241h-6.2c-8 0-14.5 6.7-14.5 15s6.5 15 14.5 15h6.2c3.3 21.2 13.3 40.6 28.5 55.3 17.3 16.6 39.8 25.8 63.4 25.8 51.3 0 93.1-43 93.1-95.9v-.2c0-5.9 6.9-14.9 17.3-14.9s17.3 9 17.3 14.9v.1c0 52.9 41.8 95.9 93.1 95.9 23.7 0 46.2-9.1 63.4-25.8 15.2-14.7 25.2-34.2 28.5-55.4h6.2c8 0 14.5-6.7 14.5-15 0-8.1-6.5-14.9-14.5-14.9z\"}}]})(props);\n};\nexport function IoIosGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48h-.7c-55.4.2-107.4 21.9-146.6 61.1C69.6 148.4 48 200.5 48 256s21.6 107.6 60.8 146.9c39.1 39.2 91.2 60.9 146.6 61.1h.7c114.7 0 208-93.3 208-208S370.7 48 256 48zm180.2 194h-77.6c-.9-26.7-4.2-52.2-9.8-76.2 17.1-5.5 33.7-12.5 49.7-21 22 28.2 35 61.6 37.7 97.2zM242 242h-61.8c.8-24.5 3.8-47.7 8.8-69.1 17.4 3.9 35.1 6.3 53 7.1v62zm0 28v61.9c-17.8.8-35.6 3.2-53 7.1-5-21.4-8-44.6-8.8-69H242zm28 0h61.3c-.8 24.4-3.8 47.6-8.8 68.9-17.2-3.9-34.8-6.2-52.5-7V270zm0-28v-62c17.8-.8 35.4-3.2 52.5-7 5 21.4 8 44.5 8.8 69H270zm109.4-117.9c-12.3 6.1-25 11.3-38 15.5-7.1-21.4-16.1-39.9-26.5-54.5 24 8.3 45.9 21.6 64.5 39zM315 146.8c-14.7 3.2-29.8 5.2-45 6V79.4c17 9.2 33.6 33.9 45 67.4zM242 79v73.7c-15.4-.8-30.6-2.8-45.5-6.1 11.6-33.8 28.4-58.5 45.5-67.6zm-45.6 6.4c-10.3 14.5-19.2 32.9-26.3 54.1-12.8-4.2-25.4-9.4-37.5-15.4 18.4-17.3 40.1-30.5 63.8-38.7zm-82.9 59.5c15.8 8.4 32.3 15.4 49.2 20.8-5.7 23.9-9 49.5-9.8 76.2h-77c2.6-35.4 15.6-68.8 37.6-97zM75.8 270h77c.9 26.7 4.2 52.3 9.8 76.2-16.9 5.5-33.4 12.5-49.2 20.8-21.9-28.1-34.9-61.5-37.6-97zm56.7 117.9c12.1-6 24.7-11.2 37.6-15.4 7.1 21.3 16 39.6 26.3 54.2-23.7-8.4-45.4-21.5-63.9-38.8zm64-22.6c14.9-3.3 30.2-5.3 45.5-6.1V433c-17.2-9.1-33.9-33.9-45.5-67.7zm73.5 67.3v-73.5c15.2.8 30.3 2.8 45 6-11.4 33.6-28 58.3-45 67.5zm45-5.7c10.4-14.6 19.4-33.1 26.5-54.5 13 4.2 25.8 9.5 38 15.6-18.6 17.3-40.6 30.6-64.5 38.9zm83.5-59.8c-16-8.5-32.6-15.5-49.7-21 5.6-23.9 8.9-49.4 9.8-76.1h77.6c-2.7 35.5-15.6 68.9-37.7 97.1z\"}}]})(props);\n};\nexport function IoIosGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M206 308h100c1.1 0 2-.9 2-2V206c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2v100c0 1.1.9 2 2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96v320c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zm330 108h-56c-1.1 0-2 .9-2 2v100c0 1.1.9 2 2 2h56c7.7 0 14 6.3 14 14s-6.3 14-14 14h-56c-1.1 0-2 .9-2 2v56c0 7.7-6.3 14-14 14s-14-6.3-14-14v-56c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2v56c0 7.7-6.3 14-14 14s-14-6.3-14-14v-56c0-1.1-.9-2-2-2h-56c-7.7 0-14-6.3-14-14s6.3-14 14-14h56c1.1 0 2-.9 2-2V206c0-1.1-.9-2-2-2h-56c-7.7 0-14-6.3-14-14s6.3-14 14-14h56c1.1 0 2-.9 2-2v-56c0-7.7 6.3-14 14-14s14 6.3 14 14v56c0 1.1.9 2 2 2h100c1.1 0 2-.9 2-2v-56c0-7.7 6.3-14 14-14s14 6.3 14 14v56c0 1.1.9 2 2 2h56c7.7 0 14 6.3 14 14s-6.3 14-14 14z\"}}]})(props);\n};\nexport function IoIosHammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.6 246.9c-1.1-2-2.5-3.9-4.1-5.5l-18.4-18.2c-1.9-1.9-4.1-3.5-6.6-4.6-8.2-3.6-17.4-1.7-23.4 4.3-6.4 6.3-18.1 17.8-39.2 38.7-40.4 40-98.1 89.6-132 118.2-7.2 6.1-7.7 17-1.1 23.7L92 443.2c6.7 6.7 17.6 6.3 23.8-.9 29.4-34.6 79.5-92.3 119.4-131.8 20.5-20.2 32-31.8 38.5-38.2 6.5-6.6 8.3-16.7 3.9-25.4zM462.4 218.1l-34.5-34.2c-1.1-1.1-2.5-1.6-4-1.6-1.4 0-2.9.5-4 1.6-2.5 2.5-6.1 3.8-9.6 3.3-4.5-.5-9.3-1.9-12.4-4.9-7-6.9 1.1-20.5-5.1-29.2-6.2-8.7-16.1-19.8-23.2-26.9-7.1-7-35-33.7-82-52.9-16.6-6.8-32.8-9.3-47.3-9.3-26.5 0-47.4 8.5-54.8 15.3-5.5 5.1-11.2 14.1-3.1 14.1.7 0 1.5-.1 2.4-.2 4.5-.7 13.3-1.5 23.4-1.5 15.7 0 34.5 2.1 44.6 10.1 16.3 13.1 29.8 30.6 30.9 53.2.8 16.8-3.4 28.2-18.7 45.5-2.8 3.2-2.6 8 .4 10.9l19.2 19.2c3.1 3.1 8.1 3.1 11.2.1 14-13.6 22.1-20.2 31.3-22.7 4-1.1 8.4-1.6 12.8-1.6 9.7 0 19.2 2.2 23.6 4.6 1.1.6 2.1 1.4 3.1 2.4 6.5 6.6 6.1 17.4-.5 23.9l-2 1.9c-2.2 2.2-2.2 5.7 0 7.9l34.5 34.2c1.1 1.1 2.5 1.6 4 1.6 1.4 0 2.9-.5 4-1.6l55.8-55.2c2.1-2.3 2.1-5.8 0-8z\"}}]})(props);\n};\nexport function IoIosHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M394.9 117.3c-11.6 0-21.1 9.3-21.1 20.6v109.4c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V85.9c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6v126.8c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V68.6c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6V230c0 4.8-4 8.7-8.9 8.7s-8.9-3.9-8.9-8.7V103.2c0-11.3-9.5-20.6-21.1-20.6-11.6 0-21.1 9.3-21.1 20.6v218.3L166 297.9c-26.1-22.7-48.2-32.4-66.2-15.7-12.1 11.8 6.9 30.9 26.8 53.2 19.2 21.5 70 91.9 113.3 117.3 0 0 16.7 11.4 40.6 11.4h57.2c46.1 0 78.4-37.9 78.4-93.2v-233c-.1-11.3-9.6-20.6-21.2-20.6z\"}}]})(props);\n};\nexport function IoIosHappy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm72 152c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm72 169c-44.7 0-82.3-29.9-94.2-70.7-1.5-5.1 2.3-10.3 7.7-10.3h172.9c5.3 0 9.2 5.1 7.7 10.3-11.8 40.8-49.4 70.7-94.1 70.7z\"}}]})(props);\n};\nexport function IoIosHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 123.8c-24.3 0-46.9 10.1-63.9 28.4-17 18.3-26.1 33.2-26.1 59.6 0 7.7 5.9 14 13.2 14 7.3 0 13.2-6.3 13.2-14 0-17.3 6.6-32.4 19-43.5 11.8-10.6 27.7-16.5 44.7-16.5s32.9 5.8 44.7 16.5c12.4 11.2 19 26.2 19 43.5 0 7.7 5.9 14 13.2 14 7.3 0 13.2-6.3 13.2-14 0-26.4-9.2-41.3-26.1-59.6-17.2-18.4-39.8-28.4-64.1-28.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M457.1 278.9C442.3 264.1 422.8 256 402 256h-8c-2.2 0-4-1.8-4-4v-37.8c0-35.7-14-69.3-39.4-94.7C325.3 94 291.7 80 256 80c-35.7 0-69.3 14-94.6 39.4-25.4 25.4-39.4 59-39.4 94.7V252c0 2.2-1.8 4-4 4h-8c-20.8 0-40.3 8.1-55.1 22.9C40.1 293.7 32 313.2 32 334v11.8c0 20.8 8.1 40.4 22.9 55.2 14.8 14.8 34.4 23 55.1 23h5.6c4 0 8 1.4 10.9 4.1 2.5 2.3 5.9 3.8 9.5 3.8 7.7 0 14-6.3 14-14.1V214.1c0-28.2 11.1-54.8 31.2-74.9 20.1-20.1 46.7-31.2 74.8-31.2 28.2 0 54.8 11.1 74.8 31.2 20.1 20.1 31.2 46.7 31.2 74.9v203.8c0 7.8 6.3 14.1 14 14.1 3.6 0 7-1.5 9.5-3.8 2.9-2.7 6.9-4.1 10.9-4.1h5.6c20.7 0 40.3-8.2 55.1-23 14.8-14.8 22.9-34.4 22.9-55.2V334c0-20.8-8.1-40.3-22.9-55.1z\"}}]})(props);\n};\nexport function IoIosHeartDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.8 426.8L56.3 65.1c-5.6-5.5-14.6-5.5-20.1.1-5.5 5.5-5.5 14.5 0 20l367.5 361.7c3.7 3.7 9 4.9 13.7 3.6 2.4-.6 4.6-1.9 6.4-3.7 5.6-5.5 5.6-14.5 0-20zM64 169c0 37 15.2 89.5 46.8 132.7C171 384 272 456 272 456s29.3-20.3 65.7-51.6L68 139c-2.6 9.6-4 19.6-4 30zM434.2 301.7C465.8 258.5 480 206 480 169c0-62.1-50.1-112.4-112-113h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-29.2.3-55.8 11.6-75.7 30l281.9 277.4c19.3-19.1 36.2-40 52-61.7z\"}}]})(props);\n};\nexport function IoIosHeartEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113zm41.6 229.2C351 343.5 286.1 397.3 256 420.8c-30.1-23.5-95-77.4-137.6-135.7C89.1 245.1 76 198 76 169c0-22.6 8.8-43.8 24.6-59.8 15.9-16 37-24.9 59.6-25.1H161.1c14.3 0 28.5 3.7 41.1 10.8 12.2 6.9 22.8 16.7 30.4 28.5 5.2 7.9 14 12.7 23.5 12.7s18.3-4.8 23.5-12.7c7.7-11.8 18.2-21.6 30.4-28.5 12.6-7.1 26.8-10.8 41.1-10.8h.9c22.5.2 43.7 9.1 59.6 25.1 15.9 16 24.6 37.3 24.6 59.8-.2 29-13.3 76.1-42.6 116.2z\"}}]})(props);\n};\nexport function IoIosHeartHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113zm41.6 229.2C356.4 336 302.2 383.6 269 410.5c-5.2 4.2-13 .5-13-6.2V198.6c0-26.8 8.5-52.7 23.3-75 .1-.1.1-.2.2-.2 7.7-11.8 18.2-21.6 30.4-28.5 12.6-7.1 26.8-10.8 41.1-10.8h.9c22.5.2 43.7 9.1 59.6 25.1 15.9 16 24.6 37.3 24.6 59.8-.1 29-13.2 76.1-42.5 116.2z\"}}]})(props);\n};\nexport function IoIosHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 56h-1c-39.7 0-74.8 21-95 52-20.2-31-55.3-52-95-52h-1c-61.9.6-112 50.9-112 113 0 37 16.2 89.5 47.8 132.7C156 384 256 456 256 456s100-72 160.2-154.3C447.8 258.5 464 206 464 169c0-62.1-50.1-112.4-112-113z\"}}]})(props);\n};\nexport function IoIosHelpBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm54.6 36.4c27.1 8.6 52 23.6 72.7 44.3 20.7 20.7 35.7 45.6 44.3 72.7l-88.8 6c-8.2-14-19.9-25.7-33.9-34l5.7-89zm-181.9 44.3c20.7-20.7 45.5-35.7 72.7-44.3l5.7 89c-13.9 8.3-25.6 20-33.9 33.9l-88.9-5.9c8.7-27.1 23.7-52 44.4-72.7zm72.7 298.9c-27.1-8.6-52-23.6-72.7-44.3-20.7-20.7-35.7-45.6-44.3-72.7l89-5.7c8.2 13.9 19.9 25.5 33.8 33.8l-5.8 88.9zM256 324c-37.5 0-68-30.5-68-68s30.5-68 68-68 68 30.5 68 68-30.5 68-68 68zm127.3 59.3c-20.7 20.7-45.6 35.7-72.7 44.3l-5.9-88.9c14.1-8.3 25.8-20.1 34.1-34.2l88.8 6c-8.6 27.2-23.6 52.1-44.3 72.8z\"}}]})(props);\n};\nexport function IoIosHelpCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.7 160c37.5 0 63.3 20.8 63.3 50.7 0 19.8-9.6 33.5-28.1 44.4-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-54.9 64.7-54.9zm-26.3 171.4c0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6s-9.6 20.6-21.5 20.6-21.4-9-21.4-20.6z\"}}]})(props);\n};\nexport function IoIosHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-4.3 304c-11.8 0-21.4-9-21.4-20.6 0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6 0 11.6-9.5 20.6-21.5 20.6zm40.2-96.9c-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-55 64.7-55 37.5 0 63.3 20.8 63.3 50.7 0 19.9-9.6 33.6-28.1 44.5z\"}}]})(props);\n};\nexport function IoIosHelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.7 160c37.5 0 63.3 20.8 63.3 50.7 0 19.8-9.6 33.5-28.1 44.4-17.4 10.1-23.3 17.5-23.3 30.3v7.9h-34.7l-.3-8.6c-1.7-20.6 5.5-33.4 23.6-44 16.9-10.1 24-16.5 24-28.9s-12-21.5-26.9-21.5c-15.1 0-26 9.8-26.8 24.6H192c.7-32.2 24.5-54.9 64.7-54.9zm-26.3 171.4c0-11.5 9.6-20.6 21.4-20.6 11.9 0 21.5 9 21.5 20.6s-9.6 20.6-21.5 20.6-21.4-9-21.4-20.6z\"}}]})(props);\n};\nexport function IoIosHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.5 104.1c-1.5-1.2-3.5-1.2-5 0l-156 124.8c-.9.8-1.5 1.9-1.5 3.1v230c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V322c0-1.1.9-2 2-2h92c1.1 0 2 .9 2 2v140c0 1.1.9 2 2 2h108c1.1 0 2-.9 2-2V232c0-1.2-.6-2.4-1.5-3.1l-156-124.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M458.7 204.2l-189-151.4C265.9 49.7 261 48 256 48s-9.9 1.7-13.7 4.8L160 119.7V77.5c0-1.1-.9-2-2-2H98c-1.1 0-2 .9-2 2v92.2l-42.7 35.1c-3.1 2.5-5.1 6.2-5.3 10.2-.2 4 1.3 7.9 4.1 10.7 2.6 2.6 6.1 4.1 9.9 4.1 3.2 0 6.3-1.1 8.8-3.1l183.9-148c.5-.4.9-.4 1.3-.4s.8.1 1.3.4l183.9 147.4c2.5 2 5.6 3.1 8.8 3.1 3.7 0 7.2-1.4 9.9-4.1 2.9-2.8 4.4-6.7 4.2-10.7-.3-4-2.2-7.7-5.4-10.2z\"}}]})(props);\n};\nexport function IoIosHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.6 434h-5.1c-6.5 0-12-.9-12.7-7.4v-.1C383.2 290.6 297.6 288 297.6 256s85.7-34.6 100.2-170.5v-.1c.7-6.5 6.2-7.4 12.7-7.4h5.1c7.5 0 14-5.8 14.4-13.3.4-8-6-14.7-14-14.7H96.4c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h5.5c6.5 0 12 .9 12.7 7.4v.1C128.8 221.4 214.4 224 214.4 256s-85.7 34.6-100.2 170.5v.1c-.7 6.5-6.2 7.4-12.7 7.4h-5.1c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h320c8 0 14.4-6.6 14-14.7-.4-7.5-6.9-13.3-14.4-13.3zm-252.3-34.2c28.7-79.8 79.6-70.1 79.6-101.6v-55.6c0-19.4-36.8-32.9-59.8-64.4-3.8-5.2 0-12.4 6.5-12.4h132.9c6.5 0 10.4 7 6.7 12.2-22.6 31.6-60.1 45.2-60.1 64.6v55.6c0 31.2 48.9 22.7 79.8 101.6 2.8 7.1.7 16-6.9 16H170.2c-7.7 0-9.5-8.8-6.9-16z\"}}]})(props);\n};\nexport function IoIosIceCream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.8 406.1l4.8 14.8c.4 1.2 1.9 1.8 3 1.1l6.8-4.2c2.5-1.6 2.5-5.2 0-6.8l-11.5-7.2c-1.7-1-3.6.5-3.1 2.3zM286.6 421l4.9-15.2c.6-1.8-1.4-3.3-3-2.3l-11.9 7.4a4.02 4.02 0 0 0 0 6.8l7 4.4c1.2.7 2.6.1 3-1.1zM188.6 242.2c-3.9 3.5-9.6 6.4-15.7 8.5-1 .4-1.6 1.5-1.2 2.5l9.3 28.9 3.8 11.8c.4 1.2 1.9 1.8 3 1.1l7-4.3 36.6-22.5c3-1.9 2.3-6.5-1.2-7.3-14.3-3.3-26.5-9.8-36.2-18.5-1.6-1.4-3.9-1.5-5.4-.2zM192.6 310.8l-2 1.2 14.6 45.3c.4 1.2 1.9 1.8 3 1.1l27.2-16.9c2.5-1.6 2.5-5.2 0-6.8l-38.5-23.9c-1.4-.8-3-.8-4.3 0zM258.1 348.9c-1.3-.8-2.9-.8-4.2 0L212 374.5l-.1.1c-1 .8-1 2.4 0 3.2l.7.5 41.3 25.3c1.3.8 2.9.8 4.2 0l41.7-25.5.4-.3c1-.8 1-2.2 0-3l-42.1-25.9zM296.7 296.6l-38.5-23.9c-1.3-.8-2.9-.8-4.2 0l-38.5 23.9a4.02 4.02 0 0 0 0 6.8l38.5 23.9c1.3.8 2.9.8 4.2 0l38.5-23.9c2.5-1.5 2.5-5.2 0-6.8zM318.1 242.3c-9.7 8.7-22 15.1-36.2 18.5-3.5.8-4.2 5.4-1.2 7.3l36.6 22.5 7.4 4.6c1.1.7 2.6.2 3-1.1l4-12.4 9.8-30.3c-6.9-2.1-13.6-5.3-18-9.2-1.6-1.3-3.9-1.2-5.4.1zM232.4 442l1.6 5s7.5 19 22 19c15 0 22.2-19 22.2-19l1.6-4.8c.6-1.7-.1-3.7-1.7-4.6l-20-12.4c-1.3-.8-2.9-.8-4.2 0l-19.8 12.3c-1.6.8-2.3 2.7-1.7 4.5zM276.7 341.5l27.5 17.1c1.1.7 2.6.2 3-1.1l14.2-43.8c.3-.9-.1-1.8-.8-2.3l-1-.6c-1.3-.8-2.9-.8-4.2 0l-38.5 23.9c-2.8 1.6-2.8 5.3-.2 6.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M376.1 168.2c-6.2 5.4-13.2 8.7-18 10.5-1.8.7-3.5-1.4-2.3-3l4-5.7c6.1-8.7 8.5-19.4 6.8-29.8C357.9 86.8 311.7 46 256 46c-55.7 0-101.9 41.2-110.6 94.7-1.7 10.5.8 21.2 6.9 29.8l4 5.6c1.2 1.6-.5 3.8-2.4 3-5.4-2.1-13.5-6.2-20.1-12.8-1.4-1.4-3.6-1.5-5.2-.4-10.2 7.3-16.8 19.1-16.8 32.5 0 22.1 17.9 40 40 40 11.3 0 28-4.7 36.6-12.3 1.5-1.3 3.8-1.3 5.3.1 15.2 13.4 36.6 20.2 62.1 20.2s47-6.8 62.1-20.2c1.5-1.3 3.8-1.4 5.3-.1 8.5 7.6 25.3 12.3 36.6 12.3 22.1 0 40-18 40-40.1 0-11.9-5.2-22.6-13.5-30-2.7-2.6-7.2-2.7-10.2-.1z\"}}]})(props);\n};\nexport function IoIosImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112.6 312.3h190.7c4.5 0 7.1-5.1 4.5-8.8l-95.4-153.4c-2.2-3.2-6.9-3.2-9.1 0L108 303.5c-2.6 3.7.1 8.8 4.6 8.8zM306.7 254.3l35 55.7c1 1.5 2.7 2.4 4.5 2.4h53.2c4.5 0 7.1-5.1 4.5-8.8l-61.6-87.7c-2.2-3.2-6.9-3.2-9.1 0L306.6 248c-1.2 1.8-1.2 4.3.1 6.3zM351.1 167.9c13.1-1.3 23.7-11.9 25-25 1.8-17.7-13-32.5-30.7-30.7-13.1 1.3-23.7 11.9-25 25-1.7 17.7 13 32.5 30.7 30.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 48H80c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h352c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zm-2.7 280c0 4.4-3.6 8-8 8H90.7c-4.4 0-8-3.6-8-8V90.7c0-4.4 3.6-8 8-8h330.7c4.4 0 8 3.6 8 8V328z\"}}]})(props);\n};\nexport function IoIosImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M262.3 199.2c-1.6-2.8-5.6-3.2-7.7-.7l-91.9 122.2c-2.5 2.9-.6 7.4 3.2 7.7l161.1 14c3.8.3 6.4-3.8 4.5-7.1l-69.2-136.1zM367.2 264.1c-1.6-2.8-5.6-3.2-7.7-.7l-24.8 25.1a4.68 4.68 0 0 0-.5 5.4l25.4 49.5c.8 1.3 2.1 2.2 3.7 2.3l44.9 3.9c3.8.3 6.4-3.8 4.5-7.1l-45.5-78.4zM378.1 224.4c11.2-.1 20.9-8.3 23-19.2 2.8-14.8-8.6-28.3-23.7-28.1-11.2.1-20.9 8.3-23 19.2-2.8 14.8 8.6 28.3 23.7 28.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M455.2 129.3l-65.8-5.7-6.1-67c-1.3-14.9-14.5-25.9-29.5-24.5L56.7 58.9c-14.9 1.3-25.9 14.5-24.6 29.4l26.8 296.5c1.3 14.9 14.5 25.9 29.5 24.5l15.7-1.4-1.5 16.7c-1.3 14.9 9.7 28 24.7 29.3l297.3 25.9c14.9 1.3 28.1-9.7 29.4-24.6l26-296.6c1.2-14.8-9.8-28-24.8-29.3zM87.6 300.7c-3.7.3-7-2.4-7.4-6.1l-18-200c-.3-3.7 2.4-7 6.1-7.3l279.2-25.1c3.7-.3 7 2.4 7.4 6.1l4.8 52.8L158 103.4c-14.9-1.3-28.1 9.7-29.4 24.6l-14.9 170.3-26.1 2.4zm362.2-135.6l-17.5 200c-.3 3.7-3.6 6.5-7.3 6.2l-18.6-1.6L145.7 347c-3.7-.3-6.5-3.6-6.2-7.3l3.8-43.9L157 139.7c.3-3.7 3.6-6.5 7.3-6.2l198 17.3 29.7 2.6 51.6 4.5c3.8.2 6.6 3.5 6.2 7.2z\"}}]})(props);\n};\nexport function IoIosInfinite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456.8 182.4c-20-19.6-46.8-30.4-75.2-30.4-28.5 0-55.2 10.8-75.2 30.4l-31.2 30c-1.6 1.6-1.6 4.2 0 5.7l19.4 19.1c1.5 1.5 4 1.5 5.6 0l31-30.1c13.5-13.1 31.3-20.3 50.3-20.3 19 0 36.8 7.2 50.3 20.3 13.4 13.1 20.7 30.5 20.7 49 0 18.4-7.4 35.8-20.7 48.7-13.5 13.1-31.3 20.3-50.3 20.3-19 0-36.8-7.2-50.3-20.3L205.6 182.4c-20.2-19.6-46.9-30.4-75.2-30.4-28.5 0-55.2 10.8-75.2 30.4C35.1 202 24 228.1 24 256c0 27.8 11.1 54 31.2 73.6 20 19.6 46.8 30.4 75.2 30.4 28.5 0 55.2-10.8 75.2-30.4l31-30c1.6-1.6 1.6-4.2 0-5.7L217.2 275c-1.5-1.5-4-1.5-5.6 0l-31 29.9c-13.5 13.1-31.3 20.3-50.3 20.3-19 0-36.8-7.2-50.3-20.3-13.4-13.1-20.7-30.5-20.7-49 0-18.4 7.4-35.7 20.7-48.7 13.5-13.1 31.3-20.3 50.3-20.3 19 0 36.8 7.2 50.3 20.3l125.5 122.5c20.2 19.6 46.9 30.4 75.2 30.4 28.5 0 55.2-10.8 75.2-30.4 20.2-19.6 31.3-45.7 31.3-73.6.2-27.9-10.9-54.1-31-73.7z\"}}]})(props);\n};\nexport function IoIosInformationCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.4 172.2c0-11.4 9.3-19.9 20.5-19.9 11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20c-11.2 0-20.5-8.6-20.5-20zm1.4 35.7H275V352h-38.2V207.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}}]})(props);\n};\nexport function IoIosInformationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm19 304h-38.2V207.9H275V352zm-19.1-159.8c-11.3 0-20.5-8.6-20.5-20s9.3-19.9 20.5-19.9c11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20z\"}}]})(props);\n};\nexport function IoIosInformation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.4 176c0-11.4 9.3-19.9 20.5-19.9 11.4 0 20.7 8.5 20.7 19.9s-9.3 20-20.7 20c-11.2.1-20.5-8.6-20.5-20zm1.4 35.8H275v144.1h-38.2V211.8z\"}}]})(props);\n};\nexport function IoIosJet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 48s-19.8 1.4-53.1 27.2c-15.5 12-162.2 120.6-162.2 120.6L89 187.9l-41 36.5 102 51.2-8 10.1-81.6 4.1-6.7 33.6 60.6 47.2-26.7 53.6 53.7-26.5 47.3 60.6 33.6-6.7 4.1-81.6 10.1-7.9L287.6 464l36.5-40.9-7.9-159.7s108.6-146.7 120.6-162C462.7 67.8 464 48 464 48z\"}}]})(props);\n};\nexport function IoIosJournal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M92.1 32C76.6 32 64 44.6 64 60.1V452c0 15.5 12.6 28.1 28.1 28.1H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H112.5c-8.2 0-15.4-6-16.4-14.1-1.1-9.7 6.5-18 15.9-18h208V32H92.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 416c8.8 0 16-7.2 16-16V60.1c0-15.5-12.6-28.1-28.1-28.1H368v384h64z\"}}]})(props);\n};\nexport function IoIosKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344.8 218.1c-13 0-25.6 0-37.4 4.1-50.6-43.1-184.3-156.9-194.5-167.5-4.7-4.9-9.9-6.7-15-6.7-8.5 0-16.7 5.2-21.3 9.6-6.9 6.6-33 34.8-28 40 15 15.4 19 18.5 25.2 24.8 9.3 9.5 28.3-1 36 2.3 7.6 3.3 9.2 6.8 10.4 12.5s-2.9 15.8-3 23.7c-.1 8.3 3.4 12.8 9.2 19 4.6 5 8.9 8.6 15.6 8.7 9 .2 20.9-12.8 30.4-3.1s-6.2 23.7-5 34 15.5 22.8 21.6 24.1c6.1 1.3 21.8-11.7 30.7-9.7 3 .7 10 6.8 11 11.4s-6.9 25-5.9 29.6c1.2 5.6 7.1 12.1 10.4 17.4-6.7 15.5-9.4 29.6-9.4 47.7 0 68.5 53.4 124 119.2 124s119-55.5 119-124-53.4-121.9-119.2-121.9zM368 400c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"}}]})(props);\n};\nexport function IoIosKeypad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M394.6 341.2c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM256 341.2c-29.5 0-53.4 23.9-53.4 53.4S226.5 448 256 448s53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM117.4 341.2c-29.5 0-53.4 23.9-53.4 53.4S87.9 448 117.4 448s53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM394.6 202.6c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4S448 285.5 448 256s-23.9-53.4-53.4-53.4zM256 202.6c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM117.4 202.6C87.9 202.6 64 226.5 64 256s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4-23.9-53.4-53.4-53.4zM394.6 64c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S424.1 64 394.6 64zM256 64c-29.5 0-53.4 23.9-53.4 53.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S285.5 64 256 64zM117.4 64C87.9 64 64 87.9 64 117.4s23.9 53.4 53.4 53.4 53.4-23.9 53.4-53.4S146.9 64 117.4 64z\"}}]})(props);\n};\nexport function IoIosLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 367.5V129.1c0-9.4-7.9-17.1-17.2-17.1H81.2c-9.3 0-17.2 7.6-17.2 17.1v238.4H15.9c0 9.9 9.9 18.8 18.9 22.7C45.7 394.8 64 400 84 400h344c20 0 38.2-4.5 48.3-8.8 9.5-4 19.8-13.4 19.8-23.7H448zM256 120c2.2 0 4 1.8 4 4s-1.8 4-4 4-4-1.8-4-4 1.8-4 4-4zM82 136.2h348c1.1 0 2 .9 2 2v211.3c0 1.1-.9 2-2 2H82c-1.1 0-2-.9-2-2V138.2c0-1.2.9-2 2-2zm216.3 239.3h-84.6c-5.2 0-9.7-6-9.7-7.5h104c0 1.5-3 7.5-9.7 7.5z\"}}]})(props);\n};\nexport function IoIosLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.9 378.7c-51.8-8-55.7-11.7-55.7-11.7 15.6-74-22.4-151.1-76.3-195.6C250.1 112.2 141 155.2 56 65.2c-19.8-21-8.3 235.5 98.1 332.7 77.8 71 169.4 49.2 194.5 37.6 22.8-10.6 38.7-33.9 38.7-33.9 41.5 13 62 14.2 62 14.2 14.6 1.8 22-34.4 4.6-37.1zm-91.8 7.4c-77.7-23.3-145.3-81-189.1-126.2-3.6-3.7 1.6-9.2 5.5-6 43.1 35.5 108.9 80 193.3 107.9.2 8.1-4.5 19.7-9.7 24.3z\"}}]})(props);\n};\nexport function IoIosLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 341.1l-1.2.1c-3.6.4-7 2-9.6 4.5l-64.6 64.6c-13.7 13.7-32 21.2-51.5 21.2s-37.8-7.5-51.5-21.2c-13.7-13.7-21.2-32-21.2-51.5s7.5-37.8 21.2-51.5l68.6-68.6c3.5-3.5 7.3-6.6 11.4-9.3 4.6-3 9.6-5.6 14.8-7.5 4.8-1.8 9.9-3 15-3.7 3.4-.5 6.9-.7 10.2-.7 1.4 0 2.8.1 4.6.2 17.7 1.1 34.4 8.6 46.8 21 7.7 7.7 13.6 17.1 17.1 27.3 2.8 8 11.2 12.5 19.3 10.1.1 0 .2-.1.3-.1.1 0 .2 0 .2-.1 8.1-2.5 12.8-11 10.5-19.1-4.4-15.6-12.2-28.7-24.6-41-15.6-15.6-35.9-25.8-57.6-29.3-1.9-.3-3.8-.6-5.7-.8-3.7-.4-7.4-.6-11.1-.6-2.6 0-5.2.1-7.7.3-5.4.4-10.8 1.2-16.2 2.5-1.1.2-2.1.5-3.2.8-6.7 1.8-13.3 4.2-19.5 7.3-10.3 5.1-19.6 11.7-27.7 19.9l-68.6 68.6C58.9 304.4 48 330.8 48 359c0 28.2 10.9 54.6 30.7 74.4C98.5 453.1 124.9 464 153 464c28.2 0 54.6-10.9 74.4-30.7l65.3-65.3c10.4-10.5 2-28.3-12.7-26.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M433.3 78.7C413.5 58.9 387.1 48 359 48s-54.6 10.9-74.4 30.7l-63.7 63.7c-9.7 9.7-3.6 26.3 10.1 27.4 4.7.4 9.3-1.3 12.7-4.6l63.8-63.6c13.7-13.7 32-21.2 51.5-21.2s37.8 7.5 51.5 21.2c13.7 13.7 21.2 32 21.2 51.5s-7.5 37.8-21.2 51.5l-68.6 68.6c-3.5 3.5-7.3 6.6-11.4 9.3-4.6 3-9.6 5.6-14.8 7.5-4.8 1.8-9.9 3-15 3.7-3.4.5-6.9.7-10.2.7-1.4 0-2.9-.1-4.6-.2-17.7-1.1-34.4-8.6-46.8-21-7.3-7.3-12.8-16-16.4-25.5-2.9-7.7-11.1-11.9-19.1-9.8-8.9 2.3-14.1 11.7-11.3 20.5 4.5 14 12.1 25.9 23.7 37.5l.2.2c16.9 16.9 39.4 27.6 63.3 30.1 3.7.4 7.4.6 11.1.6 2.6 0 5.2-.1 7.8-.3 6.5-.5 13-1.6 19.3-3.2 6.7-1.8 13.3-4.2 19.5-7.3 10.3-5.1 19.6-11.7 27.7-19.9l68.6-68.6c19.8-19.8 30.7-46.2 30.7-74.4s-11.1-54.6-30.9-74.4z\"}}]})(props);\n};\nexport function IoIosListBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 82.7v346.7c0 19.1 15.5 34.7 34.7 34.7h346.7c19.1 0 34.7-15.5 34.7-34.7V82.7c0-19.1-15.5-34.7-34.7-34.7H82.7C63.5 48 48 63.5 48 82.7zm89.3 297.1c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zm0-104c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zm0-104c-13.1 1.7-24.1-9.3-22.4-22.4 1.1-8.9 8.3-16.1 17.2-17.2 13.1-1.7 24.1 9.3 22.4 22.4-1.1 8.9-8.3 16.1-17.2 17.2zM384.7 374h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-104h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-104h-180c-7.7 0-14-6.3-14-14s6.3-14 14-14h180c7.7 0 14 6.3 14 14s-6.3 14-14 14z\"}}]})(props);\n};\nexport function IoIosList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"92\",\"cy\":\"256\",\"r\":\"28\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"92\",\"cy\":\"132\",\"r\":\"28\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"92\",\"cy\":\"380\",\"r\":\"28\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432 240H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16zM432 364H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16zM191.5 148H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H191.5c-8.8 0-16 7.2-16 16s7.2 16 16 16z\"}}]})(props);\n};\nexport function IoIosLocate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395.3 259c-.3-1.2-.4-2.4-.3-3.6 0-.8.2-1.6.3-2.4-.4.9-.6 2-.6 3 .1 1.1.3 2.1.6 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M459.4 270H409c-6.7 0-12.3-4.7-13.7-11-.3-.9-.5-1.9-.5-3s.2-2.1.6-3c1.4-6.4 7.3-11 14.1-11h49.9c2.4 0 4.2-2 4-4.4-8.8-100.3-88.7-180.2-189-189-2.3-.2-4.4 1.6-4.4 4V103c0 7.9-6.6 14.3-14.6 14-7.6-.3-13.4-6.9-13.4-14.4v-50c0-2.4-2-4.2-4.4-4-100.3 8.8-180.2 88.7-189 189-.2 2.3 1.6 4.4 4 4.4H103c7.9 0 14.3 6.6 14 14.6-.3 7.6-6.9 13.4-14.4 13.4h-50c-2.4 0-4.2 2-4 4.4 8.8 100.3 88.7 180.2 189 189 2.3.2 4.4-1.6 4.4-4V409c0-7.9 6.6-14.3 14.6-14 7.6.3 13.4 6.9 13.4 14.4v49.9c0 2.4 2 4.2 4.4 4 100.3-8.8 180.2-88.7 189-189 .2-2.3-1.7-4.3-4-4.3zM256 326c-38.7 0-70-31.3-70-70s31.3-70 70-70 70 31.3 70 70-31.3 70-70 70z\"}}]})(props);\n};\nexport function IoIosLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 192h-24v-46.7c0-52.7-42-96.5-94.7-97.3-53.4-.7-97.3 42.8-97.3 96v48h-24c-22 0-40 18-40 40v192c0 22 18 40 40 40h240c22 0 40-18 40-40V232c0-22-18-40-40-40zM270 316.8v68.8c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14v-69.2c-11.5-5.6-19.1-17.8-17.9-31.7 1.4-15.5 14.1-27.9 29.6-29 18.7-1.3 34.3 13.5 34.3 31.9 0 12.7-7.3 23.6-18 28.8zM324 192H188v-48c0-18.1 7.1-35.1 20-48s29.9-20 48-20 35.1 7.1 48 20 20 29.9 20 48v48z\"}}]})(props);\n};\nexport function IoIosLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M417 80H137c-25.4 0-46 20.6-46 46 0 7.7 6.3 14 14 14s14-6.3 14-14c0-9.9 8.1-18 18-18h280c9.9 0 18 8.1 18 18v260c0 9.9-8.1 18-18 18H137c-9.9 0-18-8.1-18-18 0-7.7-6.3-14-14-14s-14 6.3-14 14c0 25.4 20.6 46 46 46h280c25.4 0 46-20.6 46-46V126c0-25.4-20.6-46-46-46z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M224 334.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l82.6-82.4c4.3-4.3 6.5-9.3 6.5-14.7 0-5.3-2.3-10.3-6.5-14.5l-84.6-84.4c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-5.5 5.5-5.5 14.3 0 19.8l65.2 64.2H63c-7.7 0-14 6.3-14 14s6.3 14 14 14h224.6L224 334.2z\"}}]})(props);\n};\nexport function IoIosLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 372c-7.7 0-14 6.3-14 14 0 9.9-8.1 18-18 18H94c-9.9 0-18-8.1-18-18V126c0-9.9 8.1-18 18-18h186c9.9 0 18 8.1 18 18 0 7.7 6.3 14 14 14s14-6.3 14-14c0-25.4-20.6-46-46-46H94c-25.4 0-46 20.6-46 46v260c0 25.4 20.6 46 46 46h186c25.4 0 46-20.6 46-46 0-7.7-6.3-14-14-14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M372.9 158.1c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-5.5 5.5-5.5 14.3 0 19.8l65.2 64.2H162c-7.7 0-14 6.3-14 14s6.3 14 14 14h256.6L355 334.2c-5.4 5.4-5.4 14.3 0 19.8l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.8 0 7.3-1.4 9.9-4.1l82.6-82.4c4.3-4.3 6.5-9.3 6.5-14.7 0-5.3-2.3-10.3-6.5-14.5l-84.5-84.2z\"}}]})(props);\n};\nexport function IoIosMagnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.2 261.9L289.6 89.3C263 62.7 227.4 48 189.5 48c-38 0-73.5 14.7-100.2 41.3C62.7 116 48 151.5 48 189.5S62.7 263 89.3 289.6l172.6 172.6c1.1 1.1 2.7 1.8 4.3 1.8 1.6 0 3.1-.6 4.3-1.8l57.5-57.5c2.4-2.4 2.4-6.2 0-8.5L165.2 233.3c-13-13-21.2-27.8-22.9-41.7-1.8-13.6 2.7-25.8 13.1-36.3 9.9-9.9 22.4-14.3 36-12.6 14.3 1.7 29.2 9.7 42 22.5L396.2 328c2.4 2.4 6.2 2.4 8.5 0l57.5-57.5c2.4-2.4 2.4-6.2 0-8.6zM275.8 380.2l20.2 20.2-29.8 29.8-20.3-20.2 29.9-29.8zM400.4 296l-20.2-20.2L410 246l20.2 20.2-29.8 29.8z\"}}]})(props);\n};\nexport function IoIosMailOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.5 209.8c-4-4-158.3-161.4-158.3-161.4C284.8 37.8 270.9 32 256 32c-14.9 0-28.8 5.8-39.2 16.5 0 0-153.6 156.5-158.3 161.4C53.9 214.7 48 224.7 48 236v212c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V235c0-11.7-6.6-21.1-10.5-25.2zm-19.4 42.3L353 336.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-151-161.2c-1.6-1.7-4.3-1.7-5.8 0L102.2 438.2c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L77.7 252c-9.7-9.9-2.4-35.8 16.1-35.8h324.4c16.5-.1 25.6 26.1 15.9 35.9z\"}}]})(props);\n};\nexport function IoIosMailUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"416\",\"cy\":\"152\",\"r\":\"48\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M416 218.5c-5.4 0-10.6-.7-15.6-1.9L353 264.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-75-79.9c-.8-.8-2.1-.8-2.9 0L313.7 305c-15.3 15.5-35.6 24.1-57.4 24.2-22.1.1-43.1-9.2-58.6-24.9l-17.6-17.9c-.8-.8-2.1-.8-2.9 0l-75 79.9c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L51.4 155.3c-1.3-1.3-3.4-.4-3.4 1.4V376c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V198c-12.1 12.6-29.1 20.5-48 20.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M349.5 152c0-11.6 3-22.5 8.2-32H79.9c-7.5 0-14.4 2.6-19.8 7L217 286.7c10.4 10.6 24.3 16.4 39.1 16.4s28.7-5.8 39.1-16.4l80.5-81.9c-16-12.2-26.2-31.3-26.2-52.8z\"}}]})(props);\n};\nexport function IoIosMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460.6 147.3L353 256.9c-.8.8-.8 2 0 2.8l75.3 80.2c5.1 5.1 5.1 13.3 0 18.4-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8l-75-79.9c-.8-.8-2.1-.8-2.9 0L313.7 297c-15.3 15.5-35.6 24.1-57.4 24.2-22.1.1-43.1-9.2-58.6-24.9l-17.6-17.9c-.8-.8-2.1-.8-2.9 0l-75 79.9c-2.5 2.5-5.9 3.8-9.2 3.8s-6.7-1.3-9.2-3.8c-5.1-5.1-5.1-13.3 0-18.4l75.3-80.2c.7-.8.7-2 0-2.8L51.4 147.3c-1.3-1.3-3.4-.4-3.4 1.4V368c0 17.6 14.4 32 32 32h352c17.6 0 32-14.4 32-32V148.7c0-1.8-2.2-2.6-3.4-1.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 295.1c14.8 0 28.7-5.8 39.1-16.4L452 119c-5.5-4.4-12.3-7-19.8-7H79.9c-7.5 0-14.4 2.6-19.8 7L217 278.7c10.3 10.5 24.2 16.4 39 16.4z\"}}]})(props);\n};\nexport function IoIosMale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.4 48H341.5c-7.5 0-13.6 6.1-13.6 13.6s6.1 13.6 13.6 13.6h75.4L326.7 166c-30.6-26-69.3-40.3-109.6-40.3-22.8 0-45 4.5-65.8 13.3-20.1 8.5-38.2 20.7-53.8 36.2C82 190.8 69.8 208.9 61.3 229 52.5 249.9 48 272 48 294.9s4.5 45 13.3 65.8c8.5 20.1 20.7 38.2 36.2 53.8 15.5 15.5 33.6 27.7 53.8 36.2 20.9 8.8 43 13.3 65.8 13.3 22.8 0 45-4.5 65.8-13.3 20.1-8.5 38.2-20.7 53.8-36.2 15.5-15.5 27.7-33.6 36.2-53.8 8.8-20.9 13.3-43 13.3-65.8 0-40.3-14.3-79-40.3-109.6L436.7 95v75.4c0 7.5 6.1 13.6 13.6 13.6s13.6-6.1 13.6-13.6V61.6c.1-7.5-6-13.6-13.5-13.6zM359 294.9c0 37.9-14.8 73.5-41.6 100.3-26.8 26.8-62.4 41.6-100.3 41.6s-73.5-14.8-100.3-41.6C90 368.4 75.2 332.8 75.2 294.9s14.8-73.5 41.6-100.3c26.8-26.8 62.4-41.6 100.3-41.6s73.5 14.8 100.3 41.6C344.3 221.3 359 257 359 294.9z\"}}]})(props);\n};\nexport function IoIosMan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.7 106.6h-.2c-25 0-45.5-20.3-45.5-45.3 0-25 20.4-45.3 45.5-45.3S301 36.3 301 61.3c0 12.1-4.7 23.5-13.3 32-8.5 8.6-19.9 13.3-32 13.3zM221.2 496c-14.4 0-27-10.5-27-30.4l1-277.6h-10v105c0 9.3-3 15.1-6.4 18.3-4.3 4.1-9.1 6.4-15.2 6.4-6.2 0-10.9-2.3-15.2-6.4-3.4-3.2-6.4-8.9-6.4-18.3V171.4c0-13.8 4.4-27.8 13.8-38.4 10.4-11.6 23.6-18 39-18h122.3c15.4 0 28.6 6.4 39 18.1 9.4 10.6 13.8 24.5 13.8 38.3V293c0 7.3-1.7 13.8-6.6 18.3-4.4 4-9.3 6.2-15.5 6.2s-11.1-2.2-15.5-6.2c-4.9-4.5-6.6-11-6.6-18.3V188h-9v277.6c0 19.7-13.4 30.4-27.8 30.4-13.4 0-26.3-9.3-27.4-29.8V325h-12v140.9c-.7 19.7-13.8 30.1-28.3 30.1z\"}}]})(props);\n};\nexport function IoIosMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 72.5v316.3c0 2.8 1.3 5.5 3.5 7l69.8 50.2c5.2 3.7 12.1-.3 12.1-7V122.7c0-2.8-1.3-5.5-3.5-7L76.1 65.4c-5.2-3.7-12.1.3-12.1 7.1zM168.7 123.3v316.3c0 6.7 6.9 10.8 12.1 7l62-36.7c2.2-1.6 3.5-4.2 3.5-7V86.6c0-6.7-6.9-10.8-12.1-7l-62 36.7c-2.2 1.5-3.5 4.1-3.5 7zM435.9 65.5l-69.8 50.7c-2.2 1.6-3.5 4.2-3.5 7v316.2c0 6.8 6.9 10.8 12.1 7l69.8-50.7c2.2-1.6 3.5-4.2 3.5-7V72.5c0-6.7-6.9-10.7-12.1-7zM265.7 85.6v316.2c0 2.8 1.3 5.5 3.5 7l62 37c5.2 3.8 12.1-.3 12.1-7V122.6c0-2.8-1.3-5.5-3.5-7l-62-37c-5.2-3.7-12.1.3-12.1 7z\"}}]})(props);\n};\nexport function IoIosMedal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50 124c-1.1 0-2 .9-2 2v59.9c0 14.4 9.6 27 23.4 30.8l104 29.4c1.3.4 2.5-.6 2.5-1.9V126c0-1.1-.9-2-2-2H50zM204 126v126.2c0 .9.6 1.7 1.5 1.9l50 13.9c.4.1.7.1 1.1 0l56-15.6c.9-.2 1.5-1 1.5-1.9V126c0-1.1-.9-2-2-2H206c-1.1 0-2 .9-2 2zM334 126v119.2c0 1.3 1.3 2.3 2.6 1.9l104-30.4c13.8-3.9 23.4-16.5 23.4-30.8V126c0-1.1-.9-2-2-2H336c-1.1 0-2 .9-2 2zM48 64v38c0 1.1.9 2 2 2h412c1.1 0 2-.9 2-2V64c0-17.7-14.3-32-32-32H80c-17.7 0-32 14.3-32 32z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"352\",\"r\":\"56\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M351.3 266.6l-51.5 13.8c24 14.8 40.1 41.3 40.1 71.6 0 46.3-37.7 84-84 84s-84-37.7-84-84c0-30.4 16.2-57 40.4-71.8L161 266.1c-20.5 22.7-33 52.8-33 85.9 0 70.7 57.3 128 128 128s128-57.3 128-128c0-32.8-12.4-62.7-32.7-85.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 296c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56z\"}}]}]})(props);\n};\nexport function IoIosMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M430.3 174.3l-16.5-28.6c-4.3-7.4-13.8-10-21.2-5.7L294 197c-2.7 1.5-6-.4-6-3.5v-114c0-8.6-6.9-15.5-15.5-15.5h-33c-8.6 0-15.5 6.9-15.5 15.5v114.1c0 3.1-3.3 5-6 3.5l-98.6-57c-7.4-4.3-16.9-1.7-21.2 5.7l-16.5 28.6c-4.3 7.4-1.7 16.9 5.7 21.1l98.7 57.1c2.7 1.5 2.7 5.4 0 6.9l-98.7 57.1c-7.4 4.3-9.9 13.7-5.7 21.1l16.5 28.6c4.3 7.4 13.8 10 21.2 5.7l98.6-57c2.7-1.5 6 .4 6 3.5v114.1c0 8.6 6.9 15.5 15.5 15.5h33c8.6 0 15.5-6.9 15.5-15.5V318.4c0-3.1 3.4-5 6-3.5l98.6 57c7.4 4.3 16.9 1.7 21.2-5.7l16.5-28.6c4.3-7.4 1.7-16.9-5.7-21.1l-98.7-57.1c-2.7-1.5-2.7-5.4 0-6.9l98.7-57.1c7.4-4.2 9.9-13.7 5.7-21.1z\"}}]})(props);\n};\nexport function IoIosMedkit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 128h-84V96c0-17.6-14.4-32-32-32H196c-17.6 0-32 14.4-32 32v32H80c-17.7 0-32 14.3-32 32v256c0 17.7 14.3 32 32 32h352c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32zm-240-28c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v28H192v-28zm128 204h-48v48c0 8.8-7.2 16-16 16s-16-7.2-16-16v-48h-48c-8.8 0-16-7.2-16-16s7.2-16 16-16h48v-48c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16z\"}}]})(props);\n};\nexport function IoIosMegaphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M90.1 187c0-33.4 17.1-62.8 43.5-78.9 2.8-1.7 1.6-6-1.7-6-38.2 0-68.5 30.4-74.1 69.8-5.6.9-9.9 7.3-9.9 14.9 0 8 4.7 14.3 10.8 14.8 6.7 33.8 33.8 55.4 61.2 64.5 4.3.9 7.1-4.5 3.8-7.5-19.6-17.7-33.6-44.3-33.6-71.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M450.2 102.8c-1-2.7-2.1-5.2-3.2-7.7-6-13.4-13.4-24.2-21.7-32.2-10.5-9.7-21.4-14.9-34.8-14.9-13.5 0-21.5 5.2-25.8 7.8-43.1 25.9-112.3 46-154 46s-39.4.2-39.4.2c-31.6 14-54.8 46.9-54.8 85 0 34.2 17.8 64.2 44.4 80 12.1 10.1 23.6 8.8 21.1 22.2-2.5 13.4-22.5 97.5-25 115s-2.9 27.5 4 36c7 8.5 49.5 23.8 68 23.8s13.8-8.7 13.8-43.8-9.3-131.7 16.5-131.7c48.3 0 73.5 17.3 111.3 31.7 9 3.4 14.1 4.7 20.1 4.7 6 0 18.7-1.9 34.7-18.2 9.2-9.4 15.7-18.8 21.7-32.2 1.1-2.6 2.2-5.2 3.3-8 8.9-23.2 13.7-51.9 13.7-81.9-.1-29.8-4.9-58.6-13.9-81.8zm-26.6 157c-6.4 15.7-17.6 28.2-26.9 28.2-9.3 0-17.8-12.5-24.2-28.2-7.5-18.3-12.3-45-12.3-74.7 0-29.8 4.8-56.6 12.3-74.9 6.4-15.6 14.9-25 24.1-25 9.3 0 20.3 9.5 26.8 25 7.6 18.3 14.5 45.1 14.5 74.9.1 29.7-6.8 56.4-14.3 74.7z\"}}]})(props);\n};\nexport function IoIosMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 176H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16zM432 272H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16zM432 368H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h352c8.8 0 16 7.2 16 16s-7.2 16-16 16z\"}}]})(props);\n};\nexport function IoIosMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.8 464c-4.9 0-9.7-2.5-12.3-7L129.9 69.3c-4-6.7-1.7-15.4 5.1-19.3 6.8-3.9 15.5-1.7 19.5 5.1l227.6 387.7c4 6.7 1.7 15.4-5.1 19.3-2.3 1.3-4.8 1.9-7.2 1.9zM320 272V112c0-35.2-28.8-64-64-64-28.4 0-52.6 18.8-60.9 44.5L315 296.8c3.2-7.6 5-16 5-24.8zM192 272c0 35.2 28.8 64 64 64 3.9 0 7.6-.4 11.3-1L192 206.6V272zM366 275v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 15.2-4.2 29.4-11.4 41.6l15.6 26.6c14.9-18.7 23.8-42.4 23.8-68.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 357c-45.2 0-82-36.8-82-82v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 55.9 41.9 102.2 96 109.1V436h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14h100c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36v-51.9c7.9-1 15.6-2.9 22.9-5.5l-14.5-24.8c-7.1 2.1-14.6 3.2-22.4 3.2z\"}}]})(props);\n};\nexport function IoIosMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 336c35.2 0 64-28.8 64-64V112c0-35.2-28.8-64-64-64s-64 28.8-64 64v160c0 35.2 28.8 64 64 64z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 192c-7.7 0-14 6.3-14 14v69c0 45.2-36.8 82-82 82s-82-36.8-82-82v-69c0-7.7-6.3-14-14-14s-14 6.3-14 14v69c0 55.9 41.9 102.2 96 109.1V436h-36c-7.7 0-14 6.3-14 14s6.3 14 14 14h100c7.7 0 14-6.3 14-14s-6.3-14-14-14h-36v-51.9c54.1-6.9 96-53.2 96-109.1v-69c0-7.7-6.3-14-14-14z\"}}]})(props);\n};\nexport function IoIosMicrophone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M315 204h72.6c6.6 0 12.3-5.2 12.4-11.8.1-6.7-5.3-12.2-12-12.2h-73c-6.7 0-12.1-5.5-12-12.2.1-6.6 5.8-11.8 12.4-11.8h76.5c4.5 0 8.2-3.7 8-8.2-1.7-47.5-31.2-88.1-72.7-106-5.3-2.3-11.2 1.6-11.2 7.3v35.5c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V44c0-6.6-5.4-12-12-12s-12 5.4-12 12v56.6c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V44c0-6.6-5.4-12-12-12s-12 5.4-12 12v40.6c0 6.6-5.2 12.3-11.8 12.4-6.7.1-12.2-5.3-12.2-12V49.1c0-5.8-5.9-9.6-11.2-7.3-41.5 17.9-71.1 58.6-72.7 106-.2 4.5 3.5 8.2 8 8.2h76.5c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-72.6c-6.6 0-12.3 5.2-12.4 11.8-.1 6.7 5.3 12.2 12 12.2h72.6c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-72.6c-6.6 0-12.3 5.2-12.4 11.8-.1 6.7 5.3 12.2 12 12.2h72.6c6.6 0 12.3 5.2 12.4 11.8.1 6.7-5.3 12.2-12 12.2h-76.9c-4.5 0-8.2 3.7-8 8.2.5 13.6 3.3 26.7 7.9 38.8 1.2 3.1 4.2 5 7.4 5h257.1c3.3 0 6.3-2 7.4-5 4.7-12.1 7.5-25.2 7.9-38.8.2-4.5-3.5-8.2-8-8.2h-76.5c-6.6 0-12.3-5.2-12.4-11.8-.1-6.7 5.3-12.2 12-12.2h72.6c6.6 0 12.3-5.2 12.4-11.8.1-6.7-5.3-12.2-12-12.2h-72.6c-6.6 0-12.3-5.2-12.4-11.8 0-6.7 5.4-12.2 12.1-12.2zM141.5 358.6c19 22 45.2 37.2 75.4 40.8 4 .5 7.1 3.9 7.1 7.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32v-40.7c0-4.1 3.1-7.5 7.1-7.9 30.3-3.5 56.4-18.7 75.4-40.8 2.2-2.6.3-6.6-3.1-6.6H144.5c-3.4 0-5.2 4-3 6.6z\"}}]})(props);\n};\nexport function IoIosMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M401.4 354.2c-2.9.1-5.8.2-8.7.2-47.9 0-93-18.9-126.8-53.4-33.9-34.4-52.5-80.1-52.5-128.8 0-27.7 6.1-54.5 17.5-78.7 3.1-6.6 9.3-16.6 13.6-23.4 1.9-2.9-.5-6.7-3.9-6.1-6 .9-15.2 2.9-27.7 6.8C135.1 95.5 80 168.7 80 255c0 106.6 85.1 193 190.1 193 58 0 110-26.4 144.9-68.1 6-7.2 11.5-13.8 16.4-21.8 1.8-3-.7-6.7-4.1-6.1-8.5 1.7-17.1 1.8-25.9 2.2z\"}}]})(props);\n};\nexport function IoIosMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.8 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38zM102 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38zM410 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17-38-38-38z\"}}]})(props);\n};\nexport function IoIosMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M475.9 246.2l-79.4-79.4c-5.4-5.4-14.2-5.4-19.6 0l-.2.2c-5.4 5.4-5.4 14.2 0 19.6l54.9 54.9-161.8.5.5-161.8 54.9 54.9c5.4 5.4 14.2 5.4 19.6 0l.2-.2c5.4-5.4 5.4-14.2 0-19.6l-79.4-79.4c-5.4-5.4-14.2-5.4-19.6 0l-79.4 79.4c-5.4 5.4-5.4 14.2 0 19.6l.2.2c5.4 5.4 14.2 5.4 19.6 0l54.9-54.9.5 161.8-161.8-.5 54.9-54.9c5.4-5.4 5.4-14.2 0-19.6l-.2-.2c-5.4-5.4-14.2-5.4-19.6 0l-79.4 79.4c-5.4 5.4-5.4 14.2 0 19.6l79.4 79.4c5.4 5.4 14.2 5.4 19.6 0l.2-.2c5.4-5.4 5.4-14.2 0-19.6L80 270.5l161.8-.5-.5 161.8-54.9-54.9c-5.4-5.4-14.2-5.4-19.6 0l-.2.2c-5.4 5.4-5.4 14.2 0 19.6l79.4 79.4c5.4 5.4 14.2 5.4 19.6 0l79.4-79.4c5.4-5.4 5.4-14.2 0-19.6l-.2-.2c-5.4-5.4-14.2-5.4-19.6 0l-54.9 54.9-.5-161.8 161.8.5-54.9 54.9c-5.4 5.4-5.4 14.2 0 19.6l.2.2c5.4 5.4 14.2 5.4 19.6 0l79.4-79.4c5.5-5.4 5.5-14.2 0-19.6z\"}}]})(props);\n};\nexport function IoIosMusicalNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M364.3 48.2c-4.7.9-118 24.1-122.2 24.9-4.2.8-8.1 3.6-8.1 8v255.1c0 1.6-.1 7.2-2.4 11.7-3.1 5.9-8.5 10.2-16.1 12.7-3.3 1.1-7.8 2.1-13.1 3.3-24.1 5.4-64.4 14.6-64.4 51.8 0 30.1 21.7 44.5 35 47.1 5 1 11 1 13.8 1 8.2 0 36-3.3 51.2-13.2 11-7.2 24.1-21.4 24.1-47.8V173.1c0-3.8 2.7-7.1 6.4-7.8l92.8-19c7.4-1.5 12.8-8.1 12.8-15.7V55.8c-.1-4.3-3.8-8.8-9.8-7.6z\"}}]})(props);\n};\nexport function IoIosMusicalNotes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.3 48.2c-4.7.9-202 39.2-206.2 40-4.2.8-8.1 3.6-8.1 8v240.1c0 1.6-.1 7.2-2.4 11.7-3.1 5.9-8.5 10.2-16.1 12.7-3.3 1.1-7.8 2.1-13.1 3.3-24.1 5.4-64.4 14.6-64.4 51.8 0 31.1 22.4 45.1 41.7 47.5 2.1.3 4.5.7 7.1.7 6.7 0 36-3.3 51.2-13.2 11-7.2 24.1-21.4 24.1-47.8V190.5c0-3.8 2.7-7.1 6.4-7.8l152-30.7c5-1 9.6 2.8 9.6 7.8v130.9c0 4.1-.2 8.9-2.5 13.4-3.1 5.9-8.5 10.2-16.2 12.7-3.3 1.1-8.8 2.1-14.1 3.3-24.1 5.4-64.4 14.5-64.4 51.7 0 33.7 25.4 47.2 41.8 48.3 6.5.4 11.2.3 19.4-.9s23.5-5.5 36.5-13c17.9-10.3 27.5-26.8 27.5-48.2V55.9c-.1-4.4-3.8-8.9-9.8-7.7z\"}}]})(props);\n};\nexport function IoIosNavigate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 336V256H128.3L352 160l-96 224z\"}}]})(props);\n};\nexport function IoIosNotificationsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9 456c31.1 0 48.1-22 48.1-53h-96.3c0 31 17 53 48.2 53zM154.5 55c-2.5-4.3-7-6.8-11.6-7h.3-1.2c-2.3 0-4.7.7-6.9 1.9-6.8 3.9-9.1 12.6-5.1 19.3L357.5 457c2.6 4.5 7.4 7 12.3 7 2.4 0 4.9-.6 7.2-1.9 6.8-3.9 9.1-12.6 5.1-19.3L154.5 55zM296.1 384L159 150.5c-8.2 20.2-13.3 46-13.3 78.6 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h180.2zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.4-11-24.7-24.4-24.6-13.4-.2-24.4 11.2-24.4 24.6v2.9c0 3.7-2.6 5-6.2 5.9-8.7 2-17.5 5.5-25.9 10.8L366.1 384H396c16.5 0 25.9-18.8 16-31.8z\"}}]})(props);\n};\nexport function IoIosNotificationsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.7 403c-6.1 0-11.4 4.2-12.7 10.2-1 4.5-2.7 8.2-5 10.9-1.3 1.5-5.1 5.9-16.1 5.9-11 0-14.8-4.5-16.1-5.9-2.3-2.7-4-6.4-5-10.9-1.3-6-6.6-10.2-12.7-10.2-8.4 0-14.5 7.8-12.7 15.9 5 22.3 21 37.1 46.5 37.1s41.5-14.7 46.5-37.1c1.8-8.1-4.4-15.9-12.7-15.9zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.3-10.8-24.6-24-24.6h-.6c-13.2 0-24 11.3-24 24.6v2.9c0 3.7-2.6 5-6.2 5.9-38.5 9.1-79.6 46.5-79.6 139.8 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h280.1c16.1 0 25.4-18.8 15.6-31.8zm-39 5.8H139.8c-3.8 0-5.8-4.4-3.3-7.3 7-8 14.7-18.5 21-33.4 9.6-22.6 14.3-51.5 14.3-88.2 0-37.3 7-66.5 20.9-86.8 12.4-18.2 27.9-25.1 38.7-27.6 8.4-2 14.4-5.8 18.6-10.5 3.2-3.6 8.7-3.8 11.9-.2 5.1 5.7 12 9.1 18.8 10.7 10.8 2.5 26.3 9.4 38.7 27.6 13.9 20.3 20.9 49.5 20.9 86.8 0 36.7 4.7 65.6 14.3 88.2 6.5 15.2 14.4 25.9 21.5 33.9 2.2 2.7.4 6.8-3.1 6.8z\"}}]})(props);\n};\nexport function IoIosNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9 456c31.1 0 48.1-22 48.1-53h-96.3c0 31 17 53 48.2 53zM412 352.2c-15.4-20.3-45.7-32.2-45.7-123.1 0-93.3-41.2-130.8-79.6-139.8-3.6-.9-6.2-2.1-6.2-5.9v-2.9c0-13.4-11-24.7-24.4-24.6-13.4-.2-24.4 11.2-24.4 24.6v2.9c0 3.7-2.6 5-6.2 5.9-38.5 9.1-79.6 46.5-79.6 139.8 0 90.9-30.3 102.7-45.7 123.1-9.9 13.1-.5 31.8 15.9 31.8h280.1c16.3 0 25.7-18.8 15.8-31.8z\"}}]})(props);\n};\nexport function IoIosNuclear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm-88.5 364.8l49.2-85.8c1.1-1.9.5-4.2-1.3-5.4-20.2-12.9-34-35-35.2-60.3-.1-2.1-1.8-3.8-4-3.8H76V256c0-48.1 18.7-93.3 52.7-127.3 10.8-10.8 22.7-20 35.4-27.6l50.5 87.9c1.1 1.9 3.5 2.5 5.4 1.5 10.7-5.8 22.9-9 35.9-9 12.5 0 24.4 3.1 34.8 8.5 1.9 1 4.2.3 5.3-1.5l51.1-87.7c13 7.7 25.1 17 36.1 28 34 34 52.7 79.2 52.7 127.3v1.5h-100c-2.1 0-3.9 1.7-4 3.8-1.3 25.4-15 47.5-35.2 60.3-1.8 1.2-2.4 3.5-1.3 5.4l49.2 85.8c-26.7 15.1-57 23.2-88.5 23.2-31.6-.1-61.9-8.2-88.6-23.3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"256\",\"r\":\"56\"}}]})(props);\n};\nexport function IoIosNutrition (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M359.1 231.9h-.1c-.1-.1-.3-.4-.4-.6l-78.9-79.6c-5.8-6-14.2-10.2-23.6-10.2-11.8 0-22.2 6.2-27.7 16.3 0 0-3.4 5.1-12.6 19.8-1.6 2.6-1.6 6 .1 8.6l26.8 41.2c2.9 3.8 3.3 8 1.4 9.9l-.1.1c-2.3 2.3-5.9 1.5-9.8-1.4l-32.3-20.5c-3.8-2.4-8.7-1.2-11.1 2.5-21.9 35.1-46.8 74.7-71.2 114-1.6 2.5-1.6 5.7-.1 8.3l14.1 24.1c2.9 3.8 3.3 8 1.4 9.9l-.1.1c-2.3 2.3-5.9 1.5-9.8-1.4l-16.6-8.4c-3.7-1.9-8.2-.6-10.4 2.9-17.7 28.3-28 44.7-29.1 46.5-3 5.1-5 11.2-5 17.8 0 17.8 14.2 32.2 31.9 32.2 7.8 0 14.4-3.4 20.6-7.6L221 378.8c3.4-2.5 4.2-7.2 2-10.7L202.5 336c-2.9-3.8-3.3-8-1.4-9.9l.1-.1c2.3-2.3 5.9-1.5 9.8 1.4l37.4 25.6c2.8 1.9 6.5 1.9 9.3-.2 53-39.1 97.5-72.2 97.5-72.2 7.9-6 13-15.4 13-26 0-8.7-3.1-16.8-9.1-22.7zM446.9 131.2l-11.2-17.9c-2.2-3.8-7.1-5.1-10.9-2.9L365.4 147l47.3-78.9c2.2-3.8.9-8.8-2.9-11l-17.7-8c-3.9-2.3-8.8-.9-11 3l-57.6 108.3 28.6 28.8 91.8-46.8c3.9-2.2 5.3-7.2 3-11.2z\"}}]})(props);\n};\nexport function IoIosOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M227.8 300.2c-5.1-5.1-5.1-13.3 0-18.4l133.7-133.7c-5.3-2.6-11.2-4.1-17.5-4.1H88c-22 0-40 18-40 40v224c0 22 18 40 40 40h256c22 0 40-18 40-40V184c0-6.3-1.5-12.2-4.1-17.5L246.2 300.2c-5.1 5.1-13.3 5.1-18.4 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M459.5 68.5C457 66 453 64 449 64h-97c-7.2-.1-13.1 5.7-13.1 12.9-.1 7.2 5.7 13.1 12.9 13.1l67.3.5-57.6 57.6c8 3.9 14.5 10.4 18.4 18.4l57.6-57.6.5 67.3c.1 7.2 5.9 13 13.1 12.9 7.2-.1 13-5.9 12.9-13.1V78c0-3.5-2-7-4.5-9.5z\"}}]})(props);\n};\nexport function IoIosOptions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M299.3 376c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16h-75.3c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h235.3zM139.3 240c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16H212.7c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h75.3zM299.3 104c6.2-14.1 20.3-24 36.7-24s30.5 9.9 36.7 24H448c8.8 0 16 7.2 16 16s-7.2 16-16 16h-75.3c-6.2 14.1-20.3 24-36.7 24s-30.5-9.9-36.7-24H64c-8.8 0-16-7.2-16-16s7.2-16 16-16h235.3z\"}}]})(props);\n};\nexport function IoIosOutlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M359 78H153c-2.8 0-5.6.8-8 2.3C86.7 116.9 48 182 48 256c0 73.9 38.7 138.1 97 175.6 2.4 1.6 5.2 2.4 8.1 2.4h205.8c2.9 0 5.7-.8 8.1-2.4 58.3-37.5 97-101.7 97-175.6 0-74-38.7-139.1-97-175.7-2.4-1.5-5.2-2.3-8-2.3zM192.9 270.8h-22.3c-2.1 0-3.7-1.7-3.7-3.7V155.9c0-2 1.7-3.7 3.7-3.7h22.3c2.1 0 3.7 1.7 3.7 3.7v111.2c0 2.1-1.7 3.7-3.7 3.7zM282 389.5h-52c-2.1 0-3.7-1.7-3.7-3.7v-40.2c0-16.5 13.6-30.5 30.1-30.3 16.2.2 29.3 13.5 29.3 29.7v40.8c0 2-1.6 3.7-3.7 3.7zM341.4 256h-22.3c-2.1 0-3.7-1.7-3.7-3.7v-81.6c0-2 1.7-3.7 3.7-3.7h22.3c2.1 0 3.7 1.7 3.7 3.7v81.6c0 2-1.6 3.7-3.7 3.7z\"}}]})(props);\n};\nexport function IoIosPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M452.1 49L52.3 265.3c-6 3.3-5.6 12.1.6 14.9l68.2 25.7c4 1.5 7.2 4.5 9 8.4l53 109.1c1 4.8 9.9 6.1 10 1.2l-8.1-90.2c.5-6.7 3-13 7.3-18.2l207.3-203.1c1.2-1.2 2.9-1.6 4.5-1.3 3.4.8 4.8 4.9 2.6 7.6L228 338c-4 6-6 11-7 18l-10.7 77.9c.9 6.8 6.2 9.4 10.5 3.3l38.5-45.2c2.6-3.7 7.7-4.5 11.3-1.9l99.2 72.3c4.7 3.5 11.4.9 12.6-4.9L463.8 58c1.5-6.8-5.6-12.3-11.7-9z\"}}]})(props);\n};\nexport function IoIosPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M124 80v322c0 7.7-6.3 14-14 14s-14-6.3-14-14V112H80c-17.7 0-32 14.3-32 32v288c0 17.7 14.3 32 32 32h353.1c17 0 30.9-13.8 30.9-30.9V80c0-17.7-14.3-32-32-32l-278 2c-17.7 0-30 12.3-30 30zm66 32h84c7.7 0 14 6.3 14 14s-6.3 14-14 14h-84c-7.7 0-14-6.3-14-14s6.3-14 14-14zm0 160h148c7.7 0 14 6.3 14 14s-6.3 14-14 14H190c-7.7 0-14-6.3-14-14s6.3-14 14-14zm196 108H190c-7.7 0-14-6.3-14-14s6.3-14 14-14h196c7.7 0 14 6.3 14 14s-6.3 14-14 14zm0-160H190c-7.7 0-14-6.3-14-14s6.3-14 14-14h196c7.7 0 14 6.3 14 14s-6.3 14-14 14z\"}}]})(props);\n};\nexport function IoIosPartlySunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.2 64h-.3c-8.7 0-15.8 7.1-15.8 15.8v30.3c0 8.7 7.1 15.8 15.8 15.8h.3c8.7 0 15.8-7.1 15.8-15.8V79.8c0-8.7-7.1-15.8-15.8-15.8zM79 216.2v-.3c0-8.7-7.1-15.8-15.8-15.8H31.8c-8.7 0-15.8 7.1-15.8 15.8v.3c0 8.7 7.1 15.8 15.8 15.8h31.3c8.8 0 15.9-7.1 15.9-15.8zM79.7 149c3 3 7 4.7 11.2 4.7 4.2 0 8.2-1.7 11.2-4.7 6.1-6.2 6.1-16.2 0-22.3l-20.3-20.5c-3-3-7-4.7-11.2-4.7-4.2 0-8.2 1.7-11.2 4.7-6.1 6.2-6.1 16.2 0 22.3L79.7 149zM271 105.2c-3-3-7-4.7-11.2-4.7-4.2 0-8.2 1.7-11.2 4.7l-20.3 20.4c-6.1 6.2-6.1 16.2 0 22.3l.3.3h.1c2.9 2.8 6.8 4.3 10.8 4.3 4.2 0 8.2-1.7 11.2-4.7l20.3-20.4c6.1-6 6.1-16 0-22.2zM92.9 273.3c-4.2 0-8.2 1.7-11.2 4.7l-20.3 20.5c-6.1 6.2-6.1 16.2 0 22.3 3 3 7 4.7 11.2 4.7 4.2 0 8.2-1.7 11.2-4.7l20.3-20.5c6.1-6.2 6.1-16.2 0-22.3-3-3-7-4.7-11.2-4.7zM403.3 259.2h-2.4c-3.1 0-6.1 0-9 .4-11.3-50.3-56.1-88.2-109.7-88.2-14.6 0-28.6 2.8-41.4 7.9-5.1 2-10 4.4-14.7 7.1-32 18.5-54.1 52.4-56.2 91.6-.1 2.1-.2 4.1-.2 6.2 0 3.4.2 6.8.5 10.1 0 .4.1.8.1 1.1-37.9 3.4-67.6 37.1-67.6 76 0 41.1 33.3 76.7 74.3 76.7h226.4c51.2 0 92.7-43.4 92.7-94.8-.1-51.4-41.6-94.1-92.8-94.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M150.7 283.6v-.3c-.3-3.4-.5-6.8-.5-10.2 0-2.1.1-4.2.2-6.3 2.2-39.9 24.6-74.3 57.2-93.1 4.8-2.8 9.8-5.2 14.9-7.2h.1c-13.4-17-34.2-28-57.6-28-40.5 0-73.3 32.8-73.3 73.3 0 35.5 25.3 65.1 59 71.8z\"}}]})(props);\n};\nexport function IoIosPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M199.9 416h-63.8c-4.5 0-8.1-3.6-8.1-8V104c0-4.4 3.6-8 8.1-8h63.8c4.5 0 8.1 3.6 8.1 8v304c0 4.4-3.6 8-8.1 8zM375.9 416h-63.8c-4.5 0-8.1-3.6-8.1-8V104c0-4.4 3.6-8 8.1-8h63.8c4.5 0 8.1 3.6 8.1 8v304c0 4.4-3.6 8-8.1 8z\"}}]})(props);\n};\nexport function IoIosPaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M324.3 80.3c-1.2-.2-2.4-.3-3.6-.3v.4-.3h-.4c-22 0-42.9 25.9-47.8 60.3-5.3 36.6 9.4 69 32.7 72.4 1.3.2 2.7.3 4 .3 22 0 42.9-25.9 47.8-60.3 5.3-36.7-9.4-69.1-32.7-72.5zM320.6 80zM442.3 169.4c-3.5-1.4-7.1-2.1-10.9-2.1h-.4c-19.7.3-41.8 19.2-53.4 47.8-13.9 34.2-7.5 69.2 14.4 78.2 3.5 1.4 7.1 2.1 10.9 2.1 19.8 0 42.2-19 53.9-47.8 13.8-34.2 7.3-69.2-14.5-78.2zM327.6 295.4c-27.8-43.6-39.8-60-71.6-60s-43.9 16.5-71.7 60c-23.8 37.2-71.9 40.3-83.9 71.9-2.4 5.6-3.6 11.7-3.6 18.2 0 25.7 20.8 46.5 46.4 46.5 31.8 0 75.1-24 112.9-24s80.9 24 112.7 24c25.6 0 46.3-20.8 46.3-46.5 0-6.5-1.3-12.6-3.7-18.2-12-31.7-60-34.7-83.8-71.9zM202.8 213c1.3 0 2.7-.1 4-.3 23.4-3.4 38-35.8 32.7-72.4-5-34.5-25.9-60.3-47.8-60.3-1.3 0-2.7.1-4 .3-23.4 3.4-38 35.8-32.7 72.4 5 34.4 25.9 60.3 47.8 60.3zM120.1 293.3c21.9-9 28.3-44 14.4-78.2-11.7-28.8-34.1-47.8-53.9-47.8-3.8 0-7.4.7-10.9 2.1-21.9 9-28.3 44-14.4 78.2 11.7 28.8 34.1 47.8 53.9 47.8 3.8 0 7.4-.7 10.9-2.1z\"}}]})(props);\n};\nexport function IoIosPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.1 334.7c-11.2-4-29.5-4.2-37.6-7.3-5.6-2.2-14.5-4.6-17.4-8.1-2.9-3.5-2.9-28.5-2.9-28.5s7-6.6 9.9-14c2.9-7.3 4.8-27.5 4.8-27.5s6.6 2.8 9.2-10.4c2.2-11.4 6.4-17.4 5.3-25.8-1.2-8.4-5.8-6.4-5.8-6.4s5.8-8.5 5.8-37.4c0-29.8-22.5-59.1-64.6-59.1-42 0-64.7 29.4-64.7 59.1 0 28.9 5.7 37.4 5.7 37.4s-4.7-2-5.8 6.4c-1.2 8.4 3 14.4 5.3 25.8 2.6 13.3 9.2 10.4 9.2 10.4s1.9 20.1 4.8 27.5c2.9 7.4 9.9 14 9.9 14s0 25-2.9 28.5-11.8 5.9-17.4 8c-8 3.1-26.3 3.5-37.6 7.5-11.2 4-45.8 22.2-45.8 67.2h278.3c.1-45.1-34.5-63.3-45.7-67.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M140 286s23.9-.8 33.4-9.3c-15.5-23.5-7.1-50.9-10.3-76.5-3.2-25.5-17.7-40.8-46.7-40.8h-.4c-28 0-43.1 15.2-46.3 40.8-3.2 25.5 5.7 56-10.2 76.5C69 285.3 93 285 93 285s1 14.4-1 16.8c-2 2.4-7.9 4.7-12 5.5-8.8 1.9-18.1 4.5-25.9 7.2-7.8 2.7-22.6 17.2-22.6 37.2h80.3c2.2-8 17.3-22.3 32-29.8 9-4.6 17.9-4.3 24.7-5.2 0 0 3.8-6-8.7-8.3 0 0-17.2-4.3-19.2-6.7-1.9-2.2-.6-15.7-.6-15.7zM372 286s-23.9-.8-33.4-9.3c15.5-23.5 7.1-50.9 10.3-76.5 3.2-25.5 17.7-40.8 46.7-40.8h.4c28 0 43.1 15.2 46.3 40.8 3.2 25.5-5.7 56 10.2 76.5-9.5 8.6-33.5 8.3-33.5 8.3s-1 14.4 1 16.8c2 2.4 7.9 4.7 12 5.5 8.8 1.9 18.1 4.5 25.9 7.2 7.8 2.7 22.6 17.2 22.6 37.2h-80.3c-2.2-8-17.3-22.3-32-29.8-9-4.6-17.9-4.3-24.7-5.2 0 0-3.8-6 8.7-8.3 0 0 17.2-4.3 19.2-6.7 1.9-2.2.6-15.7.6-15.7z\"}}]})(props);\n};\nexport function IoIosPersonAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.3 386c-15.6-5.5-37.8-6.8-52.1-10-8.2-1.8-20.1-6.3-24.1-11.1-3.5-4.2-2.1-38.4-1.7-47.2.1-1.3.5-2.6 1.1-3.8 2.2-3.6 7.2-12.2 10.3-20 3-7.6 6.2-25 7.6-33.3.4-2.4 1.9-4.5 4-5.6 2.6-1.5 6.1-4.9 7.8-13.4 3.1-15.7 8-21.8 7.4-33.5-.3-5.2-1.7-8-3.2-9.5-2-1.9-2.7-4.8-2-7.4 1.9-7.6 4.7-22.6 5.2-45.6.9-41.1-31.3-81.6-89.5-81.6-59.1 0-90.5 40.5-89.6 81.6.5 23 3.3 38 5.1 45.6.6 2.7-.1 5.5-2 7.4-1.5 1.5-3 4.3-3.2 9.5-.6 11.7 4.3 17.8 7.4 33.5 1.7 8.4 5.2 11.9 7.8 13.4 2.1 1.2 3.6 3.2 4 5.6 1.4 8.3 4.6 25.7 7.6 33.3 3.1 7.8 8.2 16.5 10.3 20 .7 1.1 1.1 2.4 1.1 3.8.4 8.8 1.8 43.1-1.7 47.2-4 4.8-15.9 9.3-24.1 11.1-14.3 3.2-36.5 4.5-52.1 10-14.2 5-55.3 20.5-62.5 52.3-1.1 5 2.7 9.7 7.9 9.7H440c5.1 0 8.9-4.7 7.8-9.7-7.2-31.8-48.3-47.3-62.5-52.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M437.5 293.5h-27v-27c0-5.8-4.7-10.5-10.5-10.5s-10.5 4.7-10.5 10.5v27h-27c-5.8 0-10.5 4.7-10.5 10.5s4.7 10.5 10.5 10.5h27v27c0 5.8 4.7 10.5 10.5 10.5s10.5-4.7 10.5-10.5v-27h27c5.8 0 10.5-4.7 10.5-10.5s-4.7-10.5-10.5-10.5z\"}}]})(props);\n};\nexport function IoIosPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8 438.3c-7.2-31.8-48.3-47.3-62.5-52.3-15.6-5.5-37.8-6.8-52.1-10-8.2-1.8-20.1-6.3-24.1-11.1s-1.6-49.3-1.6-49.3 7.4-11.5 11.4-21.7c4-10.1 8.4-37.9 8.4-37.9s8.2 0 11.1-14.4c3.1-15.7 8-21.8 7.4-33.5-.6-11.5-6.9-11.2-6.9-11.2s6.1-16.7 6.8-51.3c.9-41.1-31.3-81.6-89.6-81.6-59.1 0-90.6 40.5-89.7 81.6.8 34.6 6.7 51.3 6.7 51.3s-6.3-.3-6.9 11.2c-.6 11.7 4.3 17.8 7.4 33.5 2.8 14.4 11.1 14.4 11.1 14.4s4.4 27.8 8.4 37.9c4 10.2 11.4 21.7 11.4 21.7s2.4 44.5-1.6 49.3c-4 4.8-15.9 9.3-24.1 11.1-14.3 3.2-36.5 4.5-52.1 10-14.2 5-55.3 20.5-62.5 52.3-1.1 5 2.7 9.7 7.9 9.7H440c5.1 0 8.9-4.7 7.8-9.7z\"}}]})(props);\n};\nexport function IoIosPhoneLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 176.3v158.5c0 18.3 14.6 33.1 32.9 33.1h381c18.4 0 34.1-14.8 34.1-33.1V176.3c0-18.3-15.7-32.3-34.1-32.3h-381C46.6 144 32 158 32 176.3zM55 271v-30c0-2.2 1.8-4 4-4s4 1.8 4 4v30c0 2.2-1.8 4-4 4s-4-1.8-4-4zm414-15.5c0 9.6-7.8 17.4-17.4 17.4-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4zM424 160v192H83V160h341z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M441.6 255.5c0 5.5 4.5 10 9.9 10 5.5 0 10-4.5 10-10s-4.5-10-10-10c-5.4.1-9.9 4.5-9.9 10z\"}}]})(props);\n};\nexport function IoIosPhonePortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M335.7 32H177.1C158.8 32 144 46.6 144 64.9v381c0 18.4 14.8 34.1 33.1 34.1h158.5c18.3 0 32.3-15.7 32.3-34.1v-381C368 46.6 354 32 335.7 32zM241 55h30c2.2 0 4 1.8 4 4s-1.8 4-4 4h-30c-2.2 0-4-1.8-4-4s1.8-4 4-4zm15.5 410c-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4 0 9.6-7.8 17.4-17.4 17.4zm93.5-49H162c-1.1 0-2-.9-2-2V85c0-1.1.9-2 2-2h188c1.1 0 2 .9 2 2v329c0 1.1-.9 2-2 2z\"}}]})(props);\n};\nexport function IoIosPhotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 144H128c-17.6 0-32 14.4-32 32v240c0 17.6 14.4 32 32 32h336c17.6 0 32-14.4 32-32V176c0-17.6-14.4-32-32-32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M100 116h332V96c0-17.6-14.4-32-32-32H48c-17.6 0-32 14.4-32 32v256c0 17.6 14.4 32 32 32h20V148c0-17.6 14.4-32 32-32z\"}}]})(props);\n};\nexport function IoIosPie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M276 68.1v219c0 3.7-2.5 6.8-6 7.7L81.1 343.4c-2.3.6-3.6 3.1-2.7 5.4C109.1 426 184.9 480.6 273.2 480c114.6-.7 206.8-93.5 206.8-208 0-112.1-88.6-203.5-199.8-207.8-2.3-.1-4.2 1.7-4.2 3.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M32 239.3s.2 48.8 15.2 81.1c.8 1.8 2.8 2.7 4.6 2.2l193.8-49.7c3.5-.9 6.4-4.6 6.4-8.2V36c0-2.2-1.8-4-4-4C91 33.9 32 149 32 239.3z\"}}]})(props);\n};\nexport function IoIosPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c-79.5 0-144 59.9-144 133.7 0 104 144 282.3 144 282.3s144-178.3 144-282.3C400 107.9 335.5 48 256 48zm0 190.9c-25.9 0-46.9-21-46.9-46.9s21-46.9 46.9-46.9 46.9 21 46.9 46.9-21 46.9-46.9 46.9z\"}}]})(props);\n};\nexport function IoIosPint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 175.2c0-19.5-1-81.7-19.3-115.6-4.5-8.2-9.5-11.6-28.7-11.6H188c-19.3 0-24.2 3.4-28.7 11.6-18.3 33.9-19.3 96.5-19.3 116 0 91 36 93.1 36 167.8 0 36.7-16 66.7-16 92.7 0 25.1 6 27.8 29 27.8h134c23 0 29-2.9 29-27.9 0-26-16-55.7-16-92.4 0-74.7 36-77.4 36-168.4zM188 76h136c2.4 0 4.3.1 5.7.2 5.4 11.6 9.4 29.3 11.8 50.8h-171c2.4-21.6 6.5-39.3 11.8-50.8 1.4-.1 3.3-.2 5.7-.2z\"}}]})(props);\n};\nexport function IoIosPizza (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.6 109.8c-2.7-7.3-14.2-14-25-18.7-27-11.6-73.5-27.1-164.9-27.1-94 0-137.5 14.5-165 27.1-12.3 5.7-24.2 12.5-26.7 19.5-2.9 8 .8 15.3 4.1 21.8l1.5 3c3.1 6.4 12.9 12.8 22.8 13.8L251.3 445c1 1.9 3.1 3.1 5.3 3.1 2.2 0 4.3-1.2 5.3-3.1l157.6-295.1c5.6-.6 17.2-2.6 23.1-14.3 3.9-7.7 7.4-16.7 4-25.8zm-266 112.8c-1.2 3.5-2.9 6.6-5.1 9.5-1.8 2.3-5.3 2-6.7-.6-8.8-16.6-17.3-32.4-24.8-46.5-1.4-2.6.5-5.8 3.4-5.9h1c3.7 0 7.3.6 10.9 1.7 8.6 2.8 15.5 8.7 19.6 16.6 3.9 7.9 4.6 16.8 1.7 25.2zm116.6 97.5c-.8 1.4-2.3 2.3-3.9 2.1-17-1.8-30.2-15.8-30.2-32.8 0-18.2 15.2-33 33.9-33 9.9 0 19 4 25.3 11 1.1 1.2 1.3 3.1.5 4.5l-25.6 48.2zm35.2-176.8c-5.7 4.1-12.4 6.3-19.5 6.3-1.6 0-3.3-.1-4.9-.3-8.7-1.2-16.3-5.7-21.5-12.5-2-2.6-3.6-5.5-4.6-8.4-1-2.7 1.2-5.5 4-5.3 18.3 1 35.3 2.9 51.4 5.9 3.1.6 4.5 4.1 2.7 6.7-2 2.8-4.6 5.4-7.6 7.6z\"}}]})(props);\n};\nexport function IoIosPlanet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.5 352.3c-1.9-5.5-5.6-11.5-11.4-18.3-10.2-12-30.8-29.3-54.8-47.2-2.6-2-6.4-.8-7.5 2.3l-4.7 13.4c-.7 2 0 4.3 1.7 5.5 15.9 11.6 35.9 27.9 41.8 35.9 2 2.8-.5 6.6-3.9 5.8-10-2.3-29-7.3-44.2-12.8-8.6-3.1-17.7-6.7-27.2-10.6 16-20.8 24.7-46.3 24.7-72.6 0-32.8-13.2-63.6-37.1-86.4-22.9-21.9-53.8-34.1-85.7-33.7-25.7.3-50.1 8.4-70.7 23.5-18.3 13.4-32.2 31.3-40.6 52-8.3-6-16.1-11.9-23.2-17.6-13.7-10.9-28.4-22-38.7-34.7-2.2-2.8.9-6.7 4.4-5.9 11.3 2.6 35.4 10.9 56.4 18.9 1.5.6 3.2.3 4.5-.8l11.1-10.1c2.4-2.1 1.7-6-1.3-7.2C121 137.4 89.2 128 73.2 128c-11.5 0-19.3 3.5-23.3 10.4-7.6 13.3 7.1 35.2 45.1 66.8 34.1 28.5 82.6 61.8 136.5 92 87.5 49.1 171.1 81 208 81 11.2 0 18.7-3.1 22.1-9.1 2.8-4.7 3.1-10.4.9-16.8zM312 354c-29.1-12.8-59.3-26-92.6-44.8-30.1-16.9-59.4-36.5-84.4-53.6-1-.7-2.2-1.1-3.4-1.1-.9 0-1.9.2-2.8.7-2 1-3.3 3-3.3 5.2 0 1.2-.1 2.4-.1 3.5 0 32.1 12.6 62.3 35.5 84.9 22.9 22.7 53.4 35.2 85.8 35.2 23.6 0 46.5-6.7 66.2-19.5 1.9-1.2 2.9-3.3 2.7-5.5-.1-2.2-1.5-4.1-3.6-5z\"}}]})(props);\n};\nexport function IoIosPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm83.8 211.9l-137.2 83c-2.9 1.8-6.7-.4-6.7-3.9V173c0-3.5 3.7-5.7 6.7-3.9l137.2 83c2.9 1.7 2.9 6.1 0 7.8z\"}}]})(props);\n};\nexport function IoIosPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 104.3v303.4c0 6.4 6.5 10.4 11.7 7.2l240.5-151.7c5.1-3.2 5.1-11.1 0-14.3L139.7 97.2c-5.2-3.3-11.7.7-11.7 7.1z\"}}]})(props);\n};\nexport function IoIosPodium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 199.9v208.2c0 4.4 3.5 7.9 7.9 7.9h96.2c4.4 0 7.9-3.5 7.9-7.9V199.9c0-4.4-3.5-7.9-7.9-7.9H71.9c-4.4 0-7.9 3.5-7.9 7.9zM199.9 96c-4.4 0-7.9 3.5-7.9 7.9V416h120.1c4.4 0 7.9-3.5 7.9-7.9V103.9c0-4.4-3.5-7.9-7.9-7.9H199.9zM440.1 256h-96.2c-4.4 0-7.9 3.5-7.9 7.9v144.2c0 4.4 3.5 7.9 7.9 7.9h96.2c4.4 0 7.9-3.5 7.9-7.9V263.9c0-4.4-3.5-7.9-7.9-7.9z\"}}]})(props);\n};\nexport function IoIosPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.4 111.7c-3.3-2.8-7.5-4.3-11.8-4.3-5.3 0-10.4 2.3-13.8 6.4-3.2 3.7-4.7 8.4-4.3 13.3.4 4.8 2.7 9.3 6.4 12.4 34.8 29.5 54.8 72.3 54.8 117.4 0 85.4-69.8 154.8-155.6 154.8s-155.6-69.5-155.6-154.8c0-45.2 20-88 54.8-117.4 3.7-3.1 6-7.5 6.4-12.4.4-4.8-1.1-9.6-4.3-13.3-3.5-4-8.5-6.4-13.8-6.4-4.3 0-8.5 1.5-11.8 4.3C88.7 148.1 64 201 64 256.8 64 362.2 150.1 448 256 448s192-85.8 192-191.2c0-55.8-24.7-108.7-67.6-145.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.9 274.5c10.2 0 18.5-8.3 18.5-18.5V82.5c0-10.2-8.3-18.5-18.5-18.5s-18.5 8.3-18.5 18.5V256c0 10.2 8.3 18.5 18.5 18.5z\"}}]})(props);\n};\nexport function IoIosPricetag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M435.2 48H312.3c-3.8 0-7.5 1.5-10.2 4.2L56.4 297.9c-11.2 11.2-11.2 29.5 0 40.7l117 117c11.2 11.2 29.5 11.2 40.7 0L459.7 210c2.7-2.7 4.2-6.4 4.2-10.2v-123C464 60.9 451.1 48 435.2 48zm-47.7 111.8c-20.4 2.2-37.4-14.9-35.3-35.3 1.6-14.8 13.5-26.8 28.3-28.3 20.4-2.2 37.4 14.9 35.3 35.3-1.6 14.8-13.5 26.7-28.3 28.3z\"}}]})(props);\n};\nexport function IoIosPricetags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.3 32H285.1c-3.7 0-7.2 1.5-9.8 4.1L40.1 272.2c-10.8 10.8-10.8 28.4 0 39.2l111.5 112.5C162.4 434.7 179 440 195 426l231.9-232.3c2.6-2.6 4.1-6.1 4.1-9.8V59.7c0-15.3-12.4-27.7-27.7-27.7zm-45.9 107.5c-19.6 2.1-36-14.4-33.9-33.9 1.5-14.3 13-25.7 27.3-27.3 19.6-2.1 36 14.4 33.9 33.9-1.5 14.3-13 25.8-27.3 27.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M456 80.3V194c0 3.7-1.5 7.2-4.1 9.8L192.7 463l8.8 8.8c10.8 10.8 28.4 10.8 39.2 0l235.2-236.2c2.6-2.6 4.1-6.1 4.1-9.8V107.7c0-14-10.5-25.6-24-27.4z\"}}]})(props);\n};\nexport function IoIosPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 248v200c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V248c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16zM384 48H128c-8.8 0-16 7.2-16 16v20c0 2.2 1.8 4 4 4h280c2.2 0 4-1.8 4-4V64c0-8.8-7.2-16-16-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M432.5 112h-352C62.9 112 48 125.8 48 143.3v174.4c0 17.5 14.9 32.3 32.5 32.3H96c4.4 0 8-3.6 8-8V236c0-15.5 12.5-28 28-28h248c15.5 0 28 12.5 28 28v106c0 4.4 3.6 8 8 8h16.5c17.6 0 31.5-14.8 31.5-32.3V143.3c0-17.5-13.9-31.3-31.5-31.3z\"}}]})(props);\n};\nexport function IoIosPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.6 272.1c-22.4-1.2-41.6 13.2-48.2 32.9h-38.9l-28.4-85.4c-2.2-6.6-8.3-11-15.2-11h-.3c-7 .1-13.1 4.8-15 11.6l-44.5 155.3-52.3-314.1c-1.2-7.5-7.6-13.1-15.2-13.4-7.6-.3-14.3 4.8-16.2 12.1l-53 244.9H48c-8.8 0-16 7.2-16 16s7.2 16 16 16h72c7.3 0 13.8-5 15.5-12.1l37.4-182.2 51.3 307.9c1.2 7.4 7.4 12.9 14.9 13.3h.9c7.1 0 13.4-4.7 15.4-11.6l49.7-173.6 15.7 47.3c2.2 6.5 8.3 11 15.2 11h51.1c6.9 18 24.4 31 44.9 31 27 0 48.8-22.3 48-49.5-.8-24.8-20.7-45.1-45.4-46.4z\"}}]})(props);\n};\nexport function IoIosQrScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M174 64h-58.8C78.1 64 48 94.1 48 131.2V190c0 7.7 6.3 14 14 14s14-6.3 14-14v-59.8c0-9.1 4.3-18.7 11.7-26.2 7.5-7.6 17.2-12 26.5-12H174c7.7 0 14-6.3 14-14s-6.3-14-14-14zM397.8 64H338c-7.7 0-14 6.3-14 14s6.3 14 14 14h59.8c9.3 0 19 4.4 26.5 12 7.4 7.5 11.7 17.1 11.7 26.2V190c0 7.7 6.3 14 14 14s14-6.3 14-14v-59.8c0-36.5-29.7-66.2-66.2-66.2zM174 420h-59.8c-9.3 0-19-4.4-26.5-12-7.4-7.5-11.7-17.1-11.7-26.2V322c0-7.7-6.3-14-14-14s-14 6.3-14 14v59.8c0 36.5 29.7 66.2 66.2 66.2H174c7.7 0 14-6.3 14-14s-6.3-14-14-14zM450 308c-7.7 0-14 6.3-14 14v59.8c0 9.1-4.3 18.7-11.7 26.2-7.5 7.6-17.2 12-26.5 12H338c-7.7 0-14 6.3-14 14s6.3 14 14 14h58.8c37 0 67.2-30.1 67.2-67.2V322c0-7.7-6.3-14-14-14z\"}}]})(props);\n};\nexport function IoIosQuote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209 96h-65c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h38.7c4.6 0 8.3 3.9 8 8.6-2.3 35.5-18.8 60.2-31.3 74.1-4.7 5.2-1 13.4 5.9 13.4h39.9c2.5 0 4.8-1.1 6.3-3.1 7.4-9.6 28.5-41.6 28.5-93.9v-192c0-17.8-13.3-31.1-31-31.1zM385 96h-65c-26.4 0-48 21.6-48 48v128c0 26.4 21.6 48 48 48h38.7c4.6 0 8.3 3.9 8 8.6-2.3 35.5-18.8 60.2-31.3 74.1-4.7 5.2-1 13.4 5.9 13.4h39.9c2.5 0 4.8-1.1 6.3-3.1 7.4-9.6 28.5-41.6 28.5-93.9v-192c0-17.8-13.3-31.1-31-31.1z\"}}]})(props);\n};\nexport function IoIosRadioButtonOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}}]})(props);\n};\nexport function IoIosRadioButtonOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z\"}}]})(props);\n};\nexport function IoIosRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M60 256c0-51 18.6-97.9 54-135.6 5.3-5.7 5.2-14.8-.4-20.3-2.6-2.6-6.1-4.1-9.7-4.1-3.8 0-7.4 1.6-10.1 4.4C53.3 143.7 32 197.4 32 256c0 58.5 21.3 112.3 61.7 155.5 2.7 2.9 6.3 4.5 10.2 4.5 3.6 0 7.1-1.4 9.7-3.9 2.7-2.6 4.3-6.2 4.4-10 .1-3.9-1.3-7.6-4-10.3C78.6 353.9 60 307 60 256zM418.2 100.4c-2.6-2.8-6.2-4.4-10-4.4-3.6 0-7.1 1.4-9.7 3.9-2.7 2.6-4.3 6.2-4.4 10-.1 3.9 1.3 7.6 4 10.3 35.3 37.8 54 84.7 54 135.7s-18.6 97.9-54 135.7c-5.3 5.6-5.2 14.7.3 20.2 2.5 2.6 6 4 9.7 4 3.9 0 7.6-1.6 10.2-4.6 40.4-43 61.7-96.7 61.7-155.2 0-58.5-21.3-112.4-61.8-155.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M159.2 347.7c-24.1-24.3-37.3-56.6-37.3-90.9 0-35 13.8-67.9 38.8-92.4 5.5-5.3 5.6-14.2.2-19.8-2.6-2.7-6.2-4.2-10-4.2-3.7 0-7.2 1.4-9.8 4C110.7 174.2 94 214.1 94 256.8c0 41.6 16.1 80.9 45.3 110.6 2.7 2.7 6.2 4.2 9.9 4.2s7.2-1.5 9.8-4.2c2.6-2.6 4.1-6.1 4.1-9.8.2-3.7-1.2-7.2-3.9-9.9zM371 144.5c-2.6-2.6-6-4-9.8-4-3.8 0-7.3 1.5-10 4.1-5.4 5.4-5.4 14.3.1 19.8 25 24.5 38.7 56.5 38.7 91.5 0 34.2-13.1 67.4-37.1 91.8-5.4 5.4-5.3 14.3.1 19.7 2.6 2.6 6.2 4.1 9.8 4.1 3.8 0 7.4-1.5 9.9-4.1C402 337.7 418 297.6 418 256c0-42.5-16.7-81.5-47-111.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M207.1 183.4c-2.6-2.7-6.2-4.2-10-4.2-3.7 0-7.2 1.4-9.8 4.1-19.8 19.5-30.8 45.6-30.8 73.3 0 27.1 10.5 52.7 29.5 72.1 2.7 2.7 6.2 4.2 10 4.2 3.7 0 7.2-1.4 9.8-4 2.7-2.6 4.2-6.1 4.2-9.9 0-3.8-1.4-7.3-4.1-10-13.8-14-21.4-32.6-21.4-52.5 0-20.3 8-39.2 22.4-53.4 5.4-5.2 5.5-14.1.2-19.7zM325.7 183.2c-2.6-2.6-6-4-9.8-4-3.8 0-7.3 1.5-10 4.1-5.4 5.4-5.4 14.3.1 19.8 14.5 14.3 22.4 33.3 22.4 53.5 0 19.8-7.6 38.5-21.5 52.5-2.6 2.6-4.1 6.2-4 9.9 0 3.7 1.5 7.2 4.1 9.8 2.6 2.6 6.2 4.1 9.8 4.1 3.7 0 7.3-1.5 9.9-4.2 19.1-19.4 29.6-45 29.6-72.1.1-27.8-10.8-53.8-30.6-73.4zM256 218c-21 0-38 17-38 38s17 38 38 38 38-17 38-38-17.1-38-38-38z\"}}]})(props);\n};\nexport function IoIosRainy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.9 175.6c-19-17.6-44.6-27.3-72.1-27.3h-5.6c-6.5-23.5-19.4-43.5-37.6-58.2C297.3 73 269.5 64 238.1 64c-32.7 0-63.2 11.7-86 32.9-22.8 21.2-35.5 50-36.1 81.4-17.5 4-33.6 13.7-46 27.9-14.2 16.2-22 36.6-22 57.4 0 44.6 34.9 82.6 77.4 86L101.2 382c-2.4 3.2-3.3 7.2-2.7 11.1.6 3.9 2.8 7.3 6 9.6 2.5 1.8 5.5 2.7 8.6 2.7 5.2 0 9.8-2.1 12.5-5.8l37.1-50h35.1l-55.3 75.1c-2.3 3.2-3.4 6.9-2.9 10.6.5 3.9 2.6 7.4 5.9 9.8 3.5 2.5 7.5 2.8 9 2.8 7.2 0 11.2-3.5 13.4-6.4l67.4-91.8H270L246 382c-2.4 3.3-3.4 7.2-2.7 11.1.6 3.9 2.8 7.3 6 9.6 2.5 1.8 5.5 2.7 8.6 2.7 5.2 0 9.8-2.1 12.5-5.8l37-50h35.1l-55.3 75.1c-2.3 3.2-3.4 7-2.9 10.6.5 3.8 2.6 7.2 5.9 9.6 2.6 1.9 5.9 3 8.9 3 5.1 0 9.7-2.2 12.5-6l69.7-95.1c22.4-4.5 43-16.6 58.1-34.5 15.9-18.8 24.7-42.6 24.7-67.1-.1-26.8-10.8-51.6-30.2-69.6z\"}}]})(props);\n};\nexport function IoIosRecording (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.2 146h-.1c-60.6 0-109.8 49.2-109.8 110.1 0 30.5 12.3 58 32.3 77.9H203.5c19.9-19.9 32.3-47.5 32.3-77.9 0-60.8-49.2-110.1-109.8-110.1h-.1-.1C65.2 146 16 195.2 16 256s49.2 110 109.8 110h260.4c60.6 0 109.8-49.2 109.8-110s-49.2-110-109.8-110zM464 256c0 43.1-34.9 78.2-77.9 78.2s-77.9-35.1-77.9-78.2 34.9-78.2 77.9-78.2S464 212.9 464 256zm-338.1 78.2C83 334.2 48 299.1 48 256s34.9-78.2 77.9-78.2 77.9 35.1 77.9 78.2-34.9 78.2-77.9 78.2z\"}}]})(props);\n};\nexport function IoIosRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 432h2.9c1.8 0 3.5-1.1 4.1-2.8 2.2-5.7 8.3-19.8 21.4-39.7 21.5-32.7 58.4-67.4 94.5-83.5 27.6-12.4 53-21.5 97.1-23.2 2.3-.1 4.2 1.7 4.2 4v81.6c0 3.2 3.6 5.1 6.2 3.4l215.9-142.2c2.4-1.6 2.4-5.1 0-6.7l-216-142.2c-2.7-1.8-6.2.1-6.2 3.4v82.6c0 2.2-1.7 3.9-3.8 4-71.6 3.8-123.1 24.8-163.4 65.5-61 61.6-56.8 139.1-56.8 158.7 0 10.3-.1 25.3-.1 37.1z\"}}]})(props);\n};\nexport function IoIosRefreshCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm0 336.1c-70.7 0-128-57.3-128-128.1s57.3-128.1 128-128.1v-37c0-6.4 7.1-10.2 12.4-6.7l72.9 52.6c4.9 3.3 4.7 10.6-.4 13.6L268 196.7c-5.3 3.1-12-.8-12-6.9v-41.9c-60.3 0-109.2 49.7-108.1 110.2 1.1 59.1 50.3 106.7 109.5 106 55.9-.7 101.8-43.7 106.3-99 .4-5.2 4.7-9.1 9.9-9.1 5.8 0 10.4 4.9 9.9 10.7-5.4 66-60.4 117.4-127.5 117.4z\"}}]})(props);\n};\nexport function IoIosRefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433 288.8c-7.7 0-14.3 5.9-14.9 13.6-6.9 83.1-76.8 147.9-161.8 147.9-89.5 0-162.4-72.4-162.4-161.4 0-87.6 70.6-159.2 158.2-161.4 2.3-.1 4.1 1.7 4.1 4v50.3c0 12.6 13.9 20.2 24.6 13.5L377 128c10-6.3 10-20.8 0-27.1l-96.1-66.4c-10.7-6.7-24.6.9-24.6 13.5v45.7c0 2.2-1.7 4-3.9 4C148 99.8 64 184.6 64 288.9 64 394.5 150.1 480 256.3 480c100.8 0 183.4-76.7 191.6-175.1.8-8.7-6.2-16.1-14.9-16.1z\"}}]})(props);\n};\nexport function IoIosRemoveCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M346.5 240h-181c-8.8 0-16 6-16 16s7.5 16 16 16h181c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}}]})(props);\n};\nexport function IoIosRemoveCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm90.5 224h-181c-8.5 0-16-6-16-16s7.2-16 16-16h181c8.8 0 16 7.2 16 16s-7.2 16-16 16z\"}}]})(props);\n};\nexport function IoIosRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.5 240h-225c-8.8 0-16 7.2-16 16 0 4.4 1.8 8.4 4.7 11.3 2.9 2.9 6.9 4.7 11.3 4.7h225c8.8 0 16-7.2 16-16s-7.2-16-16-16z\"}}]})(props);\n};\nexport function IoIosReorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 304h352v16H80zM80 248h352v16H80zM80 192h352v16H80z\"}}]})(props);\n};\nexport function IoIosRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.6 157.5L303 124.1c-3.5-3.5-8.5-4.9-13.6-3.6-1.2.3-2.4.8-3.5 1.5-4.7 2.9-7.2 7.8-6.8 13.1.2 3.4 1.9 6.6 4.3 9.1l16 15.9H142c-20.8 0-40.3 8.1-55.1 22.9C72.1 197.7 64 217.2 64 238v16c0 7.7 6.3 14 14 14s14-6.3 14-14v-16c0-13.3 5.2-25.8 14.7-35.3 9.5-9.5 22-14.7 35.3-14.7h155.4l-16 15.9c-2.4 2.4-4 5.4-4.3 8.7-.4 4.2 1.1 8.3 4.1 11.3 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l35.6-35.4c4.2-4.1 6.5-9.7 6.5-15.5-.1-5.9-2.4-11.4-6.5-15.5zM434 244c-7.7 0-14 6.3-14 14v16c0 13.3-5.2 25.8-14.7 35.3-9.5 9.5-22 14.7-35.3 14.7H214.6l16-15.9c2.4-2.4 4-5.4 4.3-8.8.4-4.2-1.1-8.3-4.1-11.3-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1l-35.6 35.4c-4.2 4.1-6.5 9.7-6.5 15.5 0 5.9 2.3 11.4 6.5 15.5l33.6 33.4c3.5 3.5 8.5 4.9 13.6 3.6 1.2-.3 2.4-.8 3.5-1.5 4.7-2.9 7.2-7.8 6.8-13.1-.2-3.4-1.9-6.6-4.3-9.1l-16-15.9H370c43 0 78-35 78-78v-16c0-7.5-6.3-13.8-14-13.8z\"}}]})(props);\n};\nexport function IoIosResize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.3 80H307.8c-7.5 0-13.7 6.1-13.7 13.7v.2c0 7.5 6.1 13.7 13.7 13.7h76.5L107.6 384.3v-76.5c0-7.5-6.1-13.7-13.7-13.7h-.2c-7.5 0-13.7 6.1-13.7 13.7v110.5c0 7.5 6.1 13.7 13.7 13.7h110.5c7.5 0 13.7-6.1 13.7-13.7v-.2c0-7.5-6.1-13.7-13.7-13.7h-76.5l276.7-276.7v76.5c0 7.5 6.1 13.7 13.7 13.7h.2c7.5 0 13.7-6.1 13.7-13.7V93.7c0-7.6-6.1-13.7-13.7-13.7z\"}}]})(props);\n};\nexport function IoIosRestaurant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64c-24.8 0-48 77.3-48 160 0 57 32 80 32 80v128c0 8.8 7.2 16 16 16s16-7.2 16-16V75c0-11-11-11-16-11zM288 64l10 104c0 4.4-3.6 8-8 8s-8-3.6-8-8l-6-104h-8l-6 104c0 4.4-3.6 8-8 8s-8-3.6-8-8l10-104h-8s-24 107.2-24 128 13.4 38.6 32 45.2V432c0 8.8 7.2 16 16 16s16-7.2 16-16V237.2c18.6-6.6 32-24.2 32-45.2S296 64 296 64h-8zM160 64c-26.5 0-48 64-48 128 0 20.8 13.4 38.6 32 45.2V432c0 8.8 7.2 16 16 16s16-7.2 16-16V237.2c18.6-6.6 32-24.2 32-45.2 0-64-21.5-128-48-128z\"}}]})(props);\n};\nexport function IoIosReturnLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M70.5 265.4l59.6-59.4c2.6-2.6 6.1-4.1 9.9-4.1 3.7 0 7.3 1.4 9.9 4.1 2.6 2.6 4.1 6.1 4.1 9.9s-1.5 7.3-4.1 9.9l-.1.1-41.1 40.1H370c13.2 0 25.8-5.2 35.3-14.7 9.5-9.4 14.7-21.9 14.7-35.3v-48c0-7.7 6.3-14 14-14s14 6.3 14 14v48c0 20.8-8.1 40.3-22.9 55.1-14.8 14.8-34.3 22.9-55.1 22.9H108.3l39.6 40.2c2.6 2.6 4.1 6.1 4.1 9.9 0 3.7-1.4 7.3-4.1 9.9l-.1.1c-2.7 2.5-6.2 3.9-9.8 3.9-3.9 0-7.3-1.4-9.9-4.1l-57.6-57.4c-4.2-4.2-6.5-9.8-6.5-15.7 0-5.8 2.3-11.3 6.5-15.4z\"}}]})(props);\n};\nexport function IoIosReturnRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441.5 265.4L381.9 206c-2.6-2.6-6.1-4.1-9.9-4.1-3.7 0-7.3 1.4-9.9 4.1-2.6 2.6-4.1 6.1-4.1 9.9s1.5 7.3 4.1 9.9l.1.1 41.1 40.1H142c-13.2 0-25.8-5.2-35.3-14.7-9.5-9.5-14.7-22-14.7-35.3v-48c0-7.7-6.3-14-14-14s-14 6.3-14 14v48c0 20.8 8.1 40.3 22.9 55.1 14.8 14.8 34.3 22.9 55.1 22.9h261.7L364 334.2c-2.6 2.6-4.1 6.1-4.1 9.9 0 3.7 1.4 7.3 4.1 9.9l.1.1c2.7 2.5 6.2 3.9 9.8 3.9 3.9 0 7.3-1.4 9.9-4.1l57.6-57.4c4.2-4.2 6.5-9.8 6.5-15.7.1-5.8-2.2-11.3-6.4-15.4z\"}}]})(props);\n};\nexport function IoIosReverseCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M417.5 160H363c-4.6 0-8.9-2-12-5.4-28.4-31.8-39.1-42.6-50.7-42.6h-85.5c-11.7 0-23.2 10.8-51.7 42.7-3 3.4-7.4 5.3-11.9 5.3h-4.1v-8c0-4.4-3.6-8-8-8h-26c-4.4 0-8 3.6-8 8v8h-7.5C79.9 160 64 173.2 64 190.7v176c0 17.5 15.9 33.3 33.5 33.3h320c17.6 0 30.5-15.8 30.5-33.3v-176c0-17.5-12.9-30.7-30.5-30.7zM308.3 340.5c-.8 2.5-2.6 4.6-4.8 6.1-14.1 9.7-30.5 14.8-47.5 14.8-21 0-41.2-8.1-57.1-22.7-14.6-13.5-24.1-31.2-27-50.2h-20.4c-3.2 0-6-2.8-5.6-6.6.1-.7.3-1.3.7-1.8l31.5-42.3c1.1-1.4 2.7-2.2 4.4-2.2 1.7 0 3.3.8 4.4 2.2l32.2 41.8c2 2.6 1.5 6.4-1.8 8.5-.6.4-1.2.5-1.9.5h-20.8c2.7 12.8 9.7 24.8 19.9 34 11.6 10.6 26.3 16.4 41.4 16.4 12.3 0 24.4-4 35.1-11.5 1.9-1.3 4.2-2.1 6.5-2.1 3.2 0 6.2 1.3 8.3 3.7 2.9 3 3.9 7.3 2.5 11.4zm56.6-67.5l-31.2 42.9c-1.8 2.5-5.5 3.2-8.3.8-.2-.2-.4-.4-.5-.6L292.5 273c-2-2.6-1.4-6.5 1.9-8.5.6-.3 1.2-.5 1.9-.5h21c-2.7-13.6-9.7-26.1-19.9-35.6-11.5-10.7-26.2-16.6-41.3-16.6-12.5 0-24.6 3.9-35.2 11.3-1.9 1.3-4.1 2-6.4 2-3.1 0-6.1-1.3-8.2-3.6-2.8-3-3.8-7.4-2.5-11.5.8-2.5 2.6-4.6 4.7-6 14.1-9.7 30.6-14.8 47.6-14.8 21.7 0 42.2 7.9 57.8 22.3 13.3 12.3 23.2 32.1 26.2 52.4h21.1c.6 0 1.3.2 1.8.5 3.2 2.1 3.8 6 1.9 8.6z\"}}]})(props);\n};\nexport function IoIosRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M35.9 249.3L244 129.1c5.4-3.1 12.3.6 12.3 6.7V251l211.3-121.9c5.4-3.1 12.3.6 12.3 6.7v240.3c0 6.1-6.9 9.8-12.3 6.7L256.4 261v115.2c0 6.1-6.9 9.8-12.3 6.7L35.9 262.7c-5.2-3-5.2-10.4 0-13.4z\"}}]})(props);\n};\nexport function IoIosRibbon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M254.9 293.4c73 .6 132.3-58.7 131.7-131.8-.6-69.9-59.7-129-129.5-129.6-73-.6-132.3 58.7-131.7 131.8.6 69.9 59.7 129 129.5 129.6zm-3.7-204.1c44.3-2.8 80.9 33.8 78.1 78.2-2.3 36.6-31.9 66.2-68.5 68.6-44.3 2.8-80.9-33.8-78.1-78.2 2.3-36.6 31.9-66.2 68.5-68.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 308.4c-42.8 0-81.4-18.1-108.5-47-1.9-2-5.2-1.7-6.6.7L65.1 394.8c-3.1 5.5.8 12.3 7.2 12.3h80.1c2.9 0 5.6 1.5 7.1 4l39 64.9c3.4 5.7 11.8 5.2 14.6-.8l43-94.6 31.3-68.9c1.4-3-1.2-6.3-4.5-5.7-8.8 1.5-17.7 2.4-26.9 2.4zM364.5 261.3c-14.6 15.5-32.4 28-52.5 36.1-1 .4-1.8 1.1-2.2 2.1l-44.7 97.7c-.5 1.1-.5 2.3 0 3.4l33.9 74.5c2.7 6 11.2 6.5 14.6.8l39-64.9c1.5-2.5 4.2-4 7.1-4h80.1c6.3 0 10.3-6.8 7.2-12.3l-75.8-132.8c-1.5-2.2-4.8-2.6-6.7-.6z\"}}]})(props);\n};\nexport function IoIosRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.8 53.6c-.4-1.7-1.6-3-3.3-3.4-54.4-13.3-180.1 34.1-248.2 102.2-13.3 13.3-24.2 26.4-33.1 39.1-21-1.9-42-.3-59.9 7.5-50.5 22.2-65.2 80.2-69.3 105.1-1 5.9 3.9 11 9.8 10.4l81.1-8.9c.1 7.8.6 14 1.1 18.3.4 4.2 2.3 8.1 5.3 11.1l31.4 31.4c3 3 6.9 4.9 11.1 5.3 4.3.5 10.5 1 18.2 1.1l-8.9 81c-.6 5.9 4.5 10.8 10.4 9.8 24.9-4 83-18.7 105.1-69.2 7.8-17.9 9.4-38.8 7.6-59.7 12.7-8.9 25.9-19.8 39.2-33.1 68.4-68 115.5-190.9 102.4-248zM298.6 213.5c-16.7-16.7-16.7-43.7 0-60.4 16.7-16.7 43.7-16.7 60.4 0 16.7 16.7 16.7 43.7 0 60.4-16.7 16.7-43.7 16.7-60.4 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M174.5 380.5c-4.2 4.2-11.7 6.6-19.8 8-18.2 3.1-34.1-12.8-31-31 1.4-8.1 3.7-15.6 7.9-19.7l.1-.1c2.3-2.3.4-6.1-2.8-5.7-9.8 1.2-19.4 5.6-26.9 13.1-18 18-19.7 84.8-19.7 84.8s66.9-1.7 84.9-19.7c7.6-7.6 11.9-17.1 13.1-26.9.3-3.2-3.6-5.1-5.8-2.8z\"}}]})(props);\n};\nexport function IoIosRose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 141.1c-18.9 3.9-36.8 8.2-53.7 12.8-40.5 11-75.5 24.9-105.4 38.2-19.3 8.6-26.2 12.4-51.5 25.9C147 248.9 112 289 112 349c0 67.8 55.6 115 144 115s144-51.2 144-119c0-67.7-61-114.7 16-203.9zM135.4 241.8c12.8-10.5 31.2-23.9 56.1-38.4 6.4-3.8 13.3-7.6 20.6-11.4 11.6-6.1 23.5-11.9 35.8-17.4-9.1-10.1-22.1-19.1-36.6-27C162.6 121.1 96 107.4 96 107.4c41.5 43.7 44.6 96.5 39.4 134.4zM352 77.7s-73.8-.9-125.8 55c0 0 27.7 17.3 42.7 32.3 37.2-15.6 82.3-28.6 115.2-36-6.5-21.7-32.1-51.3-32.1-51.3zM239.7 97C210.3 59.5 176 48 176 48c-15.3 20.8-24.3 38-29 51.7 21.1 5.9 36.5 12.3 62.4 24.7 9.5-10.6 18.1-19.1 30.3-27.4z\"}}]})(props);\n};\nexport function IoIosSad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256c0 114.7 93.3 208 208 208 114.9 0 208-93.1 208-208 0-114.7-93.3-208-208-208zm-73.9 152.1c14.8-1.2 27 11.1 25.9 25.9-.9 11.6-10.3 21.1-22 22-14.8 1.2-27-11.1-25.9-25.9.9-11.7 10.3-21.1 22-22zm-.7 151.9c-11.5 0-19.3-11.8-14.7-22.4 15-34.5 49.2-58.6 89.3-58.6s74.2 24.1 89.3 58.6c4.6 10.6-3.1 22.4-14.7 22.4 0 0-34.7-4-73.1-4-38.5 0-76.1 4-76.1 4zm148.5-104.1c-14.8 1.2-27-11.1-25.9-25.9.9-11.6 10.3-21.1 22-22 14.8-1.2 27 11.1 25.9 25.9-.9 11.7-10.3 21.1-22 22z\"}}]})(props);\n};\nexport function IoIosSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 64h-16c-4.4 0-8 3.6-8 8v72c0 4.4 7.6 8 12 8h12c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M433.9 130.1L382 78.2c-9-9-21.3-14.2-34.1-14.2h-28c-8.8 0-16 7.3-16 16.2v80c0 8.8-7.2 16-16 16H160c-8.8 0-16-7.2-16-16v-80c0-8.8-7.2-16.2-16-16.2H96c-17.6 0-32 14.4-32 32v320c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V164c0-12.7-5.1-24.9-14.1-33.9zM322 400.1c0 8.8-8 16-17.8 16H143.8c-9.8 0-17.8-7.2-17.8-16v-96c0-8.8 8-16 17.8-16h160.4c9.8 0 17.8 7.2 17.8 16v96z\"}}]})(props);\n};\nexport function IoIosSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96.9 270.3V363c0 2.9 1.5 5.5 4 7l132 75.9c5.3 3.1 12-.8 12-7v-93.8c0-2.9-1.5-5.5-4-7l-132-74.9c-5.4-2.9-12 1-12 7.1zM280.9 445.9L413 370c2.5-1.4 4-4.1 4-7v-93.7c0-6.2-6.6-10-12-7l-132 75.9c-2.5 1.4-4 4.1-4 7V439c-.1 6.1 6.6 10 11.9 6.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M249 65.1L37 188.9c-5.4 3.1-5.4 10.8 0 13.9l212 117.8c4.9 2.8 11 2.8 15.9 0L453 212.9c5.3-3.1 7 .8 7 7v153.4c0 6.8 3.9 10 11 10 4.4 0 10-3.2 10-10V201.5c0-2.9-1.5-5.5-4-7L264.9 65.1c-4.9-2.8-11-2.8-15.9 0z\"}}]})(props);\n};\nexport function IoIosSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.5 420.2L336.7 312.4c20.9-26.2 33.5-59.4 33.5-95.5 0-84.5-68.5-153-153.1-153S64 132.5 64 217s68.5 153 153.1 153c36.6 0 70.1-12.8 96.5-34.2l106.1 107.1c3.2 3.4 7.6 5.1 11.9 5.1 4.1 0 8.2-1.5 11.3-4.5 6.6-6.3 6.8-16.7.6-23.3zm-226.4-83.1c-32.1 0-62.3-12.5-85-35.2-22.7-22.7-35.2-52.9-35.2-84.9 0-32.1 12.5-62.3 35.2-84.9 22.7-22.7 52.9-35.2 85-35.2s62.3 12.5 85 35.2c22.7 22.7 35.2 52.9 35.2 84.9 0 32.1-12.5 62.3-35.2 84.9-22.7 22.7-52.9 35.2-85 35.2z\"}}]})(props);\n};\nexport function IoIosSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M435.9 64.9l-367.1 160c-6.5 3.1-6.3 12.4.3 15.3l99.3 56.1c5.9 3.3 13.2 2.6 18.3-1.8l195.8-168.8c1.3-1.1 4.4-3.2 5.6-2 1.3 1.3-.7 4.3-1.8 5.6L216.9 320.1c-4.7 5.3-5.4 13.1-1.6 19.1l64.9 104.1c3.2 6.3 12.3 6.2 15.2-.2L447.2 76c3.3-7.2-4.2-14.5-11.3-11.1z\"}}]})(props);\n};\nexport function IoIosSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416.3 256c0-21 13.1-38.9 31.7-46.1-4.9-20.5-13-39.7-23.7-57.1-6.4 2.8-13.2 4.3-20.1 4.3-12.6 0-25.2-4.8-34.9-14.4-14.9-14.9-18.2-36.8-10.2-55-17.3-10.7-36.6-18.8-57-23.7C295 82.5 277 95.7 256 95.7S217 82.5 209.9 64c-20.5 4.9-39.7 13-57.1 23.7 8.1 18.1 4.7 40.1-10.2 55-9.6 9.6-22.3 14.4-34.9 14.4-6.9 0-13.7-1.4-20.1-4.3C77 170.3 68.9 189.5 64 210c18.5 7.1 31.7 25 31.7 46.1 0 21-13.1 38.9-31.6 46.1 4.9 20.5 13 39.7 23.7 57.1 6.4-2.8 13.2-4.2 20-4.2 12.6 0 25.2 4.8 34.9 14.4 14.8 14.8 18.2 36.8 10.2 54.9 17.4 10.7 36.7 18.8 57.1 23.7 7.1-18.5 25-31.6 46-31.6s38.9 13.1 46 31.6c20.5-4.9 39.7-13 57.1-23.7-8-18.1-4.6-40 10.2-54.9 9.6-9.6 22.2-14.4 34.9-14.4 6.8 0 13.7 1.4 20 4.2 10.7-17.4 18.8-36.7 23.7-57.1-18.4-7.2-31.6-25.1-31.6-46.2zm-159.4 79.9c-44.3 0-80-35.9-80-80s35.7-80 80-80 80 35.9 80 80-35.7 80-80 80z\"}}]})(props);\n};\nexport function IoIosShareAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.7 230.4l-141.1-132c-1.7-1.6-3.3-2.5-5.6-2.4-4.4.2-10 3.3-10 8v66.2c0 2-1.6 3.8-3.6 4.1C144.1 195.8 85 300.8 64.1 409.8c-.8 4.3 5 8.3 7.7 4.9 51.2-64.5 113.5-106.6 212-107.4 2.2 0 4.2 2.6 4.2 4.8v65c0 7 9.3 10.1 14.5 5.3l142.1-134.3c2.6-2.4 3.4-5.2 3.5-8.4-.1-3.2-.9-6.9-3.4-9.3z\"}}]})(props);\n};\nexport function IoIosShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 176H269v146.6c0 7-5.4 13-12.4 13.4-7.5.4-13.6-5.6-13.6-13V176H136c-22 0-40 18-40 40v208c0 22 18 40 40 40h240c22 0 40-18 40-40V216c0-22-18-40-40-40zM269 92.1l47.9 47.2c5.1 5 13.3 5 18.4-.1 5-5.1 5-13.3-.1-18.4l-70-69c-2.5-2.4-5.8-3.7-9.1-3.7-1.7 0-3.4.3-5 1-1.5.6-2.9 1.6-4.1 2.7l-70 69c-5.1 5-5.2 13.3-.1 18.4 5 5.1 13.3 5.2 18.4.1L243 92.1V176h26V92.1z\"}}]})(props);\n};\nexport function IoIosShirt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.8 181.7c1.3-1.6 1.2-3.8-.2-5.3-11.5-12.1-61.3-63.7-89.1-83.7C352 78 332 64 310 64s-22 8-54 8-32-8-54-8-42 14-62.5 28.7c-27.8 20-77.6 71.6-89.1 83.7-1.4 1.5-1.5 3.7-.2 5.3l61.7 64c2.4 2.9 7.1 1.2 7.1-2.5v-44.9c0-4.5 3.2-8.5 7.6-9.2 5.6-.9 10.4 3.5 10.4 8.9v242c0 4.4 3.6 8 8 8h222c4.4 0 8-3.6 8-8V198.3c0-4.5 3.2-8.5 7.6-9.2 5.6-.9 10.4 3.5 10.4 8.9v45.2c0 3.8 4.7 5.4 7.1 2.5l61.7-64zM256 143c-30 0-54-12.7-54-36 0-30 24-10.7 54-10.7 29.8 0 54-19.3 54 10.7 0 23.3-24.2 36-54 36z\"}}]})(props);\n};\nexport function IoIosShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.9 288.1c-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1c-2.7 2.6-4.1 6.2-4.1 9.9s1.5 7.2 4.1 9.9l16.3 16.2h-75.5l-124-155-.1-.1c-2.6-3.1-6.7-5-10.8-5H78c-7.7 0-14 6.3-14 14s6.3 14 14 14h107.4l52.5 66-52.5 66H78c-7.7 0-14 6.3-14 14s6.3 14 14 14h114c4.1 0 8-1.8 10.7-5l.1-.1 53.2-66.8 53.2 66.8.1.1c2.7 3.2 6.6 5 10.7 5h84.4l-16.3 16.2c-2.7 2.6-4.1 6.1-4.1 9.9 0 3.7 1.5 7.2 4.1 9.9 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l33.6-33.4c4.2-4.1 6.5-9.6 6.5-15.5s-2.3-11.4-6.5-15.5l-35.6-35.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M279.4 235.4c1.1 1.4 2.8 2.1 4.6 2.1h.1c1.8 0 3.5-.8 4.6-2.2l37.9-47.3h75.8l-16.3 16.2c-2.7 2.6-4.1 6.1-4.1 9.9 0 3.7 1.5 7.2 4.1 9.9 2.6 2.6 6.2 4.1 9.9 4.1s7.2-1.4 9.9-4.1l35.6-35.4c4.2-4.1 6.5-9.7 6.5-15.5 0-5.9-2.3-11.4-6.5-15.5l-33.6-33.4c-2.6-2.6-6.2-4.1-9.9-4.1s-7.2 1.4-9.9 4.1c-2.7 2.6-4.1 6.2-4.1 9.9s1.5 7.2 4.1 9.9l16.3 16.2H320c-4.1 0-8 1.8-10.7 5l-.1.1-40.3 50.2c-1.8 2.2-1.8 5.4.1 7.6l10.4 12.3z\"}}]})(props);\n};\nexport function IoIosSkipBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M175 100v137.8L403.9 98.1c5.3-3.1 12.1.7 12.1 6.9v302c0 6.2-6.7 10-12.1 6.9L175 274.2V412c0 2.2-1.8 4-4 4h-71c-2.2 0-4-1.8-4-4V100c0-2.2 1.8-4 4-4h71c2.2 0 4 1.8 4 4z\"}}]})(props);\n};\nexport function IoIosSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337 100v137.8L108.1 98.1C102.7 95 96 98.8 96 105v302c0 6.2 6.7 10 12.1 6.9L337 274.2V412c0 2.2 1.8 4 4 4h71c2.2 0 4-1.8 4-4V100c0-2.2-1.8-4-4-4h-71c-2.2 0-4 1.8-4 4z\"}}]})(props);\n};\nexport function IoIosSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.5 345.8L408.1 327c11.8-12.3 26-18.2 26.2-18.3 7.5-3 11.4-11.4 8.9-19.1-1.9-5.9-7.4-9.8-13.5-9.8-1.9 0-3.7.4-5.5 1.1-1 .4-24.4 10-41.9 31.2l-96.3-56 96.3-56c17.5 21.2 40.8 30.8 41.9 31.2 1.8.7 3.6 1.1 5.5 1.1 6.1 0 11.6-4 13.5-9.8 2.5-7.7-1.4-16.1-8.9-19.1-.1-.1-14.3-6-26.2-18.3l32.4-18.8c7.2-4.2 9.6-13.4 5.5-20.6-2.7-4.7-7.7-7.6-13.1-7.6-2.6 0-5.3.7-7.6 2L393.1 159c-4.5-16.2-2.7-31.4-2.6-32 1.1-8.1-4.1-15.6-12-17.3-1-.2-2-.3-3-.3-7.1 0-13 5.2-14.1 12.4-.2 1.1-3.6 26 6.1 52.2l-96 56v-99.2c26.9-4.7 46.8-20.2 47.7-20.9 3.1-2.5 5.1-6 5.4-10 .3-4-.9-7.8-3.6-10.8-2.9-3.2-7-5.1-11.4-5.1-3.4 0-6.8 1.2-9.5 3.3-.1.1-12.2 9.4-28.6 13.6V63.1c0-8.2-7.1-15.1-15.5-15.1s-15.5 6.9-15.5 15.1v37.5c-16.3-4.2-28.4-13.5-28.6-13.6-2.7-2.1-6-3.3-9.5-3.3-4.4 0-8.5 1.9-11.4 5.1-2.7 3-4 7-3.6 10.9.3 3.9 2.3 7.4 5.4 9.9.9.7 20.8 16.2 47.7 20.9v99.2l-96-56c9.6-26 6.2-51.1 6-52.2-1-7.2-6.9-12.4-14-12.4-1 0-2 .1-3 .3-7.9 1.6-13.2 9.3-12 17.3 0 .2 2 15.5-2.6 31.9L86.6 140c-2.3-1.3-4.9-2-7.6-2-5.4 0-10.4 2.9-13.1 7.6-4.1 7.2-1.7 16.5 5.5 20.6l32.4 18.8c-11.7 12.1-25.7 18.1-26.2 18.3-7.5 3-11.4 11.4-8.9 19.1 1.9 5.9 7.4 9.8 13.5 9.8 1.9 0 3.7-.4 5.5-1.1 1-.4 24.4-10 41.9-31.2l96.3 56-96.3 56c-17.5-21.2-40.8-30.8-41.9-31.2-1.8-.7-3.6-1.1-5.5-1.1-6.1 0-11.6 4-13.5 9.8-2.5 7.7 1.4 16 8.9 19.1.5.2 14.5 6.2 26.2 18.3l-32.4 18.8c-7.2 4.2-9.6 13.4-5.5 20.6 2.7 4.7 7.7 7.6 13.1 7.6 2.6 0 5.3-.7 7.6-2l32.3-18.8c4.6 16.5 2.6 31.8 2.6 32-1.2 8 4.1 15.7 12 17.3 1 .2 2 .3 3 .3 7.1 0 13-5.2 14.1-12.4.2-1.1 3.6-26-6.1-52.2l96-56v99.2c-26.9 4.7-46.8 20.2-47.7 20.9-3.1 2.5-5.1 6-5.4 10-.3 4 .9 7.8 3.6 10.8 2.9 3.2 7 5.1 11.4 5.1 3.4 0 6.8-1.2 9.5-3.3.1-.1 12.3-9.4 28.6-13.6v37.5c0 8.2 7.1 15.1 15.5 15.1s15.5-6.9 15.5-15.1v-37.5c16.3 4.2 28.4 13.5 28.6 13.6 2.7 2.1 6.1 3.3 9.5 3.3 4.4 0 8.5-1.9 11.4-5.1 2.7-3 4-7 3.6-10.9-.3-3.9-2.3-7.4-5.4-9.9-.9-.7-20.8-16.2-47.7-20.9V282l96 56c-9.6 26-6.2 51.1-6 52.2 1 7.2 6.9 12.4 14 12.4 1 0 2-.1 3-.3 7.9-1.6 13.1-9.2 12-17.3-.1-.5-1.9-15.7 2.6-32l32.2 18.8c2.3 1.3 4.9 2 7.6 2 5.4 0 10.4-2.9 13.1-7.6 4.1-6.9 1.7-16.2-5.5-20.4z\"}}]})(props);\n};\nexport function IoIosSpeedometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C132.3 64 32 164.2 32 287.9c0 57 21.3 109 56.3 148.5 1.1 1.2 2.1 2.4 3.2 3.5C96.3 445 103 448 110 448c7.1 0 13.8-3 18.6-8.2 31.6-34.4 77-55.9 127.4-55.9s95.8 21.6 127.4 55.9c4.8 5.2 11.5 8.2 18.6 8.2 7 0 13.7-2.9 18.5-8.1 1.1-1.2 2.1-2.3 3.2-3.5 35-39.5 56.3-91.5 56.3-148.5C480 164.2 379.7 64 256 64zm-14 45.9c0-7.7 6.3-14 14-14s14 6.3 14 14v36c0 7.7-6.3 14-14 14s-14-6.3-14-14v-36zm-128 192H78c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14zm51.5-104.5c-5.4 5.4-14.4 5.4-19.8 0L120.2 172c-5.4-5.4-5.4-14.4 0-19.8s14.4-5.4 19.8 0l25.5 25.5c5.4 5.4 5.4 14.3 0 19.7zm160.6 34.5l-47.5 75.5c-1.9 2.6-4.3 5.1-7 7-13.5 9.7-32.3 6.5-42-7s-6.5-32.3 7-42l75.5-47.5c3.4-2.4 8.1-2.5 11.7 0 4.5 3.2 5.5 9.5 2.3 14zm40.2-34.5c-5.4 5.4-14.4 5.4-19.8 0s-5.4-14.4 0-19.8l25.5-25.5c5.4-5.4 14.4-5.4 19.8 0s5.4 14.4 0 19.8l-25.5 25.5zM434 301.9h-36c-7.7 0-14-6.3-14-14s6.3-14 14-14h36c7.7 0 14 6.3 14 14s-6.3 14-14 14z\"}}]})(props);\n};\nexport function IoIosSquareOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388 96H124c-15.4 0-28 12.6-28 28v264c0 15.4 12.6 28 28 28h264c15.4 0 28-12.6 28-28V124c0-15.4-12.6-28-28-28zm0 284c0 4.4-3.6 8-8 8H132c-4.4 0-8-3.6-8-8V132c0-4.4 3.6-8 8-8h248c4.4 0 8 3.6 8 8v248z\"}}]})(props);\n};\nexport function IoIosSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388 416H124c-15.4 0-28-12.6-28-28V124c0-15.4 12.6-28 28-28h264c15.4 0 28 12.6 28 28v264c0 15.4-12.6 28-28 28z\"}}]})(props);\n};\nexport function IoIosStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16zm-47.4 35.2l-79.8 57.3c-10 7.2-14.2 20.2-10.2 31.8l30.1 87.7c1.3 3.7-2.9 6.8-6.1 4.6l-77.4-55.2-.1-.1c-10-7-16.1-18.3-16.1-30.5V113.3c0-2.2 3.1-2.7 3.8-.6l29.6 88.2c3.8 11.4 14.5 19.1 26.5 19.1h97.3c3.9 0 5.5 5 2.4 7.2z\"}}]})(props);\n};\nexport function IoIosStarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16zm-127.2 92.5c-10 7.2-14.2 20.2-10.2 31.8l30.1 87.7c1.3 3.7-2.9 6.8-6.1 4.6l-77.4-55.2c-4.9-3.5-10.6-5.2-16.3-5.2-5.7 0-11.4 1.7-16.2 5.2l-77.4 55.1c-3.2 2.3-7.4-.9-6.1-4.6l30.1-87.7c4-11.8-.2-24.8-10.3-32l-81-57.1c-3.2-2.2-1.6-7.3 2.3-7.3H196c12 0 22.7-7.7 26.5-19.1l29.6-88.2c1.2-3.6 6.4-3.6 7.6 0l29.6 88.2c3.8 11.4 14.5 19.1 26.5 19.1h97.3c3.9 0 5.5 5 2.3 7.2l-79.6 57.5z\"}}]})(props);\n};\nexport function IoIosStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463 192H315.9L271.2 58.6C269 52.1 262.9 48 256 48s-13 4.1-15.2 10.6L196.1 192H48c-8.8 0-16 7.2-16 16 0 .9.1 1.9.3 2.7.2 3.5 1.8 7.4 6.7 11.3l120.9 85.2-46.4 134.9c-2.3 6.5 0 13.8 5.5 18 2.9 2.1 5.6 3.9 9 3.9 3.3 0 7.2-1.7 10-3.6l118-84.1 118 84.1c2.8 2 6.7 3.6 10 3.6 3.4 0 6.1-1.7 8.9-3.9 5.6-4.2 7.8-11.4 5.5-18L352 307.2l119.9-86 2.9-2.5c2.6-2.8 5.2-6.6 5.2-10.7 0-8.8-8.2-16-17-16z\"}}]})(props);\n};\nexport function IoIosStats (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 448h48c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v368c0 4.4 3.6 8 8 8zM88 448h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zM280.1 448h47.8c4.5 0 8.1-3.6 8.1-8.1V232.1c0-4.5-3.6-8.1-8.1-8.1h-47.8c-4.5 0-8.1 3.6-8.1 8.1v207.8c0 4.5 3.6 8.1 8.1 8.1zM368 136.1v303.8c0 4.5 3.6 8.1 8.1 8.1h47.8c4.5 0 8.1-3.6 8.1-8.1V136.1c0-4.5-3.6-8.1-8.1-8.1h-47.8c-4.5 0-8.1 3.6-8.1 8.1z\"}}]})(props);\n};\nexport function IoIosStopwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.9 143.7c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.1 3.1-8.2 0-11.3L413 95.6c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l25.5 25.5zM84.8 143.7c3.1 3.1 8.2 3.1 11.3 0l25.5-25.5c3.1-3.1 3.1-8.2 0-11.3l-11.3-11.3c-3.1-3.1-8.2-3.1-11.3 0L73.5 121c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M280 81.5V64c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.5C137.3 93.3 64 174.1 64 272c0 106 86 192 192 192s192-86 192-192c0-97.9-73.3-178.7-168-190.5zm-10 219.3V320c0 7.7-6.3 14-14 14s-14-6.3-14-14v-19.2c-10.7-5.2-18-16.1-18-28.8s7.3-23.6 18-28.8V144c0-7.7 6.3-14 14-14s14 6.3 14 14v99.2c10.7 5.2 18 16.1 18 28.8s-7.3 23.6-18 28.8z\"}}]})(props);\n};\nexport function IoIosSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 32H160c-35.2 0-64 28.8-64 64v232c0 35.2 28.8 64 64 64h192c35.2 0 64-28.8 64-64V96c0-35.2-28.8-64-64-64zM200 56h112c4.4 0 8 3.6 8 8s-3.6 8-8 8H200c-4.4 0-8-3.6-8-8s3.6-8 8-8zm-32 304c-15.5 0-28-12.5-28-28s12.5-28 28-28 28 12.5 28 28-12.5 28-28 28zm176 0c-15.5 0-28-12.5-28-28s12.5-28 28-28 28 12.5 28 28-12.5 28-28 28zm40-152c0 8.8-7.2 16-16 16H144.2c-8.8 0-16.2-7.2-16.2-16v-95.8c0-8.8 7.4-16.2 16.2-16.2H368c8.8 0 16 7.4 16 16.2V208zM393.7 455.9l-50-48c-5.6-5.4-14.4-5.2-19.8.4-5.4 5.6-5.2 14.4.4 19.8l6.1 5.9H181.5l6.1-5.9c5.6-5.4 5.8-14.2.4-19.8-5.4-5.6-14.2-5.8-19.8-.4l-50 48c-5.6 5.4-5.8 14.2-.4 19.8 2.7 2.9 6.4 4.3 10.1 4.3 3.5 0 7-1.3 9.7-3.9l14.7-14.1h207.2l14.7 14.1c2.7 2.6 6.2 3.9 9.7 3.9 3.7 0 7.4-1.4 10.1-4.3 5.5-5.6 5.3-14.4-.3-19.8z\"}}]})(props);\n};\nexport function IoIosSunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 387c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4v-46.2c0-8.5-6.9-15.4-15.4-15.4zM256 48c-8.5 0-15.4 6.9-15.4 15.4v46.2c0 8.5 6.9 15.4 15.4 15.4s15.4-6.9 15.4-15.4V63.4c0-8.5-6.9-15.4-15.4-15.4zM125 256c0-8.5-6.9-15.4-15.4-15.4H63.4c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4zM448.6 240.6h-46.2c-8.5 0-15.4 6.9-15.4 15.4s6.9 15.4 15.4 15.4h46.2c8.5 0 15.4-6.9 15.4-15.4s-6.9-15.4-15.4-15.4zM152.5 344.1c-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5l32.7-32.7c6-6 6-15.8 0-21.8-2.9-2.9-6.8-4.5-10.9-4.5zM359.5 167.9c4.1 0 8-1.6 10.9-4.5l32.7-32.7c2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5l-32.7 32.7c-2.9 2.9-4.5 6.8-4.5 10.9s1.6 8 4.5 10.9c2.9 2.9 6.8 4.5 10.9 4.5zM130.7 108.9c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-2.9 2.9-4.5 6.8-4.5 10.9 0 4.1 1.6 8 4.5 10.9l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7zM370.4 348.6c-2.9-2.9-6.8-4.5-10.9-4.5-4.1 0-8 1.6-10.9 4.5-6 6-6 15.8 0 21.8l32.7 32.7c2.9 2.9 6.8 4.5 10.9 4.5 4.1 0 8-1.6 10.9-4.5 2.9-2.9 4.5-6.8 4.5-10.9s-1.6-8-4.5-10.9l-32.7-32.7zM256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96z\"}}]})(props);\n};\nexport function IoIosSwap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388.9 266.3c-5.1-5-5.2-13.3-.1-18.4L436 200H211c-7.2 0-13-5.8-13-13s5.8-13 13-13h224.9l-47.2-47.9c-5-5.1-5-13.3.1-18.4 5.1-5 13.3-5 18.4.1l69 70c1.1 1.2 2.1 2.5 2.7 4.1.7 1.6 1 3.3 1 5 0 3.4-1.3 6.6-3.7 9.1l-69 70c-5 5.2-13.2 5.3-18.3.3zM123.1 404.3c5.1-5 5.2-13.3.1-18.4L76.1 338H301c7.2 0 13-5.8 13-13s-5.8-13-13-13H76.1l47.2-47.9c5-5.1 5-13.3-.1-18.4-5.1-5-13.3-5-18.4.1l-69 70c-1.1 1.2-2.1 2.5-2.7 4.1-.7 1.6-1 3.3-1 5 0 3.4 1.3 6.6 3.7 9.1l69 70c5 5.2 13.2 5.3 18.3.3z\"}}]})(props);\n};\nexport function IoIosSwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"144\",\"cy\":\"368\",\"r\":\"42\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M367.5 272h-223C91.2 272 48 315.2 48 368.5S91.2 464 144.5 464h223c53.3 0 96.5-42.2 96.5-95.5S420.8 272 367.5 272zM144 432c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"368\",\"cy\":\"144\",\"r\":\"42\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M144.5 240h223c53.3 0 96.5-42.2 96.5-95.5S420.8 48 367.5 48h-223C91.2 48 48 91.2 48 144.5S91.2 240 144.5 240zM368 80c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64z\"}}]})(props);\n};\nexport function IoIosSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M492 257.1c-2.6-2.6-6-4-9.6-4-3.6 0-7 1.4-9.6 4l-13 13c4.3-61.8-19.5-122.5-65.3-165C356.9 70.2 307.7 51 256.1 51c-26.7 0-52.8 5.1-77.4 15.1-25.5 10.4-48.3 25.6-67.7 45.3-13.2 13.4-24.6 28.5-33.6 44.8-1.9 3.4-2.3 7.4-1.2 11.1 1.1 3.7 3.8 6.8 7.2 8.5 2 1 4.2 1.5 6.4 1.5 5.2 0 9.9-2.8 12.4-7.3 7.9-14.3 17.8-27.5 29.4-39.1 16.8-16.8 36.3-29.8 58.1-38.7 21.1-8.6 43.4-12.9 66.2-12.9 22.9 0 45.2 4.3 66.3 12.9 21.8 8.9 41.4 21.9 58.2 38.8 20.3 20.4 35.4 45.6 43.8 73 7 22.9 9.2 47.3 6.6 71.2l-18.9-18.5c-2.5-2.4-5.8-3.8-9.3-3.8-3.5 0-6.9 1.4-9.4 3.9-5.2 5.2-5.2 13.6 0 18.8l42.8 42.9c1.9 1.9 4.4 2.9 7 2.9 2.6 0 5.1-1 7-2.9l42.1-42.2c5.2-5.3 5.2-13.9-.1-19.2zM428.6 335.9c-2-1-4.2-1.5-6.4-1.5-5.2 0-9.9 2.8-12.4 7.3-7.9 14.3-17.8 27.5-29.4 39.1-16.8 16.8-36.3 29.9-58.2 38.7-21.1 8.6-43.4 12.9-66.3 12.9s-45.2-4.3-66.2-12.9c-21.8-8.9-41.4-21.9-58.2-38.7-37.6-37.8-56-90.9-50.3-143.9l18.4 18.5c2.4 2.4 5.6 3.7 9 3.7 3.4 0 6.6-1.3 9-3.7l1.3-1.3c4.9-4.9 4.9-13 0-17.9l-42.9-43c-1.9-1.9-4.4-2.9-7-2.9-2.6 0-5.1 1-7 2.9l-42 42.3c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7-1.4 9.6-4l13-13.1c-1.8 25.8 1.3 52 9 76.5 9.9 31.4 26.8 59.3 50.3 82.8 19.5 19.6 42.2 34.7 67.6 45.1 24.5 10 50.4 15 76.9 15 26.5 0 52.4-5.1 76.9-15 25.4-10.3 48.1-25.5 67.6-45.1 13.5-13.5 25-28.8 34.2-45.4 1.9-3.4 2.3-7.4 1.2-11.1-1.2-3.7-3.8-6.8-7.3-8.5z\"}}]})(props);\n};\nexport function IoIosTabletLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M39 103c-4.5 4.5-7 10.6-7 16.9V392c0 6.4 2.5 12.4 7 16.9 4.5 4.5 10.6 7 16.9 7H456c6.4 0 12.4-2.5 16.9-7 4.5-4.5 7-10.6 7-16.9V119.9c0-6.4-2.5-12.4-7-16.9-4.5-4.5-10.6-7-16.9-7H55.9c-6.3 0-12.4 2.5-16.9 7zm9.7 153.4c0-3.9 3.1-7 7-7s7 3.1 7 7-3.1 7-7 7c-3.8 0-7-3.2-7-7zM470 256c0 7.7-6.5 14-14.1 14-7.5 0-14-6.2-14-14 0-7.7 6.4-14.1 14-14.1 7.6.1 14.1 6.4 14.1 14.1zm-38-144v288H80V112h352z\"}}]})(props);\n};\nexport function IoIosTabletPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M409 39c-4.5-4.5-10.6-7-16.9-7H119.9c-6.4 0-12.4 2.5-16.9 7-4.5 4.5-7 10.6-7 16.9V456c0 6.4 2.5 12.4 7 16.9 4.5 4.5 10.6 7 16.9 7H392c6.4 0 12.4-2.5 16.9-7 4.5-4.5 7-10.6 7-16.9V55.9c.1-6.3-2.4-12.4-6.9-16.9zm-153.4 9.7c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7c0-3.8 3.2-7 7-7zM256 470c-7.7 0-14-6.5-14-14.1 0-7.5 6.2-14 14-14 7.7 0 14.1 6.4 14.1 14-.1 7.6-6.4 14.1-14.1 14.1zm144-38H112V80h288v352z\"}}]})(props);\n};\nexport function IoIosTennisball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.4 464c1-7.9 1.6-15.9 1.6-23.9 0-48.1-18.7-94.3-52.7-128.3S119 260 70.9 260c-7.7 0-15.4.5-22.9 1.4 2.8 110.3 92.3 199.3 202.4 202.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M230 74c0-8.3.5-16.4 1.4-24.5-95.3 11.7-171.7 89-182.2 184.7 7.2-.7 14.4-1.1 21.8-1.1 114.9 0 207.1 92.2 207.1 207 0 7.7-.4 15.3-1.3 22.8 96.6-10.1 174.6-86.2 185.8-182.4-8.4 1-16.9.6-25.5.6C322.1 281 230 188.9 230 74z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M308.7 202.3c34 34 80.2 52.7 128.3 52.7 9.1 0 18.1-.7 27-2-2.2-112-93.9-203.5-206.1-205-1.2 8.5-1.9 17.2-1.9 26 0 48.1 18.7 94.3 52.7 128.3zM232 49.3z\"}}]})(props);\n};\nexport function IoIosText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C141.1 64 48 139.2 48 232c0 64.9 45.6 121.2 112.3 149.2-5.2 25.8-21 47-33.5 60.5-2.3 2.5.2 6.5 3.6 6.3 11.5-.8 32.9-4.4 51-12.7 21.5-9.9 40.3-30.1 46.3-36.9 9.3 1 18.8 1.6 28.5 1.6 114.9 0 208-75.2 208-168C464 139.2 370.9 64 256 64z\"}}]})(props);\n};\nexport function IoIosThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.8 304.6c-4.3-3-6.9-7.9-6.9-13.1v-213c0-25.7-21-46.5-47-46.5s-47 20.8-47 46.5v213c0 5.2-2.6 10.2-6.9 13.1-25.2 17.3-42 46.4-42 79.3 0 53 43 96 96 96s96-43 96-96c0-32.9-17-62.1-42.2-79.3zM256.1 445c-32 0-58.1-26.3-58.1-58.8 0-25.4 15.4-47.1 37.9-55.3 3.2-1.2 5.4-4.1 5.4-7.5V180.2c0-8 6.5-14.5 14.5-14.5s14.5 6.5 14.5 14.5v143.2c0 3.4 2.1 6.3 5.3 7.5 21.9 8.2 38.4 29.9 38.4 55.2 0 32.5-25.8 58.9-57.9 58.9z\"}}]})(props);\n};\nexport function IoIosThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80.7 123.2c-7.5 6.3-16.7 16.1-16.7 31.4 0 13.7 5.7 22.8 10.9 29.1.6 1.2 1.1 2.3 1.6 3.4l.2 1.1c.7 3.5 0 7.1-2 10-3.4 5-5.8 12.3-5.8 25.7 0 11.6 4.8 18.4 9.7 23.2 4.4 4.3 6.1 12.5 4.1 18.3-4.8 13.9-.2 28.4 8.2 37.8 10.5 11.8 20.3 13.2 46.4 11.7 18-1.1 55.5-6.9 80.2-10.8 10.1-1.6 18.9-3 21.6-3.2 12.7-1.3 15.2 0 16.4 4.9.5 2.1-1.9 6.9-4.9 13-4 8.1-9.5 19.2-14.5 35.8-10.1 33.2-9 69.2 2.7 90.2 5.5 9.9 14.8 19.1 26.3 19.1s23.3-2.4 27.9-7.9c3.4-4 2.3-11.6 6.2-26.8 3.1-12.4 7-30.9 12-42 7.5-16.6 39.7-45.1 57-60.4 4.1-3.6 7.6-6.7 10.1-9.1 8.7-8.1 17.6-21.1 25.5-32.7 5.4-7.8 10.4-15.2 13.7-18.5 7.1-7.1 16.6-10.9 22.3-10.9 4.4 0 8-3.6 8-8V88.1c0-4.6-3.7-8.3-8.3-8.3C404 79.8 389 74 373.1 68c-12.2-4.7-24.9-9.5-46.4-12.1-32.4-4-74.2-8.1-112.6-8.1-20.4 0-39.9 2-56.6 3.9-31 3.6-64.2 10.8-75.2 37-4.1 9.7-2.2 17.6.5 23.7.4.8.7 1.7.8 2.6.6 3.3-.6 6.3-2.9 8.2z\"}}]})(props);\n};\nexport function IoIosThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.3 388.8c7.5-6.3 16.7-16.1 16.7-31.4 0-13.7-5.7-22.8-10.9-29.1-.6-1.2-1.1-2.3-1.6-3.4l-.2-1.1c-.7-3.5 0-7.1 2-10 3.4-5 5.8-12.3 5.8-25.7 0-11.6-4.8-18.4-9.7-23.2-4.4-4.3-6.1-12.5-4.1-18.3 4.8-13.9.2-28.4-8.2-37.8-10.5-11.8-20.3-13.2-46.4-11.7-18 1.1-55.5 6.9-80.2 10.8-10.1 1.6-18.9 3-21.6 3.2-12.7 1.3-15.2 0-16.4-4.9-.5-2.1 1.9-6.9 4.9-13 4-8.1 9.5-19.2 14.5-35.8 10.1-33.2 9-69.2-2.7-90.2-5.5-9.9-14.8-19.1-26.3-19.1S223.6 50.5 219 56c-3.4 4-2.3 11.6-6.2 26.8-3.1 12.4-7 30.9-12 42-7.5 16.6-39.7 45.1-57 60.4-4.1 3.6-7.6 6.7-10.1 9.1-8.7 8.1-17.6 21.1-25.5 32.7-5.4 7.8-10.4 15.2-13.7 18.5-7.1 7.1-16.6 10.9-22.3 10.9-4.4 0-8 3.6-8 8v159.5c0 4.6 3.7 8.3 8.3 8.3 35.5 0 50.5 5.8 66.4 11.8 12.2 4.7 24.9 9.5 46.4 12.1 32.4 4 74.2 8.1 112.6 8.1 20.4 0 39.9-2 56.6-3.9 31-3.6 64.2-10.8 75.2-37 4.1-9.7 2.2-17.6-.5-23.7-.4-.8-.7-1.7-.8-2.6-.6-3.3.6-6.3 2.9-8.2z\"}}]})(props);\n};\nexport function IoIosThunderstorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M374.4 141.9l-13.3-.1C349.4 88.2 306 48 236 48S108.2 98.4 108.2 169.5l.3 4.8C66.3 179.9 32 219.6 32 264c0 47 37.9 88 84.7 88H236l13.8-50.6H183c-2.6 0-4.5-2.4-3.9-4.9l23.2-113c.4-1.8 2-3.1 3.9-3.1h86.1c2.7 0 4.6 2.6 3.8 5.2l-22.5 74.9h60.1c3.1 0 5.1 3.5 3.4 6.1L283.4 352H367c72 0 113-52 113-110 0-58.6-47.3-100.1-105.6-100.1zM206.8 458.9c-1.2 4.4 4.8 7 7.2 3.2L283.4 352H236l-29.2 106.9z\"}}]})(props);\n};\nexport function IoIosTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm14 226c0 7.7-6.3 14-14 14h-96c-7.7 0-14-6.3-14-14s6.3-14 14-14h82V128c0-7.7 6.3-14 14-14s14 6.3 14 14v146z\"}}]})(props);\n};\nexport function IoIosTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 456c-110.3 0-200-89.7-200-200 0-54.8 21.7-105.9 61.2-144 6.4-6.2 16.6-6 22.7.4 6.2 6.4 6 16.6-.4 22.7-33.1 32-51.3 74.9-51.3 120.9 0 92.5 75.3 167.8 167.8 167.8S423.8 348.5 423.8 256c0-87.1-66.7-159-151.8-167.1v62.6c0 8.9-7.2 16.1-16.1 16.1s-16.1-7.2-16.1-16.1V72.1c0-8.9 7.2-16.1 16.1-16.1 110.3 0 200 89.7 200 200S366.3 456 256 456z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M175.9 161.9l99.5 71.5c13.5 9.7 16.7 28.5 7 42s-28.5 16.7-42 7c-2.8-2-5.2-4.4-7-7l-71.5-99.5c-3.2-4.5-2.2-10.8 2.3-14 3.6-2.6 8.3-2.4 11.7 0z\"}}]})(props);\n};\nexport function IoIosToday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388 32H124c-33.1 0-60 26.9-60 60v328c0 33.1 26.9 60 60 60h264c33.1 0 60-26.9 60-60V92c0-33.1-26.9-60-60-60zm32 388c0 17.6-14.4 32-32 32H124c-17.6 0-32-14.4-32-32V92c0-17.6 14.4-32 32-32h264c17.6 0 32 14.4 32 32v328z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M360 176H152c-13.2 0-24 10.8-24 24v192c0 13.2 10.8 24 24 24h208c13.2 0 24-10.8 24-24V200c0-13.2-10.8-24-24-24zM142 124h100c7.7 0 14-6.3 14-14s-6.3-14-14-14H142c-7.7 0-14 6.3-14 14s6.3 14 14 14z\"}}]})(props);\n};\nexport function IoIosTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.7 455.9l-50-48c-5.6-5.4-14.4-5.2-19.8.4-5.4 5.6-5.2 14.4.4 19.8l6.1 5.9H181.5l6.1-5.9c5.6-5.4 5.8-14.2.4-19.8-5.4-5.6-14.2-5.8-19.8-.4l-50 48c-5.6 5.4-5.8 14.2-.4 19.8 2.7 2.9 6.4 4.3 10.1 4.3 3.5 0 7-1.3 9.7-3.9l14.7-14.1h207.2l14.7 14.1c2.7 2.6 6.2 3.9 9.7 3.9 3.7 0 7.4-1.4 10.1-4.3 5.5-5.6 5.3-14.4-.3-19.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M337 48h-17c0-8.8-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16h-15c-35.3 0-65 27.7-65 63v236c0 35.3 144 65 144 65s144-29.7 144-65V111c0-35.3-27.7-63-63-63zm-81 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm96-160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16v-64c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v64z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"304\",\"r\":\"30.5\"}}]})(props);\n};\nexport function IoIosTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.4 168.5c7.5 0 13.6-6.1 13.6-13.6V61.6c0-7.5-6.1-13.6-13.6-13.6h-93.3c-7.5 0-13.6 6.1-13.6 13.6s6.1 13.6 13.6 13.6H417l-75 75.4c-25.7-16.3-55.4-24.8-86-24.8-30.7 0-60.3 8.6-86 24.8l-19-19.1 28.2-28.2c5.3-5.3 5.3-13.9 0-19.2-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4l-28.1 28.1-36.8-37H155c7.5 0 13.6-6.1 13.6-13.6S162.5 48 155 48H61.6C54.1 48 48 54.1 48 61.6v93.3c0 7.5 6.1 13.6 13.6 13.6s13.6-6.1 13.6-13.6V95.1l36.9 36.7-30 30c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4l30.1-30.1 16.5 16.4c-33.9 30.6-53.3 73.9-53.3 119.8 0 43.1 16.8 83.6 47.3 114.1 30.5 30.5 71 47.3 114.1 47.3 45.9 0 89.2-19.4 119.9-53.3l16.4 16.4-29.3 29.2c-5.3 5.3-5.3 13.9 0 19.2 2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4l29.3-29.3 29.3 29.3c2.6 2.6 6 4 9.6 4 3.6 0 7.1-1.4 9.6-4 5.3-5.3 5.3-13.9 0-19.2l-29.3-29.3 29.3-29.3c5.3-5.3 5.3-13.9 0-19.2-2.6-2.6-6-4-9.6-4-3.6 0-7.1 1.4-9.6 4l-29.3 29.3-19-19c16.3-25.8 24.9-55.4 24.9-86.1 0-45.9-19.3-89.2-53.3-119.8l72.7-72.2v59.9c0 7.3 6.1 13.4 13.6 13.4zm-60.3 118.6c0 35.8-14 69.5-39.3 94.8-25.3 25.3-59 39.3-94.8 39.3s-69.5-14-94.8-39.3c-25.3-25.3-39.3-59-39.3-94.8s14-69.5 39.3-94.8c25.3-25.3 59-39.3 94.8-39.3s69.5 14 94.8 39.3c25.4 25.3 39.3 59 39.3 94.8z\"}}]})(props);\n};\nexport function IoIosTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M133.1 128l23.6 290.7c0 16.2 13.1 29.3 29.3 29.3h141c16.2 0 29.3-13.1 29.3-29.3L379.6 128H133.1zm61.6 265L188 160h18.5l6.9 233h-18.7zm70.3 0h-18V160h18v233zm52.3 0h-18.6l6.8-233H324l-6.7 233zM364 92h-36l-26.3-23c-3.7-3.2-8.4-5-13.2-5h-64.8c-4.9 0-9.7 1.8-13.4 5L184 92h-36c-17.6 0-30 8.4-30 26h276c0-17.6-12.4-26-30-26z\"}}]})(props);\n};\nexport function IoIosTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 369.2V251.1c0-8.1-6.8-14.8-15.1-14.8s-15.1 6.6-15.1 14.8v81.7L300.5 181c-2.8-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3l-85.9 84.1L57.5 132.3c-2.9-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3-2.8 2.7-4.2 6.2-4.2 10.2 0 5.4 2.3 8.8 4.2 10.7l146.3 143.2c2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3l85.9-84.1 138 142.2H344c-8.3 0-15.1 6.6-15.1 14.8 0 8.1 6.8 14.8 15.1 14.8h120.8c8.4-.1 15.2-6.7 15.2-14.9z\"}}]})(props);\n};\nexport function IoIosTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.9 128H344.1c-8.3 0-15.1 6.6-15.1 14.8s6.8 14.8 15.1 14.8h83.7l-138 142.2-85.9-84.1c-2.9-2.8-6.6-4.3-10.7-4.3-4 0-7.8 1.5-10.7 4.3L36.2 358.8c-1.9 1.9-4.2 5.2-4.2 10.7 0 4.1 1.4 7.5 4.2 10.2 2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3L193.2 247l85.9 84.1c2.9 2.8 6.6 4.3 10.7 4.3 4 0 7.8-1.5 10.7-4.3l149.4-151.9v81.7c0 8.1 6.8 14.8 15.1 14.8s15.1-6.6 15.1-14.8V142.8c-.1-8.2-6.9-14.8-15.2-14.8z\"}}]})(props);\n};\nexport function IoIosTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450 100h-66V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v20H62c-7.7 0-14 6.3-14 14 0 41.3 7.8 66 22.6 90.4 13.6 22.4 32.9 36.2 56.3 40.3 2.8.5 5.1 2.3 6.2 4.9 6.2 15.4 20.2 34.8 51.1 52.2 20.2 11.4 36.9 18.3 51.7 21.6 3.6.8 6.2 4.1 6.2 7.8V412c0 4.4-3.6 8-8 8h-65.6c-7.5 0-14 5.8-14.4 13.3-.4 8 6 14.7 14 14.7h175.6c7.5 0 14-5.8 14.4-13.3.4-8-6-14.7-14-14.7h-66c-4.4 0-8-3.6-8-8v-80.7c0-3.7 2.6-7 6.2-7.8 14.7-3.3 31.5-10.3 51.7-21.6 30.9-17.4 44.9-36.8 51.1-52.2 1.1-2.6 3.4-4.5 6.2-4.9 23.4-4.1 42.7-17.9 56.3-40.3C456.2 180 464 155.3 464 114c0-7.7-6.3-14-14-14zM128 210.6c0 2.8-2.8 4.8-5.4 3.8-12.8-4.9-23.2-14.7-30.6-28.9-5.8-11-12.6-21.4-15.1-48.8-.4-4.7 3.3-8.7 8-8.7H120c4.4 0 8 3.6 8 8v74.6zm292-25.1c-7.4 14.2-17.8 24-30.6 28.9-2.6 1-5.4-1-5.4-3.8V136c0-4.4 3.6-8 8-8h35.1c4.7 0 8.4 4 8 8.7-2.5 27.4-9.4 37.8-15.1 48.8z\"}}]})(props);\n};\nexport function IoIosTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.7 78H60.3C34.8 78 14 98.8 14 124.3v215.5c0 25.5 20.8 46.3 46.3 46.3h391.5c25.5 0 46.3-20.8 46.3-46.3V124.3C498 98.8 477.2 78 451.7 78zM470 339.7c0 10.1-8.2 18.3-18.3 18.3H60.3c-10.1 0-18.3-8.2-18.3-18.3V124.3c0-10.1 8.2-18.3 18.3-18.3h391.5c10.1 0 18.3 8.2 18.3 18.3v215.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M436 128H76c-6.6 0-12 5.4-12 12v184c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V140c0-6.6-5.4-12-12-12zM370 406H142c-7.7 0-14 6.3-14 14s6.3 14 14 14h228c7.7 0 14-6.3 14-14s-6.3-14-14-14z\"}}]})(props);\n};\nexport function IoIosUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.1 137.9c-34.9-41.6-81.3-67.3-131.2-72.6-2-9.9-10.2-17.3-19.9-17.3s-17.9 7.3-19.9 17.2c-50.6 5.2-97.4 30.3-132.1 71.2-35.8 42.2-55.6 85.5-55.8 143.7-.1.5-.2 1.2-.2 2.1.1 3.2 2.7 5.8 5.8 5.8h3.1c2.6 0 4.9-1.8 5.6-4.4 2.7-10.1 8.4-19.1 16-25.5 7.7-6.5 16.9-9.9 26.6-9.9 9.6 0 18.8 3.4 26.5 10 7.6 6.4 13.2 15.4 16 25.5.7 2.6 3 4.4 5.6 4.4h4.8c2.6 0 4.9-1.8 5.6-4.4 5.7-20.9 23.3-35.4 42.8-35.4 14.8 0 28.8 8.4 36.9 21.9V418c0 9.9-8 18-17.7 18s-17.6-8.1-17.6-18c0-7.7-6.1-14-13.7-14-7.5 0-13.6 6.3-13.6 14 0 25.4 20.2 46 44.9 46 24.8 0 44.9-20.6 44.9-46V270.8c8.2-14.2 21.9-22.6 36.9-22.6 9.6 0 18.7 3.4 26.4 9.9 7.5 6.4 13.1 15.4 15.9 25.5.7 2.6 3 4.4 5.6 4.4h4.8c2.6 0 4.9-1.8 5.6-4.4 2.7-10.1 8.4-19.2 16-25.6 7.7-6.5 16.9-10 26.6-10 9.7 0 19 3.4 26.7 10 7.6 6.4 13.2 15.5 15.9 25.6.7 2.6 3 4.4 5.6 4.4h1.5c1.6 0 3.1-.6 4.2-1.8s1.7-2.7 1.7-4.3c-.8-57.9-21-101.3-56.8-144z\"}}]})(props);\n};\nexport function IoIosUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.9 394.9c0-19.6 4.2-97.1-56.8-158.7-40.4-40.7-91.9-61.7-163.4-65.5-2.1-.1-3.8-1.9-3.8-4V84c0-3.2-3.5-5.1-6.2-3.4L33.8 222.8c-2.4 1.6-2.4 5.1 0 6.7l215.9 142.2c2.7 1.8 6.2-.1 6.2-3.4v-81.6c0-2.3 1.9-4.1 4.2-4 44.1 1.7 69.5 10.9 97.1 23.2 36.1 16.2 72.9 50.9 94.5 83.5 13.1 19.9 19.2 33.9 21.4 39.7.7 1.7 2.3 2.8 4.1 2.8h2.9c-.1-11.7-.2-26.7-.2-37z\"}}]})(props);\n};\nexport function IoIosUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 192H188v-48c0-18.1 7.1-35.1 20-48s29.9-20 48-20 35.1 7.1 48 20 20 29.9 20 48c0 7.7 6.3 14 14 14s14-6.3 14-14c0-53.2-43.9-96.7-97.3-96-52.7.7-94.7 44.5-94.7 97.3V192h-24c-22 0-40 18-40 40v192c0 22 18 40 40 40h240c22 0 40-18 40-40V232c0-22-18-40-40-40zM270 316.8v68.8c0 7.5-5.8 14-13.3 14.4-8 .4-14.7-6-14.7-14v-69.2c-11.5-5.6-19.1-17.8-17.9-31.7 1.4-15.5 14.1-27.9 29.6-29 18.7-1.3 34.3 13.5 34.3 31.9 0 12.7-7.3 23.6-18 28.8z\"}}]})(props);\n};\nexport function IoIosVideocam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.6 153.6c-3.3 0-6.5.9-9.3 2.7l-86.5 54.6c-2.5 1.6-4 4.3-4 7.2v76c0 2.9 1.5 5.6 4 7.2l86.5 54.6c2.8 1.7 6 2.7 9.3 2.7h20.8c4.8 0 8.6-3.8 8.6-8.5v-188c0-4.7-3.9-8.5-8.6-8.5h-20.8zM273.5 384h-190C55.2 384 32 360.8 32 332.6V179.4c0-28.3 23.2-51.4 51.4-51.4h190c28.3 0 51.4 23.2 51.4 51.4v153.1c.1 28.3-23 51.5-51.3 51.5z\"}}]})(props);\n};\nexport function IoIosVolumeHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.4 145.5c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L133.3 200H80.5c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.5zM447.5 256c0-59.3-23.2-114.8-65.4-156.5-4.7-4.7-12.3-4.6-17 .1-4.7 4.7-4.6 12.3.1 17 37.6 37.1 58.2 86.6 58.2 139.4 0 52.8-20.7 102.3-58.2 139.4-4.7 4.7-4.8 12.3-.1 17 2.3 2.4 5.4 3.6 8.5 3.6 3 0 6.1-1.2 8.4-3.5 42.3-41.6 65.5-97.2 65.5-156.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384.9 256c0-43.5-16.6-84.3-46.8-114.9-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 25.7 26.1 39.9 60.9 39.9 98.1 0 37.2-14.2 72-39.9 98.1-4.7 4.7-4.6 12.3.1 17 2.3 2.3 5.4 3.5 8.4 3.5 3.1 0 6.2-1.2 8.5-3.6 30.2-30.8 46.9-71.6 46.9-115.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M287.5 182.5c-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 14.8 15 23 35.1 23 56.6 0 21.4-8.2 41.5-23 56.6-4.7 4.7-4.6 12.3.1 17 2.3 2.3 5.4 3.5 8.4 3.5 3.1 0 6.2-1.2 8.5-3.6 19.3-19.6 29.9-45.6 29.9-73.4.1-27.9-10.5-54-29.8-73.6z\"}}]})(props);\n};\nexport function IoIosVolumeLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.9 145.6c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L196.8 200H144c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.4zM354.4 182.6c-4.6-4.7-12.1-4.8-16.8-.1-4.7 4.7-4.7 12.3-.1 17 14.7 15 22.8 35.1 22.8 56.6 0 21.4-8.1 41.5-22.8 56.6-4.6 4.7-4.6 12.3.1 17 2.3 2.3 5.3 3.5 8.3 3.5 3.1 0 6.1-1.2 8.5-3.6C373.5 310 384 284 384 256.2h-.2c0-28-10.3-54.1-29.4-73.6z\"}}]})(props);\n};\nexport function IoIosVolumeMute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.9 145.6c-2.2-1.1-4.6-1.6-6.9-1.6-3.6 0-7.1 1.2-10 3.5L244.8 200H192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h52.8l65.2 52.5c2.9 2.3 6.5 3.5 10 3.5 2.3 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V160c0-6.2-3.5-11.8-9.1-14.4z\"}}]})(props);\n};\nexport function IoIosVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M390.1 464c-4.9 0-9.7-2.5-12.3-7L149.7 69.3c-4-6.7-1.7-15.4 5.1-19.3 6.8-3.9 15.5-1.7 19.5 5.1l228.1 387.7c4 6.7 1.7 15.4-5.1 19.3-2.2 1.3-4.7 1.9-7.2 1.9zM133 200H80c-8.9 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16h53l65.4 52.5c2.9 2.3 6.5 3.5 10.1 3.5 2.4 0 4.7-.5 6.9-1.6 5.6-2.7 9.1-8.3 9.1-14.4V227.9L184 159.1 133 200zM448 256c0-59.3-23.3-114.9-65.5-156.5-4.7-4.7-12.3-4.6-17 .1-4.7 4.7-4.6 12.3.1 17C403.3 153.7 424 203.2 424 256c0 44.4-14.7 86.4-41.7 120.8l13 22C429.4 359.1 448 309 448 256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M385.2 256c0-43.5-16.7-84.3-46.9-114.9-4.7-4.7-12.3-4.8-17-.1-4.7 4.7-4.8 12.3-.1 17 25.8 26.1 40 60.9 40 98.1 0 21.6-4.8 42.5-13.9 61.2l14.2 24.1c15.4-25.4 23.7-54.7 23.7-85.4zM317.6 256c0-27.8-10.7-53.9-30-73.4-4.7-4.7-12.3-4.8-17-.1-.6.6-1.1 1.2-1.6 1.9l48.1 81.8c.3-3.4.5-6.8.5-10.2z\"}}]})(props);\n};\nexport function IoIosWalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.1 361.2l-67.8 48.9c-3.7 3.6-5.2 9.1-5.3 13.9-.1 4.8 1.2 8.8 4.7 12.5 3.6 3.9 8.8 6.2 13.6 6.2 4.5 0 12.5-4.9 16-8.4l69.7-51.6c3.6-3.5 5.7-8.4 5.7-13.5l9.1-52.5-45.7-46.7v91.2z\"}},{\"tag\":\"ellipse\",\"attr\":{\"transform\":\"rotate(-80.781 274.673 69.329)\",\"cx\":\"274.7\",\"cy\":\"69.3\",\"rx\":\"37.3\",\"ry\":\"37.3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M350.7 459.2l-15.2-117.4c-.5-3.5-1.9-6.8-4.2-9.5l-57-68.8V143.9c0-11.3-6.3-15.9-18.3-15.9h-37c-2.8 0-5.2 1-7.7 2.3l-68 31.7c-10 5.3-15.3 15.4-15.3 28.7V256c0 10.3 8.2 18.7 18.3 18.7 10.1 0 18.3-8.4 18.3-18.7v-58.2c0-3 1.7-5.8 4.4-7.1l32.2-16.4v75.3c0 4.2 1.6 8.2 4.6 11.2l92.4 94.4c1.2 1.2 2 2.8 2.2 4.5l14.2 104.7c1.3 9.3 9.1 15.7 18.1 15.7h2c9.9-1.5 17.4-10.7 16-20.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M378.4 232.4l-95-96.2v52.6l69.2 70.1c7.2 7.3 18.7 7.2 25.9-.1 3.5-3.6 5.5-7.5 5.5-12.2 0-4.8-2-10.5-5.6-14.2z\"}}]})(props);\n};\nexport function IoIosWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404 160H108c-33.1 0-60 26.9-60 60v168c0 33.1 26.9 60 60 60h296c33.1 0 60-26.9 60-60V220c0-33.1-26.9-60-60-60zM342.9 65L108 110.9c-18 4-44 22.1-44 44.1 0 0 15-19 49-19h287v-20.5c0-12.6-5-28.7-13.9-37.6-11.3-11.3-27.5-16.2-43.2-12.9z\"}}]})(props);\n};\nexport function IoIosWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M228.9 79.9L51.8 403.1C40.6 423.3 55.5 448 78.9 448h354.3c23.3 0 38.2-24.7 27.1-44.9L283.1 79.9c-11.7-21.2-42.5-21.2-54.2 0zM273.6 214L270 336h-28l-3.6-122h35.2zM256 402.4c-10.7 0-19.1-8.1-19.1-18.4s8.4-18.4 19.1-18.4 19.1 8.1 19.1 18.4-8.4 18.4-19.1 18.4z\"}}]})(props);\n};\nexport function IoIosWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.3 161.3c-15-23.9-36.3-43.3-61.4-56.1-1.9-.9-3.9-1.4-6-1.4-5 0-9.5 2.8-11.8 7.2-1.6 3.1-1.9 6.7-.8 10 1.1 3.3 3.4 6.1 6.6 7.7 20.9 10.7 38.6 26.8 51.1 46.7 12.8 20.4 19.6 44 19.6 68v40.5c0 17.2-3.3 33.4-9.9 48-6.3 14-15.4 26.3-27 36.6-23.2 20.5-55.1 31.9-89.9 31.9-34.4 0-43.6-5.2-52.4-10.2-8.1-4.6-17.3-9.8-37.7-11-31.7-2-56.9-12.4-77.2-31.8-2.5-2.4-5.7-3.7-9.1-3.7-3.6 0-7 1.5-9.5 4.1-2.4 2.5-3.7 5.7-3.7 9.1 0 3.6 1.5 7 4.1 9.5 25 23.9 55.7 36.7 93.8 39.1 14.4.9 19.4 3.7 26.4 7.7 11.3 6.4 24.1 13.6 65.4 13.6 41.6 0 80-13.9 108.1-39.2 14.2-12.8 25.3-28 33-45.2 8-18 12.1-37.6 12.1-58.5v-40.5c-.1-29.1-8.3-57.5-23.8-82.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M284 383c8.7 1.4 17.2 2.1 25.4 2.1 16 0 31.2-2.7 45-8 13.9-5.4 26.5-13.4 37.5-23.9 5.3-5 5.4-13.4.4-18.6-2.5-2.6-5.9-4.1-9.5-4.1-3.4 0-6.7 1.3-9.1 3.7-17.1 16.3-38.8 24.6-64.5 24.6-6.8 0-13.8-.6-21-1.8-.7-.1-1.4-.2-2.1-.2-6.5 0-12 4.6-13 11-.1.7-.2 1.4-.2 2.1 0 6.6 4.7 12 11.1 13.1zm2.1-21.1h.1-.3.2zM222.9 421.7c-39.9 0-72.8-13.4-102.7-40.3-29.1-26.2-45.8-60.7-45.8-94.5v-43.6c0-24.1 6.8-47.6 19.6-68 12.5-19.9 30.2-36 51.1-46.7 3.1-1.6 5.5-4.3 6.6-7.7 1.1-3.3.8-6.9-.8-10.1-2.3-4.4-6.8-7.2-11.8-7.2-2.1 0-4.1.5-6 1.4-25.1 12.8-46.4 32.2-61.4 56.1-15.5 24.6-23.7 53-23.7 82v43.6c0 41.2 19.9 82.8 54.5 114 34.6 31.2 74 47.1 120.4 47.1 7.3 0 13.2-5.9 13.2-13.2-.1-7-6-12.9-13.2-12.9z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348.4 115.1c.8-11.9 10.3-21.6 22.2-22.6 4.3-.4 8.4.4 12 2 2.6 1.1 5.1-1.6 3.9-4.1-2.7-5.7-6.6-10.9-11.5-15.1C366.6 68 355.9 64 344.8 64H167.2c-17.9 0-33.9 10.3-41.5 25.8-1.2 2.5 1.2 5.2 3.9 4.2 3.3-1.3 7-1.8 10.8-1.5 11.9 1 21.4 10.8 22.2 22.7.8 13.6-9.5 25-22.8 25.8-.9.1-1.8.7-2.1 1.5-.4 1.1-.1 2.3.8 3 8.1 6.2 18.1 9.7 28.7 9.7h177.6c10.9 0 21.2-3.6 29.4-10.2 1.7-1.3.7-4-1.4-4h-.1c-14 0-25.2-11.7-24.3-25.9zm-21.6-10.3c3.5 15.8-10.7 30-26.5 26.5-8.4-1.9-15.2-8.6-17-17-3.5-15.8 10.7-30 26.5-26.5 8.4 1.9 15.2 8.6 17 17z\"}}]}]})(props);\n};\nexport function IoIosWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z\"}}]})(props);\n};\nexport function IoIosWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96c-81.5 0-163 33.6-221.5 88.3-3.3 3-3.4 8.1-.3 11.4l26.7 27.9c3.1 3.3 8.3 3.4 11.6.3 23.3-21.6 49.9-38.8 79.3-51 33-13.8 68.1-20.7 104.3-20.7s71.3 7 104.3 20.7c29.4 12.3 56 29.4 79.3 51 3.3 3.1 8.5 3 11.6-.3l26.7-27.9c3.1-3.2 3-8.3-.3-11.4C419 129.6 337.5 96 256 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M113.2 277.5l28.6 28.3c3.1 3 8 3.2 11.2.3 28.3-25.1 64.6-38.9 102.9-38.9s74.6 13.7 102.9 38.9c3.2 2.9 8.1 2.7 11.2-.3l28.6-28.3c3.3-3.3 3.2-8.6-.3-11.7-37.5-33.9-87.6-54.6-142.5-54.6s-105 20.7-142.5 54.6c-3.3 3.1-3.4 8.4-.1 11.7zM256 324.2c-23.4 0-44.6 9.8-59.4 25.5-3 3.2-2.9 8.1.2 11.2l53.4 52.7c3.2 3.2 8.4 3.2 11.6 0l53.4-52.7c3.1-3.1 3.2-8 .2-11.2-14.8-15.6-36-25.5-59.4-25.5z\"}}]})(props);\n};\nexport function IoIosWine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328.9 51.2c-2-5.5-7-9.2-12.9-9.2H196c-6 0-10.9 3.7-13 9.2-9.3 25-31 87.1-31 124.8v4.8c0 19.2 0 45.4 28.4 74.5 6.5 6.7 14.3 12.9 22.5 19.5 19.1 15.3 38.8 31.1 38.8 50.2v115c0 1.1-.9 2-2 2h-57.1c-7.9 0-14.3 6.3-14.3 14s6.4 14 14.3 14h146.8c7.9 0 14.3-6.3 14.3-14s-6.4-14-14.3-14h-57.1c-1.1 0-2-.9-2-2V325c0-19.1 19.7-34.9 38.8-50.2 8.2-6.6 15.9-12.8 22.5-19.5C360 226.2 360 200 360 180.8V176c0-37.5-21.7-99.8-31.1-124.8zm-1.4 102.1c-.2.3-.7.7-1.6.7H186.1c-.8 0-1.3-.5-1.6-.7-.2-.3-.6-.8-.4-1.7 5.1-26.1 14.8-59.6 21.6-80.2.3-.8 1.1-1.4 1.9-1.4h96.8c.9 0 1.7.6 1.9 1.4 6.7 20.7 16.4 54.1 21.6 80.2.2.8-.2 1.4-.4 1.7z\"}}]})(props);\n};\nexport function IoIosWoman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M286 496c-6.1 0-11.8-2.3-16-6.6-3.2-3.3-7.1-9.1-7.1-18.6V351.4H249v119.4c0 9.5-4 15.4-7.4 18.7-4.3 4.2-10.1 6.5-16.3 6.5-6.2 0-11.9-2.3-16.3-6.5-3.4-3.3-7.4-9.1-7.4-18.7V351.4h-43.9l44.5-170.6h-6.8L171 271.2c-4 13.1-13.7 17.8-21.4 17.8-6.6 0-12.9-3.2-17-8.7-4.8-6.4-6.1-14.9-3.6-23.9l29-104.1c4.2-15.2 20.7-38.2 48.7-39.3H305.1c28.4 1.2 44.1 26 48.5 38.9l.1.4 29 104.3c2.4 9 1 17.6-3.9 24-4.1 5.4-10.4 8.6-16.9 8.6-7.7 0-17.3-4.8-21.3-18.1v-.2l-24.3-90.1h-7.7l45.5 170.6H309v119.4c0 9.5-3.9 15.3-7.1 18.6-4.2 4.3-9.8 6.6-15.9 6.6zM255.9 106.4c-24.2 0-43.9-20.3-43.9-45.2S231.7 16 255.9 16s43.9 20.3 43.9 45.2-19.7 45.2-43.9 45.2z\"}}]})(props);\n};\nexport function IoLogoAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 268.4V358c0 6.9 4.5 14 11.4 14H184v52c0 13.3 10.7 24 24 24s24-10.7 24-24v-52h49v52c0 7.5 3.4 14.2 8.8 18.6 3.9 3.4 9.1 5.4 14.7 5.4h.5c13.3 0 24-10.7 24-24v-52h27.6c7 0 11.4-7.1 11.4-13.9V192H144v76.4zM408 176c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24v-96c0-13.3-10.7-24-24-24zM104 176c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24s24-10.7 24-24v-96c0-13.3-10.7-24-24-24z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311.2 89.1l18.5-21.9c.4-.5-.2-1.6-1.3-2.5-1.1-.8-2.4-1-2.7-.4l-19.2 22.8c-13.6-5.4-30.2-8.8-50.6-8.8-20.5-.1-37.2 3.2-50.8 8.5l-19-22.4c-.4-.5-1.6-.4-2.7.4s-1.7 1.8-1.3 2.5l18.3 21.6c-48.2 20.9-55.4 72.2-56.4 87.2h223.6c-.9-15.1-8-65.7-56.4-87zm-104.4 49.8c-7.4 0-13.5-6-13.5-13.3 0-7.3 6-13.3 13.5-13.3 7.4 0 13.5 6 13.5 13.3 0 7.3-6 13.3-13.5 13.3zm98.4 0c-7.4 0-13.5-6-13.5-13.3 0-7.3 6-13.3 13.5-13.3 7.4 0 13.5 6 13.5 13.3 0 7.3-6.1 13.3-13.5 13.3z\"}}]}]})(props);\n};\nexport function IoLogoAngular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.573 256h84.846l-42.427-89.356z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M255.981 32L32 112l46.12 272L256 480l177.75-96L480 112 255.981 32zM344 352l-26.589-56H194.584L168 352h-40L256 72l128 280h-40z\"}}]})(props);\n};\nexport function IoLogoApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.6 153.9c-33.6 0-47.8 16.5-71.2 16.5-24 0-42.3-16.4-71.4-16.4-28.5 0-58.9 17.9-78.2 48.4-27.1 43-22.5 124 21.4 193 15.7 24.7 36.7 52.4 64.2 52.7h.5c23.9 0 31-16.1 63.9-16.3h.5c32.4 0 38.9 16.2 62.7 16.2h.5c27.5-.3 49.6-31 65.3-55.6 11.3-17.7 15.5-26.6 24.2-46.6-63.5-24.8-73.7-117.4-10.9-152.9-19.2-24.7-46.1-39-71.5-39z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M326.2 64c-20 1.4-43.3 14.5-57 31.6-12.4 15.5-22.6 38.5-18.6 60.8h1.6c21.3 0 43.1-13.2 55.8-30.1 12.3-16.1 21.6-38.9 18.2-62.3z\"}}]})(props);\n};\nexport function IoLogoBitbucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M452.9 64.2c-.7-.1-1.5-.2-2.2-.2H61.5c-7.4-.1-13.4 5.9-13.5 13.5 0 .8 0 1.6.2 2.4l56.6 352.5c.7 4.3 2.9 8.2 6.1 11.1 3.2 2.9 7.4 4.5 11.7 4.5H394c6.6.1 12.3-4.8 13.3-11.5L441 224H316l-16 96h-88l-22.3-126.9h256.2l18-113.1c1.1-7.5-3.8-14.6-11-15.8z\"}}]})(props);\n};\nexport function IoLogoBitcoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M410.5 279.2c-5-11.5-12.7-21.6-28.1-30.1-8.2-4.5-16.1-7.8-25.4-10 5.4-2.5 10-5.4 16.3-11 7.5-6.6 13.1-15.7 15.6-23.3 2.6-7.5 4.1-18 3.5-28.2-1.1-16.8-4.4-33.1-13.2-44.8-8.8-11.7-21.2-20.7-37.6-27-12.6-4.8-25.5-7.8-45.5-8.9V32h-40v64h-32V32h-41v64H96v48h27.9c8.7 0 14.6.8 17.6 2.3 3.1 1.5 5.3 3.5 6.5 6 1.3 2.5 1.9 8.4 1.9 17.5V343c0 9-.6 14.8-1.9 17.4-1.3 2.6-2 4.9-5.1 6.3-3.1 1.4-3.2 1.3-11.8 1.3h-26.4L96 416h87v64h41v-64h32v64h40v-64.4c26-1.3 44.5-4.7 59.4-10.3 19.3-7.2 34.1-17.7 44.7-31.5 10.6-13.8 14.9-34.9 15.8-51.2.7-14.5-.9-33.2-5.4-43.4zM224 150h32v74h-32v-74zm0 212v-90h32v90h-32zm72-208.1c6 2.5 9.9 7.5 13.8 12.7 4.3 5.7 6.5 13.3 6.5 21.4 0 7.8-2.9 14.5-7.5 20.5-3.8 4.9-6.8 8.3-12.8 11.1v-65.7zm28.8 186.7c-7.8 6.9-12.3 10.1-22.1 13.8-2 .8-4.7 1.4-6.7 1.9v-82.8c5 .8 7.6 1.8 11.3 3.4 7.8 3.3 15.2 6.9 19.8 13.2 4.6 6.3 8 15.6 8 24.7 0 10.9-2.8 19.2-10.3 25.8z\"}}]})(props);\n};\nexport function IoLogoBuffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M70.7 164.5l169.2 81.7c4.4 2.1 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c8.9-4.3 8.9-11.3 0-15.6L272.1 67.2c-4.4-2.1-10.3-3.2-16.1-3.2s-11.7 1.1-16.1 3.2L70.7 148.9c-8.9 4.3-8.9 11.3 0 15.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M441.3 248.2s-30.9-14.9-35-16.9-5.2-1.9-9.5.1S272 291.6 272 291.6c-4.5 2.1-10.3 3.2-16.1 3.2s-11.7-1.1-16.1-3.2c0 0-117.3-56.6-122.8-59.3-6-2.9-7.7-2.9-13.1-.3l-33.4 16.1c-8.9 4.3-8.9 11.3 0 15.6l169.2 81.7c4.4 2.1 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c9.1-4.2 9.1-11.2.2-15.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M441.3 347.5s-30.9-14.9-35-16.9-5.2-1.9-9.5.1S272.1 391 272.1 391c-4.5 2.1-10.3 3.2-16.1 3.2s-11.7-1.1-16.1-3.2c0 0-117.3-56.6-122.8-59.3-6-2.9-7.7-2.9-13.1-.3l-33.4 16.1c-8.9 4.3-8.9 11.3 0 15.6l169.2 81.7c4.4 2.2 10.3 3.2 16.1 3.2s11.7-1.1 16.1-3.2l169.2-81.7c9-4.3 9-11.3.1-15.6z\"}}]})(props);\n};\nexport function IoLogoChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M188.8 255.925c0 36.946 30.243 67.178 67.2 67.178s67.199-30.231 67.199-67.178c0-36.945-30.242-67.179-67.199-67.179s-67.2 30.234-67.2 67.179z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M476.752 217.795c-.009.005-.016.038-.024.042-1.701-9.877-4.04-19.838-6.989-28.838h-.107c2.983 9 5.352 19 7.072 29h-.002c-1.719-10-4.088-20-7.07-29h-155.39c19.044 17 31.358 40.175 31.358 67.052 0 16.796-4.484 31.284-12.314 44.724L231.044 478.452s-.009.264-.014.264l-.01.284h.015l-.005-.262c8.203.92 16.531 1.262 24.97 1.262 6.842 0 13.609-.393 20.299-1.002a223.86 223.86 0 0 0 29.777-4.733C405.68 451.525 480 362.404 480 255.941c0-12.999-1.121-25.753-3.248-38.146z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 345.496c-33.601 0-61.601-17.91-77.285-44.785L76.006 123.047l-.137-.236a223.516 223.516 0 0 0-25.903 45.123C38.407 194.945 32 224.686 32 255.925c0 62.695 25.784 119.36 67.316 160.009 29.342 28.719 66.545 49.433 108.088 58.619l.029-.051 77.683-134.604c-8.959 3.358-19.031 5.598-29.116 5.598z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M91.292 104.575l77.35 133.25C176.483 197.513 212.315 166 256 166h205.172c-6.921-15-15.594-30.324-25.779-43.938.039.021.078.053.117.074C445.644 135.712 454.278 151 461.172 166h.172c-6.884-15-15.514-30.38-25.668-43.99-.115-.06-.229-.168-.342-.257C394.475 67.267 329.359 32 256 32c-26.372 0-51.673 4.569-75.172 12.936-34.615 12.327-65.303 32.917-89.687 59.406l.142.243.009-.01z\"}}]})(props);\n};\nexport function IoLogoClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96v320h448V96H32zm406 159.8c0 23.4-1.4 41.2-3.3 70.2s-16.8 49.4-51.7 52.6c-34.9 3.2-83.8 3.5-127 3.4-42.9.1-92-.1-127-3.4-34.9-3.2-49.7-23.6-51.7-52.6S74 279.2 74 255.8c0-23.4.1-38.6 3.3-70.2s20.1-49.2 51.7-52.4 86-3.2 127-3.2 95.4 0 127 3.2c31.6 3.2 48.5 20.9 51.7 52.4 3.2 31.6 3.3 46.9 3.3 70.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M357.5 280.4v.7c0 16.3-10.1 25.9-23.6 25.9-13.5 0-22.6-10.8-23.9-25.9 0 0-1.2-7.9-1.2-23.9s1.4-26 1.4-26c2.4-17 10.7-25.9 24.2-25.9 13.4 0 24.1 11.6 24.1 29.2v.5h45.1c0-21.9-5.5-41.6-16.6-54-11-12.4-27.5-18.6-49.3-18.6-10.9 0-20.9 1.4-30 4.3-9.1 2.9-17 7.9-23.6 15.1-6.6 7.2-11.7 16.8-15.4 28.9-3.6 12.1-5.5 27.3-5.5 45.7 0 18 1.5 33 4.4 45.1 3 12.1 7.3 21.7 13.1 28.9 5.8 7.2 13.1 12.2 21.8 15 8.8 2.8 19.1 4.2 30.9 4.2 25 0 43-6.4 53.8-18.7 10.8-12.3 16.2-30.3 16.2-53.9h-46.1c.2 0 .2 2.5.2 3.4zM202.6 280.4v.7c0 16.3-10.1 25.9-23.6 25.9-13.5 0-22.6-10.8-23.9-25.9 0 0-1.2-7.9-1.2-23.9s1.4-26 1.4-26c2.4-17 10.7-25.9 24.2-25.9 13.4 0 24.1 11.6 24.1 29.2v.5h45.1c0-21.9-5.5-41.6-16.6-54-11-12.4-27.5-18.6-49.3-18.6-10.9 0-20.9 1.4-30 4.3-9.1 2.9-17 7.9-23.6 15.1-6.6 7.2-11.7 16.8-15.4 28.9-3.6 12.1-5.5 27.3-5.5 45.7 0 18 1.5 33 4.4 45.1 3 12.1 7.3 21.7 13.1 28.9 5.8 7.2 13.1 12.2 21.8 15 8.8 2.8 19.1 4.2 30.9 4.2 25 0 43-6.4 53.8-18.7 10.8-12.3 16.2-30.3 16.2-53.9h-46.1c.2 0 .2 2.5.2 3.4z\"}}]})(props);\n};\nexport function IoLogoCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M241.239 303.936c-15.322-10.357-30.742-20.569-46.062-30.93-2.03-1.373-3.43-1.472-5.502-.029l-38.871 26.154C181.966 319.905 244 361.317 244 361.317v-53.786c-.012-1.224-1.553-2.78-2.761-3.595zM195.092 240.666c15.454-10.16 30.851-20.409 46.109-30.86 1.486-1.018 2.775-3.509 2.799-5.334v-51.706s-62.033 41.124-93.262 61.942c13.7 9.159 26.671 17.913 39.787 26.443 1.02.662 3.396.284 4.567-.485zM269.838 209.354a4521.517 4521.517 0 0 0 47.627 31.815c.916.604 2.92.602 3.839 0l39.751-26.467L268 152.484v53.35c.01 1.201.805 2.821 1.838 3.52zM258.109 230.369c-1.21-.802-3.611-.528-4.743.168-4.817 2.962-9.463 6.203-14.164 9.355-8.248 5.53-25.356 17.023-25.356 17.023l38.842 25.865c1.748 1.157 4.436 1.22 6.26.111l39.014-25.993c.001 0-34.079-22.701-39.853-26.529zM141 237.116v39.609l29.622-19.838z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.288 32 32 132.288 32 256s100.288 224 224 224 224-100.288 224-224S379.712 32 256 32zm139 265.006c0 5.785-2.652 9.868-7.511 13.094a38019.909 38019.909 0 0 0-123.286 82.188c-5.854 3.918-11.174 3.754-16.984-.137-40.783-27.314-81.719-54.546-122.625-81.676-5.11-3.389-7.594-7.557-7.594-13.73v-79.729c0-6.141 2.521-10.332 7.624-13.716 40.906-27.13 81.939-54.363 122.724-81.676 5.818-3.896 11.094-4.007 16.938-.095a41090.004 41090.004 0 0 0 123.261 82.195c4.678 3.106 7.453 6.943 7.453 12.66v80.622z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M316.247 273.234a3826.352 3826.352 0 0 1-45.386 30.332c-2.412 1.588-2.888 3.318-2.861 6.189v51.346l93.039-62.004-38.527-25.882c-2.345-1.604-3.93-1.567-6.265.019zM370 276.676V237.06l-29.59 19.873z\"}}]})(props);\n};\nexport function IoLogoCss3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.282 339.488zM64 32l34.946 403.219L255.767 480l157.259-44.85L448 32H64zm290.676 334.898l-98.607 28.125-98.458-28.248L150.864 289h48.253l3.433 39.562 53.586 15.163.132.273h.034l53.467-14.852L315.381 265H203l-4-50h120.646l4.396-51H140l-4-49h240.58l-21.904 251.898z\"}}]})(props);\n};\nexport function IoLogoDesignernews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.4 145L227 96l63.6 102.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M329 96v163h-36.4l-63.2-98.6 1.7 98.6H191V152l-37.3-29.3c1 1.2 2 2.4 2.9 3.7 10 13.9 15 30.5 15 50.5 0 49.2-30.6 82.1-76.9 82.1H32v.4L231.6 416H480V214.1L329 96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M129.9 178.1c0-29-14.2-45.1-39.7-45.1H71v89h19c26 0 39.9-15.4 39.9-43.9z\"}}]})(props);\n};\nexport function IoLogoDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150 64 64 150 64 256c0 106.1 86 192 192 192s192-85.9 192-192c0-106-86-192-192-192zm121.9 88.5c21.6 25.4 35.3 57.6 37.7 92.9-34.6-1.8-76-1.8-109.2 1.3-4.2-10.6-8.5-21-13.2-31 38.3-16.6 67.8-38.4 84.7-63.2zM256 96c38.8 0 74.4 13.8 102.1 36.8-17.4 22-44.7 41.1-78.7 55.6-18.6-34.4-40-64-62.8-87.3 12.7-3.2 25.8-5.1 39.4-5.1zm-72.4 17.5c23.1 23 44.8 52.3 63.8 86.6-36.1 11-77.5 17.3-121.7 17.3-8.4 0-16.6-.3-24.7-.8 11.5-45.1 42-82.5 82.6-103.1zM96.3 248.4c9.1.4 18.3.6 27.6.5 50.4-.6 97.3-8.5 137.6-21.4 3.8 7.9 7.4 16 10.8 24.3-5.5 1.3-10.4 2.7-14.3 4.3-55.1 23.1-98.5 60.4-122 105.5-24.8-28.2-40-65.1-40-105.6 0-2.6.1-5.1.3-7.6zM256 416c-37 0-71-12.6-98.1-33.7 21.3-42.2 59.3-77.1 107.2-98.8 4.5-2.1 10.5-3.8 17.4-5.3 5.7 15.8 10.8 32.2 15.3 49.2 6.9 26.5 11.8 52.7 14.8 78.1C295 412.2 276 416 256 416zm86.5-25.5c-3-25.7-7.9-52.1-14.9-78.9-3.4-13-7.3-25.6-11.5-37.9 31.4-2.6 69-2.2 98.9 0-5.4 49.1-33 91.3-72.5 116.8z\"}}]})(props);\n};\nexport function IoLogoDropbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177 77L64 150.9l78.1 62.7L256 143.1zM64 276.3l113 73.9 79-66.1-113.9-70.5zM256 284.1l79 66.1 113-73.9-78.1-62.7zM448 150.9L335 77l-79 66.1 113.9 70.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256.2 298.3l-79.8 66-34.4-22.2V367l114 68 114-68v-24.9l-34.2 22.2z\"}}]})(props);\n};\nexport function IoLogoEuro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234 272v-48h131.094l7.149-48H234v-1.83c0-35.92 14.975-58.086 79.25-58.086 26.264 0 55.867 2.498 93.189 8.742L416 59.866C377.988 51.123 345.306 48 310.057 48 195.326 48 146 89.225 146 165.43V176H96v48h50v48H96v48h50v26.57C146 422.774 195.297 464 310.027 464c35.25 0 67.848-3.123 105.859-11.866l-9.619-64.96c-37.322 6.244-66.781 8.742-93.045 8.742-64.276 0-79.223-18.739-79.223-63.086V320h116.795l7.148-48H234z\"}}]})(props);\n};\nexport function IoLogoFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.8 64H85.2C73.5 64 64 73.5 64 85.2v341.6c0 11.7 9.5 21.2 21.2 21.2H256V296h-45.9v-56H256v-41.4c0-49.6 34.4-76.6 78.7-76.6 21.2 0 44 1.6 49.3 2.3v51.8h-35.3c-24.1 0-28.7 11.4-28.7 28.2V240h57.4l-7.5 56H320v152h106.8c11.7 0 21.2-9.5 21.2-21.2V85.2c0-11.7-9.5-21.2-21.2-21.2z\"}}]})(props);\n};\nexport function IoLogoFlickr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 64H160c-52.8 0-96 43.2-96 96v192c0 52.8 43.2 96 96 96h192c52.8 0 96-43.2 96-96V160c0-52.8-43.2-96-96-96zM184 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"}}]})(props);\n};\nexport function IoLogoFoursquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376.764 32H138.541C105.666 32 96 56.798 96 72.414v379.64c0 17.591 9.425 24.117 14.718 26.267 5.299 2.155 19.916 3.971 28.673-6.168 0 0 112.469-130.895 114.4-132.834 2.921-2.93 2.921-2.93 5.844-2.93h72.767c30.574 0 35.49-21.869 38.684-34.752 2.659-10.789 32.489-163.962 42.452-212.559C421.143 51.993 411.745 32 376.764 32zm-5.678 269.637c2.659-10.789 32.489-163.962 42.452-212.559m-50.846 7.592l-9.999 51.734c-1.195 5.65-8.287 11.595-14.863 11.595h-95.917C231.473 160 224 166.138 224 176.602v13.448c0 10.473 7.519 17.894 17.965 17.894h81.848c7.374 0 14.61 8.109 13.016 16.005-1.602 7.908-9.086 46.569-9.984 50.89-.902 4.328-5.845 11.725-14.611 11.725h-64.269c-11.705 0-15.244 1.533-23.074 11.293-7.837 9.77-78.256 94.592-78.256 94.592-.713.822-1.41.584-1.41-.312V95.896c0-6.684 5.793-14.523 14.479-14.523h191.173c7.035-.001 13.611 6.631 11.815 15.297z\"}}]})(props);\n};\nexport function IoLogoFreebsdDevil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.6 115c-22.5-43.7-58-51-58-51s15.5 32 16 51c.4 16.1-5.5 28-27.2 33.5s-30.8-2-47.8-17.5-41.6-26.5-72.6-28c-40-2-77 9-77 9-20-25 20-80 20-80-74.5 29.5-93.7 83.3-96 113.7-1.9 24.1 8.5 40.8 8.5 40.8s-.5 27.8-5 42c-3.1 9.8-16.9 25-26 34.5-12.2 12.7-12.5 38.5 0 57s44 27.5 67 39.5 31.5 21 31.5 21 1 8.3.5 15.3-3.2 14-9 18.2c-5.5 3.9-15.5.5-20.5-2s-5-6.2-10.5-8-7.3-4-6.5-11 2-9-3.5-18.5-18.5-9.5-29.5-8-17.3 6.8-17.3 6.8l-16.3-10s8.5-15.6 5.2-35.6c-7.3-43.8-50-62.8-50-62.8L89 309.3s1.1-2.6 6.4-6.4 8.1-3.6 8.1-3.6 6.6 7.6 9.1 25.3c2.5 18-6.7 27.2-6.7 27.2l-28.3-18 1-14.5L39.8 309 56 345.7l15-4 24 22.7s-15.7 11.7-33 11.7c-11 0-22-6-22-6s-1.4-1-.8-5.5c.7-5 6.8-12.5 6.8-12.5H0s27.3 38.7 65 38.7c31 0 44.2-12.5 44.2-12.5L128 397s3 5.5 0 7-7 3.5-9 15 18 29 18 29c21.8 17.8 7 32 7 32h272c-9-13-22.5-18-32-32 0 0-44.8-58.4-1.8-90.4 57.4-42.7 42.8-69.4 41.2-101.4 0 0 31.8-6.6 59.3-33.6s38.9-70.8 19.9-107.6zM195 203c-16.9 4.5-22.5 35.5-22.5 35.5 1.5-63 57.5-93 65-89s-6.5 39-21 64c0 0-8-14.1-21.5-10.5zm37 15s18-56 37.5-59.5 41.5 21 41.5 62-26 65.4-42.8 69.2c-16.5 3.8-23 2-23 2s27.5-21.6 23.5-56.8c-2.8-24.7-31.4-24.2-36.7-16.9z\"}}]})(props);\n};\nexport function IoLogoGameControllerA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.3 146H142.7C81.5 146 32 191.5 32 255.4c0 64 49.5 110.6 110.7 110.6h226.5c61.2 0 110.7-46.6 110.7-110.6.1-63.9-49.4-109.4-110.6-109.4zM200 266.7c0 2.7-2.4 5.3-5.2 5.3H160v35.1c0 2.8-3.1 4.9-5.8 4.9h-21.4c-2.6 0-4.8-1.9-4.8-4.5V272H92.9c-2.8 0-4.9-3.1-4.9-5.8v-21.4c0-2.6 1.9-4.8 4.5-4.8H128v-34.8c0-2.8 1.9-5.2 4.6-5.2h22.1c2.7 0 5.3 2.4 5.3 5.2V240h34.8c2.8 0 5.2 1.9 5.2 4.6v22.1zm119.8 8.8c-10.7 0-19.5-8.6-19.5-19.2s8.7-19.2 19.5-19.2 19.5 8.6 19.5 19.2-8.8 19.2-19.5 19.2zm42.5 41.8c-10.7 0-19.5-8.5-19.5-19.1 0-10.6 8.7-19.2 19.5-19.2s19.5 8.5 19.5 19.2c0 10.6-8.7 19.1-19.5 19.1zm0-83.7c-10.7 0-19.5-8.6-19.5-19.1 0-10.6 8.7-19.2 19.5-19.2s19.5 8.6 19.5 19.2c0 10.5-8.7 19.1-19.5 19.1zm42.6 41.9c-10.7 0-19.4-8.6-19.4-19.2s8.7-19.2 19.4-19.2 19.5 8.6 19.5 19.2c-.1 10.6-8.8 19.2-19.5 19.2z\"}}]})(props);\n};\nexport function IoLogoGameControllerB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.1 204.6c-10.7 0-19.3 8.7-19.3 19.4s8.7 19.4 19.3 19.4c10.6 0 19.3-8.7 19.3-19.4s-8.6-19.4-19.3-19.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M466.3 248.9c-21.2-88.5-43.6-135.5-88.5-148.8-9.8-2.9-18.1-4-25.7-4-27.6 0-46.9 14.7-96.1 14.7-49.2 0-68.5-14.7-96.1-14.7-7.7 0-16 1.1-25.7 4-44.9 13.3-67.3 60.4-88.5 148.8-21.2 88.5-17.3 152.4 7.7 164.3 4.1 1.9 8.2 2.8 12.5 2.8 21.7 0 45.1-23.8 67.7-52 25.7-32.1 32.1-33 110.3-33h24.3c78.1 0 84.6.8 110.3 33 22.5 28.2 46 52 67.7 52 4.2 0 8.4-.9 12.5-2.8 24.9-12 28.7-75.9 7.6-164.3zm-331.1 14.7c-21.6 0-39.2-17.8-39.2-39.6s17.6-39.6 39.2-39.6c21.7 0 39.2 17.8 39.2 39.6.1 21.9-17.5 39.6-39.2 39.6zm172.9-19.5c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1zM352 288c-11.1 0-20.1-9-20.1-20 0-11.2 9-20.1 20.1-20.1 11.1 0 20.1 8.9 20.1 20.1 0 11-9 20-20.1 20zm0-87.8c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1zm43.9 43.9c-11.1 0-20.1-9-20.1-20.1 0-11.1 9-20.1 20.1-20.1 11.1 0 20.1 9 20.1 20.1 0 11.1-9 20.1-20.1 20.1z\"}}]})(props);\n};\nexport function IoLogoGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9 1.4.3 2.6.4 3.8.4 8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1-8.4 1.9-15.9 2.7-22.6 2.7-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1 10.5 0 20-3.4 25.6-6 2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8 0 0 1.6-.5 5-.5 8.1 0 26.4 3.1 56.6 24.1 17.9-5.1 37-7.6 56.1-7.7 19 .1 38.2 2.6 56.1 7.7 30.2-21 48.5-24.1 56.6-24.1 3.4 0 5 .5 5 .5 12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5 1.2 0 2.6-.1 4-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32z\"}}]})(props);\n};\nexport function IoLogoGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M457.6 224l-2.1-8.9H262V297h115.6c-12 57-67.7 87-113.2 87-33.1 0-68-13.9-91.1-36.3-23.7-23-38.8-56.9-38.8-91.8 0-34.5 15.5-69 38.1-91.7 22.5-22.6 56.6-35.4 90.5-35.4 38.8 0 66.6 20.6 77 30l58.2-57.9c-17.1-15-64-52.8-137.1-52.8-56.4 0-110.5 21.6-150 61C72.2 147.9 52 204 52 256s19.1 105.4 56.9 144.5c40.4 41.7 97.6 63.5 156.5 63.5 53.6 0 104.4-21 140.6-59.1 35.6-37.5 54-89.4 54-143.8 0-22.9-2.3-36.5-2.4-37.1z\"}}]})(props);\n};\nexport function IoLogoGoogleplus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.2 230.9l-1.6-7H160V288h90.7c-9.4 45-48.4 63.6-84.1 63.6-26 0-50.2-7.8-68.3-25.3-18.6-18.1-28.9-43.1-28.9-70.4 0-27.1 9.8-51.8 27.6-69.6 17.7-17.7 42-25.4 68.7-25.4 30.5 0 49.9 13.8 58.1 21.1l48-47.7C258.3 122.6 221.5 93 164.1 93c-44.3 0-86.7 16.8-117.7 47.8C15.9 171.3 0 215.2 0 256s15 82.6 44.6 113.3C76.3 402 121.2 419 167.5 419c42.1 0 81.9-16.5 110.3-46.3 28-29.4 42.4-70.1 42.4-112.7-.1-18-1.9-28.7-2-29.1zM512 224h-57v-57h-41v57h-57v41h57v57h41v-57h57z\"}}]})(props);\n};\nexport function IoLogoHackernews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64v384h384V64H64zm214 215v72h-40v-72l-66-120h47.1l39.7 83.6 38-83.6H342l-64 120z\"}}]})(props);\n};\nexport function IoLogoHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32l34.936 403.213L255.769 480l157.245-44.854L448 32H64zm307.997 132h-184l3.991 51h176.008l-13.505 151.386-98.5 28.094-98.682-27.976L150.545 289h48.254l3.423 39.287 53.769 14.781 53.422-14.915L314.987 264H147.986l-12.571-149.589 240.789.016L371.997 164z\"}}]})(props);\n};\nexport function IoLogoInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 96c21.2 0 41.3 8.4 56.5 23.5S416 154.8 416 176v160c0 21.2-8.4 41.3-23.5 56.5S357.2 416 336 416H176c-21.2 0-41.3-8.4-56.5-23.5S96 357.2 96 336V176c0-21.2 8.4-41.3 23.5-56.5S154.8 96 176 96h160m0-32H176c-61.6 0-112 50.4-112 112v160c0 61.6 50.4 112 112 112h160c61.6 0 112-50.4 112-112V176c0-61.6-50.4-112-112-112z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M360 176c-13.3 0-24-10.7-24-24s10.7-24 24-24c13.2 0 24 10.7 24 24s-10.8 24-24 24zM256 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64m0-32c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"}}]})(props);\n};\nexport function IoLogoIonic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 161.2c-52.3 0-94.8 42.5-94.8 94.8s42.5 94.8 94.8 94.8 94.8-42.5 94.8-94.8-42.5-94.8-94.8-94.8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"392.1\",\"cy\":\"126.4\",\"r\":\"43.2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M445.3 169.8l-1.8-4-2.9 3.3c-7.1 8-16.1 14.2-26.1 17.9l-2.8 1 1.1 2.7c8.6 20.7 13 42.7 13 65.2 0 93.7-76.2 169.9-169.9 169.9S86.1 349.7 86.1 256 162.3 86.1 256 86.1c25.4 0 49.9 5.5 72.8 16.4l2.7 1.3 1.2-2.7c4.2-9.8 10.8-18.5 19.2-25.2l3.4-2.7-3.9-2C321.6 55.8 289.5 48 256 48 141.3 48 48 141.3 48 256s93.3 208 208 208 208-93.3 208-208c0-30-6.3-59-18.7-86.2z\"}}]})(props);\n};\nexport function IoLogoIonitron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M468.4 269.2c-2.7-34.2-12.2-59.2-32.9-57.3 6.4 14.6 12.2 48.1 8.7 72-1.4-25.9-6.3-50.2-17.2-72-32.1-64.6-100.6-107.4-177.5-103.1-85.9 4.8-155 66.7-172 146.8l-11.4 1.6c-17.2 2.4-26.9 34.9-21.7 72.5 5.3 37.7 23.5 66.2 40.7 63.8l15.8-2.2c34.7 56.3 98.5 92.3 169.3 88.4 85.3-4.7 154-65.9 171.7-145.2l7.4-.4c15.2-2.5 21.8-31.2 19.1-64.9zM90.3 264c10.7 8.2 25.4 28.3 29.1 55.1 3.9 27.7-4.8 54.1-13.4 64.3 6-14.8 8.1-37.3 4.7-61.9-3.3-24-11-44.7-20.4-57.5zm183.8 116.2c-8.5.5-15.8-6-16.3-14.5s6-15.7 14.6-16.2c8.5-.5 15.8 6 16.3 14.5s-6.1 15.7-14.6 16.2zm81-4.7c-8.5.5-15.8-6-16.3-14.5s6-15.7 14.6-16.2c8.5-.5 15.8 6 16.3 14.5.4 8.5-6.1 15.8-14.6 16.2zM165.5 70s0 .1 0 0c.1.1.1.2.1.2.1.2.2.3.3.5v.1c.4 1 1.1 1.9 2.3 2.7 2 1.5 5 2.4 8.6 3 3.4.5 7.5.7 11.9.5 1 0 1.9-.1 2.9-.2-.4-.4-.8-.9-1.2-1.3h-1.3c-4.3.1-8.2-.2-11.6-.9-3.5-.7-6.4-1.8-8.4-3.4-.6-.5-1-.9-1.4-1.4-.2-.7-.2-1.5 0-2.3.5-2.3 2.4-4.8 5.5-7.4 2.7-2.3 6.4-4.7 10.9-7 .9-.4 1.7-.9 2.6-1.3.1-.1.3-.1.5-.2-.8 3.3-.9 6.9-.2 10.5 2.3 11.9 11.6 20.3 23.2 20.6l4 24.3 12.7-2-4-24.3c10.8-4.6 16.3-16.1 14-28-.7-3.5-2-6.7-3.9-9.5-5.3-.8-15.6-.8-29.2 2.1 1.1-.3 2.1-.7 3.2-1 7.6-2.1 14.9-3.5 21.5-4.2.6-.1 1.2-.1 1.8-.2 1.2-.1 2.4-.2 3.5-.3h.6c4.1-.2 7.7-.1 10.8.3 2.4.3 4.4.8 6.1 1.4-.6.9-.9 2-.9 3.2 0 2.7 1.8 5 4.3 5.8-.6.9-1.3 1.9-2.1 2.8-.8.9-1.8 1.9-2.9 2.8-1.1.9-2.3 1.8-3.5 2.7l-6.5 3.8-.3 1.5c.1 0 .2-.1.2-.1l8.4-4.7c1.2-.8 2.4-1.6 3.4-2.4 1.2-.9 2.2-1.8 3.2-2.8.9-.9 1.7-1.9 2.4-2.8l.3-.6c3-.4 5.4-2.9 5.4-6 0-3.4-2.7-6.1-6.1-6.1-1 0-1.9.3-2.8.7-2-1.2-4.8-2.1-8.2-2.7-4.3-.8-9.6-1-15.5-.6-.7 0-1.4.1-2.1.2-.7.1-1.3.2-2 .2-5.3-3.5-11.9-5-18.7-3.7-7.9 1.5-14.2 6.5-17.8 13-1.3.5-2.6 1.1-3.8 1.7-.7.3-1.3.6-2 .9-5.9 2.9-10.6 6.1-13.9 9.1-3.1 2.9-4.9 5.7-5.3 8.3-.2 1.4 0 2.8.7 4 .1.1.2.3.3.5z\"}}]})(props);\n};\nexport function IoLogoJavascript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 88.001h-80v212.498c0 52.58-18.032 67.261-49.412 67.261-14.705 0-27.948-2.521-38.25-6.063L32 423.904C46.7 428.966 69.259 432 86.907 432 158.955 432 208 398.129 208 301.02V88.001zM382.463 80C305.02 80 256 123.998 256 182.154c0 50.083 37.751 81.44 92.641 101.665 39.7 14.158 55.392 26.808 55.392 47.539 0 22.756-18.139 37.425-52.448 37.425-31.863 0-60.789-10.64-80.394-21.255v-.021L256 410.727c18.639 10.638 53.441 21.255 91.167 21.255C437.854 431.98 480 383.43 480 326.284c0-48.55-26.958-79.9-85.278-102.163-43.139-17.191-61.27-26.795-61.27-48.542 0-17.2 15.688-32.869 48.043-32.869 31.846 0 53.744 10.707 66.505 17.291l19.125-64C447.125 87.22 420.188 80 382.463 80z\"}}]})(props);\n};\nexport function IoLogoLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M417.2 64H96.8C79.3 64 64 76.6 64 93.9V415c0 17.4 15.3 32.9 32.8 32.9h320.3c17.6 0 30.8-15.6 30.8-32.9V93.9C448 76.6 434.7 64 417.2 64zM183 384h-55V213h55v171zm-25.6-197h-.4c-17.6 0-29-13.1-29-29.5 0-16.7 11.7-29.5 29.7-29.5s29 12.7 29.4 29.5c0 16.4-11.4 29.5-29.7 29.5zM384 384h-55v-93.5c0-22.4-8-37.7-27.9-37.7-15.2 0-24.2 10.3-28.2 20.3-1.5 3.6-1.9 8.5-1.9 13.5V384h-55V213h55v23.8c8-11.4 20.5-27.8 49.6-27.8 36.1 0 63.4 23.8 63.4 75.1V384z\"}}]})(props);\n};\nexport function IoLogoMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.659 96H64.341C46.504 96 32 110.484 32 128.308v255.349C32 401.493 46.504 416 64.341 416h383.318C465.496 416 480 401.493 480 383.656V128.308C480 110.484 465.496 96 447.659 96zM284.023 352h-56.048v-96l-42.04 53.878L143.913 256v96H87.869V160h56.044l42.022 67.98 42.04-67.98h56.048v192zm83.657 0l-69.635-96h42v-96h56.043v96h42.027l-70.453 96h.018z\"}}]})(props);\n};\nexport function IoLogoModelS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.6 208.4c-3.1-1.9-2.2-6.6 1.3-7.3l5.3-1.1c7.1 0 22.4-2.3 25.6-5.4 3.1-3.2 4.2-5.4 4.2-8.2s-1.7-7.7-4.8-11.1c-3-3.4-16-5.2-23.7-6.2s-8.7 0-10.7 1.2c-2 1.3-2.8 9.5-3.1 15-.1 1.2-.9 2.2-2.1 2.5l-.4.1c-3.3.7-6.6-1.1-7.8-4.3-4.6-13-10.7-32.5-19.4-48.4-11.5-20.8-23.5-27.4-28.5-29-4.9-1.5-9.4-2.6-43-6.1-33.8-3.6-63.1-4.1-80.5-4.1s-46.7.5-80.6 4.1c-33.6 3.4-38.1 4.5-43 6.1-5 1.6-17 8.2-28.5 29-9.4 17.1-15.7 38.3-20.4 51.3-.6 1.5-2.2 2.4-3.8 2.1-3.1-.7-5.4-3.3-5.6-6.5-.4-5-1.2-10.7-2.9-11.7-2-1.3-3-2.2-10.7-1.2s-20.6 2.8-23.7 6.2c-3 3.4-4.7 8.3-4.7 11.1s1.1 5.1 4.2 8.3c3.1 3.2 18.5 5.4 25.6 5.4l5.3 1.1c3.5.7 4.4 5.4 1.3 7.3-9.1 5.7-23.2 15.3-32.3 25.6 0 0-4.1 28.7-4.1 62.1 0 48 5.8 92.4 5.8 92.4 1.8.3 3.6.6 5.3.9 0 1.2.7 13.1 2 21.2.3 2 1.3 5.5 6.2 5.5h64.7c1.9 0 5.1-1.6 5.1-3.7l1-17c7.2.1 3.2.1 10.9 0 24.8-.3 15.6-7.5 27.1-7.3 11.3.2 55 3 96 3s84.7-2.8 96-3c11.5-.2 2.3 7.1 27.1 7.3 7.7.1 4.7.1 11.9 0l1 17c0 2.1 3.2 3.7 5.1 3.7h63.5c4.9 0 5.9-3.5 6.2-5.5 1.3-8.1 1.9-19.9 2-21.2l5.4-.9s5.8-44.3 5.8-92.4c0-33.5-4.1-62.1-4.1-62.1-9.3-10.5-23.4-20.1-32.5-25.8zm-320.2-53.6c2.2-5.1 5.9-11.6 10-17.2 5-6.7 12.4-11.2 20.6-12.5 16.7-2.7 52.6-7.3 101.9-7.3 49.3 0 85.2 4.6 101.9 7.3 8.2 1.3 15.6 5.8 20.6 12.5 4.2 5.6 7.9 12.1 10.1 17.2 3.9 9.2 10.4 30.7 9.4 33.2-1 2.5 1 3.7-12.2 2.6-13.1-1-90.6-2.1-129.7-2.1-39.2 0-116.7 1.1-129.7 2.1-13.2 1.1-11.3-.2-12.2-2.6s5.4-24 9.3-33.2zm8.4 116c-9.9 0-29.8-1-34.5-1.2-4.7-.1-8.8 3.8-11.2 3.8s-25.5-3.6-28-14.9c-1.7-7.5-1.1-15.2-.6-19.5.3-1.9 1.9-3.4 3.8-3.5 14.4-.5 29.2.5 55.3 7.9 17.3 4.9 29.8 12.6 36.9 17.8 2.8 2.1 1.8 6.5-1.7 7.2-6.1 1.1-14.4 2.4-20 2.4zm210.4 73c-12.7 1.7-58.5 2.2-86.2 2.2s-73.5-.5-86.2-2.2c-13.1-1.7-29.8-17.3-18.4-30.2 7.6-8.5 20.8-13.6 48.9-17.3 29.8-3.8 48.6-4.3 55.6-4.3s25.8.5 55.6 4.3c28.1 3.7 43.2 9.6 48.9 17.3 10.4 13.8-5.1 28.4-18.2 30.2zm111.7-85.2c-2.5 11.2-25.6 14.9-28 14.9s-6.5-3.9-11.2-3.8c-4.7.2-24.6 1.2-34.5 1.2-5.5 0-13.8-1.3-20-2.4-3.5-.6-4.5-5.1-1.7-7.2 7.1-5.2 19.6-12.9 36.9-17.8 26.1-7.4 40.8-8.4 55.3-7.9 2 .1 3.6 1.5 3.8 3.5.5 4.3 1.1 12-.6 19.5z\"}}]})(props);\n};\nexport function IoLogoNoSmoking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 256h16v48h-16zM112 304h129.6l-48-48H112z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M364.5 60.1c-.4-.2-.7-.4-1-.6-10.9-6-22.5-10.7-34.4-14.8l-5.4-1.8C302.3 36.1 279.6 32 256 32 132.3 32 32 132.3 32 256c0 84.3 46.6 157.6 115.4 195.8.4.2.7.5 1.1.7 10.9 6 22.5 10.7 34.4 14.8l5.4 1.8c21.4 6.8 44 10.9 67.7 10.9 123.7 0 224-100.3 224-224 0-84.3-46.6-157.7-115.5-195.9zM256 426.4c-9.3 0-18.4-.9-27.2-2.4-9.8-1.6-19.3-4.1-28.5-7.3-1.9-.6-3.8-1.2-5.6-1.9-6.5-2.5-12.9-5.3-19-8.6-53.6-28.7-90.1-85.2-90.1-150.3 0-37.2 12.4-71.4 32.7-99.4l237.2 237.2c-28.1 20.3-62.3 32.7-99.5 32.7zm137.8-71L156.6 118.2c28-20.2 62.1-32.6 99.4-32.6 9.3 0 18.3.9 27.2 2.4 9.8 1.6 19.3 4.1 28.5 7.3 1.8.6 3.7 1.2 5.6 1.9 6.2 2.4 12.2 5 18 8.1 54.2 28.5 91.2 85.3 91.2 150.8-.1 37.2-12.5 71.3-32.7 99.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352 256h-34l34 34zM384 256h16v48h-16zM360.1 212.7c-8.8-4.1-22-5.7-45.6-5.7h-3.6c-12.7.1-15.9-.1-20-6.1-2.8-4.2-1-14.8 3.7-21.9 1.6-2.4 1.8-5.6.4-8.2-1.4-2.6-4.1-4.2-7-4.3-.1 0-9.4-.1-18.3-3.9-10.6-4.5-15.6-12.1-15.6-23.1 0-25.8 21.8-27.7 22.8-27.7v-16c-12 0-38.8 11-38.8 43.7 0 17.5 9 31 25.7 38 4.2 1.7 8.4 2.9 12 3.6-3.3 9.8-3.6 20.9 1.7 28.7 9 13.3 20.3 13.2 33.3 13.1h3.5c26.3 0 34.6 2.3 38.9 4.3 5.7 2.6 6.8 7.5 6.6 15.7v1h16v-1c0-7.1.3-22.8-15.7-30.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M400 244c0-25.7-3-39.2-9.1-49.6C382.3 180 368.5 172 352 172h-17.4c2.9-8.3 5.4-19.8 3.5-30.9-3.2-18.8-19.1-30-43.1-30v16c21 0 26.1 9.1 27.4 16.7 2.5 14.5-6.8 32.1-6.9 32.3-1.4 2.5-1.3 5.5.1 7.9s4.1 3.9 6.9 3.9H352c10.9 0 19.4 4.9 25.1 14.6 3.1 5.3 6.9 13.5 6.9 41.4h16v.1z\"}}]})(props);\n};\nexport function IoLogoNodejs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.917 480a32.536 32.536 0 0 1-16.633-4.599l-52.985-32.44c-7.914-4.562-4.023-6.203-1.443-7.141 10.565-3.781 13.713-5.657 24.947-12.285 1.206-.667 2.747-.424 3.955.322l39.71 23.504c1.476.85 3.557.85 4.931 0l155.188-92.246c1.475-.877 2.415-2.646 2.415-4.441V163.869c0-1.85-.94-3.592-2.449-4.528l-155.12-94.672c-1.478-.894-3.421-.894-4.898 0L98.516 159.374c-1.544.903-2.516 2.698-2.516 4.495v186.805c0 1.813.972 3.513 2.481 4.389l39.929 23.972c23.61 12.204 37.59-.17 37.59-14.611V180.725c0-2.652 2.047-4.727 4.596-4.727h22.809c2.515 0 4.597 2.072 4.597 4.727v183.698c0 32.563-19.353 51.248-49.199 51.248-9.156 0-16.397 0-36.552-10.279l-41.584-24.781C70.371 374.459 64 362.965 64 350.656V161.191c0-12.316 6.371-23.784 16.665-29.917L239.35 36.41c10.027-5.88 23.374-5.88 33.332 0l158.65 94.864C441.63 137.423 448 148.899 448 161.191v189.465c0 12.309-6.37 23.75-16.668 29.953l-158.65 94.774a32.52 32.52 0 0 1-16.698 4.599l-.067.018z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M304.943 351.998c-64.61 0-84.006-31.61-84.006-59.271 0-2.629 2.048-4.729 4.562-4.729h20.521c2.282 0 4.227 1.7 4.562 4.016 3.084 21.602 16.748 31.15 54.324 31.15 33.399 0 47.091-10.346 47.091-28.684 0-10.592-3.463-18.424-55.407-23.697-43.427-4.441-70.288-14.373-70.288-50.295 0-33.135 26.996-52.49 72.234-52.49 46.128 0 76.462 14 79.173 50.829.102 1.337-.368 2.629-1.241 3.644-.871.965-2.078 1.527-3.353 1.527h-20.591c-2.146 0-4.024-1.562-4.459-3.713-4.401-16.953-16.97-23.402-49.563-23.402-36.486 0-40.746 12.753-40.746 22.607 0 11.963 5.031 15.441 54.294 22.172 48.761 6.663 71.933 16.117 71.933 51.552 0 35.781-28.808 58.783-79.075 58.783l.035.001z\"}}]})(props);\n};\nexport function IoLogoNpm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M227.6 213.1H256v57.1h-28.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M0 156v171.4h142.2V356H256v-28.6h256V156H0zm142.2 142.9h-28.4v-85.7H85.3v85.7H28.4V184.6h113.8v114.3zm142.2 0h-56.9v28.6h-56.9V184.6h113.8v114.3zm199.2 0h-28.4v-85.7h-28.4v85.7h-28.4v-85.7H370v85.7h-56.9V184.6h170.7v114.3z\"}}]})(props);\n};\nexport function IoLogoOctocat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.4 287.5c-9.1 0-16.9 4.2-23.2 12.8-6.3 8.5-9.4 19-9.4 31.4 0 12.5 3.2 23 9.4 31.5 6.3 8.5 14 12.8 23.2 12.8 8.5 0 15.9-4.3 22.1-12.8 6.3-8.5 9.4-19 9.4-31.5 0-12.4-3.2-22.9-9.4-31.4-6.3-8.6-13.6-12.8-22.1-12.8zM334.7 287.5c-9 0-16.9 4.2-23.2 12.8-6.3 8.5-9.4 19-9.4 31.4 0 12.5 3.2 23 9.4 31.5 6.3 8.5 14.1 12.8 23.2 12.8 8.5 0 15.9-4.3 22.2-12.8 6.3-8.5 9.4-19 9.4-31.5 0-12.4-3.2-22.9-9.4-31.4-6.3-8.6-13.6-12.8-22.2-12.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M445.8 172c-.1 0 2.7-14.3.3-39.2-2.2-24.9-7.5-47.8-16.1-68.8 0 0-4.4.8-12.8 2.9s-22.1 6.3-40.9 14.8c-18.5 8.5-38 19.8-58.3 33.5-13.8-3.9-34.4-5.9-62-5.9-26.3 0-46.9 2-62 5.9-44.6-30.9-81.9-48-112.1-51.2-8.6 21-13.9 44-16 69-2.4 24.9.4 39.3.4 39.3C42 198.6 32 236.5 32 267.8c0 24.2.7 46.1 6.1 65.5 5.6 19.3 12.7 35.1 21.1 47.2 8.6 12.1 19 22.8 31.6 31.9 12.5 9.3 24 16 34.4 20.2 10.5 4.4 22.4 7.6 36 9.9 13.3 2.4 23.4 3.6 30.5 4 0 0 28 1.5 64.4 1.5s64.3-1.5 64.3-1.5c7-.4 17.1-1.6 30.5-4 13.5-2.3 25.5-5.6 35.9-9.9 10.4-4.3 21.9-10.9 34.5-20.2 12.5-9 22.9-19.7 31.5-31.9 8.4-12.1 15.5-27.9 21.1-47.2 5.5-19.4 6.1-41.4 6.1-65.6 0-30.3-10-68.7-34.2-95.7zm-65.4 233.6c-27.9 13.1-68.9 18.4-123.3 18.4H255c-54.4 0-95.4-5.2-122.8-18.4-27.5-13.1-41.3-40.1-41.3-80.7 0-24.3 8.6-44 25.5-59.1 7.4-6.5 16.4-11 27.6-13.7 11.1-2.6 21.4-2.8 31-2.5 9.4.4 22.6 2.2 39.3 3.5 16.8 1.3 29.3 3 41.8 3 11.7 0 27.2-2 52.1-4 25-2 43.5-3 55.5-1 12.3 2 23 6.2 32.1 14.7 17.7 15.8 26.6 35.5 26.6 59.1-.1 40.6-14.2 67.6-42 80.7z\"}}]})(props);\n};\nexport function IoLogoPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.3 32 32 132.3 32 256c0 91.7 55.2 170.5 134.1 205.2-.6-15.6-.1-34.4 3.9-51.4 4.3-18.2 28.8-122.1 28.8-122.1s-7.2-14.3-7.2-35.4c0-33.2 19.2-58 43.2-58 20.4 0 30.2 15.3 30.2 33.6 0 20.5-13.1 51.1-19.8 79.5-5.6 23.8 11.9 43.1 35.4 43.1 42.4 0 71-54.5 71-119.1 0-49.1-33.1-85.8-93.2-85.8-67.9 0-110.3 50.7-110.3 107.3 0 19.5 5.8 33.3 14.8 43.9 4.1 4.9 4.7 6.9 3.2 12.5-1.1 4.1-3.5 14-4.6 18-1.5 5.7-6.1 7.7-11.2 5.6-31.3-12.8-45.9-47-45.9-85.6 0-63.6 53.7-139.9 160.1-139.9 85.5 0 141.8 61.9 141.8 128.3 0 87.9-48.9 153.5-120.9 153.5-24.2 0-46.9-13.1-54.7-27.9 0 0-13 51.6-15.8 61.6-4.7 17.3-14 34.5-22.5 48 20.1 5.9 41.4 9.2 63.5 9.2 123.7 0 224-100.3 224-224C480 132.3 379.7 32 256 32z\"}}]})(props);\n};\nexport function IoLogoPlaystation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.8 203c-.8-17.1-3.3-34.5-10.8-50.1-4.1-8.6-9.7-16.5-16.5-23.2-6.3-6.4-13.6-11.7-21.3-16.3-17.1-10.2-37.5-17-84.4-31S192 64 192 64v358.3l79.9 25.7s.1-198.8.1-299.5v-3.8c0-9.3 7.5-16.8 16.1-16.8h.5c8.5 0 15.5 7.5 15.5 16.8V278c11 5.3 29.2 9.3 41.8 9.1 8.3.2 16.7-1.7 24-5.7 7.6-4.1 13.9-10.4 18.4-17.8 5.1-8.3 8.2-17.8 9.9-27.3 1.9-10.8 2-22.1 1.6-33.3zM86.7 357.8c27.4-9.8 89.3-29.5 89.3-29.5v-47.2s-76.5 24.8-111.3 37.1c-8.6 3.1-17.3 5.9-25.7 9.5-9.8 4.1-19.4 8.7-28.1 14.8-3.8 2.6-7.2 5.9-9.2 10.1s-2.2 9.2-.5 13.6c2 5.1 5.8 9.3 10.1 12.6 7.8 5.9 17.1 9.5 26.4 12.2 28.4 9.4 58.4 14 88.4 13.3 14.5-.2 36-1.9 50-4.4v-42s-11 2.5-41.3 12.5c-4.6 1.5-9.2 3.3-14 4.3-7.1 1.6-14.4 2.1-21.6 2.2-6.5-.3-13.2-.7-19.3-3.1-2.2-1-4.6-2.2-5.5-4.6-.8-2 .3-4 1.7-5.4 2.8-2.9 6.8-4.5 10.6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M512 345.9c-.1-6-3.7-11.2-7.9-15-7.1-6.3-15.9-10.3-24.7-13.5-5.5-1.9-9.3-3.3-14.7-5-25.2-8.2-51.9-11.2-78.3-11.3-8 .3-23.1.5-31 1.4-21.9 2.5-67.3 15.4-67.3 15.4v48.8s67.5-21.6 96.5-31.8c9.7-3.3 20.1-4.6 30.3-4.6 6.5.2 13.2.7 19.4 3.1 2.2.9 4.5 2.2 5.5 4.5.9 2.6-.9 5-2.9 6.5-4.7 3.8-10.7 5.3-16.2 7.4-41 14.5-132.7 44.7-132.7 44.7v47s117.2-39.6 170.8-58.8c8.9-3.3 17.9-6.1 26.4-10.4 7.9-4 15.8-8.6 21.8-15.3 3.1-3.6 5-8 5-13.1z\"}}]})(props);\n};\nexport function IoLogoPolymer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.3 96h-77.9L160.8 348.6 109.9 256l87.7-160h-77.9L32 256l87.7 160h77.9l153.7-252.6 50.8 92.6-87.7 160h77.9L480 256 392.3 96z\"}}]})(props);\n};\nexport function IoLogoPython (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M193.46 249.056a65.316 65.316 0 0 1 11.586-1.041l-3.122-.015h103.823c4.503 0 8.806-.617 12.908-1.754 19.37-5.363 33.345-22.537 33.345-43.663v-87.224c0-24.832-21.15-43.484-46.289-47.606-15.931-2.624-39.258-3.827-55.089-3.749-15.829.086-30.981 1.404-44.277 3.749C167.143 74.576 160 88.928 160 115.359V144h96v16H128.82c-35.628 0-64.538 42.571-64.813 95.242-.002.253-.007.505-.007.758 0 9.523.94 18.72 2.685 27.404C74.648 323.07 99.451 352 128.82 352H144v-45.935c0-26.827 20.146-51.733 49.46-57.009zm10.196-122.054c-9.592 0-17.384-7.785-17.384-17.403 0-9.664 7.774-17.52 17.384-17.52 9.574 0 17.399 7.855 17.399 17.52.001 9.618-7.809 17.403-17.399 17.403z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M443.951 222.543C434.78 186.021 411.033 160 383.18 160H368v40.672c0 33.915-22.286 58.474-49.489 62.681a53.943 53.943 0 0 1-8.301.646H206.351a51.41 51.41 0 0 0-13.049 1.672C174.18 270.689 160 286.6 160 307.236v87.227c0 24.832 24.977 39.426 49.481 46.551 29.327 8.531 61.267 10.068 96.366 0C329.15 434.354 352 420.893 352 394.463V368h-96v-16h127.18c25.24 0 47.107-21.365 57.814-52.549C445.474 286.404 448 271.641 448 256c0-11.768-1.433-23.038-4.049-33.457zM307.867 382.82c9.59 0 17.381 7.785 17.381 17.4 0 9.65-7.791 17.521-17.381 17.521-9.577 0-17.399-7.871-17.399-17.521 0-9.63 7.806-17.4 17.399-17.4z\"}}]})(props);\n};\nexport function IoLogoReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"322.3\",\"cy\":\"288.4\",\"r\":\"31.8\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"190.3\",\"cy\":\"288.4\",\"r\":\"31.8\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M480.5 251c0-27.7-22.2-50.2-49.5-50.2-13 0-24.7 5-33.6 13.3-33.2-23.4-78.4-38.5-128.7-40.7L292 95.7l69.6 13.9c.2 24.7 20.1 44.7 44.5 44.7 24.6 0 44.5-20.2 44.5-45.1S430.7 64 406.1 64c-18.6 0-34.5 11.6-41.2 28l-85.2-17-29.4 98.2-7.1.2c-50.3 2.2-95.5 17.4-128.7 40.7-8.8-8.3-20.6-13.3-33.6-13.3-27.3 0-49.5 22.5-49.5 50.2 0 19.6 11 36.5 27.1 44.8-.8 4.9-1.2 9.8-1.2 14.8C57.5 386.4 146.4 448 256 448s198.5-61.6 198.5-137.5c0-5-.4-9.9-1.1-14.8 16.1-8.3 27.1-25.2 27.1-44.7zM406.1 81.9c14.8 0 26.8 12.2 26.8 27.2s-12 27.2-26.8 27.2-26.8-12.2-26.8-27.2 12-27.2 26.8-27.2zM49.2 251c0-17.8 14.3-32.2 31.8-32.2 7.2 0 13.9 2.5 19.2 6.6-17.3 15.2-30.1 33-37 52.4-8.4-5.9-14-15.7-14-26.8zm337.2 141.9C351.8 416.8 305.5 430 256 430s-95.8-13.2-130.4-37.1c-32.5-22.5-50.4-51.8-50.4-82.4 0-3.2.2-6.5.6-9.7.7-6 2.2-11.9 4.3-17.7 5.6-15.6 16-30.3 30.7-43.4 4.4-3.9 9.2-7.7 14.4-11.3.1-.1.3-.2.4-.3C160.2 204.2 206.5 191 256 191s95.8 13.2 130.4 37.1c.1.1.3.2.4.3 5.2 3.6 10 7.4 14.4 11.3 14.7 13.1 25.1 27.8 30.7 43.4 2.1 5.8 3.5 11.7 4.3 17.7.4 3.2.6 6.4.6 9.7 0 30.6-17.9 59.9-50.4 82.4zm62.4-115.2c-6.9-19.4-19.7-37.2-37-52.4 5.3-4.1 12-6.6 19.2-6.6 17.5 0 31.8 14.5 31.8 32.2 0 11.2-5.6 21-14 26.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320.5 357.9c-.2.2-24.2 24.2-64.5 24.4-40.9-.2-64.4-24.2-64.6-24.4l-12.6 12.4c1.2 1.2 29.6 29.5 77.2 29.7 47.6-.2 75.9-28.5 77.1-29.7l-12.6-12.4z\"}}]})(props);\n};\nexport function IoLogoRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M119.9 336.1c-30.8 0-55.9 25.1-55.9 55.8 0 30.8 25.1 55.6 55.9 55.6 30.9 0 55.9-24.9 55.9-55.6 0-30.7-25-55.8-55.9-55.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M64 192v79.9c48 0 94.1 14.2 128 48.1 33.9 33.9 48 79.9 48 128h80c0-139.9-116-256-256-256z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64v79.9c171 0 303.9 133 303.9 304.1H448C448 236.3 276 64 64 64z\"}}]})(props);\n};\nexport function IoLogoSass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.784 329.108c-1.67-13.599-9.236-24.146-20.795-32.416 2.857 2.04 5.275 3.766-.055-.041-7.189-5.131-3.38-2.411-.047-.032-28.5-20.301-65.676-15.789-96.733-4.511-12.447-20.295-12.987-35.783-5.816-57.937.929-2.8.295-4.354-2.624-5.604-7.086-3.03-17.291-1.427-24.422.463-2.462.646-4.254 1.9-4.8 4.381-5.154 24.243-21.009 46.448-34.828 66.886-9.731-18.652-8.96-33.087-2.414-52.516.798-2.366.431-3.624-1.937-4.879-7.26-3.757-18.401-1.912-25.8.276-8.509 2.482-21.29 44.594-25.372 52.946-8.531 17.442-16.091 44.665-30.585 58.502-12.3-15.807 22.526-51.517 10.882-65.851-3.938-4.848-11.063-4.723-15.586-.616 1.085-7.608 1.648-12.609-.32-19.063-2.081-6.79-7.361-10.687-15.09-10.49-17.995.527-33.843 13.815-44.641 26.397-10.277 12.105-37.381 19.627-51.953 26.927-25.032-21.807-79.221-44.947-80.632-82.081-1.528-41.846 48.319-70.245 81.597-87.228 43.28-22.104 109.961-49.608 159.138-25.436 13.049 6.414 18.299 20.171 14.707 33.348-9.368 34.366-47.198 57.293-80.103 67.807-16.189 5.175-33.969 9.027-51.1 8.026-22.955-1.343-40.83-15.224-43.281-16.086-2.049-.389-1.888 2.261-1.347 3.664 23.816 62.433 144.417 16.681 175.956-15.371 15.189-15.421 24.413-30.365 28.351-53.894 4.616-27.583-15.634-44.842-31.004-51.957-77.918-36.072-185.636 11.168-244.553 59.327-25.568 20.901-57.552 54.11-42.874 88.946 15.93 37.805 64.736 57.19 96.503 80.312-25.704 12.773-57.862 25.983-74.518 49.933-9.524 13.729-12.903 28.359-5.811 43.966 12.572 27.568 58.285 15.622 77.573 3.471 17.67-11.13 29.563-26.07 34.7-45.228 4.455-16.609 3.541-33.866-3.856-49.512l28.585-14.458c-7.697 23.076-11.097 52.003 4.881 72.855 6.402 8.338 23.017 8.675 29.817.311 8.816-10.943 14.664-24.655 20.503-37.206-.682 9.373-1.856 19.996 1.377 28.165 3.71 9.373 12.126 11.291 20.792 5.343 26.52-18.203 43.398-68.652 56.463-98.062 3.552 12.829 7.473 24.548 13.957 36.376 1.602 2.903 1.407 4.774-.796 7.195-9.685 10.675-32.826 28.479-35.069 42.899-.524 3.371 1.713 6.599 5.686 7.37 15.573 3.108 32.838-2.531 45.482-11.078 13.188-8.922 17.446-21.087 14.245-35.515-4.576-20.771 10.993-43.98 25.801-61.03 2.719 12.908 6.816 25.331 14.143 36.606-13.075 11.483-32.58 27.764-29.779 46.939.988 6.865 7.135 11.301 14.514 9.736 15.783-3.324 29.416-10.113 39.37-22.146 9.023-10.855 5.792-22.701 1.856-34.635 23.872-6.815 48.022-8.177 71.831-.027 11.495 3.91 20.755 10.5 26.248 20.818 6.726 12.644 2.939 24.292-10.05 32.604-3.287 2.104-5.562 3.833-4.45 4.743 1.112.911 4.9 2.113 13.284-3.152 8.384-5.267 13.51-12.383 14.823-21.725a37.09 37.09 0 0 0-.024-7.755zm-398.838 25.259c-1.358 16.673-9.636 30.193-23.175 41.114-7.617 6.158-17.102 11.176-26.52 12.092-9.418.917-16.751-1.461-17.378-11.23-1.764-27.493 40.923-54.424 64.625-62.533 2.02 6.86 3.011 13.666 2.432 20.587l.016-.03zm103.102-72.453c-3.903 22.309-14.83 62.347-32.314 78.336-2.356 2.143-4.61 2.018-5.809-.771-10.345-24.059 3.671-73.669 33.082-81.328 3.457-.889 5.602.582 5.041 3.763zm70.311 81.768c8.422-8.962 16.834-17.916 25.269-26.927 1.043 10.021-17.571 29.964-25.269 26.927zm80.714-17.696c-2.348 1.273-7.621 2.515-7.827.835-1.482-12.085 11.816-24.874 20.067-30.867 4.453 11.343-.818 23.834-12.24 30.032z\"}}]})(props);\n};\nexport function IoLogoSkype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436.9 296.8c2.8-12.5 4.2-25.4 4.2-38.7 0-99.7-82-180.6-183.2-180.6-10.7 0-21.1.9-31.3 2.6C210.3 69.9 191 64 170.2 64 111.6 64 64 110.9 64 168.7c0 19.4 5.3 37.5 14.6 53-2.4 11.7-3.7 23.9-3.7 36.3 0 99.8 82 180.6 183.1 180.6 11.5 0 22.7-1 33.5-3 15 7.9 32.1 12.4 50.2 12.4 58.7 0 106.2-46.9 106.2-104.7.1-16.7-3.9-32.5-11-46.5zm-85 47.5c-8.5 11.8-21 21.2-37.2 27.8-16.1 6.6-35.3 9.9-57.3 9.9-26.3 0-48.3-4.6-65.6-13.6-12.3-6.6-22.4-15.4-30.2-26.4-7.8-11-11.7-22-11.7-32.6 0-6.6 2.6-12.3 7.6-17.1 5-4.6 11.5-7 19.1-7 6.3 0 11.7 1.8 16.1 5.5 4.2 3.5 7.8 8.7 10.7 15.5 3.3 7.3 6.8 13.5 10.6 18.4 3.6 4.7 8.7 8.6 15.3 11.7 6.7 3.1 15.6 4.7 26.6 4.7 15.1 0 27.5-3.2 36.8-9.5 9.2-6.1 13.6-13.5 13.6-22.5 0-7.1-2.3-12.7-7.1-17.1-5-4.6-11.5-8.2-19.6-10.6-8.3-2.6-19.6-5.3-33.6-8.2-19-4-35.1-8.8-48-14.2-13.1-5.5-23.7-13.2-31.5-22.7-7.9-9.7-11.8-21.9-11.8-36.2 0-13.7 4.2-25.9 12.4-36.5 8.2-10.5 20.1-18.7 35.6-24.3 15.2-5.6 33.3-8.4 53.7-8.4 16.4 0 30.7 1.9 42.7 5.5 12.1 3.7 22.2 8.7 30.3 14.9 8 6.2 14 12.8 17.8 19.7 3.8 7 5.7 13.9 5.7 20.6 0 6.4-2.5 12.3-7.5 17.4-5 5.1-11.3 7.8-18.8 7.8-6.8 0-12.1-1.6-15.8-4.8-3.4-3-7-7.6-10.9-14.3-4.6-8.5-10.1-15.3-16.4-20.1-6.2-4.6-16.4-7-30.6-7-13.1 0-23.8 2.6-31.7 7.7-7.6 4.9-11.3 10.6-11.3 17.3 0 4.1 1.2 7.5 3.7 10.5 2.6 3.1 6.2 5.9 10.9 8.2 4.8 2.4 9.8 4.3 14.7 5.6 5.1 1.4 13.6 3.5 25.3 6.1 14.9 3.1 28.5 6.7 40.5 10.4 12.2 3.9 22.7 8.6 31.3 14.1 8.8 5.6 15.7 12.9 20.7 21.5 4.9 8.6 7.4 19.4 7.4 31.8.4 15.1-3.9 28.7-12.5 40.5z\"}}]})(props);\n};\nexport function IoLogoSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.6 236.216l64.003-21.438 20.708 61.823-64.004 21.438z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M213.6 236.216l64.003-21.438 20.708 61.823-64.004 21.438z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M475.9 190C426.4 25 355-13.4 190 36.1S-13.4 157 36.1 322 157 525.4 322 475.9 525.4 355 475.9 190zm-83.3 107.1l-31.1 10.4 10.7 32.2c4.2 13-2.7 27.2-15.7 31.5-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9l-10.7-32.2-64.1 21.5L261 377c4.2 13-2.7 27.2-15.7 31.5-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9L203 360.4l-31 10.3c-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9-4.2-13 2.7-27.2 15.7-31.5l31.1-10.4-20.7-61.8-31.1 10.4c-2.7.8-5.8 1.5-8.4 1.2-10-.4-19.6-6.9-23-16.9-4.2-13 2.7-27.2 15.7-31.5l31.1-10.4-10.9-32.1c-4.2-13 2.7-27.2 15.7-31.5 13-4.2 27.2 2.7 31.5 15.7l10.7 32.2 64.1-21.5-10.7-32.2c-4.2-13 2.7-27.2 15.7-31.5 13-4.2 27.2 2.7 31.5 15.7l10.7 32.2 31.1-10.4c13-4.2 27.2 2.7 31.5 15.7 4.2 13-2.7 27.2-15.7 31.5l-31.1 10.4 20.7 61.8 31.1-10.4c13-4.2 27.2 2.7 31.5 15.7 4.2 13.2-2.7 27.4-15.8 31.7z\"}}]})(props);\n};\nexport function IoLogoSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M495.998 360.389l-.189-14.501-14.398-1.278c-15.413-1.396-43.8-7.219-54.301-16.9-16.281-15.011-35.688-36.199-35.688-51.893 0-1.014 0-2.546 4.15-5.186 4.985-3.174 12.589-5.584 19.297-7.71 5.217-1.654 10.144-3.217 14.394-5.236 9.236-4.39 18.498-15.978 17.471-28.807-1.215-15.166-14.424-27.046-30.072-27.046-4.021 0-8.068.76-12.027 2.259-8.027 3.041-13.743 4.41-17.705 4.962.747-9.319 1.791-20.12 3.211-30.67 5.111-37.948-5.281-73.509-29.264-101.042C335.498 48.208 297.376 32 256.283 32H256c-41.093 0-79.215 16.208-104.591 45.341-23.982 27.534-34.375 63.345-29.265 101.292 1.416 10.51 2.46 21.231 3.21 30.618-3.97-.559-9.686-1.998-17.703-5.034-3.965-1.502-8.017-2.295-12.043-2.295-15.641-.001-28.844 11.852-30.057 27.003-1.027 12.818 8.235 24.393 17.47 28.783 4.251 2.02 9.181 3.578 14.4 5.232 6.707 2.125 14.309 4.532 19.293 7.703 4.147 2.639 4.147 4.168 4.147 5.182 0 8.66-6.191 24.691-35.688 51.888-10.499 9.681-39.055 15.501-54.588 16.897l-14.572 1.311L16 360.603c0 1.679.312 10.546 6.485 20.319 5.246 8.306 16.073 19.283 37.863 24.407a1139.713 1139.713 0 0 0 15.208 3.454c2.306.512 4.555 1.01 6.454 1.453l.081.623c.9 7.004 1.611 12.535 4.392 17.75 2.453 4.6 8.574 12.316 22.015 12.316 2.478 0 5.249-.246 8.472-.751 1.672-.263 3.386-.554 5.2-.863 7.116-1.212 15.182-2.587 23.451-2.587 10.277 0 18.732 2.188 25.846 6.688 4.531 2.867 8.892 5.972 13.509 9.26C202.967 465.481 223.358 480 256 480c32.726 0 53.293-14.582 71.439-27.446 4.576-3.244 8.898-6.309 13.377-9.142 7.113-4.5 15.568-6.688 25.846-6.688 8.27 0 16.334 1.375 23.449 2.586 1.814.311 3.529.602 5.202.864 3.223.505 5.993.751 8.472.751 13.44 0 19.562-7.715 22.015-12.313 2.781-5.214 3.492-10.746 4.392-17.749l.082-.629c1.898-.441 4.148-.941 6.455-1.452 4.023-.892 9.029-2.001 15.206-3.454 21.851-5.139 32.611-16.17 37.79-24.518 6.097-9.828 6.296-18.736 6.273-20.421zM208 128c8.836 0 16 10.745 16 24s-7.164 24-16 24-16-10.745-16-24 7.164-24 16-24zm103.615 77.698C296.368 220.725 276.617 229 256 229c-20.838 0-40.604-8.29-55.657-23.343a8 8 0 1 1 11.313-11.313C223.688 206.374 239.436 213 256 213c16.387 0 32.15-6.64 44.385-18.698a8 8 0 0 1 11.23 11.396zM304 176c-8.836 0-16-10.746-16-24s7.164-24 16-24 16 10.746 16 24-7.164 24-16 24z\"}}]})(props);\n};\nexport function IoLogoSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.8 208.2c0 19.8-16.1 36-36 36-19.8 0-36-16.1-36-36 0-19.8 16.1-36 36-36 19.8 0 36 16.2 36 36zM442.6 139c-38.1 0-69 30.7-69.4 68.7l-43.2 62c-1.8-.2-3.6-.3-5.4-.3-9.7 0-18.7 2.7-26.4 7.3L102.4 198c-5.1-23.2-25.9-40.7-50.6-40.7C23.3 157.2 0 180.6 0 209.1s23.3 51.8 51.8 51.8c9.7 0 18.7-2.7 26.4-7.3L274 332.2c5.1 23.3 25.8 40.8 50.6 40.8 26.8 0 49-20.6 51.5-46.7l66.5-48.6c38.3 0 69.4-31 69.4-69.3S480.9 139 442.6 139zm0 22.9c25.7 0 46.5 20.9 46.5 46.5 0 25.7-20.9 46.4-46.5 46.4-25.7 0-46.5-20.8-46.5-46.4 0-25.7 20.8-46.5 46.5-46.5zm-390.8 9c14.6 0 27.3 8.2 33.7 20.2l-18.9-7.6v.1c-15.3-5.5-32.2 2-38.3 17.1-6.1 15.2.9 32.3 15.7 38.9v.1l16.1 6.4c-2.6.6-5.4.9-8.2.9-21.1 0-38.1-17-38.1-38.1-.1-20.9 16.9-38 38-38zm272.8 112.2c21.1 0 38.1 17 38.1 38.1s-17 38.1-38.1 38.1c-14.7 0-27.4-8.2-33.7-20.3 6.3 2.5 12.5 5 18.8 7.6 15.5 6.2 33.2-1.3 39.4-16.8 6.2-15.5-1.3-33.1-16.9-39.4l-15.9-6.4c2.8-.5 5.5-.9 8.3-.9z\"}}]})(props);\n};\nexport function IoLogoTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M321.2 396.3c-11.8 0-22.4-2.8-31.5-8.3-6.9-4.1-11.5-9.6-14-16.4-2.6-6.9-3.6-22.3-3.6-46.4V224h96v-64h-96V48h-61.9c-2.7 21.5-7.5 44.7-14.5 58.6-7 13.9-14 25.8-25.6 35.7-11.6 9.9-25.6 17.9-41.9 23.3V224h48v140.4c0 19 2 33.5 5.9 43.5 4 10 11.1 19.5 21.4 28.4 10.3 8.9 22.8 15.7 37.3 20.5 14.6 4.8 31.4 7.2 50.4 7.2 16.7 0 30.3-1.7 44.7-5.1 14.4-3.4 30.5-9.3 48.2-17.6v-65.6c-20.9 13.7-41.8 20.6-62.9 20.6z\"}}]})(props);\n};\nexport function IoLogoTux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.3 396c-6.7-4-13.2-11-12-18.8 2.3-15.3 2.5-21.5-.2-25.8-1.9-3.2-5.5-5-8.6-5.8 2-2.5 3.1-5.4 3.8-10.9 1.3-10-4.7-41-12.7-65.7s-29.9-50-44.7-68c-26-31.8-22.8-39.2-26.3-99.7C323.4 62.8 306.3 32 256 32s-67 32-67 59c0 28.7 2 51 2 51 1.3 33.4 1 39.4-8 55.3-4.9 8.7-27 30-35.7 44.7s-7.6 29.5-24.6 52.8c-12.4 17-13.8 28.4-9.7 44-7 8.2-3.6 19.9-5 24.9-2.6 8.7-13.7 10.3-22.3 11s-15.3 0-18.7 5.3.7 16 4.3 30-7.3 15-7.3 31 30 16 59.7 22.7 40.7 16.3 56 16.3 26.8-10.2 38-19.3c7.2-5.9 29-3.7 42.3-3.7s34.3-.6 45.7 2.4S317 480 345 480s34.7-20.7 61-34.3 42-20 42-29.7-15-16-21.7-20zm-226.5 55.5c-1.3 13-12.6 17.1-24.1 16.1-13-1.1-29-7.6-44.1-12.1s-35.5-7.5-49-9.9c-15.3-2.7 0-13.6-.2-34.2-.1-8-7.1-19.4-4.2-24.7s17.3-2.4 22.3-3.8 12.7-5.7 15.3-11.9c1.4-3.4 1.8-17.7 2.9-22.8 1.1-4.9 7.9-7.2 22.2.1s28.9 38.1 42.3 59.8 17.9 30.4 16.6 43.4zm118.5-65.8c2 10.3 3.2 24.5.7 36.3s-7 15.5-10.7 23c-2.2-6.8 5.3-13.8 4.4-30.8-.5-9.5-.8-7.8-11.5 1.8-12.2 10.8-27.6 20.1-53 22.5-21 2-32.5-8.3-32.5-8.3 5 16-4.3 24.7-4.3 24.7.3-3.7.8-14.3-2.5-21.6-4-9-9.3-18.7-9.3-18.7s8.6-2.7 11.6-10 2-17.3-8.7-27.7-52.5-37.6-55.9-42.1c-4.9-6.5-6.7-10.2-7-23.2s5.4-24.8 4.3-20.3c-.8 3.2.1 6.8.1 19.8s7.6 23.3 13.9 25c9.5 2.6 2-26.1 8-53.1s11.7-32.8 19.2-43.8 19.2-20.5 17-43.1-.1-20.1 5.1-11.8c4 6.5 13.3 24 24.7 22 19.4-3.3 43.9-24.6 47.6-28.2 3.7-3.6.7-7.1-2.3-5.8-15.5 6.7-44.3 21.5-51.5 18.2s-18.1-20.6-16.8-19.5c15.4 13.6 19.9 11.1 26.4 9 8.4-2.8 12.8-4.3 28.5-11.3s20.7-5.3 22.3-8.7-.4-6.7-4.7-5.7c-6.4 1.5-3.4 5.1-22.7 12.3-25.3 9.5-33.3 10.3-44 3-8.6-5.9-15-12.7-15-16.7s8.3-8.3 12.3-11.3 12.3-10.9 12.3-10.9 1-7.2-.6-12.7c-1.9-6.5-7.8-9.3-11.9-8.1-4.1 1.1-8 5.5-6.8 14.8 1 8.3 7 11 7 11s-2.7 3.5-5.2 4.7c0 0-.8-.3-3.5-6.3s-6.6-19.5-.3-31.1 19.6-5.2 23.8 3.8c3.9 8.3 2.4 22.7 2.4 22.7 6-2.2 13-2 21 3.5-7.1-29.8 9.5-41.1 22-41.1s22.3 9.6 22.3 25c0 12-3.5 18.2-6.9 22-4.1-.5-8.2-1.5-6.3-3.4 1.3-1.4 4.4-5.7 4.4-13.2s-5.9-13.7-13.7-13.7c-9.2 0-12.6 8.3-13.7 13s-.4 8.6-.2 10.4c.6 5 10.9 9.6 23.9 12.9s11.3 9 8.3 25.3 6.3 18.3 14.3 33.8 5.7 21.8 15.9 35.2 19 47.8 16.4 76.8c-.9 10.5-3.9 10.2 7.3 6.7 5.6-1.7 12-2.7 12-2.7 3.1-6.3 3.4-16.3 3.5-22.3.2-13.5.7-41.5-26.7-71.5 0 0 29.5 21.7 34 62 2.5 22.3-2 32.4-2 32.4 5.3 1.3 9.8 7.3 12.6 11.8 3.7 6.1-3.9-5.8-20-5.8-8.5 0-15.3 3.9-18.5 7.9s-3.1 7.6-3.2 11.7c-7.1-1.2-12.4 0-16.8 4.9-5.6 7-2.8 24.2-.8 34.6zm90.1 47.2c-24.1 10.4-32.7 23.5-47.7 31.5s-27.7 2.3-33.7-8 10.4-28.2 4.7-59.6c-4.4-24.2-6.3-31-4.9-36.8 1.4-5.5 9.4-4.4 11.5-3.9 1.3 5.4 6.7 19.5 27 19.5 0 0 23.2 2.6 32.7-21.2 0 0 5.7-.2 7.2 3.5 2.3 5.8-2.9 16.5-2.8 21.3.3 15.7 11.7 21.1 28.4 32 8.2 5.6 2.1 11.1-22.4 21.7z\"}}]})(props);\n};\nexport function IoLogoTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 32l-32 80v304h96v64h64l64-64h80l112-112V32H80zm336 256l-64 64h-96.001L192 416v-64h-80V80h304v208z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M320 143h48v129h-48zM208 143h48v129h-48z\"}}]})(props);\n};\nexport function IoLogoTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M492 109.5c-17.4 7.7-36 12.9-55.6 15.3 20-12 35.4-31 42.6-53.6-18.7 11.1-39.4 19.2-61.5 23.5C399.8 75.8 374.6 64 346.8 64c-53.5 0-96.8 43.4-96.8 96.9 0 7.6.8 15 2.5 22.1-80.5-4-151.9-42.6-199.6-101.3-8.3 14.3-13.1 31-13.1 48.7 0 33.6 17.2 63.3 43.2 80.7-16-.4-31-4.8-44-12.1v1.2c0 47 33.4 86.1 77.7 95-8.1 2.2-16.7 3.4-25.5 3.4-6.2 0-12.3-.6-18.2-1.8 12.3 38.5 48.1 66.5 90.5 67.3-33.1 26-74.9 41.5-120.3 41.5-7.8 0-15.5-.5-23.1-1.4C62.8 432 113.7 448 168.3 448 346.6 448 444 300.3 444 172.2c0-4.2-.1-8.4-.3-12.5C462.6 146 479 129 492 109.5z\"}}]})(props);\n};\nexport function IoLogoUsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M411.387 303.256c-3.119-9.577-7.891-18.561-14.301-26.952-6.422-8.382-14.396-15.826-23.93-22.331-9.539-6.498-20.721-11.63-33.553-15.4-5.143-1.363-14.189-3.506-26.104-6.418-8.516-2.074-16.5-4.2-25.5-6.367V120.065c9 2.396 15.252 6.202 21.926 10.43C324.204 139.535 333.157 155 335.78 176h69.174c-.654-18-4.65-32.76-11.996-46.02-8.07-14.543-18.977-27.024-32.73-36.956-13.75-9.922-30.225-17.49-48.377-22.455C303.967 68.416 297 66.605 288 65.386V32h-64v33.167c-7 1.044-15.148 2.445-22.426 4.25-17.242 4.283-32.388 10.868-45.951 19.764-13.571 8.905-24.352 20.112-32.604 33.627-8.251 13.523-12.312 29.52-12.312 48 0 9.585 1.407 18.993 4.157 28.235 2.752 9.241 7.442 17.967 14.042 26.181 6.603 8.214 15.495 15.658 26.687 22.332 11.183 6.672 24.705 12.064 41.576 16.171 9.287 2.345 18.83 4.534 26.83 6.576v119.586c-11-2.919-21.889-7.399-30.678-13.479-9.17-6.327-16.066-13.953-21.198-23.884-4.779-9.229-7.073-20.526-7.407-32.526H96c.695 21 5.25 39.494 13.672 55.371 8.799 16.604 20.533 29.96 35.204 40.562 14.662 10.613 31.393 18.356 51.198 23.491 8.885 2.304 18.926 3.96 27.926 5.23V480h64v-34.54c10-1.069 18.957-2.69 28.527-4.879 18.701-4.273 35.645-11.036 50.316-20.276 14.662-9.24 26.621-21.128 35.611-35.681 8.98-14.541 13.545-32.085 13.545-52.619.001-9.578-1.501-19.164-4.612-28.749zM224 209.699c-12-3.743-23.912-9.088-32.051-16.048-8.621-7.355-12.673-17.534-12.673-30.545 0-9.241 2.414-16.94 7.004-23.102 4.58-6.161 9.912-11.038 16.88-14.631 6.18-3.189 13.84-5.565 20.84-7.138v91.464zm118.902 149.772c-2.939 6.673-7.699 12.576-14.303 17.711-6.602 5.133-15.744 9.328-26.377 12.577-4.5 1.378-8.223 2.444-14.223 3.236v-107.11c10 2.624 18.18 5.332 26.326 8.131 8.062 2.744 15.748 7.443 22.537 14.116 6.785 6.676 10.309 17.03 10.309 31.06.001 6.85-1.337 13.605-4.269 20.279z\"}}]})(props);\n};\nexport function IoLogoVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.9 114c-5-23.4-17.5-38.8-40.6-46.3s-64.9-4.5-94.1 16.8c-29.9 21.8-47.6 59.7-53.8 83.8 14.7-6.3 24-7.7 39-6.9s24.5 12 24.9 25.3c.3 9.8-.2 18.7-3.6 27.7-10.8 28.7-27.7 56.5-47.6 80.8-2.9 3.6-6.4 6.9-10 9.9-10.2 8.3-18.8 6.1-25.4-5.2-5.4-9.3-9-18.9-12.2-29.1-12.4-39.7-16.8-80.9-23.8-121.6-3.3-19.5-7-39.8-18-56.9-11.6-17.8-28.6-24.6-50-22-14.7 1.8-36.9 17.5-47.8 26.4 0 0-56 46.9-81.8 71.4l21.2 27s17.9-12.5 27.5-18.3c5.7-3.4 12.4-4.1 17.2.2 4.5 3.9 9.6 9 12.3 14.1 5.7 10.7 11.2 21.9 14.7 33.4 13.2 44.3 25.5 88.7 37.8 133.3 6.3 22.8 13.9 44.2 28 63.6 19.3 26.6 39.6 32.7 70.9 21.5 25.4-9.1 46.6-26.2 66-43.9 33.1-30.2 59.1-65.4 85.5-101.2 20.4-27.7 37.3-55.7 51.4-87 13.9-31 19.4-63.5 12.3-96.8z\"}}]})(props);\n};\nexport function IoLogoVk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427 299.1c-8.6-8-15.7-12.8-18.5-20.5-1-2.7-1.3-4.3-1-7.6.4-6 5.5-13.8 39.6-58.9 14.2-18.8 32.7-41.5 32.7-58.5 0-11-4.5-13.7-20.8-13.7h-74c-6.5 0-10.9 8.9-13.6 16.4-2.8 7.5-8.2 19-21.4 43.8-13.8 26-32.3 48.8-40 52.4-2.2 1-3.6 1-5.5.8-1.2-.1-3.8-.8-6.2-3.7-2.3-2.8-5.9-7.7-4.5-53.9.8-25.8 3.7-43.8-1.7-54.8-1.1-2.2-3.5-4.5-4.8-5.5-7.7-5.5-29.4-7.5-48-7.5s-32.9 2.1-40 4.2c-7.1 2.1-15.1 6.9-18.9 12-2.5 3.3 4.3 1.6 10.9 4.6 4 1.8 9.3 4.6 11.2 9.3 8 20.8 9.7 37.3 5.3 66.7-1.1 7.2-2.3 18.5-6.6 25.5-2.4 3.9-7.9 3.6-9.5 3.1-16.1-4.9-28.6-26-41.2-50.7-13.1-25.8-19.8-43.9-23.4-51.3s-9.1-11.4-18.4-11.4H42.3c-5.2 0-9.9 4.3-9.9 9 0 11 18.6 43 29.8 66 20.2 41.4 46.7 81.4 82.4 120.2C182 376.3 233 384 249.3 384s29-.6 33.3-1.5c2-.4 4.1-1.3 5.7-2.5 7.1-5.5 5.8-16 6.3-24.2.5-8.4 1.4-19.5 7-26 5.2-6.1 11.1-7.8 18.6-4.1 7 3.5 12 9.4 17.2 15.1 10.1 10.9 19.3 23.2 31.3 32.2 5.5 4.1 11.5 6.7 17.9 8.7 8.5 2.6 16.5 2.7 25.3 2.3 9.7-.4 17-.3 29-.3s27.7.5 33.1-3.5c2.6-2 6-5 6-11.3 0-11.9-12.2-31.7-53-69.8z\"}}]})(props);\n};\nexport function IoLogoWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.062 32C138.605 32 40.134 129.701 40.134 250.232c0 41.23 11.532 79.79 31.559 112.687L32 480l121.764-38.682c31.508 17.285 67.745 27.146 106.298 27.146C381.535 468.464 480 370.749 480 250.232 480 129.701 381.535 32 260.062 32zm109.362 301.11c-5.174 12.827-28.574 24.533-38.899 25.072-10.314.547-10.608 7.994-66.84-16.434-56.225-24.434-90.052-83.844-92.719-87.67-2.669-3.812-21.78-31.047-20.749-58.455 1.038-27.413 16.047-40.346 21.404-45.725 5.351-5.387 11.486-6.352 15.232-6.413 4.428-.072 7.296-.132 10.573-.011 3.274.124 8.192-.685 12.45 10.639 4.256 11.323 14.443 39.153 15.746 41.989 1.302 2.839 2.108 6.126.102 9.771-2.012 3.653-3.042 5.935-5.961 9.083-2.935 3.148-6.174 7.042-8.792 9.449-2.92 2.665-5.97 5.572-2.9 11.269 3.068 5.693 13.653 24.356 29.779 39.736 20.725 19.771 38.598 26.329 44.098 29.317 5.515 3.004 8.806 2.67 12.226-.929 3.404-3.599 14.639-15.746 18.596-21.169 3.955-5.438 7.661-4.373 12.742-2.329 5.078 2.052 32.157 16.556 37.673 19.551 5.51 2.989 9.193 4.529 10.51 6.9 1.317 2.38.901 13.531-4.271 26.359z\"}}]})(props);\n};\nexport function IoLogoWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 265H232v179l248 36V265zM216 265H32v150l184 26.7V265zM480 32L232 67.4V249h248V32zM216 69.7L32 96v153h184V69.7z\"}}]})(props);\n};\nexport function IoLogoWordpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M259 271.3L226.2 367h-.1l-25.4 73.1c1.8.5 3.5.9 5.3 1.4h.3c15.8 4.2 32.4 6.5 49.5 6.5 8.5 0 16.8-.5 24.9-1.8 11.2-1.4 22-3.8 32.5-7.1 2.6-.8 5.2-1.7 7.8-2.6-2.8-6-8.8-19.3-9.1-19.9L259 271.3zM80.8 180.5C70.8 203.1 64 230.9 64 256c0 6.3.3 12.6.9 18.8 6.9 71.2 52.9 131 116.1 157.9 2.6 1.1 5.3 2.2 8 3.2L96 180.6c-8-.3-9.5.2-15.2-.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M430.2 175.4c-4.3-9.3-9.4-18.2-15.1-26.6-1.6-2.4-3.4-4.8-5.1-7.2-21.5-28.8-50.8-51.4-84.9-64.6-21.4-8.4-44.8-13-69.2-13-60.3 0-114.2 28-149.4 71.7-6.5 8-12.3 16.6-17.5 25.6 14.2.1 31.8.1 33.8.1 18.1 0 46-2.2 46-2.2 9.4-.6 10.4 13.1 1.1 14.2 0 0-9.4 1.1-19.8 1.6L213 362l37.8-113.3-26.8-73.6c-9.4-.5-18.1-1.6-18.1-1.6-9.4-.5-8.2-14.8 1-14.2 0 0 28.5 2.2 45.5 2.2 18.1 0 46-2.2 46-2.2 9.3-.6 10.5 13.1 1.1 14.2 0 0-9.3 1.1-19.7 1.6l62.3 185.6 17.3-57.6c8.7-22.4 13.1-40.9 13.1-55.7 0-21.3-7.7-36.1-14.3-47.6-8.7-14.3-16.9-26.3-16.9-40.4 0-15.9 12-30.7 29-30.7h2.2c26.2-.7 34.8 25.3 35.9 43v.6c.4 7.2.1 12.5.1 18.8 0 17.4-3.3 37.1-13.1 61.8l-39 112.8-22.3 65.7c1.8-.8 3.5-1.6 5.3-2.5 56.7-27.4 98-82 106.7-146.7 1.3-8.5 1.9-17.2 1.9-26 0-28.9-6.4-56.3-17.8-80.8z\"}}]})(props);\n};\nexport function IoLogoXbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M126.8 248.3c39.7-58.6 77.9-92.8 77.9-92.8s-42.1-48.9-92.8-67.4l-3.3-.8C61.7 128.4 32 188.7 32 256c0 50.7 16.9 97.5 45.2 135 0-4.4.6-70.3 49.6-142.7zM480 256c0-67.3-29.7-127.6-76.6-168.7l-3.2.9c-50.7 18.5-92.9 67.4-92.9 67.4s38.2 34.2 77.9 92.8c49 72.4 49.6 138.3 49.5 142.7C463.2 353.5 480 306.7 480 256zM201.2 80.9c29.3 13.1 54.6 34.6 54.6 34.6s25.5-21.4 54.8-34.6c36.8-16.5 64.9-11.3 72.3-9.5C346.8 46.6 303.1 32 256 32s-90.8 14.6-126.9 39.4c7.2-1.8 35.2-7.1 72.1 9.5zM358.7 292.9C312.4 236 255.8 199 255.8 199s-56.3 37-102.7 93.9c-39.8 48.9-54.6 84.8-62.6 107.8l-1.3 4.8c41 45.7 100.5 74.5 166.8 74.5s125.8-28.8 166.8-74.5l-1.4-4.8c-8-23-22.9-58.9-62.7-107.8z\"}}]})(props);\n};\nexport function IoLogoXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.8 303.9L469 32H365L209.4 303.8c-.4.7-.4 1.1 0 1.7l98.9 173.8c.4.7.8.7 1.6.7H413l-99.3-174.7c-.2-.3-.1-1 .1-1.4zM221.9 216.2L163 113c-.5-.8-1-1-2-1H65l58.9 104.4c.1.2.2.6.1.8L43 352h96.8c.8 0 1.2-.2 1.6-.9l80.5-133.7c.1-.3.1-.9 0-1.2z\"}}]})(props);\n};\nexport function IoLogoYahoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384.6 68.4c-11.3 0-22.5-.8-32.6-4.4l-96 160-96-160c-10.1 3.6-20.7 4.4-32 4.4-11.1 0-22.1-.9-32-4.4l128 212.7V448c10-3.5 20.8-4.4 32-4.4s22 .9 32 4.4V277L416 64c-9.9 3.4-20.3 4.4-31.4 4.4z\"}}]})(props);\n};\nexport function IoLogoYen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32h-80L256 253.128 144 32H64l112.368 208H128v48h73.564L216 319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.891-31H384v-48h-48.289L448 32z\"}}]})(props);\n};\nexport function IoLogoYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.6 148.8c0-45-33.1-81.2-74-81.2C379.2 65 322.7 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.6-.1 220.2 0 255.8c-.1 35.6 1 71.2 3.4 106.9 0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8 60.8.2 120.3-1 178.6-3.8 40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107 .2-35.6-.9-71.2-3.3-106.9zM207 353.9V157.4l145 98.2-145 98.3z\"}}]})(props);\n};\nexport function IoMdAddCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M363 277h-86v86h-42v-86h-86v-42h86v-86h42v86h86v42z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422c-44.3 0-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256c0-44.3 17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}}]})(props);\n};\nexport function IoMdAddCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm107 229h-86v86h-42v-86h-86v-42h86v-86h42v86h86v42z\"}}]})(props);\n};\nexport function IoMdAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 277.333H277.333V416h-42.666V277.333H96v-42.666h138.667V96h42.666v138.667H416v42.666z\"}}]})(props);\n};\nexport function IoMdAirplane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 336v-40L288 192V79.2c0-17.7-14.8-31.2-32-31.2s-32 13.5-32 31.2V192L64 296v40l160-48v113.6l-48 31.2V464l80-16 80 16v-31.2l-48-31.2V288l160 48z\"}}]})(props);\n};\nexport function IoMdAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470 124.837l-98.443-81.78-27.814 32.931 98.442 81.769L470 124.837zM167.192 74.919L139.366 42 42 124.837l27.814 32.919 97.378-82.837zm99.509 97.709H234.6v127.446l101.649 60.539L352.3 334.06l-85.6-49.917V172.628zM256 87.665c-107 0-192.601 86.021-192.601 191.166C63.399 383.98 149 470 256 470c105.936 0 192.601-86.02 192.601-191.169 0-105.144-86.665-191.166-192.601-191.166zm0 339.855c-82.393 0-149.8-66.906-149.8-148.688 0-81.777 67.407-148.684 149.8-148.684 82.394 0 149.8 66.906 149.8 148.684 0 82.839-67.406 148.688-149.8 148.688z\"}}]})(props);\n};\nexport function IoMdAlbums (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M154.7 464h266.7c23.5 0 42.7-19.2 42.7-42.7V154.7c0-23.5-19.2-42.7-42.7-42.7H154.7c-23.5 0-42.7 19.2-42.7 42.7v266.7c0 23.4 19.2 42.6 42.7 42.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M90.7 48h266.7c23.5 0 42.7 19.2 42.7 42.7V96H138.7C115.2 96 96 115.2 96 138.7V400h-5.3C67.2 400 48 380.8 48 357.3V90.7C48 67.2 67.2 48 90.7 48z\"}}]})(props);\n};\nexport function IoMdAlert (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.6 48 48 141.601 48 256s93.6 208 208 208 208-93.601 208-208S370.4 48 256 48zm24 312h-48v-40h48v40zm0-88h-48V144h48v128z\"}}]})(props);\n};\nexport function IoMdAmericanFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 256c14.1 35 36.2 66 64 90.6V165.4C68.2 190 46.1 221 32 256zM480 256c-14.1-35-36.2-66-64-90.6v181.2c27.8-24.6 49.9-55.6 64-90.6z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 105c-47.1 0-91 13.4-128 36.5v228.9c37 23.1 80.9 36.5 128 36.5s91-13.4 128-36.5V141.5c-37-23.1-80.9-36.5-128-36.5zm96 135v64h-32v-32h-48v32h-32v-32h-48v32h-32v-96h32v32h48v-32h32v32h48v-32h32v32z\"}}]}]})(props);\n};\nexport function IoMdAnalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M379.4 178.3l-87.2 133.4C299 320 303 330.5 303 342c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-3 .3-6 .8-8.9l-57.6-33.5c-8.6 8.3-20.3 13.4-33.3 13.4-8.6 0-16.6-2.3-23.6-6.2L32 364.2v57.2c0 23.5 19.2 42.7 42.7 42.7h362.7c23.5 0 42.7-19.2 42.7-42.7V208.8l-58.6-38.9c-8.1 6.3-18.3 10.1-29.4 10.1-4.4 0-8.7-.6-12.7-1.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M117 217c26.5 0 48 21.5 48 48 0 2.1-.2 4.2-.4 6.2l60.1 33.6c8.3-6.8 18.8-10.8 30.4-10.8 3.6 0 7.1.4 10.4 1.1l87.4-135.4c-5.6-7.8-8.9-17.4-8.9-27.8 0-26.5 21.5-48 48-48s48 21.5 48 48c0 3.9-.5 7.7-1.3 11.3l41.3 27.6V90.7c0-23.5-19.2-42.7-42.7-42.7H74.7C51.2 48 32 67.2 32 90.7V320l40-38.3c-1.9-5.2-3-10.8-3-16.7 0-26.5 21.5-48 48-48z\"}}]})(props);\n};\nexport function IoMdAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C132.288 32 32 132.288 32 256s100.288 224 224 224 224-100.288 224-224S379.712 32 256 32zm135.765 359.765C355.5 428.028 307.285 448 256 448s-99.5-19.972-135.765-56.235C83.972 355.5 64 307.285 64 256s19.972-99.5 56.235-135.765C156.5 83.972 204.715 64 256 64s99.5 19.972 135.765 56.235C428.028 156.5 448 204.715 448 256s-19.972 99.5-56.235 135.765z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M200.043 106.067c-40.631 15.171-73.434 46.382-90.717 85.933H256l-55.957-85.933zM412.797 288A160.723 160.723 0 0 0 416 256c0-36.624-12.314-70.367-33.016-97.334L311 288h101.797zM359.973 134.395C332.007 110.461 295.694 96 256 96c-7.966 0-15.794.591-23.448 1.715L310.852 224l49.121-89.605zM99.204 224A160.65 160.65 0 0 0 96 256c0 36.639 12.324 70.394 33.041 97.366L201 224H99.204zM311.959 405.932c40.631-15.171 73.433-46.382 90.715-85.932H256l55.959 85.932zM152.046 377.621C180.009 401.545 216.314 416 256 416c7.969 0 15.799-.592 23.456-1.716L201.164 288l-49.118 89.621z\"}}]})(props);\n};\nexport function IoMdApps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 176h80V96H96v80zm120 240h80v-80h-80v80zm-120 0h80v-80H96v80zm0-120h80v-80H96v80zm120 0h80v-80h-80v80zM336 96v80h80V96h-80zm-120 80h80V96h-80v80zm120 120h80v-80h-80v80zm0 120h80v-80h-80v80z\"}}]})(props);\n};\nexport function IoMdAppstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 152H360c0-57-46.562-103.859-104-103.859S152 95 152 152H48c18.688 216 13 312 13 312h389.999c-.001 0-5.688-98 13.001-312zM256 74.105c43.008 0 77.999 34.895 77.999 77.895H178c0-43 34.991-77.895 78-77.895zM204 397.64V228.867l142.999 84.387L204 397.64z\"}}]})(props);\n};\nexport function IoMdArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.594 100.001l-32.353-39.299C415.469 52.627 405.083 48 394.664 48H117.335c-10.416 0-20.801 4.627-26.576 12.702l-32.351 39.299C51.468 106.923 48 117.335 48 128.886v288.89C48 443.2 68.8 464 94.225 464h323.553C443.202 464 464 443.2 464 417.775v-288.89c0-11.55-3.463-21.962-10.406-28.884zM256 383.109L128.89 256h80.89v-46.224h92.443V256h80.89L256 383.109zM96.534 94.221L115.02 71.11h277.331l21.965 23.111H96.534z\"}}]})(props);\n};\nexport function IoMdArrowBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427 234.625H167.296l119.702-119.702L256 85 85 256l171 171 29.922-29.924-118.626-119.701H427v-42.75z\"}}]})(props);\n};\nexport function IoMdArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.375 85v259.704l119.702-119.702L427 256 256 427 85 256l29.924-29.922 119.701 118.626V85h42.75z\"}}]})(props);\n};\nexport function IoMdArrowDropdownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm0 272l-96-96h192l-96 96z\"}}]})(props);\n};\nexport function IoMdArrowDropdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 192l128 128 128-128z\"}}]})(props);\n};\nexport function IoMdArrowDropleftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.875-93.125-208-208-208S48 141.125 48 256s93.125 208 208 208 208-93.125 208-208zm-272 0l96-96v192l-96-96z\"}}]})(props);\n};\nexport function IoMdArrowDropleft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 128L192 256l128 128z\"}}]})(props);\n};\nexport function IoMdArrowDroprightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c114.875 0 208-93.125 208-208S370.875 48 256 48 48 141.125 48 256s93.125 208 208 208zm-32-112V160l96 96-96 96z\"}}]})(props);\n};\nexport function IoMdArrowDropright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 128l128 128-128 128z\"}}]})(props);\n};\nexport function IoMdArrowDropupCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.875-93.125-208-208-208S48 141.125 48 256s93.125 208 208 208 208-93.125 208-208zm-112 32H160l96-96 96 96z\"}}]})(props);\n};\nexport function IoMdArrowDropup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 320l128-128 128 128z\"}}]})(props);\n};\nexport function IoMdArrowForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M85 277.375h259.704L225.002 397.077 256 427l171-171L256 85l-29.922 29.924 118.626 119.701H85v42.75z\"}}]})(props);\n};\nexport function IoMdArrowRoundBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M401.4 224h-214l83-79.4c11.9-12.5 11.9-32.7 0-45.2s-31.2-12.5-43.2 0L89 233.4c-6 5.8-9 13.7-9 22.4v.4c0 8.7 3 16.6 9 22.4l138.1 134c12 12.5 31.3 12.5 43.2 0 11.9-12.5 11.9-32.7 0-45.2l-83-79.4h214c16.9 0 30.6-14.3 30.6-32 .1-18-13.6-32-30.5-32z\"}}]})(props);\n};\nexport function IoMdArrowRoundDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99.4 284.9l134 138.1c5.8 6 13.7 9 22.4 9h.4c8.7 0 16.6-3 22.4-9l134-138.1c12.5-12 12.5-31.3 0-43.2-12.5-11.9-32.7-11.9-45.2 0l-79.4 83v-214c0-16.9-14.3-30.6-32-30.6-18 0-32 13.7-32 30.6v214l-79.4-83c-12.5-11.9-32.7-11.9-45.2 0s-12.5 31.2 0 43.2z\"}}]})(props);\n};\nexport function IoMdArrowRoundForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M284.9 412.6l138.1-134c6-5.8 9-13.7 9-22.4v-.4c0-8.7-3-16.6-9-22.4l-138.1-134c-12-12.5-31.3-12.5-43.2 0-11.9 12.5-11.9 32.7 0 45.2l83 79.4h-214c-17 0-30.7 14.3-30.7 32 0 18 13.7 32 30.6 32h214l-83 79.4c-11.9 12.5-11.9 32.7 0 45.2 12 12.5 31.3 12.5 43.3 0z\"}}]})(props);\n};\nexport function IoMdArrowRoundUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M412.6 227.1L278.6 89c-5.8-6-13.7-9-22.4-9h-.4c-8.7 0-16.6 3-22.4 9l-134 138.1c-12.5 12-12.5 31.3 0 43.2 12.5 11.9 32.7 11.9 45.2 0l79.4-83v214c0 16.9 14.3 30.6 32 30.6 18 0 32-13.7 32-30.6v-214l79.4 83c12.5 11.9 32.7 11.9 45.2 0s12.5-31.2 0-43.2z\"}}]})(props);\n};\nexport function IoMdArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.375 427V167.296l119.702 119.702L427 256 256 85 85 256l29.924 29.922 119.701-118.626V427h42.75z\"}}]})(props);\n};\nexport function IoMdAt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M265.6 212.3c-10.5 0-18.5 4.4-24 13.2-5.5 8.8-9.1 22-10.8 39.6-.9 11.7 0 20.5 2.7 26.5s7.1 9 13.1 9c5.5 0 10.3-1.5 14.6-4.4 4.3-2.9 8.1-8.3 11.3-16.2l6.1-66c-2.2-.5-4.4-.9-6.5-1.2-2.3-.4-4.4-.5-6.5-.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm127.8 201.9c-.9 21.4-7.6 39.9-20 55.6-12.4 15.6-31 23.4-55.6 23.4-8.2 0-15.3-2.2-21.2-6.6-6-4.4-10.2-10.7-12.6-18.8-4.1 8.3-9.4 14.5-15.7 18.6-6.3 4.1-13.7 6.2-22.2 6.2-15.1 0-26.6-5.8-34.6-17.3s-10.9-26.8-8.8-45.9c2.6-24.4 10-44 22.2-58.7 12.2-14.7 27-22 44.4-22 12.2 0 22.1 1.3 29.5 3.8 7.4 2.5 15.6 5.7 24.5 11l-.5-.1h.8l-7.7 83.4c-.5 8.5.1 14.6 1.7 17.8 1.7 3.2 3.9 4.9 6.7 4.9 11.3 0 20.4-5.1 27.2-15.6 6.8-10.5 10.6-23.6 11.4-39.6 1.6-33-5.1-58.7-20.2-77.1-15.1-18.4-38.3-27.7-69.7-27.7-30.5 0-54.8 9.9-72.8 29.8s-27.7 46.9-29.3 81.2c-1.7 33.4 5.6 59.8 21.9 79.1 16.3 19.4 39.7 29.1 70.3 29.1 8.5 0 17.3-.9 26.5-2.7 9.1-1.8 17.1-4.1 23.7-6.8l5.8 24.2c-6.8 4.1-15.4 7.3-25.9 9.6-10.5 2.3-20.7 3.4-30.7 3.4-40.8 0-72.3-12.1-94.3-36.4-22-24.2-32.2-57.4-30.5-99.6 1.8-41.8 14.9-74.9 39.1-99.4 24.3-24.5 56.5-36.7 96.7-36.7 39.5 0 69.8 11.6 90.7 34.7 21.2 23.2 30.8 54.9 29.2 95.2z\"}}]})(props);\n};\nexport function IoMdAttach (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.334 128v234.666C341.334 409.604 302.938 448 256 448c-46.937 0-85.333-38.396-85.333-85.334V117.334C170.667 87.469 194.135 64 224 64c29.864 0 53.333 23.469 53.333 53.334v245.333c0 11.729-9.605 21.333-21.334 21.333s-21.333-9.604-21.333-21.333V160h-32v202.667C202.667 392.531 226.135 416 256 416c29.865 0 53.334-23.469 53.334-53.333V117.334C309.334 70.401 270.938 32 224 32s-85.334 38.401-85.334 85.334v245.332C138.667 427.729 190.938 480 256 480c65.062 0 117.334-52.271 117.334-117.334V128h-32z\"}}]})(props);\n};\nexport function IoMdBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.5 96H167.2c-12.2 0-21.8 6.2-28.2 15.6L43 256l96 144.2c6.4 9.4 16 15.8 28.2 15.8h266.2c19.5 0 35.5-16 35.5-35.6V131.6C469 112 453 96 433.5 96zm-53.3 223.8l-25 25.1-63.7-63.8-63.7 63.8-25-25.1 63.7-63.8-63.7-63.8 25-25.1 63.7 63.8 63.7-63.8 25 25.1-63.7 63.8 63.7 63.8z\"}}]})(props);\n};\nexport function IoMdBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 128h48v256H88zM232 128h48v256h-48zM160 144h48v224h-48zM304 144h48v224h-48zM376 128h48v256h-48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M104 104V56H16v400h88v-48H64V104zM408 56v48h40v304h-40v48h88V56z\"}}]})(props);\n};\nexport function IoMdBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M365.9 402.6L343 416.1l-16-28 20.2-11.9c-5.2-8.5-9.8-17.4-13.9-26.7-1.4-3.1-2.7-6.3-3.9-9.5l-25.1 5.8-7.1-31.6 22.6-5.2c-2.8-12.1-4.7-24-5.5-37H290v-32h24.3c.8-12 2.7-24.8 5.5-36.8l-22.6-5.2 7.1-31.6 25.1 5.8c1.3-3.2 2.6-6.4 4-9.6 4.1-9.2 8.7-18.1 13.8-26.6L327 124.1l16-28 22.8 13.5c5.2-6.4 10.8-12.5 16.7-18.3C347.4 64.1 303.5 48 256 48s-91.4 16.1-126.5 43.2c5.9 5.8 11.5 12 16.7 18.3L169 96.1l16 28-20.2 11.9c5.1 8.5 9.8 17.4 13.8 26.6 1.4 3.2 2.7 6.4 4 9.6l25.1-5.8 7.1 31.6-22.6 5.2c2.8 12.1 4.6 24.8 5.5 36.8H222v32h-24.3c-.8 13-2.7 24.9-5.5 37l22.6 5.2-7.1 31.6-25.1-5.8c-1.2 3.2-2.5 6.3-3.9 9.5-4.1 9.2-8.7 18.1-13.9 26.7l20.2 11.9-16 28-22.9-13.5c-5.2 6.3-10.7 12.4-16.6 18.2 35.1 27.1 79 43.2 126.5 43.2s91.4-16.1 126.5-43.2c-5.9-5.8-11.4-11.9-16.6-18.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M393.8 126l18.1 10.7-16 28-21.2-12.5c-5 8.3-9.5 16.9-13.3 25.9-.2.4-.4.9-.5 1.3l21 4.9-7.1 31.6-23.9-5.5c-2.3 9.7-3.8 19.6-4.6 29.6H370v32h-23.6c.8 10 2.3 20 4.6 29.8l23.9-5.5 7.1 31.6-21 4.9c.2.4.3.8.5 1.2 3.8 9 8.3 17.7 13.3 26l21.1-12.4 16 28-18 10.6c3.3 3.9 6.8 7.7 10.5 11.3l2 2C442 362 464 311.4 464 256s-22-106-57.7-143.4c-.7.7-1.4 1.3-2 2-3.7 3.7-7.2 7.5-10.5 11.4zM118.2 386.1l-18-10.6 16-28 21.1 12.4c5.1-8.3 9.5-17 13.3-26 .2-.4.3-.8.5-1.2l-21-4.9 7.1-31.6 23.9 5.5c2.3-9.8 3.8-19.8 4.6-29.8H142v-32h23.6c-.8-10-2.3-19.9-4.6-29.6l-23.9 5.5-7.1-31.6 21-4.9c-.2-.4-.3-.9-.5-1.3-3.8-9-8.2-17.7-13.3-25.9L116 164.6l-16-28 18.1-10.7c-3.4-3.9-6.9-7.7-10.6-11.4l-2-2C70 150 48 200.6 48 256s22 106 57.7 143.4c.7-.7 1.4-1.3 2-2 3.6-3.6 7.1-7.4 10.5-11.3z\"}}]})(props);\n};\nexport function IoMdBasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.1 205.2L272.9 72.5C269 66.8 262.5 64 256 64c-6.5 0-13 2.8-16.9 8.7l-89.2 132.5H52.4c-11.2 0-20.4 9.1-20.4 20.2 0 1.8.2 3.6.8 5.5l51.7 187.5c4.7 17 20.4 29.5 39.1 29.5h264.7c18.7 0 34.4-12.5 39.3-29.5l51.7-187.5.6-5.5c0-11.1-9.2-20.2-20.4-20.2h-97.4zm-167.2 0l61.1-89 61.1 89H194.9zM256 367.1c-22.4 0-40.7-18.2-40.7-40.5s18.3-40.5 40.7-40.5 40.7 18.2 40.7 40.5-18.3 40.5-40.7 40.5z\"}}]})(props);\n};\nexport function IoMdBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M191.6 272c-3.8 55-26.4 107.1-64.5 147.7 31.6 25 70.9 41 112.9 44.3V272h-48.4zM272 464c42-3.3 81.5-19.4 113.1-44.5-38-40.6-60.5-92.5-64.3-147.5H272v192zM240 48c-42 3.2-80.5 19-111.9 43.6 38 40.9 60.3 93.4 63.7 148.4H240V48zM320.7 240c3.4-55 25.6-107.4 63.5-148.3C352.7 67.1 314 51.2 272 48v192h48.7zM408.6 114.2c-17.2 18.5-30.7 39.7-40.1 62.9-8.2 20.2-13.1 40.9-14.6 62.9H464c-3.7-48-24.1-92.2-55.4-125.8zM368.5 333.1c9.6 23.7 23.3 45.1 40.9 63.8C440.3 363.4 460.3 320 464 272H354.1c1.6 21 6.5 41.5 14.4 61.1zM143.9 177.1c-9.5-23.3-23-44.5-40.3-63.1-31.4 33.6-51.9 78-55.6 126h110.5c-1.6-22-6.5-42.8-14.6-62.9zM102.7 397.1c17.7-18.8 31.5-40.3 41.1-64 8-19.6 12.8-40.1 14.5-61.1H48c3.7 48 23.8 91.6 54.7 125.1z\"}}]})(props);\n};\nexport function IoMdBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8zM233.6 435.2V312h-44.8l89.6-168v123.2h44.8l-89.6 168z\"}}]})(props);\n};\nexport function IoMdBatteryDead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8zM320 432H192V124.8h128V432z\"}}]})(props);\n};\nexport function IoMdBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M338.2 76.8h-37.4V32h-89.6v44.8h-37.4c-16.4 0-29.8 13.4-29.8 29.8V450c0 16.6 13.4 30 29.8 30H338c16.6 0 30-13.4 30-29.8V106.6c0-16.4-13.4-29.8-29.8-29.8z\"}}]})(props);\n};\nexport function IoMdBeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448.1 34.9c0-1.2-.4-2.9-2.9-2.9H128.5c-54.3 0-64.4 27.4-64.4 39.8C94.4 76 96 76.5 96 108.5v307c0 35.3 28.9 64.5 64.3 64.5H368c35.3 0 64-29.2 64-64.5V73.3c2.2-17.5 12-31.8 13.1-33.5 1.2-1.9 3-3.8 3-4.9zM354.2 432H176.3c-15.9 0-29.7-11.9-32.3-27.1V80h240v319.7c0 18-12.4 32.3-29.8 32.3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M182 160v226c0 4.4 3.6 8 8 8h148c4.4 0 8-3.6 8-8V160H182z\"}}]})(props);\n};\nexport function IoMdBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.7 264.5c29 0 52.4-22.9 52.4-51.2s-23.4-51.2-52.4-51.2-52.4 22.9-52.4 51.2 23.5 51.2 52.4 51.2zm209.5-102.4H238.5v119.5H98.9V128H64v256h34.9v-51.2h314.2V384H448V230.4c0-37.7-31.2-68.3-69.8-68.3z\"}}]})(props);\n};\nexport function IoMdBeer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 140h-16v-6c8.9-9 16-22.9 16-38 0-35.3-28.7-64-64-64-16.3 0-31.1 6.1-42.4 16.1C297.2 38 281.4 32 264.2 32c-15.8 0-30.4 5.1-42.3 13.7C212 37.2 199 32 184.9 32c-17.1 0-32.4 7.6-42.8 19.5-11.7-12-28-19.5-46.1-19.5-35.3 0-64 28.7-64 64 0 16.2 6.1 31 16 42.3V193c0 26.5 21.5 48 48 48v174.5c0 35.3 28.8 64.5 64.2 64.5H336c35.3 0 64.1-29.2 64.1-64.5V372h16c50 0 64-32.7 64-68v-96c-.1-35.3-17.1-68-64.1-68zm-64 52H144v-53.7c.3-.4.7-.8 1-1.2 1.2-1.5 2.4-3 3.5-4.6 1.5 1.2 3 2.4 4.6 3.4 9.1 6.1 20 9.7 31.7 9.7 6.4 0 12.6-1.1 18.3-3 12.8 20.2 35.3 33.7 61 33.7 22 0 41.7-9.9 54.9-25.4 5.7-6.7 10.2-14.4 13.1-22.9H352v64zM96 128.1v75c-9 0-16-7.2-16-16v-63.3c-8-4.5-13.4-12.1-15.3-21-.5-2.1-.7-4.4-.7-6.7 0-17.6 14.4-32 32-32 11.8 0 23.3 7.7 30.1 15.4s26.7 7.7 33.9 0c6.8-7.3 14.3-15.4 24.8-15.4 6 0 11.6 2.2 15.9 5.8 1.9 1.6 3.6 3.5 4.9 5.6 1.1 1.8 2 4.2 3.1 5.8 2.7 3.4 6.5 5.5 11.2 5.5 4.4 0 8.3-1.9 11-5 .6-.7 1.2-1.5 1.7-2.3 2-2.5 4.2-4.8 6.7-6.8 6.8-5.4 15.5-8.6 24.8-8.6 10.6 0 20.2 4.1 27.4 10.9 1.7 1.6 6.7 4.5 13.2 5.1 4.5.4 6.1.3 8.2 0 10.3-1.3 14.4-4.7 16.4-6.6 5.8-5.8 13.8-9.4 22.6-9.4 17.6 0 32 14.4 32 32 .2 3.1-.3 6.2-1.2 9.1-2.5-5.5-8.1-9.2-14.6-9.2h-55s-8.7-.7-8.7 8.2c0 8.9-2.9 17.1-7.8 23.7-7.3 9.9-19.1 16.4-32.4 16.4-14.9 0-27.9-8.1-34.8-20.2-1.6-2.7-2.8-5.6-3.7-8.6-.1-.6-.3-1.1-.4-1.6-2-5.9-7.5-10.2-14.1-10.2-3.9 0-7.5 1.5-10.2 4l-.1.1c-2.4 2.1-5.3 3.7-8.4 4.7-2.4.8-5 1.2-7.7 1.2-7.5 0-14.7-4-18.8-8.6-10-11.4-23.7-6.8-29.7-5.5-6 1.3-12.2 11.7-12.2 11.7-1.1 2.1-2.4 4-3.9 5.8-6 6.7-15.2 11-24.2 11zM432 304c0 17.7-6.3 24-24 24h-8V184h8c17.7 0 24 6.3 24 24v96z\"}}]})(props);\n};\nexport function IoMdBicycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.666 131.202c18.668 0 33.598-14.935 33.598-33.601S349.334 64 330.666 64C312 64 297.07 78.935 297.07 97.601s14.93 33.601 33.596 33.601zm56 130.132c-51.332 0-93.332 42-93.332 93.333s42 93.333 93.332 93.333C438 448 480 406 480 354.667s-42-93.333-93.334-93.333zm0 158.666c-36.402 0-65.332-28.93-65.332-65.333s28.93-65.333 65.332-65.333c36.404 0 65.334 28.93 65.334 65.333S423.07 420 386.666 420zm-81.069-196H384v-32h-58.845l-34.62-60.134c-5.605-9.333-15.869-15.864-27.07-15.864-8.399 0-16.798 3.732-22.399 9.333L169.334 194.4c-5.601 5.601-9.333 14-9.333 22.399 0 12.131 9.202 21.465 18.535 27.065L240 282.134V368h32V256l-39.333-32 42.929-44.533L305.597 224zm-180.264 37.334C74 261.334 32 303.334 32 354.667S74 448 125.333 448s93.333-42 93.333-93.333-41.999-93.333-93.333-93.333zm0 158.666C88.934 420 60 391.07 60 354.667s28.934-65.333 65.333-65.333 65.333 28.93 65.333 65.333S161.732 420 125.333 420z\"}}]})(props);\n};\nexport function IoMdBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399 159.9L270.5 32H248v170L144.7 99.2 113 130.8 238.8 256 113 381.2l31.7 31.6L248 310v170h22.5L399 352.1 302.2 256l96.8-96.1zm-106-42.1l42.3 42.1L293 202v-84.2zm42.3 234.3L293 394.2V310l42.3 42.1z\"}}]})(props);\n};\nexport function IoMdBoat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M84.255 413h1.063c34.123 0 63.977-19.021 85.305-42.494 21.325 23.473 51.18 42.762 85.304 42.762s63.979-19.334 85.305-42.806C362.559 393.934 392.412 413 426.535 413h1.062l51.253-138.78c2.126-5.329 1.063-11.641-1.07-16.976-2.136-5.333-7.237-8.487-12.567-10.623L427 234.133v-98.15C427 112.51 407.344 93 383.884 93h-63.979l-15.993-53h-95.969l-15.995 53h-63.979C104.511 93 85 112.51 85 135.982v98.15l-38.074 12.533c-5.33 2.136-10.582 5.334-12.718 10.667-2.135 5.335-3.158 10.49-1.031 16.887L84.255 413zM128 136h256v84.261l-128-41.605-128 41.605V136z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M341.231 408.007c-52.253 36.267-118.356 36.258-170.608-.009 0 0-57.638 64.002-106.632 64.002h21.327c29.854 0 58.646-11.726 85.305-25.594 53.315 27.734 117.293 27.728 170.608-.007C367.89 460.268 396.681 472 426.535 472h21.328c-47.651 0-106.632-63.993-106.632-63.993z\"}}]})(props);\n};\nexport function IoMdBody (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c22 0 40 18 40 40s-18 40-40 40-40-18-40-40 18-40 40-40zm192 144.1H320V464h-42.7V320h-42.7v144H192V192.1H64v-42.7h384v42.7z\"}}]})(props);\n};\nexport function IoMdBonfire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.2 350.6c-.8-8.2-8.2-14.6-17.3-14.6-8.3 0-15.2 5.4-16.9 12.5L221.1 441c-.5 2.3-.8 4.6-.8 7 0 17.7 15.5 32 34.7 32s34.7-14.3 34.7-32c0-2.9-.4-5.7-1.2-8.4l-16.3-89zM310.1 355zM404.3 390.3c-1.9-1.4-3.6-2.9-5.6-3.9l-68.9-47.5c-6.3-3.8-13-3.7-17.9.9-4.5 4.1-5.1 10.4-1.8 15.4l53 65.8c1 1.5 2.3 2.8 3.6 4.2 8.5 9.1 27.2 9.6 37.5 0 10.4-9.8 10.3-27.2.1-34.9zM382.2 335zM450.4 322.5l-64.5-2.3c-4.2-.6-8 2.1-8.7 6-.7 3.6 1.5 7.1 5.1 8.8h.1l62.5 17.8c9 1.9 19.1-2.3 19.1-11.6 0-11.9-3.3-17.5-13.6-18.7zM129.5 335zM129.5 335c3.6-1.6 5.7-5.2 5.1-8.8-.7-4-4.5-6.6-8.7-6l-64.5 2.3C51 323.7 48 329.3 48 341.1c0 9.3 9.9 13.6 18.8 11.6l62.5-17.8c.1.1.1.1.2.1zM182.2 338.8l-68.9 47.4c-2 1.1-3.9 2.4-5.6 3.9-10.4 9.6-10.4 25.1 0 34.6 10.4 9.6 27.1 9.6 37.5 0 1.4-1.3 2.6-2.7 3.6-4.2l53-65.6c3.3-5 2.7-11.2-1.8-15.3-4.8-4.5-12.6-4.8-17.8-.8zM256 32s30.2 35.4 30.2 64.4c0 27.8-18.2 50.3-45.9 50.3-27.9 0-48.9-22.5-48.9-50.3l.4-6.9c-27.2 32.3-43.5 76.2-43.5 121.8 0 59.6 48.2 107.8 107.8 107.8s107.8-48.2 107.8-107.8C363.8 138.7 328 53.7 256 32zm-3.9 246.7c-24 0-43.4-18.9-43.4-42.3 0-21.8 14.1-37.2 37.9-42 23.8-4.9 48.5-16.3 62.3-34.8 5.3 17.4 7.9 35.7 7.9 54.4 0 35.7-29 64.7-64.7 64.7z\"}}]})(props);\n};\nexport function IoMdBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.2 80.4l-170.2 32-170.2-32C64 77 48 97.3 48 118v244.5c0 20.7 16 32.6 37.8 37.6L256 432l170.2-32c21.8-5 37.8-16.9 37.8-37.6V118c0-20.7-16-41-37.8-37.6zm0 282l-151.2 32V149.9l151.2-32v244.5zm-189.2 32l-151.2-32V118L237 150v244.4z\"}}]})(props);\n};\nexport function IoMdBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 64H152c-22.002 0-40 17.998-40 40v344l144-64 144 64V104c0-22.002-17.998-40-40-40z\"}}]})(props);\n};\nexport function IoMdBookmarks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.2 64h-21c15 5.7 22.8 20.6 22.8 42.7v298.7c0 22.1-7 37.3-22.8 42.7h21c23.7 0 42.8-19.2 42.8-42.7V106.7c0-23.5-19.1-42.7-42.8-42.7zM345.5 64.2c-1.4-.1-2.8-.2-4.2-.2H106.7C83.2 64 64 83.2 64 106.7v298.7c0 23.5 19.2 42.7 42.7 42.7h234.7c1.4 0 2.8-.1 4.2-.2 21.5-2.1 38.5-20.4 38.5-42.5V106.7c-.1-22.1-17.1-40.4-38.6-42.5zM208 256l-56-32-56 32V96h112v160z\"}}]})(props);\n};\nexport function IoMdBowtie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M276 304h-40c-15.4 0-28-12.6-28-28v-40c0-15.4 12.6-28 28-28h40c15.4 0 28 12.6 28 28v40c0 15.4-12.6 28-28 28zM176 280v-48c0-18.2 8.7-34.4 22.2-44.6C192 160 96 96 64 96c-17.6 0-32 14.4-32 32v256c0 17.6 14.3 32 32 32 32 0 128-64 134.2-91.4-13.5-10.2-22.2-26.4-22.2-44.6zM448 96c-32 0-128 64-134.2 91.4 13.5 10.2 22.2 26.4 22.2 44.6v48c0 18.2-8.7 34.4-22.2 44.6C320 352 416 416 448 416c17.7 0 32-14.4 32-32V128c0-17.6-14.4-32-32-32z\"}}]})(props);\n};\nexport function IoMdBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 144v-39.6C352 82 334 64 311.6 64H200.4C178 64 160 82 160 104.4V144H48v263.6C48 430 66 448 88.4 448h335.2c22.4 0 40.4-18 40.4-40.4V144H352zm-40 0H200v-40h112v40z\"}}]})(props);\n};\nexport function IoMdBrowsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 64H88c-26.6 0-48 21.6-48 48v288c0 26.4 21.4 48 48 48h336c26.4 0 48-21.6 48-48V112c0-26.4-21.4-48-48-48zm0 336H88V176h336v224z\"}}]})(props);\n};\nexport function IoMdBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.9 302.2c-39.1 0-70.7 31-70.7 69.3 0 30.3-27.3 46.2-47.2 46.2C53.7 446 90.7 464 126.3 464c52.1 0 94.3-41.4 94.3-92.4 0-38.4-31.6-69.4-70.7-69.4zM473.1 85.7l-31.6-31c-9.2-9-24-9-33.2 0L197 261.8l64.8 63.5 211.2-207c9.3-9 9.3-23.6.1-32.6z\"}}]})(props);\n};\nexport function IoMdBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 160h-67.4c-10.8-18.7-25.7-34.8-43.7-47L376 73.8 342.2 40l-52.1 52.1C279 89.4 267.8 88 256 88s-23 1.4-33.8 4.1L169.8 40 136 73.8l38.9 39.1c-17.8 12.2-32.6 28.3-43.4 47H64v48h50.2c-1.2 7.9-2.2 15.8-2.2 24v24H64v48h48v24c0 8.2 1 16.1 2.2 24H64v48h67.4c25 43 71.3 72 124.6 72s99.6-29 124.6-72H448v-48h-50.2c1.2-7.9 2.2-15.8 2.2-24v-24h48v-48h-48v-24c0-8.2-1-16.1-2.2-24H448V160z\"}}]})(props);\n};\nexport function IoMdBuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M474.1 398.2L289.1 212c18.3-47 8.1-102.3-30.5-141.1C217.9 30 156.9 21.8 108.1 44.3l87.4 88-61 61.4-89.5-88c-24.3 49-14.1 110.4 26.5 151.3 38.6 38.9 93.5 49.1 140.3 30.7l185 186.2c8.1 8.2 20.3 8.2 28.5 0l46.8-47c10.2-8.3 10.2-22.6 2-28.7z\"}}]})(props);\n};\nexport function IoMdBulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 428c0 10.6 8.6 20 20 20h88c11.4 0 20-9.4 20-20v-18H192v18zm64-364c-79.7 0-144 59.9-144 134 0 45.7 24.1 86.2 61.4 110.6V352c0 10.6 9.3 19.2 20.6 19.2h123.9c11.4 0 20.6-8.6 20.6-19.2v-43.4C375.9 284.2 400 243.7 400 198c0-74.1-64.3-134-144-134z\"}}]})(props);\n};\nexport function IoMdBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 352c0 19.198 13.864 24.531 26.667 36.271v38.396c0 11.729 9.599 21.334 21.333 21.334h21.333c11.734 0 21.334-9.604 21.334-21.334v-21.333h170.666v21.333c0 11.729 9.604 21.334 21.334 21.334H384c11.729 0 21.333-9.604 21.333-21.334v-38.396C418.136 376.531 432 370.136 432 352V148.334C432 73.667 349.864 64 256 64S80 73.667 80 148.334V352zm80 15.989c-18.136 0-32-13.864-32-32 0-18.135 13.864-32 32-32s32 13.865 32 32c0 18.136-13.864 32-32 32zm192 0c-18.136 0-32-13.864-32-32 0-18.135 13.864-32 32-32s32 13.865 32 32c0 18.136-13.864 32-32 32zm32-122.656H128V138.667h256v106.666z\"}}]})(props);\n};\nexport function IoMdBusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M261 149.3V64H48v384h416V149.3H261zm-127.8 256H90.6v-42.7h42.6v42.7zm0-85.3H90.6v-42.7h42.6V320zm0-85.3H90.6V192h42.6v42.7zm0-85.4H90.6v-42.7h42.6v42.7zm85.2 256h-42.6v-42.7h42.6v42.7zm0-85.3h-42.6v-42.7h42.6V320zm0-85.3h-42.6V192h42.6v42.7zm0-85.4h-42.6v-42.7h42.6v42.7zm203 256H261v-42.7h42.6V320H261v-42.7h42.6v-42.7H261V192h160.4v213.3zm-37.6-170.6h-42.6v42.7h42.6v-42.7zm0 85.3h-42.6v42.7h42.6V320z\"}}]})(props);\n};\nexport function IoMdCafe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 400h368v48H48zM424 64H80v224c0 44 36 80 80 80h144c44 0 80-36 80-80v-64h40c22 0 40-18 40-40v-80c0-22-18-40-40-40zm0 112h-40v-64h40v64z\"}}]})(props);\n};\nexport function IoMdCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 48H144c-26.6 0-48 21.6-48 48v320c0 26.4 21.4 48 48 48h224c26.4 0 48-21.6 48-48V96c0-26.4-21.4-48-48-48zM200 416h-48v-48h48v48zm0-88h-48v-48h48v48zm0-88h-48v-48h48v48zm80 176h-48v-48h48v48zm0-88h-48v-48h48v48zm0-88h-48v-48h48v48zm80 176h-48V280h48v136zm0-176h-48v-48h48v48zm0-96H152V96h208v48z\"}}]})(props);\n};\nexport function IoMdCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.005 272h-96v96h96v-96zm-32-208v32h-160V64h-48v32h-24.01c-22.002 0-40 17.998-40 40v272c0 22.002 17.998 40 40 40h304.01c22.002 0 40-17.998 40-40V136c0-22.002-17.998-40-40-40h-24V64h-48zm72 344h-304.01V196h304.01v212z\"}}]})(props);\n};\nexport function IoMdCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.666 330.667a250.385 250.385 0 0 1-75.729-11.729c-7.469-2.136-16-1.073-21.332 5.333l-46.939 46.928c-60.802-30.928-109.864-80-140.802-140.803l46.939-46.927c5.332-5.333 7.462-13.864 5.332-21.333-8.537-24.531-12.802-50.136-12.802-76.803C181.333 73.604 171.734 64 160 64H85.333C73.599 64 64 73.604 64 85.333 64 285.864 226.136 448 426.666 448c11.73 0 21.334-9.604 21.334-21.333V352c0-11.729-9.604-21.333-21.334-21.333z\"}}]})(props);\n};\nexport function IoMdCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"256\",\"cy\":\"280\",\"r\":\"63\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M440 96h-88l-32-32H192l-32 32H72c-22.092 0-40 17.908-40 40v272c0 22.092 17.908 40 40 40h368c22.092 0 40-17.908 40-40V136c0-22.092-17.908-40-40-40zM256 392c-61.855 0-112-50.145-112-112s50.145-112 112-112 112 50.145 112 112-50.145 112-112 112z\"}}]})(props);\n};\nexport function IoMdCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.208 117.333c-4.271-12.802-16-21.333-29.875-21.333H138.667c-13.875 0-25.604 8.531-29.875 21.333L64 234.667v160C64 406.396 73.604 416 85.333 416h21.334c11.729 0 21.333-9.604 21.333-21.333V384h256v10.667c0 11.729 9.604 21.333 21.333 21.333h21.334c11.729 0 21.333-9.604 21.333-21.333v-160l-44.792-117.334zM138.667 320c-18.125 0-32-13.865-32-32s13.875-32 32-32 32 13.866 32 32-13.875 32-32 32zm234.666 0c-18.125 0-32-13.865-32-32s13.875-32 32-32 32 13.866 32 32-13.875 32-32 32zM106.667 213.333l32-85.333h234.666l32 85.333H106.667z\"}}]})(props);\n};\nexport function IoMdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M435.2 80H76.8c-24.9 0-44.6 19.6-44.6 44L32 388c0 24.4 19.9 44 44.8 44h358.4c24.9 0 44.8-19.6 44.8-44V124c0-24.4-19.9-44-44.8-44zm0 308H76.8V256h358.4v132zm0-220H76.8v-44h358.4v44z\"}}]})(props);\n};\nexport function IoMdCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M169.6 377.6c-22.882 0-41.6 18.718-41.6 41.601 0 22.882 18.718 41.6 41.6 41.6s41.601-18.718 41.601-41.6c-.001-22.884-18.72-41.601-41.601-41.601zM48 51.2v41.6h41.6l74.883 151.682-31.308 50.954c-3.118 5.2-5.2 12.482-5.2 19.765 0 27.85 19.025 41.6 44.825 41.6H416v-40H177.893c-3.118 0-5.2-2.082-5.2-5.2 0-1.036 2.207-5.2 2.207-5.2l20.782-32.8h154.954c15.601 0 29.128-8.317 36.4-21.836l74.882-128.8c1.237-2.461 2.082-6.246 2.082-10.399 0-11.446-9.364-19.765-20.8-19.765H135.364L115.6 51.2H48zm326.399 326.4c-22.882 0-41.6 18.718-41.6 41.601 0 22.882 18.718 41.6 41.6 41.6S416 442.082 416 419.2c0-22.883-18.719-41.6-41.601-41.6z\"}}]})(props);\n};\nexport function IoMdCash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96v256h448V96H32zm160.5 224h-80.4c0-26.6-21.5-48.1-48.1-48.1V192c35.3 0 64-28.7 64-64h64.5c-19.9 23.5-32.5 57.8-32.5 96s12.6 72.5 32.5 96zM448 271.9c-26 0-48 21.5-48 48.1h-80.5c19.9-23.5 32.5-57.8 32.5-96s-12.6-72.5-32.5-96H384c0 35.3 28.7 64 64 64v79.9zM32 384h448v32H32z\"}}]})(props);\n};\nexport function IoMdCellular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 448h384V64L64 448z\"}}]})(props);\n};\nexport function IoMdChatboxes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391.553 64H57.607C53.131 64 48 67.745 48 72.159v214.217c0 4.413 5.131 8.624 9.607 8.624H115v88.894L205.128 295h186.425c4.477 0 7.447-4.211 7.447-8.624V72.159c0-4.414-2.971-8.159-7.447-8.159z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M456.396 127H424v166.57c0 15.987-6.915 26.43-25.152 26.43H218.096l-38.905 39h129.688L399 448v-89h57.396c4.478 0 7.604-4.262 7.604-8.682V136.103c0-4.414-3.126-9.103-7.604-9.103z\"}}]})(props);\n};\nexport function IoMdChatbubbles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M132.8 368c-20.2 0-44.8-24.6-44.8-44.8V160h-9.6C61.7 160 48 173.7 48 190.4V464l58.5-58h215.1c16.7 0 30.4-14.1 30.4-30.9V368H132.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M429.1 48H149.9C130.7 48 115 63.7 115 82.9V309c0 19.2 15.7 35 34.9 35h238.2l75.9 53V82.9c0-19.2-15.7-34.9-34.9-34.9z\"}}]})(props);\n};\nexport function IoMdCheckboxOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.531 215.469l-29.864 29.864 96 96L448 128l-29.864-29.864-183.469 182.395-66.136-65.062zm236.802 189.864H106.667V106.667H320V64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V234.667h-42.667v170.666z\"}}]})(props);\n};\nexport function IoMdCheckbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V106.667C448 83.198 428.802 64 405.333 64zm-192 298.667L106.667 256l29.864-29.864 76.802 76.802 162.136-162.136 29.864 29.865-192 192z\"}}]})(props);\n};\nexport function IoMdCheckmarkCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.718 216.482L141.6 245.6l93.6 93.6 208-208-29.118-29.118L235.2 279.918l-64.482-63.436zM422.4 256c0 91.518-74.883 166.4-166.4 166.4S89.6 347.518 89.6 256 164.482 89.6 256 89.6c15.6 0 31.2 2.082 45.764 6.241L334 63.6C310.082 53.2 284.082 48 256 48 141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208h-41.6z\"}}]})(props);\n};\nexport function IoMdCheckmarkCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm-42.7 318.9L106.7 260.3l29.9-29.9 76.8 76.8 162.1-162.1 29.9 29.9-192.1 191.9z\"}}]})(props);\n};\nexport function IoMdCheckmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.301 339.893L96 249.461l-32 30.507L186.301 402 448 140.506 416 110z\"}}]})(props);\n};\nexport function IoMdClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.333 80h-87.35C310.879 52.396 285.821 32 256 32s-54.879 20.396-61.983 48h-87.35C83.198 80 64 99.198 64 122.667v314.665C64 460.801 83.198 480 106.667 480h298.666C428.802 480 448 460.801 448 437.332V122.667C448 99.198 428.802 80 405.333 80zM256 80c11.729 0 21.333 9.599 21.333 21.333s-9.604 21.334-21.333 21.334-21.333-9.6-21.333-21.334S244.271 80 256 80zm152 360H104V120h40v72h224v-72h40v320z\"}}]})(props);\n};\nexport function IoMdClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.1 108.9c-81.2-81.2-212.9-81.2-294.2 0-81.3 81.2-81.2 212.9 0 294.2 81.2 81.2 212.9 81.2 294.2 0 81.2-81.2 81.2-213 0-294.2zm-16.5 53.2c7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9zM80 256c0-8.8 7.2-16 16-16s16 7.2 16 16-7.2 16-16 16-16-7.2-16-16zm45.4 93.9c-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9 7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9zm5.9-165.9c-4.4 7.6-14.2 10.3-21.9 5.9-7.6-4.4-10.3-14.2-5.9-21.9 4.4-7.6 14.2-10.3 21.9-5.9 7.7 4.4 10.3 14.3 5.9 21.9zm36.7-80.4c7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.6 1.8 17.5-5.9 21.9s-17.5 1.8-21.9-5.9c-4.4-7.7-1.7-17.5 5.9-21.9zm-7.8 110.7l15.6-26.6 95.2 56.9V384h-31V260.6l-79.8-46.3zm29.7 188.3c-4.4 7.6-14.2 10.3-21.9 5.9s-10.3-14.2-5.9-21.9c4.4-7.6 14.2-10.3 21.9-5.9 7.6 4.4 10.3 14.2 5.9 21.9zM256 432c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-320c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm88 296.4c-7.6 4.4-17.5 1.8-21.9-5.9-4.4-7.6-1.8-17.5 5.9-21.9 7.6-4.4 17.5-1.8 21.9 5.9 4.4 7.7 1.7 17.5-5.9 21.9zm5.9-283c-4.4 7.6-14.2 10.3-21.9 5.9s-10.3-14.2-5.9-21.9c4.4-7.6 14.2-10.3 21.9-5.9s10.3 14.3 5.9 21.9zM408.4 344c-4.4 7.6-14.2 10.3-21.9 5.9-7.6-4.4-10.3-14.2-5.9-21.9 4.4-7.6 14.2-10.3 21.9-5.9 7.7 4.4 10.3 14.3 5.9 21.9zm7.6-72c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"}}]})(props);\n};\nexport function IoMdCloseCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M360 330.9L330.9 360 256 285.1 181.1 360 152 330.9l74.9-74.9-74.9-74.9 29.1-29.1 74.9 74.9 74.9-74.9 29.1 29.1-74.9 74.9z\"}}]})(props);\n};\nexport function IoMdCloseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C140.559 48 48 140.559 48 256c0 115.436 92.559 208 208 208 115.435 0 208-92.564 208-208 0-115.441-92.564-208-208-208zm104.002 282.881l-29.12 29.117L256 285.117l-74.881 74.881-29.121-29.117L226.881 256l-74.883-74.881 29.121-29.116L256 226.881l74.881-74.878 29.12 29.116L285.119 256l74.883 74.881z\"}}]})(props);\n};\nexport function IoMdClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405 136.798L375.202 107 256 226.202 136.798 107 107 136.798 226.202 256 107 375.202 136.798 405 256 285.798 375.202 405 405 375.202 285.798 256z\"}}]})(props);\n};\nexport function IoMdCloudCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm93.6 291.2H172.801c-34.318 0-62.4-28.082-62.4-62.399 0-34.319 28.082-62.4 62.4-62.4h3.117c9.364-36.4 41.601-62.399 80.083-62.399 45.764 0 83.199 37.435 83.199 83.198h10.4c29.118 0 52 22.882 52 52.001 0 29.117-22.882 51.999-52 51.999z\"}}]})(props);\n};\nexport function IoMdCloudDone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM213.333 362.667L138.667 288l29.864-29.864 44.802 44.802L324.271 192l29.865 29.864-140.803 140.803z\"}}]})(props);\n};\nexport function IoMdCloudDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM224 268v-76h64v76h68L256 368 156 268h68z\"}}]})(props);\n};\nexport function IoMdCloudOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.001 217.001C388.997 148.002 328.998 96 256 96c-57.998 0-107.999 32.998-132.997 81C63.002 183.002 16 233.998 16 296c0 65.996 54.004 120 120 120h260c55 0 100-45 100-100.001 0-52.997-40.997-95.999-92.999-98.998zM396 376H136c-44.004 0-80-35.996-80-80 0-44 35.996-80 80-80h14.004c12.998-46 55-80 105.996-80 60.996 0 110 49 110 110v10h30c32.998 0 60 27.003 60 60 0 32.998-27.002 60-60 60z\"}}]})(props);\n};\nexport function IoMdCloudUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999zM288 276v76h-64v-76h-68l100-100 100 100h-68z\"}}]})(props);\n};\nexport function IoMdCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.002 217.001C388.998 148.002 328.998 96 256 96c-57.998 0-107.998 32.998-132.998 81.001C63.002 183.002 16 233.998 16 296c0 65.996 53.999 120 120 120h260c55 0 100-45 100-100 0-52.998-40.996-96.001-92.998-98.999z\"}}]})(props);\n};\nexport function IoMdCloudyNight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M123.4 183c.4-.1.8-.1 1.2-.2-.5.1-.8.2-1.2.2zM341.5 303.4C330.7 247.7 282.2 206 224 206c-34 0-65.1 12-86.5 39.1 29.4 2.2 56.7 13.1 77.7 34.2 15.6 15.7 26.6 34.9 32.1 55.8h-28.7c-13.1-37.6-48-64.5-90.6-64.5-5.1 0-12.3.6-17.7 1.7-45.7 9.4-78.3 47.6-78.3 95 0 53.4 43 96.8 96 96.8h208c44.1 0 80-36.1 80-80.6-.1-42.7-32.9-77.2-74.5-80.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M112.5 225.4c13.6-17.3 30.7-30.5 50.8-39.2 18.4-8 38.8-12 60.7-12 6.1 0 12.2.4 18.2 1.1-6.1-18.1-9.4-37.6-9.4-57.8 0-24.6 4.9-48.1 13.8-69.4C161.9 68.7 99 145.7 99 237.3c0 1.6 0 3.2.1 4.8.1 0 .2-.1.3-.1l13.1-16.6zM417.6 306.8c13.3 14.2 22.6 31.5 27.1 50.1 16.5-21.4 28.7-46.4 35.3-73.5-21.2 9-44.5 13.9-68.9 13.9h-3.6c3.5 2.9 6.9 6.1 10.1 9.5z\"}}]})(props);\n};\nexport function IoMdCloudy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M123.4 183c.4-.1.8-.1 1.2-.2-.5.1-.8.2-1.2.2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M393.2 219.2C380.5 154.6 323.9 106 256 106c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 194 32 238.4 32 293.5 32 355.6 82.2 406 144 406h242.7c51.5 0 93.3-42 93.3-93.8 0-49.4-38.3-89.6-86.8-93z\"}}]})(props);\n};\nexport function IoMdCodeDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234.6 160v125.7l-44.7-43.6L160 272l96 96 96-96-29.9-31-44.7 44.7V160h-42.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z\"}}]})(props);\n};\nexport function IoMdCodeWorking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M155.6 276h40v-40h-40v40zm200.8-40h-40v40h40v-40zM236 276h40v-40h-40v40z\"}}]})(props);\n};\nexport function IoMdCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.4 354.1L91.9 256l98.4-98.1-30-29.9L32 256l128.4 128 30-29.9zm131.2 0L420 256l-98.4-98.1 30-29.9L480 256 351.6 384l-30-29.9z\"}}]})(props);\n};\nexport function IoMdCog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 288v-64h-34.7c-2-12.1-5.2-23.8-9.3-35l30-17.3-32-55.4-30 17.3c-7.7-9.3-16.3-17.9-25.6-25.6l17.3-30-55.4-32L323 76c-11.2-4.2-22.9-7.3-35-9.3V32h-64v34.7c-12.1 2-23.8 5.2-35 9.3l-17.3-30-55.4 32 17.3 30c-9.3 7.7-17.9 16.3-25.6 25.6l-30-17.3-32 55.4L76 189c-4.2 11.2-7.3 22.9-9.3 35H32v64h34.7c2 12.1 5.2 23.8 9.3 35l-30 17.3 32 55.4 30-17.3c7.7 9.3 16.3 17.9 25.6 25.6l-17.3 30 55.4 32 17.3-30c11.2 4.2 22.9 7.3 35 9.3V480h64v-34.7c12.1-2 23.8-5.2 35-9.3l17.3 30 55.4-32-17.3-30c9.3-7.7 17.9-16.3 25.6-25.6l30 17.3 32-55.4-30-17.3c4.2-11.2 7.3-22.9 9.3-35H480zm-224-64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM141.2 343c-18.3-24.2-29.2-54.3-29.2-87 0-6.1.4-12.1 1.1-18l46.9 17.1v.9c0 17.8 4.9 34.5 13.3 48.8L141.2 343zm40.7-148L135 177.9c20.1-31.1 51.8-53.9 89-62.3v49.9c-16.6 5.9-31.1 16.2-42.1 29.5zM256 400c-23.7 0-46-5.7-65.8-15.9l32.1-38.2c10.5 3.9 21.8 6.1 33.7 6.1s23.2-2.2 33.7-6.1l32.1 38.2C302 394.3 279.7 400 256 400zm32-234.5v-49.9c37.2 8.4 68.9 31.2 89 62.3L330.1 195c-11-13.3-25.5-23.6-42.1-29.5zM370.8 343l-32.1-38.2c8.4-14.3 13.3-31 13.3-48.8v-.9l46.9-17.1c.7 5.9 1.1 11.9 1.1 18 0 32.7-10.9 62.8-29.2 87z\"}}]})(props);\n};\nexport function IoMdColorFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136.5 77.7l37 67L32 285.7 216.4 464l152.4-148.6 54.4-11.4L166.4 48l-29.9 29.7zm184 208H114.9l102.8-102.3 102.8 102.3zM423.3 304s-56.7 61.5-56.7 92.1c0 30.7 25.4 55.5 56.7 55.5 31.3 0 56.7-24.9 56.7-55.5S423.3 304 423.3 304z\"}}]})(props);\n};\nexport function IoMdColorFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441.8 120.1l-49.9-49.9c-8.3-8.3-21.8-8.3-30.1 0l-66.6 66.6L254.1 96 224 126.1l30.3 30.3L64 346.7V448h101.3l190.3-190.3 30.3 30.3 30.1-30.1-41-41 66.6-66.6c8.5-8.4 8.5-21.8.2-30.2zM147.6 405.4l-41-41 171.9-171.9 41 41-171.9 171.9z\"}}]})(props);\n};\nexport function IoMdColorPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150.401 64 64 150.401 64 256c0 105.604 86.401 192 192 192 18.136 0 32-13.864 32-32 0-8.531-3.198-16-8.531-21.333-5.333-5.334-8.531-12.803-8.531-21.334 0-18.135 13.864-32 32-32h38.396c58.667 0 106.667-48 106.667-106.666C448 140.802 361.604 64 256 64zM138.667 256c-18.136 0-32-13.864-32-32s13.864-32 32-32c18.135 0 32 13.864 32 32s-13.865 32-32 32zm64-85.333c-18.136 0-32-13.865-32-32 0-18.136 13.864-32 32-32 18.135 0 32 13.864 32 32 0 18.135-13.865 32-32 32zm106.666 0c-18.135 0-32-13.865-32-32 0-18.136 13.865-32 32-32 18.136 0 32 13.864 32 32 0 18.135-13.864 32-32 32zm64 85.333c-18.135 0-32-13.864-32-32s13.865-32 32-32c18.136 0 32 13.864 32 32s-13.864 32-32 32z\"}}]})(props);\n};\nexport function IoMdColorWand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200.8 157.2l-36.4 37.4L411.7 448l36.3-37.4zM181 64h37v68h-37zM181 262h37v68h-37zM270 176h69v37h-69zM305.6 115.8l-25.7-26.3-47.1 48.3 25.6 26.2zM168.8 137.8l-47.1-48.3-25.6 26.3 47.1 48.2zM96.1 277.9l25.6 26.2 47.1-48.2-25.6-26.3zM64 176h65v37H64z\"}}]})(props);\n};\nexport function IoMdCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 231.358c-13.442 0-24.643 11.2-24.643 24.642s11.2 24.643 24.643 24.643 24.643-11.2 24.643-24.643-11.201-24.642-24.643-24.642zM256 32C132.8 32 32 132.8 32 256s100.8 224 224 224 224-100.8 224-224S379.2 32 256 32zm49.284 273.284L121.6 390.4l85.116-183.679L390.4 121.6l-85.116 183.684z\"}}]})(props);\n};\nexport function IoMdConstruct (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M430.9 393.4l-119.6-119-58.1-57.9-13.4-13.3c15.9-40.6 7.1-88.2-26.6-121.7-35.4-35.3-88.5-42.3-131-22.9l76.1 75.8-53.1 52.9-77.9-75.8C6.2 153.8 15 206.7 50.4 242c33.6 33.5 81.4 42.3 122.1 26.5l14.4 14.3L81.7 388c-7.6 5.7-7.6 19 1.9 26.6l43.8 43.7c7.6 7.6 19.1 7.6 26.7 0l96.1-112.4 113.4 112.9c7.1 7.1 17.7 7.1 24.8 0l40.7-40.6c8.9-7.1 8.9-19.5 1.8-24.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M494.4 216.6l-34.5-34.1c-2.2-2.2-5.8-2.2-8 0l-3.7 3.7-18.5-15.8s1.2-10-4.9-18.7c-6.2-8.7-16.1-19.8-23.2-26.9-7.1-7-34.1-33.9-69.7-51.4C296.2 55.7 271 48 241 48v29.7s28.7 16.6 45.1 29.7c16.3 13.1 16.8 59.5 16.8 59.5l-28.5 28.5 56.5 56.1 31-36.3c12.9-3.5 23.8-3.8 30.2-.3l13.7 13.3-9.6 9.5c-2.2 2.2-2.2 5.7 0 7.9l34.5 34.1c2.2 2.2 5.8 2.2 8 0l55.7-55.2c2.1-2.2 2.1-5.8 0-7.9z\"}}]})(props);\n};\nexport function IoMdContact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm0 62.4c34.3 0 62.4 28.1 62.4 62.4s-28.1 62.4-62.4 62.4-62.4-28.1-62.4-62.4 28.1-62.4 62.4-62.4zm0 300.4c-52 0-97.8-27-124.8-66.6 1-41.6 83.2-64.5 124.8-64.5s123.8 22.9 124.8 64.5c-27 39.5-72.8 66.6-124.8 66.6z\"}}]})(props);\n};\nexport function IoMdContacts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.208 343.937c-17.78 10.103-38.342 15.876-60.255 15.876-21.909 0-42.467-5.771-60.246-15.87C71.544 358.331 42.643 406 32 448h293.912c-10.639-42-39.537-89.683-86.704-104.063zM178.953 120.035c-58.479 0-105.886 47.394-105.886 105.858 0 58.464 47.407 105.857 105.886 105.857s105.886-47.394 105.886-105.857c0-58.464-47.408-105.858-105.886-105.858zm0 186.488c-33.671 0-62.445-22.513-73.997-50.523H252.95c-11.554 28.011-40.326 50.523-73.997 50.523z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M322.602 384H480c-10.638-42-39.537-81.691-86.703-96.072-17.781 10.104-38.343 15.873-60.256 15.873-14.823 0-29.024-2.654-42.168-7.49-7.445 12.47-16.927 25.592-27.974 34.906C289.245 341.354 309.146 364 322.602 384zM306.545 200h100.493c-11.554 28-40.327 50.293-73.997 50.293-8.875 0-17.404-1.692-25.375-4.51a128.411 128.411 0 0 1-6.52 25.118c10.066 3.174 20.779 4.862 31.895 4.862 58.479 0 105.886-47.41 105.886-105.872 0-58.465-47.407-105.866-105.886-105.866-37.49 0-70.427 19.703-89.243 49.09C275.607 131.383 298.961 163 306.545 200z\"}}]}]})(props);\n};\nexport function IoMdContract (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 371.2h76.795V448H192V320H64v51.2zm76.795-230.4H64V192h128V64h-51.205v76.8zM320 448h51.2v-76.8H448V320H320v128zm51.2-307.2V64H320v128h128v-51.2h-76.8z\"}}]})(props);\n};\nexport function IoMdContrast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm113.1 321.1C338.9 399.4 298.7 416 256 416V96c42.7 0 82.9 16.6 113.1 46.9C399.4 173.1 416 213.3 416 256s-16.6 82.9-46.9 113.1z\"}}]})(props);\n};\nexport function IoMdCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 48H176.5C154.4 48 136 65.4 136 87.5V96h-7.5C106.4 96 88 113.4 88 135.5v288c0 22.1 18.4 40.5 40.5 40.5h208c22.1 0 39.5-18.4 39.5-40.5V416h8.5c22.1 0 39.5-18.4 39.5-40.5V176L296 48zm0 44.6l83.4 83.4H296V92.6zm48 330.9c0 4.7-3.4 8.5-7.5 8.5h-208c-4.4 0-8.5-4.1-8.5-8.5v-288c0-4.1 3.8-7.5 8.5-7.5h7.5v255.5c0 22.1 10.4 32.5 32.5 32.5H344v7.5zm48-48c0 4.7-3.4 8.5-7.5 8.5h-208c-4.4 0-8.5-4.1-8.5-8.5v-288c0-4.1 3.8-7.5 8.5-7.5H264v128h128v167.5z\"}}]})(props);\n};\nexport function IoMdCreate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 368v80h80l235.727-235.729-79.999-79.998L64 368zm377.602-217.602c8.531-8.531 8.531-21.334 0-29.865l-50.135-50.135c-8.531-8.531-21.334-8.531-29.865 0l-39.468 39.469 79.999 79.998 39.469-39.467z\"}}]})(props);\n};\nexport function IoMdCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 312.7h37.8V160c0-20.8-17-37.8-37.8-37.8H199.3V160H352v152.7zm-192 33.5V48h-37.8v74.2H48V160h74.2v186.2c0 20.8 17 37.8 37.8 37.8h192v80h37.8v-80H464v-37.8H160z\"}}]})(props);\n};\nexport function IoMdCube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M467.3 168.1c-1.8 0-3.5.3-5.1 1l-177.6 92.1h-.1c-7.6 4.7-12.5 12.5-12.5 21.4v185.9c0 6.4 5.6 11.5 12.7 11.5 2.2 0 4.3-.5 6.1-1.4.2-.1.4-.2.5-.3L466 385.6l.3-.1c8.2-4.5 13.7-12.7 13.7-22.1V179.6c0-6.4-5.7-11.5-12.7-11.5zM454.3 118.5L272.6 36.8S261.9 32 256 32c-5.9 0-16.5 4.8-16.5 4.8L57.6 118.5s-8 3.3-8 9.5c0 6.6 8.3 11.5 8.3 11.5l185.5 97.8c3.8 1.7 8.1 2.6 12.6 2.6 4.6 0 8.9-1 12.7-2.7l185.4-97.9s7.5-4 7.5-11.5c.1-6.3-7.3-9.3-7.3-9.3zM227.5 261.2L49.8 169c-1.5-.6-3.3-1-5.1-1-7 0-12.7 5.1-12.7 11.5v183.8c0 9.4 5.5 17.6 13.7 22.1l.2.1 174.7 92.7c1.9 1.1 4.2 1.7 6.6 1.7 7 0 12.7-5.2 12.7-11.5V282.6c.1-8.9-4.9-16.8-12.4-21.4z\"}}]})(props);\n};\nexport function IoMdCut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M203.1 158.3c5.2-11.2 8.1-23.5 8.1-36.7 0-49.5-40.1-89.6-89.6-89.6S32 72.1 32 121.6s40.1 89.6 89.6 89.6c13.2 0 25.5-2.9 36.7-8.1l52.9 52.9-52.9 52.9c-11.2-5.2-23.5-8.1-36.7-8.1-49.5 0-89.6 40.1-89.6 89.6S72.1 480 121.6 480s89.6-40.1 89.6-89.6c0-13.2-2.9-25.5-8.1-36.7l52.9-52.9 156.8 156.8H480v-22.4L203.1 158.3zm-81.5 8.1c-24.6 0-44.8-19.9-44.8-44.8S97 76.8 121.6 76.8s44.8 19.9 44.8 44.8-20.2 44.8-44.8 44.8zm0 268.8c-24.6 0-44.8-19.9-44.8-44.8s20.2-44.8 44.8-44.8 44.8 19.9 44.8 44.8-20.2 44.8-44.8 44.8zm134.4-168c-6.3 0-11.2-4.9-11.2-11.2 0-6.3 4.9-11.2 11.2-11.2 6.3 0 11.2 4.9 11.2 11.2 0 6.3-4.9 11.2-11.2 11.2zM412.8 54.4L278.4 188.8l44.8 44.8L480 76.8V54.4h-67.2z\"}}]})(props);\n};\nexport function IoMdDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.333 32H74.667C51.198 32 32 51.197 32 74.666v282.667C32 380.802 51.198 400 74.667 400h138.666l-42.666 48v32h170.666v-32l-42.666-48h138.666C460.802 400 480 380.802 480 357.333V74.666C480 51.197 460.802 32 437.333 32zm0 288H74.667V74.666h362.666V320z\"}}]})(props);\n};\nexport function IoMdDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm0 301.6c-51.8 0-93.6-41.8-93.6-93.6s41.8-93.6 93.6-93.6 93.6 41.8 93.6 93.6-41.8 93.6-93.6 93.6zm0-114.4c-11.4 0-20.8 9.4-20.8 20.8s9.4 20.8 20.8 20.8 20.8-9.4 20.8-20.8-9.4-20.8-20.8-20.8z\"}}]})(props);\n};\nexport function IoMdDocument (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 48H136c-22.092 0-40 17.908-40 40v336c0 22.092 17.908 40 40 40h240c22.092 0 40-17.908 40-40V176L288 48zm-16 144V80l112 112H272z\"}}]})(props);\n};\nexport function IoMdDoneAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M387.581 139.712L356.755 109 216.913 248.319l30.831 30.719 139.837-139.326zM481.172 109L247.744 340.469l-91.39-91.051-30.827 30.715L247.744 403 512 139.712 481.172 109zM0 280.133L123.321 403l30.829-30.713L31.934 249.418 0 280.133z\"}}]})(props);\n};\nexport function IoMdDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 199.5h-91.4V64H187.4v135.5H96l160 158.1 160-158.1zM96 402.8V448h320v-45.2H96z\"}}]})(props);\n};\nexport function IoMdEasel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 176h256v128H128z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96H64c-8.8 0-16 7.2-16 16v256c0 8.8 6.9 16 15.8 16H448c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-32 240H96V144h320v192zM80 464h57l22.5-64h-56.4zM279.4 48h-46.8l-11.5 32h69.8zM375 464h57l-23-64h-56.5zM232 400h48v32h-48z\"}}]})(props);\n};\nexport function IoMdEgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C185.6 32 80 165.2 80 288.9S150.4 480 256 480s176-67.4 176-191.1S326.4 32 256 32z\"}}]})(props);\n};\nexport function IoMdExit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.469 332.802l29.863 29.864L352 256 245.332 149.333l-29.863 29.865 55.469 55.469H64v42.666h205.864l-54.395 55.469zM405.334 64H106.666C83.198 64 64 83.198 64 106.666V192h42.666v-85.333h298.668v298.668H106.666V320H64v85.334C64 428.802 83.198 448 106.666 448h298.668C428.802 448 448 428.802 448 405.334V106.666C448 83.198 428.802 64 405.334 64z\"}}]})(props);\n};\nexport function IoMdExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396.795 396.8H320V448h128V320h-51.205zM396.8 115.205V192H448V64H320v51.205zM115.205 115.2H192V64H64v128h51.205zM115.2 396.795V320H64v128h128v-51.205z\"}}]})(props);\n};\nexport function IoMdEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.1 144.8c56.2 0 101.9 45.3 101.9 101.1 0 13.1-2.6 25.5-7.3 37l59.5 59c30.8-25.5 55-58.4 69.9-96-35.3-88.7-122.3-151.6-224.2-151.6-28.5 0-55.8 5.1-81.1 14.1l44 43.7c11.6-4.6 24.1-7.3 37.3-7.3zM52.4 89.7l46.5 46.1 9.4 9.3c-33.9 26-60.4 60.8-76.3 100.8 35.2 88.7 122.2 151.6 224.1 151.6 31.6 0 61.7-6.1 89.2-17l8.6 8.5 59.7 59 25.9-25.7L78.2 64 52.4 89.7zM165 201.4l31.6 31.3c-1 4.2-1.6 8.7-1.6 13.1 0 33.5 27.3 60.6 61.1 60.6 4.5 0 9-.6 13.2-1.6l31.6 31.3c-13.6 6.7-28.7 10.7-44.8 10.7-56.2 0-101.9-45.3-101.9-101.1 0-15.8 4.1-30.7 10.8-44.3zm87.8-15.7l64.2 63.7.4-3.2c0-33.5-27.3-60.6-61.1-60.6l-3.5.1z\"}}]})(props);\n};\nexport function IoMdEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 105c-101.8 0-188.4 62.4-224 151 35.6 88.6 122.2 151 224 151s188.4-62.4 224-151c-35.6-88.6-122.2-151-224-151zm0 251.7c-56 0-101.8-45.3-101.8-100.7S200 155.3 256 155.3 357.8 200.6 357.8 256 312 356.7 256 356.7zm0-161.1c-33.6 0-61.1 27.2-61.1 60.4s27.5 60.4 61.1 60.4 61.1-27.2 61.1-60.4-27.5-60.4-61.1-60.4z\"}}]})(props);\n};\nexport function IoMdFastforward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 256L262.4 110v292L480 256zM32 110v292l217.6-146L32 110z\"}}]})(props);\n};\nexport function IoMdFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 176c0-79.5-64.5-144-144-144S112 96.5 112 176c0 71.4 51.9 130.6 120 142v50h-72v48h72v64h48v-64h72v-48h-72v-50c68.1-11.4 120-70.6 120-142zm-240 0c0-52.9 43.1-96 96-96s96 43.1 96 96-43.1 96-96 96-96-43.1-96-96z\"}}]})(props);\n};\nexport function IoMdFiling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M449.2 208H423v-32l-14.4-48H383V96l-15-48H144l-15 48v32h-25.6L89 176v32H62.8L48 256v165.3c0 23.5 35.2 42.7 58.7 42.7h314.7c21.8 0 42.7-19.7 42.7-41V256l-14.9-48zM176 96h160v32H176V96zm-41 80h242v32H135v-32zm282 112h-82.6c-7.4 36.5-39.7 64-78.4 64s-71-27.5-78.4-64H95v-32h322v32z\"}}]})(props);\n};\nexport function IoMdFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 64v42.667h-40V64H176v42.667h-40V64H96v384h40v-42.666h40V448h160v-42.666h40V448h40V64h-40zM176 362.667h-40V320h40v42.667zm0-85.333h-40v-42.667h40v42.667zM176 192h-40v-42.666h40V192zm200 170.667h-40V320h40v42.667zm0-85.333h-40v-42.667h40v42.667zM376 192h-40v-42.666h40V192z\"}}]})(props);\n};\nexport function IoMdFingerPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M78.1 205.6c-2.4 0-4.9-.6-7.1-1.9-6.7-3.9-9-12.4-5.1-19.1 17.8-30 71.9-100.1 190.1-100.1 51.2 0 96.1 13.6 133.4 40.4 30.7 22 47.9 46.9 56.1 58.9 4.4 6.4 2.7 15-3.7 19.4-6.4 4.3-15.2 2.7-19.6-3.7-14.9-21.6-60.1-87.2-166.2-87.2-103.6 0-150.4 60.4-165.7 86.3-2.6 4.6-7.3 7-12.2 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M315.5 480c-1.2 0-2.3-.1-3.5-.4-85.7-21.5-117.7-108.1-119-111.7l-.2-.8c-.7-2.5-17.9-61.9 8.5-96.7 12.1-15.9 30.5-24 54.8-24 22.6 0 38.9 7.1 50.1 21.8 9.2 12 12.9 26.8 16.5 41.1 7.5 29.7 12.9 45.3 44.1 46.9 13.7.7 22.7-7.4 27.8-14.3 13.8-18.8 16.2-49.5 5.8-76.5-13.4-35-60.8-100.9-144.4-100.9-35.7 0-68.5 11.6-94.8 33.4-21.8 18.1-39.1 43.6-47.4 69.8-15.4 48.8 4.8 125.5 5 126.2 2 7.4-2.5 15.1-10 17-7.5 2-15.3-2.5-17.3-9.9-.9-3.5-22.5-85.3-4.7-141.7C106.2 198.2 166 136.6 256 136.6c41.6 0 80.9 14.3 113.7 41.3 25.4 21 46.2 49.2 57 77.4 13.8 36 10.1 76.4-9.4 102.8-13 17.6-31.5 26.8-52 25.8-53.4-2.7-63-40.4-70-67.9-7.2-28.2-11.8-41.8-39.3-41.8-15.1 0-25.7 4.2-32.3 12.9-9 11.9-9.7 30.5-8.7 44 1 14.1 4 25.5 4.7 27.8 2.2 5.6 30.8 76.5 99.3 93.7 7.6 1.9 12.1 9.5 10.2 16.9-1.7 6.3-7.4 10.5-13.7 10.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M205.5 473.6c-3.8 0-7.5-1.5-10.3-4.4-34.3-36.4-53.7-77.1-61-128v-.3c-4.1-33.7 1.9-81.4 31.3-114.2 21.7-24.2 52.2-36.5 90.5-36.5 45.3 0 80.9 21.3 103.1 61.5 16.1 29.2 19.3 58.3 19.4 59.5.8 7.7-4.9 14.5-12.6 15.3-7.7.8-14.7-4.8-15.5-12.4 0-.3-2.8-25.3-16.5-49.7-17.2-30.7-43.4-46.3-78-46.3-29.9 0-53.3 9.1-69.4 27.1-23.2 25.9-27.7 65.8-24.5 92.2 6.4 45 23.5 80.8 53.7 112.8 5.3 5.6 5 14.5-.7 19.7-2.6 2.4-6.1 3.7-9.5 3.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M363.5 433.5c-30 0-55.5-8.4-75.9-25.1-41-33.4-45.6-87.8-45.8-90.1-.6-7.7 5.2-14.4 13-15 7.8-.6 14.5 5.1 15.1 12.8.1.8 4.2 45.3 35.8 70.9 18.7 15.1 43.7 21.1 74.5 17.6 7.7-.9 14.7 4.6 15.6 12.3.9 7.7-4.7 14.6-12.4 15.4-6.8.8-13.5 1.2-19.9 1.2zM387.2 62.6C375.5 54.9 334 32 256 32c-81.9 0-123.5 25.3-132.7 31.7-.6.4-1.2.8-1.7 1.3-.1.1-.2.1-.2.1-2.9 2.6-4.7 6.3-4.7 10.4 0 7.7 6.3 13.9 14.1 13.9 3.1 0 5.9-1 8.2-2.6l-.1.1c.4-.3 36.3-27 117.1-27s116.7 26.8 117.1 27l-.1-.1.2-.2c2.4 1.8 5.3 2.8 8.5 2.8 7.8 0 14.1-6.2 14.1-13.9 0-5.8-3.5-10.8-8.6-12.9z\"}}]})(props);\n};\nexport function IoMdFitness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.3 315.5l29.7-29.7-29.7-29.8-74.3 74.3L181.7 152 256 77.7 226.3 48l-29.7 29.7L166.8 48l-44.5 44.5-29.8-29.7-29.7 29.7 29.7 29.7L48 166.8l29.7 29.7L48 226.3 77.7 256l74.3-74.3L330.3 360 256 434.3l29.7 29.7 29.7-29.7 29.7 29.7 44.5-44.5 29.7 29.7 29.7-29.7-29.7-29.7 44.5-44.5-29.5-29.8z\"}}]})(props);\n};\nexport function IoMdFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396 83.2c-13.8 1.7-31.1 4.2-49.6 4.2-28.8 0-55-6.8-81.5-12.2C238 69.7 210.2 64 180.8 64c-58.6 0-78.5 12.1-80.6 13.4L96 80.3V448h48V269.8c9.7-1.2 21.9-2 36.9-2 27.3 0 52.8 10 79.8 15.5 27.6 5.6 56 11.5 86.9 11.5 18.4 0 34.6-2.4 48.4-4 7.5-.9 14-1.7 20-2.7V80.2c-5 1-12.5 2.1-20 3z\"}}]})(props);\n};\nexport function IoMdFlame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.3 222.1l-.2 10.4c-.8 11.7-7.9 43.4-22.1 54.7 7-15.2 17.3-47.2 10.2-82.7C361.6 107 287.5 65.6 193 50l-17.2-2.2c39.5 47.2 56.1 81.7 49.7 116.8-2.3 12.6-10 23.4-14 31.6 0 0 2.4-12.9 2-28.7-.3-14.2-6.6-31-18-39.6 3.5 18.4-.8 33.5-9.1 47.7-24.7 42.2-85.4 57.8-90.4 135.8v3.8c0 53.7 25.6 99 68.7 125-6.8-12.3-12-35.2-5.7-60.2 4 23.7 14 36 24.9 51.8 8.2 11.7 19.1 19.3 33.1 24.9s31 7.2 47.9 7.2c55.8 0 91.4-18.1 119.1-50.5s32.1-68 32.1-106.4-8.5-60.9-22.8-84.9z\"}}]})(props);\n};\nexport function IoMdFlashOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.9 435.5L76.1 52.5 51.9 76.6 160 184.3V272h64v192l72-144 139.9 139.5zM352 208h-64l64-160H160v40.3l168 167.6z\"}}]})(props);\n};\nexport function IoMdFlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 48v224h64v192l128-256h-64l64-160H160z\"}}]})(props);\n};\nexport function IoMdFlashlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 298l64 64v118h128V362l64-64V176l-255.2.4L128 298zM234.8 32h42.4v64h-42.4V32zM80 110.4L109.9 80l44.9 45.6-29.9 30.4L80 110.4zm277.1 15.2l45-45.5 29.9 30.4-44.9 45.5-30-30.4z\"}}]})(props);\n};\nexport function IoMdFlask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436.9 354.4L336 192V96h32V48H144v48h32v96L76.1 354.4C67.7 370.3 63.6 385.8 64 400c1.1 36.5 28.7 64 65.1 64H385c36.3 0 62.1-27.6 63-64 .3-14.2-2.6-29.7-11.1-45.6zM155.1 304l29.5-48h143.1l29.8 48H155.1z\"}}]})(props);\n};\nexport function IoMdFlower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.1 256c25.2-11.9 42.9-37.1 42.9-66.9 0-41-33.6-74.3-75-74.3-15.9 0-30.3 4.8-42.6 13.1l.6-5.6c0-41-33.6-74.3-75-74.3s-75 33.3-75 74.3l.6 5.6c-12-8.3-26.7-13.1-42.6-13.1-41.4 0-75 33.3-75 74.3 0 29.7 17.7 55 42.9 66.9C81.7 267.9 64 293.1 64 322.9c0 41 33.6 74.3 75 74.3 15.9 0 30.3-4.8 42.6-13.1l-.6 5.6c0 41 33.6 74.3 75 74.3s75-33.3 75-74.3l-.6-5.6c12 8.3 26.7 13.1 42.6 13.1 41.4 0 75-33.3 75-74.3 0-29.8-17.7-55-42.9-66.9zM256 330.3c-41.4 0-75-33.3-75-74.3s33.6-74.3 75-74.3 75 33.3 75 74.3-33.6 74.3-75 74.3z\"}}]})(props);\n};\nexport function IoMdFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.334 144H256.006l-42.668-48H74.666C51.197 96 32 115.198 32 138.667v234.666C32 396.802 51.197 416 74.666 416h362.668C460.803 416 480 396.802 480 373.333V186.667C480 163.198 460.803 144 437.334 144zM448 373.333c0 5.782-4.885 10.667-10.666 10.667H74.666C68.884 384 64 379.115 64 373.333V176h373.334c5.781 0 10.666 4.885 10.666 10.667v186.666z\"}}]})(props);\n};\nexport function IoMdFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.338 96H74.666C51.197 96 32 115.198 32 138.667v234.666C32 396.802 51.197 416 74.666 416h362.668C460.803 416 480 396.802 480 373.333V186.667C480 163.198 460.803 144 437.334 144H256.006l-42.668-48z\"}}]})(props);\n};\nexport function IoMdFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.3 48 48 141.3 48 256s93.3 208 208 208 208-93.3 208-208S370.7 48 256 48zM127 238.2l39.2 17.9 17.1 66.9-15.6 29.3-57.2-.7C95.6 329 86.2 303.1 83 276.3l44-38.1zm217.3 114.1L328.7 323l17.1-67 39.1-17.8 44 38.1c-3.1 26.8-12.6 52.7-27.5 75.3l-57.1.7zm32.4-146.2l-43.6 19.6-61.1-51.6v-47.2l47.9-32.6c29.8 11.9 56.4 32.3 75.6 57.8l-18.8 54zM191.3 94.4l47.7 32.5v47.2l-61 51.5-43-19.6-18.7-53.6c19.3-26.1 45.1-46 75-58zM218.4 426c-.7-.2-1.3-.3-2-.5l-20.5-55.1 14.7-29.4h90.8l15 30.3-19.8 53.9c-1 .2-2 .5-3 .7-11.5 2.3-27 3.8-40.4 4.1-11.7-.1-23.4-1.5-34.8-4z\"}}]})(props);\n};\nexport function IoMdFunnel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 400h96v-47.994h-96V400zM32 112v47.994h448V112H32zm80 168.783h288v-49.555H112v49.555z\"}}]})(props);\n};\nexport function IoMdGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 134.5h-45.8c2.3-6.6 3.8-13.9 3.8-21.3 0-35.4-28.1-63.2-63-63.2-22.1 0-41.2 10.7-52.5 28L256 92.3l-10.5-14.5C234.2 60.7 215.1 48 193 48c-34.9 0-63 29.8-63 65.2 0 7.5 1.5 14.7 3.8 21.3H88c-23.3 0-41.8 19-41.8 42.7L46 421.8c0 23.7 17.4 42.2 40.7 42.2h336.7c23.3 0 42.7-18.5 42.7-42.2V177.2c-.1-23.7-18.8-42.7-42.1-42.7zM320 91c11.6 0 21 9.5 21 21 0 11.6-9.4 21-21 21s-21-9.5-21-21 9.4-21 21-21zm-128 0c11.6 0 21 9.5 21 21 0 11.6-9.4 21-21 21s-21-9.5-21-21 9.4-21 21-21zM88 177.2h106.7L151 237.5l34 25 50-69.1.2-.2-.2 228.6H88V177.2zm336 244.6H277V193.4l50 69.1 34-25-43.7-60.4H424v244.7z\"}}]})(props);\n};\nexport function IoMdGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 160c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.3 32 55.4v8.6c0 19.9-7.8 33.7-25.3 44.9-15.4 9.8-38.1 17.1-67.5 21.5-14 2.1-25.7 6-35.2 10.7V151.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64S96 60.7 96 96c0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-16.6-6.3-31.7-16.7-43.1 1.9-4.9 9.7-16.3 29.4-19.3 38.8-5.8 68.9-15.9 92.3-30.8 36-22.8 55-57 55-98.8v-8.6c19.1-11.1 32-31.7 32-55.4zM160 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 400c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-256c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}}]})(props);\n};\nexport function IoMdGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 224h-99.8c-14.2-55.2-64.2-96-123.7-96S147 168.8 132.8 224H32v64h100.8c14.2 55.2 64.2 96 123.7 96s109.5-40.8 123.7-96H480v-64zM256.5 336c-44 0-79.8-35.9-79.8-80s35.8-80 79.8-80 79.8 35.9 79.8 80-35.8 80-79.8 80z\"}}]})(props);\n};\nexport function IoMdGitCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 382h-22c-24.6 0-29-3.6-33.8-9.6-5.5-6.9-8.2-19.1-8.2-54.2V151.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64S32 60.7 32 96c0 23.7 12.9 44.3 32 55.4v166.8c0 46.4 3.7 70.8 22.1 94 19.9 25.1 45 35.8 83.9 35.8h22v64l96-96-96-96v62zM96 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM448 360.6V190.8c0-46.4-3.7-70.8-22.1-94C406 71.7 380.9 62 342 62h-22V0l-96 96 96 96v-64h22c24.6 0 29 2.6 33.8 8.6 5.5 6.9 8.2 19.1 8.2 54.2v169.8c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4zM416 456c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}}]})(props);\n};\nexport function IoMdGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 224c-23.7 0-44.4 12.9-55.4 32-18.3-.5-52.4-4.1-75.5-18.1-32.3-19.4-64.6-53.1-87-90.5 15.7-11.7 26-30.3 26-51.4 0-35.3-28.7-64-64-64S64 60.7 64 96c0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4V244.2c18.7 19.4 39.1 36 60 48.6 38.8 23.4 87 26.9 108.6 27.3 11.1 19.1 31.7 31.9 55.4 31.9 35.3 0 64-28.7 64-64s-28.7-64-64-64zM88 96c0-22.1 17.9-40 40-40s40 17.9 40 40-17.9 40-40 40-40-17.9-40-40zm80 320c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40 40 17.9 40 40zm216-88c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}}]})(props);\n};\nexport function IoMdGitNetwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.6 12.9 44.3 32 55.4v52.8l-96 48-96-48v-52.8c19.1-11.1 32-31.8 32-55.4 0-35.3-28.7-64-64-64S64 60.7 64 96c0 23.6 12.9 44.3 32 55.4v92.4l128 64v52.8c-19.1 11.1-32 31.8-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.6-12.9-44.3-32-55.4v-52.8l128-64v-92.4c19.1-11.1 32-31.8 32-55.4zM128 56c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm128 400c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128-320c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}}]})(props);\n};\nexport function IoMdGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 376.6V206.8c0-46.4-3.7-70.8-22.1-94C374 87.7 348.9 77 310 77h-22V16l-96 96 96 96v-65h22c24.6 0 29 3.6 33.8 9.6 5.5 6.9 8.2 19.1 8.2 54.2v169.8c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4zM384 472c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM128 48c-35.3 0-64 28.7-64 64 0 23.7 12.9 44.3 32 55.4v209.2c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.3-32-55.4V167.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64zm0 424c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-320c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z\"}}]})(props);\n};\nexport function IoMdGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 176H272v.1h-32v-.1H32v48h11l5 21.5C64 313 88.5 336 144 336s96-17.4 96-90.5V224s1.5-16 16-16 16 16 16 16v21.8c0 73 42.1 90.2 97 90.2s79-25 95-90.2l5-21.8h11v-48z\"}}]})(props);\n};\nexport function IoMdGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.124 48 48 141.125 48 256s93.124 208 208 208c114.875 0 208-93.125 208-208S370.875 48 256 48zm-21.549 384.999c-39.464-4.726-75.978-22.392-104.519-50.932C96.258 348.393 77.714 303.622 77.714 256c0-42.87 15.036-83.424 42.601-115.659.71 8.517 2.463 17.648 2.014 24.175-1.64 23.795-3.988 38.687 9.94 58.762 5.426 7.819 6.759 19.028 9.4 28.078 2.583 8.854 12.902 13.498 20.019 18.953 14.359 11.009 28.096 23.805 43.322 33.494 10.049 6.395 16.326 9.576 13.383 21.839-2.367 9.862-3.028 15.937-8.13 24.723-1.557 2.681 5.877 19.918 8.351 22.392 7.498 7.497 14.938 14.375 23.111 21.125 12.671 10.469-1.231 24.072-7.274 39.117zm147.616-50.932c-25.633 25.633-57.699 42.486-92.556 49.081 4.94-12.216 13.736-23.07 21.895-29.362 7.097-5.476 15.986-16.009 19.693-24.352 3.704-8.332 8.611-15.555 13.577-23.217 7.065-10.899-17.419-27.336-25.353-30.781-17.854-7.751-31.294-18.21-47.161-29.375-11.305-7.954-34.257 4.154-47.02-1.417-17.481-7.633-31.883-20.896-47.078-32.339-15.68-11.809-14.922-25.576-14.922-42.997 12.282.453 29.754-3.399 37.908 6.478 2.573 3.117 11.42 17.042 17.342 12.094 4.838-4.043-3.585-20.249-5.212-24.059-5.005-11.715 11.404-16.284 19.803-24.228 10.96-10.364 34.47-26.618 32.612-34.047s-23.524-28.477-36.249-25.193c-1.907.492-18.697 18.097-21.941 20.859.086-5.746.172-11.491.26-17.237.055-3.628-6.768-7.352-6.451-9.692.8-5.914 17.262-16.647 21.357-21.357-2.869-1.793-12.659-10.202-15.622-8.968-7.174 2.99-15.276 5.05-22.45 8.039 0-2.488-.302-4.825-.662-7.133a176.585 176.585 0 0 1 45.31-13.152l14.084 5.66 9.944 11.801 9.924 10.233 8.675 2.795 13.779-12.995L282 87.929V79.59c27.25 3.958 52.984 14.124 75.522 29.8-4.032.361-8.463.954-13.462 1.59-2.065-1.22-4.714-1.774-6.965-2.623 6.531 14.042 13.343 27.89 20.264 41.746 7.393 14.801 23.793 30.677 26.673 46.301 3.394 18.416 1.039 35.144 2.896 56.811 1.788 20.865 23.524 44.572 23.524 44.572s10.037 3.419 18.384 2.228c-7.781 30.783-23.733 59.014-46.769 82.052z\"}}]})(props);\n};\nexport function IoMdGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M409.6 64H102.4C81.3 64 64 81.3 64 102.4v307.2c0 21.1 17.3 38.4 38.4 38.4h307.2c21.1 0 38.4-17.3 38.4-38.4V102.4c0-21.1-17.3-38.4-38.4-38.4zM179.2 409.6h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm115.2 230.4h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm115.2 230.4h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8zm0-115.2h-76.8v-76.8h76.8v76.8z\"}}]})(props);\n};\nexport function IoMdHammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M474.1 398.2L229.8 167.8s8.8-57.7 26.2-71.8c17.5-14.2 48-32 48-32V32c-32 0-58.8 8.3-96.9 27.3-38 18.9-66.8 47.8-74.4 55.4-7.6 7.6-18.1 19.5-24.7 28.9s-5.3 20.1-5.3 20.1l-19.7 17-4-4c-2.3-2.3-6.2-2.3-8.5 0l-36.8 36.8c-2.3 2.3-2.3 6.2 0 8.5l59.4 59.4c2.3 2.3 6.2 2.3 8.5 0l36.8-36.8c2.3-2.3 2.3-6.2 0-8.5l-10.3-10.3 14.6-14.3c6.8-3.7 25.4-8.9 39.1-5.1l214.9 267.3c8.1 8.2 20.3 8.2 28.5 0l46.8-47.1c10.3-8 10.3-22.3 2.1-28.4z\"}}]})(props);\n};\nexport function IoMdHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.679 273.5c-14.585-14.577-36.054-15.89-50.639-1.312l-41.687 41.664c-10.852 10.836-23.93 10.859-31.564 1.852-5.057-5.968-3.061-24.374-1.644-36.049l20.907-171.849c1.867-15.353-9.07-30.185-24.43-32.051-15.358-1.867-29.322 9.939-31.191 25.289L267.37 236.021c-1.205 3.358-3.79 3.938-4.081-.582L255.44 60c0-15.465-12.542-28-28.014-28-15.473 0-28.015 12.535-28.015 28l-.552 176.752c.146 2.04-1.604 2.624-1.92.294L172.016 99.077c-2.75-15.219-17.323-26.203-32.548-23.453-15.227 2.748-25.339 18.187-22.591 33.403l22.193 161.455c.023 2.872-.941 4.513-2.308.831l-33.109-88.517c-5.18-14.572-21.196-23.065-35.776-17.889-14.579 5.177-22.201 22.061-17.023 36.631l58.042 189.625c.303 1.046.624 2.085.953 3.118l.121.39c.011.031.025.058.035.088C126.079 444.233 172.57 480 227.427 480c35.116 0 71.591-12.378 99.357-33.672l.003-.002c29.99-18.051 126.071-121.347 126.071-121.347 14.587-14.577 12.408-36.899-2.179-51.479z\"}}]})(props);\n};\nexport function IoMdHappy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C140.563 48 48 141.6 48 256s92.563 208 208 208 208-93.6 208-208S370.401 48 256 48zm0 374.4c-91.518 0-166.404-74.883-166.404-166.4 0-91.518 74.887-166.4 166.404-166.4S422.404 164.482 422.404 256 347.518 422.4 256 422.4zm72.8-187.2c17.683 0 31.201-13.518 31.201-31.2s-13.519-31.2-31.201-31.2c-17.682 0-31.2 13.518-31.2 31.2s13.518 31.2 31.2 31.2zm-145.6 0c17.682 0 31.2-13.518 31.2-31.2s-13.519-31.2-31.2-31.2c-17.683 0-31.201 13.518-31.201 31.2s13.519 31.2 31.201 31.2zM256 370.4c48.883 0 89.436-30.164 106.081-72.801H149.919C166.564 340.236 207.117 370.4 256 370.4z\"}}]})(props);\n};\nexport function IoMdHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C150 48 64 136.2 64 245.1v153.3c0 36.3 28.6 65.7 64 65.7h64V288h-85.3v-42.9c0-84.7 66.8-153.3 149.3-153.3s149.3 68.5 149.3 153.3V288H320v176h64c35.4 0 64-29.3 64-65.7V245.1C448 136.2 362 48 256 48z\"}}]})(props);\n};\nexport function IoMdHeartDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M51.9 76.6l25 25c-18.1 20.3-29 47.3-29 77.6 0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2c20.6-18.9 39.9-36.6 57.5-53.3l92.2 92 24-24-383.8-383-24.2 24.1zM464 179.1C464 114.2 414.1 64 349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64c-8.4 0-16.5.9-24.3 2.5l253.7 253.1C437.3 270.9 464 228 464 179.1z\"}}]})(props);\n};\nexport function IoMdHeartEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64 97.9 64 48 114.2 48 179.1c0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2C393.3 322.4 464 258.6 464 179.1 464 114.2 414.1 64 349.6 64zm-80.8 329.3l-4.2 3.9-8.6 7.8-8.6-7.8-4.2-3.9c-50.4-46.3-94-86.3-122.7-122-28-34.7-40.4-63.1-40.4-92.2 0-22.9 8.4-43.9 23.7-59.3 15.2-15.4 36-23.8 58.6-23.8 26.1 0 52 12.2 69.1 32.5l24.5 29.1 24.5-29.1c17.1-20.4 43-32.5 69.1-32.5 22.6 0 43.4 8.4 58.7 23.8 15.3 15.4 23.7 36.5 23.7 59.3 0 29-12.5 57.5-40.4 92.2-28.8 35.7-72.3 75.7-122.8 122z\"}}]})(props);\n};\nexport function IoMdHeartHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.6 64c-36.4 0-70.7 16.7-93.6 43.9C233.1 80.7 198.8 64 162.4 64 97.9 64 48 114.2 48 179.1c0 79.5 70.7 143.3 177.8 241.7L256 448l30.2-27.2C393.3 322.4 464 258.6 464 179.1 464 114.2 414.1 64 349.6 64zM256 406V157.7l24.5-29.1c17.1-20.4 43-32.5 69.1-32.5 22.6 0 43.4 8.4 58.7 23.8 15.3 15.4 23.7 36.5 23.7 59.3 0 29-12.5 57.5-40.4 92.2C362.8 307 306.4 359.7 256 406z\"}}]})(props);\n};\nexport function IoMdHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448l-30.164-27.211C118.718 322.442 48 258.61 48 179.095 48 114.221 97.918 64 162.4 64c36.399 0 70.717 16.742 93.6 43.947C278.882 80.742 313.199 64 349.6 64 414.082 64 464 114.221 464 179.095c0 79.516-70.719 143.348-177.836 241.694L256 448z\"}}]})(props);\n};\nexport function IoMdHelpBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48zm61 356l-12.2-39.6c13-5.8 24.9-14 35.3-24.4 10.4-10.4 18.6-22.3 24.4-35.3l39.5 12.1c-7.9 19.3-19.7 37-34.9 52.2-15.1 15.3-32.8 27.1-52.1 35zM195 108l12.2 39.6c-13 5.8-24.9 14-35.3 24.4-10.4 10.4-18.6 22.3-24.4 35.3L108 195.2c7.9-19.3 19.7-37 34.9-52.2 15.1-15.3 32.8-27.1 52.1-35zm61 84c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm113.1-49.1c15.2 15.2 26.9 32.9 34.9 52.1l-39.5 12.2c-5.9-13-14-24.9-24.4-35.3-10.4-10.4-22.3-18.6-35.3-24.4l12.1-39.5c19.3 7.9 37 19.7 52.2 34.9zM142.9 369.1c-15.2-15.1-27-32.8-34.9-52.1l39.5-12.2c5.9 13 14 24.9 24.4 35.3 10.4 10.4 22.3 18.6 35.3 24.4L195.1 404c-19.3-7.9-37-19.7-52.2-34.9z\"}}]})(props);\n};\nexport function IoMdHelpCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M235 339h42v42h-42zM276.8 318h-41.6c0-67 62.4-62.2 62.4-103.8 0-22.9-18.7-41.7-41.6-41.7S214.4 192 214.4 214h-41.6c0-46 37.2-83 83.2-83s83.2 37.1 83.2 83.1c0 52-62.4 57.9-62.4 103.9z\"}}]})(props);\n};\nexport function IoMdHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm21 333h-42v-42h42v42zm-.2-63h-41.6c0-67 62.4-62.2 62.4-103.8 0-22.9-18.7-41.7-41.6-41.7S214.4 192 214.4 214h-41.6c0-46 37.2-83 83.2-83s83.2 37.1 83.2 83.1c0 52-62.4 57.9-62.4 103.9z\"}}]})(props);\n};\nexport function IoMdHelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289 448h-66v-65h66v65zm-1-98h-64c0-101 96-95.1 96-159 0-35.2-28.8-63.4-64-63.4S192 158 192 192h-64c0-71 57.3-128 128-128s128 56.4 128 127c0 79.9-96 89-96 159z\"}}]})(props);\n};\nexport function IoMdHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 448V320h96v128h97.6V256H464L256 64 48 256h62.4v192z\"}}]})(props);\n};\nexport function IoMdHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 48v122.8h.2l-.2.2 85.3 85-85.3 85.2.2.2h-.2V464h256V341.4h-.2l.2-.2-85.3-85.2 85.3-85-.2-.2h.2V48H128zm213.3 303.9v71.5H170.7v-71.5l85.3-85.2 85.3 85.2zM256 245.4l-85.3-85.2V87.6h170.7v72.5L256 245.4z\"}}]})(props);\n};\nexport function IoMdIceCream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.1 256l128 224 128-224zM392 161c3-9 4.7-22.7 4.7-32.9 0-53.1-43-96.1-96.1-96.1-31.4 0-59.2 15-76.8 38.3 0 0-9.1 14-10.8 29l-3.4-1c-2.3-9-3.7-20 1.6-31.5-7.4-2.5-9.4-2.8-17.6-2.8-41.7 0-75.6 33.8-75.6 75.6 0 6.3.8 15.5 2.3 21.4-13.9 3.5-24.3 16.1-24.3 31 0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32 0-14.8-10.2-27.4-24-31z\"}}]})(props);\n};\nexport function IoMdImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 405.333V106.667C448 83.198 428.802 64 405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333zM181.333 288l53.334 64 74.666-96 96 128H106.667l74.666-96z\"}}]})(props);\n};\nexport function IoMdImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M457.6 140.2l-82.5-4-4.8-53.8c-1-11.3-11.1-19.2-22.9-18.3L51.5 88.4c-11.8 1-20.3 10.5-19.4 21.7l21.2 235.8c1 11.3 11.2 19.2 22.9 18.3l15-1.2-2.4 45.8c-.6 12.6 9.2 22.8 22.4 23.5L441.3 448c13.2.6 24.1-8.6 24.8-21.2L480 163.5c.6-12.5-9.3-22.7-22.4-23.3zm-354.9 5.3l-7.1 134.8L78.1 305 62 127v-.5-.5c1-5 4.4-9 9.6-9.4l261-21.4c5.2-.4 9.7 3 10.5 7.9 0 .2.3.2.3.4 0 .1.3.2.3.4l2.7 30.8-219-10.5c-13.2-.4-24.1 8.8-24.7 21.3zm334 236.9l-84.8-99.5-37.4 34.3-69.2-80.8-122.7 130.7L133 168v-.4c1-5.4 6.2-9.3 11.9-9l291.2 14c5.8.3 10.3 4.7 10.4 10.2 0 .2.3.3.3.5l-10.1 199.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 256c17.6 0 32-14.4 32-32s-14.3-32-32-32c-17.6 0-32 14.3-32 32s14.3 32 32 32z\"}}]})(props);\n};\nexport function IoMdInfinite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.7 188c-18.8-18-43.8-28-70.5-28-26.6 0-51.6 9.9-70.4 27.9l-17.6 15.9 33.1 32.1 17-15.4.1-.1c10.1-9.6 23.5-15 37.7-15 14.2 0 27.6 5.3 37.7 14.9 10 9.6 15.4 22.3 15.4 35.8 0 13.5-5.5 26.1-15.4 35.6-10.1 9.6-23.5 15-37.7 15s-27.6-5.3-37.7-14.9L218.2 188c-18.9-18-43.9-28-70.4-28-26.7 0-51.7 9.9-70.5 28C58.4 206.1 48 230.2 48 256c0 25.7 10.4 49.9 29.3 68 18.8 18 43.8 28 70.5 28 26.7 0 51.7-9.9 70.4-28l37.8-36.1 37.7 36.1c18.9 18 43.9 28 70.4 28 26.7 0 51.7-9.9 70.4-27.9 19-18.1 29.4-42.2 29.4-68 .1-25.8-10.3-50-29.2-68.1zM185.5 291.7c-10.1 9.6-23.5 15-37.7 15-14.2 0-27.6-5.3-37.7-14.9-10-9.6-15.4-22.3-15.4-35.8 0-13.5 5.5-26.1 15.4-35.6 10.1-9.6 23.5-15 37.7-15 14.2 0 27.6 5.3 37.7 14.9l37.4 35.8-37.4 35.6z\"}}]})(props);\n};\nexport function IoMdInformationCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M277 360h-42V235h42v125zm0-166h-42v-42h42v42z\"}}]})(props);\n};\nexport function IoMdInformationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm21 312h-42V235h42v125zm0-166h-42v-42h42v42z\"}}]})(props);\n};\nexport function IoMdInformation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 235h48v137h-48zM232 140h48v48h-48z\"}}]})(props);\n};\nexport function IoMdJet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32s-23.4-.7-59.3 27.1C404 72 244.9 186.8 244.9 186.8l-168.8-4.2L32 222l109.8 55.2-8.6 10.8-87.9.1-7.2 40.5 63.1 48.7-26.6 59.8 60-26.4 48.7 63.1 40.5-7.2.1-87.8 10.9-8.5L290.1 480l39.3-44.1-4.2-168.7S440.1 108.2 453 91.6C480.7 55.5 480 32 480 32z\"}}]})(props);\n};\nexport function IoMdJournal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M117.3 42.7c-17.6 0-32 14.4-32 32v362.7c0 17.6 14.4 32 32 32H320V42.7H117.3zM384.7 42.7H368v426.7h16.7c23.1 0 42-18.9 42-42V84.7c0-23.1-18.9-42-42-42z\"}}]})(props);\n};\nexport function IoMdKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.2 224c-14.2-40.2-55.1-72-100.2-72-57.2 0-101 46.8-101 104s45.8 104 103 104c45.1 0 84.1-31.8 98.2-72H352v64h69.1v-64H464v-64H249.2zm-97.6 66.5c-19 0-34.5-15.5-34.5-34.5s15.5-34.5 34.5-34.5 34.5 15.5 34.5 34.5-15.5 34.5-34.5 34.5z\"}}]})(props);\n};\nexport function IoMdKeypad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 398.5c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.3-18.2-40.7-40.5-40.7zM136.5 32C114.2 32 96 50.3 96 72.7s18.2 40.7 40.5 40.7S177 95.1 177 72.7 158.8 32 136.5 32zm0 122.2c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zm0 122.2c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm239-162.9c22.3 0 40.5-18.3 40.5-40.7S397.8 32 375.5 32 335 50.3 335 72.7s18.2 40.8 40.5 40.8zM256 276.4c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm119.5 0c-22.3 0-40.5 18.3-40.5 40.7 0 22.4 18.2 40.7 40.5 40.7s40.5-18.3 40.5-40.7c0-22.4-18.2-40.7-40.5-40.7zm0-122.2c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zm-119.5 0c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7-18.2-40.7-40.5-40.7zM256 32c-22.3 0-40.5 18.3-40.5 40.7s18.2 40.7 40.5 40.7 40.5-18.3 40.5-40.7S278.3 32 256 32z\"}}]})(props);\n};\nexport function IoMdLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.334 416C460.803 416 480 396.803 480 373.334V106.668C480 83.199 460.803 64 437.334 64H74.666C51.197 64 32 83.199 32 106.668v266.666C32 396.803 51.197 416 74.666 416H0c0 23.469 64 32 96 32h320c32 0 96-8.531 96-32h-74.666zM74.666 106.668h362.668v271.998H74.666V106.668zM256 434.666c-11.729 0-21.333-9.604-21.333-21.334 0-11.729 9.604-21.332 21.333-21.332s21.333 9.604 21.333 21.332c0 11.73-9.604 21.334-21.333 21.334z\"}}]})(props);\n};\nexport function IoMdLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 287.6C416 120.9 256 32 256 32S96 120.9 96 287.6c0 118.8 81.3 140.5 128 143.2V480h64v-49.3c46.7-2.6 128-24.3 128-143.1z\"}}]})(props);\n};\nexport function IoMdLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M74.6 256c0-38.3 31.1-69.4 69.4-69.4h88V144h-88c-61.8 0-112 50.2-112 112s50.2 112 112 112h88v-42.6h-88c-38.3 0-69.4-31.1-69.4-69.4zm85.4 22h192v-44H160v44zm208-134h-88v42.6h88c38.3 0 69.4 31.1 69.4 69.4s-31.1 69.4-69.4 69.4h-88V368h88c61.8 0 112-50.2 112-112s-50.2-112-112-112z\"}}]})(props);\n};\nexport function IoMdListBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 64H104c-22.091 0-40 17.908-40 40v304c0 22.092 17.909 40 40 40h304c22.092 0 40-17.908 40-40V104c0-22.092-17.908-40-40-40zM304 368H144v-48h160v48zm64-88H144v-48h224v48zm0-88H144v-48h224v48z\"}}]})(props);\n};\nexport function IoMdList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 280h256v48H80zM80 184h320v48H80zM80 88h352v48H80z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 376h288v48H80z\"}}]}]})(props);\n};\nexport function IoMdLocate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 176c-44.004 0-80.001 36-80.001 80 0 44.004 35.997 80 80.001 80 44.005 0 79.999-35.996 79.999-80 0-44-35.994-80-79.999-80zm190.938 58.667c-9.605-88.531-81.074-160-169.605-169.599V32h-42.666v33.067c-88.531 9.599-160 81.068-169.604 169.599H32v42.667h33.062c9.604 88.531 81.072 160 169.604 169.604V480h42.666v-33.062c88.531-9.604 160-81.073 169.605-169.604H480v-42.667h-33.062zM256 405.333c-82.137 0-149.334-67.198-149.334-149.333 0-82.136 67.197-149.333 149.334-149.333 82.135 0 149.332 67.198 149.332 149.333S338.135 405.333 256 405.333z\"}}]})(props);\n};\nexport function IoMdLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 186h-20v-40c0-55-45-100-100-100S156 91 156 146v40h-20c-22.002 0-40 17.998-40 40v200c0 22.002 17.998 40 40 40h240c22.002 0 40-17.998 40-40V226c0-22.002-17.998-40-40-40zM256 368c-22.002 0-40-17.998-40-40s17.998-40 40-40 40 17.998 40 40-17.998 40-40 40zm62.002-182H193.998v-40c0-34.004 28.003-62.002 62.002-62.002 34.004 0 62.002 27.998 62.002 62.002v40z\"}}]})(props);\n};\nexport function IoMdLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c-42.9 0-84.2 13-119.2 37.5-34.2 24-60.2 57.2-75.1 96.1L58 192h45.7l1.9-5c8.2-17.8 19.4-33.9 33.5-48 31.2-31.2 72.7-48.4 116.9-48.4s85.7 17.2 116.9 48.4c31.2 31.2 48.4 72.7 48.4 116.9 0 44.1-17.2 85.7-48.4 116.9-31.2 31.2-72.7 48.4-116.9 48.4-44.1 0-85.6-17.2-116.9-48.4-14-14-25.3-30.1-33.5-47.9l-1.9-5H58l3.6 10.4c14.9 38.9 40.9 72.1 75.1 96.1C171.8 451.1 213 464 256 464c114.7 0 208-93.3 208-208S370.7 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M48 277.4h189.7l-43.6 44.7L224 352l96-96-96-96-31 29.9 44.7 44.7H48v42.8z\"}}]})(props);\n};\nexport function IoMdLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 277.4h189.7l-43.6 44.7L368 352l96-96-96-96-31 29.9 44.7 44.7H192v42.8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M255.7 421.3c-44.1 0-85.5-17.2-116.7-48.4-31.2-31.2-48.3-72.7-48.3-116.9 0-44.1 17.2-85.7 48.3-116.9 31.2-31.2 72.6-48.4 116.7-48.4 44 0 85.3 17.1 116.5 48.2l30.3-30.3c-8.5-8.4-17.8-16.2-27.7-23.2C339.7 61 298.6 48 255.7 48 141.2 48 48 141.3 48 256s93.2 208 207.7 208c42.9 0 84-13 119-37.5 10-7 19.2-14.7 27.7-23.2l-30.2-30.2c-31.1 31.1-72.5 48.2-116.5 48.2zM448.004 256.847l-.849-.848.849-.849.848.849z\"}}]})(props);\n};\nexport function IoMdMagnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.6 98.8C352.1 65.8 308 48.2 256 48c-51.9.2-96 17.8-127.5 50.8C96.8 132 80 178.8 80 234c0 43.5 1.8 69.2 12.9 115.8 0 0 22.7 75.7 35.5 104.1 3.5 7.8 7.4 11.8 15.5 9.3 6.4-2 46.8-17.9 54.7-21.6 7.9-3.6 11.6-8.6 8.9-15.2-3.8-9.2-33.9-95.6-33.9-95.6-8.4-36.3-11.6-53.9-11.6-94.3 0-28.2 9.8-54.1 27.7-72.9 17.5-18.3 41-28.4 66.3-28.4s48.8 10.1 66.3 28.4c17.9 18.8 27.7 44.6 27.7 72.8 0 40-3.2 64-11.7 94.4s-32.2 90.1-33.9 95.6c-1.7 5.6 2.1 12.5 8.9 15.2 6.8 2.7 49.3 19.6 54.7 21.6 5.4 2 10.6.6 14.5-7.7 4-8.3 24.6-61.4 36.5-105.7 12-44.3 13-72.3 13-115.8 0-55.2-16.7-101.9-48.4-135.2zM173.1 419.7l-22.9 9.6c-6.9-16.3-17.2-43.2-25.9-77.2l22-6.5 26.8 74.1zm188.6 9.6l-22.9-9.6c7.2-16.6 19.1-45.1 26.6-74.1l22 6.5c-8.4 33.9-18.7 60.9-25.7 77.2z\"}}]})(props);\n};\nexport function IoMdMailOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 201.667c0-14.933-7.469-28.803-20.271-36.266L256 64 52.271 165.401C40.531 172.864 32 186.734 32 201.667v203.666C32 428.802 51.197 448 74.666 448h362.668C460.803 448 480 428.802 480 405.333V201.667zM256 304L84.631 192 256 106.667 427.369 192 256 304z\"}}]})(props);\n};\nexport function IoMdMailUnread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"432\",\"cy\":\"128\",\"r\":\"64\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M382.9 203.4L256 288 80 170.7V128l176 117.3 101.1-67.4c-9.5-14.3-15.1-31.5-15.1-49.9 0-17.6 5.1-34.1 13.9-48H74.7C51.2 80 32 99.2 32 122.7v266.7c0 23.5 19.2 42.7 42.7 42.7h362.7c23.5 0 42.7-19.2 42.7-42.7V204.1c-13.9 8.8-30.4 13.9-48 13.9-18.2 0-35.1-5.4-49.2-14.6z\"}}]})(props);\n};\nexport function IoMdMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.332 80H74.668C51.199 80 32 99.198 32 122.667v266.666C32 412.802 51.199 432 74.668 432h362.664C460.801 432 480 412.802 480 389.333V122.667C480 99.198 460.801 80 437.332 80zM432 170.667L256 288 80 170.667V128l176 117.333L432 128v42.667z\"}}]})(props);\n};\nexport function IoMdMale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 48H288v48h94.1L275.4 202.6C251.9 185.9 223.1 176 192 176c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144c0-31.1-9.9-59.9-26.6-83.4L416 129.9V224h48V48h-48zM192 416c-52.9 0-96-43.1-96-96s43.1-96 96-96 96 43.1 96 96-43.1 96-96 96z\"}}]})(props);\n};\nexport function IoMdMan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 106.6c20.6.1 37.3-16.6 37.3-37.3 0-20.6-16.7-37.3-37.3-37.3-20.6 0-37.3 16.7-37.3 37.3 0 20.6 16.7 37.3 37.3 37.3zM293.4 115h-74.8c-28.2 0-46.6 24.8-46.6 48.4V277c0 22 31 22 31 0V172h6v285.6c0 30.4 42 29.4 43 0V293h8v164.7c1.7 31.2 43 28.2 43-.1V172h5v105c0 22 32 22 32 0V163.4c0-23.5-18.5-48.4-46.6-48.4z\"}}]})(props);\n};\nexport function IoMdMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.333 64c-2.176 0-4.396 1.369-9.176 3.207L320 108.802 192 64 71.469 104.531C67.197 105.604 64 109.864 64 115.197v322.136C64 443.729 68.271 448 74.666 448c1.828 0 6.505-2.33 9.087-3.319L192 403.197 320 448l120.531-40.531c4.271-1.073 7.469-5.334 7.469-10.667V74.666C448 68.271 443.729 64 437.333 64zM320 405.333l-128-44.802V106.666l128 44.803v253.864z\"}}]})(props);\n};\nexport function IoMdMedal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M273.5 152.1H48l54.1-103.9h240.7z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"256.2\",\"cy\":\"377.2\",\"r\":\"86.6\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M348.9 299.1l115.1-147-69.3-103.9L256.4 256c32.3 0 62.7 12.7 85.5 35.5 2.5 2.5 4.8 5 7 7.6zM205.8 266.6L152.3 186H48.4l90.1 161.5c5.2-21.2 16.1-40.6 32-56.4 10.4-10.3 22.3-18.6 35.3-24.5z\"}}]})(props);\n};\nexport function IoMdMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M351.9 256L460 193.6l-48-83.2-108 62.4V48h-96v124.8l-108-62.4-48 83.2L160.1 256 52 318.4l48 83.2 108-62.4V464h96V339.2l108 62.4 48-83.2z\"}}]})(props);\n};\nexport function IoMdMedkit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 144v-39.6C352 82 334 64 311.6 64H200.4C178 64 160 82 160 104.4V144H48v263.6C48 430 66 448 88.4 448h335.2c22.4 0 40.4-18 40.4-40.4V144H352zm-152-40h112v40H200v-40zm136 224h-56v56h-48v-56h-56v-48h56v-56h48v56h56v48z\"}}]})(props);\n};\nexport function IoMdMegaphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.1 143.4l-23.1 23c14.7 14.7 23.9 35.2 23.9 57.6s-9.2 42.9-23.9 57.6l23.1 23.1c20.6-20.6 33.4-49.2 33.4-80.6s-12.8-60.1-33.4-80.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M428.2 99l-22.7 22.7c26.1 26.1 42.3 62.4 42.3 102.3 0 39.8-16.1 76.1-42.3 102.3l22.7 22.7c31.9-32.1 51.8-76.3 51.8-125s-19.8-92.9-51.8-125zM320 184.1V80h-32l-96 80H64l-32 16v112l32 16 80 128h48l-30-128h30l96 64h32V263.9c18.4-1.7 32-18.9 32-39.9s-13.6-38.2-32-39.9z\"}}]})(props);\n};\nexport function IoMdMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 384h384v-42.666H64V384zm0-106.666h384v-42.667H64v42.667zM64 128v42.665h384V128H64z\"}}]})(props);\n};\nexport function IoMdMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.951 354.654l-26.616-26.562-9.568-9.548-4.698-4.706L187 174.041v.346L76.112 63.531 51.921 87.572 187 222.47v28.816c0 37.79 31.121 68.714 68.91 68.714a68.6 68.6 0 0 0 24.565-4.545l32.389 32.274c-17.333 8.793-36.812 13.86-56.782 13.86-62.986 0-121.365-48.59-121.365-116.59H95.773C95.773 322 158 387.701 233 398.013V480h46v-81.987c22-3.352 43.066-11.222 61.627-22.622l95.278 95.078 24.033-24-33.847-33.785-58.216-57.959 58.224 57.959-58.148-58.03zM325 251.286V100.714C325 62.924 293.791 32 256 32s-69 30.924-69 68.714v25.244l137.109 136.968c.67-3.791.891-7.679.891-11.64zM416.439 245h-38.941c0 20.496-5.498 39.676-14.931 56.197l27.572 27.516c16.523-24.11 26.3-52.787 26.3-83.713zM459.999 446.427l-33.897-33.743 33.855 33.785z\"}}]})(props);\n};\nexport function IoMdMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 320c37.712 0 68.571-30.924 68.571-68.714V100.714C324.571 62.924 293.712 32 256 32s-68.571 30.924-68.571 68.714v150.572c0 37.79 30.859 68.714 68.571 68.714zm121.139-75.452c0 68.714-58.282 116.815-121.139 116.815s-121.139-48.102-121.139-116.815H96c0 77.873 61.719 143.153 137.144 153.465V480h45.713v-81.987C354.281 386.561 416 322.421 416 244.548h-38.861z\"}}]})(props);\n};\nexport function IoMdMicrophone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 112V84.4c0-29-24.5-52.4-54.8-52.4H182.9C152.5 32 128 55.4 128 84.4V112h152v37H128v43h152v37H128v43h152v37H128v41.8c0 29 24.5 52.2 54.9 52.2H213v77h86v-77h30.2c30.3 0 54.8-23.2 54.8-52.2V309h-56v-37h56v-43h-56v-37h56v-43h-56v-37h56z\"}}]})(props);\n};\nexport function IoMdMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M195 125c0-26.3 5.3-51.3 14.9-74.1C118.7 73 51 155.1 51 253c0 114.8 93.2 208 208 208 97.9 0 180-67.7 202.1-158.9-22.8 9.6-47.9 14.9-74.1 14.9-106 0-192-86-192-192z\"}}]})(props);\n};\nexport function IoMdMore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 136c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0 240c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40zm0-120c0-22.002-17.998-40-40-40s-40 17.998-40 40 17.998 40 40 40 40-17.998 40-40z\"}}]})(props);\n};\nexport function IoMdMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 256l-96-96v64h-96v-96h64l-96-96-96 96h64v96h-96v-64l-96 96 96 96v-64h96v96h-64l96 96 96-96h-64v-96h96v64z\"}}]})(props);\n};\nexport function IoMdMusicalNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64v225.1c-12.6-7.3-27.1-11.7-42.7-11.7-47.1 0-85.3 38.2-85.3 85.3s38.2 85.3 85.3 85.3 85.3-38.2 85.3-85.3V149.3H384V64H256z\"}}]})(props);\n};\nexport function IoMdMusicalNotes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64v257.6c-8.2-2.7-17.2-4.1-26.6-4.1-38.3 0-69.4 27.1-69.4 65.4 0 38.3 31.1 65.1 69.4 65.1 38.3 0 69.6-28.2 69.6-69.1V200h202v121.6c-8.2-2.7-17.2-4.1-26.6-4.1-38.3 0-69.4 27.1-69.4 65.4 0 38.3 31.1 65.1 69.4 65.1 38.3 0 69.6-28.2 69.6-69.1V64H160zm245 96H203v-53h202v53z\"}}]})(props);\n};\nexport function IoMdNavigate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64L96 433.062 110.938 448 256 384l145.062 64L416 433.062z\"}}]})(props);\n};\nexport function IoMdNotificationsOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 463.656c22.814 0 41.475-18.656 41.475-41.656h-82.95c0 23 18.661 41.656 41.475 41.656z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M131.083 107.172l.053.074L98.09 74.277 74.004 98.383l63.042 63.153C126.888 180.521 121 202.196 121 225.07v114.555l-41 41.656V402h297.743l36.182 36.33 24.079-24.301L425.9 402h.316L131.083 107.172zM391 225.07c0-63.526-45-117.677-104-131.218V79.274c0-17.706-13.371-31.243-31-31.243-17.628 0-31 13.537-31 31.243v14.578c-15 3.438-29.048 9.501-41.75 17.663L391 319.355V225.07z\"}}]})(props);\n};\nexport function IoMdNotificationsOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257 120.471c7.083 0 23.911 4.479 23.911 4.479 45.589 10.447 77.678 52.439 77.678 99.85V352.412l9.321 9.364 7.788 7.823H136.302l7.788-7.823 9.321-9.364V224.8c0-47.41 32.089-89.403 77.678-99.85 0 0 18.043-4.479 23.911-4.479M256 48c-17.602 0-31.059 13.518-31.059 31.2v14.559c-59.015 13.523-103.53 67.601-103.53 131.041v114.4L80 380.8v20.8h352v-20.8l-41.411-41.6V224.8c0-63.44-44.516-117.518-103.53-131.041V79.2c0-17.682-13.457-31.2-31.059-31.2zm41.411 374.4h-82.823c0 22.881 18.633 41.6 41.412 41.6s41.411-18.719 41.411-41.6z\"}}]})(props);\n};\nexport function IoMdNotifications (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464c22.779 0 41.411-18.719 41.411-41.6h-82.823c0 22.881 18.633 41.6 41.412 41.6zm134.589-124.8V224.8c0-63.44-44.516-117.518-103.53-131.041V79.2c0-17.682-13.457-31.2-31.059-31.2s-31.059 13.518-31.059 31.2v14.559c-59.015 13.523-103.53 67.601-103.53 131.041v114.4L80 380.8v20.8h352v-20.8l-41.411-41.6z\"}}]})(props);\n};\nexport function IoMdNuclear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 272c0-29.8-16.3-55.7-40.4-69.5l73.1-124.1C335.6 59.1 297.1 48 256 48c-41.2 0-79.9 11.2-113.1 30.6l71.6 125C191.4 217.6 176 243 176 272H32c0 83.3 46.9 153.4 114.4 192l70.1-122.4c11.7 6.6 25.1 10.4 39.5 10.4 14.3 0 27.7-3.8 39.3-10.3L365.6 464C433.1 425.4 480 355.3 480 272H336z\"}}]})(props);\n};\nexport function IoMdNutrition (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M357.2 235.6L274.7 153h-.8c-8.1-6-18.2-10.3-28.4-10.3-13.7 0-26.1 6.3-34.3 16.3h-.6L53 414.1v.8c-3 6.2-5 13.3-5 20.8 0 24.4 19.7 44.3 44.3 44.3 9.4 0 18-2.9 27.4-9.1l232.9-168.1c10.9-8.3 17.4-21.6 17.4-36 0-12-4.7-23.2-12.8-31.2zM464 145.1l-29.2-49-36.6 20.3 31.5-55.9L380.6 32l-67.3 127.8 41.3 41.4z\"}}]})(props);\n};\nexport function IoMdOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.34 405.332H106.66V106.668H240V64H106.66C83.191 64 64 83.197 64 106.668v298.664C64 428.803 83.191 448 106.66 448h298.68c23.469 0 42.66-19.197 42.66-42.668V272h-42.66v133.332zM288 64v42.668h87.474L159.999 322.133l29.866 29.866 215.476-215.47V224H448V64H288z\"}}]})(props);\n};\nexport function IoMdOptions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 384h272v32H32zM400 384h80v32h-80zM384 447.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z\"}},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 240h80v32H32zM208 240h272v32H208zM192 303.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z\"}}]},{\"tag\":\"g\",\"attr\":{},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96h272v32H32zM400 96h80v32h-80zM384 159.5c0 17.949-14.327 32.5-32 32.5-17.673 0-32-14.551-32-32.5v-95c0-17.949 14.327-32.5 32-32.5 17.673 0 32 14.551 32 32.5v95z\"}}]}]})(props);\n};\nexport function IoMdOutlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.5 32H142.4C81.5 32 32 82.6 32 144.6v222.8c0 62 49.5 112.6 110.4 112.6h227.2c60.9 0 110.5-50.6 110.5-112.6V144.6C480 82.6 430.5 32 369.5 32zM175 251v.7c0 10.9-9.1 20.4-19.9 20.4h-23.3c-10.8 0-19.9-9.5-19.9-20.4V148.1c1-10.8 9.2-20.2 19.9-20.2h23.3c10.9 0 19.9 9.8 19.9 20.8V251zm122 147.4c0 11.4-8.9 17.6-20.1 17.6h-41.8c-11.2 0-20.1-8.1-20.1-19.6v-29.3c0-23.3 18.1-42.3 41-42.3s41 19 41 42.3v31.3zM400 251v.7c0 10.9-9.1 20.4-19.9 20.4h-24.3c-10.8 0-19.9-9.5-19.9-20.4V148.1c1-10.8 9.2-20.2 19.9-20.2h24.3c10.8 0 19.9 9.8 19.9 20.8V251z\"}}]})(props);\n};\nexport function IoMdPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 270.9l118.9 44.6L181.7 464 256 360l104 104L464 48 48 270.9zm294.9 126L260 313.4 374.9 152 193.6 289.8 124.9 265l291-156.2-73 288.1z\"}}]})(props);\n};\nexport function IoMdPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H192c-8.8 0-16 7.7-16 16.5V112H74c-23.1 0-42 18.9-42 42v207.5c0 47.6 39 86.5 86 86.5h279.7c45.1 0 82.3-36.9 82.3-82V80c0-8.8-7.2-16-16-16zm-288 80v192h-42V163.2c0-6.8-.8-13.3-3.3-19.2H176zm-17 255.4C148 410 133.2 416 118.5 416c-14.5 0-28.1-5.7-38.5-16-10.3-10.3-16-24-16-38.5V163.2c0-10.6 8.4-19.2 19-19.2s19 8.6 19 19.2V352c0 8.8 7.2 16 16 16h57.5c-1.5 11.6-7.2 22.6-16.5 31.4zM448 366c0 13.3-5.4 25.8-14.9 35.3-9.5 9.5-22.2 14.7-35.4 14.7H187.3c12.8-14.9 20.7-33.9 20.7-54.5V97h240v269z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M248 136h160v56H248zM248 224h160v32H248zM248 288h160v32H248zM408 352H248s0 32-8 32h148.7c19.3 0 19.3-21 19.3-32z\"}}]})(props);\n};\nexport function IoMdPartlySunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248.03 116.81l24.679-24.678 19.233 19.234-24.678 24.677zM176 125.7c-45.3 0-82.3 37-82.3 82.3 0 17.5 5.5 33.7 14.9 47 15.3-13 33.9-22.6 54.7-27.6l13.2-16.6c13.6-17.1 30.7-30.2 50.8-38.9 6.1-2.6 12.4-4.8 19-6.6-14.5-23.7-40.6-39.6-70.3-39.6zM162 64h28v41h-28zM32 194h41v28H32zM81.6 276.8l-.8-.8-24.7 24.7 19.2 19.2 24.7-24.7zM79.289 92.13l24.678 24.678-19.233 19.233-24.678-24.678zM405.6 288.6C394.7 233.4 346.2 192 288 192c-34 0-65.1 11.9-86.5 38.8 29.4 2.2 56.7 13 77.8 33.9 15.6 15.6 26.6 34.6 32.1 55.3h-28.7c-13.1-37.3-48-64-90.6-64-5.1 0-12.3.6-17.7 1.7C128.6 267.1 96 305 96 352c0 53 43 96 96 96h208c44.2 0 80-35.8 80-80 0-42.2-32.8-76.5-74.4-79.4z\"}}]})(props);\n};\nexport function IoMdPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 448h106.7V64H96v384zM309.3 64v384H416V64H309.3z\"}}]})(props);\n};\nexport function IoMdPaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.5 165.9c-4.7-10.5-12.7-18.1-23.1-22-4.8-1.7-9.7-2.6-14.8-2.6-21.7 0-43.7 16.7-54.9 41.6-13.8 30.9-5.8 61 18.6 70.3 4.9 1.8 10.1 2.8 15.6 2.8 22.1 0 44.6-15.3 55.9-38.1 8.5-17.5 9.5-36.8 2.7-52zM145.3 182.8c-11.1-24.9-33.2-41.6-54.9-41.6-5.1 0-10.1.9-14.8 2.6-10.4 3.9-18.3 11.5-23.1 22-6.9 15.2-5.9 34.6 2.7 51.9 11.3 22.8 33.8 38.1 55.9 38.1 5.4 0 10.7-.9 15.6-2.8 24.4-9.1 32.4-39.3 18.6-70.2zM193.5 179.4c2 .1 4 0 6-.2 11.7-.9 22.3-5.9 30.6-14.3 13.4-13.6 17.1-34.9 14.3-56.8-4.3-33.7-25.8-59-54.8-60.1 0 0-4.1 0-6.2.2-12.8 1.1-24.4 6.5-33.5 15.9-13.3 13.6-19.7 33.7-17.1 53.8 4.3 33.4 30.9 60.4 60.7 61.5zM256 224c-69.3 0-138.7 97.1-138.7 176.3 0 23.6 11.8 42.6 23.5 50.4 14.4 9.6 24.5 13.4 45.5 13.4 13.4 0 21.6-2.5 28.1-6.1 12.3-6.7 25.9-10.4 39.9-10.4h3.5c14 0 27.6 3.8 39.9 10.4 6.5 3.5 14.7 6.1 28.1 6.1 21.1 0 31.2-3.8 45.5-13.4 11.6-7.8 23.5-26.8 23.5-50.4C394.7 321 325.3 224 256 224zM312.6 179.1c2 .2 4 .2 6 .2 29.8-1.1 56.5-28 60.8-61.5 2.6-20.2-3.8-40.4-17.1-53.8-9.2-9.3-20.3-14.6-33.1-15.6-2.1-.2-6.7-.2-6.7-.2-28.9 1.1-50.4 26.1-54.8 59.9-2.8 21.9.9 43.3 14.3 56.8 8.4 8.3 19 13.2 30.6 14.2z\"}}]})(props);\n};\nexport function IoMdPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.454 232c33.599 0 61.092-27.002 61.092-60 0-32.997-27.493-60-61.092-60s-61.09 27.003-61.09 60c0 32.998 27.491 60 61.09 60zm-162.908 0c33.599 0 61.09-27.002 61.09-60 0-32.997-27.491-60-61.09-60s-61.092 27.003-61.092 60c0 32.998 27.493 60 61.092 60zm0 44C126.688 276 32 298.998 32 346v54h288v-54c0-47.002-97.599-70-145.454-70zm162.908 11.003c-6.105 0-10.325 0-17.454.997 23.426 17.002 32 28 32 58v54h128v-54c0-47.002-94.688-58.997-142.546-58.997z\"}}]})(props);\n};\nexport function IoMdPersonAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 256c52.805 0 96-43.201 96-96s-43.195-96-96-96-96 43.201-96 96 43.195 96 96 96zm0 48c-63.598 0-192 32.402-192 96v48h384v-48c0-63.598-128.402-96-192-96zM112 224v-64H80v64H16v32h64v64h32v-64h64v-32h-64z\"}}]})(props);\n};\nexport function IoMdPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 256c52.805 0 96-43.201 96-96s-43.195-96-96-96-96 43.201-96 96 43.195 96 96 96zm0 48c-63.598 0-192 32.402-192 96v48h384v-48c0-63.598-128.402-96-192-96z\"}}]})(props);\n};\nexport function IoMdPhoneLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 358.856V153.143C480 130.512 461.674 112 439.272 112H72.728C50.326 112 32 130.512 32 153.143v205.713C32 381.488 50.326 400 72.728 400h366.545C461.674 400 480 381.488 480 358.856zM112 364V148h288v216H112z\"}}]})(props);\n};\nexport function IoMdPhonePortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M358.856 32H153.143C130.512 32 112 50.326 112 72.728v366.545C112 461.674 130.512 480 153.143 480h205.713C381.488 480 400 461.674 400 439.272V72.728C400 50.326 381.488 32 358.856 32zM364 400H148V112h216v288z\"}}]})(props);\n};\nexport function IoMdPhotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 421.3V154.7c0-23.5-19.2-42.7-42.7-42.7H90.7C67.2 112 48 131.2 48 154.7v266.7c0 23.5 19.2 42.7 42.7 42.7h266.7c23.4-.1 42.6-19.3 42.6-42.8zM157.3 304l45.3 64 66.7-96 88 128H90.7l66.6-96z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M421.3 48H154.7C131.2 48 112 67.2 112 90.7V96h261.3c23.5 0 42.7 19.2 42.7 42.7V400h5.3c23.5 0 42.7-19.2 42.7-42.7V90.7c0-23.5-19.2-42.7-42.7-42.7z\"}}]})(props);\n};\nexport function IoMdPie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32.6 256H256V32.6c-5-.4-10.6-.6-16-.6-114.9 0-208 93.1-208 208 0 5.4.2 11 .6 16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M109.8 402.2C147.9 449.6 206.4 480 272 480c114.9 0 208-93.1 208-208 0-65.6-30.4-124.1-77.8-162.2C370.5 84.3 331 67.9 288 64.6V288H64.6c3.3 43 19.7 82.5 45.2 114.2z\"}}]})(props);\n};\nexport function IoMdPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c-88.004 0-160 70.557-160 156.801C96 306.4 256 480 256 480s160-173.6 160-291.199C416 102.557 344.004 32 256 32zm0 212.801c-31.996 0-57.144-24.645-57.144-56 0-31.357 25.147-56 57.144-56s57.144 24.643 57.144 56c0 31.355-25.148 56-57.144 56z\"}}]})(props);\n};\nexport function IoMdPint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 48l42.9 379.2c2.6 20.8 20.5 36.8 42.5 36.8h213.3c22 0 39.9-16 42.5-36.8L448 48H64zm327 124.8H121l-9.4-83.2h288.6l-9.2 83.2z\"}}]})(props);\n};\nexport function IoMdPizza (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.2 130.4C360.7 111.5 309.8 102 256 102c-53.9 0-108.3 10.3-151.2 28-8.1 3.3-15.3 9-10.1 19.5S255.9 480 255.9 480l161-329.9c3.2-6.9.9-15.4-9.7-19.7zm-221 73.6c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32zM256 347c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32zm69.8-123c-18.7 0-32-14.3-32-32s13.3-32 32-32 32 14.3 32 32-13.3 32-32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M436.9 66C384.7 45.4 320.3 32 256 32c-64.3 0-127.6 12.1-180.9 33.4C70.4 67.3 64 71 64 79.2l9.7 24.1c2.8 4.9 8.7 8.2 15.1 8.2 1.8 0 4.3-.3 7.3-1.5 49-18.9 103.1-29.6 160-29.6 56.9 0 115.2 11.6 160 29.6 3.6 1.4 5.6 1.5 7.3 1.5 6.6 0 12.2-3.3 15-8.1l9.8-24.1c-.2-7.3-5-10.8-11.3-13.3z\"}}]})(props);\n};\nexport function IoMdPlanet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.7 151c-2.5 3-4.9 6-7.2 9.2 32.2 36.3 76.1 76.5 124.2 113.7 37.8 29.2 76.3 55.2 111.4 75.1 5.9 3.3 11.7 6.5 17.3 9.4 2.5-3 4.9-6 7.2-9.2 11.7-16.1 18.1-33.2 23.3-53.6.8-3.2 1.5-6.4 2.1-9.5 15.8-83-35.6-164.9-118.5-185.9-37-9.4-74.1-5.1-106.3 9.7-21.4 9.9-38.2 22.9-53.5 41.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M418.2 326.8c-4.1 11-7.4 17.5-7.4 17.5 18.2 21.1 24.6 33.9 31.9 46.4 2.4 4.1 7.4 13.1.9 12.4-1.7-.3-3.5-.7-5.5-1.3-21.3-5.4-51.2-18.7-84.3-37.4-35.8-20.3-74.9-46.7-113.3-76.3-51.1-39.5-97.5-82.3-130.6-120.5-15.3-17.6-27.6-34.2-35.7-47.9-2.4-4.1-3.9-6.3-5.6-10.4-2.5-6.2 5-5.1 7-4.6 14.9 3.8 35 9.9 58.2 23.8 0 0 4.3-4.8 13.9-11.4-22.8-15.4-44.6-27.7-65.2-35.5-23.1-8.8-41.1-6.8-47.5 3.7-12.2 19.9 14 72.3 65.3 132-21.5 86 30.6 173.3 116.5 195 41.1 10.4 82.4 3.9 116.8-15 38.1 17.6 72.1 28.6 96.9 34.9 23.9 6.1 40.4 5.5 46.8-4.9 11.1-18.2-12.1-51.8-59.1-100.5z\"}}]})(props);\n};\nexport function IoMdPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.2 48 48 141.2 48 256s93.2 208 208 208 208-93.2 208-208S370.8 48 256 48zm-41.6 301.6V162.4L339.2 256l-124.8 93.6z\"}}]})(props);\n};\nexport function IoMdPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 52v408l320-204L96 52z\"}}]})(props);\n};\nexport function IoMdPodium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 224h128v192H32zM192 128h128v288H192zM352 288h128v128H352z\"}}]})(props);\n};\nexport function IoMdPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279.1 48h-46.2v231.1h46.2V48zm111.6 50.2L357.9 131c36.5 29.4 59.9 74.4 59.9 125 0 89.4-72.3 161.8-161.8 161.8S94.2 345.4 94.2 256c0-50.6 23.3-95.7 59.6-125.3l-32.6-32.6C76.4 136.3 48 192.7 48 256c0 114.9 93.1 208 208 208s208-93.1 208-208c0-63.3-28.4-119.7-73.3-157.8z\"}}]})(props);\n};\nexport function IoMdPricetag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64H257.6L76.5 251.6c-8 8-12.3 18.5-12.5 29-.3 11.3 3.9 22.6 12.5 31.2l123.7 123.6c8 8 20.8 12.5 28.8 12.5s22.8-3.9 31.4-12.5L448 256V96l-32-32zm-30.7 102.7c-21.7 6.1-41.3-10-41.3-30.7 0-17.7 14.3-32 32-32 20.7 0 36.8 19.6 30.7 41.3-2.9 10.3-11.1 18.5-21.4 21.4z\"}}]})(props);\n};\nexport function IoMdPricetags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M442 107v141L229.2 451.7c8 8 20.8 12.3 28.8 12.3s22.8-3.7 31.4-12.3L480 272V144l-38-37z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M384 48H224L44.3 235.6c-8 8-12 17.8-12.3 28.4-.3 11.3 3.7 23.3 12.3 31.9l123.8 123.6c8 8 20.8 12.5 28.8 12.5s22.7-3.9 31.3-12.5L416 240V80l-32-32zm-30.7 102.7c-21.7 6.1-41.3-10-41.3-30.7 0-17.7 14.3-32 32-32 20.7 0 36.8 19.6 30.7 41.3-2.9 10.3-11.1 18.5-21.4 21.4z\"}}]})(props);\n};\nexport function IoMdPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.95 160h-287.9C76.824 160 48 188.803 48 224v138.667h79.899V448H384.1v-85.333H464V224c0-35.197-28.825-64-64.05-64zM352 416H160V288h192v128zm32.101-352H127.899v80H384.1V64z\"}}]})(props);\n};\nexport function IoMdPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M428 269c-21.5 0-40.6 13.1-48.4 33h-41.2L307 221.3c-2.7-8.2-10.3-13.7-19-13.7h-.4c-8.8.2-16.4 6-18.8 14.5l-33.6 135.4-55.5-291.8C178 55.6 169.6 48 160 48c-9.5 0-16.9 6.2-19.4 16.2L90.3 302H32v40h74c9.2 0 17.2-6.2 19.4-15.2l30.7-160.6 54.1 282.1c1.5 8.8 8.9 15.1 18.6 15.7h1.2c9.3 0 16.9-5.3 19.2-13.5l40.2-162.9 15.5 40.7c2.7 8.2 10.3 13.7 19 13.7h56.4c8.3 19 27.1 31 47.6 31 13.9 0 26.9-5.6 36.8-15.8 9.8-10.1 15.2-23.3 15.2-37.2.1-28.6-22.7-51-51.9-51z\"}}]})(props);\n};\nexport function IoMdQrScanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 124.2c0-6.9 5.2-12.2 12.2-12.2H176V64h-66.8C75.7 64 48 90.7 48 124.2V192h48v-67.8zM403.6 64H336v48h67.2c6.9 0 12.8 5.2 12.8 12.2V192h48v-67.8c0-33.5-27-60.2-60.4-60.2zM416 386.8c0 6.9-5.2 12.2-12.2 12.2H336v49h67.8c33.5 0 60.2-27.7 60.2-61.2V320h-48v66.8zM108.2 399c-6.9 0-12.2-5.2-12.2-12.2V320H48v66.8c0 33.5 27.7 61.2 61.2 61.2H176v-49h-67.8z\"}}]})(props);\n};\nexport function IoMdQuote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96.4 416h77.1l50.9-96.6V96h-160v223.4h77.1L96.4 416zm224 0h77.1l50-96.6V96H288.4v223.4h82l-50 96.6z\"}}]})(props);\n};\nexport function IoMdRadioButtonOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.601 48 48 141.601 48 256s93.601 208 208 208 208-93.601 208-208S370.399 48 256 48zm0 374.399c-91.518 0-166.399-74.882-166.399-166.399S164.482 89.6 256 89.6 422.4 164.482 422.4 256 347.518 422.399 256 422.399z\"}}]})(props);\n};\nexport function IoMdRadioButtonOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 152c-57.2 0-104 46.8-104 104s46.8 104 104 104 104-46.8 104-104-46.8-104-104-104zm0-104C141.601 48 48 141.601 48 256s93.601 208 208 208 208-93.601 208-208S370.399 48 256 48zm0 374.4c-91.518 0-166.4-74.883-166.4-166.4S164.482 89.6 256 89.6 422.4 164.482 422.4 256 347.518 422.4 256 422.4z\"}}]})(props);\n};\nexport function IoMdRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M73.8 141.9c-15.2 6-25.8 21.8-25.8 39.5v256c0 23.5 18.5 42.7 41.6 42.7h332.8c23.1 0 41.6-19.2 41.6-42.7v-256c0-23.7-18.5-42.7-41.6-42.7H179l171.8-71.3L336.7 32 73.8 141.9zM160 438c-35.4 0-64-28.6-64-64s28.6-64 64-64 64 28.6 64 64-28.6 64-64 64zm256-171.3h-32v-46.2h-44.8v46.2H96v-85.3h320v85.3z\"}}]})(props);\n};\nexport function IoMdRainy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M139 400s-23 25.3-23 40.7c0 12.8 10.3 23.3 23 23.3s23-10.5 23-23.3c0-15.4-23-40.7-23-40.7zM217 368s-23 25.3-23 40.7c0 12.8 10.4 23.3 23 23.3 12.7 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM295 400s-23 25.3-23 40.7c0 12.8 10.3 23.3 23 23.3 12.6 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM373 368s-23 25.3-23 40.7c0 12.8 10.4 23.3 23 23.3 12.7 0 23-10.5 23-23.3 0-15.4-23-40.7-23-40.7zM393.2 161.2C380.5 96.6 323.9 48 256 48c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 136 32 180.4 32 235.5 32 297.6 79.4 352 141.2 352h242.7c51.5 0 96.2-46 96.2-97.8-.1-49.4-38.4-89.6-86.9-93z\"}}]})(props);\n};\nexport function IoMdRecording (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.8 160c-53.4 0-96.2 42.8-96.2 96 0 23.6 7.9 44.5 21.9 61.1h-78.8c14-16.6 21.9-37.5 21.9-61.1 0-53.2-42.9-96-96.2-96S46 202.8 46 256s42.9 96 96.2 96h227.5c53.4 0 96.2-42.8 96.2-96s-42.8-96-96.1-96zM142.2 317.1C108.1 317.1 81 290 81 256s27.1-61.1 61.2-61.1 61.2 27.1 61.2 61.1-27 61.1-61.2 61.1zm227.6 0c-34.1 0-61.2-27.1-61.2-61.1s27.1-61.1 61.2-61.1S431 222 431 256s-27.1 61.1-61.2 61.1z\"}}]})(props);\n};\nexport function IoMdRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 337.2L83.8 352c22.9-69.7 88.7-117.8 166-117.8 42.8 0 81.5 15.7 111.8 41.1L282.5 352H480V160l-79.6 76.3c-40.4-35.2-92.8-56.8-150.7-56.8-101.5.1-187.3 66.2-217.7 157.7z\"}}]})(props);\n};\nexport function IoMdRefreshCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.6 48 48 141.6 48 256s93.6 208 208 208 208-93.6 208-208S370.4 48 256 48zm112 194h-98l44.8-44.8C300.1 181.8 279.1 172 256 172c-46.2 0-84 37.8-84 84s37.8 84 84 84c34.9 0 65.3-21.2 77.6-52h29.8c-13.9 46.3-56.3 80-107.4 80-62.3 0-112-50.4-112-112s50.4-112 112-112c30.8 0 58.8 12.6 79.1 32.9L368 144v98z\"}}]})(props);\n};\nexport function IoMdRefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 388c-72.597 0-132-59.405-132-132 0-72.601 59.403-132 132-132 36.3 0 69.299 15.4 92.406 39.601L278 234h154V80l-51.698 51.702C348.406 99.798 304.406 80 256 80c-96.797 0-176 79.203-176 176s78.094 176 176 176c81.045 0 148.287-54.134 169.401-128H378.85c-18.745 49.561-67.138 84-122.85 84z\"}}]})(props);\n};\nexport function IoMdRemoveCircleOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 90c44.3 0 86 17.3 117.4 48.6C404.7 170 422 211.7 422 256s-17.3 86-48.6 117.4C342 404.7 300.3 422 256 422s-86-17.3-117.4-48.6C107.3 342 90 300.3 90 256s17.3-86 48.6-117.4C170 107.3 211.7 90 256 90m0-42C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M363 277H149v-42h214v42z\"}}]})(props);\n};\nexport function IoMdRemoveCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.125 48 48 141.125 48 256s93.125 208 208 208 208-93.125 208-208S370.875 48 256 48zm107 229H149v-42h214v42z\"}}]})(props);\n};\nexport function IoMdRemove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 235h320v42H96z\"}}]})(props);\n};\nexport function IoMdReorder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 348h320v36H96zM96 128h320v36H96zM96 200.7h320v35.6H96zM96 275.8h320v35.6H96z\"}}]})(props);\n};\nexport function IoMdRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.3 152h213.3v62.4l85.3-83.2L362.7 48v62.4h-256v124.8h42.7V152zm213.4 208H149.3v-62.4L64 380.8l85.3 83.2v-62.4h256V276.8h-42.7V360z\"}}]})(props);\n};\nexport function IoMdResize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.6 48l64.9 64.9-249.6 249.6L48 297.6V464h166.4l-64.9-64.9 249.6-249.6 64.9 64.9V48z\"}}]})(props);\n};\nexport function IoMdRestaurant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M164.852 279.939l61.834-60.251L73.72 71.706c-33.626 32.764-33.626 86.677 0 119.44l91.132 88.793z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M312.389 241.88c33.636 14.802 80.283 4.232 113.91-29.593 41.222-40.165 49.909-98.303 17.363-128.96-31.465-31.71-91.131-23.245-132.354 16.921-34.718 33.825-45.566 79.276-30.374 110.986-47.739 47.568-211.552 207.173-211.552 207.173L99.759 448l149.71-145.866L399.177 448l30.374-29.593-149.709-145.869 32.547-30.658z\"}}]})(props);\n};\nexport function IoMdReturnLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432.8 136v96H122.3l84.4-86.2-33.2-33.8L32 256l141.5 144 33.2-33.8-84.4-86.2H480V136h-47.2z\"}}]})(props);\n};\nexport function IoMdReturnRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 136v144h357.7l-84.4 86.2 33.2 33.8L480 256 338.5 112l-33.2 33.8 84.4 86.2H79.2v-96H32z\"}}]})(props);\n};\nexport function IoMdReverseCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440 96h-88l-32-32H192l-32 32H72c-22.1 0-40 17.9-40 40v272c0 22.1 17.9 40 40 40h368c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40zm-72 171h-97.7l44.8-45.1c-14.7-15.4-35.7-25.5-58.8-25.5-46.2 0-84 37.8-84 84s37.8 84 84 84c35.5 0 66.2-21.5 78.2-53.5h29.6c-13.4 47-56.2 81.5-107.8 81.5-62.3 0-112-50.4-112-112s50.4-112 112-112c30.8 0 58.7 12.6 79 32.9l32.8-32.9V267z\"}}]})(props);\n};\nexport function IoMdRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.6 402V110L32 256l217.6 146zm12.8-146L480 402V110L262.4 256z\"}}]})(props);\n};\nexport function IoMdRibbon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c-70.7 0-128 57.3-128 128s57.3 128 128 128 128-57.3 128-128S326.7 32 256 32zm0 208c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80zM193.7 307.4c-19.1-8.1-36.2-19.6-50.8-34.3-1.4-1.4-2.8-2.8-4.1-4.3L64 400h96l48 80 48-105.8 25.5-56.2c-8.4 1.3-16.9 2-25.5 2-21.6 0-42.5-4.2-62.3-12.6zM373.3 268.9c-1.3 1.4-2.7 2.9-4.1 4.3-14.6 14.6-31.7 26.2-50.7 34.2L294 361.2l-21.9 48.4L304 480l48-80h96l-74.7-131.1z\"}}]})(props);\n};\nexport function IoMdRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 421.6c-18.1 0-33.2-6.8-42.9-10.9-5.4-2.3-11.3 1.8-10.9 7.6l3.5 51c.2 3.1 3.8 4.7 6.3 2.8l14.5-11c1.8-1.4 4.5-.9 5.7 1l20.5 32.1c1.5 2.4 5.1 2.4 6.6 0l20.5-32.1c1.2-1.9 3.9-2.4 5.7-1l14.5 11c2.5 1.9 6.1.3 6.3-2.8l3.5-51c.4-5.8-5.5-10-10.9-7.6-9.8 4.1-24.8 10.9-42.9 10.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M397.7 293.1l-48-49.1c0-158-93.2-228-93.2-228s-94.1 70-94.1 228l-48 49.1c-1.8 1.8-2.6 4.5-2.2 7.1L130.6 412c.9 5.7 7.1 8.5 11.8 5.4l67.1-45.4s20.7 20 47.1 20c26.4 0 46.1-20 46.1-20l67.1 45.4c4.6 3.1 10.8.3 11.8-5.4l18.5-111.9c.2-2.6-.6-5.2-2.4-7zM256.5 192c-17 0-30.7-14.3-30.7-32s13.8-32 30.7-32c17 0 30.7 14.3 30.7 32s-13.7 32-30.7 32z\"}}]})(props);\n};\nexport function IoMdRose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.6 214.8c23.8-40.9 48-71.6 91.4-96.4 8.3-4.8 21.2-8 22.8-8.9C290.7 83.7 256 32 256 32s-34.7 51.7-120.5 76.5c5.8 3.4 16.5 6.5 30.7 13.7 34.5 17.4 62.5 51.3 94.4 92.6zM246.3 253.4C186.7 161.2 131.4 126.8 48 126.8c54.2 78.6 52 174.6 52 215.4 0 76.1 69.8 137.8 156 137.8 57.6 0 107.9-27.6 135-68.7-35.5-27.6-85.1-65.7-144.7-157.9zM464 126.8s-55.2-2.3-85.2 15.4c-43 25.5-74.4 61.3-95.4 103.2 38.8 52 73 87.9 95.4 109.4 10.7 10.2 19.8 18.2 27.5 24.5 3.7-11.8 5.8-24.3 5.8-37.2-.1-40.8-17.4-114.1 51.9-215.3z\"}}]})(props);\n};\nexport function IoMdSad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 288c-45.443 0-83.675 26.076-102.205 64h204.41c-18.53-37.924-56.762-64-102.205-64z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C140.563 48 48 141.6 48 256s92.563 208 208 208 208-93.6 208-208S370.401 48 256 48zm0 374.4c-91.518 0-166.404-74.883-166.404-166.4 0-91.518 74.887-166.4 166.404-166.4S422.404 164.482 422.404 256 347.518 422.4 256 422.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M328.8 235.2c17.683 0 31.201-13.518 31.201-31.2s-13.519-31.2-31.201-31.2c-17.682 0-31.2 13.518-31.2 31.2s13.518 31.2 31.2 31.2zM183.2 235.2c17.682 0 31.2-13.518 31.2-31.2s-13.519-31.2-31.2-31.2c-17.683 0-31.201 13.518-31.201 31.2s13.519 31.2 31.201 31.2z\"}}]})(props);\n};\nexport function IoMdSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.7 64h-256C83 64 64 83.2 64 106.7v298.7c0 23.5 19 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7v-256L362.7 64zM256 405.3c-35.4 0-64-28.6-64-64s28.6-64 64-64 64 28.6 64 64-28.6 64-64 64zM320 192H106.7v-85.3H320V192z\"}}]})(props);\n};\nexport function IoMdSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M113.5 281.2v85.3L256 448l142.5-81.5v-85.3L256 362.7l-142.5-81.5zM256 64L32 192l224 128 183.3-104.7v147.4H480V192L256 64z\"}}]})(props);\n};\nexport function IoMdSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.509 305.372h-17.501l-6.571-5.486c20.791-25.232 33.922-57.054 33.922-93.257C347.358 127.632 283.896 64 205.135 64 127.452 64 64 127.632 64 206.629s63.452 142.628 142.225 142.628c35.011 0 67.831-13.167 92.991-34.008l6.561 5.487v17.551L415.18 448 448 415.086 337.509 305.372zm-131.284 0c-54.702 0-98.463-43.887-98.463-98.743 0-54.858 43.761-98.742 98.463-98.742 54.7 0 98.462 43.884 98.462 98.742 0 54.856-43.762 98.743-98.462 98.743z\"}}]})(props);\n};\nexport function IoMdSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 448l416-192L48 64v149.333L346 256 48 298.667z\"}}]})(props);\n};\nexport function IoMdSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M413.967 276.8c1.06-6.235 1.06-13.518 1.06-20.8s-1.06-13.518-1.06-20.8l44.667-34.318c4.26-3.118 5.319-8.317 2.13-13.518L418.215 115.6c-2.129-4.164-8.507-6.235-12.767-4.164l-53.186 20.801c-10.638-8.318-23.394-15.601-36.16-20.801l-7.448-55.117c-1.06-4.154-5.319-8.318-10.638-8.318h-85.098c-5.318 0-9.577 4.164-10.637 8.318l-8.508 55.117c-12.767 5.2-24.464 12.482-36.171 20.801l-53.186-20.801c-5.319-2.071-10.638 0-12.767 4.164L49.1 187.365c-2.119 4.153-1.061 10.399 2.129 13.518L96.97 235.2c0 7.282-1.06 13.518-1.06 20.8s1.06 13.518 1.06 20.8l-44.668 34.318c-4.26 3.118-5.318 8.317-2.13 13.518L92.721 396.4c2.13 4.164 8.508 6.235 12.767 4.164l53.187-20.801c10.637 8.318 23.394 15.601 36.16 20.801l8.508 55.117c1.069 5.2 5.318 8.318 10.637 8.318h85.098c5.319 0 9.578-4.164 10.638-8.318l8.518-55.117c12.757-5.2 24.464-12.482 36.16-20.801l53.187 20.801c5.318 2.071 10.637 0 12.767-4.164l42.549-71.765c2.129-4.153 1.06-10.399-2.13-13.518l-46.8-34.317zm-158.499 52c-41.489 0-74.46-32.235-74.46-72.8s32.971-72.8 74.46-72.8 74.461 32.235 74.461 72.8-32.972 72.8-74.461 72.8z\"}}]})(props);\n};\nexport function IoMdShareAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 248L288 96v85.334C138.666 202.667 85.333 309.334 64 416c53.333-74.666 117.333-108.802 224-108.802v87.469L448 248z\"}}]})(props);\n};\nexport function IoMdShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.822 344.427c-16.045 0-31.024 5.326-41.721 15.979l-152.957-88.42c1.071-5.328 2.142-9.593 2.142-14.919 0-5.328-1.071-9.593-2.142-14.919l150.826-87.35c11.762 10.653 26.741 17.041 43.852 17.041 35.295 0 64.178-28.766 64.178-63.92C448 72.767 419.117 44 383.822 44c-35.297 0-64.179 28.767-64.179 63.92 0 5.327 1.065 9.593 2.142 14.919l-150.821 87.35c-11.767-10.654-26.741-17.041-43.856-17.041-35.296 0-63.108 28.766-63.108 63.92 0 35.153 28.877 63.92 64.178 63.92 17.115 0 32.089-6.389 43.856-17.042l151.891 88.421c-1.076 4.255-2.141 8.521-2.141 13.847 0 34.094 27.806 61.787 62.037 61.787 34.229 0 62.036-27.693 62.036-61.787.001-34.094-27.805-61.787-62.035-61.787z\"}}]})(props);\n};\nexport function IoMdShirt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64c-11.1 19.1-40.3 32-64 32s-52.9-12.9-64-32L64 96v96l77-16-13 272h256l-13-272 77 16V96L320 64z\"}}]})(props);\n};\nexport function IoMdShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M222.2 188.1L97.8 64 64 97.8l124.1 124.1 34.1-33.8zM316 64l49 49L64 414.2 97.8 448 399 147l49 49V64H316zm7.9 225.8l-33.8 33.8 75.1 75.1L316 448h132V316l-49 49-75.1-75.2z\"}}]})(props);\n};\nexport function IoMdSkipBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.7 256L448 448V64L170.7 256zM64 64h64v384H64z\"}}]})(props);\n};\nexport function IoMdSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64v384l277.3-192L64 64zM384 64h64v384h-64z\"}}]})(props);\n};\nexport function IoMdSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.4 298.5l-8.3-30.9-88 23.6-60.4-34.9 60.4-34.9 88 23.6 8.3-30.9-57.1-15.3 57.7-33.3-24-41.5-56.6 32.7 15.3-57.1-30.9-8.3-23.6 88-62.2 35.9v-71.1l64.5-64.4-22.7-22.6L280 98.9V32h-48v65.6l-41.7-41.7-22.6 22.6 64.3 64.4v71.4l-60.7-35-23.6-88-30.9 8.3 15.3 57.1-57.7-33.4-24 41.6 56.7 32.7L50 212.9l8.3 30.9 87.9-23.6 62.6 36.1-62.6 36.2-87.9-23.6-8.3 30.9 57.1 15.3-56.7 32.7 24 41.5 57.7-33.3-15.3 57 30.9 8.3 23.6-87.9 60.7-35.1v70.9l-64.3 64.4 22.6 22.6 41.7-41.8V480h48v-66.8l41.9 41.7 22.5-22.6L280 368v-70.6l62.2 36 23.6 87.9 30.9-8.3-15.3-57 56.6 32.7 24-41.6-57.7-33.3z\"}}]})(props);\n};\nexport function IoMdSpeedometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 416h256v48H128zM256 288c17.7 0 32-14.3 32-32s-14.3-32-32-32c-3 0-6 .4-8.8 1.2l-66.7-48.7-4 3.5 48.9 66.7c-.9 2.9-1.4 6-1.4 9.3 0 17.7 14.3 32 32 32z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256c0 48.3 16.5 92.7 44.1 128h58.8l4-4 22.1-22.1-22.9-22.9-22.1 22c-19.9-24.3-32.1-54-35.2-85H128v-32H96.8c3.1-31 15.3-60.7 35.2-85l22.1 22 22.9-22.9-22-22.1c24.3-19.9 54-32.1 85-35.2V128h32V96.8c31 3.1 60.7 15.3 85 35.2l-22 22.1 22.9 22.9 22.1-22c19.9 24.3 32.1 54 35.2 85H384v32h31.2c-3.1 31-15.3 60.7-35.2 85l-22.1-22-22.9 22.9 22.1 22.1 4 4h58.8c27.6-35.3 44.1-79.7 44.1-128 0-114.9-93.1-208-208-208z\"}}]})(props);\n};\nexport function IoMdSquareOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.3 106.7v298.7H106.7V106.7h298.6m0-42.7H106.7C83.2 64 64 83.2 64 106.7v298.7c0 23.5 19.2 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7V106.7C448 83.2 428.8 64 405.3 64z\"}}]})(props);\n};\nexport function IoMdSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.333 64H106.667C83.198 64 64 83.198 64 106.667v298.666C64 428.802 83.198 448 106.667 448h298.666C428.802 448 448 428.802 448 405.333V106.667C448 83.198 428.802 64 405.333 64z\"}}]})(props);\n};\nexport function IoMdStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458 210.409l-145.267-12.476L256 64l-56.743 133.934L54 210.409l110.192 95.524L131.161 448 256 372.686 380.83 448l-33.021-142.066L458 210.409zM272.531 345.287L256 335.313l-.002-189.277 27.27 64.379 7.52 17.751 19.208 1.65 69.846 5.998-52.993 45.939-14.576 12.636 4.367 18.788 15.875 68.299-59.984-36.189z\"}}]})(props);\n};\nexport function IoMdStarOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458 210.409l-145.267-12.476L256 64l-56.743 133.934L54 210.409l110.192 95.524L131.161 448 256 372.686 380.83 448l-33.021-142.066L458 210.409zM272.531 345.286L256 335.312l-16.53 9.973-59.988 36.191 15.879-68.296 4.369-18.79-14.577-12.637-52.994-45.939 69.836-5.998 19.206-1.65 7.521-17.75 27.276-64.381 27.27 64.379 7.52 17.751 19.208 1.65 69.846 5.998-52.993 45.939-14.576 12.636 4.367 18.788 15.875 68.299-59.984-36.189z\"}}]})(props);\n};\nexport function IoMdStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 372.686L380.83 448l-33.021-142.066L458 210.409l-145.267-12.475L256 64l-56.743 133.934L54 210.409l110.192 95.525L131.161 448z\"}}]})(props);\n};\nexport function IoMdStats (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 64h64v384h-64zM80 336h64v112H80zM272 272h64v176h-64zM368 176h64v272h-64z\"}}]})(props);\n};\nexport function IoMdStopwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 306.667h48V176h-48v130.667z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M407.67 170.271l30.786-30.786-33.942-33.941-30.785 30.786C341.217 111.057 300.369 96 256 96 149.961 96 64 181.961 64 288s85.961 192 192 192 192-85.961 192-192c0-44.369-15.057-85.217-40.33-117.729zm-45.604 223.795C333.734 422.398 296.066 438 256 438s-77.735-15.602-106.066-43.934C121.602 365.735 106 328.066 106 288s15.602-77.735 43.934-106.066C178.265 153.602 215.934 138 256 138s77.734 15.602 106.066 43.934C390.398 210.265 406 247.934 406 288s-15.602 77.735-43.934 106.066zM192 32h128v48H192z\"}}]})(props);\n};\nexport function IoMdSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c-93.864 0-176 10.668-176 85.334v213.332c0 41.604 33.062 74.666 74.667 74.666L128 448v16h256v-16l-26.667-26.668c41.604 0 74.667-33.062 74.667-74.666V133.334C432 58.668 349.864 48 256 48zm-96 336c-18.136 0-32-13.865-32-32 0-18.137 13.864-32 32-32s32 13.863 32 32c0 18.135-13.864 32-32 32zm80-144H128v-96h112v96zm112 144c-18.136 0-32-13.865-32-32 0-18.137 13.864-32 32-32s32 13.863 32 32c0 18.135-13.864 32-32 32zm32-144H272v-96h112v96z\"}}]})(props);\n};\nexport function IoMdSunny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.3 32h-42.7v64h42.7V32zm129.1 43.7L368 114.1l29.9 29.9 38.4-38.4-29.9-29.9zm-300.8 0l-29.9 29.9 38.4 38.4 29.9-29.9-38.4-38.4zM256 128c-70.4 0-128 57.6-128 128s57.6 128 128 128 128-57.6 128-128-57.6-128-128-128zm224 106.7h-64v42.7h64v-42.7zm-384 0H32v42.7h64v-42.7zM397.9 368L368 397.9l38.4 38.4 29.9-29.9-38.4-38.4zm-283.8 0l-38.4 38.4 29.9 29.9 38.4-38.4-29.9-29.9zm163.2 48h-42.7v64h42.7v-64z\"}}]})(props);\n};\nexport function IoMdSwap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M131.3 231.1L32 330.6l99.3 99.4v-74.6h174.5v-49.7H131.3v-74.6zM480 181.4L380.7 82v74.6H206.2v49.7h174.5v74.6l99.3-99.5z\"}}]})(props);\n};\nexport function IoMdSwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 216h94.9c14.5 14.8 34.7 24 57.1 24 44.2 0 80-35.8 80-80s-35.8-80-80-80c-22.4 0-42.6 9.2-57.1 24H168c-30.8 0-56 25.2-56 56s25.2 56 56 56zm-16.9-72.9c4.6-4.6 10.6-7.1 16.9-7.1h75.7c-2.4 7.6-3.7 15.6-3.7 24s1.3 16.4 3.7 24H168c-6.3 0-12.4-2.5-16.9-7.1-4.6-4.6-7.1-10.6-7.1-16.9s2.5-12.4 7.1-16.9zM344 296h-94.9c-14.5-14.8-34.7-24-57.1-24-44.2 0-80 35.8-80 80s35.8 80 80 80c22.4 0 42.6-9.2 57.1-24H344c30.8 0 56-25.2 56-56s-25.2-56-56-56zm16.9 72.9c-4.6 4.6-10.6 7.1-16.9 7.1h-75.7c2.4-7.6 3.7-15.6 3.7-24s-1.3-16.4-3.7-24H344c6.3 0 12.4 2.5 16.9 7.1 4.6 4.6 7.1 10.6 7.1 16.9s-2.5 12.4-7.1 16.9z\"}}]})(props);\n};\nexport function IoMdSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 93.09V32l-80 81.454 80 81.456v-61.093c65.996 0 120 54.982 120 122.183 0 20.363-5 39.714-14.004 57.016L391 342.547c15.996-25.457 25-54.988 25-86.547 0-89.599-72.002-162.91-160-162.91zm0 285.094c-66.001 0-120-54.988-120-122.184 0-20.363 5-39.709 13.999-57.02L121 169.454C104.999 193.89 96 224.436 96 256c0 89.599 72.002 162.91 160 162.91V480l80-81.453-80-81.457v61.094z\"}}]})(props);\n};\nexport function IoMdTabletLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 120v272c0 13.3 10.7 24 24 24h400c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H56c-13.3 0-24 10.7-24 24zm384 8v256H80V128h336zm46 128c0 7.7-6.5 14-14.1 14-7.5 0-14-6.2-14-14 0-7.7 6.4-14.1 14-14.1 7.6.1 14.1 6.4 14.1 14.1z\"}}]})(props);\n};\nexport function IoMdTabletPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 32H120c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24zm-8 384H128V80h256v336zm-128 46c-7.7 0-14-6.5-14-14.1 0-7.5 6.2-14 14-14 7.7 0 14.1 6.4 14.1 14-.1 7.6-6.4 14.1-14.1 14.1z\"}}]})(props);\n};\nexport function IoMdTennisball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.8 92.2C348.5 64.5 304.1 48 256 48c-48 0-92.3 16.5-127.6 44 41.6 44.8 64.3 103 64 164.3-.3 61-23.3 118.6-64.9 162.9 35.4 28 80.1 44.8 128.5 44.8 48.5 0 93.3-16.8 128.8-45-41.5-44.3-64.5-101.8-64.8-162.7-.3-61.2 22.3-119.3 63.8-164.1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M353.1 255.1c0 26.9 5.1 53 15.1 77.8 9.6 23.6 23.3 44.9 40.8 63.6 34.1-37.1 55-86.5 55-140.5 0-54.5-21.2-104.2-55.8-141.4-17.1 18.5-30.6 39.6-40 62.7-10 24.8-15.1 51-15.1 77.8zM159.3 255.1c0-26.9-5.1-53-15.1-77.8-9.4-23.2-22.9-44.4-40.2-62.9-34.7 37.2-56 87-56 141.6 0 54.2 21 103.6 55.2 140.7 17.6-18.7 31.4-40.1 41-63.8 10-24.7 15.1-50.9 15.1-77.8z\"}}]})(props);\n};\nexport function IoMdText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 64H96c-22.002 0-32 17.998-32 40v344l64-64h280c22.002 0 40-17.998 40-40V104c0-22.002-17.998-40-40-40zM198.4 242H160v-40h38.4v40zm76.8 0h-38.4v-40h38.4v40zm76.8 0h-38.4v-40H352v40z\"}}]})(props);\n};\nexport function IoMdThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M303 300.2V78.4c0-25.7-21-46.5-47-46.5s-47 20.8-47 46.5v221.9c-29 16.5-48.9 47.8-48.9 83.7 0 53 43 96 96 96s96-43 96-96c0-36-20.1-67.3-49.1-83.8zM240 78.4c0-8 7.7-14.5 16-14.5s16 6.5 16 14.5V128h-32V78.4z\"}}]})(props);\n};\nexport function IoMdThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314 64H142c-15.7 0-28.6 9.6-34.2 23.4L50.6 222.8c-1.7 4.4-2.6 9-2.6 14v38.6c0 21.1 17 44.6 37.8 44.6h119.3l-18 81.5-.6 6c0 7.9 3.2 15.1 8.3 20.3l20 20.1L341 320.7c6.8-6.9 11-16.5 11-27.1v-192c0-21.1-17.2-37.6-38-37.6zM400 64h64v224h-64z\"}}]})(props);\n};\nexport function IoMdThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M198 448h172c15.7 0 28.6-9.6 34.2-23.4l57.1-135.4c1.7-4.4 2.6-9 2.6-14v-38.6c0-21.1-17-44.6-37.8-44.6H306.9l18-81.5.6-6c0-7.9-3.2-15.1-8.3-20.3L297 64 171 191.3c-6.8 6.9-11 16.5-11 27.1v192c0 21.1 17.2 37.6 38 37.6zM48 224h64v224H48z\"}}]})(props);\n};\nexport function IoMdThunderstorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.2 161.2C380.5 96.6 323.9 48 256 48c-39.7 0-76 14-100.9 45.4 34.3 2.6 66.1 15.2 90.7 39.8 18.2 18.2 31 40.5 37.4 64.8h-33.5c-15.3-43.7-56-75-105.7-75-6 0-14.3.7-20.6 2C70 136 32 180.4 32 235.5 32 297.6 82.2 336 144 336h68V233h99.1l-33.2 67H311l-18 36h93.7c51.5 0 93.3-30 93.3-81.8 0-49.4-38.3-89.6-86.8-93zM212 368h22v96l59-128h-81z\"}}]})(props);\n};\nexport function IoMdTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"g\",\"attr\":{\"fillOpacity\":\".9\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.8 48C141 48 48 141.2 48 256s93 208 207.8 208c115 0 208.2-93.2 208.2-208S370.8 48 255.8 48zm.2 374.4c-91.9 0-166.4-74.5-166.4-166.4S164.1 89.6 256 89.6 422.4 164.1 422.4 256 347.9 422.4 256 422.4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M266.4 152h-31.2v124.8l109.2 65.5 15.6-25.6-93.6-55.5V152z\"}}]}]})(props);\n};\nexport function IoMdTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232.9 371.6c0 12.7 10.4 23.1 23.1 23.1s23.1-10.4 23.1-23.1c0-12.7-10.4-23.1-23.1-23.1s-23.1 10.3-23.1 23.1zm0-323.6v92.4h46.2V96.1c78.3 11.3 138.7 78.3 138.7 159.9 0 89.4-72.3 161.8-161.8 161.8S94.2 345.4 94.2 256c0-38.8 13.6-74.4 36.5-102.2L256 279.1l32.6-32.6L131.4 89.4v.5C80.8 127.7 48 187.8 48 256c0 114.9 92.9 208 208 208 114.9 0 208-93.1 208-208S370.9 48 256 48h-23.1zm161.8 208c0-12.7-10.4-23.1-23.1-23.1-12.7 0-23.1 10.4-23.1 23.1s10.4 23.1 23.1 23.1c12.7 0 23.1-10.4 23.1-23.1zm-277.4 0c0 12.7 10.4 23.1 23.1 23.1s23.1-10.4 23.1-23.1-10.4-23.1-23.1-23.1-23.1 10.4-23.1 23.1z\"}}]})(props);\n};\nexport function IoMdToday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.3 32H106.7C83.2 32 64 51.2 64 74.7v362.7c0 23.5 19.2 42.7 42.7 42.7h298.7c23.5 0 42.7-19.2 42.7-42.7V74.7C448 51.2 428.8 32 405.3 32zm-4 405.3H110.7c-2.2 0-4-1.8-4-4V78.7c0-2.2 1.8-4 4-4h290.7c2.2 0 4 1.8 4 4v354.7c-.1 2.1-1.9 3.9-4.1 3.9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M145 194v204c0 1.1.9 2 2 2h218c1.1 0 2-.9 2-2V194c0-1.1-.9-2-2-2H147c-1.1 0-2 .9-2 2zM145 114.7v34c0 1.1.9 2 2 2h171c1.1 0 2-.9 2-2v-34c0-1.1-.9-2-2-2H147c-1.1 0-2 .9-2 2z\"}}]})(props);\n};\nexport function IoMdTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c-88 0-176 10.9-176 87.6v208c0 42.3 34.5 76.6 77 76.6L124 453v11h49.1l44-43.8H300l44 43.8h44v-10.9l-33-32.8c42.5 0 77-34.4 77-76.6v-208C432 58.9 353.2 48 256 48zm-99 328.4c-18.3 0-33-14.7-33-32.8s14.7-32.8 33-32.8 33 14.7 33 32.8-14.7 32.8-33 32.8zm77-153.2H124v-87.6h110v87.6zm44 0v-87.6h110v87.6H278zm77 153.2c-18.3 0-33-14.7-33-32.8s14.7-32.8 33-32.8 33 14.7 33 32.8-14.7 32.8-33 32.8z\"}}]})(props);\n};\nexport function IoMdTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 32v35h63.1l-81.4 80.5c-7.5-7.2-13.2-11-13.2-11C302.2 123.6 280 116 256 116c-30.2 0-57.6 12-77.8 31.4l-15.2-15 31.4-31.4-28.5-28.5-31.5 31.5-37.5-37H160V32H32v128h35V91.3l40.3 39.9-31.2 31.2 28.5 28.5 31.4-31.4 19.4 19.2c-7.3 14.9-11.5 31.7-11.5 49.5 0 54.8 39.5 100.4 91.1 110.2v45.3h-63V424h63v56h42v-56h63v-40.2h-63v-45.3c50.8-9.9 91.2-55.5 91.2-110.3 0-17.7-4.2-34.8-11.5-49.6L445 91.3V160h35V32H352zm-96 258c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"}}]})(props);\n};\nexport function IoMdTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 405.429C128 428.846 147.198 448 170.667 448h170.667C364.802 448 384 428.846 384 405.429V160H128v245.429zM416 96h-80l-26.785-32H202.786L176 96H96v32h320V96z\"}}]})(props);\n};\nexport function IoMdTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 397V262.5l-51.3 51.3-141.1-141-89.6 89.7L63.6 128 32 159.6l166 166.3 89.6-89.7 109.3 109.4-51.3 51.4H480z\"}}]})(props);\n};\nexport function IoMdTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345.6 128l51.3 51.3-109.3 109.4-89.6-89.6L32 365.4 63.6 397 198 262.5l89.6 89.7 141.1-141 51.3 51.3V128H345.6z\"}}]})(props);\n};\nexport function IoMdTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 105c.9-27 .2-56 .1-57H119.3c0 1-.8 30 .1 57H48c0 68 9.9 102.3 21 126.7S95.4 277 127.7 302c30.1 23.3 95.5 53.6 104.3 57.6v28.3c-4.6 10-23.5 28.2-83.3 28.2H128v48h256v-48h-25.7c-60.7 0-75-19.1-78.3-28.2v-28.3c9.3-4.6 80.9-40.3 104.4-57.5 25.2-18.4 50.9-51.5 58.7-70.3S464 167 464 105h-72zM109.6 211.9c-8.8-18.2-14-37.9-15.7-61.9h28.7c.7 6 1.4 11.3 2.3 16.3 6.6 39.2 14.8 70.2 25.7 96.5-17.3-13.5-31.3-30.8-41-50.9zm292.8 0c-9.9 20.3-24 37.7-41.6 51.3 11-26.2 19-56.8 25.8-96.9.8-5 1.6-10.3 2.3-16.3h29.3c-1.8 24-6.9 43.7-15.8 61.9z\"}}]})(props);\n};\nexport function IoMdTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.3 76H72.7C50.3 76 32 94 32 116v240c0 22 18.3 40 40.7 40h101.8v40h162.9v-40h101.8c22.4 0 40.5-18 40.5-40l.2-240c.1-22-18.2-40-40.6-40zm0 280H72.7V116h366.5v240z\"}}]})(props);\n};\nexport function IoMdUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M410.1 244.1c12 0 26.6 10.9 33.8 25.9H464c-.3-50-21.2-101.5-59.4-140.9-36.3-37.4-83-60.5-132.6-65.7-3-9-11.5-15.4-21.6-15.4-10 0-18.5 6.5-21.5 15.3C125.3 73.8 48 159.7 48 266.2c0 1.1.1 1.8.4 3.8h21.8c6.8-15 22.2-25.9 35.3-25.9 17 0 31.5 10.9 36.5 25.9h19.8c4.1-15 16.9-25.7 33-25.7 17.8 0 33.1 14.5 34.1 32.6v118.3c0 9.3.1 24.1-13.4 24.1-6.9 0-16.6-1.8-16.6-16V382h-43v21.3c0 34.6 23.6 60.7 60 60.7 19.5 0 33.3-8.5 43.5-18.7 13.1-13.2 13.5-34.7 13.5-50.1V276.1c2-25.8 23.9-31.7 41.9-31.7 17.2 0 32.3 11.6 37.8 25.6h20.5c5.1-15 19.8-25.9 37-25.9z\"}}]})(props);\n};\nexport function IoMdUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M262.3 179.6c-57.9 0-110.3 21.6-150.7 56.8L32 160v192h197.5l-79.1-76.8c30.4-25.3 69-41.1 111.8-41.1 77.3 0 143.1 48.2 166 117.8l51.8-14.8c-30.4-91.4-116.2-157.5-217.7-157.5z\"}}]})(props);\n};\nexport function IoMdUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 186h-20v-40c0-55-45-100-100-100S156 91 156 146h37.998c0-34.004 28.003-62.002 62.002-62.002 34.004 0 62.002 27.998 62.002 62.002H318v40H136c-22.002 0-40 17.998-40 40v200c0 22.002 17.998 40 40 40h240c22.002 0 40-17.998 40-40V226c0-22.002-17.998-40-40-40zM256 368c-22.002 0-40-17.998-40-40s17.998-40 40-40 40 17.998 40 40-17.998 40-40 40z\"}}]})(props);\n};\nexport function IoMdVideocam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 219.5v-85.2c0-13.4-11.2-24.3-24.9-24.3H56.9C43.2 110 32 120.9 32 134.3v243.3C32 391 43.2 402 56.9 402h302.2c13.7 0 24.9-11 24.9-24.3v-85.2l96 97.3V122.2l-96 97.3z\"}}]})(props);\n};\nexport function IoMdVolumeHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 192v128h85.334L256 431.543V80.458L149.334 192H64zm288 64c0-38.399-21.333-72.407-53.333-88.863v176.636C330.667 328.408 352 294.4 352 256zM298.667 64v44.978C360.531 127.632 405.334 186.882 405.334 256c0 69.119-44.803 128.369-106.667 147.022V448C384 428.254 448 349.257 448 256c0-93.256-64-172.254-149.333-192z\"}}]})(props);\n};\nexport function IoMdVolumeLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 192v128h85.334L256 431.543V80.458L149.334 192H64zm288 64c0-38.399-21.333-72.407-53.333-88.863v176.636C330.667 328.408 352 294.4 352 256z\"}}]})(props);\n};\nexport function IoMdVolumeMute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 192v128h85.334L256 431.543V80.458L149.334 192H64z\"}}]})(props);\n};\nexport function IoMdVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.5 256c0 22.717-4.883 44.362-13.603 63.855l31.88 31.88C439.283 323.33 448 290.653 448 256c0-93.256-64-172.254-149-192v44.978C361 127.632 405.5 186.882 405.5 256zM256 80.458l-51.021 52.48L256 183.957zM420.842 396.885L91.116 67.157l-24 24 90.499 90.413-8.28 10.43H64v128h85.334L256 431.543V280l94.915 94.686C335.795 387.443 318 397.213 299 403.022V448c31-7.172 58.996-22.163 82.315-42.809l39.61 39.693 24-24.043-24.002-24.039-.081.083z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M352.188 256c0-38.399-21.188-72.407-53.188-88.863v59.82l50.801 50.801A100.596 100.596 0 0 0 352.188 256z\"}}]})(props);\n};\nexport function IoMdWalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 112c22.223 0 39.997-17.776 39.997-40 0-22.225-17.774-40-39.997-40s-40.003 17.775-40.003 40c0 22.224 17.78 40 40.003 40zM288 232h104v-40h-72l-44.802-69.333c-7.698-11.667-18.136-18.136-30.933-18.136-3.198 0-8.828.531-12.799 1.747L120 144v112h40v-80l40.531-16L120 480h40l56.698-164.271L267 384v96h38V352l-57.031-96 19.745-61.864L288 232z\"}}]})(props);\n};\nexport function IoMdWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.7 341.3V170.7c0-23.5 19-42.7 42.7-42.7h197v-21.3c0-23.5-18.9-42.7-42.3-42.7H92c-23.7 0-44 18.5-44 42v300c0 23.5 20.3 42 44 42h308c23.5 0 42.3-19.2 42.3-42.7V384h-197c-23.6 0-42.6-19.2-42.6-42.7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M245 186v140c0 8.8 7.2 16 16 16h187c8.8 0 16-7.2 16-16V186c0-8.8-7.2-16-16-16H261c-8.8 0-16 7.2-16 16zm77.1 101.9c-19.3 1.2-35.2-14.7-34-34 1-15.9 13.9-28.8 29.9-29.9 19.3-1.2 35.2 14.7 34 34-1.1 16-14 28.9-29.9 29.9z\"}}]})(props);\n};\nexport function IoMdWarning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 464h448L256 48 32 464zm248-64h-48v-48h48v48zm0-80h-48v-96h48v96z\"}}]})(props);\n};\nexport function IoMdWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 256c0-51.001-24.004-96.001-60.996-125L336 16H176l-19.004 115C120.004 159.999 96 204.999 96 256c0 50.996 24.004 95.996 60.996 125L176 496h160l19.004-115C391.996 351.996 416 306.996 416 256zm-280 0c0-66.001 54.004-120 120-120s120 53.999 120 120c0 65.996-54.004 120-120 120s-120-54.004-120-120z\"}}]})(props);\n};\nexport function IoMdWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.5 163.3L256 32 131.5 163.3c-68.6 72.4-68.6 190 0 262.4C165.8 461.9 210.9 480 256 480s90.2-18.1 124.5-54.3c68.7-72.4 68.7-190 0-262.4z\"}}]})(props);\n};\nexport function IoMdWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 228.719c-22.879 0-41.597 18.529-41.597 41.18 0 22.652 18.718 41.182 41.597 41.182 22.878 0 41.597-18.529 41.597-41.182 0-22.651-18.719-41.18-41.597-41.18zm124.8 41.179c0-67.946-56.163-123.539-124.8-123.539s-124.8 55.593-124.8 123.539c0 45.303 24.961 85.447 62.396 107.072l20.807-36.032c-24.972-14.417-41.604-40.153-41.604-71.04 0-45.295 37.433-82.358 83.201-82.358 45.771 0 83.201 37.063 83.201 82.358 0 30.887-16.633 56.623-41.604 71.04l20.807 36.032c37.433-21.624 62.396-61.769 62.396-107.072zM256 64C141.597 64 48 156.654 48 269.898 48 346.085 89.592 411.968 152 448l20.799-36.032c-49.919-28.824-83.207-81.324-83.207-142.069 0-90.593 74.891-164.718 166.408-164.718 91.517 0 166.406 74.125 166.406 164.718 0 60.745-33.284 114.271-83.205 142.069L360 448c62.406-36.032 104-101.915 104-178.102C464 156.654 370.403 64 256 64z\"}}]})(props);\n};\nexport function IoMdWine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234.667 277.333V408H128v40h256v-40H277.333V277.333L448 106.667V64H64v42.667l170.667 170.666zm-74.667-128l-42.667-42.666h277.334L352 149.333H160z\"}}]})(props);\n};\nexport function IoMdWoman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.4 148.6L161 252.9c-6.3 22.8 20.7 31.7 27.3 10.3l26.3-96.2h7.4l-45.2 169H219v127c0 23 32 23 32 0V336h10v127c0 23 31 23 31 0V336h43.4l-46.2-169h8.4l26.3 96.2c6.5 21.9 33.3 12.5 27.3-10.2l-29.4-104.4c-4-11.8-18.2-32.6-42-33.6h-47.3c-24.6 1-38.7 21.6-42.1 33.6zM292.6 69.2c0-20.6-16.4-37.3-36.6-37.3-20.2 0-36.6 16.7-36.6 37.3 0 20.6 16.4 37.3 36.6 37.3 20.2 0 36.6-16.7 36.6-37.3z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib';\nexport function BiAbacus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h2v18H2zm18 0h2v18h-2zM5 13h2v1h2v-1h2v1h2v-1h4v1h2v-4h-2v1h-4v-1h-2v1H9v-1H7v1H5zm0-9v4h2V7h8v1h2V7h2V5h-2V4h-2v1H7V4zm0 13v3h2v-1h2v1h2v-1h8v-2h-8v-1H9v1H7v-1H5z\"}}]})(props);\n};\nexport function BiAccessibility (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.836 12.014-4.345.725 3.29-4.113a1 1 0 0 0-.227-1.457l-6-4a.999.999 0 0 0-1.262.125l-4 4 1.414 1.414 3.42-3.42 2.584 1.723-2.681 3.352a5.913 5.913 0 0 0-5.5.752l1.451 1.451A3.972 3.972 0 0 1 8 12c2.206 0 4 1.794 4 4 0 .739-.216 1.425-.566 2.02l1.451 1.451A5.961 5.961 0 0 0 14 16c0-.445-.053-.878-.145-1.295L17 14.181V20h2v-7a.998.998 0 0 0-1.164-.986zM8 20c-2.206 0-4-1.794-4-4 0-.739.216-1.425.566-2.02l-1.451-1.451A5.961 5.961 0 0 0 2 16c0 3.309 2.691 6 6 6 1.294 0 2.49-.416 3.471-1.115l-1.451-1.451A3.972 3.972 0 0 1 8 20z\"}}]})(props);\n};\nexport function BiAddToQueue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM8 16V4h12l.002 12H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 8H2v12c0 1.103.897 2 2 2h12v-2H4V8zm11-2h-2v3h-3v2h3v3h2v-3h3V9h-3z\"}}]})(props);\n};\nexport function BiAdjust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c5.514 0 10-4.486 10-10S17.514 2 12 2 2 6.486 2 12s4.486 10 10 10zm0-18c4.411 0 8 3.589 8 8s-3.589 8-8 8-8-3.589-8-8 3.589-8 8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 12a7 7 0 0 0-7-7v14a7 7 0 0 0 7-7z\"}}]})(props);\n};\nexport function BiAlarmAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c-4.879 0-9 4.121-9 9s4.121 9 9 9 9-4.121 9-9-4.121-9-9-9zm0 16c-3.794 0-7-3.206-7-7s3.206-7 7-7 7 3.206 7 7-3.206 7-7 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8h-2v4H7v2h4v4h2v-4h4v-2h-4zm7.292-1.292-3.01-3 1.412-1.417 3.01 3zM5.282 2.294 6.7 3.706l-2.99 3-1.417-1.413z\"}}]})(props);\n};\nexport function BiAlarmExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c4.879 0 9-4.121 9-9s-4.121-9-9-9-9 4.121-9 9 4.121 9 9 9zm0-16c3.794 0 7 3.206 7 7s-3.206 7-7 7-7-3.206-7-7 3.206-7 7-7zm5.284-2.293 1.412-1.416 3.01 3-1.413 1.417zM5.282 2.294 6.7 3.706l-2.99 3-1.417-1.413z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2v5h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function BiAlarmOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.292 6.708-3.01-3 1.412-1.417 3.01 3zm1.415 13.585-2.287-2.287C20.409 16.563 21 14.838 21 13c0-4.879-4.121-9-9-9-1.838 0-3.563.591-5.006 1.58L5.91 4.496l.788-.79-1.416-1.412-.786.788-.789-.789-1.414 1.414 18 18 1.414-1.414zM12 6c3.794 0 7 3.206 7 7 0 1.292-.387 2.507-1.027 3.559L15.414 14H17v-2h-3.586L13 11.586V8h-2v1.586L8.441 7.027C9.493 6.387 10.708 6 12 6zM4.305 8.426A8.792 8.792 0 0 0 3 13c0 4.879 4.121 9 9 9a8.792 8.792 0 0 0 4.574-1.305l-1.461-1.461A6.801 6.801 0 0 1 12 20c-3.794 0-7-3.206-7-7 0-1.111.281-2.169.766-3.113L4.305 8.426z\"}}]})(props);\n};\nexport function BiAlarmSnooze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c-4.879 0-9 4.121-9 9s4.121 9 9 9 9-4.121 9-9-4.121-9-9-9zm0 16c-3.794 0-7-3.206-7-7s3.206-7 7-7 7 3.206 7 7-3.206 7-7 7zm8.292-13.292-3.01-3 1.412-1.417 3.01 3zM6.698 3.707l-2.99 2.999L2.29 5.294l2.99-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.832 10.555A1 1 0 0 0 14 9H9v2h3.132l-2.964 4.445A1 1 0 0 0 10 17h5v-2h-3.132l2.964-4.445z\"}}]})(props);\n};\nexport function BiAlarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c-4.879 0-9 4.121-9 9s4.121 9 9 9 9-4.121 9-9-4.121-9-9-9zm0 16c-3.794 0-7-3.206-7-7s3.206-7 7-7 7 3.206 7 7-3.206 7-7 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12V8h-2v6h6v-2zm4.284-8.293 1.412-1.416 3.01 3-1.413 1.417zm-10.586 0-2.99 2.999L2.29 5.294l2.99-3z\"}}]})(props);\n};\nexport function BiAlbum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.99\",\"cy\":\"11.99\",\"r\":\"2.01\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6a6 6 0 0 0-6 6h2a4 4 0 0 1 4-4z\"}}]})(props);\n};\nexport function BiAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h16v2H4zm0-4h16v2H4zm0 8h16v2H4zm0 4h16v2H4zm2 4h12v2H6z\"}}]})(props);\n};\nexport function BiAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19h16v2H4zm0-4h11v2H4zm0-4h16v2H4zm0-8h16v2H4zm0 4h11v2H4z\"}}]})(props);\n};\nexport function BiAlignMiddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19h16v2H4zm3-4h10v2H7zm-3-4h16v2H4zm0-8h16v2H4zm3 4h10v2H7z\"}}]})(props);\n};\nexport function BiAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19h16v2H4zm5-4h11v2H9zm-5-4h16v2H4zm0-8h16v2H4zm5 4h11v2H9z\"}}]})(props);\n};\nexport function BiAnalyse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h2a7.986 7.986 0 0 1 2.337-5.663 7.91 7.91 0 0 1 2.542-1.71 8.12 8.12 0 0 1 6.13-.041A2.488 2.488 0 0 0 17.5 7C18.886 7 20 5.886 20 4.5S18.886 2 17.5 2c-.689 0-1.312.276-1.763.725-2.431-.973-5.223-.958-7.635.059a9.928 9.928 0 0 0-3.18 2.139 9.92 9.92 0 0 0-2.14 3.179A10.005 10.005 0 0 0 2 12zm17.373 3.122c-.401.952-.977 1.808-1.71 2.541s-1.589 1.309-2.542 1.71a8.12 8.12 0 0 1-6.13.041A2.488 2.488 0 0 0 6.5 17C5.114 17 4 18.114 4 19.5S5.114 22 6.5 22c.689 0 1.312-.276 1.763-.725A9.965 9.965 0 0 0 12 22a9.983 9.983 0 0 0 9.217-6.102A9.992 9.992 0 0 0 22 12h-2a7.993 7.993 0 0 1-.627 3.122z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.462c-2.502 0-4.538 2.036-4.538 4.538S9.498 16.538 12 16.538s4.538-2.036 4.538-4.538S14.502 7.462 12 7.462zm0 7.076c-1.399 0-2.538-1.139-2.538-2.538S10.601 9.462 12 9.462s2.538 1.139 2.538 2.538-1.139 2.538-2.538 2.538z\"}}]})(props);\n};\nexport function BiAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22 15-3-4-3 4h1.906c-.436 2.469-2.438 4.471-4.906 4.906V13h2v-2h-2V9.336c1.543-.459 2.714-1.923 2.714-3.621C15.714 3.666 14.048 2 12 2S8.286 3.666 8.286 5.715c0 1.698 1.171 3.162 2.714 3.621V11H9v2h2v6.906C8.531 19.471 6.529 17.469 6.094 15H8l-3-4-3 4h2.073c.511 3.885 3.929 7 7.927 7s7.416-3.115 7.927-7H22zM10.286 5.715C10.286 4.77 11.055 4 12 4s1.714.77 1.714 1.715c0 .951-.801 1.785-1.714 1.785s-1.714-.834-1.714-1.785z\"}}]})(props);\n};\nexport function BiAngry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c-3 0-4 3-4 3h8s-1-3-4-3zm-2.439-2.439c.014-.014.023-.03.037-.044l1.031.413.742-1.857-5-2-.742 1.856 1.373.549L7 10.5a1.499 1.499 0 0 0 2.561 1.061zm3.068-1.49.742 1.857 1.037-.415c.011.011.019.024.029.035a1.488 1.488 0 0 0 2.112 0c.271-.271.438-.644.438-1.056l-.001-.01 1.386-.554-.742-1.857-5.001 2z\"}}]})(props);\n};\nexport function BiAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.579 2 2 6.579 2 12s4.579 10 10 10 10-4.579 10-10S17.421 2 12 2zm2.113 13H9.986l-1.723-3.094L10.202 9h3.736l1.871 3.062L14.113 15zM4 12c0-.953.186-1.87.508-2.727L7.696 15H4.61A7.757 7.757 0 0 1 4 12zm12.283-3h3.106A7.74 7.74 0 0 1 20 12c0 .844-.143 1.66-.397 2.432L16.283 9zm1.905-2h-6.653l1.905-2.857c1.886.359 3.562 1.403 4.748 2.857zm-7.095-2.941L9.132 7H9v.197L7.17 9.942 5.65 7.214c1.3-1.703 3.249-2.895 5.443-3.155zM5.812 17h7.147l-1.709 2.961C9.084 19.748 7.141 18.63 5.812 17zm7.828 2.82 3.357-5.815 1.544 2.526c-1.154 1.642-2.901 2.854-4.901 3.289z\"}}]})(props);\n};\nexport function BiArch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22h1v-6.995c.006-.502.177-3.005 3-3.005s2.994 2.503 3 3v7h7v-2h-1V4h1V2H2v2h1v16H2v2h6zM19 4v2H5V4h14zM5 8h14v12h-2v-5c0-1.729-1.045-5-5-5s-5 3.271-5 5v5H5V8z\"}}]})(props);\n};\nexport function BiArchiveIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.706 5.292-2.999-2.999A.996.996 0 0 0 18 2H6a.996.996 0 0 0-.707.293L2.294 5.292A.994.994 0 0 0 2 6v13c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6a.994.994 0 0 0-.294-.708zM6.414 4h11.172l1 1H5.414l1-1zM4 19V7h16l.002 12H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9h-4v3H7l5 5 5-5h-3z\"}}]})(props);\n};\nexport function BiArchiveOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.706 5.292-2.999-2.999A.996.996 0 0 0 18 2H6a.996.996 0 0 0-.707.293L2.294 5.292A.994.994 0 0 0 2 6v13c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6a.994.994 0 0 0-.294-.708zM6.414 4h11.172l1 1H5.414l1-1zM4 19V7h16l.002 12H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14h3v3h4v-3h3l-5-5z\"}}]})(props);\n};\nexport function BiArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.706 5.291-2.999-2.998A.996.996 0 0 0 18 2H6a.996.996 0 0 0-.707.293L2.294 5.291A.994.994 0 0 0 2 5.999V19c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5.999a.994.994 0 0 0-.294-.708zM6.414 4h11.172l.999.999H5.415L6.414 4zM4 19V6.999h16L20.002 19H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12H9v-2H7v4h10v-4h-2z\"}}]})(props);\n};\nexport function BiArea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2zm16.002 14H5V5h14l.002 14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 12h2V7h-5v2h3zm-3 3H9v-3H7v5h5z\"}}]})(props);\n};\nexport function BiArrowBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11H6.414l5.293-5.293-1.414-1.414L2.586 12l7.707 7.707 1.414-1.414L6.414 13H21z\"}}]})(props);\n};\nexport function BiArrowFromBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h12v2H6zm6-14.414-6.707 6.707 1.414 1.414L11 7.414V16h2V7.414l4.293 4.293 1.414-1.414z\"}}]})(props);\n};\nexport function BiArrowFromLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h2v12H4zm4 7h8.586l-4.293 4.293 1.414 1.414L20.414 12l-6.707-6.707-1.414 1.414L16.586 11H8z\"}}]})(props);\n};\nexport function BiArrowFromRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6h2v12h-2zm-2 5H7.414l4.293-4.293-1.414-1.414L3.586 12l6.707 6.707 1.414-1.414L7.414 13H16z\"}}]})(props);\n};\nexport function BiArrowFromTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h12v2H6zm6 16.414 6.707-6.707-1.414-1.414L13 16.586V8h-2v8.586l-4.293-4.293-1.414 1.414z\"}}]})(props);\n};\nexport function BiArrowToBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18h12v2H6zm5-14v8.586L6.707 8.293 5.293 9.707 12 16.414l6.707-6.707-1.414-1.414L13 12.586V4z\"}}]})(props);\n};\nexport function BiArrowToLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h2v12H4zm10.293-.707L7.586 12l6.707 6.707 1.414-1.414L11.414 13H20v-2h-8.586l4.293-4.293z\"}}]})(props);\n};\nexport function BiArrowToRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6h2v12h-2zM4 13h8.586l-4.293 4.293 1.414 1.414L16.414 12 9.707 5.293 8.293 6.707 12.586 11H4z\"}}]})(props);\n};\nexport function BiArrowToTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h12v2H6zm.707 11.707L11 11.414V20h2v-8.586l4.293 4.293 1.414-1.414L12 7.586l-6.707 6.707z\"}}]})(props);\n};\nexport function BiAt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10c1.466 0 2.961-.371 4.442-1.104l-.885-1.793C14.353 19.698 13.156 20 12 20c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8v1c0 .692-.313 2-1.5 2-1.396 0-1.494-1.819-1.5-2V8h-2v.025A4.954 4.954 0 0 0 12 7c-2.757 0-5 2.243-5 5s2.243 5 5 5c1.45 0 2.748-.631 3.662-1.621.524.89 1.408 1.621 2.838 1.621 2.273 0 3.5-2.061 3.5-4v-1c0-5.514-4.486-10-10-10zm0 13c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3z\"}}]})(props);\n};\nexport function BiAtom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.102 20.898c.698.699 1.696 1.068 2.887 1.068 1.742 0 3.855-.778 6.012-2.127 2.156 1.35 4.27 2.127 6.012 2.127 1.19 0 2.188-.369 2.887-1.068 1.269-1.269 1.411-3.413.401-6.039-.358-.932-.854-1.895-1.457-2.859a16.792 16.792 0 0 0 1.457-2.859c1.01-2.626.867-4.771-.401-6.039-.698-.699-1.696-1.068-2.887-1.068-1.742 0-3.855.778-6.012 2.127-2.156-1.35-4.27-2.127-6.012-2.127-1.19 0-2.188.369-2.887 1.068C1.833 4.371 1.69 6.515 2.7 9.141c.359.932.854 1.895 1.457 2.859A16.792 16.792 0 0 0 2.7 14.859c-1.01 2.626-.867 4.77.402 6.039zm16.331-5.321c.689 1.79.708 3.251.052 3.907-.32.32-.815.482-1.473.482-1.167 0-2.646-.503-4.208-1.38a26.611 26.611 0 0 0 4.783-4.784c.336.601.623 1.196.846 1.775zM12 17.417a23.568 23.568 0 0 1-2.934-2.483A23.998 23.998 0 0 1 6.566 12 23.74 23.74 0 0 1 12 6.583a23.568 23.568 0 0 1 2.934 2.483 23.998 23.998 0 0 1 2.5 2.934A23.74 23.74 0 0 1 12 17.417zm6.012-13.383c.657 0 1.152.162 1.473.482.656.656.638 2.117-.052 3.907-.223.579-.51 1.174-.846 1.775a26.448 26.448 0 0 0-4.783-4.784c1.562-.876 3.041-1.38 4.208-1.38zM4.567 8.423c-.689-1.79-.708-3.251-.052-3.907.32-.32.815-.482 1.473-.482 1.167 0 2.646.503 4.208 1.38a26.448 26.448 0 0 0-4.783 4.784 13.934 13.934 0 0 1-.846-1.775zm0 7.154c.223-.579.51-1.174.846-1.775a26.448 26.448 0 0 0 4.783 4.784c-1.563.877-3.041 1.38-4.208 1.38-.657 0-1.152-.162-1.473-.482-.656-.656-.637-2.117.052-3.907z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2.574\"}}]})(props);\n};\nexport function BiAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8.999c0 1.902.765 3.627 2 4.89V21a.998.998 0 0 0 1.447.895L12 20.118l3.553 1.776a.992.992 0 0 0 .972-.043c.295-.183.475-.504.475-.851v-7.11a6.976 6.976 0 0 0 2-4.891C19 5.14 15.86 2 12 2S5 5.14 5 8.999zm7.447 9.106a1 1 0 0 0-.895 0L9 19.382v-4.067c.911.434 1.926.685 3 .685s2.089-.25 3-.685v4.066l-2.553-1.276zM12 4c2.756 0 5 2.242 5 4.999A5.006 5.006 0 0 1 12 14c-2.757 0-5-2.243-5-5.001A5.005 5.005 0 0 1 12 4z\"}}]})(props);\n};\nexport function BiBadgeCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.035 15.479A3.976 3.976 0 0 0 4 16c0 2.378 2.138 4.284 4.521 3.964C9.214 21.198 10.534 22 12 22s2.786-.802 3.479-2.036C17.857 20.284 20 18.378 20 16c0-.173-.012-.347-.035-.521C21.198 14.786 22 13.465 22 12s-.802-2.786-2.035-3.479C19.988 8.347 20 8.173 20 8c0-2.378-2.143-4.288-4.521-3.964C14.786 2.802 13.466 2 12 2s-2.786.802-3.479 2.036C6.138 3.712 4 5.622 4 8c0 .173.012.347.035.521C2.802 9.214 2 10.535 2 12s.802 2.786 2.035 3.479zm1.442-5.403 1.102-.293-.434-1.053A1.932 1.932 0 0 1 6 8c0-1.103.897-2 2-2 .247 0 .499.05.73.145l1.054.434.293-1.102a1.99 1.99 0 0 1 3.846 0l.293 1.102 1.054-.434C15.501 6.05 15.753 6 16 6c1.103 0 2 .897 2 2 0 .247-.05.5-.145.73l-.434 1.053 1.102.293a1.993 1.993 0 0 1 0 3.848l-1.102.293.434 1.053c.095.23.145.483.145.73 0 1.103-.897 2-2 2-.247 0-.499-.05-.73-.145l-1.054-.434-.293 1.102a1.99 1.99 0 0 1-3.846 0l-.293-1.102-1.054.434A1.935 1.935 0 0 1 8 18c-1.103 0-2-.897-2-2 0-.247.05-.5.145-.73l.434-1.053-1.102-.293a1.993 1.993 0 0 1 0-3.848z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15.742 10.71-1.408-1.42-3.331 3.299-1.296-1.296-1.414 1.414 2.704 2.704z\"}}]})(props);\n};\nexport function BiBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.965 8.521C19.988 8.347 20 8.173 20 8c0-2.378-2.143-4.288-4.521-3.964C14.786 2.802 13.466 2 12 2s-2.786.802-3.479 2.036C6.138 3.712 4 5.622 4 8c0 .173.012.347.035.521C2.802 9.214 2 10.535 2 12s.802 2.786 2.035 3.479A3.976 3.976 0 0 0 4 16c0 2.378 2.138 4.284 4.521 3.964C9.214 21.198 10.534 22 12 22s2.786-.802 3.479-2.036C17.857 20.284 20 18.378 20 16c0-.173-.012-.347-.035-.521C21.198 14.786 22 13.465 22 12s-.802-2.786-2.035-3.479zm-1.442 5.403-1.102.293.434 1.053c.095.23.145.483.145.73 0 1.103-.897 2-2 2-.247 0-.499-.05-.73-.145l-1.054-.434-.293 1.102a1.99 1.99 0 0 1-3.846 0l-.293-1.102-1.054.434A1.935 1.935 0 0 1 8 18c-1.103 0-2-.897-2-2 0-.247.05-.5.145-.73l.434-1.053-1.102-.293a1.993 1.993 0 0 1 0-3.848l1.102-.293-.434-1.053A1.932 1.932 0 0 1 6 8c0-1.103.897-2 2-2 .247 0 .499.05.73.145l1.054.434.293-1.102a1.99 1.99 0 0 1 3.846 0l.293 1.102 1.054-.434C15.501 6.05 15.753 6 16 6c1.103 0 2 .897 2 2 0 .247-.05.5-.145.73l-.434 1.053 1.102.293a1.993 1.993 0 0 1 0 3.848z\"}}]})(props);\n};\nexport function BiBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.76 21a17.68 17.68 0 0 0 4 .43 13.89 13.89 0 0 0 9.93-3.69C23 12.37 21.06 4.11 21 3.76a1 1 0 0 0-.76-.76 17.91 17.91 0 0 0-4-.43 13.82 13.82 0 0 0-9.96 3.71C.94 11.63 2.94 19.89 3 20.24a1 1 0 0 0 .76.76zM7.7 7.7a11.86 11.86 0 0 1 8.49-3.1 17.57 17.57 0 0 1 3 .25c.31 1.87.91 7.67-2.86 11.44a11.91 11.91 0 0 1-8.55 3.11 17.16 17.16 0 0 1-2.93-.25c-.32-1.88-.92-7.67 2.85-11.45z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7.29 15.29 1.42 1.42 1.79-1.79 1.79 1.79 1.42-1.42-1.8-1.79 1.59-1.59 1.79 1.8 1.42-1.42-1.8-1.79 1.8-1.79-1.42-1.42-1.79 1.8-1.79-1.8-1.42 1.42 1.8 1.79-1.59 1.59-1.79-1.8-1.42 1.42 1.8 1.79z\"}}]})(props);\n};\nexport function BiBandAid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.111 21.889a5.962 5.962 0 0 0 4.242-1.757l7.778-7.778a6.007 6.007 0 0 0 0-8.485 5.965 5.965 0 0 0-4.243-1.757 5.962 5.962 0 0 0-4.242 1.757l-7.778 7.778a6.007 6.007 0 0 0 0 8.485 5.965 5.965 0 0 0 4.243 1.757zm-2.829-8.828 7.778-7.778a3.976 3.976 0 0 1 2.828-1.171c1.069 0 2.073.416 2.829 1.171a4.006 4.006 0 0 1 0 5.657l-7.778 7.778a3.976 3.976 0 0 1-2.828 1.171 3.977 3.977 0 0 1-2.829-1.171 4.008 4.008 0 0 1 0-5.657z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"15\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"9\",\"r\":\"1\"}}]})(props);\n};\nexport function BiBarChartAlt2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-4V4c0-1.103-.897-2-2-2h-4c-1.103 0-2 .897-2 2v5H4c-1.103 0-2 .897-2 2v9a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V9c0-1.103-.897-2-2-2zM4 11h4v8H4v-8zm6-1V4h4v15h-4v-9zm10 9h-4V9h4v10z\"}}]})(props);\n};\nexport function BiBarChartAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h2v11h-2zm4-3h2v14h-2zM9 9h2v8H9zM4 19h16v2H4zm1-7h2v5H5z\"}}]})(props);\n};\nexport function BiBarChartSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2zm16.001 14H5V5h14l.001 14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v10h-2zm4 3h2v7h-2zm-8 2h2v5H7z\"}}]})(props);\n};\nexport function BiBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 6h2v14H9zm4 2h2v12h-2zm4-4h2v16h-2zM5 12h2v8H5z\"}}]})(props);\n};\nexport function BiBarcodeReader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 7h2v10H5zm9 0h1v10h-1zm-4 0h3v10h-3zM8 7h1v10H8zm8 0h3v10h-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 5h4V3H4c-1.103 0-2 .897-2 2v4h2V5zm0 16h4v-2H4v-4H2v4c0 1.103.897 2 2 2zM20 3h-4v2h4v4h2V5c0-1.103-.897-2-2-2zm0 16h-4v2h4c1.103 0 2-.897 2-2v-4h-2v4z\"}}]})(props);\n};\nexport function BiBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zM4 18V6h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 8h2v8H6zm3 0h1v8H9zm8 0h1v8h-1zm-4 0h3v8h-3zm-2 0h1v8h-1z\"}}]})(props);\n};\nexport function BiBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 2a9.937 9.937 0 0 0-7.071 2.938c-3.898 3.898-3.898 10.243 0 14.143 1.895 1.895 4.405 2.938 7.071 2.938s5.177-1.043 7.071-2.938c3.899-3.899 3.899-10.244 0-14.143A9.937 9.937 0 0 0 11.99 2zm5.657 15.667a7.957 7.957 0 0 1-3.816 2.129l-.001-.037a6.199 6.199 0 0 1 .421-2.259l-1.863-.729a8.188 8.188 0 0 0-.552 3.239 7.953 7.953 0 0 1-5.503-2.344 7.965 7.965 0 0 1-2.332-5.503c.08.002.16.005.24.005a8.16 8.16 0 0 0 2.988-.558l-.73-1.862a6.156 6.156 0 0 1-2.281.412 7.936 7.936 0 0 1 2.115-3.809 7.963 7.963 0 0 1 3.972-2.168 5.974 5.974 0 0 1-.357 1.95l1.881.681a7.92 7.92 0 0 0 .482-2.701c0-.033-.004-.065-.005-.098 2.013.079 3.9.896 5.342 2.336a7.959 7.959 0 0 1 2.324 5.348 7.908 7.908 0 0 0-2.787.473l.684 1.88a5.91 5.91 0 0 1 1.935-.361 7.953 7.953 0 0 1-2.157 3.976z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.112 14.13a7.599 7.599 0 0 0-.926 1.121l1.656 1.12c.2-.296.43-.574.683-.826a6.428 6.428 0 0 1 1.178-.929l-1.049-1.703a8.408 8.408 0 0 0-1.542 1.217zM8.456 8.474a5.713 5.713 0 0 1-.827.681l1.119 1.658a7.72 7.72 0 0 0 1.122-.926 8.501 8.501 0 0 0 1.217-1.542L9.384 7.297a6.519 6.519 0 0 1-.928 1.177z\"}}]})(props);\n};\nexport function BiBasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 9h-1.42l-3.712-6.496-1.736.992L17.277 9H6.723l3.146-5.504-1.737-.992L4.42 9H3a1.001 1.001 0 0 0-.965 1.263l2.799 10.264A2.005 2.005 0 0 0 6.764 22h10.473c.898 0 1.692-.605 1.93-1.475l2.799-10.263A.998.998 0 0 0 21 9zm-3.764 11v1-1H6.764L4.31 11h15.38l-2.454 9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13h2v5H9zm4 0h2v5h-2z\"}}]})(props);\n};\nexport function BiBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.929 19.071c1.895 1.895 4.405 2.938 7.071 2.938s5.177-1.043 7.071-2.938c3.899-3.899 3.899-10.243 0-14.143C17.177 3.034 14.665 1.99 12 1.99S6.823 3.034 4.929 4.929c-3.899 3.898-3.899 10.243 0 14.142zm7.38-15.065a7.912 7.912 0 0 1 4.594 1.678L12 10.586l-1.46-1.46c1.161-1.479 1.792-3.308 1.769-5.12zM9.11 7.696 7.098 5.684a7.929 7.929 0 0 1 3.218-1.51c-.015 1.236-.445 2.477-1.206 3.522zM7.686 9.1a6.065 6.065 0 0 1-3.459 1.057 7.923 7.923 0 0 1 1.458-3.058L7.686 9.1zm-3.675 3.046c.077.002.154.014.231.014a8.05 8.05 0 0 0 4.877-1.626L10.586 12l-4.901 4.901a7.972 7.972 0 0 1-1.674-4.755zm12.294 2.745c1.042-.758 2.28-1.188 3.508-1.206a7.947 7.947 0 0 1-1.497 3.217l-2.011-2.011zm.597 3.425a7.935 7.935 0 0 1-3.059 1.47 6.05 6.05 0 0 1 1.057-3.472l2.002 2.002zm-5.044 1.686a7.922 7.922 0 0 1-4.761-1.686L12 13.414l1.463 1.463c-1.103 1.444-1.659 3.266-1.605 5.125zm8.124-8.31c-1.807-.018-3.633.61-5.108 1.768L13.414 12l4.901-4.901a7.968 7.968 0 0 1 1.667 4.593z\"}}]})(props);\n};\nexport function BiBath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10H7V7c0-1.103.897-2 2-2s2 .897 2 2h2c0-2.206-1.794-4-4-4S5 4.794 5 7v3H3a1 1 0 0 0-1 1v2c0 2.606 1.674 4.823 4 5.65V22h2v-3h8v3h2v-3.35c2.326-.827 4-3.044 4-5.65v-2a1 1 0 0 0-1-1zm-1 3c0 2.206-1.794 4-4 4H8c-2.206 0-4-1.794-4-4v-1h16v1z\"}}]})(props);\n};\nexport function BiBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18h14c1.103 0 2-.897 2-2v-2h2v-4h-2V8c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2zM4 8h14l.002 8H4V8z\"}}]})(props);\n};\nexport function BiBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9.557V3h-2v2H6V3H4v6.557C2.81 10.25 2 11.525 2 13v4a1 1 0 0 0 1 1h1v4h2v-4h12v4h2v-4h1a1 1 0 0 0 1-1v-4c0-1.475-.811-2.75-2-3.443zM18 7v2h-5V7h5zM6 7h5v2H6V7zm14 9H4v-3c0-1.103.897-2 2-2h12c1.103 0 2 .897 2 2v3z\"}}]})(props);\n};\nexport function BiBeenHere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C7.589 2 4 5.589 4 9.995c-.029 6.445 7.116 11.604 7.42 11.819a.998.998 0 0 0 1.16 0C12.884 21.599 20.029 16.44 20 10c0-4.411-3.589-8-8-8zm0 17.735C10.389 18.427 5.979 14.441 6 10c0-3.309 2.691-6 6-6s6 2.691 6 6.005c.021 4.437-4.388 8.423-6 9.73z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11.586 8.707 9.293l-1.414 1.414L11 14.414l5.707-5.707-1.414-1.414z\"}}]})(props);\n};\nexport function BiBeer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-2V4a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v15c0 1.654 1.346 3 3 3h10c1.654 0 3-1.346 3-3v-1h2c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2zm-4 13c0 .551-.448 1-1 1H5c-.552 0-1-.449-1-1V5h12v14zm4-3h-2V8h2v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7h2v10H6zm6 0h2v10h-2z\"}}]})(props);\n};\nexport function BiBellMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.707 15.293 19 13.586V10c0-3.217-2.185-5.927-5.145-6.742C13.562 2.52 12.846 2 12 2s-1.562.52-1.855 1.258C7.185 4.074 5 6.783 5 10v3.586l-1.707 1.707A.996.996 0 0 0 3 16v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-2a.996.996 0 0 0-.293-.707zM19 17H5v-.586l1.707-1.707A.996.996 0 0 0 7 14v-4c0-2.757 2.243-5 5-5s5 2.243 5 5v4c0 .266.105.52.293.707L19 16.414V17zm-7 5a2.98 2.98 0 0 0 2.818-2H9.182A2.98 2.98 0 0 0 12 22z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.037 10h7.926v2H8.037z\"}}]})(props);\n};\nexport function BiBellOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22a2.98 2.98 0 0 0 2.818-2H9.182A2.98 2.98 0 0 0 12 22zm9-4v-2a.996.996 0 0 0-.293-.707L19 13.586V10c0-3.217-2.185-5.927-5.145-6.742C13.562 2.52 12.846 2 12 2s-1.562.52-1.855 1.258c-1.323.364-2.463 1.128-3.346 2.127L3.707 2.293 2.293 3.707l18 18 1.414-1.414-1.362-1.362A.993.993 0 0 0 21 18zM12 5c2.757 0 5 2.243 5 5v4c0 .266.105.52.293.707L19 16.414V17h-.586L8.207 6.793C9.12 5.705 10.471 5 12 5zm-5.293 9.707A.996.996 0 0 0 7 14v-2.879L5.068 9.189C5.037 9.457 5 9.724 5 10v3.586l-1.707 1.707A.996.996 0 0 0 3 16v2a1 1 0 0 0 1 1h10.879l-2-2H5v-.586l1.707-1.707z\"}}]})(props);\n};\nexport function BiBellPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7.037h-2V10H8.037v2H11v2.963h2V12h2.963v-2H13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13.586V10c0-3.217-2.185-5.927-5.145-6.742C13.562 2.52 12.846 2 12 2s-1.562.52-1.855 1.258C7.185 4.074 5 6.783 5 10v3.586l-1.707 1.707A.996.996 0 0 0 3 16v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-2a.996.996 0 0 0-.293-.707L19 13.586zM19 17H5v-.586l1.707-1.707A.996.996 0 0 0 7 14v-4c0-2.757 2.243-5 5-5s5 2.243 5 5v4c0 .266.105.52.293.707L19 16.414V17zm-7 5a2.98 2.98 0 0 0 2.818-2H9.182A2.98 2.98 0 0 0 12 22z\"}}]})(props);\n};\nexport function BiBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13.586V10c0-3.217-2.185-5.927-5.145-6.742C13.562 2.52 12.846 2 12 2s-1.562.52-1.855 1.258C7.185 4.074 5 6.783 5 10v3.586l-1.707 1.707A.996.996 0 0 0 3 16v2a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1v-2a.996.996 0 0 0-.293-.707L19 13.586zM19 17H5v-.586l1.707-1.707A.996.996 0 0 0 7 14v-4c0-2.757 2.243-5 5-5s5 2.243 5 5v4c0 .266.105.52.293.707L19 16.414V17zm-7 5a2.98 2.98 0 0 0 2.818-2H9.182A2.98 2.98 0 0 0 12 22z\"}}]})(props);\n};\nexport function BiBible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 22h15v-2H6.012C5.55 19.988 5 19.805 5 19s.55-.988 1.012-1H21V4c0-1.103-.897-2-2-2H6c-1.206 0-3 .799-3 3v14c0 2.201 1.794 3 3 3zM5 8V5c0-.805.55-.988 1-1h13v12H5V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14h2v-4h2V8h-2V6h-2v2H9v2h2z\"}}]})(props);\n};\nexport function BiBitcoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13v4H6v2h3v2h2v-2h2v2h2v-2.051c1.968-.249 3.5-1.915 3.5-3.949 0-1.32-.65-2.484-1.64-3.213A3.982 3.982 0 0 0 18 9c0-1.858-1.279-3.411-3-3.858V3h-2v2h-2V3H9v2H6v2h2v6zm6.5 4H10v-4h4.5c1.103 0 2 .897 2 2s-.897 2-2 2zM10 7h4c1.103 0 2 .897 2 2s-.897 2-2 2h-4V7z\"}}]})(props);\n};\nexport function BiBlanket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H7C4.243 2 2 4.243 2 7v10c0 2.757 2.243 5 5 5h12c1.654 0 3-1.346 3-3s-1.346-3-3-3H6v2h13a1 1 0 0 1 0 2H7c-1.654 0-3-1.346-3-3s1.346-3 3-3h13c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 10H7a4.973 4.973 0 0 0-3 1.002V7c0-1.654 1.346-3 3-3h13v8z\"}}]})(props);\n};\nexport function BiBlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zM4 12c0-1.846.634-3.542 1.688-4.897l11.209 11.209A7.946 7.946 0 0 1 12 20c-4.411 0-8-3.589-8-8zm14.312 4.897L7.103 5.688A7.948 7.948 0 0 1 12 4c4.411 0 8 3.589 8 8a7.954 7.954 0 0 1-1.688 4.897z\"}}]})(props);\n};\nexport function BiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4.41 16.192 1.18 1.615L10 14.584V21a1 1 0 0 0 1.541.841l7-4.5a.999.999 0 0 0 .049-1.649L13.537 12l5.053-3.692a1.002 1.002 0 0 0-.049-1.65l-7-4.5a1.002 1.002 0 0 0-1.021-.037c-.32.176-.52.513-.52.879v6.416L5.59 6.192 4.41 7.808 10 11.893v.215l-5.59 4.084zM12 4.832l4.232 2.721L12 10.646V4.832zm0 8.522 4.232 3.093L12 19.168v-5.814z\"}}]})(props);\n};\nexport function BiBody (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 22V9h5V7H4v2h5v13h2v-7h2v7z\"}}]})(props);\n};\nexport function BiBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.061 11.22A4.46 4.46 0 0 0 18 8.5C18 6.019 15.981 4 13.5 4H6v15h8c2.481 0 4.5-2.019 4.5-4.5a4.48 4.48 0 0 0-1.439-3.28zM13.5 7c.827 0 1.5.673 1.5 1.5s-.673 1.5-1.5 1.5H9V7h4.5zm.5 9H9v-3h5c.827 0 1.5.673 1.5 1.5S14.827 16 14 16z\"}}]})(props);\n};\nexport function BiBoltCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 6-6 7h4v5l6-7h-4z\"}}]})(props);\n};\nexport function BiBomb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3.001c-1.4 0-2.584 1.167-2.707 1.293L17.207 5.38l-1.091-1.088a.999.999 0 0 0-1.413.001L13.46 5.537A8.353 8.353 0 0 0 10.5 5C5.813 5 2 8.813 2 13.5S5.813 22 10.5 22s8.5-3.813 8.5-8.5c0-.909-.144-1.8-.428-2.658l1.345-1.345a1.002 1.002 0 0 0-.001-1.415l-1.293-1.29 1.088-1.088c.229-.229.845-.703 1.289-.703h1v-2h-1zm-4.511 7.978c.339.804.511 1.652.511 2.521 0 3.584-2.916 6.5-6.5 6.5S4 17.084 4 13.5 6.916 7 10.5 7c.96 0 1.89.21 2.762.624.381.181.837.103 1.136-.196l1.014-1.014 2.384 2.377-1.092 1.092a.998.998 0 0 0-.215 1.096z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 13.5a4.47 4.47 0 0 0 1.318 3.182l1.414-1.414C8.26 14.795 8 14.168 8 13.5s.26-1.295.732-1.768A2.484 2.484 0 0 1 10.5 11V9a4.469 4.469 0 0 0-3.182 1.318A4.47 4.47 0 0 0 6 13.5z\"}}]})(props);\n};\nexport function BiBone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.049 4.951a3.953 3.953 0 0 0-1.028-1.801c-1.51-1.51-4.146-1.51-5.656 0a4.009 4.009 0 0 0-.618 4.86l-3.714 3.714c-1.505-.89-3.591-.649-4.86.618a4.004 4.004 0 0 0 0 5.657 3.946 3.946 0 0 0 1.8 1.028c.178.681.53 1.302 1.028 1.8A3.966 3.966 0 0 0 8.829 22a3.973 3.973 0 0 0 2.828-1.172 4.007 4.007 0 0 0 .617-4.859l3.714-3.714c1.507.891 3.593.65 4.861-.619a4.003 4.003 0 0 0 0-5.656 3.942 3.942 0 0 0-1.8-1.029zm.387 5.271c-.756.755-2.073.756-2.829 0l-.707-.707-6.363 6.364.707.707a2.003 2.003 0 0 1 0 2.828c-.757.757-2.074.755-2.829 0a1.963 1.963 0 0 1-.571-1.31l-.047-.9-.9-.047a1.972 1.972 0 0 1-1.31-.571 2.003 2.003 0 0 1 0-2.829c.377-.377.879-.585 1.413-.585s1.036.208 1.414.585l.707.707 6.364-6.363-.707-.707a2.003 2.003 0 0 1 0-2.829c.756-.754 2.072-.754 2.828 0 .343.343.546.809.572 1.312l.048.897.897.048c.503.026.969.229 1.312.572.377.378.585.88.585 1.414s-.207 1.036-.584 1.414z\"}}]})(props);\n};\nexport function BiBong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.293 8.293-2.069 2.069A7.017 7.017 0 0 0 15 8.681V4h1V2H8v2h1v4.681A7.01 7.01 0 0 0 5 15c0 3.859 3.141 7 7 7s7-3.141 7-7a6.958 6.958 0 0 0-.652-2.934l2.359-2.359-1.414-1.414zm-8.959 1.998.666-.235V4h2v6.056l.666.235A5.006 5.006 0 0 1 16.886 14H7.114a5.006 5.006 0 0 1 3.22-3.709zM12 20a5.007 5.007 0 0 1-4.898-4h9.797A5.009 5.009 0 0 1 12 20z\"}}]})(props);\n};\nexport function BiBookAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8v11c0 2.201 1.794 3 3 3h15v-2H6.012C5.55 19.988 5 19.806 5 19c0-.101.009-.191.024-.273.112-.576.584-.717.988-.727H21V4c0-1.103-.897-2-2-2H6c-1.206 0-3 .799-3 3v3zm3-4h13v12H5V5c0-.806.55-.988 1-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14h2v-3h3V9h-3V6h-2v3H8v2h3z\"}}]})(props);\n};\nexport function BiBookAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H6c-1.206 0-3 .799-3 3v14c0 2.201 1.794 3 3 3h15v-2H6.012C5.55 19.988 5 19.806 5 19s.55-.988 1.012-1H21V4c0-1.103-.897-2-2-2zm0 14H5V5c0-.806.55-.988 1-1h13v12z\"}}]})(props);\n};\nexport function BiBookBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2.01H6c-1.206 0-3 .799-3 3v14c0 2.201 1.794 3 3 3h15v-2H6.012C5.55 19.998 5 19.815 5 19.01c0-.101.009-.191.024-.273.112-.575.583-.717.987-.727H20c.018 0 .031-.009.049-.01H21V4.01c0-1.103-.897-2-2-2zm0 14H5v-11c0-.806.55-.988 1-1h7v7l2-1 2 1v-7h2v12z\"}}]})(props);\n};\nexport function BiBookContent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 19V5h7v14H4zm9 0V5h7l.001 14H13z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3v2h-3zm0 4h3v2h-3z\"}}]})(props);\n};\nexport function BiBookHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8v11c0 2.201 1.794 3 3 3h15v-2H6.012C5.55 19.988 5 19.806 5 19s.55-.988 1.012-1H21V4c0-1.103-.897-2-2-2H6c-1.206 0-3 .799-3 3v3zm3-4h13v12H5V5c0-.806.55-.988 1-1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11.997 14 3.35-3.289a2.129 2.129 0 0 0 0-3.069 2.225 2.225 0 0 0-3.126 0l-.224.218-.224-.219a2.224 2.224 0 0 0-3.125 0 2.129 2.129 0 0 0 0 3.069L11.997 14z\"}}]})(props);\n};\nexport function BiBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3h-7a2.98 2.98 0 0 0-2 .78A2.98 2.98 0 0 0 10 3H3a1 1 0 0 0-1 1v15a1 1 0 0 0 1 1h5.758c.526 0 1.042.214 1.414.586l1.121 1.121c.009.009.021.012.03.021.086.079.182.149.294.196h.002a.996.996 0 0 0 .762 0h.002c.112-.047.208-.117.294-.196.009-.009.021-.012.03-.021l1.121-1.121A2.015 2.015 0 0 1 15.242 20H21a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zM8.758 18H4V5h6c.552 0 1 .449 1 1v12.689A4.032 4.032 0 0 0 8.758 18zM20 18h-4.758c-.799 0-1.584.246-2.242.689V6c0-.551.448-1 1-1h6v13z\"}}]})(props);\n};\nexport function BiBookReader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 8c-.202 0-4.85.029-9 2.008C7.85 8.029 3.202 8 3 8a1 1 0 0 0-1 1v9.883a1 1 0 0 0 .305.719c.195.188.48.305.729.28l.127-.001c.683 0 4.296.098 8.416 2.025.016.008.034.005.05.011.119.049.244.083.373.083s.254-.034.374-.083c.016-.006.034-.003.05-.011 4.12-1.928 7.733-2.025 8.416-2.025l.127.001c.238.025.533-.092.729-.28.194-.189.304-.449.304-.719V9a1 1 0 0 0-1-1zM4 10.049c1.485.111 4.381.48 7 1.692v7.742c-3-1.175-5.59-1.494-7-1.576v-7.858zm16 7.858c-1.41.082-4 .401-7 1.576v-7.742c2.619-1.212 5.515-1.581 7-1.692v7.858z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"}}]})(props);\n};\nexport function BiBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 22h15v-2H6.012C5.55 19.988 5 19.805 5 19s.55-.988 1.012-1H21V4c0-1.103-.897-2-2-2H6c-1.206 0-3 .799-3 3v14c0 2.201 1.794 3 3 3zM5 8V5c0-.805.55-.988 1-1h13v12H5V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6h9v2H8z\"}}]})(props);\n};\nexport function BiBookmarkAltMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2h-12C4.57 2 3 3.57 3 5.5V22l7-3.5 7 3.5v-9h5V5.5C22 3.57 20.43 2 18.5 2zM15 18.764l-5-2.5-5 2.5V5.5C5 4.673 5.673 4 6.5 4h8.852A3.451 3.451 0 0 0 15 5.5v13.264zM20 11h-3V5.5c0-.827.673-1.5 1.5-1.5s1.5.673 1.5 1.5V11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9h6v2H7z\"}}]})(props);\n};\nexport function BiBookmarkAltPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2h-12C4.57 2 3 3.57 3 5.5V22l7-3.5 7 3.5v-9h5V5.5C22 3.57 20.43 2 18.5 2zM15 18.764l-5-2.5-5 2.5V5.5C5 4.673 5.673 4 6.5 4h8.852A3.451 3.451 0 0 0 15 5.5v13.264zM20 11h-3V5.5c0-.827.673-1.5 1.5-1.5s1.5.673 1.5 1.5V11z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7H9v2H7v2h2v2h2v-2h2V9h-2z\"}}]})(props);\n};\nexport function BiBookmarkAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2h-12C4.57 2 3 3.57 3 5.5V22l7-3.5 7 3.5v-9h5V5.5C22 3.57 20.43 2 18.5 2zM15 18.764l-5-2.5-5 2.5V5.5C5 4.673 5.673 4 6.5 4h8.852A3.451 3.451 0 0 0 15 5.5v13.264zM20 11h-3V5.5c0-.827.673-1.5 1.5-1.5s1.5.673 1.5 1.5V11z\"}}]})(props);\n};\nexport function BiBookmarkHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22V4c0-1.103-.897-2-2-2H6c-1.103 0-2 .897-2 2v18l8-4.572L20 22zM6 10V4h12v14.553l-6-3.428-6 3.428V10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.409 9.512c.361-.372.585-.888.585-1.456s-.223-1.083-.585-1.456a1.962 1.962 0 0 0-1.412-.603S13.001 5.994 12 7.026c-1.001-1.032-1.997-1.029-1.997-1.029-.552 0-1.051.23-1.412.603-.362.373-.585.887-.585 1.456s.223 1.084.585 1.456L12 13.203l3.409-3.691z\"}}]})(props);\n};\nexport function BiBookmarkMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9h8v2H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22V4c0-1.103-.897-2-2-2H6c-1.103 0-2 .897-2 2v18l8-4.572L20 22zM6 10V4h12v14.553l-6-3.428-6 3.428V10z\"}}]})(props);\n};\nexport function BiBookmarkPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 14v-3h3V9h-3V6h-2v3H8v2h3v3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 22V4c0-1.103-.897-2-2-2H6c-1.103 0-2 .897-2 2v18l8-4.572L20 22zM6 10V4h12v14.553l-6-3.428-6 3.428V10z\"}}]})(props);\n};\nexport function BiBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.103 0-2 .897-2 2v18l8-4.572L20 22V4c0-1.103-.897-2-2-2zm0 16.553-6-3.428-6 3.428V4h12v14.553z\"}}]})(props);\n};\nexport function BiBookmarks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 5H6c-1.103 0-2 .897-2 2v16l6-3.601L16 23V7c0-1.103-.897-2-2-2zm0 14.467-4-2.399-4 2.399V7h8v12.467z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 1h-8c-1.103 0-2 .897-2 2h8c1.103 0 2 .897 2 2v10.443l2 2.489V3c0-1.103-.897-2-2-2z\"}}]})(props);\n};\nexport function BiBorderAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h12V3H3v18h6zm10-4v2h-6v-6h6v4zM15 5h4v6h-6V5h2zM5 7V5h6v6H5V7zm0 12v-6h6v6H5z\"}}]})(props);\n};\nexport function BiBorderBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 7h2v2H3zm0 4h2v2H3zm0 4h2v2H3zM3 3h2v2H3zm8 0h2v2h-2zM7 3h2v2H7zm8 0h2v2h-2zm4 0h2v2h-2zm0 12h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm-4 4h2v2h-2zm-8 0h2v2H7zm4-4h2v2h-2zm0 8h2v2h-2zm0-4h2v2h-2zm6 8H3v2h18v-2h-2z\"}}]})(props);\n};\nexport function BiBorderInner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19h2v2h-2zM7 19h2v2H7zm8 0h2v2h-2zM3 19h2v2H3zm0-4h2v2H3zm0-8h2v2H3zm0-4h2v2H3zm12 0h2v2h-2zM7 3h2v2H7zm12 0h2v2h-2zm0 12h2v2h-2zm0-8h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 13h6v8h2v-8h8v-2h-8V3h-2v8H3v2h1.93z\"}}]})(props);\n};\nexport function BiBorderLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 3h2v2h-2zm4 0h2v2h-2zM7 3h2v2H7zm12 0h2v2h-2zm0 8h2v2h-2zm0 4h2v2h-2zm0-8h2v2h-2zm0 12h2v2h-2zm-4 0h2v2h-2zm-8 0h2v2H7zm4 0h2v2h-2zm0-4h2v2h-2zm0-8h2v2h-2zm4 4h2v2h-2zm-8 0h2v2H7zm4 0h2v2h-2zM3 5v16h2V3H3z\"}}]})(props);\n};\nexport function BiBorderNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19h2v2h-2zm-8 0h2v2h-2zm4 0h2v2h-2zm-8 0h2v2H7zm-4 0h2v2H3zM3 7h2v2H3zm0 8h2v2H3zm0-4h2v2H3zm0-8h2v2H3zm4 0h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm-8-8h2v2h-2zm0 8h2v2h-2zm-4-4h2v2H7zm8 0h2v2h-2zm-4 0h2v2h-2z\"}}]})(props);\n};\nexport function BiBorderOuter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v2h-2zm0 8h2v2h-2zm-4-4h2v2H7zm8 0h2v2h-2zm-4 0h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H3v18h18V3h-2zm0 4v12H5V5h14v2z\"}}]})(props);\n};\nexport function BiBorderRadius (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19h2v2h-2zM7 19h2v2H7zm8 0h2v2h-2zm-4 0h2v2h-2zm-8 0h2v2H3zm0-4h2v2H3zm0-8h2v2H3zm0 4h2v2H3zm0-8h2v2H3zm4 0h2v2H7zm12 12h2v2h-2zM16 3h-5v2h5c1.654 0 3 1.346 3 3v5h2V8c0-2.757-2.243-5-5-5z\"}}]})(props);\n};\nexport function BiBorderRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 19h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2H7zm-4 0h2v2H3zM3 7h2v2H3zm0 8h2v2H3zm0-4h2v2H3zm0-8h2v2H3zm12 0h2v2h-2zm-4 0h2v2h-2zM7 3h2v2H7zm4 4h2v2h-2zm0 8h2v2h-2zm-4-4h2v2H7zm8 0h2v2h-2zm-4 0h2v2h-2zm8-6v16h2V3h-2z\"}}]})(props);\n};\nexport function BiBorderTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 11h2v2h-2zm0 4h2v2h-2zm0-8h2v2h-2zm0 12h2v2h-2zm-8 0h2v2h-2zm4 0h2v2h-2zm-8 0h2v2H7zm-4 0h2v2H3zm0-8h2v2H3zm0 4h2v2H3zm0-8h2v2H3zm4 4h2v2H7zm8 0h2v2h-2zm-4-4h2v2h-2zm0 8h2v2h-2zm0-4h2v2h-2zm10-8H3v2h18z\"}}]})(props);\n};\nexport function BiBot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.928 11.607c-.202-.488-.635-.605-.928-.633V8c0-1.103-.897-2-2-2h-6V4.61c.305-.274.5-.668.5-1.11a1.5 1.5 0 0 0-3 0c0 .442.195.836.5 1.11V6H5c-1.103 0-2 .897-2 2v2.997l-.082.006A1 1 0 0 0 1.99 12v2a1 1 0 0 0 1 1H3v5c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5a1 1 0 0 0 1-1v-1.938a1.006 1.006 0 0 0-.072-.455zM5 20V8h14l.001 3.996L19 12v2l.001.005.001 5.995H5z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"12\",\"rx\":\"1.5\",\"ry\":\"2\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"12\",\"rx\":\"1.5\",\"ry\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16h8v2H8z\"}}]})(props);\n};\nexport function BiBowlingBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4a2 2 0 0 0-2 2v2a2 2 0 0 0 1 1.72V19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.72A2 2 0 0 0 22 7V5a2 2 0 0 0-2-2zM4 5h16v2H4zm1 14V9h14v10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h8v2H8z\"}}]})(props);\n};\nexport function BiBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4V2H4v20h6v-2H6V4zm4 16v2h6V2h-6v2h4v16z\"}}]})(props);\n};\nexport function BiBraille (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"7\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"7\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"17\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"7\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"17\",\"r\":\"2\"}}]})(props);\n};\nexport function BiBrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.864 8.465a3.505 3.505 0 0 0-3.03-4.449A3.005 3.005 0 0 0 14 2a2.98 2.98 0 0 0-2 .78A2.98 2.98 0 0 0 10 2c-1.301 0-2.41.831-2.825 2.015a3.505 3.505 0 0 0-3.039 4.45A4.028 4.028 0 0 0 2 12c0 1.075.428 2.086 1.172 2.832A4.067 4.067 0 0 0 3 16c0 1.957 1.412 3.59 3.306 3.934A3.515 3.515 0 0 0 9.5 22c.979 0 1.864-.407 2.5-1.059A3.484 3.484 0 0 0 14.5 22a3.51 3.51 0 0 0 3.19-2.06 4.006 4.006 0 0 0 3.138-5.108A4.003 4.003 0 0 0 22 12a4.028 4.028 0 0 0-2.136-3.535zM9.5 20c-.711 0-1.33-.504-1.47-1.198L7.818 18H7c-1.103 0-2-.897-2-2 0-.352.085-.682.253-.981l.456-.816-.784-.51A2.019 2.019 0 0 1 4 12c0-.977.723-1.824 1.682-1.972l1.693-.26-1.059-1.346a1.502 1.502 0 0 1 1.498-2.39L9 6.207V5a1 1 0 0 1 2 0v13.5c0 .827-.673 1.5-1.5 1.5zm9.575-6.308-.784.51.456.816c.168.3.253.63.253.982 0 1.103-.897 2-2.05 2h-.818l-.162.802A1.502 1.502 0 0 1 14.5 20c-.827 0-1.5-.673-1.5-1.5V5c0-.552.448-1 1-1s1 .448 1 1.05v1.207l1.186-.225a1.502 1.502 0 0 1 1.498 2.39l-1.059 1.347 1.693.26A2.002 2.002 0 0 1 20 12c0 .683-.346 1.315-.925 1.692z\"}}]})(props);\n};\nexport function BiBriefcaseAlt2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-3V4c0-1.103-.897-2-2-2H9c-1.103 0-2 .897-2 2v2H4c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2zm-5-2v2H9V4h6zM4 8h16v4h-3v-2h-2v2H9v-2H7v2H4V8zm0 11v-5h3v2h2v-2h6v2h2v-2h3.001v5H4z\"}}]})(props);\n};\nexport function BiBriefcaseAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-3V4c0-1.103-.897-2-2-2H9c-1.103 0-2 .897-2 2v2H4c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2zm-4 2v11H8V8h8zm-1-4v2H9V4h6zM4 8h2v11H4V8zm14 11V8h2l.001 11H18z\"}}]})(props);\n};\nexport function BiBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-3V4c0-1.103-.897-2-2-2H9c-1.103 0-2 .897-2 2v2H4c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2zm-5-2v2H9V4h6zM8 8h12v3H4V8h4zM4 19v-6h6v2h4v-2h6l.001 6H4z\"}}]})(props);\n};\nexport function BiBrightnessHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.707 11.293-2-2L19 8.586V6a1 1 0 0 0-1-1h-2.586l-.707-.707-2-2a.999.999 0 0 0-1.414 0l-2 2L8.586 5H6a1 1 0 0 0-1 1v2.586l-.707.707-2 2a.999.999 0 0 0 0 1.414l2 2 .707.707V18a1 1 0 0 0 1 1h2.586l.707.707 2 2a.997.997 0 0 0 1.414 0l2-2 .707-.707H18a1 1 0 0 0 1-1v-2.586l.707-.707 2-2a.999.999 0 0 0 0-1.414zm-4.414 3-.293.293V17h-2.414l-.293.293-1 1L12 19.586l-1.293-1.293-1-1L9.414 17H7v-2.414l-.293-.293-1-1L4.414 12l1.293-1.293 1-1L7 9.414V7h2.414l.293-.293 1-1L12 4.414l1.293 1.293 1 1 .293.293H17v2.414l.293.293 1 1L19.586 12l-1.293 1.293-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v8c2.206 0 4-1.794 4-4s-1.794-4-4-4z\"}}]})(props);\n};\nexport function BiBrightness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.707 9.293 19 8.586V6a1 1 0 0 0-1-1h-2.586l-.707-.707-2-2a.999.999 0 0 0-1.414 0l-2 2L8.586 5H6a1 1 0 0 0-1 1v2.586l-.707.707-2 2a.999.999 0 0 0 0 1.414l2 2 .707.707V18a1 1 0 0 0 1 1h2.586l.707.707 2 2a.997.997 0 0 0 1.414 0l2-2 .707-.707H18a1 1 0 0 0 1-1v-2.586l.707-.707 2-2a.999.999 0 0 0 0-1.414l-2-2zm-2.414 5-.293.293V17h-2.414l-.293.293-1 1L12 19.586l-1.293-1.293-1-1L9.414 17H7v-2.414l-.293-.293-1-1L4.414 12l1.293-1.293 1-1L7 9.414V7h2.414l.293-.293 1-1L12 4.414l1.293 1.293 1 1 .293.293H17v2.414l.293.293 1 1L19.586 12l-1.293 1.293-1 1z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4z\"}}]})(props);\n};\nexport function BiBroadcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.707 4.293-1.414 1.414c2.733 2.733 2.733 7.353 0 10.086l1.414 1.414c3.5-3.5 3.5-9.414 0-12.914zm-4.414 4.414c.566.566.879 1.292.879 2.043s-.313 1.477-.879 2.043l1.414 1.414c.944-.943 1.465-2.172 1.465-3.457s-.521-2.514-1.465-3.457l-1.414 1.414zm-9.086-3L4.793 4.293c-3.5 3.5-3.5 9.414 0 12.914l1.414-1.414c-2.733-2.733-2.733-7.353 0-10.086z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.293 7.293c-.944.943-1.465 2.172-1.465 3.457s.521 2.514 1.465 3.457l1.414-1.414c-.566-.566-.879-1.292-.879-2.043s.313-1.477.879-2.043L7.293 7.293zM14 10.5a2 2 0 0 0-4 0 1.993 1.993 0 0 0 .895 1.666L10.002 22h3.996l-.893-9.835c.54-.358.895-.97.895-1.665z\"}}]})(props);\n};\nexport function BiBrushAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8.001h-4V4.999a2.92 2.92 0 0 0-.874-2.108 2.943 2.943 0 0 0-2.39-.879C10.202 2.144 9 3.508 9 5.117V8H5c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-9.999c0-1.103-.897-2-2-2zM5 10h6V5.117c0-.57.407-1.07 1.002-1.117.266 0 .512.103.712.307a.956.956 0 0 1 .286.692V10h.995l.005.001h5V12H5v-2zm0 10v-6h14l.002 6H5z\"}}]})(props);\n};\nexport function BiBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.707 2.293a.999.999 0 0 0-1.414 0l-5.84 5.84c-.015-.001-.029-.009-.044-.009a.997.997 0 0 0-.707.293L4.288 9.831a2.985 2.985 0 0 0-.878 2.122c0 .802.313 1.556.879 2.121l.707.707-2.122 2.122A2.92 2.92 0 0 0 2 19.012a2.968 2.968 0 0 0 1.063 2.308c.519.439 1.188.68 1.885.68.834 0 1.654-.341 2.25-.937l2.04-2.039.707.706c1.134 1.133 3.109 1.134 4.242.001l1.415-1.414a.997.997 0 0 0 .293-.707c0-.026-.013-.05-.015-.076l5.827-5.827a.999.999 0 0 0 0-1.414l-8-8zm-.935 16.024a1.023 1.023 0 0 1-1.414-.001l-1.414-1.413a.999.999 0 0 0-1.414 0l-2.746 2.745a1.19 1.19 0 0 1-.836.352.91.91 0 0 1-.594-.208A.978.978 0 0 1 4 19.01a.959.959 0 0 1 .287-.692l2.829-2.829a.999.999 0 0 0 0-1.414L5.701 12.66a.99.99 0 0 1-.292-.706c0-.268.104-.519.293-.708l.707-.707 7.071 7.072-.708.706zm1.889-2.392L8.075 9.339 13 4.414 19.586 11l-4.925 4.925z\"}}]})(props);\n};\nexport function BiBugAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h6v2H9zm0 4h6v2H9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18 5.414 1.707-1.707-1.414-1.414-1.563 1.562C15.483 2.708 13.824 2 12 2s-3.483.708-4.73 1.855L5.707 2.293 4.293 3.707 6 5.414A6.937 6.937 0 0 0 5 9H3v2h2v2H3v2h2c0 3.86 3.141 7 7 7s7-3.14 7-7h2v-2h-2v-2h2V9h-2a6.937 6.937 0 0 0-1-3.586zM17 13v2c0 2.757-2.243 5-5 5s-5-2.243-5-5V9c0-2.757 2.243-5 5-5s5 2.243 5 5v4z\"}}]})(props);\n};\nexport function BiBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.895 6.519 2.813-2.812-1.414-1.414-2.846 2.846a6.575 6.575 0 0 0-.723-.454 5.778 5.778 0 0 0-5.45 0c-.25.132-.488.287-.722.453L5.707 2.293 4.293 3.707l2.813 2.812A8.473 8.473 0 0 0 5.756 9H2v2h2.307c-.065.495-.107.997-.107 1.5 0 .507.042 1.013.107 1.511H2v2h2.753c.013.039.021.08.034.118.188.555.421 1.093.695 1.6.044.081.095.155.141.234l-2.33 2.33 1.414 1.414 2.11-2.111a7.477 7.477 0 0 0 2.068 1.619c.479.253.982.449 1.496.58a6.515 6.515 0 0 0 3.237.001 6.812 6.812 0 0 0 1.496-.58c.465-.246.914-.55 1.333-.904.258-.218.5-.462.734-.716l2.111 2.111 1.414-1.414-2.33-2.33c.047-.08.098-.155.142-.236.273-.505.507-1.043.694-1.599.013-.039.021-.079.034-.118H22v-2h-2.308c.065-.499.107-1.004.107-1.511 0-.503-.042-1.005-.106-1.5H22V9h-3.756a8.494 8.494 0 0 0-1.349-2.481zM8.681 7.748c.445-.558.96-.993 1.528-1.294a3.773 3.773 0 0 1 3.581 0 4.894 4.894 0 0 1 1.53 1.295c.299.373.54.8.753 1.251H7.927c.214-.451.454-.879.754-1.252zM17.8 12.5c0 .522-.042 1.044-.126 1.553-.079.49-.199.973-.355 1.436a8.28 8.28 0 0 1-.559 1.288 7.59 7.59 0 0 1-.733 1.11c-.267.333-.56.636-.869.898-.31.261-.639.484-.979.664s-.695.317-1.057.41c-.04.01-.082.014-.122.023V14h-2v5.881c-.04-.009-.082-.013-.122-.023-.361-.093-.717-.23-1.057-.41s-.669-.403-.978-.664a6.462 6.462 0 0 1-.871-.899 7.402 7.402 0 0 1-.731-1.108 8.337 8.337 0 0 1-.56-1.289 9.075 9.075 0 0 1-.356-1.438A9.61 9.61 0 0 1 6.319 11H17.68c.079.491.12.995.12 1.5z\"}}]})(props);\n};\nexport function BiBuildingHouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H9c-1.103 0-2 .897-2 2v5.586l-4.707 4.707A1 1 0 0 0 3 16v5a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4c0-1.103-.897-2-2-2zm-8 18H5v-5.586l3-3 3 3V20zm8 0h-6v-4a.999.999 0 0 0 .707-1.707L9 9.586V4h10v16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v2h-2zm4 0h2v2h-2zm0 4.031h2V12h-2zM15 14h2v2h-2zm-8 1h2v2H7z\"}}]})(props);\n};\nexport function BiBuilding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.103 0-2 .897-2 2v17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V4c0-1.103-.897-2-2-2zm0 18H6V4h12v16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6h3v2H8zm5 0h3v2h-3zm-5 4h3v2H8zm5 .031h3V12h-3zM8 14h3v2H8zm5 0h3v2h-3z\"}}]})(props);\n};\nexport function BiBuildings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H9c-1.103 0-2 .897-2 2v6H5c-1.103 0-2 .897-2 2v9a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4c0-1.103-.897-2-2-2zM5 12h6v8H5v-8zm14 8h-6v-8c0-1.103-.897-2-2-2H9V4h10v16z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v2h-2zm4 0h2v2h-2zm0 4.031h2V12h-2zM15 14h2v2h-2zm-8 .001h2v2H7z\"}}]})(props);\n};\nexport function BiBulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 20h6v2H9zm7.906-6.288C17.936 12.506 19 11.259 19 9c0-3.859-3.141-7-7-7S5 5.141 5 9c0 2.285 1.067 3.528 2.101 4.73.358.418.729.851 1.084 1.349.144.206.38.996.591 1.921H8v2h8v-2h-.774c.213-.927.45-1.719.593-1.925.352-.503.726-.94 1.087-1.363zm-2.724.213c-.434.617-.796 2.075-1.006 3.075h-2.351c-.209-1.002-.572-2.463-1.011-3.08a20.502 20.502 0 0 0-1.196-1.492C7.644 11.294 7 10.544 7 9c0-2.757 2.243-5 5-5s5 2.243 5 5c0 1.521-.643 2.274-1.615 3.413-.373.438-.796.933-1.203 1.512z\"}}]})(props);\n};\nexport function BiBullseye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c-3.309 0-6 2.691-6 6s2.691 6 6 6 6-2.691 6-6-2.691-6-6-6zm0 10c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.579 2 2 6.579 2 12s4.579 10 10 10 10-4.579 10-10S17.421 2 12 2zm0 18c-4.337 0-8-3.663-8-8s3.663-8 8-8 8 3.663 8 8-3.663 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c-1.081 0-2 .919-2 2s.919 2 2 2 2-.919 2-2-.919-2-2-2z\"}}]})(props);\n};\nexport function BiBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm7.411 7H16v.031A5.037 5.037 0 0 0 14.969 8H15V4.589A8.039 8.039 0 0 1 19.411 9zM12 15c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3zm1-10.931v3.032a4.988 4.988 0 0 0-2 0V4.069c.328-.041.66-.069 1-.069s.672.028 1 .069zm-4 .52V8h.031A5.037 5.037 0 0 0 8 9.031V9H4.589C5.402 7 6.999 5.402 9 4.589zM4.069 11h3.032a4.995 4.995 0 0 0 .001 2H4.069C4.028 12.672 4 12.339 4 12s.028-.672.069-1zm.52 4H8v-.031c.284.381.621.718 1 1.005v3.437A8.039 8.039 0 0 1 4.589 15zM11 19.931v-3.032a4.988 4.988 0 0 0 2 0v3.032c-.328.041-.66.069-1 .069s-.672-.028-1-.069zm4-.52v-3.437a5.038 5.038 0 0 0 1-1.005V15h3.411A8.039 8.039 0 0 1 15 19.411zM19.931 13h-3.032a4.995 4.995 0 0 0-.001-2h3.032c.042.328.07.661.07 1s-.028.672-.069 1z\"}}]})(props);\n};\nexport function BiBusSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.259 11.948A.986.986 0 0 0 22 11V8a.999.999 0 0 0-.996-.999V6H21c0-2.206-1.794-4-4-4H7C4.794 2 3 3.794 3 6v1a1 1 0 0 0-1 1v3c0 .461.317.832.742.948a3.953 3.953 0 0 0-.741 2.298l.004 3.757c.001.733.404 1.369.995 1.716V21a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1h12v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1.274a2.02 2.02 0 0 0 .421-.313c.377-.378.585-.881.584-1.415l-.004-3.759a3.966 3.966 0 0 0-.742-2.291zM5 18h-.995l-.004-3.757c-.001-.459.161-.89.443-1.243h15.111c.283.353.445.783.446 1.242L20.006 18H5zm6.004-10v3H5V8h6.004zM19 11h-5.996V8H19v3zM7 4h10c1.103 0 2 .897 2 2h-4V5H9v1H5c0-1.103.897-2 2-2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.004 7.975V6c0-2.206-1.794-4-4-4h-10c-2.206 0-4 1.794-4 4v1.998l-.076.004A1 1 0 0 0 2 9v2a1 1 0 0 0 1 1h.004v6c0 .735.403 1.372.996 1.72V21a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1h10v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1.276A1.994 1.994 0 0 0 21.004 18v-6a1 1 0 0 0 1-1V9.062a1.006 1.006 0 0 0-.072-.455c-.203-.487-.635-.604-.928-.632zM19.006 18H5.004v-5h14.001l.001 5zM11.004 7v4h-6V7h6zm8 0v4h-6V7h6zm-12-3h10c.736 0 1.375.405 1.722 1H5.282c.347-.595.986-1 1.722-1z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiCabinet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V4zM5 4h14v7H5V4zm0 16v-7h14.001v7H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 7h-4V6H8v3h8V6h-2zm0 8v1h-4v-1H8v3h8v-3z\"}}]})(props);\n};\nexport function BiCake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 5h-6V2h-2v3H5C3.346 5 2 6.346 2 8v10c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V8c0-1.654-1.346-3-3-3zM5 7h14a1 1 0 0 1 1 1l.001 3.12c-.896.228-1.469.734-1.916 1.132-.507.45-.842.748-1.588.748-.745 0-1.08-.298-1.587-.747-.595-.529-1.409-1.253-2.915-1.253-1.505 0-2.319.724-2.914 1.253-.507.45-.841.747-1.586.747-.743 0-1.077-.297-1.582-.747-.447-.398-1.018-.905-1.913-1.133V8a1 1 0 0 1 1-1zM4 18v-4.714c.191.123.374.274.583.461C5.178 14.276 5.991 15 7.495 15c1.505 0 2.319-.724 2.914-1.253.507-.45.841-.747 1.586-.747s1.08.298 1.587.747c.595.529 1.409 1.253 2.915 1.253s2.321-.724 2.916-1.253c.211-.188.395-.34.588-.464L20.002 18H4z\"}}]})(props);\n};\nexport function BiCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM5 20V4h14l.001 16H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h2v2H7zm0 4h2v2H7zm4-4h2v2h-2zM7 6h10v4H7zm4 10h2v2h-2zm4-4h2v6h-2z\"}}]})(props);\n};\nexport function BiCalendarAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7v2H5a2 2 0 0 0-2 2zm16 14H5V8h14z\"}}]})(props);\n};\nexport function BiCalendarCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.002 16H5V8h14l.002 12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 17.414 5.707-5.707-1.414-1.414L11 14.586l-2.293-2.293-1.414 1.414z\"}}]})(props);\n};\nexport function BiCalendarEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-3V2h-2v2h-4V2H8v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM5 20V7h14V6l.002 14H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15.628 12.183-1.8-1.799 1.37-1.371 1.8 1.799zm-7.623 4.018V18h1.799l4.976-4.97-1.799-1.799z\"}}]})(props);\n};\nexport function BiCalendarEvent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 12h6v6h-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.001 16H5V8h14l.001 12z\"}}]})(props);\n};\nexport function BiCalendarExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.002 16H5V8h14l.002 12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10h2v5h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function BiCalendarHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.648 14.711 11.997 18l3.35-3.289a2.129 2.129 0 0 0 0-3.069 2.225 2.225 0 0 0-3.126 0l-.224.219-.224-.219a2.224 2.224 0 0 0-3.125 0 2.129 2.129 0 0 0 0 3.069z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.002 16H5V8h14l.002 12z\"}}]})(props);\n};\nexport function BiCalendarMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13h8v2H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.002 16H5V8h14l.002 12z\"}}]})(props);\n};\nexport function BiCalendarPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 15h3v3h2v-3h3v-2h-3v-3h-2v3H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.002 16H5V8h14l.002 12z\"}}]})(props);\n};\nexport function BiCalendarStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.981 14.811-.467 2.726 2.449-1.287 2.449 1.287-.468-2.726 1.982-1.932-2.738-.398L11.963 10l-1.225 2.481L8 12.879z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.002 16H5V8h14l.002 12z\"}}]})(props);\n};\nexport function BiCalendarWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-3V2h-2v2h-4V2H8v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM5 20V7h14V6l.002 14H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10v2h10V9H7z\"}}]})(props);\n};\nexport function BiCalendarX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8.293 16.293 1.414 1.414L12 15.414l2.293 2.293 1.414-1.414L13.414 14l2.293-2.293-1.414-1.414L12 12.586l-2.293-2.293-1.414 1.414L10.586 14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm.002 16H5V8h14l.002 12z\"}}]})(props);\n};\nexport function BiCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11h2v2H7zm0 4h2v2H7zm4-4h2v2h-2zm0 4h2v2h-2zm4-4h2v2h-2zm0 4h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 22h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2h-2V2h-2v2H9V2H7v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zM19 8l.001 12H5V8h14z\"}}]})(props);\n};\nexport function BiCameraHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.125 2H5.875A1.877 1.877 0 0 0 4 3.875v12.25C4 17.159 4.841 18 5.875 18H11v2H7v2h10v-2h-4v-2h5.125A1.877 1.877 0 0 0 20 16.125V3.875A1.877 1.877 0 0 0 18.125 2zM18 16H6V4h12v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2z\"}}]})(props);\n};\nexport function BiCameraMovie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11c0-.959-.68-1.761-1.581-1.954C16.779 8.445 17 7.75 17 7c0-2.206-1.794-4-4-4-1.517 0-2.821.857-3.5 2.104C8.821 3.857 7.517 3 6 3 3.794 3 2 4.794 2 7c0 .902.312 1.727.817 2.396A1.994 1.994 0 0 0 2 11v8c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-2.638l4 2v-7l-4 2V11zm-5-6c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2zM6 5c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2zM4 19v-8h12l.002 8H4z\"}}]})(props);\n};\nexport function BiCameraOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.014 12.135c.074 2.062 1.789 3.777 3.851 3.851l-3.851-3.851z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h11.879l-2-2H4V8.121L2.144 6.265A1.976 1.976 0 0 0 2 7v11c0 1.103.897 2 2 2zM20 5h-2.586l-2.707-2.707A.996.996 0 0 0 14 2h-4a.997.997 0 0 0-.707.293L6.586 5h-.172L3.707 2.293 2.293 3.707l18 18 1.414-1.414-.626-.626A1.98 1.98 0 0 0 22 18V7c0-1.103-.897-2-2-2zm-6.081 7.505-2.424-2.425c.163-.046.331-.08.505-.08 1.065 0 2 .935 2 2 0 .174-.033.342-.081.505zm1.502 1.501A3.881 3.881 0 0 0 16 12c0-2.168-1.832-4-4-4-.729 0-1.412.22-2.007.579L7.914 6.5l2.5-2.5h3.172l2.707 2.707A.996.996 0 0 0 17 7l3-.001V18h-.586l-3.993-3.994z\"}}]})(props);\n};\nexport function BiCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.168 0-4 1.832-4 4s1.832 4 4 4 4-1.832 4-4-1.832-4-4-4zm0 6c-1.065 0-2-.935-2-2s.935-2 2-2 2 .935 2 2-.935 2-2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-2.586l-2.707-2.707A.996.996 0 0 0 14 2h-4a.996.996 0 0 0-.707.293L6.586 5H4c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2zM4 18V7h3c.266 0 .52-.105.707-.293L10.414 4h3.172l2.707 2.707A.996.996 0 0 0 17 7h3l.002 11H4z\"}}]})(props);\n};\nexport function BiCapsule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.999 20.133a4.969 4.969 0 0 0 3.536-1.465l7.134-7.133a5.007 5.007 0 0 0-.001-7.072C18.723 3.52 17.467 3 16.132 3s-2.591.52-3.534 1.464l-7.134 7.134a5.009 5.009 0 0 0 0 7.072 4.97 4.97 0 0 0 3.535 1.463zm5.013-14.255A2.979 2.979 0 0 1 16.132 5c.802 0 1.556.313 2.122.878a3.004 3.004 0 0 1 .001 4.243l-2.893 2.892L11.12 8.77l2.892-2.892zm-7.134 7.134 2.828-2.828 4.242 4.243-2.827 2.827c-1.133 1.133-3.11 1.132-4.243.001a3.005 3.005 0 0 1 0-4.243z\"}}]})(props);\n};\nexport function BiCaptions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10v4c0 1.103.897 2 2 2h3v-2H8v-4h3V8H8c-1.103 0-2 .897-2 2zm7 0v4c0 1.103.897 2 2 2h3v-2h-3v-4h3V8h-3c-1.103 0-2 .897-2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM4 18V6h16l.002 12H4z\"}}]})(props);\n};\nexport function BiCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.772 10.156-1.368-4.105A2.995 2.995 0 0 0 16.559 4H7.441a2.995 2.995 0 0 0-2.845 2.051l-1.368 4.105A2.003 2.003 0 0 0 2 12v5c0 .753.423 1.402 1.039 1.743-.013.066-.039.126-.039.195V21a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-2h12v2a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-2.062c0-.069-.026-.13-.039-.195A1.993 1.993 0 0 0 22 17v-5c0-.829-.508-1.541-1.228-1.844zM4 17v-5h16l.002 5H4zM7.441 6h9.117c.431 0 .813.274.949.684L18.613 10H5.387l1.105-3.316A1 1 0 0 1 7.441 6z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.999 17c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2h-12c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h12zm-12-12h12l.002 10H5.999V5zm-2 14h16v2h-16z\"}}]})(props);\n};\nexport function BiCaretDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 16 5-6H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiCaretDownSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 16 5-6H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}}]})(props);\n};\nexport function BiCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.998 17 7-8h-14z\"}}]})(props);\n};\nexport function BiCaretLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17V7l-6 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiCaretLeftSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 17V7l-6 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}}]})(props);\n};\nexport function BiCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 19V5l-8 7z\"}}]})(props);\n};\nexport function BiCaretRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10 17 6-5-6-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiCaretRightSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10 17 6-5-6-5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}}]})(props);\n};\nexport function BiCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9 19 8-7-8-7z\"}}]})(props);\n};\nexport function BiCaretUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14h10l-5-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiCaretUpSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14h10l-5-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}}]})(props);\n};\nexport function BiCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15h14l-7-8z\"}}]})(props);\n};\nexport function BiCarousel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19h2c0 1.103.897 2 2 2h8c1.103 0 2-.897 2-2h2c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2h-2c0-1.103-.897-2-2-2H8c-1.103 0-2 .897-2 2H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2zM20 7v10h-2V7h2zM8 5h8l.001 14H8V5zM4 7h2v10H4V7z\"}}]})(props);\n};\nexport function BiCartAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H2v2h2.3l3.28 9a3 3 0 0 0 2.82 2H19v-2h-8.6a1 1 0 0 1-.94-.66L9 13h9.28a2 2 0 0 0 1.92-1.45L22 5.27A1 1 0 0 0 21.27 4 .84.84 0 0 0 21 4zm-2.75 7h-10L6.43 6h13.24z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.822 7.431A1 1 0 0 0 21 7H7.333L6.179 4.23A1.994 1.994 0 0 0 4.333 3H2v2h2.333l4.744 11.385A1 1 0 0 0 10 17h8c.417 0 .79-.259.937-.648l3-8a1 1 0 0 0-.115-.921zM17.307 15h-6.64l-2.5-6h11.39l-2.25 6z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 21.001h2C13 14.935 8.065 10 2 10v2c4.962 0 9 4.038 9 9.001z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 21.001h2C9 17.141 5.86 14 2 14v2c2.757 0 5 2.243 5 5.001z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"3.5\",\"cy\":\"19.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .897-2 2v2.052c.68.025 1.349.094 2 .217V6h16v13h-5.269c.123.651.191 1.32.217 2H20c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2z\"}}]})(props);\n};\nexport function BiCategoryAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zM9 9H5V5h4v4zm11 4h-6a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1zm-1 6h-4v-4h4v4zM17 3c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4zm0 6c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2zM7 13c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4zm0 6c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2z\"}}]})(props);\n};\nexport function BiCategory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zM9 9H5V5h4v4zm11-6h-6a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zm-1 6h-4V5h4v4zm-9 4H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1zm-1 6H5v-4h4v4zm8-6c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4zm0 6c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2z\"}}]})(props);\n};\nexport function BiCctv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.916 9.564a.998.998 0 0 0-.513-1.316L7.328 2.492c-.995-.438-2.22.051-2.645 1.042l-2.21 5.154a2.001 2.001 0 0 0 1.052 2.624L9.563 13.9 8.323 17H4v-3H2v8h2v-3h4.323c.823 0 1.552-.494 1.856-1.258l1.222-3.054 5.205 2.23a1 1 0 0 0 1.31-.517l.312-.71 1.701.68 2-5-1.536-.613.523-1.194zm-4.434 5.126L4.313 9.475l2.208-5.152 12.162 5.354-2.201 5.013z\"}}]})(props);\n};\nexport function BiCertification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.06 14.68a1 1 0 0 0 .46.6l1.91 1.11v2.2a1 1 0 0 0 1 1h2.2l1.11 1.91a1 1 0 0 0 .86.5 1 1 0 0 0 .51-.14l1.9-1.1 1.91 1.1a1 1 0 0 0 1.37-.36l1.1-1.91h2.2a1 1 0 0 0 1-1v-2.2l1.91-1.11a1 1 0 0 0 .37-1.36L20.76 12l1.11-1.91a1 1 0 0 0-.37-1.36l-1.91-1.1v-2.2a1 1 0 0 0-1-1h-2.2l-1.1-1.91a1 1 0 0 0-.61-.46 1 1 0 0 0-.76.1L12 3.26l-1.9-1.1a1 1 0 0 0-1.36.36L7.63 4.43h-2.2a1 1 0 0 0-1 1v2.2l-1.9 1.1a1 1 0 0 0-.37 1.37l1.1 1.9-1.1 1.91a1 1 0 0 0-.1.77zm3.22-3.17L4.39 10l1.55-.9a1 1 0 0 0 .49-.86V6.43h1.78a1 1 0 0 0 .87-.5L10 4.39l1.54.89a1 1 0 0 0 1 0l1.55-.89.91 1.54a1 1 0 0 0 .87.5h1.77v1.78a1 1 0 0 0 .5.86l1.54.9-.89 1.54a1 1 0 0 0 0 1l.89 1.54-1.54.9a1 1 0 0 0-.5.86v1.78h-1.83a1 1 0 0 0-.86.5l-.89 1.54-1.55-.89a1 1 0 0 0-1 0l-1.51.89-.89-1.54a1 1 0 0 0-.87-.5H6.43v-1.78a1 1 0 0 0-.49-.81l-1.55-.9.89-1.54a1 1 0 0 0 0-1.05z\"}}]})(props);\n};\nexport function BiChair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 13V4c0-1.103-.897-2-2-2H7c-1.103 0-2 .897-2 2v9a1 1 0 0 0-1 1v8h2v-5h12v5h2v-8a1 1 0 0 0-1-1zm-2-9v9h-2V4h2zm-4 0v9h-2V4h2zM7 4h2v9H7V4z\"}}]})(props);\n};\nexport function BiChalkboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h4l-1.8 2.4 1.6 1.2 2.7-3.6h3l2.7 3.6 1.6-1.2L16 18h4c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 16V5h16l.001 11H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h4v2H6z\"}}]})(props);\n};\nexport function BiChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zM5 5h14l.001 14H5V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13.553 11.658-4-2-2.448 4.895 1.79.894 1.552-3.105 4 2 2.448-4.895-1.79-.894z\"}}]})(props);\n};\nexport function BiChat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18v3.766l1.515-.909L11.277 18H16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h1zM4 8h12v8h-5.277L7 18.234V16H4V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.103 0-2 .897-2 2h12c1.103 0 2 .897 2 2v8c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2z\"}}]})(props);\n};\nexport function BiCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.999 13.587 7.7 11.292l-1.412 1.416 3.713 3.705 6.706-6.706-1.414-1.414z\"}}]})(props);\n};\nexport function BiCheckDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.394 13.742 4.743 3.62 7.616-8.704-1.506-1.316-6.384 7.296-3.257-2.486zm19.359-5.084-1.506-1.316-6.369 7.279-.753-.602-1.25 1.562 2.247 1.798z\"}}]})(props);\n};\nexport function BiCheckShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.995 6.9a.998.998 0 0 0-.548-.795l-8-4a1 1 0 0 0-.895 0l-8 4a1.002 1.002 0 0 0-.547.795c-.011.107-.961 10.767 8.589 15.014a.987.987 0 0 0 .812 0c9.55-4.247 8.6-14.906 8.589-15.014zM12 19.897C5.231 16.625 4.911 9.642 4.966 7.635L12 4.118l7.029 3.515c.037 1.989-.328 9.018-7.029 12.264z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 12.586-2.293-2.293-1.414 1.414L11 15.414l5.707-5.707-1.414-1.414z\"}}]})(props);\n};\nexport function BiCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.933 13.519-2.226-2.226-1.414 1.414 3.774 3.774 5.702-6.84-1.538-1.282z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}}]})(props);\n};\nexport function BiCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10 15.586-3.293-3.293-1.414 1.414L10 18.414l9.707-9.707-1.414-1.414z\"}}]})(props);\n};\nexport function BiCheckboxChecked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2H7zm0 12V7h10l.002 10H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.996 12.556 9.7 11.285l-1.4 1.43 2.704 2.647 4.699-4.651-1.406-1.422z\"}}]})(props);\n};\nexport function BiCheckboxMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.01 11h6v2h-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H7a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zM7 17V7h10v10z\"}}]})(props);\n};\nexport function BiCheckboxSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h6v6H9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 17V7c0-1.103-.897-2-2-2H7c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2zM7 7h10l.002 10H7V7z\"}}]})(props);\n};\nexport function BiCheckbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 5c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2H7zm0 12V7h10l.002 10H7z\"}}]})(props);\n};\nexport function BiChevronDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.586 7.707 9.293l-1.414 1.414L12 16.414l5.707-5.707-1.414-1.414z\"}}]})(props);\n};\nexport function BiChevronDownSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zM5 5h14l.001 14H5V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.586 7.707 9.293l-1.414 1.414L12 16.414l5.707-5.707-1.414-1.414z\"}}]})(props);\n};\nexport function BiChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.293 9.293 12 13.586 7.707 9.293l-1.414 1.414L12 16.414l5.707-5.707z\"}}]})(props);\n};\nexport function BiChevronLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z\"}}]})(props);\n};\nexport function BiChevronLeftSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zM5 5h14l.001 14H5V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z\"}}]})(props);\n};\nexport function BiChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z\"}}]})(props);\n};\nexport function BiChevronRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.293 7.707 13.586 12l-4.293 4.293 1.414 1.414L16.414 12l-5.707-5.707z\"}}]})(props);\n};\nexport function BiChevronRightSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zM5 5h14l.001 14H5V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.293 7.707 13.586 12l-4.293 4.293 1.414 1.414L16.414 12l-5.707-5.707z\"}}]})(props);\n};\nexport function BiChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z\"}}]})(props);\n};\nexport function BiChevronUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.293 13.293 1.414 1.414L12 10.414l4.293 4.293 1.414-1.414L12 7.586z\"}}]})(props);\n};\nexport function BiChevronUpSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zM5 5h14l.001 14H5V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.293 13.293 1.414 1.414L12 10.414l4.293 4.293 1.414-1.414L12 7.586z\"}}]})(props);\n};\nexport function BiChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.293 13.293 1.414 1.414L12 10.414l4.293 4.293 1.414-1.414L12 7.586z\"}}]})(props);\n};\nexport function BiChevronsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 15.586-4.293-4.293-1.414 1.414L12 18.414l5.707-5.707-1.414-1.414z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.707 7.707-1.414-1.414L12 10.586 7.707 6.293 6.293 7.707 12 13.414z\"}}]})(props);\n};\nexport function BiChevronsLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.707 7.707-1.414-1.414L5.586 12l5.707 5.707 1.414-1.414L8.414 12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.293 6.293 10.586 12l5.707 5.707 1.414-1.414L13.414 12l4.293-4.293z\"}}]})(props);\n};\nexport function BiChevronsRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.296 7.71 14.621 12l-4.325 4.29 1.408 1.42L17.461 12l-5.757-5.71z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.704 6.29 5.296 7.71 9.621 12l-4.325 4.29 1.408 1.42L12.461 12z\"}}]})(props);\n};\nexport function BiChevronsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.293 11.293 1.414 1.414L12 8.414l4.293 4.293 1.414-1.414L12 5.586z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m6.293 16.293 1.414 1.414L12 13.414l4.293 4.293 1.414-1.414L12 10.586z\"}}]})(props);\n};\nexport function BiChip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h6v6H9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6c0-1.103-.897-2-2-2h-2V2h-2v2h-4V2H8v2H6c-1.103 0-2 .897-2 2v2H2v2h2v4H2v2h2v2c0 1.103.897 2 2 2h2v2h2v-2h4v2h2v-2h2c1.103 0 2-.897 2-2v-2h2v-2h-2v-4h2V8h-2V6zM6 18V6h12l.002 12H6z\"}}]})(props);\n};\nexport function BiChurch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.447 14.105 18 12.382V12a1 1 0 0 0-.485-.857L13 8.434V6h2V4h-2V2h-2v2H9v2h2v2.434l-4.515 2.709A1 1 0 0 0 6 12v.382l-3.447 1.724A.998.998 0 0 0 2 15v6a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1v-6c0-.379-.214-.725-.553-.895zM4 15.618l2-1V20H4v-4.382zM12 15a2 2 0 0 0-2 2v3H8v-7.434l4-2.4 4 2.4V20h-2v-3a2 2 0 0 0-2-2zm8 5h-2v-5.382l2 1V20z\"}}]})(props);\n};\nexport function BiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12c.001 5.515 4.487 10.001 10 10.001 5.514 0 10-4.486 10.001-10.001 0-5.514-4.486-10-10.001-10zm0 18.001c-4.41 0-7.999-3.589-8-8.001 0-4.411 3.589-8 8-8 4.412 0 8.001 3.589 8.001 8-.001 4.412-3.59 8.001-8.001 8.001z\"}}]})(props);\n};\nexport function BiClinic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.707 2.293a.999.999 0 0 0-1.414 0l-9 9A1 1 0 0 0 3 13h1v7c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-7h1a.999.999 0 0 0 .707-1.707l-9-9zM18.001 20H6v-9.586l6-6 6 6V15l.001 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function BiClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-2.25a1 1 0 0 0-1-1h-7.5a1 1 0 0 0-1 1H5c-1.103 0-2 .897-2 2v15c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zm0 17H5V5h2v2h10V5h2v15z\"}}]})(props);\n};\nexport function BiCloset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 10.551v-.678A4.005 4.005 0 0 0 16 6c0-2.206-1.794-4-4-4S8 3.794 8 6h2c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2a1 1 0 0 0-1 1v1.551l-8.665 7.702A1.001 1.001 0 0 0 3 20h18a1.001 1.001 0 0 0 .664-1.748L13 10.551zM5.63 18 12 12.338 18.37 18H5.63z\"}}]})(props);\n};\nexport function BiCloudDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.948 11.112C18.511 7.67 15.563 5 12.004 5c-2.756 0-5.15 1.611-6.243 4.15-2.148.642-3.757 2.67-3.757 4.85 0 2.757 2.243 5 5 5h1v-2h-1c-1.654 0-3-1.346-3-3 0-1.404 1.199-2.757 2.673-3.016l.581-.102.192-.558C8.153 8.273 9.898 7 12.004 7c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2h-2v2h2c2.206 0 4-1.794 4-4a4.008 4.008 0 0 0-3.056-3.888z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.004 14v-4h-2v4h-3l4 5 4-5z\"}}]})(props);\n};\nexport function BiCloudDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13h2v3H8zm0 4h2v3H8zm3-2h2v3h-2zm0 4h2v3h-2zm3-6h2v3h-2zm0 4h2v3h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.944 10.112C18.507 6.67 15.56 4 12 4 9.245 4 6.85 5.611 5.757 8.15 3.609 8.792 2 10.819 2 13c0 2.757 2.243 5 5 5v-2c-1.654 0-3-1.346-3-3 0-1.403 1.199-2.756 2.673-3.015l.582-.103.191-.559C8.149 7.273 9.895 6 12 6c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2h-1v2h1c2.206 0 4-1.794 4-4a4.008 4.008 0 0 0-3.056-3.888z\"}}]})(props);\n};\nexport function BiCloudLightRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13h2v4H8zm0 5h2v2H8zm3-3h2v4h-2zm0 5h2v2h-2zm3-7h2v4h-2zm0 5h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.944 10.112C18.507 6.67 15.56 4 12 4 9.244 4 6.85 5.611 5.757 8.15 3.609 8.792 2 10.819 2 13c0 2.757 2.243 5 5 5v-2c-1.654 0-3-1.346-3-3 0-1.403 1.199-2.756 2.673-3.015l.581-.103.192-.559C8.149 7.273 9.895 6 12 6c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2h-1v2h1c2.206 0 4-1.794 4-4a4.008 4.008 0 0 0-3.056-3.888z\"}}]})(props);\n};\nexport function BiCloudLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10 13-1 5h2v4l3.975-6H13l1-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.944 10.112C18.507 6.67 15.56 4 12 4 9.244 4 6.85 5.611 5.757 8.15 3.609 8.792 2 10.819 2 13c0 2.757 2.243 5 5 5v-2c-1.654 0-3-1.346-3-3 0-1.403 1.199-2.756 2.673-3.015l.581-.103.192-.559C8.149 7.273 9.895 6 12 6c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2h-1v2h1c2.206 0 4-1.794 4-4a4.008 4.008 0 0 0-3.056-3.888z\"}}]})(props);\n};\nexport function BiCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 13h2v7H8zm3 2h2v7h-2zm3-2h2v7h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.944 10.113C18.507 6.671 15.56 4.001 12 4.001c-2.756 0-5.15 1.611-6.243 4.15C3.609 8.793 2 10.82 2 13.001c0 2.757 2.243 5 5 5v-2c-1.654 0-3-1.346-3-3 0-1.403 1.199-2.756 2.673-3.015l.581-.103.192-.559C8.149 7.274 9.895 6.001 12 6.001c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2h-1v2h1c2.206 0 4-1.794 4-4a4.008 4.008 0 0 0-3.056-3.888z\"}}]})(props);\n};\nexport function BiCloudSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.944 10.112C18.507 6.67 15.56 4 12 4 9.244 4 6.85 5.611 5.757 8.15 3.609 8.792 2 10.819 2 13c0 2.757 2.243 5 5 5v-2c-1.654 0-3-1.346-3-3 0-1.403 1.199-2.756 2.673-3.015l.581-.103.192-.559C8.149 7.273 9.895 6 12 6c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2h-1v2h1c2.206 0 4-1.794 4-4a4.008 4.008 0 0 0-3.056-3.888z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"16\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"19\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"21\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"19\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"16\",\"r\":\"1\"}}]})(props);\n};\nexport function BiCloudUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 19v-4h3l-4-5-4 5h3v4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 19h2v-2H7c-1.654 0-3-1.346-3-3 0-1.404 1.199-2.756 2.673-3.015l.581-.102.192-.558C8.149 8.274 9.895 7 12 7c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2h-3v2h3c2.206 0 4-1.794 4-4a4.01 4.01 0 0 0-3.056-3.888C18.507 7.67 15.56 5 12 5 9.244 5 6.85 6.611 5.757 9.15 3.609 9.792 2 11.82 2 14c0 2.757 2.243 5 5 5z\"}}]})(props);\n};\nexport function BiCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.944 11.112C18.507 7.67 15.56 5 12 5 9.244 5 6.85 6.611 5.757 9.15 3.609 9.792 2 11.82 2 14c0 2.757 2.243 5 5 5h11c2.206 0 4-1.794 4-4a4.01 4.01 0 0 0-3.056-3.888zM18 17H7c-1.654 0-3-1.346-3-3 0-1.404 1.199-2.756 2.673-3.015l.581-.102.192-.558C8.149 8.274 9.895 7 12 7c2.757 0 5 2.243 5 5v1h1c1.103 0 2 .897 2 2s-.897 2-2 2z\"}}]})(props);\n};\nexport function BiCodeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.375 16.781 1.25-1.562L4.601 12l4.024-3.219-1.25-1.562-5 4a1 1 0 0 0 0 1.562l5 4zm9.25-9.562-1.25 1.562L19.399 12l-4.024 3.219 1.25 1.562 5-4a1 1 0 0 0 0-1.562l-5-4zm-1.649-4.003-4 18-1.953-.434 4-18z\"}}]})(props);\n};\nexport function BiCodeBlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 19V7h16l.002 12H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.293 9.293 5.586 13l3.707 3.707 1.414-1.414L8.414 13l2.293-2.293zm5.414 0-1.414 1.414L15.586 13l-2.293 2.293 1.414 1.414L18.414 13z\"}}]})(props);\n};\nexport function BiCodeCurly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 22h1v-2h-.989C8.703 19.994 6 19.827 6 16c0-1.993-.665-3.246-1.502-4C5.335 11.246 6 9.993 6 8c0-3.827 2.703-3.994 3-4h1V2H8.998C7.269 2.004 4 3.264 4 8c0 2.8-1.678 2.99-2.014 3L2 13c.082 0 2 .034 2 3 0 4.736 3.269 5.996 5 6zm13-11c-.082 0-2-.034-2-3 0-4.736-3.269-5.996-5-6h-1v2h.989c.308.006 3.011.173 3.011 4 0 1.993.665 3.246 1.502 4-.837.754-1.502 2.007-1.502 4 0 3.827-2.703 3.994-3 4h-1v2h1.002C16.731 21.996 20 20.736 20 16c0-2.8 1.678-2.99 2.014-3L22 11z\"}}]})(props);\n};\nexport function BiCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.293 6.293 2.586 12l5.707 5.707 1.414-1.414L5.414 12l4.293-4.293zm7.414 11.414L21.414 12l-5.707-5.707-1.414 1.414L18.586 12l-4.293 4.293z\"}}]})(props);\n};\nexport function BiCoffeeTogo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 22h10a1 1 0 0 0 .99-.858L19.867 8H21V6h-1.382l-1.724-3.447A.998.998 0 0 0 17 2H7c-.379 0-.725.214-.895.553L4.382 6H3v2h1.133L6.01 21.142A1 1 0 0 0 7 22zm10.418-11H6.582l-.429-3h11.693l-.428 3zm-9.551 9-.429-3h9.123l-.429 3H7.867zM7.618 4h8.764l1 2H6.618l1-2z\"}}]})(props);\n};\nexport function BiCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2h2v3H5zm4 0h2v3H9zm4 0h2v3h-2zm6 7h-2V7H3v11c0 1.654 1.346 3 3 3h8c1.654 0 3-1.346 3-3h2c1.103 0 2-.897 2-2v-5c0-1.103-.897-2-2-2zm-4 9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V9h10v9zm2-2v-5h2l.002 5H17z\"}}]})(props);\n};\nexport function BiCog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.084 0 2 .916 2 2s-.916 2-2 2-2-.916-2-2 .916-2 2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m2.845 16.136 1 1.73c.531.917 1.809 1.261 2.73.73l.529-.306A8.1 8.1 0 0 0 9 19.402V20c0 1.103.897 2 2 2h2c1.103 0 2-.897 2-2v-.598a8.132 8.132 0 0 0 1.896-1.111l.529.306c.923.53 2.198.188 2.731-.731l.999-1.729a2.001 2.001 0 0 0-.731-2.732l-.505-.292a7.718 7.718 0 0 0 0-2.224l.505-.292a2.002 2.002 0 0 0 .731-2.732l-.999-1.729c-.531-.92-1.808-1.265-2.731-.732l-.529.306A8.1 8.1 0 0 0 15 4.598V4c0-1.103-.897-2-2-2h-2c-1.103 0-2 .897-2 2v.598a8.132 8.132 0 0 0-1.896 1.111l-.529-.306c-.924-.531-2.2-.187-2.731.732l-.999 1.729a2.001 2.001 0 0 0 .731 2.732l.505.292a7.683 7.683 0 0 0 0 2.223l-.505.292a2.003 2.003 0 0 0-.731 2.733zm3.326-2.758A5.703 5.703 0 0 1 6 12c0-.462.058-.926.17-1.378a.999.999 0 0 0-.47-1.108l-1.123-.65.998-1.729 1.145.662a.997.997 0 0 0 1.188-.142 6.071 6.071 0 0 1 2.384-1.399A1 1 0 0 0 11 5.3V4h2v1.3a1 1 0 0 0 .708.956 6.083 6.083 0 0 1 2.384 1.399.999.999 0 0 0 1.188.142l1.144-.661 1 1.729-1.124.649a1 1 0 0 0-.47 1.108c.112.452.17.916.17 1.378 0 .461-.058.925-.171 1.378a1 1 0 0 0 .471 1.108l1.123.649-.998 1.729-1.145-.661a.996.996 0 0 0-1.188.142 6.071 6.071 0 0 1-2.384 1.399A1 1 0 0 0 13 18.7l.002 1.3H11v-1.3a1 1 0 0 0-.708-.956 6.083 6.083 0 0 1-2.384-1.399.992.992 0 0 0-1.188-.141l-1.144.662-1-1.729 1.124-.651a1 1 0 0 0 .471-1.108z\"}}]})(props);\n};\nexport function BiCoinStack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c3.976 0 8-1.374 8-4V6c0-2.626-4.024-4-8-4S4 3.374 4 6v12c0 2.626 4.024 4 8 4zm0-2c-3.722 0-6-1.295-6-2v-1.268C7.541 17.57 9.777 18 12 18s4.459-.43 6-1.268V18c0 .705-2.278 2-6 2zm0-16c3.722 0 6 1.295 6 2s-2.278 2-6 2-6-1.295-6-2 2.278-2 6-2zM6 8.732C7.541 9.57 9.777 10 12 10s4.459-.43 6-1.268V10c0 .705-2.278 2-6 2s-6-1.295-6-2V8.732zm0 4C7.541 13.57 9.777 14 12 14s4.459-.43 6-1.268V14c0 .705-2.278 2-6 2s-6-1.295-6-2v-1.268z\"}}]})(props);\n};\nexport function BiCoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6C7.03 6 2 7.546 2 10.5v4C2 17.454 7.03 19 12 19s10-1.546 10-4.5v-4C22 7.546 16.97 6 12 6zm-8 8.5v-1.197a9.989 9.989 0 0 0 2 .86v1.881c-1.312-.514-2-1.126-2-1.544zm12 .148v1.971c-.867.179-1.867.31-3 .358v-2a21.75 21.75 0 0 0 3-.329zm-5 2.33a18.788 18.788 0 0 1-3-.358v-1.971c.959.174 1.972.287 3 .33v1.999zm7-.934v-1.881a9.931 9.931 0 0 0 2-.86V14.5c0 .418-.687 1.03-2 1.544zM12 13c-5.177 0-8-1.651-8-2.5S6.823 8 12 8s8 1.651 8 2.5-2.823 2.5-8 2.5z\"}}]})(props);\n};\nexport function BiCollapse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.121 6.465 14 4.344V10h5.656l-2.121-2.121 3.172-3.172-1.414-1.414zM4.707 3.293 3.293 4.707l3.172 3.172L4.344 10H10V4.344L7.879 6.465zM19.656 14H14v5.656l2.121-2.121 3.172 3.172 1.414-1.414-3.172-3.172zM6.465 16.121l-3.172 3.172 1.414 1.414 3.172-3.172L10 19.656V14H4.344z\"}}]})(props);\n};\nexport function BiCollection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10H5c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-8c0-1.103-.897-2-2-2zM5 20v-8h14l.002 8H5zM5 6h14v2H5zm2-4h10v2H7z\"}}]})(props);\n};\nexport function BiColorFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13.998c-.092.065-2 2.083-2 3.5 0 1.494.949 2.448 2 2.5.906.044 2-.891 2-2.5 0-1.5-1.908-3.435-2-3.5zm-16.586-1c0 .534.208 1.036.586 1.414l5.586 5.586c.378.378.88.586 1.414.586s1.036-.208 1.414-.586l7-7-.707-.707L11 4.584 8.707 2.291 7.293 3.705l2.293 2.293L4 11.584c-.378.378-.586.88-.586 1.414zM11 7.412l5.586 5.586L11 18.584h.001l-.001 1v-1l-5.586-5.586L11 7.412z\"}}]})(props);\n};\nexport function BiColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.893 3.001H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h15.893c1.103 0 2-.897 2-2V5a2.003 2.003 0 0 0-2-1.999zM8 19.001H4V8h4v11.001zm6 0h-4V8h4v11.001zm2 0V8h3.893l.001 11.001H16z\"}}]})(props);\n};\nexport function BiCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14c-2.206 0-4 1.794-4 4s1.794 4 4 4a4.003 4.003 0 0 0 3.998-3.98H10V16h4v2.039h.004A4.002 4.002 0 0 0 18 22c2.206 0 4-1.794 4-4s-1.794-4-4-4h-2v-4h2c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4v2h-4V5.98h-.002A4.003 4.003 0 0 0 6 2C3.794 2 2 3.794 2 6s1.794 4 4 4h2v4H6zm2 4c0 1.122-.879 2-2 2s-2-.878-2-2 .879-2 2-2h2v2zm10-2c1.121 0 2 .878 2 2s-.879 2-2 2-2-.878-2-2v-2h2zM16 6c0-1.122.879-2 2-2s2 .878 2 2-.879 2-2 2h-2V6zM6 8c-1.121 0-2-.878-2-2s.879-2 2-2 2 .878 2 2v2H6zm4 2h4v4h-4v-4z\"}}]})(props);\n};\nexport function BiCommentAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14h2v-3h3V9h-3V6h-2v3H8v2h3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiCommentCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17.207 8.207-1.414-1.414L11 11.586 8.707 9.293l-1.414 1.414L11 14.414z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiCommentDetail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v2H7zm0 4h7v2H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiCommentDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"10\",\"r\":\"2\"}}]})(props);\n};\nexport function BiCommentEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.771 9.123-1.399-1.398-3.869 3.864v1.398h1.398zM14.098 6l1.398 1.398-1.067 1.067-1.398-1.398z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiCommentError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v5h-2zm0 6h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiCommentMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9h8v2H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiCommentX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.707 13.707 12 11.414l2.293 2.293 1.414-1.414L13.414 10l2.293-2.293-1.414-1.414L12 8.586 9.707 6.293 8.293 7.707 10.586 10l-2.293 2.293z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v18l5.333-4H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14H6.667L4 18V4h16v12z\"}}]})(props);\n};\nexport function BiCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 16 5.991-2L16 8l-6 2z\"}}]})(props);\n};\nexport function BiConfused (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"10.493\",\"r\":\"1.493\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.124 16.992-.248-1.984 8-1 .248 1.984z\"}}]})(props);\n};\nexport function BiConversation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 14h.5c.827 0 1.5-.673 1.5-1.5v-9c0-.827-.673-1.5-1.5-1.5h-13C2.673 2 2 2.673 2 3.5V18l5.333-4H16zm-9.333-2L4 14V4h12v8H6.667z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 8H20v6.001c0 1.1-.893 1.993-1.99 1.999H8v.5c0 .827.673 1.5 1.5 1.5h7.167L22 22V9.5c0-.827-.673-1.5-1.5-1.5z\"}}]})(props);\n};\nexport function BiCookie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.598 11.064a1.006 1.006 0 0 0-.854-.172A2.938 2.938 0 0 1 20 11c-1.654 0-3-1.346-3.003-2.937.005-.034.016-.136.017-.17a.998.998 0 0 0-1.254-1.006A2.963 2.963 0 0 1 15 7c-1.654 0-3-1.346-3-3 0-.217.031-.444.099-.716a1 1 0 0 0-1.067-1.236A9.956 9.956 0 0 0 2 12c0 5.514 4.486 10 10 10s10-4.486 10-10c0-.049-.003-.097-.007-.16a1.004 1.004 0 0 0-.395-.776zM12 20c-4.411 0-8-3.589-8-8a7.962 7.962 0 0 1 6.006-7.75A5.006 5.006 0 0 0 15 9l.101-.001a5.007 5.007 0 0 0 4.837 4C19.444 16.941 16.073 20 12 20z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"12.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"15.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10.5\",\"cy\":\"16.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiCool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.683 14.828a4.055 4.055 0 0 1-1.272.858 4.002 4.002 0 0 1-4.875-1.45l-1.658 1.119a6.063 6.063 0 0 0 1.621 1.62 5.963 5.963 0 0 0 2.148.903 6.035 6.035 0 0 0 3.542-.35 6.048 6.048 0 0 0 1.907-1.284c.272-.271.52-.571.734-.889l-1.658-1.119a4.147 4.147 0 0 1-.489.592z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 2c2.953 0 5.531 1.613 6.918 4H5.082C6.469 5.613 9.047 4 12 4zm0 16c-4.411 0-8-3.589-8-8 0-.691.098-1.359.264-2H5v1a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2h2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-1h.736c.166.641.264 1.309.264 2 0 4.411-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiCopyAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H10c-1.103 0-2 .897-2 2v4H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2v-4h4c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM4 20V10h10l.002 10H4zm16-6h-4v-4c0-1.103-.897-2-2-2h-4V4h10v10z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h6v2H6zm0 4h6v2H6z\"}}]})(props);\n};\nexport function BiCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H10c-1.103 0-2 .897-2 2v4H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2v-4h4c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM4 20V10h10l.002 10H4zm16-6h-4v-4c0-1.103-.897-2-2-2h-4V4h10v10z\"}}]})(props);\n};\nexport function BiCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c5.421 0 10-4.579 10-10S17.421 2 12 2 2 6.579 2 12s4.579 10 10 10zm0-18c4.337 0 8 3.663 8 8s-3.663 8-8 8-8-3.663-8-8 3.663-8 8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c.901 0 2.581-.168 3.707-1.292l-1.414-1.416C13.85 14.735 12.992 15 12 15c-1.626 0-3-1.374-3-3s1.374-3 3-3c.993 0 1.851.265 2.293.707l1.414-1.414C14.582 7.168 12.901 7 12 7c-2.757 0-5 2.243-5 5s2.243 5 5 5z\"}}]})(props);\n};\nexport function BiCreditCardAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"13.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.5c0-.815.396-1.532 1-1.988A2.47 2.47 0 0 0 11.5 11a2.5 2.5 0 1 0 0 5 2.47 2.47 0 0 0 1.5-.512 2.486 2.486 0 0 1-1-1.988z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM4 18V6h16l.002 12H4z\"}}]})(props);\n};\nexport function BiCreditCardFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM4 18V6h16l.001 12H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 11h3a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5zM6 14h6v2.001H6zm7 0h5v2.001h-5z\"}}]})(props);\n};\nexport function BiCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM4 6h16v2H4V6zm0 12v-6h16.001l.001 6H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14h6v2H6z\"}}]})(props);\n};\nexport function BiCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7c0-1.103-.897-2-2-2H7V2H5v3H2v2h15v15h2v-3h3v-2h-3V7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 9v8c0 1.103.897 2 2 2h8v-2H7V9H5z\"}}]})(props);\n};\nexport function BiCrosshair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm1 17.931V17h-2v2.931A8.008 8.008 0 0 1 4.069 13H7v-2H4.069A8.008 8.008 0 0 1 11 4.069V7h2V4.069A8.007 8.007 0 0 1 19.931 11H17v2h2.931A8.008 8.008 0 0 1 13 19.931z\"}}]})(props);\n};\nexport function BiCrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.219 3.375 8 7.399 4.781 3.375A1.002 1.002 0 0 0 3 4v15c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V4a1.002 1.002 0 0 0-1.781-.625L16 7.399l-3.219-4.024c-.381-.474-1.181-.474-1.562 0zM5 19v-2h14.001v2H5zm10.219-9.375c.381.475 1.182.475 1.563 0L19 6.851 19.001 15H5V6.851l2.219 2.774c.381.475 1.182.475 1.563 0L12 5.601l3.219 4.024z\"}}]})(props);\n};\nexport function BiCubeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.895 3.553A1.001 1.001 0 0 0 17 3H7c-.379 0-.725.214-.895.553l-4 8a1 1 0 0 0 0 .895l4 8c.17.338.516.552.895.552h10c.379 0 .725-.214.895-.553l4-8a1 1 0 0 0 0-.895l-4-7.999zM19.382 11h-7.764l-3-6h7.764l3 6zM4.118 12 7 6.236 9.882 12 7 17.764 4.118 12zm12.264 7H8.618l3-6h7.764l-3 6z\"}}]})(props);\n};\nexport function BiCube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.406 6.086-9-4a1.001 1.001 0 0 0-.813 0l-9 4c-.02.009-.034.024-.054.035-.028.014-.058.023-.084.04-.022.015-.039.034-.06.05a.87.87 0 0 0-.19.194c-.02.028-.041.053-.059.081a1.119 1.119 0 0 0-.076.165c-.009.027-.023.052-.031.079A1.013 1.013 0 0 0 2 7v10c0 .396.232.753.594.914l9 4c.13.058.268.086.406.086a.997.997 0 0 0 .402-.096l.004.01 9-4A.999.999 0 0 0 22 17V7a.999.999 0 0 0-.594-.914zM12 4.095 18.538 7 12 9.905l-1.308-.581L5.463 7 12 4.095zM4 16.351V8.539l7 3.111v7.811l-7-3.11zm9 3.11V11.65l7-3.111v7.812l-7 3.11z\"}}]})(props);\n};\nexport function BiCuboid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.707 2.293A.996.996 0 0 0 16 2H8c-.414 0-.785.255-.934.641l-5 13a.999.999 0 0 0 .227 1.066l5 5A.996.996 0 0 0 8 22h8c.414 0 .785-.255.934-.641l5-13a.999.999 0 0 0-.227-1.066l-5-5zM18.585 7h-5.171l-3-3h5.172l2.999 3zM8.381 4.795l3.438 3.438-4.462 10.71-3.19-3.191L8.381 4.795zM15.313 20h-6.23l4.583-11h5.878l-4.231 11z\"}}]})(props);\n};\nexport function BiCurrentLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4.069V2h-2v2.069A8.01 8.01 0 0 0 4.069 11H2v2h2.069A8.008 8.008 0 0 0 11 19.931V22h2v-2.069A8.007 8.007 0 0 0 19.931 13H22v-2h-2.069A8.008 8.008 0 0 0 13 4.069zM12 18c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6z\"}}]})(props);\n};\nexport function BiCustomize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1zm1-6h4v4H5V5zm15-2h-6a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zm-1 6h-4V5h4v4zm-9 12a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6zm-5-6h4v4H5v-4zm13-1h-2v2h-2v2h2v2h2v-2h2v-2h-2z\"}}]})(props);\n};\nexport function BiCut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 6.5C10 4.57 8.43 3 6.5 3S3 4.57 3 6.5 4.57 10 6.5 10a3.45 3.45 0 0 0 1.613-.413l2.357 2.528-2.318 2.318A3.46 3.46 0 0 0 6.5 14C4.57 14 3 15.57 3 17.5S4.57 21 6.5 21s3.5-1.57 3.5-3.5c0-.601-.166-1.158-.434-1.652l2.269-2.268L17 19.121a3 3 0 0 0 2.121.879H22L9.35 8.518c.406-.572.65-1.265.65-2.018zM6.5 8C5.673 8 5 7.327 5 6.5S5.673 5 6.5 5 8 5.673 8 6.5 7.327 8 6.5 8zm0 11c-.827 0-1.5-.673-1.5-1.5S5.673 16 6.5 16s1.5.673 1.5 1.5S7.327 19 6.5 19z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17 4.879-3.707 4.414 1.414 1.414L22 4h-2.879A3 3 0 0 0 17 4.879z\"}}]})(props);\n};\nexport function BiCycling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15.414V20h2v-4.586c0-.526-.214-1.042-.586-1.414l-2-2L13 9.414l2 2c.372.372.888.586 1.414.586H20v-2h-3.586l-3.707-3.707a.999.999 0 0 0-1.414 0L8 9.586c-.378.378-.586.88-.586 1.414s.208 1.036.586 1.414l3 3z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"5\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 14c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4zm0 6c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2zM6 22c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2z\"}}]})(props);\n};\nexport function BiCylinder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c5.131 0 9-1.935 9-4.5V7h-.053c.033-.164.053-.33.053-.5C21 3.935 17.131 2 12 2 7.209 2 3.52 3.688 3.053 6H3v11.5c0 2.565 3.869 4.5 9 4.5zm0-2c-4.273 0-7-1.48-7-2.5V9.394C6.623 10.387 9.111 11 12 11s5.377-.613 7-1.606V17.5c0 1.02-2.727 2.5-7 2.5zm0-16c4.273 0 7 1.48 7 2.5S16.273 9 12 9 5 7.52 5 6.5 7.727 4 12 4z\"}}]})(props);\n};\nexport function BiData (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17V7c0-2.168-3.663-4-8-4S4 4.832 4 7v10c0 2.168 3.663 4 8 4s8-1.832 8-4zM12 5c3.691 0 5.931 1.507 6 1.994C17.931 7.493 15.691 9 12 9S6.069 7.493 6 7.006C6.069 6.507 8.309 5 12 5zM6 9.607C7.479 10.454 9.637 11 12 11s4.521-.546 6-1.393v2.387c-.069.499-2.309 2.006-6 2.006s-5.931-1.507-6-2V9.607zM6 17v-2.393C7.479 15.454 9.637 16 12 16s4.521-.546 6-1.393v2.387c-.069.499-2.309 2.006-6 2.006s-5.931-1.507-6-2z\"}}]})(props);\n};\nexport function BiDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h7v2H8v2h8v-2h-3v-2h7c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 14V5h16l.002 9H4z\"}}]})(props);\n};\nexport function BiDetail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 19V5h16l.002 14H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7h12v2H6zm0 4h12v2H6zm0 4h6v2H6z\"}}]})(props);\n};\nexport function BiDevices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H7c-1.103 0-2 .897-2 2v2H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h6c1.103 0 2-.897 2-2h8c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM9.997 19H4V9h6l-.003 10zm10-2H12V9c0-1.103-.897-2-2-2H7V5h13l-.003 12z\"}}]})(props);\n};\nexport function BiDialpadAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function BiDialpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3h4v3h-4zm0 5h4v3h-4zm0 5h4v3h-4zm6-10h4v3h-4zm0 5h4v3h-4zm0 5h4v3h-4zM4 3h4v3H4zm0 5h4v3H4zm0 5h4v3H4zm6 5h4v3h-4z\"}}]})(props);\n};\nexport function BiDiamond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.813 3.838A2 2 0 0 0 16.187 3H7.813c-.644 0-1.252.313-1.667.899l-4 6.581a.999.999 0 0 0 .111 1.188l9 10a.995.995 0 0 0 1.486.001l9-10a.997.997 0 0 0 .111-1.188l-4.041-6.643zM12 19.505 5.245 12h13.509L12 19.505zM4.777 10l3.036-5 8.332-.062L19.222 10H4.777z\"}}]})(props);\n};\nexport function BiDice1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiDice2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.5\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"12\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiDice3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"16\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiDice4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"16\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"8\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiDice5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"16\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"8\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiDice6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"16\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"16\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"8\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiDirections (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.781 13.875-2-2.5A1 1 0 0 0 19 11h-6V9h6c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5a1 1 0 0 0-.781.375l-2 2.5a1.001 1.001 0 0 0 0 1.25l2 2.5A1 1 0 0 0 5 9h6v2H5c-1.103 0-2 .897-2 2v3c0 1.103.897 2 2 2h6v4h2v-4h6a1 1 0 0 0 .781-.375l2-2.5a1.001 1.001 0 0 0 0-1.25zM4.281 5.5 5.48 4H19l.002 3H5.48L4.281 5.5zM18.52 16H5v-3h13.52l1.2 1.5-1.2 1.5z\"}}]})(props);\n};\nexport function BiDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8a4 4 0 1 0 4 4 4 4 0 0 0-4-4zm0 6a2 2 0 1 1 2-2 2 2 0 0 1-2 2z\"}}]})(props);\n};\nexport function BiDish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15c0-4.625-3.507-8.441-8-8.941V4h-2v2.059c-4.493.5-8 4.316-8 8.941v2h18v-2zM5 15c0-3.859 3.141-7 7-7s7 3.141 7 7H5zm-3 3h20v2H2z\"}}]})(props);\n};\nexport function BiDislike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H6.693A2.01 2.01 0 0 0 4.82 4.298l-2.757 7.351A1 1 0 0 0 2 12v2c0 1.103.897 2 2 2h5.612L8.49 19.367a2.004 2.004 0 0 0 .274 1.802c.376.52.982.831 1.624.831H12c.297 0 .578-.132.769-.36l4.7-5.64H20c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zm-8.469 17h-1.145l1.562-4.684A1 1 0 0 0 11 14H4v-1.819L6.693 5H16v9.638L11.531 20zM18 14V5h2l.001 9H18z\"}}]})(props);\n};\nexport function BiDizzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.707 12.293 9.414 11l1.293-1.293-1.414-1.414L8 9.586 6.707 8.293 5.293 9.707 6.586 11l-1.293 1.293 1.414 1.414L8 12.414l1.293 1.293zm6.586-4L16 9.586l-1.293-1.293-1.414 1.414L14.586 11l-1.293 1.293 1.414 1.414L16 12.414l1.293 1.293 1.414-1.414L17.414 11l1.293-1.293zM10 16h4v2h-4z\"}}]})(props);\n};\nexport function BiDna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.794 11.09c.332-.263.648-.542.947-.84l.136-.142c.283-.293.552-.598.801-.919l.062-.075c.255-.335.486-.688.702-1.049l.128-.22c.205-.364.395-.737.559-1.123.02-.047.035-.095.055-.142.147-.361.274-.731.383-1.109.021-.07.044-.14.063-.211.107-.402.189-.813.251-1.229.013-.087.021-.175.032-.263.051-.432.087-.869.087-1.311V2h-2v.457c0 .184-.031.361-.042.543H6.022C6.012 2.819 6 2.64 6 2.457V2H4v.457c0 4.876 3.269 9.218 7.952 10.569l.028.009c2.881.823 5.056 3.146 5.769 5.965H6.251l.799-2h7.607a7.416 7.416 0 0 0-2.063-2h-4c.445-.424.956-.774 1.491-1.09a9.922 9.922 0 0 1-2.08-1.014C5.55 14.812 4 17.779 4 21.015V23h2v-1.985L6.001 21h11.998l.001.015V23h2v-1.985c0-3.83-2.159-7.303-5.443-9.07a11.1 11.1 0 0 0 1.072-.729c.055-.042.11-.082.165-.126zm-1.19-1.604a8.945 8.945 0 0 1-2.325 1.348c-.092.036-.185.068-.278.102A8.95 8.95 0 0 1 8.836 9h6.292c-.171.161-.332.333-.517.48l-.007.006zM17.619 5c-.005.016-.007.033-.012.049l-.044.151a9.089 9.089 0 0 1-.513 1.252c-.096.19-.213.365-.321.548h-9.48a9.066 9.066 0 0 1-.871-2h11.241z\"}}]})(props);\n};\nexport function BiDockBottom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 2v9H5V5zM5 19v-3h14v3z\"}}]})(props);\n};\nexport function BiDockLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM5 5h3v14H5zm5 14V5h9v14z\"}}]})(props);\n};\nexport function BiDockRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM5 5h9v14H5zm11 14V5h3v14z\"}}]})(props);\n};\nexport function BiDockTop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 2v3H5V5zM5 19v-9h14v9z\"}}]})(props);\n};\nexport function BiDollarCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11c-2 0-2-.63-2-1s.7-1 2-1 1.39.64 1.4 1h2A3 3 0 0 0 13 7.12V6h-2v1.09C9 7.42 8 8.71 8 10c0 1.12.52 3 4 3 2 0 2 .68 2 1s-.62 1-2 1c-1.84 0-2-.86-2-1H8c0 .92.66 2.55 3 2.92V18h2v-1.08c2-.34 3-1.63 3-2.92 0-1.12-.52-3-4-3z\"}}]})(props);\n};\nexport function BiDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.999 8.5h2c0-2.837-2.755-4.131-5-4.429V2h-2v2.071c-2.245.298-5 1.592-5 4.429 0 2.706 2.666 4.113 5 4.43v4.97c-1.448-.251-3-1.024-3-2.4h-2c0 2.589 2.425 4.119 5 4.436V22h2v-2.07c2.245-.298 5-1.593 5-4.43s-2.755-4.131-5-4.429V6.1c1.33.239 3 .941 3 2.4zm-8 0c0-1.459 1.67-2.161 3-2.4v4.799c-1.371-.253-3-1.002-3-2.399zm8 7c0 1.459-1.67 2.161-3 2.4v-4.8c1.33.239 3 .941 3 2.4z\"}}]})(props);\n};\nexport function BiDonateBlood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21h9.62a3.995 3.995 0 0 0 3.037-1.397l5.102-5.952a1 1 0 0 0-.442-1.6l-1.968-.656a3.043 3.043 0 0 0-2.823.503l-3.185 2.547-.617-1.235A3.98 3.98 0 0 0 9.146 11H4c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2zm0-8h5.146c.763 0 1.448.423 1.789 1.105l.447.895H7v2h6.014a.996.996 0 0 0 .442-.11l.003-.001.004-.002h.003l.002-.001h.004l.001-.001c.011.003.003-.001.003-.001.012 0 .002-.001.002-.001h.001l.002-.001.003-.001.002-.001.002-.001.003-.001.002-.001.002-.001.003-.002.002-.001.002-.001.003-.001.002-.001h.001l.002-.001h.001l.002-.001.002-.001c.011-.001.003-.001.003-.001l.002-.001a.915.915 0 0 0 .11-.078l4.146-3.317c.261-.208.623-.273.94-.167l.557.186-4.133 4.823a2.029 2.029 0 0 1-1.52.688H4v-6zm9.761-10.674C13.3 2.832 11 5.457 11 7.5c0 1.93 1.57 3.5 3.5 3.5S18 9.43 18 7.5c0-2.043-2.3-4.668-2.761-5.174-.379-.416-1.099-.416-1.478 0zM16 7.5c0 .827-.673 1.5-1.5 1.5S13 8.327 13 7.5c0-.708.738-1.934 1.5-2.934.762 1 1.5 2.226 1.5 2.934z\"}}]})(props);\n};\nexport function BiDonateHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21h9.62a3.995 3.995 0 0 0 3.037-1.397l5.102-5.952a1 1 0 0 0-.442-1.6l-1.968-.656a3.043 3.043 0 0 0-2.823.503l-3.185 2.547-.617-1.235A3.98 3.98 0 0 0 9.146 11H4c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2zm0-8h5.146c.763 0 1.448.423 1.789 1.105l.447.895H7v2h6.014a.996.996 0 0 0 .442-.11l.003-.001.004-.002h.003l.002-.001h.004l.001-.001c.009.003.003-.001.003-.001.01 0 .002-.001.002-.001h.001l.002-.001.003-.001.002-.001.002-.001.003-.001.002-.001c.003 0 .001-.001.002-.001l.003-.002.002-.001.002-.001.003-.001.002-.001h.001l.002-.001h.001l.002-.001.002-.001c.009-.001.003-.001.003-.001l.002-.001a.915.915 0 0 0 .11-.078l4.146-3.317c.262-.208.623-.273.94-.167l.557.186-4.133 4.823a2.029 2.029 0 0 1-1.52.688H4v-6zM16 2h-.017c-.163.002-1.006.039-1.983.705-.951-.648-1.774-.7-1.968-.704L12.002 2h-.004c-.801 0-1.555.313-2.119.878C9.313 3.445 9 4.198 9 5s.313 1.555.861 2.104l3.414 3.586a1.006 1.006 0 0 0 1.45-.001l3.396-3.568C18.688 6.555 19 5.802 19 5s-.313-1.555-.878-2.121A2.978 2.978 0 0 0 16.002 2H16zm1 3c0 .267-.104.518-.311.725L14 8.55l-2.707-2.843C11.104 5.518 11 5.267 11 5s.104-.518.294-.708A.977.977 0 0 1 11.979 4c.025.001.502.032 1.067.485.081.065.163.139.247.222l.707.707.707-.707c.084-.083.166-.157.247-.222.529-.425.976-.478 1.052-.484a.987.987 0 0 1 .701.292c.189.189.293.44.293.707z\"}}]})(props);\n};\nexport function BiDoorOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.385 21.788a.997.997 0 0 0 .857.182l8-2A.999.999 0 0 0 20 19V5a1 1 0 0 0-.758-.97l-8-2A1.003 1.003 0 0 0 10 3v1H6a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h4v1c0 .308.142.599.385.788zM12 4.281l6 1.5v12.438l-6 1.5V4.281zM7 18V6h3v12H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.242 13.159c.446-.112.758-.512.758-.971v-.377a1 1 0 1 0-2 .001v.377a1 1 0 0 0 1.242.97z\"}}]})(props);\n};\nexport function BiDotsHorizontalRounded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function BiDotsHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10h4v4h-4zm6 0h4v4h-4zM4 10h4v4H4z\"}}]})(props);\n};\nexport function BiDotsVerticalRounded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"}}]})(props);\n};\nexport function BiDotsVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 10h4v4h-4zm0-6h4v4h-4zm0 12h4v4h-4z\"}}]})(props);\n};\nexport function BiDoughnutChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm7.931 9h-3.032A5.013 5.013 0 0 0 13 7.102V4.069A8.008 8.008 0 0 1 19.931 11zM12 9c1.654 0 3 1.346 3 3s-1.346 3-3 3-3-1.346-3-3 1.346-3 3-3zm0 11c-4.411 0-8-3.589-8-8 0-4.072 3.061-7.436 7-7.931v3.032A5.009 5.009 0 0 0 7 12c0 2.757 2.243 5 5 5a5.007 5.007 0 0 0 4.898-4h3.032c-.494 3.939-3.858 7-7.93 7z\"}}]})(props);\n};\nexport function BiDownArrowAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18.707 12.707-1.414-1.414L13 15.586V6h-2v9.586l-4.293-4.293-1.414 1.414L12 19.414z\"}}]})(props);\n};\nexport function BiDownArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1.993C6.486 1.994 2 6.48 2 11.994c0 5.513 4.486 9.999 10 10 5.514 0 10-4.486 10-10s-4.485-10-10-10.001zm0 18.001c-4.411-.001-8-3.59-8-8 0-4.411 3.589-8 8-8.001 4.411.001 8 3.59 8 8.001s-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8h-2v4H7.991l4.005 4.005L16 12h-3z\"}}]})(props);\n};\nexport function BiDownArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.886 5.536A1.002 1.002 0 0 0 21 5H3a1.002 1.002 0 0 0-.822 1.569l9 13a.998.998 0 0 0 1.644 0l9-13a.998.998 0 0 0 .064-1.033zM12 17.243 4.908 7h14.184L12 17.243z\"}}]})(props);\n};\nexport function BiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 16 4-5h-3V4h-2v7H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18H4v-7H2v7c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2v-7h-2v7z\"}}]})(props);\n};\nexport function BiDownvote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.901 10.566A1.001 1.001 0 0 0 20 10h-4V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v7H4a1.001 1.001 0 0 0-.781 1.625l8 10a1 1 0 0 0 1.562 0l8-10c.24-.301.286-.712.12-1.059zM12 19.399 6.081 12H10V4h4v8h3.919L12 19.399z\"}}]})(props);\n};\nexport function BiDrink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.832 4.555A1 1 0 0 0 20 3H4a1 1 0 0 0-.832 1.554L11 16.303V20H8v2h8v-2h-3v-3.697l7.832-11.748zM12 14.197 8.535 9h6.93L12 14.197zM18.132 5l-1.333 2H7.201L5.868 5h12.264z\"}}]})(props);\n};\nexport function BiDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c4.636 0 8-3.468 8-8.246C20 7.522 12.882 2.4 12.579 2.185a1 1 0 0 0-1.156-.001C11.12 2.397 4 7.503 4 13.75 4 18.53 7.364 22 12 22zm-.001-17.74C13.604 5.55 18 9.474 18 13.754 18 17.432 15.532 20 12 20s-6-2.57-6-6.25c0-4.29 4.394-8.203 5.999-9.49z\"}}]})(props);\n};\nexport function BiDumbbell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 5v14h3v-6h6v6h3V5h-3v6H9V5zM3 15a1 1 0 0 0 1 1h1V8H4a1 1 0 0 0-1 1v2H2v2h1v2zm18-6a1 1 0 0 0-1-1h-1v8h1a1 1 0 0 0 1-1v-2h1v-2h-1V9z\"}}]})(props);\n};\nexport function BiDuplicate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 10H9v3H6v2h3v3h2v-3h3v-2h-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 22h12c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2zM4 8h12l.002 12H4V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8v2h12v12h2V4c0-1.103-.897-2-2-2z\"}}]})(props);\n};\nexport function BiEditAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.045 7.401c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.378-.378-.88-.586-1.414-.586s-1.036.208-1.413.585L4 13.585V18h4.413L19.045 7.401zm-3-3 1.587 1.585-1.59 1.584-1.586-1.585 1.589-1.584zM6 16v-1.585l7.04-7.018 1.586 1.586L7.587 16H6zm-2 4h16v2H4z\"}}]})(props);\n};\nexport function BiEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 17.013 4.413-.015 9.632-9.54c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.756-.756-2.075-.752-2.825-.003L7 12.583v4.43zM18.045 4.458l1.589 1.583-1.597 1.582-1.586-1.585 1.594-1.58zM9 13.417l6.03-5.973 1.586 1.586-6.029 5.971L9 15.006v-1.589z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14c1.103 0 2-.897 2-2v-8.668l-2 2V19H8.158c-.026 0-.053.01-.079.01-.033 0-.066-.009-.1-.01H5V5h6.847l2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2z\"}}]})(props);\n};\nexport function BiEnvelopeOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.555 8.168-9-6a1 1 0 0 0-1.109 0l-9 6A1 1 0 0 0 2 9v11c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V9c0-.334-.167-.646-.445-.832zM12 4.202 19.197 9 12 13.798 4.803 9 12 4.202zM4 20v-9.131l7.445 4.963a1 1 0 0 0 1.11 0L20 10.869 19.997 20H4z\"}}]})(props);\n};\nexport function BiEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm0 2v.511l-8 6.223-8-6.222V6h16zM4 18V9.044l7.386 5.745a.994.994 0 0 0 1.228 0L20 9.044 20.002 18H4z\"}}]})(props);\n};\nexport function BiEqualizer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2v6h-2zm4-3h2v12h-2zM7 4h2v16H7zm12 7h2v2h-2zM3 10h2v4H3z\"}}]})(props);\n};\nexport function BiEraser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.586 15.408 4.299 4.299a.996.996 0 0 0 .707.293h12.001v-2h-6.958l7.222-7.222c.78-.779.78-2.049 0-2.828L14.906 3a2.003 2.003 0 0 0-2.828 0l-4.75 4.749-4.754 4.843a2.007 2.007 0 0 0 .012 2.816zM13.492 4.414l4.95 4.95-2.586 2.586L10.906 7l2.586-2.586zM8.749 9.156l.743-.742 4.95 4.95-4.557 4.557a1.026 1.026 0 0 0-.069.079h-1.81l-4.005-4.007 4.748-4.837z\"}}]})(props);\n};\nexport function BiErrorAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v7h-2zm0 8h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21.707 7.293-5-5A.996.996 0 0 0 16 2H8a.996.996 0 0 0-.707.293l-5 5A.996.996 0 0 0 2 8v8c0 .266.105.52.293.707l5 5A.996.996 0 0 0 8 22h8c.266 0 .52-.105.707-.293l5-5A.996.996 0 0 0 22 16V8a.996.996 0 0 0-.293-.707zM20 15.586 15.586 20H8.414L4 15.586V8.414L8.414 4h7.172L20 8.414v7.172z\"}}]})(props);\n};\nexport function BiErrorCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.953 2C6.465 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.493 2 11.953 2zM12 20c-4.411 0-8-3.589-8-8s3.567-8 7.953-8C16.391 4 20 7.589 20 12s-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v7h-2zm0 8h2v2h-2z\"}}]})(props);\n};\nexport function BiError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.001 10h2v5h-2zM11 16h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.768 4.2C13.42 3.545 12.742 3.138 12 3.138s-1.42.407-1.768 1.063L2.894 18.064a1.986 1.986 0 0 0 .054 1.968A1.984 1.984 0 0 0 4.661 21h14.678c.708 0 1.349-.362 1.714-.968a1.989 1.989 0 0 0 .054-1.968L13.768 4.2zM4.661 19 12 5.137 19.344 19H4.661z\"}}]})(props);\n};\nexport function BiEuro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.464 6c1.43 0 2.779.613 3.799 1.726l1.475-1.352C17.334 4.843 15.461 4 13.464 4c-1.998 0-3.87.843-5.272 2.375A8.034 8.034 0 0 0 6.589 9H4v2h2.114c-.038.33-.064.663-.064 1s.026.67.064 1H4v2h2.589c.362.97.901 1.861 1.603 2.626C9.594 19.157 11.466 20 13.464 20c1.997 0 3.87-.843 5.273-2.374l-1.475-1.352C16.243 17.387 14.894 18 13.464 18s-2.778-.612-3.798-1.726A5.937 5.937 0 0 1 8.801 15H13v-2H8.139c-.05-.328-.089-.66-.089-1s.039-.672.089-1H13V9H8.801c.24-.457.516-.893.865-1.274C10.686 6.613 12.034 6 13.464 6z\"}}]})(props);\n};\nexport function BiExclude (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8h-3V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h3v3c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2zm-4 7H9V9h6v6z\"}}]})(props);\n};\nexport function BiExitFullscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 4H8v4H4v2h6zM8 20h2v-6H4v2h4zm12-6h-6v6h2v-4h4zm0-6h-4V4h-2v6h6z\"}}]})(props);\n};\nexport function BiExit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.002 3h-14c-1.103 0-2 .897-2 2v4h2V5h14v14h-14v-4h-2v4c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.898-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 16 5-4-5-4v3.001H3v2h8z\"}}]})(props);\n};\nexport function BiExpandAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H3v9h9v-2H5zm7-7h7v7h2V3h-9z\"}}]})(props);\n};\nexport function BiExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21 15.344-2.121 2.121-3.172-3.172-1.414 1.414 3.172 3.172L15.344 21H21zM3 8.656l2.121-2.121 3.172 3.172 1.414-1.414-3.172-3.172L8.656 3H3zM21 3h-5.656l2.121 2.121-3.172 3.172 1.414 1.414 3.172-3.172L21 8.656zM3 21h5.656l-2.121-2.121 3.172-3.172-1.414-1.414-3.172 3.172L3 15.344z\"}}]})(props);\n};\nexport function BiExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 16h2V7h3l-4-5-4 5h3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 22h14c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-4v2h4v9H5v-9h4V9H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2z\"}}]})(props);\n};\nexport function BiExtension (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10V7c0-1.103-.897-2-2-2h-3c0-1.654-1.346-3-3-3S8 3.346 8 5H5c-1.103 0-2 .897-2 2v3.881l.659.239C4.461 11.41 5 12.166 5 13s-.539 1.59-1.341 1.88L3 15.119V19c0 1.103.897 2 2 2h3.881l.239-.659C9.41 19.539 10.166 19 11 19s1.59.539 1.88 1.341l.239.659H17c1.103 0 2-.897 2-2v-3c1.654 0 3-1.346 3-3s-1.346-3-3-3zm0 4h-2l-.003 5h-2.545c-.711-1.22-2.022-2-3.452-2s-2.741.78-3.452 2H5v-2.548C6.22 15.741 7 14.43 7 13s-.78-2.741-2-3.452V7h5V5a1 1 0 0 1 2 0v2h5v5h2a1 1 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiFace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 2c3.213 0 5.982 1.908 7.254 4.648a7.8 7.8 0 0 1-.895-.498c-.409-.258-.873-.551-1.46-.772-.669-.255-1.4-.378-2.234-.378s-1.565.123-2.234.377c-.587.223-1.051.516-1.472.781-.378.237-.703.443-1.103.594C9.41 8.921 8.926 9 8.33 9c-.595 0-1.079-.079-1.524-.248-.4-.151-.728-.358-1.106-.598-.161-.101-.34-.208-.52-.313C6.587 5.542 9.113 4 12 4zm0 16c-4.411 0-8-3.589-8-8 0-.81.123-1.59.348-2.327.094.058.185.11.283.173.411.26.876.554 1.466.776.669.255 1.399.378 2.233.378.833 0 1.564-.123 2.235-.377.587-.223 1.051-.516 1.472-.781.378-.237.703-.443 1.103-.595.445-.168.929-.247 1.525-.247s1.08.079 1.525.248c.399.15.725.356 1.114.602.409.258.873.551 1.46.773.363.138.748.229 1.153.291.049.357.083.717.083 1.086 0 4.411-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiFastForwardCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 16 5-4-5-4zm-6 0 5-4-5-4z\"}}]})(props);\n};\nexport function BiFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19 12-7-5v10zM5 7v10l7-5z\"}}]})(props);\n};\nexport function BiFemaleSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C8.691 2 6 4.691 6 8c0 2.967 2.167 5.432 5 5.91V17H8v2h3v2.988h2V19h3v-2h-3v-3.09c2.833-.479 5-2.943 5-5.91 0-3.309-2.691-6-6-6zm0 10c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4z\"}}]})(props);\n};\nexport function BiFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.948 7.684A.997.997 0 0 0 14 7h-4a.998.998 0 0 0-.948.684l-2 6 1.775.593L8 18h2v4h4v-4h2l-.827-3.724 1.775-.593-2-5.999z\"}}]})(props);\n};\nexport function BiFileBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.937 8.68c-.011-.032-.02-.063-.033-.094a.997.997 0 0 0-.196-.293l-6-6a.997.997 0 0 0-.293-.196c-.03-.014-.062-.022-.094-.033a.991.991 0 0 0-.259-.051C13.04 2.011 13.021 2 13 2H6c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V9c0-.021-.011-.04-.013-.062a.99.99 0 0 0-.05-.258zM16.586 8H14V5.414L16.586 8zM6 20V4h6v5a1 1 0 0 0 1 1h5l.002 10H6z\"}}]})(props);\n};\nexport function BiFileFind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.707 2.293A.996.996 0 0 0 13 2H6c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V9a.996.996 0 0 0-.293-.707l-6-6zM6 4h6.586L18 9.414l.002 9.174-2.568-2.568c.35-.595.566-1.281.566-2.02 0-2.206-1.794-4-4-4s-4 1.794-4 4 1.794 4 4 4c.739 0 1.425-.216 2.02-.566L16.586 20H6V4zm6 12c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2z\"}}]})(props);\n};\nexport function BiFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.903 8.586a.997.997 0 0 0-.196-.293l-6-6a.997.997 0 0 0-.293-.196c-.03-.014-.062-.022-.094-.033a.991.991 0 0 0-.259-.051C13.04 2.011 13.021 2 13 2H6c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V9c0-.021-.011-.04-.013-.062a.952.952 0 0 0-.051-.259c-.01-.032-.019-.063-.033-.093zM16.586 8H14V5.414L16.586 8zM6 20V4h6v5a1 1 0 0 0 1 1h5l.002 10H6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12h8v2H8zm0 4h8v2H8zm0-8h2v2H8z\"}}]})(props);\n};\nexport function BiFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM9 11V5h6v6H9zm6 2v6H9v-6h6zM5 5h2v2H5V5zm0 4h2v2H5V9zm0 4h2v2H5v-2zm0 4h2v2H5v-2zm14.002 2H17v-2h2.002v2zm-.001-4H17v-2h2.001v2zm0-4H17V9h2.001v2zM17 7V5h2v2h-2z\"}}]})(props);\n};\nexport function BiFilterAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 3H5a1 1 0 0 0-1 1v2.59c0 .523.213 1.037.583 1.407L10 13.414V21a1.001 1.001 0 0 0 1.447.895l4-2c.339-.17.553-.516.553-.895v-5.586l5.417-5.417c.37-.37.583-.884.583-1.407V4a1 1 0 0 0-1-1zm-6.707 9.293A.996.996 0 0 0 14 13v5.382l-2 1V13a.996.996 0 0 0-.293-.707L6 6.59V5h14.001l.002 1.583-5.71 5.71z\"}}]})(props);\n};\nexport function BiFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11h10v2H7zM4 7h16v2H4zm6 8h4v2h-4z\"}}]})(props);\n};\nexport function BiFingerprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.962 17.674C7 19.331 7 20.567 7 22h2c0-1.521 0-3.244-1.343-5.389l-1.695 1.063zM16.504 3.387C13.977 1.91 7.55.926 4.281 4.305c-3.368 3.481-2.249 9.072.001 11.392.118.122.244.229.369.333.072.061.146.116.205.184l1.494-1.33a3.918 3.918 0 0 0-.419-.391c-.072-.06-.146-.119-.214-.188-1.66-1.711-2.506-6.017.001-8.608 2.525-2.611 8.068-1.579 9.777-.581 2.691 1.569 4.097 4.308 4.109 4.333l1.789-.895c-.065-.135-1.668-3.289-4.889-5.167z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.34 12.822c-1.03-1.26-1.787-2.317-1.392-3.506.263-.785.813-1.325 1.637-1.604 1.224-.41 2.92-.16 4.04.601l1.123-1.654c-1.648-1.12-3.982-1.457-5.804-.841-1.408.476-2.435 1.495-2.892 2.866-.776 2.328.799 4.254 1.74 5.405.149.183.29.354.409.512C11 18.323 11 20.109 11 22h2c0-2.036 0-4.345-3.201-8.601a19.71 19.71 0 0 0-.459-.577zm5.791-3.344c1.835 1.764 3.034 4.447 3.889 8.701l1.961-.395c-.939-4.678-2.316-7.685-4.463-9.748l-1.387 1.442z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11.556 9.169-1.115 1.66c.027.019 2.711 1.88 3.801 5.724l1.924-.545c-1.299-4.582-4.476-6.749-4.61-6.839zm3.132 9.29c.21 1.168.312 2.326.312 3.541h2c0-1.335-.112-2.608-.343-3.895l-1.969.354z\"}}]})(props);\n};\nexport function BiFirstAid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-3V4c0-1.103-.897-2-2-2H9c-1.103 0-2 .897-2 2v2H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2zM9 4h6v2H9V4zM4 18V8h16l.001 10H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 9h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function BiFirstPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.293 17.707 1.414-1.414L13.414 12l4.293-4.293-1.414-1.414L10.586 12zM7 6h2v12H7z\"}}]})(props);\n};\nexport function BiFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4H6V2H4v18H3v2h4v-2H6v-5h13a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1zm-1 9H6V6h12v7z\"}}]})(props);\n};\nexport function BiFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-8.586L9.707 3.293A.996.996 0 0 0 9 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2zM4 19V7h16l.002 12H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.874 12h8v2h-8z\"}}]})(props);\n};\nexport function BiFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.165 19.551c.186.28.499.449.835.449h15c.4 0 .762-.238.919-.606l3-7A.998.998 0 0 0 21 11h-1V7c0-1.103-.897-2-2-2h-6.1L9.616 3.213A.997.997 0 0 0 9 3H4c-1.103 0-2 .897-2 2v14h.007a1 1 0 0 0 .158.551zM17.341 18H4.517l2.143-5h12.824l-2.143 5zM18 7v4H6c-.4 0-.762.238-.919.606L4 14.129V7h14z\"}}]})(props);\n};\nexport function BiFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 9h-2v3H8v2h3v3h2v-3h3v-2h-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-8.586L9.707 3.293A.996.996 0 0 0 9 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2zM4 19V7h16l.002 12H4z\"}}]})(props);\n};\nexport function BiFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5h-8.586L9.707 3.293A.997.997 0 0 0 9 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2zM4 19V7h16l.002 12H4z\"}}]})(props);\n};\nexport function BiFontColor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18h14v3H5zm7.5-14h-1c-.401 0-.764.24-.921.609L5.745 16h2.173l1.273-3h5.604l1.268 3h2.171L13.421 4.61A1 1 0 0 0 12.5 4zm-2.46 7 1.959-4.616L13.95 11h-3.91z\"}}]})(props);\n};\nexport function BiFontFamily (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 4h7v2h-7zm1 4h6v2h-6zm2 4h4v2h-4zM9.307 4l-6 16h2.137l1.875-5h6.363l1.875 5h2.137l-6-16H9.307zm-1.239 9L10.5 6.515 12.932 13H8.068z\"}}]})(props);\n};\nexport function BiFontSize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22 6-3-4-3 4h2v4h-2l3 4 3-4h-2V6zM9.307 4l-6 16h2.137l1.875-5h6.363l1.875 5h2.137l-6-16H9.307zm-1.239 9L10.5 6.515 12.932 13H8.068z\"}}]})(props);\n};\nexport function BiFont (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.307 4-6 16h2.137l1.875-5h6.363l1.875 5h2.137l-6-16h-2.387zm-1.239 9L12.5 6.515 14.932 13h-4.864z\"}}]})(props);\n};\nexport function BiFoodMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 2h2v20H3zm7 4h7v2h-7zm0 4h7v2h-7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H6v20h13c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 18H8V4h11v16z\"}}]})(props);\n};\nexport function BiFoodTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zm-1 16H5V5h14v14z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"}}]})(props);\n};\nexport function BiFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.071 4.929a9.936 9.936 0 0 0-7.07-2.938 9.943 9.943 0 0 0-7.072 2.938c-3.899 3.898-3.899 10.243 0 14.142a9.94 9.94 0 0 0 7.073 2.938 9.936 9.936 0 0 0 7.07-2.937c3.899-3.898 3.899-10.243-.001-14.143zM12.181 4h-.359c.061-.001.119-.009.18-.009s.118.008.179.009zm6.062 13H16l-1.258 2.516a7.956 7.956 0 0 1-2.741.493 7.96 7.96 0 0 1-2.746-.494L8 17.01H5.765a7.96 7.96 0 0 1-1.623-3.532L6 11 4.784 8.567a7.936 7.936 0 0 1 1.559-2.224 7.994 7.994 0 0 1 3.22-1.969L12 6l2.438-1.625a8.01 8.01 0 0 1 3.22 1.968 7.94 7.94 0 0 1 1.558 2.221L18 11l1.858 2.478A7.952 7.952 0 0 1 18.243 17z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.5 11 1.5 4h4l1.5-4L12 8.5z\"}}]})(props);\n};\nexport function BiFridge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 2 .001 5H10V7H8v2H6V4h12zM6 20v-9h2v3h2v-3h8.001l.001 9H6z\"}}]})(props);\n};\nexport function BiFullscreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5h5V3H3v7h2zm5 14H5v-5H3v7h7zm11-5h-2v5h-5v2h7zm-2-4h2V3h-7v2h5z\"}}]})(props);\n};\nexport function BiGame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.937 7.53C19.227 4.119 15.803 2 12 2 6.486 2 2 6.486 2 12s4.486 10 10 10c3.803 0 7.227-2.119 8.937-5.53a1 1 0 0 0-.397-1.316L15.017 12l5.522-3.153c.461-.264.636-.842.398-1.317zm-8.433 3.602a.999.999 0 0 0 0 1.736l6.173 3.525A7.949 7.949 0 0 1 12 20c-4.411 0-8-3.589-8-8s3.589-8 8-8a7.95 7.95 0 0 1 6.677 3.606l-6.173 3.526z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiGasPump (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.616 6.48.014-.017-4-3.24-1.26 1.554 2.067 1.674a2.99 2.99 0 0 0-1.395 3.058c.149.899.766 1.676 1.565 2.112.897.49 1.685.446 2.384.197L18.976 18a.996.996 0 0 1-1.39.922.995.995 0 0 1-.318-.217.996.996 0 0 1-.291-.705L17 16a2.98 2.98 0 0 0-.877-2.119A3 3 0 0 0 14 13h-1V5c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h7c1.103 0 2-.897 2-2v-4h1c.136 0 .267.027.391.078a1.028 1.028 0 0 1 .531.533A.994.994 0 0 1 15 16l-.024 2c0 .406.079.799.236 1.168.151.359.368.68.641.951a2.97 2.97 0 0 0 2.123.881c.406 0 .798-.078 1.168-.236.358-.15.68-.367.951-.641A2.983 2.983 0 0 0 20.976 18L21 9a2.997 2.997 0 0 0-1.384-2.52zM4 5h7l.001 4H4V5zm0 14v-8h7.001l.001 8H4zm14-9a1 1 0 1 1 0-2 1 1 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiGhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.963 0-9 4.038-9 9v8h.051c.245 1.691 1.69 3 3.449 3 1.174 0 2.074-.417 2.672-1.174a3.99 3.99 0 0 0 5.668-.014c.601.762 1.504 1.188 2.66 1.188 1.93 0 3.5-1.57 3.5-3.5V11c0-4.962-4.037-9-9-9zm7 16.5c0 .827-.673 1.5-1.5 1.5-.449 0-1.5 0-1.5-2v-1h-2v1c0 1.103-.897 2-2 2s-2-.897-2-2v-1H8v1c0 1.845-.774 2-1.5 2-.827 0-1.5-.673-1.5-1.5V11c0-3.86 3.141-7 7-7s7 3.14 7 7v7.5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10\",\"r\":\"2\"}}]})(props);\n};\nexport function BiGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-1.209A4.92 4.92 0 0 0 19 5.5C19 3.57 17.43 2 15.5 2c-1.622 0-2.705 1.482-3.404 3.085C11.407 3.57 10.269 2 8.5 2 6.57 2 5 3.57 5 5.5c0 .596.079 1.089.209 1.5H4c-1.103 0-2 .897-2 2v2c0 1.103.897 2 2 2v7c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-7c1.103 0 2-.897 2-2V9c0-1.103-.897-2-2-2zm-4.5-3c.827 0 1.5.673 1.5 1.5C17 7 16.374 7 16 7h-2.478c.511-1.576 1.253-3 1.978-3zM7 5.5C7 4.673 7.673 4 8.5 4c.888 0 1.714 1.525 2.198 3H8c-.374 0-1 0-1-1.5zM4 9h7v2H4V9zm2 11v-7h5v7H6zm12 0h-5v-7h5v7zm-5-9V9.085L13.017 9H20l.001 2H13z\"}}]})(props);\n};\nexport function BiGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 4C15.57 4 14 5.57 14 7.5c0 1.554 1.025 2.859 2.43 3.315-.146.932-.547 1.7-1.23 2.323-1.946 1.773-5.527 1.935-7.2 1.907V8.837c1.44-.434 2.5-1.757 2.5-3.337C10.5 3.57 8.93 2 7 2S3.5 3.57 3.5 5.5c0 1.58 1.06 2.903 2.5 3.337v6.326c-1.44.434-2.5 1.757-2.5 3.337C3.5 20.43 5.07 22 7 22s3.5-1.57 3.5-3.5c0-.551-.14-1.065-.367-1.529 2.06-.186 4.657-.757 6.409-2.35 1.097-.997 1.731-2.264 1.904-3.768C19.915 10.438 21 9.1 21 7.5 21 5.57 19.43 4 17.5 4zm-12 1.5C5.5 4.673 6.173 4 7 4s1.5.673 1.5 1.5S7.827 7 7 7s-1.5-.673-1.5-1.5zM7 20c-.827 0-1.5-.673-1.5-1.5a1.5 1.5 0 0 1 1.482-1.498l.13.01A1.495 1.495 0 0 1 7 20zM17.5 9c-.827 0-1.5-.673-1.5-1.5S16.673 6 17.5 6s1.5.673 1.5 1.5S18.327 9 17.5 9z\"}}]})(props);\n};\nexport function BiGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c-2.967 0-5.431 2.167-5.909 5H2v2h4.092c.479 2.832 2.942 4.998 5.909 4.998s5.43-2.166 5.909-4.998H22v-2h-4.09c-.478-2.833-2.942-5-5.91-5zm0 9.998c-2.205 0-3.999-1.794-3.999-3.999S9.795 8 12 8c2.206 0 4 1.794 4 3.999s-1.794 3.999-4 3.999z\"}}]})(props);\n};\nexport function BiGitCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.01 2c-1.93 0-3.5 1.57-3.5 3.5 0 1.58 1.06 2.903 2.5 3.337v7.16c-.001.179.027 1.781 1.174 2.931C6.892 19.64 7.84 20 9 20v2l4-3-4-3v2c-1.823 0-1.984-1.534-1.99-2V8.837c1.44-.434 2.5-1.757 2.5-3.337 0-1.93-1.571-3.5-3.5-3.5zm0 5c-.827 0-1.5-.673-1.5-1.5S5.183 4 6.01 4s1.5.673 1.5 1.5S6.837 7 6.01 7zm13 8.163V7.997C19.005 6.391 17.933 4 15 4V2l-4 3 4 3V6c1.829 0 2.001 1.539 2.01 2v7.163c-1.44.434-2.5 1.757-2.5 3.337 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-1.58-1.06-2.903-2.5-3.337zm-1 4.837c-.827 0-1.5-.673-1.5-1.5s.673-1.5 1.5-1.5 1.5.673 1.5 1.5-.673 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function BiGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5 18.5C2.5 20.43 4.07 22 6 22s3.5-1.57 3.5-3.5c0-1.58-1.06-2.903-2.5-3.337v-3.488c.244.273.509.527.813.744 1.18.844 2.617 1.098 3.918 1.098.966 0 1.853-.14 2.506-.281a3.5 3.5 0 0 0 3.264 2.265c1.93 0 3.5-1.57 3.5-3.5s-1.57-3.5-3.5-3.5a3.5 3.5 0 0 0-3.404 2.718c-1.297.321-3.664.616-5.119-.426-.666-.477-1.09-1.239-1.306-2.236C8.755 7.96 9.5 6.821 9.5 5.5 9.5 3.57 7.93 2 6 2S2.5 3.57 2.5 5.5c0 1.58 1.06 2.903 2.5 3.337v6.326c-1.44.434-2.5 1.757-2.5 3.337zm15-8c.827 0 1.5.673 1.5 1.5s-.673 1.5-1.5 1.5S16 12.827 16 12s.673-1.5 1.5-1.5zm-10 8c0 .827-.673 1.5-1.5 1.5s-1.5-.673-1.5-1.5S5.173 17 6 17s1.5.673 1.5 1.5zm-3-13C4.5 4.673 5.173 4 6 4s1.5.673 1.5 1.5S6.827 7 6 7s-1.5-.673-1.5-1.5z\"}}]})(props);\n};\nexport function BiGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.01 15.163V7.997C19.005 6.391 17.933 4 15 4V2l-4 3 4 3V6c1.829 0 2.001 1.539 2.01 2v7.163c-1.44.434-2.5 1.757-2.5 3.337 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-1.58-1.06-2.903-2.5-3.337zm-1 4.837c-.827 0-1.5-.673-1.5-1.5s.673-1.5 1.5-1.5 1.5.673 1.5 1.5-.673 1.5-1.5 1.5zM9.5 5.5C9.5 3.57 7.93 2 6 2S2.5 3.57 2.5 5.5c0 1.58 1.06 2.903 2.5 3.337v6.326c-1.44.434-2.5 1.757-2.5 3.337C2.5 20.43 4.07 22 6 22s3.5-1.57 3.5-3.5c0-1.58-1.06-2.903-2.5-3.337V8.837C8.44 8.403 9.5 7.08 9.5 5.5zm-5 0C4.5 4.673 5.173 4 6 4s1.5.673 1.5 1.5S6.827 7 6 7s-1.5-.673-1.5-1.5zm3 13c0 .827-.673 1.5-1.5 1.5s-1.5-.673-1.5-1.5S5.173 17 6 17s1.5.673 1.5 1.5z\"}}]})(props);\n};\nexport function BiGitRepoForked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.559 8.855c.166 1.183.789 3.207 3.087 4.079C11 13.829 11 14.534 11 15v.163c-1.44.434-2.5 1.757-2.5 3.337 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-1.58-1.06-2.903-2.5-3.337V15c0-.466 0-1.171 2.354-2.065 2.298-.872 2.921-2.896 3.087-4.079C19.912 8.441 21 7.102 21 5.5 21 3.57 19.43 2 17.5 2S14 3.57 14 5.5c0 1.552 1.022 2.855 2.424 3.313-.146.735-.565 1.791-1.778 2.252-1.192.452-2.053.953-2.646 1.536-.593-.583-1.453-1.084-2.646-1.536-1.213-.461-1.633-1.517-1.778-2.252C8.978 8.355 10 7.052 10 5.5 10 3.57 8.43 2 6.5 2S3 3.57 3 5.5c0 1.602 1.088 2.941 2.559 3.355zM17.5 4c.827 0 1.5.673 1.5 1.5S18.327 7 17.5 7 16 6.327 16 5.5 16.673 4 17.5 4zm-4 14.5c0 .827-.673 1.5-1.5 1.5s-1.5-.673-1.5-1.5.673-1.5 1.5-1.5 1.5.673 1.5 1.5zM6.5 4C7.327 4 8 4.673 8 5.5S7.327 7 6.5 7 5 6.327 5 5.5 5.673 4 6.5 4z\"}}]})(props);\n};\nexport function BiGlassesAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.948 11.684-2-6A.997.997 0 0 0 19 5h-3v2h2.279l1.334 4H15c-1.103 0-2 .897-2 2h-2c0-1.103-.897-2-2-2H4.387l1.334-4H8V5H5a.998.998 0 0 0-.948.684l-2 6 .012.004A.928.928 0 0 0 2 12v4c0 1.654 1.346 3 3 3h3c1.654 0 3-1.346 3-3v-1h2v1c0 1.654 1.346 3 3 3h3c1.654 0 3-1.346 3-3v-4a.964.964 0 0 0-.063-.313l.011-.003zM9 16c0 .551-.448 1-1 1H5c-.552 0-1-.449-1-1v-3h5v3zm11 0c0 .551-.448 1-1 1h-3c-.552 0-1-.449-1-1v-3h5v3z\"}}]})(props);\n};\nexport function BiGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.977 13.783-2-9A1.002 1.002 0 0 0 19 4h-3v2h2.198l.961 4.326A4.467 4.467 0 0 0 17.5 10c-1.953 0-3.603 1.258-4.224 3h-2.553c-.621-1.742-2.271-3-4.224-3-.587 0-1.145.121-1.659.326L5.802 6H8V4H5a1 1 0 0 0-.976.783l-2 9 .047.011A4.552 4.552 0 0 0 2 14.5C2 16.981 4.019 19 6.5 19c2.31 0 4.197-1.756 4.449-4h2.102c.252 2.244 2.139 4 4.449 4 2.481 0 4.5-2.019 4.5-4.5 0-.242-.034-.475-.071-.706l.048-.011zM6.5 17C5.122 17 4 15.878 4 14.5S5.122 12 6.5 12 9 13.122 9 14.5 7.878 17 6.5 17zm11 0c-1.379 0-2.5-1.122-2.5-2.5s1.121-2.5 2.5-2.5 2.5 1.122 2.5 2.5-1.121 2.5-2.5 2.5z\"}}]})(props);\n};\nexport function BiGlobeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 18.791V20H9v2h6v-2h-2v-1.845a9.934 9.934 0 0 0 3.071-2.084c3.898-3.898 3.898-10.243 0-14.143l-1.414 1.414c3.119 3.12 3.119 8.195 0 11.314-3.119 3.118-8.195 3.12-11.314 0L1.929 16.07A9.971 9.971 0 0 0 9 18.994a9.98 9.98 0 0 0 2-.203z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9c0 3.309 2.691 6 6 6s6-2.691 6-6-2.691-6-6-6-6 2.691-6 6zm10 0c0 2.206-1.794 4-4 4s-4-1.794-4-4 1.794-4 4-4 4 1.794 4 4z\"}}]})(props);\n};\nexport function BiGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm7.931 9h-2.764a14.67 14.67 0 0 0-1.792-6.243A8.013 8.013 0 0 1 19.931 11zM12.53 4.027c1.035 1.364 2.427 3.78 2.627 6.973H9.03c.139-2.596.994-5.028 2.451-6.974.172-.01.344-.026.519-.026.179 0 .354.016.53.027zm-3.842.7C7.704 6.618 7.136 8.762 7.03 11H4.069a8.013 8.013 0 0 1 4.619-6.273zM4.069 13h2.974c.136 2.379.665 4.478 1.556 6.23A8.01 8.01 0 0 1 4.069 13zm7.381 6.973C10.049 18.275 9.222 15.896 9.041 13h6.113c-.208 2.773-1.117 5.196-2.603 6.972-.182.012-.364.028-.551.028-.186 0-.367-.016-.55-.027zm4.011-.772c.955-1.794 1.538-3.901 1.691-6.201h2.778a8.005 8.005 0 0 1-4.469 6.201z\"}}]})(props);\n};\nexport function BiGridAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 3H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zM9 9H5V5h4v4zm5 2h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1zm1-6h4v4h-4V5zM3 20a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v6zm2-5h4v4H5v-4zm8 5a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v6zm2-5h4v4h-4v-4z\"}}]})(props);\n};\nexport function BiGridHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7h4v4h-4zm6 0h4v4h-4zM4 7h4v4H4zm6 6h4v4h-4zm6 0h4v4h-4zM4 13h4v4H4z\"}}]})(props);\n};\nexport function BiGridSmall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h4v4H7zm0 6h4v4H7zm6-6h4v4h-4zm0 6h4v4h-4z\"}}]})(props);\n};\nexport function BiGridVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10h4v4H7zm0-6h4v4H7zm0 12h4v4H7zm6-6h4v4h-4zm0-6h4v4h-4zm0 12h4v4h-4z\"}}]})(props);\n};\nexport function BiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3H4.984c-1.103 0-2 .897-2 2v14.016c0 1.103.897 2 2 2H19c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2h-4zm4 5h-3V5h3v3zM4.984 10h3v4.016h-3V10zm5 0H14v4.016H9.984V10zM16 10h3v4.016h-3V10zm-2-5v3H9.984V5H14zM7.984 5v3h-3V5h3zm-3 11.016h3v3h-3v-3zm5 3v-3H14v3H9.984zm6.016 0v-3h3.001v3H16z\"}}]})(props);\n};\nexport function BiGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.604 11.048a5.67 5.67 0 0 0 .751-3.44c-.179-1.784-1.175-3.361-2.803-4.44l-1.105 1.666c1.119.742 1.8 1.799 1.918 2.974a3.693 3.693 0 0 1-1.072 2.986l-1.192 1.192 1.618.475C18.951 13.701 19 17.957 19 18h2c0-1.789-.956-5.285-4.396-6.952z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 12c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2zm1.5 7H8c-3.309 0-6 2.691-6 6v1h2v-1c0-2.206 1.794-4 4-4h3c2.206 0 4 1.794 4 4v1h2v-1c0-3.309-2.691-6-6-6z\"}}]})(props);\n};\nexport function BiHandicap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.98 14.804A1 1 0 0 0 16 14h-4.133l-.429-3H16V9h-4.847l-.163-1.142A1 1 0 0 0 10 7H9a1.003 1.003 0 0 0-.99 1.142l.877 6.142A2.009 2.009 0 0 0 10.867 16h4.313l.839 4.196c.094.467.504.804.981.804h3v-2h-2.181l-.839-4.196z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.51 17.5c-.739 1.476-2.25 2.5-4.01 2.5A4.505 4.505 0 0 1 4 15.5a4.503 4.503 0 0 1 2.817-4.167l-.289-2.025C3.905 10.145 2 12.604 2 15.5 2 19.084 4.916 22 8.5 22a6.497 6.497 0 0 0 5.545-3.126l-.274-1.374H12.51z\"}}]})(props);\n};\nexport function BiHappyAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"9.493\",\"r\":\"1.493\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c5 0 6-5 6-5H6s1 5 6 5z\"}}]})(props);\n};\nexport function BiHappyBeaming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c4 0 5-4 5-4H7s1 4 5 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13 12 2 .012c.012-.462.194-1.012 1-1.012s.988.55 1 1h2c0-1.206-.799-3-3-3s-3 1.794-3 3zm-5-1c.806 0 .988.55 1 1h2c0-1.206-.799-3-3-3s-3 1.794-3 3l2 .012C7.012 11.55 7.194 11 8 11z\"}}]})(props);\n};\nexport function BiHappyHeartEyes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c4 0 5-4 5-4H7s1 4 5 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c5.514 0 10-4.486 10-10S17.514 2 12 2 2 6.486 2 12s4.486 10 10 10zm0-18c4.411 0 8 3.589 8 8s-3.589 8-8 8-8-3.589-8-8 3.589-8 8-8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.535 12.634 2.05-2.083a1.485 1.485 0 0 0-.018-2.118 1.49 1.49 0 0 0-2.065-.034 1.488 1.488 0 0 0-2.067.068c-.586.6-.579 1.53.019 2.117l2.081 2.05zm7 0 2.05-2.083a1.485 1.485 0 0 0-.018-2.118 1.49 1.49 0 0 0-2.065-.034 1.488 1.488 0 0 0-2.068.067c-.586.6-.579 1.53.019 2.117l2.082 2.051z\"}}]})(props);\n};\nexport function BiHappy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"10.493\",\"r\":\"1.493\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c4 0 5-4 5-4H7s1 4 5 4z\"}}]})(props);\n};\nexport function BiHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.018 3.815 15.232 8h-4.966l.716-3.815-1.964-.37L8.232 8H4v2h3.857l-.751 4H3v2h3.731l-.714 3.805 1.965.369L8.766 16h4.966l-.714 3.805 1.965.369.783-4.174H20v-2h-3.859l.751-4H21V8h-3.733l.716-3.815-1.965-.37zM14.106 14H9.141l.751-4h4.966l-.752 4z\"}}]})(props);\n};\nexport function BiHdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.983 13.821-1.851-10.18A1.998 1.998 0 0 0 18.165 2H5.835a2 2 0 0 0-1.968 1.643l-1.85 10.178.019.003c-.012.06-.036.114-.036.176v5c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2v-5c0-.063-.024-.116-.035-.176l.018-.003zM5.835 4h12.331l1.637 9H4.198l1.637-9zM4 19v-4h16l.002 4H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16h2v2h-2zm-3 0h2v2h-2z\"}}]})(props);\n};\nexport function BiHeading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 20V4h-3v6H9V4H6v16h3v-7h6v7z\"}}]})(props);\n};\nexport function BiHeadphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12v-1.707c0-4.442-3.479-8.161-7.755-8.29-2.204-.051-4.251.736-5.816 2.256A7.933 7.933 0 0 0 4 10v2c-1.103 0-2 .897-2 2v4c0 1.103.897 2 2 2h2V10a5.95 5.95 0 0 1 1.821-4.306 5.977 5.977 0 0 1 4.363-1.691C15.392 4.099 18 6.921 18 10.293V20h2c1.103 0 2-.897 2-2v-4c0-1.103-.897-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 12h2v8H7zm8 0h2v8h-2z\"}}]})(props);\n};\nexport function BiHealth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.649 5.286 14 8.548V2.025h-4v6.523L4.351 5.286l-2 3.465 5.648 3.261-5.648 3.261 2 3.465L10 15.477V22h4v-6.523l5.649 3.261 2-3.465-5.648-3.261 5.648-3.261z\"}}]})(props);\n};\nexport function BiHeartCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.279 8.833 12 9.112l-.279-.279a2.745 2.745 0 0 0-3.906 0 2.745 2.745 0 0 0 0 3.907L12 16.926l4.186-4.186a2.745 2.745 0 0 0 0-3.907 2.746 2.746 0 0 0-3.907 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiHeartSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.998 17 4.186-4.186a2.745 2.745 0 0 0 0-3.907 2.746 2.746 0 0 0-3.907 0l-.278.279-.279-.279a2.746 2.746 0 0 0-3.907 0 2.746 2.746 0 0 0 0 3.907L11.998 17z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4zm-2 15H5V5h14v14z\"}}]})(props);\n};\nexport function BiHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.595a5.904 5.904 0 0 0-3.996-1.558 5.942 5.942 0 0 0-4.213 1.758c-2.353 2.363-2.352 6.059.002 8.412l7.332 7.332c.17.299.498.492.875.492a.99.99 0 0 0 .792-.409l7.415-7.415c2.354-2.354 2.354-6.049-.002-8.416a5.938 5.938 0 0 0-4.209-1.754A5.906 5.906 0 0 0 12 4.595zm6.791 1.61c1.563 1.571 1.564 4.025.002 5.588L12 18.586l-6.793-6.793c-1.562-1.563-1.561-4.017-.002-5.584.76-.756 1.754-1.172 2.799-1.172s2.035.416 2.789 1.17l.5.5a.999.999 0 0 0 1.414 0l.5-.5c1.512-1.509 4.074-1.505 5.584-.002z\"}}]})(props);\n};\nexport function BiHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6a3.939 3.939 0 0 0-3.934 3.934h2C10.066 8.867 10.934 8 12 8s1.934.867 1.934 1.934c0 .598-.481 1.032-1.216 1.626a9.208 9.208 0 0 0-.691.599c-.998.997-1.027 2.056-1.027 2.174V15h2l-.001-.633c.001-.016.033-.386.441-.793.15-.15.339-.3.535-.458.779-.631 1.958-1.584 1.958-3.182A3.937 3.937 0 0 0 12 6zm-1 10h2v2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiHide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19c.946 0 1.81-.103 2.598-.281l-1.757-1.757c-.273.021-.55.038-.841.038-5.351 0-7.424-3.846-7.926-5a8.642 8.642 0 0 1 1.508-2.297L4.184 8.305c-1.538 1.667-2.121 3.346-2.132 3.379a.994.994 0 0 0 0 .633C2.073 12.383 4.367 19 12 19zm0-14c-1.837 0-3.346.396-4.604.981L3.707 2.293 2.293 3.707l18 18 1.414-1.414-3.319-3.319c2.614-1.951 3.547-4.615 3.561-4.657a.994.994 0 0 0 0-.633C21.927 11.617 19.633 5 12 5zm4.972 10.558-2.28-2.28c.19-.39.308-.819.308-1.278 0-1.641-1.359-3-3-3-.459 0-.888.118-1.277.309L8.915 7.501A9.26 9.26 0 0 1 12 7c5.351 0 7.424 3.846 7.926 5-.302.692-1.166 2.342-2.954 3.558z\"}}]})(props);\n};\nexport function BiHighlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.707 5.826-3.535-3.533a.999.999 0 0 0-1.408-.006L7.096 10.82a1.01 1.01 0 0 0-.273.488l-1.024 4.437L4 18h2.828l1.142-1.129 3.588-.828c.18-.042.345-.133.477-.262l8.667-8.535a1 1 0 0 0 .005-1.42zm-9.369 7.833-2.121-2.12 7.243-7.131 2.12 2.12-7.242 7.131zM4 20h16v2H4z\"}}]})(props);\n};\nexport function BiHistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8v5h5v-2h-3V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21.292 8.497a8.957 8.957 0 0 0-1.928-2.862 9.004 9.004 0 0 0-4.55-2.452 9.09 9.09 0 0 0-3.626 0 8.965 8.965 0 0 0-4.552 2.453 9.048 9.048 0 0 0-1.928 2.86A8.963 8.963 0 0 0 4 12l.001.025H2L5 16l3-3.975H6.001L6 12a6.957 6.957 0 0 1 1.195-3.913 7.066 7.066 0 0 1 1.891-1.892 7.034 7.034 0 0 1 2.503-1.054 7.003 7.003 0 0 1 8.269 5.445 7.117 7.117 0 0 1 0 2.824 6.936 6.936 0 0 1-1.054 2.503c-.25.371-.537.72-.854 1.036a7.058 7.058 0 0 1-2.225 1.501 6.98 6.98 0 0 1-1.313.408 7.117 7.117 0 0 1-2.823 0 6.957 6.957 0 0 1-2.501-1.053 7.066 7.066 0 0 1-1.037-.855l-1.414 1.414A8.985 8.985 0 0 0 13 21a9.05 9.05 0 0 0 3.503-.707 9.009 9.009 0 0 0 3.959-3.26A8.968 8.968 0 0 0 22 12a8.928 8.928 0 0 0-.708-3.503z\"}}]})(props);\n};\nexport function BiHive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.895 7.553-2-4A1.001 1.001 0 0 0 18 3h-5c-.379 0-.725.214-.895.553L10.382 7H6c-.379 0-.725.214-.895.553l-2 4a1 1 0 0 0 0 .895l2 4c.17.338.516.552.895.552h4.382l1.724 3.447A.998.998 0 0 0 13 21h5c.379 0 .725-.214.895-.553l2-4a1 1 0 0 0 0-.895L19.118 12l1.776-3.553a1 1 0 0 0 .001-.894zM13.618 5h3.764l1.5 3-1.5 3h-3.764l-1.5-3 1.5-3zm-8.5 7 1.5-3h3.764l1.5 3-1.5 3H6.618l-1.5-3zm12.264 7h-3.764l-1.5-3 1.5-3h3.764l1.5 3-1.5 3z\"}}]})(props);\n};\nexport function BiHomeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 22h14a2 2 0 0 0 2-2v-9a1 1 0 0 0-.29-.71l-8-8a1 1 0 0 0-1.41 0l-8 8A1 1 0 0 0 3 11v9a2 2 0 0 0 2 2zm5-2v-5h4v5zm-5-8.59 7-7 7 7V20h-3v-5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v5H5z\"}}]})(props);\n};\nexport function BiHomeCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h1v7c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-7h1a1 1 0 0 0 .707-1.707l-9-9a.999.999 0 0 0-1.414 0l-9 9A1 1 0 0 0 3 13zm9-8.586 6 6V15l.001 5H6v-9.585l6-6.001z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 17c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2z\"}}]})(props);\n};\nexport function BiHomeHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.223 11.641-.223.22-.224-.22a2.224 2.224 0 0 0-3.125 0 2.13 2.13 0 0 0 0 3.07L12 18l3.349-3.289a2.13 2.13 0 0 0 0-3.07 2.225 2.225 0 0 0-3.126 0z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m21.707 11.293-9-9a.999.999 0 0 0-1.414 0l-9 9A1 1 0 0 0 3 13h1v7c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-7h1a1 1 0 0 0 .707-1.707zM18.001 20H6v-9.585l6-6 6 6V15l.001 5z\"}}]})(props);\n};\nexport function BiHomeSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h1v7c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-7h1a1 1 0 0 0 .707-1.707l-9-9a.999.999 0 0 0-1.414 0l-9 9A1 1 0 0 0 3 13zm9-8.586 6 6V15l.001 5H6v-9.586l6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c3.703 0 4.901-3.539 4.95-3.689l-1.9-.621c-.008.023-.781 2.31-3.05 2.31-2.238 0-3.02-2.221-3.051-2.316l-1.899.627C7.099 14.461 8.297 18 12 18z\"}}]})(props);\n};\nexport function BiHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 13h1v7c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-7h1a1 1 0 0 0 .707-1.707l-9-9a.999.999 0 0 0-1.414 0l-9 9A1 1 0 0 0 3 13zm7 7v-5h4v5h-4zm2-15.586 6 6V15l.001 5H16v-5c0-1.103-.897-2-2-2h-4c-1.103 0-2 .897-2 2v5H6v-9.586l6-6z\"}}]})(props);\n};\nexport function BiHorizontalCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5.005 15.995 4-4-4-4v3h-3v2h3zm14-5v-3l-4 4 4 4v-3h3v-2h-2.072zm-8 7h2v3h-2zm0-5h2v3h-2zm0-5h2v3h-2zm0-5h2v3h-2z\"}}]})(props);\n};\nexport function BiHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"11.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.205 7H12a1 1 0 0 0-1 1v7H4V6H2v14h2v-3h16v3h2v-8.205A4.8 4.8 0 0 0 17.205 7zM13 15V9h4.205A2.798 2.798 0 0 1 20 11.795V15h-7z\"}}]})(props);\n};\nexport function BiHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.566 11.021A7.016 7.016 0 0 0 19 5V4h1V2H4v2h1v1a7.016 7.016 0 0 0 3.434 6.021c.354.208.566.545.566.9v.158c0 .354-.212.69-.566.9A7.016 7.016 0 0 0 5 19v1H4v2h16v-2h-1v-1a7.014 7.014 0 0 0-3.433-6.02c-.355-.21-.567-.547-.567-.901v-.158c0-.355.212-.692.566-.9zm-1.015 3.681A5.008 5.008 0 0 1 17 19v1H7v-1a5.01 5.01 0 0 1 2.45-4.299c.971-.573 1.55-1.554 1.55-2.622v-.158c0-1.069-.58-2.051-1.551-2.623A5.008 5.008 0 0 1 7 5V4h10v1c0 1.76-.938 3.406-2.449 4.298C13.58 9.87 13 10.852 13 11.921v.158c0 1.068.579 2.049 1.551 2.623z\"}}]})(props);\n};\nexport function BiIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.715 12c1.151 0 2-.849 2-2s-.849-2-2-2-2 .849-2 2 .848 2 2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .841-2 1.875v12.25C2 19.159 2.897 20 4 20h16c1.103 0 2-.841 2-1.875V5.875C22 4.841 21.103 4 20 4zm0 14-16-.011V6l16 .011V18z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9h4v2h-4zm1 4h3v2h-3zm-1.57 2.536c0-1.374-1.676-2.786-3.715-2.786S6 14.162 6 15.536V16h7.43v-.464z\"}}]})(props);\n};\nexport function BiImageAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 5h13v7h2V5c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h8v-2H4V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 11-3 4h11l-4-6-3 4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14h-2v3h-3v2h3v3h2v-3h3v-2h-3z\"}}]})(props);\n};\nexport function BiImageAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 14-1-1-3 4h12l-5-7z\"}}]})(props);\n};\nexport function BiImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.499\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.499 14-1.5-2-3 4h12l-4.5-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.999 4h-16c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm-16 14V6h16l.002 12H3.999z\"}}]})(props);\n};\nexport function BiImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM8 16V4h12l.002 12H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 8H2v12c0 1.103.897 2 2 2h12v-2H4V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 12-1-1-2 3h10l-4-6z\"}}]})(props);\n};\nexport function BiImport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 18 4-5h-3V2h-2v11H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 9h-4v2h4v9H5v-9h4V9H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2z\"}}]})(props);\n};\nexport function BiInfinite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 7c-2.094 0-3.611 1.567-5.001 3.346C10.609 8.567 9.093 7 7 7c-2.757 0-5 2.243-5 5a4.98 4.98 0 0 0 1.459 3.534A4.956 4.956 0 0 0 6.99 17h.012c2.089-.005 3.605-1.572 4.996-3.351C13.389 15.431 14.906 17 17 17c2.757 0 5-2.243 5-5s-2.243-5-5-5zM6.998 15l-.008 1v-1c-.799 0-1.55-.312-2.114-.878A3.004 3.004 0 0 1 7 9c1.33 0 2.56 1.438 3.746 2.998C9.558 13.557 8.328 14.997 6.998 15zM17 15c-1.33 0-2.561-1.44-3.749-3.002C14.438 10.438 15.668 9 17 9c1.654 0 3 1.346 3 3s-1.346 3-3 3z\"}}]})(props);\n};\nexport function BiInfoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11h2v6h-2zm0-4h2v2h-2z\"}}]})(props);\n};\nexport function BiInfoSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zm-1 16H5V5h14v14z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2z\"}}]})(props);\n};\nexport function BiIntersect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16h3v3c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-3V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2zm9.001-2L14 10h.001v4zM19 10l.001 9H10v-3h4c1.103 0 2-.897 2-2v-4h3zM5 5h9v3h-4c-1.103 0-2 .897-2 2v4H5V5z\"}}]})(props);\n};\nexport function BiItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7V4H9v3h2.868L9.012 17H5v3h10v-3h-2.868l2.856-10z\"}}]})(props);\n};\nexport function BiJoystickAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"13\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"11\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9H8v2H6v2h2v2h2v-2h2v-2h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 5H9a7 7 0 0 0-7 7 7 7 0 0 0 7 7h6a7 7 0 0 0 7-7 7 7 0 0 0-7-7zm0 12H9A5 5 0 1 1 9 7h6a5 5 0 1 1 0 10z\"}}]})(props);\n};\nexport function BiJoystickButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7h-3V4c0-1.103-.897-2-2-2H9c-1.103 0-2 .897-2 2v3H4c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2h3v3c0 1.103.897 2 2 2h6c1.103 0 2-.897 2-2v-3h3c1.103 0 2-.897 2-2V9c0-1.103-.897-2-2-2zm0 8h-5v4h.001v1H9v-5H4V9h5V4h6v5h5v6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14v-4l-3 2zm8 0 3-2-3-2zm-6-6h4l-2-3zm2 11 2-3h-4z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}}]})(props);\n};\nexport function BiJoystick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8.65A5 5 0 0 0 17 4H7a5 5 0 0 0-5 4.74A2 2 0 0 0 2 9v7.5A3.48 3.48 0 0 0 5.5 20c1.43 0 2.32-1.06 3.19-2.09.32-.37.65-.76 1-1.1a4.81 4.81 0 0 1 1.54-.75 6.61 6.61 0 0 1 1.54 0 4.81 4.81 0 0 1 1.54.75c.35.34.68.73 1 1.1.87 1 1.76 2.09 3.19 2.09a3.48 3.48 0 0 0 3.5-3.5V9a2.09 2.09 0 0 0 0-.26zm-2 7.85a1.5 1.5 0 0 1-1.5 1.5c-.5 0-1-.64-1.66-1.38-.34-.39-.72-.85-1.15-1.26a6.68 6.68 0 0 0-2.46-1.25 6.93 6.93 0 0 0-2.46 0 6.68 6.68 0 0 0-2.46 1.25c-.43.41-.81.87-1.15 1.26C6.54 17.36 6 18 5.5 18A1.5 1.5 0 0 1 4 16.5V9a.77.77 0 0 0 0-.15A3 3 0 0 1 7 6h10a3 3 0 0 1 3 2.72v.12A.86.86 0 0 0 20 9z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"10\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"8\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14\",\"cy\":\"10\",\"r\":\"1\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"10\",\"r\":\"2\"}}]})(props);\n};\nexport function BiKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 17a5.007 5.007 0 0 0 4.898-4H14v2h2v-2h2v3h2v-3h1v-2h-9.102A5.007 5.007 0 0 0 7 7c-2.757 0-5 2.243-5 5s2.243 5 5 5zm0-8c1.654 0 3 1.346 3 3s-1.346 3-3 3-3-1.346-3-3 1.346-3 3-3z\"}}]})(props);\n};\nexport function BiLabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.813 4.419A.997.997 0 0 0 16 4H3a1 1 0 0 0-.813 1.581L6.771 12l-4.585 6.419A1 1 0 0 0 3 20h13a.997.997 0 0 0 .813-.419l5-7a.997.997 0 0 0 0-1.162l-5-7zM15.485 18H4.943l3.87-5.419a.997.997 0 0 0 0-1.162L4.943 6h10.542l4.286 6-4.286 6z\"}}]})(props);\n};\nexport function BiLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 20h18a1 1 0 0 0 .864-1.504l-7-12c-.359-.615-1.369-.613-1.729 0L9.866 12.1l-1.02-1.632A.998.998 0 0 0 8 10h-.001a1 1 0 0 0-.847.47l-5 8A1 1 0 0 0 3 20zM14 8.985 19.259 18h-5.704l-2.486-3.987L14 8.985zm-5.999 3.9L11.197 18H4.805l3.196-5.115zM6 8c1.654 0 3-1.346 3-3S7.654 2 6 2 3 3.346 3 5s1.346 3 3 3zm0-4a1 1 0 1 1 0 2 1 1 0 0 1 0-2z\"}}]})(props);\n};\nexport function BiLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.722c.595-.347 1-.985 1-1.722V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v11c0 .736.405 1.375 1 1.722V18H2v2h20v-2h-2v-.278zM5 16V5h14l.002 11H5z\"}}]})(props);\n};\nexport function BiLastPage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.707 17.707 13.414 12 7.707 6.293 6.293 7.707 10.586 12l-4.293 4.293zM15 6h2v12h-2z\"}}]})(props);\n};\nexport function BiLaugh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18c4 0 5-4 5-4H7s1 4 5 4zm5.555-9.168-1.109-1.664-3 2a1.001 1.001 0 0 0 .108 1.727l4 2 .895-1.789-2.459-1.229 1.565-1.045zm-6.557 1.23a1 1 0 0 0-.443-.894l-3-2-1.11 1.664 1.566 1.044-2.459 1.229.895 1.789 4-2a.998.998 0 0 0 .551-.832z\"}}]})(props);\n};\nexport function BiLayerMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.513 12.833 9.022 5.04a.995.995 0 0 0 .973.001l8.978-5a1 1 0 0 0-.002-1.749l-9.022-5a1 1 0 0 0-.968-.001l-8.978 4.96a1 1 0 0 0-.003 1.749zm9.464-4.69 6.964 3.859-6.917 3.853-6.964-3.89 6.917-3.822z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m3.485 15.126-.971 1.748 9 5a1 1 0 0 0 .971 0l9-5-.971-1.748L12 19.856l-8.515-4.73zM16 4h6v2h-6z\"}}]})(props);\n};\nexport function BiLayerPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.484 11.125-9.022-5a1 1 0 0 0-.968-.001l-8.978 4.96a1 1 0 0 0-.003 1.749l9.022 5.04a.995.995 0 0 0 .973.001l8.978-5a1 1 0 0 0-.002-1.749zm-9.461 4.73-6.964-3.89 6.917-3.822 6.964 3.859-6.917 3.853z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22a.994.994 0 0 0 .485-.126l9-5-.971-1.748L12 19.856l-8.515-4.73-.971 1.748 9 5A1 1 0 0 0 12 22zm8-20h-2v2h-2v2h2v2h2V6h2V4h-2z\"}}]})(props);\n};\nexport function BiLayer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 7.999a1 1 0 0 0-.516-.874l-9.022-5a1.003 1.003 0 0 0-.968 0l-8.978 4.96a1 1 0 0 0-.003 1.748l9.022 5.04a.995.995 0 0 0 .973.001l8.978-5A1 1 0 0 0 22 7.999zm-9.977 3.855L5.06 7.965l6.917-3.822 6.964 3.859-6.918 3.852z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.515 11.126 12 15.856l-8.515-4.73-.971 1.748 9 5a1 1 0 0 0 .971 0l9-5-.97-1.748z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.515 15.126 12 19.856l-8.515-4.73-.971 1.748 9 5a1 1 0 0 0 .971 0l9-5-.97-1.748z\"}}]})(props);\n};\nexport function BiLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zm0 2 .001 4H5V5h14zM5 11h8v8H5v-8zm10 8v-8h4.001l.001 8H15z\"}}]})(props);\n};\nexport function BiLeftArrowAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.707 17.293 8.414 13H18v-2H8.414l4.293-4.293-1.414-1.414L4.586 12l6.707 6.707z\"}}]})(props);\n};\nexport function BiLeftArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 1.993C6.486 1.994 2 6.48 1.999 11.994c0 5.514 4.486 10 10.001 10 5.514-.001 10-4.487 10-10 0-5.514-4.486-10-10.001-10.001zM12 19.994c-4.412 0-8.001-3.589-8.001-8 .001-4.411 3.59-8 8-8.001C16.411 3.994 20 7.583 20 11.994c0 4.41-3.589 7.999-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12.012 7.989-4.005 4.005 4.005 4.004v-3.004h3.994v-2h-3.994z\"}}]})(props);\n};\nexport function BiLeftArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.464 2.114a.998.998 0 0 0-1.033.063l-13 9a1.003 1.003 0 0 0 0 1.645l13 9A1 1 0 0 0 19 21V3a1 1 0 0 0-.536-.886zM17 19.091 6.757 12 17 4.909v14.182z\"}}]})(props);\n};\nexport function BiLeftDownArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.006 2.007A9.93 9.93 0 0 0 4.935 4.93c-3.898 3.898-3.898 10.242 0 14.142 1.885 1.885 4.396 2.923 7.071 2.923s5.187-1.038 7.071-2.923c3.898-3.899 3.898-10.243 0-14.142a9.931 9.931 0 0 0-7.071-2.923zm5.657 15.65c-1.507 1.507-3.516 2.337-5.657 2.337s-4.15-.83-5.657-2.337c-3.118-3.119-3.118-8.194 0-11.313 1.507-1.507 3.517-2.337 5.657-2.337s4.15.83 5.657 2.337c3.118 3.119 3.118 8.194 0 11.313z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m14.346 8.247-3.215 3.215-2.125-2.125V15h5.663l-2.124-2.124 3.215-3.215z\"}}]})(props);\n};\nexport function BiLeftIndent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h10v2H4zm0-4h16v2H4zm0 8h10v2H4zm0 4h10v2H4zm0 4h16v2H4zm16-3V8l-4 4z\"}}]})(props);\n};\nexport function BiLeftTopArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.993 2.007a9.928 9.928 0 0 0-7.071 2.922c-3.899 3.899-3.899 10.243 0 14.143a9.931 9.931 0 0 0 7.071 2.923 9.928 9.928 0 0 0 7.071-2.923c3.899-3.899 3.899-10.243 0-14.143a9.927 9.927 0 0 0-7.071-2.922zm5.657 15.65a7.945 7.945 0 0 1-5.657 2.337c-2.141 0-4.15-.83-5.657-2.337-3.119-3.119-3.119-8.195 0-11.314a7.946 7.946 0 0 1 5.657-2.336c2.142 0 4.15.829 5.657 2.336 3.12 3.119 3.12 8.195 0 11.314z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.657 9H8.993v5.663l2.125-2.124 3.215 3.214 1.414-1.414-3.215-3.214z\"}}]})(props);\n};\nexport function BiLibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 3h2v18H7zM4 3h2v18H4zm6 0h2v18h-2zm9.062 17.792-6.223-16.89 1.877-.692 6.223 16.89z\"}}]})(props);\n};\nexport function BiLike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 8h-5.612l1.123-3.367c.202-.608.1-1.282-.275-1.802S14.253 2 13.612 2H12c-.297 0-.578.132-.769.36L6.531 8H4c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h13.307a2.01 2.01 0 0 0 1.873-1.298l2.757-7.351A1 1 0 0 0 22 12v-2c0-1.103-.897-2-2-2zM4 10h2v9H4v-9zm16 1.819L17.307 19H8V9.362L12.468 4h1.146l-1.562 4.683A.998.998 0 0 0 13 10h7v1.819z\"}}]})(props);\n};\nexport function BiLineChartDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 3H3v18h18v-2H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 12.586 8.707 8.293 7.293 9.707 13 15.414l3-3 4.293 4.293 1.414-1.414L16 9.586z\"}}]})(props);\n};\nexport function BiLineChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3v17a1 1 0 0 0 1 1h17v-2H5V3H3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.293 14.707a.999.999 0 0 0 1.414 0l5-5-1.414-1.414L16 12.586l-2.293-2.293a.999.999 0 0 0-1.414 0l-5 5 1.414 1.414L13 12.414l2.293 2.293z\"}}]})(props);\n};\nexport function BiLinkAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.222 19.778a4.983 4.983 0 0 0 3.535 1.462 4.986 4.986 0 0 0 3.536-1.462l2.828-2.829-1.414-1.414-2.828 2.829a3.007 3.007 0 0 1-4.243 0 3.005 3.005 0 0 1 0-4.243l2.829-2.828-1.414-1.414-2.829 2.828a5.006 5.006 0 0 0 0 7.071zm15.556-8.485a5.008 5.008 0 0 0 0-7.071 5.006 5.006 0 0 0-7.071 0L9.879 7.051l1.414 1.414 2.828-2.829a3.007 3.007 0 0 1 4.243 0 3.005 3.005 0 0 1 0 4.243l-2.829 2.828 1.414 1.414 2.829-2.828z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8.464 16.95-1.415-1.414 8.487-8.486 1.414 1.415z\"}}]})(props);\n};\nexport function BiLinkExternal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13 3 3.293 3.293-7 7 1.414 1.414 7-7L21 11V3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z\"}}]})(props);\n};\nexport function BiLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.465 11.293c1.133-1.133 3.109-1.133 4.242 0l.707.707 1.414-1.414-.707-.707c-.943-.944-2.199-1.465-3.535-1.465s-2.592.521-3.535 1.465L4.929 12a5.008 5.008 0 0 0 0 7.071 4.983 4.983 0 0 0 3.535 1.462A4.982 4.982 0 0 0 12 19.071l.707-.707-1.414-1.414-.707.707a3.007 3.007 0 0 1-4.243 0 3.005 3.005 0 0 1 0-4.243l2.122-2.121z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12 4.929-.707.707 1.414 1.414.707-.707a3.007 3.007 0 0 1 4.243 0 3.005 3.005 0 0 1 0 4.243l-2.122 2.121c-1.133 1.133-3.109 1.133-4.242 0L10.586 12l-1.414 1.414.707.707c.943.944 2.199 1.465 3.535 1.465s2.592-.521 3.535-1.465L19.071 12a5.008 5.008 0 0 0 0-7.071 5.006 5.006 0 0 0-7.071 0z\"}}]})(props);\n};\nexport function BiLira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21h2c4.411 0 8-4.038 8-9h-2c0 3.86-2.691 7-6 7v-7.358l6-1.385V8.204l-6 1.385V7.642l6-1.385V4.204l-6 1.385V3H9v3.05l-3 .693v2.053l3-.692v1.947l-3 .692v2.053l3-.692V21z\"}}]})(props);\n};\nexport function BiListCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 7h11v2H4zm0 4h11v2H4zm0 4h7v2H4zm15.299-2.708-4.3 4.291-1.292-1.291-1.414 1.415 2.706 2.704 5.712-5.703z\"}}]})(props);\n};\nexport function BiListMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.063 15H13v2h9v-2zM4 7h11v2H4zm0 4h11v2H4zm0 4h7v2H4z\"}}]})(props);\n};\nexport function BiListOl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.282 12.064c-.428.328-.72.609-.875.851-.155.24-.249.498-.279.768h2.679v-.748H5.413c.081-.081.152-.151.212-.201.062-.05.182-.142.361-.27.303-.218.511-.42.626-.604.116-.186.173-.375.173-.578a.898.898 0 0 0-.151-.512.892.892 0 0 0-.412-.341c-.174-.076-.419-.111-.733-.111-.3 0-.537.038-.706.114a.889.889 0 0 0-.396.338c-.094.143-.159.346-.194.604l.894.076c.025-.188.074-.317.147-.394a.375.375 0 0 1 .279-.108c.11 0 .2.035.272.108a.344.344 0 0 1 .108.258.55.55 0 0 1-.108.297c-.074.102-.241.254-.503.453zm.055 6.386a.398.398 0 0 1-.282-.105c-.074-.07-.128-.195-.162-.378L4 18.085c.059.204.142.372.251.506.109.133.248.235.417.306.168.069.399.103.692.103.3 0 .541-.047.725-.14a1 1 0 0 0 .424-.403c.098-.175.146-.354.146-.544a.823.823 0 0 0-.088-.393.708.708 0 0 0-.249-.261 1.015 1.015 0 0 0-.286-.11.943.943 0 0 0 .345-.299.673.673 0 0 0 .113-.383.747.747 0 0 0-.281-.596c-.187-.159-.49-.238-.909-.238-.365 0-.648.072-.847.219-.2.143-.334.353-.404.626l.844.151c.023-.162.067-.274.133-.338s.151-.098.257-.098a.33.33 0 0 1 .241.089c.059.06.087.139.087.238 0 .104-.038.193-.117.27s-.177.112-.293.112a.907.907 0 0 1-.116-.011l-.045.649a1.13 1.13 0 0 1 .289-.056c.132 0 .237.041.313.126.077.082.115.199.115.352 0 .146-.04.266-.119.354a.394.394 0 0 1-.301.134zm.948-10.083V5h-.739a1.47 1.47 0 0 1-.394.523c-.168.142-.404.262-.708.365v.754a2.595 2.595 0 0 0 .937-.48v2.206h.904zM9 6h11v2H9zm0 5h11v2H9zm0 5h11v2H9z\"}}]})(props);\n};\nexport function BiListPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 15v-3h-2v3h-3v2h3v3h2v-3h3v-2h-.937zM4 7h11v2H4zm0 4h11v2H4zm0 4h8v2H4z\"}}]})(props);\n};\nexport function BiListUl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h2v2H4zm0 5h2v2H4zm0 5h2v2H4zm16-8V6H8.023v2H18.8zM8 11h12v2H8zm0 5h12v2H8z\"}}]})(props);\n};\nexport function BiLoaderAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c5.421 0 10-4.579 10-10h-2c0 4.337-3.663 8-8 8s-8-3.663-8-8c0-4.336 3.663-8 8-8V2C6.579 2 2 6.58 2 12c0 5.421 4.579 10 10 10z\"}}]})(props);\n};\nexport function BiLoaderCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"20\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.343\",\"cy\":\"17.657\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.657\",\"cy\":\"6.343\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"12\",\"r\":\"2.001\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.343\",\"cy\":\"6.344\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.657\",\"cy\":\"17.658\",\"r\":\"2\"}}]})(props);\n};\nexport function BiLoader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 11h5v2H2zm15 0h5v2h-5zm-6 6h2v5h-2zm0-15h2v5h-2zM4.222 5.636l1.414-1.414 3.536 3.536-1.414 1.414zm15.556 12.728-1.414 1.414-3.536-3.536 1.414-1.414zm-12.02-3.536 1.414 1.414-3.536 3.536-1.414-1.414zm7.07-7.071 3.536-3.535 1.414 1.415-3.536 3.535z\"}}]})(props);\n};\nexport function BiLocationPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.42 21.815a1.004 1.004 0 0 0 1.16 0C12.884 21.598 20.029 16.44 20 10c0-4.411-3.589-8-8-8S4 5.589 4 9.996c-.029 6.444 7.116 11.602 7.42 11.819zM12 4c3.309 0 6 2.691 6 6.004.021 4.438-4.388 8.423-6 9.731-1.611-1.308-6.021-5.293-6-9.735 0-3.309 2.691-6 6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14h2v-3h3V9h-3V6h-2v3H8v2h3z\"}}]})(props);\n};\nexport function BiLockAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C9.243 2 7 4.243 7 7v3H6c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-8c0-1.103-.897-2-2-2h-1V7c0-2.757-2.243-5-5-5zm6 10 .002 8H6v-8h12zm-9-2V7c0-1.654 1.346-3 3-3s3 1.346 3 3v3H9z\"}}]})(props);\n};\nexport function BiLockOpenAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 8V7c0-2.757-2.243-5-5-5S7 4.243 7 7v3H6c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-8c0-1.103-.897-2-2-2H9V7c0-1.654 1.346-3 3-3s3 1.346 3 3v1h2zm1 4 .002 8H6v-8h12z\"}}]})(props);\n};\nexport function BiLockOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4c1.654 0 3 1.346 3 3h2c0-2.757-2.243-5-5-5S7 4.243 7 7v2H6c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2H9V7c0-1.654 1.346-3 3-3zm6.002 16H13v-2.278c.595-.347 1-.985 1-1.722 0-1.103-.897-2-2-2s-2 .897-2 2c0 .736.405 1.375 1 1.722V20H6v-9h12l.002 9z\"}}]})(props);\n};\nexport function BiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C9.243 2 7 4.243 7 7v2H6c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-1V7c0-2.757-2.243-5-5-5zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v2H9V7zm9.002 13H13v-2.278c.595-.347 1-.985 1-1.722 0-1.103-.897-2-2-2s-2 .897-2 2c0 .736.405 1.375 1 1.722V20H6v-9h12l.002 9z\"}}]})(props);\n};\nexport function BiLogInCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.998 16 5-4-5-4v3h-9v2h9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.999 2.999a8.938 8.938 0 0 0-6.364 2.637L8.049 7.05c1.322-1.322 3.08-2.051 4.95-2.051s3.628.729 4.95 2.051S20 10.13 20 12s-.729 3.628-2.051 4.95-3.08 2.051-4.95 2.051-3.628-.729-4.95-2.051l-1.414 1.414c1.699 1.7 3.959 2.637 6.364 2.637s4.665-.937 6.364-2.637C21.063 16.665 22 14.405 22 12s-.937-4.665-2.637-6.364a8.938 8.938 0 0 0-6.364-2.637z\"}}]})(props);\n};\nexport function BiLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13 16 5-4-5-4v3H4v2h9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3h-9c-1.103 0-2 .897-2 2v4h2V5h9v14h-9v-4H9v4c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z\"}}]})(props);\n};\nexport function BiLogOutCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2 12 5 4v-3h9v-2H7V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.001 2.999a8.938 8.938 0 0 0-6.364 2.637L8.051 7.05c1.322-1.322 3.08-2.051 4.95-2.051s3.628.729 4.95 2.051 2.051 3.08 2.051 4.95-.729 3.628-2.051 4.95-3.08 2.051-4.95 2.051-3.628-.729-4.95-2.051l-1.414 1.414c1.699 1.7 3.959 2.637 6.364 2.637s4.665-.937 6.364-2.637c1.7-1.699 2.637-3.959 2.637-6.364s-.937-4.665-2.637-6.364a8.938 8.938 0 0 0-6.364-2.637z\"}}]})(props);\n};\nexport function BiLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13v-2H7V8l-5 4 5 4v-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3h-9c-1.103 0-2 .897-2 2v4h2V5h9v14h-9v-4H9v4c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z\"}}]})(props);\n};\nexport function BiLowVision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.998c-1.836 0-3.356.389-4.617.971L3.707 2.293 2.293 3.707l3.315 3.316c-2.613 1.952-3.543 4.618-3.557 4.66l-.105.316.105.316C2.073 12.382 4.367 19 12 19c1.835 0 3.354-.389 4.615-.971l3.678 3.678 1.414-1.414-3.317-3.317c2.614-1.952 3.545-4.618 3.559-4.66l.105-.316-.105-.316c-.022-.068-2.316-6.686-9.949-6.686zM4.074 12c.103-.236.274-.586.521-.989l5.867 5.867C6.249 16.23 4.523 13.035 4.074 12zm9.247 4.907-7.48-7.481a8.138 8.138 0 0 1 1.188-.982l8.055 8.054a8.835 8.835 0 0 1-1.763.409zm3.648-1.352-1.541-1.541c.354-.596.572-1.28.572-2.015 0-.474-.099-.924-.255-1.349A.983.983 0 0 1 15 11a1 1 0 0 1-1-1c0-.439.288-.802.682-.936A3.97 3.97 0 0 0 12 7.999c-.735 0-1.419.218-2.015.572l-1.07-1.07A9.292 9.292 0 0 1 12 6.998c5.351 0 7.425 3.847 7.926 5a8.573 8.573 0 0 1-2.957 3.557z\"}}]})(props);\n};\nexport function BiMagnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3h-3c-1.103 0-2 .897-2 2v8c0 1.103-.897 2-2 2s-2-.897-2-2V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v8c0 4.963 4.037 9 9 9s9-4.037 9-9V5c0-1.103-.897-2-2-2zm-3 2h3v3h-3V5zM5 5h3v3H5V5zm7 15c-3.859 0-7-3.141-7-7v-3h3v3c0 2.206 1.794 4 4 4s4-1.794 4-4v-3h3v3c0 3.859-3.141 7-7 7z\"}}]})(props);\n};\nexport function BiMailSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H6c-1.103 0-2 .897-2 2v5h2V8l6.4 4.8a1.001 1.001 0 0 0 1.2 0L20 8v9h-8v2h8c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm-7 6.75L6.666 6h12.668L13 10.75z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 12h7v2H2zm2 3h6v2H4zm3 3h4v2H7z\"}}]})(props);\n};\nexport function BiMaleSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11V4h-7l2.793 2.793-4.322 4.322A5.961 5.961 0 0 0 8 10c-3.309 0-6 2.691-6 6s2.691 6 6 6 6-2.691 6-6c0-1.294-.416-2.49-1.115-3.471l4.322-4.322L20 11zM8 20c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4z\"}}]})(props);\n};\nexport function BiMale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7H9a1 1 0 0 0-1 1v7h2v7h4v-7h2V8a1 1 0 0 0-1-1z\"}}]})(props);\n};\nexport function BiMapAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.447 6.105-6-3a1 1 0 0 0-.895 0L9 5.882 3.447 3.105A1 1 0 0 0 2 4v13c0 .379.214.725.553.895l6 3a1 1 0 0 0 .895 0L15 18.118l5.553 2.776a.992.992 0 0 0 .972-.043c.295-.183.475-.504.475-.851V7c0-.379-.214-.725-.553-.895zM10 7.618l4-2v10.764l-4 2V7.618zm-6-2 4 2v10.764l-4-2V5.618zm16 12.764-4-2V5.618l4 2v10.764z\"}}]})(props);\n};\nexport function BiMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 17 1-2V9.858c1.721-.447 3-2 3-3.858 0-2.206-1.794-4-4-4S8 3.794 8 6c0 1.858 1.279 3.411 3 3.858V15l1 2zM10 6c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2-2-.897-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.267 10.563-.533 1.928C18.325 13.207 20 14.584 20 16c0 1.892-3.285 4-8 4s-8-2.108-8-4c0-1.416 1.675-2.793 4.267-3.51l-.533-1.928C4.197 11.54 2 13.623 2 16c0 3.364 4.393 6 10 6s10-2.636 10-6c0-2.377-2.197-4.46-5.733-5.437z\"}}]})(props);\n};\nexport function BiMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.42 21.814a.998.998 0 0 0 1.16 0C12.884 21.599 20.029 16.44 20 10c0-4.411-3.589-8-8-8S4 5.589 4 9.995c-.029 6.445 7.116 11.604 7.42 11.819zM12 4c3.309 0 6 2.691 6 6.005.021 4.438-4.388 8.423-6 9.73-1.611-1.308-6.021-5.294-6-9.735 0-3.309 2.691-6 6-6z\"}}]})(props);\n};\nexport function BiMask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6H5C3.346 6 2 7.346 2 9v5c0 2.206 1.794 4 4 4h1.637c1.166 0 2.28-.557 2.981-1.491.66-.879 2.104-.88 2.764.001A3.744 3.744 0 0 0 16.363 18H18c2.206 0 4-1.794 4-4V9c0-1.654-1.346-3-3-3zm1 8c0 1.103-.897 2-2 2h-1.637c-.54 0-1.057-.259-1.382-.69-.71-.948-1.797-1.492-2.981-1.492s-2.271.544-2.981 1.491A1.741 1.741 0 0 1 7.637 16H6c-1.103 0-2-.897-2-2V9c0-.551.448-1 1-1h14c.552 0 1 .449 1 1v5z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"11.5\",\"rx\":\"2.5\",\"ry\":\"1.5\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"11.5\",\"rx\":\"2.5\",\"ry\":\"1.5\"}}]})(props);\n};\nexport function BiMedal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c3.859 0 7-3.141 7-7s-3.141-7-7-7c-3.86 0-7 3.141-7 7s3.14 7 7 7zm0-12c2.757 0 5 2.243 5 5s-2.243 5-5 5-5-2.243-5-5 2.243-5 5-5zm-1-8H7v5.518a8.957 8.957 0 0 1 4-1.459V2zm6 0h-4v4.059a8.957 8.957 0 0 1 4 1.459V2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10.019 15.811-.468 2.726L12 17.25l2.449 1.287-.468-2.726 1.982-1.932-2.738-.398L12 11l-1.225 2.481-2.738.398z\"}}]})(props);\n};\nexport function BiMehAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10h4v2h-4zm-6.026 5H16v2H7.974zM6 10h4v2H6z\"}}]})(props);\n};\nexport function BiMehBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"10.493\",\"r\":\"1.493\"}}]})(props);\n};\nexport function BiMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"10.493\",\"r\":\"1.493\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7.974 15H16v2H7.974z\"}}]})(props);\n};\nexport function BiMemoryCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v16c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V8a.997.997 0 0 0-.293-.707l-5-5A.996.996 0 0 0 14 2H6c-1.103 0-2 .897-2 2zm14 4.414L18.001 20H6V4h7.586L18 8.414z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 6h2v4H8zm4 0h2v4h-2z\"}}]})(props);\n};\nexport function BiMenuAltLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11h12v2H4zm0-5h16v2H4zm0 12h7.235v-2H4z\"}}]})(props);\n};\nexport function BiMenuAltRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h16v2H4zm4 5h12v2H8zm5 5h7v2h-7z\"}}]})(props);\n};\nexport function BiMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z\"}}]})(props);\n};\nexport function BiMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19v-9a2 2 0 0 0-2-2h-1v8a2 2 0 0 1-2 2H8v1a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2z\"}}]})(props);\n};\nexport function BiMessageAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14h2v-3h3V9h-3V6h-2v3H8v2h3z\"}}]})(props);\n};\nexport function BiMessageAltAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 16c0 1.103.897 2 2 2h3.586L12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v12zM5 4h14v12h-4.414L12 18.586 9.414 16H5V4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 14h2v-3h3V9h-3V6h-2v3H8v2h3z\"}}]})(props);\n};\nexport function BiMessageAltCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 4v12c0 1.103.897 2 2 2h3.586L12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2zm2 0h14v12h-4.414L12 18.586 9.414 16H5V4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.207 7.207-1.414-1.414L11 10.586 8.707 8.293 7.293 9.707 11 13.414z\"}}]})(props);\n};\nexport function BiMessageAltDetail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3.586L12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5zm14 14h-4.414L12 18.586 9.414 16H5V4h14v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v2H7zm0 4h7v2H7z\"}}]})(props);\n};\nexport function BiMessageAltDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3.586L12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-4.414L12 18.586 9.414 16H5V4h14v12z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"10\",\"r\":\"2\"}}]})(props);\n};\nexport function BiMessageAltEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.586 18 12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3.586zM5 4h14v12h-4.414L12 18.586 9.414 16H5V4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12.479 7.219-4.977 4.969v1.799h1.8l4.975-4.969zm2.219-2.22 1.8 1.8-1.37 1.37-1.8-1.799z\"}}]})(props);\n};\nexport function BiMessageAltError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 2c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3.586L12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5zm14 14h-4.414L12 18.586 9.414 16H5V4h14v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v6h-2zm0 7h2v2h-2z\"}}]})(props);\n};\nexport function BiMessageAltMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.586 18 12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3.586zM5 4h14v12h-4.414L12 18.586 9.414 16H5V4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9h8v2H8z\"}}]})(props);\n};\nexport function BiMessageAltX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.586 18 12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3.586zM5 4h14v12h-4.414L12 18.586 9.414 16H5V4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.707 13.707 12 11.414l2.293 2.293 1.414-1.414L13.414 10l2.293-2.293-1.414-1.414L12 8.586 9.707 6.293 8.293 7.707 10.586 10l-2.293 2.293z\"}}]})(props);\n};\nexport function BiMessageAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3.586L12 21.414 15.414 18H19c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-4.414L12 18.586 9.414 16H5V4h14v12z\"}}]})(props);\n};\nexport function BiMessageCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.207 7.207-1.414-1.414L11 10.586 8.707 8.293 7.293 9.707 11 13.414z\"}}]})(props);\n};\nexport function BiMessageDetail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v2H7zm0 4h7v2H7z\"}}]})(props);\n};\nexport function BiMessageDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.766L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.234V16H4V4h16v12z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15\",\"cy\":\"10\",\"r\":\"2\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"10\",\"r\":\"2\"}}]})(props);\n};\nexport function BiMessageEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m13.803 9.189-1.399-1.398-3.869 3.864v1.399h1.399zm.327-3.123 1.398 1.399-1.066 1.066-1.399-1.398z\"}}]})(props);\n};\nexport function BiMessageError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v5h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function BiMessageMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9h8v2H8z\"}}]})(props);\n};\nexport function BiMessageRoundedAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.515 5 6.934V22l5.34-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h-2v3H8v2h3v3h2v-3h3V9h-3z\"}}]})(props);\n};\nexport function BiMessageRoundedCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.515 5 6.934V22l5.339-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 11.586 8.707 9.293l-1.414 1.414L11 14.414l6.207-6.207-1.414-1.414z\"}}]})(props);\n};\nexport function BiMessageRoundedDetail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.515 5 6.934V22l5.34-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v2H7zm0 4h7v2H7z\"}}]})(props);\n};\nexport function BiMessageRoundedDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.897 5.515 5 6.934V22l5.34-4.004C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.671 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}}]})(props);\n};\nexport function BiMessageRoundedEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.515 5 6.934V22l5.34-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.503 11.589v1.398h1.398l3.87-3.864-1.399-1.398zm5.927-3.125-1.398-1.398 1.067-1.067 1.398 1.398z\"}}]})(props);\n};\nexport function BiMessageRoundedError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.515 5 6.934V22l5.34-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v5h-2zm0 6h2v2h-2z\"}}]})(props);\n};\nexport function BiMessageRoundedMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.515 5 6.934V22l5.34-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9h8v2H8z\"}}]})(props);\n};\nexport function BiMessageRoundedX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.515 5 6.934V22l5.34-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.293 6.293 12 8.586 9.707 6.293 8.293 7.707 10.586 10l-2.293 2.293 1.414 1.414L12 11.414l2.293 2.293 1.414-1.414L13.414 10l2.293-2.293z\"}}]})(props);\n};\nexport function BiMessageRounded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 5.589 2 10c0 2.908 1.898 5.516 5 6.934V22l5.34-4.005C17.697 17.852 22 14.32 22 10c0-4.411-4.486-8-10-8zm0 14h-.333L9 18v-2.417l-.641-.247C5.67 14.301 4 12.256 4 10c0-3.309 3.589-6 8-6s8 2.691 8 6-3.589 6-8 6z\"}}]})(props);\n};\nexport function BiMessageSquareAdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v13a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 14c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4z\"}}]})(props);\n};\nexport function BiMessageSquareCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v13a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 14c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 13.586-2.293-2.293-1.414 1.414L11 16.414l6.207-6.207-1.414-1.414z\"}}]})(props);\n};\nexport function BiMessageSquareDetail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v13a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 14c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9h10v2H7zm0 4h7v2H7z\"}}]})(props);\n};\nexport function BiMessageSquareDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v12a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 13c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v7z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"11.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiMessageSquareEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v13a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 14c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 14.987v1.999h1.999l5.529-5.522-1.998-1.998zm8.47-4.465-1.998-2L14.995 7l2 1.999z\"}}]})(props);\n};\nexport function BiMessageSquareError (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v13a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 14c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v8h-2zm0 10h2v2h-2z\"}}]})(props);\n};\nexport function BiMessageSquareMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v13a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 14c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 11h8v2H8z\"}}]})(props);\n};\nexport function BiMessageSquareX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v13a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 14c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.292 7.295 12 10.587 8.708 7.295 7.294 8.709l3.292 3.292-3.292 3.292 1.414 1.414L12 13.415l3.292 3.292 1.414-1.414-3.292-3.292 3.292-3.292z\"}}]})(props);\n};\nexport function BiMessageSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8C4.691 2 2 4.691 2 8v12a1 1 0 0 0 1 1h13c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm4 13c0 2.206-1.794 4-4 4H4V8c0-2.206 1.794-4 4-4h8c2.206 0 4 1.794 4 4v7z\"}}]})(props);\n};\nexport function BiMessageX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.707 13.707 12 11.414l2.293 2.293 1.414-1.414L13.414 10l2.293-2.293-1.414-1.414L12 8.586 9.707 6.293 8.293 7.707 10.586 10l-2.293 2.293z\"}}]})(props);\n};\nexport function BiMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h3v3.767L13.277 18H20c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm0 14h-7.277L9 18.233V16H4V4h16v12z\"}}]})(props);\n};\nexport function BiMeteor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 22c2.003 0 3.887-.78 5.313-2.207l6.904-7.096A1 1 0 0 0 21 11h-3.301l4.175-7.514a1.001 1.001 0 0 0-1.359-1.36l-7.11 3.95.576-2.879a1 1 0 0 0-1.629-.957L4.196 9.197c-2.924 2.924-2.924 7.682 0 10.606A7.452 7.452 0 0 0 9.5 22zM5.552 10.665l5.902-5.031-.248 1.24-.186.93v.001l-.424 2.119 7.83-4.35-3.3 5.94-.001.001L14.301 13h4.331l-5.243 5.389C12.35 19.428 10.969 20 9.5 20s-2.851-.572-3.89-1.611c-2.143-2.144-2.143-5.634-.058-7.724z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 18a3.492 3.492 0 0 0 1.484-6.659c.005.053.016.105.016.159a1.5 1.5 0 1 1-3 0c0-.054.011-.106.016-.159A3.492 3.492 0 0 0 9.5 18z\"}}]})(props);\n};\nexport function BiMicrochip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 2H8c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h8c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM8 20V4h8l.001 16H8zM3 7h2V5H3v.5H2v1h1zm18-2h-2v2h2v-.5h1v-1h-1zM3 11h2V9H3v.5H2v1h1zm18-2h-2v2h2v-.5h1v-1h-1zM3 15h2v-2H3v.5H2v1h1zm18-2h-2v2h2v-.5h1v-1h-1zM3 19h2v-2H3v.5H2v1h1zm18-2h-2v2h2v-.5h1v-1h-1z\"}}]})(props);\n};\nexport function BiMicrophoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.707 20.293-3.388-3.388A7.942 7.942 0 0 0 20 12.021h-2a5.95 5.95 0 0 1-1.109 3.456l-1.452-1.452c.348-.591.561-1.27.561-2.004v-6C16 3.804 14.215 2 12.021 2c-.07 0-.14.009-.209.025A4.005 4.005 0 0 0 8 6.021v.565L3.707 2.293 2.293 3.707l18 18 1.414-1.414zM10 6.021c0-1.103.897-2 2-2a.918.918 0 0 0 .164-.015C13.188 4.08 14 4.956 14 6.021v6c0 .172-.029.335-.071.494L10 8.586V6.021zm-4 6H4c0 4.072 3.06 7.436 7 7.931v2.069h2v-2.07a7.993 7.993 0 0 0 2.218-.611l-1.558-1.558a5.979 5.979 0 0 1-1.66.239c-3.309 0-6-2.692-6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.011 12.132a3.993 3.993 0 0 0 3.877 3.877l-3.877-3.877z\"}}]})(props);\n};\nexport function BiMicrophone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12V6c0-2.217-1.785-4.021-3.979-4.021a.933.933 0 0 0-.209.025A4.006 4.006 0 0 0 8 6v6c0 2.206 1.794 4 4 4s4-1.794 4-4zm-6 0V6c0-1.103.897-2 2-2a.89.89 0 0 0 .163-.015C13.188 4.06 14 4.935 14 6v6c0 1.103-.897 2-2 2s-2-.897-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12H4c0 4.072 3.061 7.436 7 7.931V22h2v-2.069c3.939-.495 7-3.858 7-7.931h-2c0 3.309-2.691 6-6 6s-6-2.691-6-6z\"}}]})(props);\n};\nexport function BiMinusBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h3v3c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-3V5c0-1.103-.897-2-2-2zM5 5h9l-.003 9H5V5z\"}}]})(props);\n};\nexport function BiMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11h10v2H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiMinusFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16h3v3c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-3V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2zm13.997 3H10v-9h9l-.003 9z\"}}]})(props);\n};\nexport function BiMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 11h14v2H5z\"}}]})(props);\n};\nexport function BiMobileAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.75 2h-10c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm-10 18V4h10l.002 16H6.75z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11.75\",\"cy\":\"18\",\"r\":\"1\"}}]})(props);\n};\nexport function BiMobileLandscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 5H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V7c0-1.103-.897-2-2-2zM7.001 7H19v10H7.001V7z\"}}]})(props);\n};\nexport function BiMobileVibration (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.535 2.808c-.756-.756-2.072-.756-2.828 0l-9.899 9.899a2.001 2.001 0 0 0 0 2.828l5.657 5.657c.378.378.88.586 1.414.586s1.036-.208 1.414-.586l9.899-9.899c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-5.657-5.657zm-5.656 16.97v1-1l-5.657-5.657 9.899-9.899 5.657 5.657-9.899 9.899z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"15\",\"r\":\"1\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15.707 21.707-1.414-1.414 6-6 1.414 1.415zM8.293 2.293l1.414 1.414-6 6-1.414-1.415z\"}}]})(props);\n};\nexport function BiMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 2H7c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM7 16.999V5h10l.002 11.999H7z\"}}]})(props);\n};\nexport function BiMoney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H3a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1zm-1 11a3 3 0 0 0-3 3H7a3 3 0 0 0-3-3V9a3 3 0 0 0 3-3h10a3 3 0 0 0 3 3v6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4-1.794-4-4-4zm0 6c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2z\"}}]})(props);\n};\nexport function BiMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.742 13.045a8.088 8.088 0 0 1-2.077.271c-2.135 0-4.14-.83-5.646-2.336a8.025 8.025 0 0 1-2.064-7.723A1 1 0 0 0 9.73 2.034a10.014 10.014 0 0 0-4.489 2.582c-3.898 3.898-3.898 10.243 0 14.143a9.937 9.937 0 0 0 7.072 2.93 9.93 9.93 0 0 0 7.07-2.929 10.007 10.007 0 0 0 2.583-4.491 1.001 1.001 0 0 0-1.224-1.224zm-2.772 4.301a7.947 7.947 0 0 1-5.656 2.343 7.953 7.953 0 0 1-5.658-2.344c-3.118-3.119-3.118-8.195 0-11.314a7.923 7.923 0 0 1 2.06-1.483 10.027 10.027 0 0 0 2.89 7.848 9.972 9.972 0 0 0 7.848 2.891 8.036 8.036 0 0 1-1.484 2.059z\"}}]})(props);\n};\nexport function BiMouseAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2h-2C7.691 2 5 4.691 5 8v8c0 3.309 2.691 6 6 6h2c3.309 0 6-2.691 6-6V8c0-3.309-2.691-6-6-6zm-2 2v6H7V8c0-2.206 1.794-4 4-4zm6 12c0 2.206-1.794 4-4 4h-2c-2.206 0-4-1.794-4-4v-4h10v4zm-4-6V4c2.206 0 4 1.794 4 4v2h-4z\"}}]})(props);\n};\nexport function BiMouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.975 22H12c3.859 0 7-3.14 7-7V9c0-3.841-3.127-6.974-6.981-7h-.06C8.119 2.022 5 5.157 5 9v6c0 3.86 3.129 7 6.975 7zM7 9a5.007 5.007 0 0 1 4.985-5C14.75 4.006 17 6.249 17 9v6c0 2.757-2.243 5-5 5h-.025C9.186 20 7 17.804 7 15V9z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6h2v6h-2z\"}}]})(props);\n};\nexport function BiMoveHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 11H7V7l-5 5 5 5v-4h10v4l5-5-5-5z\"}}]})(props);\n};\nexport function BiMoveVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7 17 5 5 5-5h-4V7h4l-5-5-5 5h4v10z\"}}]})(props);\n};\nexport function BiMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 11h-5V6h3l-4-4-4 4h3v5H6V8l-4 4 4 4v-3h5v5H8l4 4 4-4h-3v-5h5v3l4-4-4-4z\"}}]})(props);\n};\nexport function BiMoviePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zm.001 6c-.001 0-.001 0 0 0h-.465l-2.667-4H20l.001 4zM9.536 9 6.869 5h2.596l2.667 4H9.536zm5 0-2.667-4h2.596l2.667 4h-2.596zM4 5h.465l2.667 4H4V5zm0 14v-8h16l.002 8H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 18 5.5-3-5.5-3z\"}}]})(props);\n};\nexport function BiMovie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zm.001 6c-.001 0-.001 0 0 0h-.466l-2.667-4H20l.001 4zM9.535 9 6.868 5h2.597l2.667 4H9.535zm5 0-2.667-4h2.597l2.667 4h-2.597zM4 5h.465l2.667 4H4V5zm0 14v-8h16l.002 8H4z\"}}]})(props);\n};\nexport function BiMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.684 5.821-9-3.272A1.998 1.998 0 0 0 8 4.428v6.129A3.953 3.953 0 0 0 6 10c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4V4.428L19 7.7v6.856A3.962 3.962 0 0 0 17 14c-2.206 0-4 1.794-4 4s1.794 4 4 4 4-1.794 4-4V7.7c0-.838-.529-1.594-1.316-1.879zM6 16c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2zm11 4c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2z\"}}]})(props);\n};\nexport function BiNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.002 9.63c-.023.411.207.794.581.966l7.504 3.442 3.442 7.503c.164.356.52.583.909.583l.057-.002a1 1 0 0 0 .894-.686l5.595-17.032c.117-.358.023-.753-.243-1.02s-.66-.358-1.02-.243L2.688 8.736a1 1 0 0 0-.686.894zm16.464-3.971-4.182 12.73-2.534-5.522a.998.998 0 0 0-.492-.492L5.734 9.841l12.732-4.182z\"}}]})(props);\n};\nexport function BiNetworkChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3c-1.654 0-3 1.346-3 3 0 .502.136.968.354 1.385l-1.116 1.302A3.976 3.976 0 0 0 13 8c-.739 0-1.425.216-2.02.566L9.566 7.152A3.449 3.449 0 0 0 10 5.5C10 3.57 8.43 2 6.5 2S3 3.57 3 5.5 4.57 9 6.5 9c.601 0 1.158-.166 1.652-.434L9.566 9.98A3.972 3.972 0 0 0 9 12c0 .997.38 1.899.985 2.601l-1.692 1.692.025.025A2.962 2.962 0 0 0 7 16c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3c0-.476-.121-.919-.318-1.318l.025.025 1.954-1.954c.421.15.867.247 1.339.247 2.206 0 4-1.794 4-4a3.96 3.96 0 0 0-.439-1.785l1.253-1.462c.364.158.764.247 1.186.247 1.654 0 3-1.346 3-3s-1.346-3-3-3zM7 20a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM5 5.5C5 4.673 5.673 4 6.5 4S8 4.673 8 5.5 7.327 7 6.5 7 5 6.327 5 5.5zm8 8.5c-1.103 0-2-.897-2-2s.897-2 2-2 2 .897 2 2-.897 2-2 2zm6-7a1 1 0 1 1 0-2 1 1 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiNews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.875 3H4.125C2.953 3 2 3.897 2 5v14c0 1.103.953 2 2.125 2h15.75C21.047 21 22 20.103 22 19V5c0-1.103-.953-2-2.125-2zm0 16H4.125c-.057 0-.096-.016-.113-.016-.007 0-.011.002-.012.008L3.988 5.046c.007-.01.052-.046.137-.046h15.75c.079.001.122.028.125.008l.012 13.946c-.007.01-.052.046-.137.046z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7h6v6H6zm7 8H6v2h12v-2h-4zm1-4h4v2h-4zm0-4h4v2h-4z\"}}]})(props);\n};\nexport function BiNoEntry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 10h10v4H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 3H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h8a.996.996 0 0 0 .707-.293l7-7a.997.997 0 0 0 .196-.293c.014-.03.022-.061.033-.093a.991.991 0 0 0 .051-.259c.002-.021.013-.041.013-.062V5c0-1.103-.897-2-2-2zM5 5h14v7h-6a1 1 0 0 0-1 1v6H5V5zm9 12.586V14h3.586L14 17.586z\"}}]})(props);\n};\nexport function BiNotepad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 4h-3V2h-2v2h-4V2H8v2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM5 20V7h14V6l.002 14H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 9h10v2H7zm0 4h5v2H7z\"}}]})(props);\n};\nexport function BiNotificationOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.71 20.296-1.786-1.786c.045-.163.076-.332.076-.51v-7h-2v5.586L7.414 6H13V4H6c-.178 0-.347.031-.51.076l-1.78-1.78L2.296 3.71l18 18 1.414-1.414zM4 8.121V18c0 1.103.897 2 2 2h9.879l-2-2H6v-7.879l-2-2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"}}]})(props);\n};\nexport function BiNotification (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 19H5V6h8c0-.712.153-1.387.422-2H5c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h13c1.103 0 2-.897 2-2v-8.422A4.962 4.962 0 0 1 18 11v8z\"}}]})(props);\n};\nexport function BiOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19v-9c0-1.103-.897-2-2-2h-3V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h3v3c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2zM5 14V5h9v3h-4c-1.103 0-2 .897-2 2v4H5zm9.001 0H10v-4h4.001v4zM10 16h4c1.103 0 2-.897 2-2v-4h3l.001 9H10v-3z\"}}]})(props);\n};\nexport function BiPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 8a.76.76 0 0 0 0-.21v-.08a.77.77 0 0 0-.07-.16.35.35 0 0 0-.05-.08l-.1-.13-.08-.06-.12-.09-9-5a1 1 0 0 0-1 0l-9 5-.09.07-.11.08a.41.41 0 0 0-.07.11.39.39 0 0 0-.08.1.59.59 0 0 0-.06.14.3.3 0 0 0 0 .1A.76.76 0 0 0 2 8v8a1 1 0 0 0 .52.87l9 5a.75.75 0 0 0 .13.06h.1a1.06 1.06 0 0 0 .5 0h.1l.14-.06 9-5A1 1 0 0 0 22 16V8zm-10 3.87L5.06 8l2.76-1.52 6.83 3.9zm0-7.72L18.94 8 16.7 9.25 9.87 5.34zM4 9.7l7 3.92v5.68l-7-3.89zm9 9.6v-5.68l3-1.68V15l2-1v-3.18l2-1.11v5.7z\"}}]})(props);\n};\nexport function BiPaintRoll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H7c-1.103 0-2 .897-2 2v3c0 1.103.897 2 2 2h11c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM7 7V4h11l.002 3H7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 15v-2c0-1.103-.897-2-2-2H4V5c-1.103 0-2 .897-2 2v4c0 1.103.897 2 2 2h7v2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1z\"}}]})(props);\n};\nexport function BiPaint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.061 22c1.523 0 2.84-.543 3.91-1.613 1.123-1.123 1.707-2.854 1.551-4.494l8.564-8.564a3.123 3.123 0 0 0-.002-4.414c-1.178-1.18-3.234-1.18-4.412 0l-8.884 8.884c-1.913.169-3.807 1.521-3.807 3.919 0 .303.021.588.042.86.08 1.031.109 1.418-1.471 2.208a1.001 1.001 0 0 0-.122 1.717C2.52 20.563 4.623 22 7.061 22c-.001 0-.001 0 0 0zM18.086 4.328a1.144 1.144 0 0 1 1.586.002 1.12 1.12 0 0 1 0 1.584L12 13.586 10.414 12l7.672-7.672zM6.018 16.423c-.018-.224-.037-.458-.037-.706 0-1.545 1.445-1.953 2.21-1.953.356 0 .699.073.964.206.945.475 1.26 1.293 1.357 1.896.177 1.09-.217 2.368-.956 3.107C8.865 19.664 8.049 20 7.061 20H7.06c-.75 0-1.479-.196-2.074-.427 1.082-.973 1.121-1.989 1.032-3.15z\"}}]})(props);\n};\nexport function BiPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.4 2.096a10.08 10.08 0 0 0-8.937 3.331A10.054 10.054 0 0 0 2.096 13.4c.53 3.894 3.458 7.207 7.285 8.246a9.982 9.982 0 0 0 2.618.354l.142-.001a3.001 3.001 0 0 0 2.516-1.426 2.989 2.989 0 0 0 .153-2.879l-.199-.416a1.919 1.919 0 0 1 .094-1.912 2.004 2.004 0 0 1 2.576-.755l.412.197c.412.198.85.299 1.301.299A3.022 3.022 0 0 0 22 12.14a9.935 9.935 0 0 0-.353-2.76c-1.04-3.826-4.353-6.754-8.247-7.284zm5.158 10.909-.412-.197c-1.828-.878-4.07-.198-5.135 1.494-.738 1.176-.813 2.576-.204 3.842l.199.416a.983.983 0 0 1-.051.961.992.992 0 0 1-.844.479h-.112a8.061 8.061 0 0 1-2.095-.283c-3.063-.831-5.403-3.479-5.826-6.586-.321-2.355.352-4.623 1.893-6.389a8.002 8.002 0 0 1 7.16-2.664c3.107.423 5.755 2.764 6.586 5.826.198.73.293 1.474.282 2.207-.012.807-.845 1.183-1.441.894z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"7.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"10.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"14.5\",\"cy\":\"7.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.563 3.34a1.002 1.002 0 0 0-.989-.079l-17 8a1 1 0 0 0 .026 1.821L8 15.445v6.722l5.836-4.168 4.764 2.084a1 1 0 0 0 1.399-.85l1-15a1.005 1.005 0 0 0-.436-.893zm-2.466 14.34-5.269-2.306L16 9.167l-7.649 4.25-2.932-1.283 13.471-6.34-.793 11.886z\"}}]})(props);\n};\nexport function BiPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.004 5H9c-1.838 0-3.586.737-4.924 2.076C2.737 8.415 2 10.163 2 12c0 1.838.737 3.586 2.076 4.924C5.414 18.263 7.162 19 9 19h8v-2H9c-1.303 0-2.55-.529-3.51-1.49C4.529 14.55 4 13.303 4 12c0-1.302.529-2.549 1.49-3.51C6.45 7.529 7.697 7 9 7h8V6l.001 1h.003c.79 0 1.539.314 2.109.886.571.571.886 1.322.887 2.116a2.966 2.966 0 0 1-.884 2.11A2.988 2.988 0 0 1 17 13H9a.99.99 0 0 1-.698-.3A.991.991 0 0 1 8 12c0-.252.11-.507.301-.698A.987.987 0 0 1 9 11h8V9H9c-.79 0-1.541.315-2.114.889C6.314 10.461 6 11.211 6 12s.314 1.54.888 2.114A2.974 2.974 0 0 0 9 15h8.001a4.97 4.97 0 0 0 3.528-1.473 4.967 4.967 0 0 0-.001-7.055A4.95 4.95 0 0 0 17.004 5z\"}}]})(props);\n};\nexport function BiParagraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 16h2v4h2V6h2v14h2V6h3V4H9c-3.309 0-6 2.691-6 6s2.691 6 6 6zM9 6h2v8H9c-2.206 0-4-1.794-4-4s1.794-4 4-4z\"}}]})(props);\n};\nexport function BiPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11V5c0-1.103-.897-2-2-2h-3a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1H4c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h7c0 1.103.897 2 2 2h7c1.103 0 2-.897 2-2v-7c0-1.103-.897-2-2-2zm-9 2v5H4V5h3v2h8V5h3v6h-5c-1.103 0-2 .897-2 2zm2 7v-7h7l.001 7H13z\"}}]})(props);\n};\nexport function BiPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 9h2v6h-2zM9 9h2v6H9z\"}}]})(props);\n};\nexport function BiPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 7h3v10H8zm5 0h3v10h-3z\"}}]})(props);\n};\nexport function BiPen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.404 2.998c-.757-.754-2.077-.751-2.828.005l-1.784 1.791L11.586 7H7a.998.998 0 0 0-.939.658l-4 11c-.133.365-.042.774.232 1.049l2 2a.997.997 0 0 0 1.049.232l11-4A.998.998 0 0 0 17 17v-4.586l2.207-2.207v-.001h.001L21 8.409c.378-.378.586-.881.585-1.415 0-.535-.209-1.038-.588-1.415l-2.593-2.581zm-3.111 8.295A.996.996 0 0 0 15 12v4.3l-9.249 3.363 4.671-4.671c.026.001.052.008.078.008A1.5 1.5 0 1 0 9 13.5c0 .026.007.052.008.078l-4.671 4.671L7.7 9H12c.266 0 .52-.105.707-.293L14.5 6.914 17.086 9.5l-1.793 1.793zm3.206-3.208-2.586-2.586 1.079-1.084 2.593 2.581-1.086 1.089z\"}}]})(props);\n};\nexport function BiPencil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21a1 1 0 0 0 .24 0l4-1a1 1 0 0 0 .47-.26L21 7.41a2 2 0 0 0 0-2.82L19.42 3a2 2 0 0 0-2.83 0L4.3 15.29a1.06 1.06 0 0 0-.27.47l-1 4A1 1 0 0 0 3.76 21 1 1 0 0 0 4 21zM18 4.41 19.59 6 18 7.59 16.42 6zM5.91 16.51 15 7.41 16.59 9l-9.1 9.1-2.11.52z\"}}]})(props);\n};\nexport function BiPhoneCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.57 22a2 2 0 0 0 1.43-.59l2.71-2.71a1 1 0 0 0 0-1.41l-4-4a1 1 0 0 0-1.41 0l-1.6 1.59a7.55 7.55 0 0 1-3-1.59 7.62 7.62 0 0 1-1.59-3l1.59-1.6a1 1 0 0 0 0-1.41l-4-4a1 1 0 0 0-1.41 0L2.59 6A2 2 0 0 0 2 7.43 15.28 15.28 0 0 0 6.3 17.7 15.28 15.28 0 0 0 16.57 22zM6 5.41 8.59 8 7.3 9.29a1 1 0 0 0-.3.91 10.12 10.12 0 0 0 2.3 4.5 10.08 10.08 0 0 0 4.5 2.3 1 1 0 0 0 .91-.27L16 15.41 18.59 18l-2 2a13.28 13.28 0 0 1-8.87-3.71A13.28 13.28 0 0 1 4 7.41zM20 11h2a8.81 8.81 0 0 0-9-9v2a6.77 6.77 0 0 1 7 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8c2.1 0 3 .9 3 3h2c0-3.22-1.78-5-5-5z\"}}]})(props);\n};\nexport function BiPhoneIncoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.712 13.288a.999.999 0 0 0-1.414 0l-1.597 1.596c-.824-.245-2.166-.771-2.99-1.596-.874-.874-1.374-2.253-1.594-2.992l1.594-1.594a.999.999 0 0 0 0-1.414l-4-4a1.03 1.03 0 0 0-1.414 0l-2.709 2.71c-.382.38-.597.904-.588 1.437.022 1.423.396 6.367 4.297 10.268C10.195 21.6 15.142 21.977 16.566 22h.028c.528 0 1.027-.208 1.405-.586l2.712-2.712a.999.999 0 0 0 0-1.414l-3.999-4zM16.585 20c-1.248-.021-5.518-.356-8.874-3.712C4.343 12.92 4.019 8.636 4 7.414l2.004-2.005L8.59 7.995 7.297 9.288c-.238.238-.34.582-.271.912.024.115.611 2.842 2.271 4.502s4.387 2.247 4.502 2.271a.994.994 0 0 0 .912-.271l1.293-1.293 2.586 2.586L16.585 20z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.795 6.791 13.005 4v6.995H20l-2.791-2.79 4.503-4.503-1.414-1.414z\"}}]})(props);\n};\nexport function BiPhoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.09 12.5a8.92 8.92 0 0 1-1-2.2l1.59-1.59a1 1 0 0 0 0-1.42l-4-4a1 1 0 0 0-1.41 0L2.59 6A2 2 0 0 0 2 7.44 15.44 15.44 0 0 0 5.62 17L2.3 20.29l1.41 1.42 18-18-1.41-1.42zM7 15.55a13.36 13.36 0 0 1-3-8.13l2-2L8.59 8 7.3 9.29a1 1 0 0 0-.27.92 11 11 0 0 0 1.62 3.73zm9.71-2.26a1 1 0 0 0-1.41 0l-1.6 1.6-.34-.12-1.56 1.55a12.06 12.06 0 0 0 2 .66 1 1 0 0 0 .91-.27l1.3-1.3L18.59 18l-2 2A13.61 13.61 0 0 1 10 18.1l-1.43 1.45a15.63 15.63 0 0 0 8 2.45 2 2 0 0 0 1.43-.58l2.71-2.71a1 1 0 0 0 0-1.42z\"}}]})(props);\n};\nexport function BiPhoneOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.712 13.288a.999.999 0 0 0-1.414 0l-1.594 1.594c-.739-.22-2.118-.72-2.992-1.594s-1.374-2.253-1.594-2.992l1.594-1.594a.999.999 0 0 0 0-1.414l-4-4a.999.999 0 0 0-1.414 0L2.586 6c-.38.38-.594.902-.586 1.435.023 1.424.4 6.37 4.298 10.268S15.142 21.977 16.566 22h.028c.528 0 1.027-.208 1.405-.586l2.712-2.712a.999.999 0 0 0 0-1.414l-3.999-4zM16.585 20c-1.248-.021-5.518-.356-8.873-3.712C4.346 12.922 4.02 8.637 4 7.414l2.005-2.005 2.586 2.586-1.293 1.293a1 1 0 0 0-.272.912c.024.115.611 2.842 2.271 4.502s4.387 2.247 4.502 2.271a.993.993 0 0 0 .912-.271l1.293-1.293 2.586 2.586L16.585 20z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m16.795 5.791-4.497 4.497 1.414 1.414 4.497-4.497L21.005 10V2.995H14z\"}}]})(props);\n};\nexport function BiPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.707 12.293a.999.999 0 0 0-1.414 0l-1.594 1.594c-.739-.22-2.118-.72-2.992-1.594s-1.374-2.253-1.594-2.992l1.594-1.594a.999.999 0 0 0 0-1.414l-4-4a.999.999 0 0 0-1.414 0L3.581 5.005c-.38.38-.594.902-.586 1.435.023 1.424.4 6.37 4.298 10.268s8.844 4.274 10.269 4.298h.028c.528 0 1.027-.208 1.405-.586l2.712-2.712a.999.999 0 0 0 0-1.414l-4-4.001zm-.127 6.712c-1.248-.021-5.518-.356-8.873-3.712-3.366-3.366-3.692-7.651-3.712-8.874L7 4.414 9.586 7 8.293 8.293a1 1 0 0 0-.272.912c.024.115.611 2.842 2.271 4.502s4.387 2.247 4.502 2.271a.991.991 0 0 0 .912-.271L17 14.414 19.586 17l-2.006 2.005z\"}}]})(props);\n};\nexport function BiPhotoAlbum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.024 11.536 10 10l-2 3h9l-3.5-5z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9.503\",\"cy\":\"7.497\",\"r\":\"1.503\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H6c-1.206 0-3 .799-3 3v14c0 2.201 1.794 3 3 3h15v-2H6.012C5.55 19.988 5 19.806 5 19s.55-.988 1.012-1H21V4c0-1.103-.897-2-2-2zm0 14H5V5c0-.806.55-.988 1-1h13v12z\"}}]})(props);\n};\nexport function BiPieChartAlt2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm7.931 9H13V4.069A8.008 8.008 0 0 1 19.931 11zM4 12c0-4.072 3.061-7.436 7-7.931V12a.996.996 0 0 0 .111.438c.015.03.022.063.041.093l4.202 6.723A7.949 7.949 0 0 1 12 20c-4.411 0-8-3.589-8-8zm13.052 6.196L13.805 13h6.126a7.992 7.992 0 0 1-2.879 5.196z\"}}]})(props);\n};\nexport function BiPieChartAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a9.936 9.936 0 0 0-7.071 2.929C3.04 6.818 2 9.33 2 12s1.04 5.182 2.929 7.071C6.818 20.96 9.33 22 12 22s5.182-1.04 7.071-2.929C20.96 17.182 22 14.67 22 12s-1.04-5.182-2.929-7.071A9.936 9.936 0 0 0 12 2zm5.657 15.657C16.146 19.168 14.137 20 12 20s-4.146-.832-5.657-2.343C4.832 16.146 4 14.137 4 12s.832-4.146 2.343-5.657A7.927 7.927 0 0 1 11 4.069V12a1 1 0 0 0 1 1h7.931a7.927 7.927 0 0 1-2.274 4.657zM13 11V4.062a7.945 7.945 0 0 1 4.657 2.281A7.934 7.934 0 0 1 19.938 11H13z\"}}]})(props);\n};\nexport function BiPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.166V12h6.834A6.817 6.817 0 0 0 12 5.166z\"}}]})(props);\n};\nexport function BiPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 22 1-2v-3h5a1 1 0 0 0 1-1v-1.586c0-.526-.214-1.042-.586-1.414L17 11.586V8a1 1 0 0 0 1-1V4c0-1.103-.897-2-2-2H8c-1.103 0-2 .897-2 2v3a1 1 0 0 0 1 1v3.586L5.586 13A2.01 2.01 0 0 0 5 14.414V16a1 1 0 0 0 1 1h5v3l1 2zM8 4h8v2H8V4zM7 14.414l1.707-1.707A.996.996 0 0 0 9 12V8h6v4c0 .266.105.52.293.707L17 14.414V15H7v-.586z\"}}]})(props);\n};\nexport function BiPlanet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.76 20.2a2.73 2.73 0 0 0 2.15.85 8.86 8.86 0 0 0 3.37-.86 9 9 0 0 0 12.27-10.9c1.31-2.23 1.75-4.26.67-5.48a2.94 2.94 0 0 0-2.57-1A5 5 0 0 0 16.1 4 9 9 0 0 0 3.58 15.14c-1.06 1.21-2.05 3.68-.82 5.06zm1.5-1.32c-.22-.25 0-1.07.37-1.76a9.26 9.26 0 0 0 1.57 1.74c-1.03.3-1.71.28-1.94.02zm14.51-5.17A7 7 0 0 1 15.58 18 7.12 7.12 0 0 1 12 19a6.44 6.44 0 0 1-1.24-.13 30.73 30.73 0 0 0 4.42-3.29 31.5 31.5 0 0 0 3.8-4 6.88 6.88 0 0 1-.21 2.13zm.09-8.89a.94.94 0 0 1 .87.32c.23.26.16.94-.26 1.93a9.2 9.2 0 0 0-1.61-1.86 2.48 2.48 0 0 1 1-.39zM5.22 10.31A6.94 6.94 0 0 1 8.41 6 7 7 0 0 1 12 5a6.9 6.9 0 0 1 6 3.41 5.19 5.19 0 0 1 .35.66 27.43 27.43 0 0 1-4.49 5A27.35 27.35 0 0 1 8.35 18a7 7 0 0 1-3.13-7.65z\"}}]})(props);\n};\nexport function BiPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m9 17 8-5-8-5z\"}}]})(props);\n};\nexport function BiPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 6v12l10-6z\"}}]})(props);\n};\nexport function BiPlug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 8h2v5c0 2.206 1.794 4 4 4h2v5h2v-5h2c2.206 0 4-1.794 4-4V8h2V6H3v2zm4 0h10v5c0 1.103-.897 2-2 2H9c-1.103 0-2-.897-2-2V8zm0-6h2v3H7zm8 0h2v3h-2z\"}}]})(props);\n};\nexport function BiPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}}]})(props);\n};\nexport function BiPlusMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2.013H9V9H2v6h7v6.987h6V15h7V9h-7z\"}}]})(props);\n};\nexport function BiPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z\"}}]})(props);\n};\nexport function BiPodcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12.01\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.01 22h2l.5-7h-3l.5 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a10 10 0 0 0-2.45 19.68l-.15-2.12a8 8 0 1 1 5.21 0l-.15 2.12A10 10 0 0 0 12 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.32 9.61a3.44 3.44 0 0 1 .37.68 3.83 3.83 0 0 1 .23.75 3.57 3.57 0 0 1 .09.8 3.66 3.66 0 0 1-.09.81 3.83 3.83 0 0 1-.23.75 3.44 3.44 0 0 1-.37.68 4.7 4.7 0 0 1-.35.43l-.19 2.62a5.33 5.33 0 0 0 .58-.31A5.86 5.86 0 0 0 17 15.2a5.57 5.57 0 0 0 .55-1 5.89 5.89 0 0 0 .35-1.13 6.06 6.06 0 0 0 .1-1.23 6.22 6.22 0 0 0-.13-1.21A6.09 6.09 0 0 0 17 8.49a6.29 6.29 0 0 0-.73-.89 5.67 5.67 0 0 0-.89-.73 6.3 6.3 0 0 0-1-.56A6.17 6.17 0 0 0 13.21 6a6.11 6.11 0 0 0-2.41 0 5.51 5.51 0 0 0-1.13.36 5.57 5.57 0 0 0-1 .55 5.67 5.67 0 0 0-.89.73 6.29 6.29 0 0 0-.78.85 6.09 6.09 0 0 0-.9 2.14 6.21 6.21 0 0 0-.1 1.21 6.06 6.06 0 0 0 .12 1.21 5.89 5.89 0 0 0 .35 1.13 5.57 5.57 0 0 0 .55 1 6.24 6.24 0 0 0 1.62 1.62 5.33 5.33 0 0 0 .58.31L9 14.51a4.7 4.7 0 0 1-.35-.43 3.44 3.44 0 0 1-.37-.68 3.83 3.83 0 0 1-.23-.75 3.65 3.65 0 0 1-.05-.81 3.56 3.56 0 0 1 .08-.8 3.83 3.83 0 0 1 .23-.75 3.44 3.44 0 0 1 .37-.68 4 4 0 0 1 .5-.61 3.87 3.87 0 0 1 .59-.48 3.44 3.44 0 0 1 .68-.37 3.86 3.86 0 0 1 .75-.24 4.36 4.36 0 0 1 1.61 0 3.86 3.86 0 0 1 .75.24 3.58 3.58 0 0 1 1.27.85 3.49 3.49 0 0 1 .49.61z\"}}]})(props);\n};\nexport function BiPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.978 13.21a1 1 0 0 0-.396-1.024l-14-10a.999.999 0 0 0-1.575.931l2 17a1 1 0 0 0 1.767.516l3.612-4.416 3.377 5.46 1.701-1.052-3.357-5.428 6.089-1.218a.995.995 0 0 0 .782-.769zm-8.674.31a1 1 0 0 0-.578.347l-3.008 3.677L7.257 5.127l10.283 7.345-5.236 1.048z\"}}]})(props);\n};\nexport function BiPoll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11h7v2H7zm0-4h10.97v2H7zm0 8h13v2H7zM4 4h2v16H4z\"}}]})(props);\n};\nexport function BiPolygon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.707 2.293A.996.996 0 0 0 16 2H8a.996.996 0 0 0-.707.293l-5 5A.996.996 0 0 0 2 8v8c0 .266.105.52.293.707l5 5A.996.996 0 0 0 8 22h8c.266 0 .52-.105.707-.293l5-5A.996.996 0 0 0 22 16V8a.996.996 0 0 0-.293-.707l-5-5zM20 15.586 15.586 20H8.414L4 15.586V8.414L8.414 4h7.172L20 8.414v7.172z\"}}]})(props);\n};\nexport function BiPound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5.553 19.105.764 1.843C7.498 20.555 9.422 20 10 20c.838 0 1.462.208 2.184.448.775.259 1.654.552 2.816.552 1.177 0 3.078-.921 3.447-1.105l-.895-1.789c-.721.36-2.031.894-2.552.894-.838 0-1.462-.208-2.184-.448C12.041 18.293 11.162 18 10 18c-.229 0-.526.037-.857.099C9.702 16.95 10 15.561 10 14h3v-2H9.626c-.042-.107-.084-.216-.125-.317C9.243 11.052 9 10.455 9 9c0-1.369.521-3 3-3 2.224 0 3.021 2.227 3.052 2.316l1.896-.633C16.898 7.533 15.679 4 12 4 8.313 4 7 6.583 7 9c0 1.491.234 2.35.478 3H5v2h3c0 2.467-.892 4.328-2.447 5.105z\"}}]})(props);\n};\nexport function BiPowerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21c4.411 0 8-3.589 8-8 0-3.35-2.072-6.221-5-7.411v2.223A6 6 0 0 1 18 13c0 3.309-2.691 6-6 6s-6-2.691-6-6a5.999 5.999 0 0 1 3-5.188V5.589C6.072 6.779 4 9.65 4 13c0 4.411 3.589 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 2h2v10h-2z\"}}]})(props);\n};\nexport function BiPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7h-1V2H6v5H5c-1.654 0-3 1.346-3 3v7c0 1.103.897 2 2 2h2v3h12v-3h2c1.103 0 2-.897 2-2v-7c0-1.654-1.346-3-3-3zM8 4h8v3H8V4zm8 16H8v-4h8v4zm4-3h-2v-3H6v3H4v-7c0-.551.449-1 1-1h14c.552 0 1 .449 1 1v7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10h4v2h-4z\"}}]})(props);\n};\nexport function BiPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.97 4.757a.999.999 0 0 0-1.918-.073l-3.186 9.554-2.952-6.644a1.002 1.002 0 0 0-1.843.034L5.323 12H2v2h3.323c.823 0 1.552-.494 1.856-1.257l.869-2.172 3.037 6.835c.162.363.521.594.915.594l.048-.001a.998.998 0 0 0 .9-.683l2.914-8.742.979 3.911A1.995 1.995 0 0 0 18.781 14H22v-2h-3.22l-1.81-7.243z\"}}]})(props);\n};\nexport function BiPurchaseTagAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.707 2.293A.997.997 0 0 0 11 2H6a.997.997 0 0 0-.707.293l-3 3A.996.996 0 0 0 2 6v5c0 .266.105.52.293.707l10 10a.997.997 0 0 0 1.414 0l8-8a.999.999 0 0 0 0-1.414l-10-10zM13 19.586l-9-9V6.414L6.414 4h4.172l9 9L13 19.586z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.353\",\"cy\":\"8.353\",\"r\":\"1.647\"}}]})(props);\n};\nexport function BiPurchaseTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.707 3.293A.996.996 0 0 0 13 3H4a1 1 0 0 0-1 1v9c0 .266.105.52.293.707l8 8a.997.997 0 0 0 1.414 0l9-9a.999.999 0 0 0 0-1.414l-8-8zM12 19.586l-7-7V5h7.586l7 7L12 19.586z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.496\",\"cy\":\"8.495\",\"r\":\"1.505\"}}]})(props);\n};\nexport function BiPyramid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.445 21.832a1 1 0 0 0 1.11 0l9-6A.998.998 0 0 0 21.8 14.4l-9-12c-.377-.504-1.223-.504-1.6 0l-9 12a1 1 0 0 0 .245 1.432l9 6zM13 19.131V6l6.565 8.754L13 19.131zM11 6v13.131l-6.565-4.377L11 6z\"}}]})(props);\n};\nexport function BiQrScan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h4.01V2H2v6h2V4zm0 12H2v6h6.01v-2H4v-4zm16 4h-4v2h6v-6h-2v4zM16 4h4v4h2V2h-6v2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 11h6V5H5zm2-4h2v2H7zM5 19h6v-6H5zm2-4h2v2H7zM19 5h-6v6h6zm-2 4h-2V7h2zm-3.99 4h2v2h-2zm2 2h2v2h-2zm2 2h2v2h-2zm0-4h2v2h-2z\"}}]})(props);\n};\nexport function BiQr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11h8V3H3zm2-6h4v4H5zM3 21h8v-8H3zm2-6h4v4H5zm8-12v8h8V3zm6 6h-4V5h4zm-5.99 4h2v2h-2zm2 2h2v2h-2zm-2 2h2v2h-2zm4 0h2v2h-2zm2 2h2v2h-2zm-4 0h2v2h-2zm2-6h2v2h-2zm2 2h2v2h-2z\"}}]})(props);\n};\nexport function BiQuestionMark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C9.243 4 7 6.243 7 9h2c0-1.654 1.346-3 3-3s3 1.346 3 3c0 1.069-.454 1.465-1.481 2.255-.382.294-.813.626-1.226 1.038C10.981 13.604 10.995 14.897 11 15v2h2v-2.009c0-.024.023-.601.707-1.284.32-.32.682-.598 1.031-.867C15.798 12.024 17 11.1 17 9c0-2.757-2.243-5-5-5zm-1 14h2v2h-2z\"}}]})(props);\n};\nexport function BiRadar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.579 2 2 6.58 2 12s4.579 10 10 10 10-4.58 10-10S17.421 2 12 2zm0 18c-4.337 0-8-3.664-8-8 0-3.998 3.115-7.417 7-7.927V6.09C8.167 6.569 6 9.033 6 12c0 3.309 2.691 6 6 6 1.595 0 3.1-.626 4.237-1.763l-1.414-1.415A3.97 3.97 0 0 1 12 16c-2.206 0-4-1.794-4-4 0-1.858 1.279-3.411 3-3.858v2.146c-.59.353-1 .993-1 1.712 0 1.081.919 2 2 2s2-.919 2-2c0-.719-.41-1.359-1-1.712V4.073c3.885.51 7 3.929 7 7.927 0 4.336-3.663 8-8 8z\"}}]})(props);\n};\nexport function BiRadioCircleMarked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5c-3.859 0-7 3.141-7 7s3.141 7 7 7 7-3.141 7-7-3.141-7-7-7zm0 12c-2.757 0-5-2.243-5-5s2.243-5 5-5 5 2.243 5 5-2.243 5-5 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9c-1.627 0-3 1.373-3 3s1.373 3 3 3 3-1.373 3-3-1.373-3-3-3z\"}}]})(props);\n};\nexport function BiRadioCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12c0 3.859 3.14 7 7 7 3.859 0 7-3.141 7-7s-3.141-7-7-7c-3.86 0-7 3.141-7 7zm12 0c0 2.757-2.243 5-5 5s-5-2.243-5-5 2.243-5 5-5 5 2.243 5 5z\"}}]})(props);\n};\nexport function BiRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.25 5.025-7.898-2.962-.703 1.873L14.484 5H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V7c0-1.018-.767-1.85-1.75-1.975zM4 19v-7h16v-2H4V7h16l.001 12H4z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16.5\",\"cy\":\"15.5\",\"r\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 15h4.999v2H6z\"}}]})(props);\n};\nexport function BiReceipt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11h-3V4a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v14c0 1.654 1.346 3 3 3h14c1.654 0 3-1.346 3-3v-6a1 1 0 0 0-1-1zM5 19a1 1 0 0 1-1-1V5h12v13c0 .351.061.688.171 1H5zm15-1a1 1 0 0 1-2 0v-5h2v5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 7h8v2H6zm0 4h8v2H6zm5 4h3v2h-3z\"}}]})(props);\n};\nexport function BiRectangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 19V5h16l.001 14H4z\"}}]})(props);\n};\nexport function BiRecycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.224 15.543-.813-1.464-1.748.972.812 1.461c.048.085.082.173.104.264a1.024 1.024 0 0 1-.014.5.988.988 0 0 1-.104.235 1 1 0 0 1-.347.352.978.978 0 0 1-.513.137H14v-2l-4 3 4 3v-2h4.601c.278 0 .552-.037.811-.109a2.948 2.948 0 0 0 1.319-.776c.178-.179.332-.38.456-.593a2.992 2.992 0 0 0 .336-2.215 3.163 3.163 0 0 0-.299-.764zM5.862 11.039l-2.31 4.62a3.06 3.06 0 0 0-.261.755 2.997 2.997 0 0 0 .851 2.735c.178.174.376.326.595.453A3.022 3.022 0 0 0 6.236 20H8v-2H6.236a1.016 1.016 0 0 1-.5-.13.974.974 0 0 1-.353-.349 1 1 0 0 1-.149-.468.933.933 0 0 1 .018-.245c.018-.087.048-.173.089-.256l2.256-4.512 1.599.923L8.598 8 4 9.964l1.862 1.075zm12.736 1.925L19.196 8l-1.638.945-2.843-5.117a2.95 2.95 0 0 0-1.913-1.459 3.227 3.227 0 0 0-.772-.083 3.003 3.003 0 0 0-1.498.433A2.967 2.967 0 0 0 9.41 3.944l-.732 1.464 1.789.895.732-1.465c.045-.09.101-.171.166-.242a.933.933 0 0 1 .443-.27 1.053 1.053 0 0 1 .53-.011.963.963 0 0 1 .63.485l2.858 5.146L14 11l4.598 1.964z\"}}]})(props);\n};\nexport function BiRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18h3v-2H9c-1.654 0-3-1.346-3-3s1.346-3 3-3h6v3l5-4-5-4v3H9c-2.757 0-5 2.243-5 5s2.243 5 5 5z\"}}]})(props);\n};\nexport function BiRefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 11H7.101l.001-.009a4.956 4.956 0 0 1 .752-1.787 5.054 5.054 0 0 1 2.2-1.811c.302-.128.617-.226.938-.291a5.078 5.078 0 0 1 2.018 0 4.978 4.978 0 0 1 2.525 1.361l1.416-1.412a7.036 7.036 0 0 0-2.224-1.501 6.921 6.921 0 0 0-1.315-.408 7.079 7.079 0 0 0-2.819 0 6.94 6.94 0 0 0-1.316.409 7.04 7.04 0 0 0-3.08 2.534 6.978 6.978 0 0 0-1.054 2.505c-.028.135-.043.273-.063.41H2l4 4 4-4zm4 2h2.899l-.001.008a4.976 4.976 0 0 1-2.103 3.138 4.943 4.943 0 0 1-1.787.752 5.073 5.073 0 0 1-2.017 0 4.956 4.956 0 0 1-1.787-.752 5.072 5.072 0 0 1-.74-.61L7.05 16.95a7.032 7.032 0 0 0 2.225 1.5c.424.18.867.317 1.315.408a7.07 7.07 0 0 0 2.818 0 7.031 7.031 0 0 0 4.395-2.945 6.974 6.974 0 0 0 1.053-2.503c.027-.135.043-.273.063-.41H22l-4-4-4 4z\"}}]})(props);\n};\nexport function BiRegistered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.14 2a10 10 0 1 0 10 10 10 10 0 0 0-10-10zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.14 10a3 3 0 0 0-3-3h-5v10h2v-4h1.46l2.67 4h2.4l-2.75-4.12A3 3 0 0 0 16.14 10zm-3 1h-3V9h3a1 1 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiRename (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.005 5.995h-1v2h1v8h-1v2h1c1.103 0 2-.897 2-2v-8c0-1.102-.898-2-2-2zm-14 4H15v4H6.005z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17.005 17.995V4H20V2h-8v2h3.005v1.995h-11c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h11V20H12v2h8v-2h-2.995v-2.005zm-13-2v-8h11v8h-11z\"}}]})(props);\n};\nexport function BiRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6h-5v2h4v9H4V8h5v3l5-4-5-4v3H3a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1z\"}}]})(props);\n};\nexport function BiReplyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18v-8a1 1 0 0 0-1-1h-6V6l-5 4 5 4v-3h5v7h2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 12.4 6 10l3-2.4V6l-5 4 5 4z\"}}]})(props);\n};\nexport function BiReply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 11h6v7h2v-8a1 1 0 0 0-1-1h-7V6l-5 4 5 4v-3z\"}}]})(props);\n};\nexport function BiRepost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 7a1 1 0 0 0-1-1h-8v2h7v5h-3l3.969 5L22 13h-3V7zM5 17a1 1 0 0 0 1 1h8v-2H7v-5h3L6 6l-4 5h3v6z\"}}]})(props);\n};\nexport function BiReset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16c1.671 0 3-1.331 3-3s-1.329-3-3-3-3 1.331-3 3 1.329 3 3 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.817 11.186a8.94 8.94 0 0 0-1.355-3.219 9.053 9.053 0 0 0-2.43-2.43 8.95 8.95 0 0 0-3.219-1.355 9.028 9.028 0 0 0-1.838-.18V2L8 5l3.975 3V6.002c.484-.002.968.044 1.435.14a6.961 6.961 0 0 1 2.502 1.053 7.005 7.005 0 0 1 1.892 1.892A6.967 6.967 0 0 1 19 13a7.032 7.032 0 0 1-.55 2.725 7.11 7.11 0 0 1-.644 1.188 7.2 7.2 0 0 1-.858 1.039 7.028 7.028 0 0 1-3.536 1.907 7.13 7.13 0 0 1-2.822 0 6.961 6.961 0 0 1-2.503-1.054 7.002 7.002 0 0 1-1.89-1.89A6.996 6.996 0 0 1 5 13H3a9.02 9.02 0 0 0 1.539 5.034 9.096 9.096 0 0 0 2.428 2.428A8.95 8.95 0 0 0 12 22a9.09 9.09 0 0 0 1.814-.183 9.014 9.014 0 0 0 3.218-1.355 8.886 8.886 0 0 0 1.331-1.099 9.228 9.228 0 0 0 1.1-1.332A8.952 8.952 0 0 0 21 13a9.09 9.09 0 0 0-.183-1.814z\"}}]})(props);\n};\nexport function BiRestaurant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10h-2V3H8v7H6V3H4v8c0 1.654 1.346 3 3 3h1v7h2v-7h1c1.654 0 3-1.346 3-3V3h-2v7zm7-7h-1c-1.159 0-2 1.262-2 3v8h2v7h2V4a1 1 0 0 0-1-1z\"}}]})(props);\n};\nexport function BiRevision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.89 10.105a8.696 8.696 0 0 0-.789-1.456l-1.658 1.119a6.606 6.606 0 0 1 .987 2.345 6.659 6.659 0 0 1 0 2.648 6.495 6.495 0 0 1-.384 1.231 6.404 6.404 0 0 1-.603 1.112 6.654 6.654 0 0 1-1.776 1.775 6.606 6.606 0 0 1-2.343.987 6.734 6.734 0 0 1-2.646 0 6.55 6.55 0 0 1-3.317-1.788 6.605 6.605 0 0 1-1.408-2.088 6.613 6.613 0 0 1-.382-1.23 6.627 6.627 0 0 1 .382-3.877A6.551 6.551 0 0 1 7.36 8.797 6.628 6.628 0 0 1 9.446 7.39c.395-.167.81-.296 1.23-.382.107-.022.216-.032.324-.049V10l5-4-5-4v2.938a8.805 8.805 0 0 0-.725.111 8.512 8.512 0 0 0-3.063 1.29A8.566 8.566 0 0 0 4.11 16.77a8.535 8.535 0 0 0 1.835 2.724 8.614 8.614 0 0 0 2.721 1.833 8.55 8.55 0 0 0 5.061.499 8.576 8.576 0 0 0 6.162-5.056c.22-.52.389-1.061.5-1.608a8.643 8.643 0 0 0 0-3.45 8.684 8.684 0 0 0-.499-1.607z\"}}]})(props);\n};\nexport function BiRewindCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 16V8l-5 4zm6 0V8l-5 4z\"}}]})(props);\n};\nexport function BiRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12V7l-7 5 7 5zm7-5-7 5 7 5z\"}}]})(props);\n};\nexport function BiRightArrowAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.293 17.293 1.414 1.414L19.414 12l-6.707-6.707-1.414 1.414L15.586 11H6v2h9.586z\"}}]})(props);\n};\nexport function BiRightArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 1.993c-5.514.001-10 4.487-10 10.001s4.486 10 10.001 10c5.513 0 9.999-4.486 10-10 0-5.514-4.486-10-10.001-10.001zM12 19.994c-4.412 0-8.001-3.589-8.001-8s3.589-8 8-8.001C16.411 3.994 20 7.583 20 11.994c-.001 4.411-3.59 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10.994H8v2h4V16l4.005-4.005L12 7.991z\"}}]})(props);\n};\nexport function BiRightArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.536 21.886a1.004 1.004 0 0 0 1.033-.064l13-9a1 1 0 0 0 0-1.644l-13-9A.998.998 0 0 0 5 3v18a1 1 0 0 0 .536.886zM7 4.909 17.243 12 7 19.091V4.909z\"}}]})(props);\n};\nexport function BiRightDownArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.007a9.928 9.928 0 0 0-7.071 2.922c-3.899 3.899-3.899 10.243 0 14.143A9.93 9.93 0 0 0 12 21.995a9.93 9.93 0 0 0 7.071-2.923c3.899-3.899 3.899-10.243 0-14.143A9.928 9.928 0 0 0 12 2.007zm5.657 15.65A7.946 7.946 0 0 1 12 19.994c-2.141 0-4.15-.83-5.657-2.337-3.119-3.119-3.119-8.195 0-11.314A7.944 7.944 0 0 1 12 4.007c2.141 0 4.15.829 5.657 2.336 3.119 3.119 3.119 8.195 0 11.314z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.661 8.247 8.247 9.661l3.214 3.214L9.336 15H15V9.337l-2.125 2.124z\"}}]})(props);\n};\nexport function BiRightIndent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15h10v2H10zm-6 4h16v2H4zm6-8h10v2H10zm0-4h10v2H10zM4 3h16v2H4zm0 5v8l4-4z\"}}]})(props);\n};\nexport function BiRightTopArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.006 2.007a9.927 9.927 0 0 0-7.071 2.922c-3.898 3.899-3.898 10.243 0 14.142 1.885 1.885 4.396 2.923 7.071 2.923s5.187-1.038 7.071-2.923c3.898-3.898 3.898-10.242 0-14.142a9.928 9.928 0 0 0-7.071-2.922zm5.657 15.649c-1.507 1.507-3.517 2.337-5.657 2.337s-4.15-.83-5.657-2.337c-3.118-3.119-3.118-8.194 0-11.313 1.507-1.507 3.516-2.336 5.657-2.336s4.15.829 5.657 2.336c3.118 3.119 3.118 8.194 0 11.313z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11.467 11.125-3.214 3.214 1.414 1.414 3.214-3.214 2.125 2.124V9H9.343z\"}}]})(props);\n};\nexport function BiRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.92 2.38A15.72 15.72 0 0 0 17.5 2a8.26 8.26 0 0 0-6 2.06Q9.89 5.67 8.31 7.27c-1.21-.13-4.08-.2-6 1.74a1 1 0 0 0 0 1.41l11.3 11.32a1 1 0 0 0 1.41 0c1.95-2 1.89-4.82 1.77-6l3.21-3.2c3.19-3.19 1.74-9.18 1.68-9.43a1 1 0 0 0-.76-.73zm-2.36 8.75L15 14.67a1 1 0 0 0-.27.9 6.81 6.81 0 0 1-.54 3.94L4.52 9.82a6.67 6.67 0 0 1 4-.5A1 1 0 0 0 9.39 9s1.4-1.45 3.51-3.56A6.61 6.61 0 0 1 17.5 4a14.51 14.51 0 0 1 2.33.2c.24 1.43.62 5.04-1.27 6.93z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.73\",\"cy\":\"8.3\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16c-2 1-2 5-2 5a7.81 7.81 0 0 0 5-2z\"}}]})(props);\n};\nexport function BiRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.758 8.758 5.344 7.344a8.048 8.048 0 0 0-1.841 2.859l1.873.701a6.048 6.048 0 0 1 1.382-2.146zM19 12.999a7.935 7.935 0 0 0-2.344-5.655A7.917 7.917 0 0 0 12 5.069V2L7 6l5 4V7.089a5.944 5.944 0 0 1 3.242 1.669A5.956 5.956 0 0 1 17 13v.002c0 .33-.033.655-.086.977-.007.043-.011.088-.019.131a6.053 6.053 0 0 1-1.138 2.536c-.16.209-.331.412-.516.597a5.954 5.954 0 0 1-.728.613 5.906 5.906 0 0 1-2.277 1.015c-.142.03-.285.05-.43.069-.062.009-.122.021-.184.027a6.104 6.104 0 0 1-1.898-.103L9.3 20.819a8.087 8.087 0 0 0 2.534.136c.069-.007.138-.021.207-.03.205-.026.409-.056.61-.098l.053-.009-.001-.005a7.877 7.877 0 0 0 2.136-.795l.001.001.028-.019a7.906 7.906 0 0 0 1.01-.67c.27-.209.532-.43.777-.675.248-.247.47-.513.681-.785.021-.028.049-.053.07-.081l-.006-.004a7.899 7.899 0 0 0 1.093-1.997l.008.003c.029-.078.05-.158.076-.237.037-.11.075-.221.107-.333.04-.14.073-.281.105-.423.022-.099.048-.195.066-.295.032-.171.056-.344.076-.516.01-.076.023-.15.03-.227.023-.249.037-.5.037-.753.002-.002.002-.004.002-.008zM6.197 16.597l-1.6 1.201a8.045 8.045 0 0 0 2.569 2.225l.961-1.754a6.018 6.018 0 0 1-1.93-1.672zM5 13c0-.145.005-.287.015-.429l-1.994-.143a7.977 7.977 0 0 0 .483 3.372l1.873-.701A5.975 5.975 0 0 1 5 13z\"}}]})(props);\n};\nexport function BiRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.242 17.242a6.04 6.04 0 0 1-1.37 1.027l.961 1.754a8.068 8.068 0 0 0 2.569-2.225l-1.6-1.201a5.938 5.938 0 0 1-.56.645zm1.743-4.671a5.975 5.975 0 0 1-.362 2.528l1.873.701a7.977 7.977 0 0 0 .483-3.371l-1.994.142zm1.512-2.368a8.048 8.048 0 0 0-1.841-2.859l-1.414 1.414a6.071 6.071 0 0 1 1.382 2.146l1.873-.701zm-8.128 8.763c-.047-.005-.094-.015-.141-.021a6.701 6.701 0 0 1-.468-.075 5.923 5.923 0 0 1-2.421-1.122 5.954 5.954 0 0 1-.583-.506 6.138 6.138 0 0 1-.516-.597 5.91 5.91 0 0 1-.891-1.634 6.086 6.086 0 0 1-.247-.902c-.008-.043-.012-.088-.019-.131A6.332 6.332 0 0 1 6 13.002V13c0-1.603.624-3.109 1.758-4.242A5.944 5.944 0 0 1 11 7.089V10l5-4-5-4v3.069a7.917 7.917 0 0 0-4.656 2.275A7.936 7.936 0 0 0 4 12.999v.009c0 .253.014.504.037.753.007.076.021.15.03.227.021.172.044.345.076.516.019.1.044.196.066.295.032.142.065.283.105.423.032.112.07.223.107.333.026.079.047.159.076.237l.008-.003A7.948 7.948 0 0 0 5.6 17.785l-.007.005c.021.028.049.053.07.081.211.272.433.538.681.785a8.236 8.236 0 0 0 .966.816c.265.192.537.372.821.529l.028.019.001-.001a7.877 7.877 0 0 0 2.136.795l-.001.005.053.009c.201.042.405.071.61.098.069.009.138.023.207.03a8.038 8.038 0 0 0 2.532-.137l-.424-1.955a6.11 6.11 0 0 1-1.904.102z\"}}]})(props);\n};\nexport function BiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 20.001C19 11.729 12.271 5 4 5v2c7.168 0 13 5.832 13 13.001h2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20.001h2C14 14.486 9.514 10 4 10v2c4.411 0 8 3.589 8 8.001z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function BiRuble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 21h2v-3h6v-2h-6v-2h4.5c2.757 0 5-2.243 5-5s-2.243-5-5-5H9a1 1 0 0 0-1 1v7H5v2h3v2H5v2h3v3zm2-15h4.5c1.654 0 3 1.346 3 3s-1.346 3-3 3H10V6z\"}}]})(props);\n};\nexport function BiRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.875 7H3.125C1.953 7 1 7.897 1 9v6c0 1.103.953 2 2.125 2h17.75C22.047 17 23 16.103 23 15V9c0-1.103-.953-2-2.125-2zm0 8H3.125c-.057 0-.096-.016-.113-.016-.007 0-.011.002-.012.008l-.012-5.946c.007-.01.052-.046.137-.046H5v3h2V9h2v4h2V9h2v3h2V9h2v4h2V9h1.875c.079.001.122.028.125.008l.012 5.946c-.007.01-.052.046-.137.046z\"}}]})(props);\n};\nexport function BiRun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"17\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.777 10.969a2.007 2.007 0 0 0 2.148.83l3.316-.829-.483-1.94-3.316.829-1.379-2.067a2.01 2.01 0 0 0-1.272-.854l-3.846-.77a1.998 1.998 0 0 0-2.181 1.067l-1.658 3.316 1.789.895 1.658-3.317 1.967.394L7.434 17H3v2h4.434c.698 0 1.355-.372 1.715-.971l1.918-3.196 5.169 1.034 1.816 5.449 1.896-.633-1.815-5.448a2.007 2.007 0 0 0-1.506-1.33l-3.039-.607 1.772-2.954.417.625z\"}}]})(props);\n};\nexport function BiRupee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6V4H6v2h3.5c1.302 0 2.401.838 2.815 2H6v2h6.315A2.994 2.994 0 0 1 9.5 12H6v2.414L11.586 20h2.828l-6-6H9.5a5.007 5.007 0 0 0 4.898-4H17V8h-2.602a4.933 4.933 0 0 0-.924-2H17z\"}}]})(props);\n};\nexport function BiSad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"10.493\",\"r\":\"1.493\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c-3 0-4 3-4 3h8s-1-3-4-3z\"}}]})(props);\n};\nexport function BiSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 21h14a2 2 0 0 0 2-2V8a1 1 0 0 0-.29-.71l-4-4A1 1 0 0 0 16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2zm10-2H9v-5h6zM13 7h-2V5h2zM5 5h2v4h8V5h.59L19 8.41V19h-2v-5a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v5H5z\"}}]})(props);\n};\nexport function BiScan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 4v5h2V5h4V3H4a1 1 0 0 0-1 1zm18 5V4a1 1 0 0 0-1-1h-5v2h4v4h2zm-2 10h-4v2h5a1 1 0 0 0 1-1v-5h-2v4zM9 21v-2H5v-4H3v5a1 1 0 0 0 1 1h5zM2 11h20v2H2z\"}}]})(props);\n};\nexport function BiScreenshot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14h-2v3h-3v2h3v3h2v-3h3v-2h-3zM4 19h3v-2H5v-2H3v3a1 1 0 0 0 1 1zM19 4a1 1 0 0 0-1-1h-3v2h2v2h2V4zM5 5h2V3H4a1 1 0 0 0-1 1v3h2V5zM3 9h2v4H3zm14 0h2v3h-2zM9 3h4v2H9zm0 14h3v2H9z\"}}]})(props);\n};\nexport function BiSearchAlt2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.023 16.977a35.13 35.13 0 0 1-1.367-1.384c-.372-.378-.596-.653-.596-.653l-2.8-1.337A6.962 6.962 0 0 0 16 9c0-3.859-3.14-7-7-7S2 5.141 2 9s3.14 7 7 7c1.763 0 3.37-.66 4.603-1.739l1.337 2.8s.275.224.653.596c.387.363.896.854 1.384 1.367l1.358 1.392.604.646 2.121-2.121-.646-.604c-.379-.372-.885-.866-1.391-1.36zM9 14c-2.757 0-5-2.243-5-5s2.243-5 5-5 5 2.243 5 5-2.243 5-5 5z\"}}]})(props);\n};\nexport function BiSearchAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8s-8 3.589-8 8 3.589 8 8 8zm0-14c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11.412 8.586c.379.38.588.882.588 1.414h2a3.977 3.977 0 0 0-1.174-2.828c-1.514-1.512-4.139-1.512-5.652 0l1.412 1.416c.76-.758 2.07-.756 2.826-.002z\"}}]})(props);\n};\nexport function BiSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8s-8 3.589-8 8 3.589 8 8 8zm0-14c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6z\"}}]})(props);\n};\nexport function BiSelectMultiple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 2H8c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zM8 16V4h12l.002 12H8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 8H2v12c0 1.103.897 2 2 2h12v-2H4V8zm8.933 3.519-1.726-1.726-1.414 1.414 3.274 3.274 5.702-6.84-1.538-1.282z\"}}]})(props);\n};\nexport function BiSelection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 9a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v1H9V4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1v6H4a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-1h6v1a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-1V9h1zm-3-4h2v2h-2V5zM5 5h2v2H5V5zm2 14H5v-2h2v2zm12 0h-2v-2h2v2zm-2-4h-1a1 1 0 0 0-1 1v1H9v-1a1 1 0 0 0-1-1H7V9h1a1 1 0 0 0 1-1V7h6v1a1 1 0 0 0 1 1h1v6z\"}}]})(props);\n};\nexport function BiSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.426 11.095-17-8A.999.999 0 0 0 3.03 4.242L4.969 12 3.03 19.758a.998.998 0 0 0 1.396 1.147l17-8a1 1 0 0 0 0-1.81zM5.481 18.197l.839-3.357L12 12 6.32 9.16l-.839-3.357L18.651 12l-13.17 6.197z\"}}]})(props);\n};\nexport function BiServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM4 9V5h16v4zm16 4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2zM4 19v-4h16v4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 6h2v2h-2zm-3 0h2v2h-2zm3 10h2v2h-2zm-3 0h2v2h-2z\"}}]})(props);\n};\nexport function BiShapeCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.494 9.05a8.14 8.14 0 0 0-4.544-4.544C14.713 3.088 13.485 2 12 2S9.287 3.088 9.05 4.506A8.136 8.136 0 0 0 4.506 9.05C3.088 9.287 2 10.515 2 12s1.088 2.713 2.506 2.95a8.14 8.14 0 0 0 4.544 4.544C9.287 20.912 10.515 22 12 22s2.713-1.088 2.95-2.506a8.14 8.14 0 0 0 4.544-4.544C20.912 14.713 22 13.485 22 12s-1.088-2.713-2.506-2.95zM12 4a1 1 0 0 1 1 1c0 .06-.023.11-.034.167a1.015 1.015 0 0 1-.083.279c-.014.027-.034.049-.051.075a1.062 1.062 0 0 1-.16.209c-.04.037-.09.062-.136.092-.054.036-.104.078-.165.103-.115.047-.239.075-.371.075s-.256-.028-.371-.075c-.061-.024-.111-.066-.165-.103-.046-.03-.096-.055-.136-.092a1.062 1.062 0 0 1-.16-.209c-.017-.026-.037-.048-.051-.075a1.026 1.026 0 0 1-.083-.279C11.023 5.11 11 5.06 11 5a1 1 0 0 1 1-1zm-7 7c.06 0 .11.023.167.034.099.017.194.041.279.083.027.014.049.034.075.051.075.047.149.097.209.16.037.04.062.09.092.136.036.054.078.104.103.165.047.115.075.239.075.371s-.028.256-.075.371c-.024.061-.066.111-.103.165-.03.046-.055.096-.092.136-.06.063-.134.113-.209.16-.026.017-.048.037-.075.051a1.026 1.026 0 0 1-.279.083C5.11 12.977 5.06 13 5 13a1 1 0 0 1 0-2zm7 9a1 1 0 0 1-1-1c0-.06.023-.11.034-.167.017-.099.041-.194.083-.279.014-.027.034-.049.051-.075.047-.075.097-.149.16-.209.04-.037.09-.062.136-.092.054-.036.104-.078.165-.103.115-.047.239-.075.371-.075s.256.028.371.075c.061.024.111.066.165.103.046.03.096.055.136.092.063.06.113.134.16.209.017.026.037.048.051.075.042.085.066.181.083.279.011.057.034.107.034.167a1 1 0 0 1-1 1zm2.583-2.512c-.006-.011-.017-.019-.022-.029a3.007 3.007 0 0 0-.996-1.007c-.054-.033-.109-.06-.166-.09a2.902 2.902 0 0 0-.486-.205c-.064-.021-.128-.044-.194-.061-.233-.057-.471-.096-.719-.096s-.486.039-.718.097c-.066.017-.13.039-.195.061a2.928 2.928 0 0 0-.485.205c-.056.029-.112.057-.166.09a3.007 3.007 0 0 0-.996 1.007c-.006.011-.017.019-.022.029a6.15 6.15 0 0 1-2.905-2.905c.011-.006.019-.017.029-.022a3.007 3.007 0 0 0 1.007-.996c.033-.054.061-.11.09-.166.083-.154.15-.316.205-.485.021-.065.044-.129.061-.195.056-.234.095-.472.095-.72s-.039-.486-.097-.718a2.568 2.568 0 0 0-.061-.194 2.902 2.902 0 0 0-.205-.486c-.03-.057-.057-.112-.09-.166A3.007 3.007 0 0 0 6.54 9.44c-.01-.006-.018-.017-.028-.023a6.15 6.15 0 0 1 2.905-2.905c.006.01.017.018.022.029.248.411.588.755.996 1.007.054.033.11.061.166.09.155.083.316.15.486.205.064.021.128.044.194.061.233.057.47.096.719.096a2.94 2.94 0 0 0 .912-.158c.17-.055.331-.122.486-.205.056-.029.112-.057.166-.09.408-.252.748-.596.996-1.007.006-.011.017-.019.022-.029a6.15 6.15 0 0 1 2.905 2.905c-.011.006-.019.017-.029.022a3.007 3.007 0 0 0-1.007.996c-.033.054-.061.11-.09.166-.083.155-.15.316-.205.486-.021.064-.044.128-.061.194A3.07 3.07 0 0 0 16 12a2.94 2.94 0 0 0 .158.912c.055.17.122.331.205.486.029.056.057.112.09.166.252.408.596.748 1.007.996.011.006.019.017.029.022a6.145 6.145 0 0 1-2.906 2.906zM19 13c-.06 0-.11-.023-.167-.034a1.015 1.015 0 0 1-.279-.083c-.027-.014-.049-.034-.075-.051a1.062 1.062 0 0 1-.209-.16c-.037-.04-.062-.09-.092-.136-.036-.054-.078-.104-.103-.165-.047-.115-.075-.239-.075-.371s.028-.256.075-.371c.024-.061.066-.111.103-.165.03-.046.055-.096.092-.136.06-.063.134-.113.209-.16.026-.017.048-.037.075-.051.085-.042.181-.066.279-.083.057-.011.107-.034.167-.034a1 1 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiShapePolygon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 14.185v-2.369A2.997 2.997 0 0 0 22 9c0-1.654-1.346-3-3-3a2.99 2.99 0 0 0-2.116.876L12.969 5.31c.01-.103.031-.204.031-.31 0-1.654-1.346-3-3-3S7 3.346 7 5c0 .762.295 1.451.765 1.981L6.091 9.212A2.977 2.977 0 0 0 5 9c-1.654 0-3 1.346-3 3s1.346 3 3 3c.159 0 .313-.023.465-.047L7.4 17.532c-.248.436-.4.932-.4 1.468 0 1.654 1.346 3 3 3a2.994 2.994 0 0 0 2.863-2.153l3.962-.792A2.987 2.987 0 0 0 19 20c1.654 0 3-1.346 3-3a2.995 2.995 0 0 0-2-2.815zM19 8a1.001 1.001 0 1 1-1 1c0-.551.448-1 1-1zm-9-4a1.001 1.001 0 1 1-1 1c0-.551.448-1 1-1zm-6 8a1.001 1.001 0 1 1 1 1c-.552 0-1-.449-1-1zm6 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm2.761-2.172A3.005 3.005 0 0 0 10 16c-.386 0-.752.079-1.091.213l-1.674-2.231C7.705 13.451 8 12.762 8 12c0-.536-.152-1.032-.399-1.467l1.935-2.58c.152.024.305.047.464.047a2.99 2.99 0 0 0 2.116-.876l3.915 1.566c-.01.103-.031.204-.031.31 0 1.302.839 2.401 2 2.815v2.369a2.996 2.996 0 0 0-2 2.815c0 .061.015.117.018.177l-3.257.652zM19 18a1 1 0 1 1 0-2 1 1 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiShapeSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 6c0-1.654-1.346-3-3-3a2.993 2.993 0 0 0-2.815 2h-6.37A2.993 2.993 0 0 0 6 3C4.346 3 3 4.346 3 6c0 1.302.839 2.401 2 2.815v6.369A2.997 2.997 0 0 0 3 18c0 1.654 1.346 3 3 3a2.993 2.993 0 0 0 2.815-2h6.369a2.994 2.994 0 0 0 2.815 2c1.654 0 3-1.346 3-3a2.997 2.997 0 0 0-2-2.816V8.816A2.996 2.996 0 0 0 21 6zm-3-1a1.001 1.001 0 1 1-1 1c0-.551.448-1 1-1zm-2.815 12h-6.37A2.99 2.99 0 0 0 7 15.184V8.816A2.99 2.99 0 0 0 8.815 7h6.369A2.99 2.99 0 0 0 17 8.815v6.369A2.99 2.99 0 0 0 15.185 17zM6 5a1.001 1.001 0 1 1-1 1c0-.551.448-1 1-1zm0 14a1.001 1.001 0 0 1 0-2 1.001 1.001 0 0 1 0 2zm12 0a1.001 1.001 0 0 1 0-2 1.001 1.001 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiShapeTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 15c-.183 0-.358.022-.532.054L8.946 6.532C8.978 6.359 9 6.182 9 6c0-1.654-1.346-3-3-3S3 4.346 3 6c0 1.302.839 2.401 2 2.815v6.369A2.997 2.997 0 0 0 3 18c0 1.654 1.346 3 3 3a2.993 2.993 0 0 0 2.815-2h6.369a2.994 2.994 0 0 0 2.815 2c1.654 0 3-1.346 3-3S19.654 15 18 15zm-11 .184V8.816c.329-.118.629-.291.894-.508l7.799 7.799a2.961 2.961 0 0 0-.508.894h-6.37A2.99 2.99 0 0 0 7 15.184zM6 5a1.001 1.001 0 1 1-1 1c0-.551.448-1 1-1zm0 14a1.001 1.001 0 0 1 0-2 1.001 1.001 0 0 1 0 2zm12 0a1.001 1.001 0 0 1 0-2 1.001 1.001 0 0 1 0 2z\"}}]})(props);\n};\nexport function BiShareAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.5 15a3.51 3.51 0 0 0 2.36-.93l6.26 3.58a3.06 3.06 0 0 0-.12.85 3.53 3.53 0 1 0 1.14-2.57l-6.26-3.58a2.74 2.74 0 0 0 .12-.76l6.15-3.52A3.49 3.49 0 1 0 14 5.5a3.35 3.35 0 0 0 .12.85L8.43 9.6A3.5 3.5 0 1 0 5.5 15zm12 2a1.5 1.5 0 1 1-1.5 1.5 1.5 1.5 0 0 1 1.5-1.5zm0-13A1.5 1.5 0 1 1 16 5.5 1.5 1.5 0 0 1 17.5 4zm-12 6A1.5 1.5 0 1 1 4 11.5 1.5 1.5 0 0 1 5.5 10z\"}}]})(props);\n};\nexport function BiShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 7.05V4a1 1 0 0 0-1-1 1 1 0 0 0-.7.29l-7 7a1 1 0 0 0 0 1.42l7 7A1 1 0 0 0 11 18v-3.1h.85a10.89 10.89 0 0 1 8.36 3.72 1 1 0 0 0 1.11.35A1 1 0 0 0 22 18c0-9.12-8.08-10.68-11-10.95zm.85 5.83a14.74 14.74 0 0 0-2 .13A1 1 0 0 0 9 14v1.59L4.42 11 9 6.41V8a1 1 0 0 0 1 1c.91 0 8.11.2 9.67 6.43a13.07 13.07 0 0 0-7.82-2.55z\"}}]})(props);\n};\nexport function BiShekel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 8v8h2V8c0-2.206-1.794-4-4-4H5v16h2V6h4c1.103 0 2 .897 2 2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16c0 1.103-.897 2-2 2h-4V8H9v12h6c2.206 0 4-1.794 4-4V4h-2v12z\"}}]})(props);\n};\nexport function BiShieldAlt2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.438 5.089a1.002 1.002 0 0 0-.959.015c-.684.389-1.355.577-2.053.577-2.035 0-3.952-1.629-5.722-3.39-.375-.373-1.063-.373-1.438 0C9.592 3.959 7.598 5.663 5.51 5.663c-.69 0-1.351-.184-2.018-.561-.298-.166-.658-.171-.96-.012s-.501.461-.528.801c-.011.129-.944 12.872 9.683 16.041a.99.99 0 0 0 .286.042H12c.097 0 .192-.014.285-.041 10.657-3.17 9.695-15.916 9.684-16.044a1 1 0 0 0-.531-.8zm-9.452 14.842c-6.979-2.255-7.934-9.412-8.014-12.477.505.14 1.019.209 1.537.209 2.492 0 4.65-1.567 6.476-3.283 1.893 1.788 3.983 3.301 6.442 3.301.53 0 1.057-.074 1.575-.22-.074 3.065-1.021 10.217-8.016 12.47z\"}}]})(props);\n};\nexport function BiShieldAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.342 8.447 1.105-.553A.998.998 0 0 0 21.8 6.4l-3-4A1 1 0 0 0 18 2H6a1 1 0 0 0-.8.4l-3 4a1 1 0 0 0 .352 1.494l1.105.553-1.131 2.262A5.052 5.052 0 0 0 2 12.944v.591a6.028 6.028 0 0 0 3.894 5.618l3.431 1.286a5.488 5.488 0 0 1 1.969 1.268.997.997 0 0 0 1.413 0 5.486 5.486 0 0 1 1.969-1.267l3.432-1.287A6.03 6.03 0 0 0 22 13.535v-.591c0-.771-.183-1.545-.527-2.236l-1.131-2.261zM20 13.535a4.019 4.019 0 0 1-2.596 3.745l-3.431 1.287a7.5 7.5 0 0 0-1.974 1.101 7.515 7.515 0 0 0-1.974-1.102L6.596 17.28A4.019 4.019 0 0 1 4 13.535v-.591c0-.463.109-.928.316-1.342l1.131-2.261a2.003 2.003 0 0 0-.895-2.684l-.033-.015L6.5 4h11l1.981 2.642-.034.017a2.004 2.004 0 0 0-.895 2.684l1.131 2.26c.208.414.317.878.317 1.341v.591z\"}}]})(props);\n};\nexport function BiShieldQuarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.995 6.9a.998.998 0 0 0-.548-.795l-8-4a1 1 0 0 0-.895 0l-8 4a1.002 1.002 0 0 0-.547.795c-.011.107-.961 10.767 8.589 15.014a.987.987 0 0 0 .812 0c9.55-4.247 8.6-14.906 8.589-15.014zM12 19.897V12H5.51a15.473 15.473 0 0 1-.544-4.365L12 4.118V12h6.46c-.759 2.74-2.498 5.979-6.46 7.897z\"}}]})(props);\n};\nexport function BiShieldX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.48 6.105-8-4a1 1 0 0 0-.895 0l-8 4a1.002 1.002 0 0 0-.547.795c-.011.107-.961 10.767 8.589 15.014a.99.99 0 0 0 .812 0c9.55-4.247 8.6-14.906 8.589-15.014a1.001 1.001 0 0 0-.548-.795zm-8.447 13.792C5.265 16.625 4.944 9.642 4.999 7.635l7.034-3.517 7.029 3.515c.038 1.989-.328 9.018-7.029 12.264z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.293 8.293 12 10.586 9.707 8.293 8.293 9.707 10.586 12l-2.293 2.293 1.414 1.414L12 13.414l2.293 2.293 1.414-1.414L13.414 12l2.293-2.293z\"}}]})(props);\n};\nexport function BiShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.995 6.903a.997.997 0 0 0-.547-.797l-7.973-4a.997.997 0 0 0-.895-.002l-8.027 4c-.297.15-.502.437-.544.767-.013.097-1.145 9.741 8.541 15.008a.995.995 0 0 0 .969-.009c9.307-5.259 8.514-14.573 8.476-14.967zm-8.977 12.944c-6.86-4.01-7.14-10.352-7.063-12.205l7.071-3.523 6.998 3.511c.005 1.87-.481 8.243-7.006 12.217z\"}}]})(props);\n};\nexport function BiShocked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"10.493\",\"r\":\"1.493\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"15.5\",\"rx\":\"3\",\"ry\":\"2.5\"}}]})(props);\n};\nexport function BiShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 22h14c1.103 0 2-.897 2-2V9a1 1 0 0 0-1-1h-3V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H4a1 1 0 0 0-1 1v11c0 1.103.897 2 2 2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm-4 3h2v2h2v-2h6v2h2v-2h2l.002 10H5V10z\"}}]})(props);\n};\nexport function BiShowAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 12c-1.095 0-2-.905-2-2 0-.354.103-.683.268-.973C12.178 9.02 12.092 9 12 9a3.02 3.02 0 0 0-3 3c0 1.642 1.358 3 3 3 1.641 0 3-1.358 3-3 0-.092-.02-.178-.027-.268-.29.165-.619.268-.973.268z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5c-7.633 0-9.927 6.617-9.948 6.684L1.946 12l.105.316C2.073 12.383 4.367 19 12 19s9.927-6.617 9.948-6.684l.106-.316-.105-.316C21.927 11.617 19.633 5 12 5zm0 12c-5.351 0-7.424-3.846-7.926-5C4.578 10.842 6.652 7 12 7c5.351 0 7.424 3.846 7.926 5-.504 1.158-2.578 5-7.926 5z\"}}]})(props);\n};\nexport function BiShow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9a3.02 3.02 0 0 0-3 3c0 1.642 1.358 3 3 3 1.641 0 3-1.358 3-3 0-1.641-1.359-3-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5c-7.633 0-9.927 6.617-9.948 6.684L1.946 12l.105.316C2.073 12.383 4.367 19 12 19s9.927-6.617 9.948-6.684l.106-.316-.105-.316C21.927 11.617 19.633 5 12 5zm0 12c-5.351 0-7.424-3.846-7.926-5C4.578 10.842 6.652 7 12 7c5.351 0 7.424 3.846 7.926 5-.504 1.158-2.578 5-7.926 5z\"}}]})(props);\n};\nexport function BiShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 17h-1.559l-9.7-10.673A1 1 0 0 0 5.001 6H2v2h2.559l4.09 4.5-4.09 4.501H2v2h3.001a1 1 0 0 0 .74-.327L10 13.987l4.259 4.686a1 1 0 0 0 .74.327H17v3l5-4-5-4v3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.441 8H17v3l5-3.938L17 3v3h-2.001a1 1 0 0 0-.74.327l-3.368 3.707 1.48 1.346L15.441 8z\"}}]})(props);\n};\nexport function BiSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 19V7h6v12H4zm8 0V7h8V5l.002 14H12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 10h2v2H6zm0 4h2v2H6z\"}}]})(props);\n};\nexport function BiSitemap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 13.01h-7V10h1c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2h-4c-1.103 0-2 .897-2 2v4c0 1.103.897 2 2 2h1v3.01H4V18H3v4h4v-4H6v-2.99h5V18h-1v4h4v-4h-1v-2.99h5V18h-1v4h4v-4h-1v-4.99zM10 8V4h4l.002 4H10z\"}}]})(props);\n};\nexport function BiSkipNextCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m8 16 5-4-5-4zm5-4v4h2V8h-2z\"}}]})(props);\n};\nexport function BiSkipNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7v10l7-5zm9 10V7h-2v10z\"}}]})(props);\n};\nexport function BiSkipPreviousCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16V8l-5 4zM9 8v8h2V8z\"}}]})(props);\n};\nexport function BiSkipPrevious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16 7-7 5 7 5zm-7 5V7H7v10h2z\"}}]})(props);\n};\nexport function BiSleepy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"15.5\",\"rx\":\"3\",\"ry\":\"2.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 7c-2.905 0-3.983 2.386-4 3.99l2 .021C8.002 10.804 8.076 9 10 9V7zm4 0v2c1.826 0 1.992 1.537 2 2.007L17 11h1c0-1.608-1.065-4-4-4z\"}}]})(props);\n};\nexport function BiSliderAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 14.5c-1.58 0-2.903 1.06-3.337 2.5H2v2h2.163c.434 1.44 1.757 2.5 3.337 2.5s2.903-1.06 3.337-2.5H22v-2H10.837c-.434-1.44-1.757-2.5-3.337-2.5zm0 5c-.827 0-1.5-.673-1.5-1.5s.673-1.5 1.5-1.5S9 17.173 9 18s-.673 1.5-1.5 1.5zm9-11c-1.58 0-2.903 1.06-3.337 2.5H2v2h11.163c.434 1.44 1.757 2.5 3.337 2.5s2.903-1.06 3.337-2.5H22v-2h-2.163c-.434-1.44-1.757-2.5-3.337-2.5zm0 5c-.827 0-1.5-.673-1.5-1.5s.673-1.5 1.5-1.5 1.5.673 1.5 1.5-.673 1.5-1.5 1.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12.837 5C12.403 3.56 11.08 2.5 9.5 2.5S6.597 3.56 6.163 5H2v2h4.163C6.597 8.44 7.92 9.5 9.5 9.5s2.903-1.06 3.337-2.5h9.288V5h-9.288zM9.5 7.5C8.673 7.5 8 6.827 8 6s.673-1.5 1.5-1.5S11 5.173 11 6s-.673 1.5-1.5 1.5z\"}}]})(props);\n};\nexport function BiSlider (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5h9v2h-9zM2 7h7v2h2V3H9v2H2zm7 10h13v2H9zm10-6h3v2h-3zm-2 4V9.012h-2V11H2v2h13v2zM7 21v-6H5v2H2v2h3v2z\"}}]})(props);\n};\nexport function BiSlideshow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h7v3H8v2h8v-2h-3v-3h7c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 15V5h16l.001 10H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m10 13 5-3-5-3z\"}}]})(props);\n};\nexport function BiSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.829 14.828a4.055 4.055 0 0 1-1.272.858 4.002 4.002 0 0 1-4.875-1.45l-1.658 1.119a6.063 6.063 0 0 0 1.621 1.62 5.963 5.963 0 0 0 2.148.903 6.042 6.042 0 0 0 2.415 0 5.972 5.972 0 0 0 2.148-.903c.313-.212.612-.458.886-.731.272-.271.52-.571.734-.889l-1.658-1.119a4.017 4.017 0 0 1-.489.592z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.493\",\"cy\":\"10.493\",\"r\":\"1.493\"}}]})(props);\n};\nexport function BiSortAZ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.707 14.707A1 1 0 0 0 19 13h-7v2h4.586l-4.293 4.293A1 1 0 0 0 13 21h7v-2h-4.586l4.293-4.293zM7 3.99H5v12H2l4 4 4-4H7zM17 3h-2c-.417 0-.79.259-.937.649l-2.75 7.333h2.137L14.193 9h3.613l.743 1.981h2.137l-2.75-7.333A1 1 0 0 0 17 3zm-2.057 4 .75-2h.613l.75 2h-2.113z\"}}]})(props);\n};\nexport function BiSortAlt2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 20h2V8h3L8 4 4 8h3zm13-4h-3V4h-2v12h-3l4 4z\"}}]})(props);\n};\nexport function BiSortDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6 20 4-4H7V4H5v12H2zm5-12h9v2h-9zm0 4h7v2h-7zm0-8h11v2H11zm0 12h5v2h-5z\"}}]})(props);\n};\nexport function BiSortUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h9v2h-9zm0 4h7v2h-7zm0-8h11v2H11zm0 12h5v2h-5zm-6 3h2V8h3L6 4 2 8h3z\"}}]})(props);\n};\nexport function BiSortZA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.707 14.707A1 1 0 0 0 19 13h-7v2h4.586l-4.293 4.293A1 1 0 0 0 13 21h7v-2h-4.586l4.293-4.293zM6 3.99l-4 4h3v12h2v-12h3zM17 3h-2c-.417 0-.79.259-.937.649l-2.75 7.333h2.137L14.193 9h3.613l.743 1.981h2.137l-2.75-7.333A1 1 0 0 0 17 3zm-2.057 4 .75-2h.613l.75 2h-2.113z\"}}]})(props);\n};\nexport function BiSort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 16H4l6 6V2H8zm6-11v17h2V8h4l-6-6z\"}}]})(props);\n};\nexport function BiSpa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.787 9.023c-.125.027-1.803.418-3.953 1.774-.323-1.567-1.279-4.501-4.108-7.485L12 2.546l-.726.767C8.435 6.308 7.483 9.25 7.163 10.827 5.005 9.448 3.34 9.052 3.218 9.024L2 8.752V10c0 7.29 3.925 12 10 12 5.981 0 10-4.822 10-12V8.758l-1.213.265zM8.999 12.038c.002-.033.152-3.1 3.001-6.532C14.814 8.906 14.999 12 15 12v.125a18.933 18.933 0 0 0-3.01 3.154 19.877 19.877 0 0 0-2.991-3.113v-.128zM12 20c-5.316 0-7.549-4.196-7.937-8.564 1.655.718 4.616 2.426 7.107 6.123l.841 1.249.825-1.26c2.426-3.708 5.425-5.411 7.096-6.122C19.534 15.654 17.304 20 12 20z\"}}]})(props);\n};\nexport function BiSpaceBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 13H7V9H5v6h14V9h-2z\"}}]})(props);\n};\nexport function BiSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zm0 18H6V4h12z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19a4 4 0 1 0-4-4 4 4 0 0 0 4 4zm0-6a2 2 0 1 1-2 2 2 2 0 0 1 2-2z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12.01\",\"cy\":\"7\",\"r\":\"2\"}}]})(props);\n};\nexport function BiSprayCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.002 2h-4a1 1 0 0 0-1 1v3.812a5.998 5.998 0 0 0-3 5.188v.988L3 13l.002.072V21a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-9a5.999 5.999 0 0 0-3-5.188V3a1 1 0 0 0-1-1zm-3 4V4h2v2h-2zm5.001 14h-8v-6h8v6zm-8.001-8c0-2.206 1.794-4 4-4s4 1.794 4 4h-8zm8.001-9h2v2h-2zM16 3h2v2h-2zm0 3h2v2h-2zm3-3h2v2h-2zm0 3h2v2h-2zm0 3h2v2h-2z\"}}]})(props);\n};\nexport function BiSpreadsheet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5zM5 19V5h14l.002 14H5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h1.998v2H7zm4 0h6v2h-6zm-4 4h1.998v2H7zm4 0h6v2h-6zm-4 4h1.998v2H7zm4 0h6v2h-6z\"}}]})(props);\n};\nexport function BiSquareRounded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 2H7C4.243 2 2 4.243 2 7v10c0 2.757 2.243 5 5 5h10c2.757 0 5-2.243 5-5V7c0-2.757-2.243-5-5-5zm3 15c0 1.654-1.346 3-3 3H7c-1.654 0-3-1.346-3-3V7c0-1.654 1.346-3 3-3h10c1.654 0 3 1.346 3 3v10z\"}}]})(props);\n};\nexport function BiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1zm-1 16H5V5h14v14z\"}}]})(props);\n};\nexport function BiStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.516 14.323-1.49 6.452a.998.998 0 0 0 1.529 1.057L12 18.202l5.445 3.63a1.001 1.001 0 0 0 1.517-1.106l-1.829-6.4 4.536-4.082a1 1 0 0 0-.59-1.74l-5.701-.454-2.467-5.461a.998.998 0 0 0-1.822 0L8.622 8.05l-5.701.453a1 1 0 0 0-.619 1.713l4.214 4.107zm2.853-4.326a.998.998 0 0 0 .832-.586L12 5.43l1.799 3.981a.998.998 0 0 0 .832.586l3.972.315-3.271 2.944c-.284.256-.397.65-.293 1.018l1.253 4.385-3.736-2.491a.995.995 0 0 0-1.109 0l-3.904 2.603 1.05-4.546a1 1 0 0 0-.276-.94l-3.038-2.962 4.09-.326z\"}}]})(props);\n};\nexport function BiStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m7.758 16.243 1.414-1.415a3.97 3.97 0 0 1-1.173-2.831c0-1.068.417-2.071 1.173-2.825L7.758 7.756a5.957 5.957 0 0 0-1.76 4.24c0 1.604.625 3.112 1.76 4.247zm8.484 0A5.96 5.96 0 0 0 18 12a5.96 5.96 0 0 0-1.758-4.243l-1.414 1.414C15.584 9.927 16 10.932 16 12s-.416 2.073-1.172 2.829l1.414 1.414z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.344 17.657a7.953 7.953 0 0 1-2.345-5.659c0-2.137.833-4.145 2.345-5.654L4.93 4.929c-1.89 1.886-2.931 4.397-2.931 7.069s1.041 5.183 2.931 7.073l1.414-1.414zM17.657 6.343A7.948 7.948 0 0 1 20 12a7.948 7.948 0 0 1-2.343 5.657l1.414 1.414A9.932 9.932 0 0 0 22 12a9.934 9.934 0 0 0-2.929-7.071l-1.414 1.414z\"}}]})(props);\n};\nexport function BiStats (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 12a2 2 0 0 0-.703.133l-2.398-1.963c.059-.214.101-.436.101-.67C17 8.114 15.886 7 14.5 7S12 8.114 12 9.5c0 .396.1.765.262 1.097l-2.909 3.438A2.06 2.06 0 0 0 9 14c-.179 0-.348.03-.512.074l-2.563-2.563C5.97 11.348 6 11.179 6 11c0-1.108-.892-2-2-2s-2 .892-2 2 .892 2 2 2c.179 0 .348-.03.512-.074l2.563 2.563A1.906 1.906 0 0 0 7 16c0 1.108.892 2 2 2s2-.892 2-2c0-.237-.048-.46-.123-.671l2.913-3.442c.227.066.462.113.71.113a2.48 2.48 0 0 0 1.133-.281l2.399 1.963A2.077 2.077 0 0 0 18 14c0 1.108.892 2 2 2s2-.892 2-2-.892-2-2-2z\"}}]})(props);\n};\nexport function BiSticker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.796 9.982C20.849 5.357 16.729 2 12 2 6.486 2 2 6.486 2 12c0 4.729 3.357 8.849 7.982 9.796a.988.988 0 0 0 .908-.272l10.633-10.633c.238-.238.34-.578.273-.909zM11 18a7.93 7.93 0 0 1 1.365-4.471 8.18 8.18 0 0 1 .978-1.186 8.211 8.211 0 0 1 1.184-.977 8.128 8.128 0 0 1 1.36-.738c.481-.203.986-.36 1.501-.466a8.112 8.112 0 0 1 2.17-.134l-8.529 8.529c-.013-.185-.029-.37-.029-.557zm-7-6c0-4.411 3.589-8 8-8 2.909 0 5.528 1.589 6.929 4.005a9.99 9.99 0 0 0-1.943.198c-.643.132-1.274.328-1.879.583a10.15 10.15 0 0 0-1.699.923c-.533.361-1.03.771-1.479 1.22s-.858.945-1.221 1.48c-.359.533-.67 1.104-.922 1.698A10.013 10.013 0 0 0 9 18c0 .491.048.979.119 1.461C6.089 18.288 4 15.336 4 12z\"}}]})(props);\n};\nexport function BiStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9h6v6H9z\"}}]})(props);\n};\nexport function BiStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7 7h10v10H7z\"}}]})(props);\n};\nexport function BiStopwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8zm0 14c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M11 9h2v5h-2zM9 2h6v2H9zm10.293 5.707-2-2 1.414-1.414 2 2z\"}}]})(props);\n};\nexport function BiStoreAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5c0-1.654-1.346-3-3-3H5C3.346 2 2 3.346 2 5v2.831c0 1.053.382 2.01 1 2.746V19c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-8.424c.618-.735 1-1.692 1-2.746V5zm-2 0v2.831c0 1.14-.849 2.112-1.891 2.167L18 10c-1.103 0-2-.897-2-2V4h3c.552 0 1 .449 1 1zM10 4h4v4c0 1.103-.897 2-2 2s-2-.897-2-2V4zM4 5c0-.551.448-1 1-1h3v4c0 1.103-.897 2-2 2l-.109-.003C4.849 9.943 4 8.971 4 7.831V5zm6 14v-3h4v3h-4zm6 0v-3c0-1.103-.897-2-2-2h-4c-1.103 0-2 .897-2 2v3H5v-7.131c.254.067.517.111.787.125A3.988 3.988 0 0 0 9 10.643c.733.832 1.807 1.357 3 1.357s2.267-.525 3-1.357a3.988 3.988 0 0 0 3.213 1.351c.271-.014.533-.058.787-.125V19h-3z\"}}]})(props);\n};\nexport function BiStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.148 2.971A2.008 2.008 0 0 0 17.434 2H6.566c-.698 0-1.355.372-1.714.971L2.143 7.485A.995.995 0 0 0 2 8a3.97 3.97 0 0 0 1 2.618V19c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-8.382A3.97 3.97 0 0 0 22 8a.995.995 0 0 0-.143-.515l-2.709-4.514zm.836 5.28A2.003 2.003 0 0 1 18 10c-1.103 0-2-.897-2-2 0-.068-.025-.128-.039-.192l.02-.004L15.22 4h2.214l2.55 4.251zM10.819 4h2.361l.813 4.065C13.958 9.137 13.08 10 12 10s-1.958-.863-1.993-1.935L10.819 4zM6.566 4H8.78l-.76 3.804.02.004C8.025 7.872 8 7.932 8 8c0 1.103-.897 2-2 2a2.003 2.003 0 0 1-1.984-1.749L6.566 4zM10 19v-3h4v3h-4zm6 0v-3c0-1.103-.897-2-2-2h-4c-1.103 0-2 .897-2 2v3H5v-7.142c.321.083.652.142 1 .142a3.99 3.99 0 0 0 3-1.357c.733.832 1.807 1.357 3 1.357s2.267-.525 3-1.357A3.99 3.99 0 0 0 18 12c.348 0 .679-.059 1-.142V19h-3z\"}}]})(props);\n};\nexport function BiStreetView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18h2v-5h2V9c0-1.103-.897-2-2-2h-4c-1.103 0-2 .897-2 2v4h2v5h2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m18.446 11.386-.893 1.789C19.108 13.95 20 14.98 20 16c0 1.892-3.285 4-8 4s-8-2.108-8-4c0-1.02.892-2.05 2.446-2.825l-.893-1.789C3.295 12.512 2 14.193 2 16c0 3.364 4.393 6 10 6s10-2.636 10-6c0-1.807-1.295-3.488-3.554-4.614z\"}}]})(props);\n};\nexport function BiStrikethrough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 11h-8c-4 0-4-1.816-4-2.5C8 7.882 8 6 12 6c2.8 0 2.99 1.678 3 2.014L16 8h1c0-1.384-1.045-4-5-4-5.416 0-6 3.147-6 4.5 0 .728.148 1.667.736 2.5H4v2h16v-2zm-8 7c-3.793 0-3.99-1.815-4-2H6c0 .04.069 4 6 4 5.221 0 6-2.819 6-4.5 0-.146-.009-.317-.028-.5h-2.006c.032.2.034.376.034.5 0 .684 0 2.5-4 2.5z\"}}]})(props);\n};\nexport function BiSubdirectoryLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 13h-6v-3l-5 4 5 4v-3h7a1 1 0 0 0 1-1V5h-2v8z\"}}]})(props);\n};\nexport function BiSubdirectoryRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 13H8V5H6v9a1 1 0 0 0 1 1h7v3l5-4-5-4v3z\"}}]})(props);\n};\nexport function BiSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.993 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007S14.761 6.993 12 6.993 6.993 9.239 6.993 12zM12 8.993c1.658 0 3.007 1.349 3.007 3.007S13.658 15.007 12 15.007 8.993 13.658 8.993 12 10.342 8.993 12 8.993zM10.998 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2h-3zm17 0h3v2h-3zM4.219 18.363l2.12-2.122 1.415 1.414-2.12 2.122zM16.24 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.342 7.759 4.22 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z\"}}]})(props);\n};\nexport function BiSupport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12v4.143C2 17.167 2.897 18 4 18h1a1 1 0 0 0 1-1v-5.143a1 1 0 0 0-1-1h-.908C4.648 6.987 7.978 4 12 4s7.352 2.987 7.908 6.857H19a1 1 0 0 0-1 1V18c0 1.103-.897 2-2 2h-2v-1h-4v3h6c2.206 0 4-1.794 4-4 1.103 0 2-.833 2-1.857V12c0-5.514-4.486-10-10-10z\"}}]})(props);\n};\nexport function BiSwim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"19.003\",\"cy\":\"6.002\",\"r\":\"2.002\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.875 13.219c-.567.453-.978.781-1.878.781-.899 0-1.288-.311-1.876-.781-.68-.543-1.525-1.219-3.127-1.219-1.601 0-2.445.676-3.124 1.219-.588.47-.975.781-1.875.781-.898 0-1.286-.311-1.873-.78C4.443 12.676 3.6 12 2 12v2c.897 0 1.285.311 1.872.78.679.544 1.523 1.22 3.123 1.22s2.446-.676 3.125-1.22c.587-.47.976-.78 1.874-.78.9 0 1.311.328 1.878.781.679.543 1.524 1.219 3.125 1.219 1.602 0 2.447-.676 3.127-1.219.588-.47.977-.781 1.876-.781v-2c-1.601 0-2.446.676-3.125 1.219zM16.997 19c-.899 0-1.288-.311-1.876-.781-.68-.543-1.525-1.219-3.127-1.219-1.601 0-2.445.676-3.124 1.219-.588.47-.975.781-1.875.781-.898 0-1.286-.311-1.873-.78C4.443 17.676 3.6 17 2 17v2c.897 0 1.285.311 1.872.78.679.544 1.523 1.22 3.123 1.22s2.446-.676 3.125-1.22c.587-.47.976-.78 1.874-.78.9 0 1.311.328 1.878.781.679.543 1.524 1.219 3.125 1.219 1.602 0 2.447-.676 3.127-1.219.588-.47.977-.781 1.876-.781v-2c-1.601 0-2.446.676-3.125 1.219-.567.453-.978.781-1.878.781zM11 5.419l2.104 2.104-2.057 2.57c.286-.056.596-.093.947-.093 1.602 0 2.447.676 3.127 1.219.588.47.977.781 1.876.781.9 0 1.311-.328 1.878-.781.132-.105.274-.217.423-.326l-2.096-2.09.005-.005-5.5-5.5a.999.999 0 0 0-1.414 0l-4 4 1.414 1.414L11 5.419z\"}}]})(props);\n};\nexport function BiSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13 7.101.01.001a4.978 4.978 0 0 1 2.526 1.362 5.005 5.005 0 0 1 1.363 2.528 5.061 5.061 0 0 1-.001 2.016 4.976 4.976 0 0 1-1.363 2.527l1.414 1.414a7.014 7.014 0 0 0 1.908-3.54 6.98 6.98 0 0 0 0-2.819 6.957 6.957 0 0 0-1.907-3.539 6.97 6.97 0 0 0-2.223-1.5 6.921 6.921 0 0 0-1.315-.408c-.137-.028-.275-.043-.412-.063V2L9 6l4 4V7.101zm-7.45 7.623c.174.412.392.812.646 1.19.249.37.537.718.854 1.034a7.036 7.036 0 0 0 2.224 1.501c.425.18.868.317 1.315.408.167.034.338.056.508.078v2.944l4-4-4-4v3.03c-.035-.006-.072-.003-.107-.011a4.978 4.978 0 0 1-2.526-1.362 4.994 4.994 0 0 1 .001-7.071L7.051 7.05a7.01 7.01 0 0 0-1.5 2.224A6.974 6.974 0 0 0 5 12a6.997 6.997 0 0 0 .55 2.724z\"}}]})(props);\n};\nexport function BiTab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2c-1.103 0-2 .897-2 2v16c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2H6zm0 15V5h12l.002 12H6z\"}}]})(props);\n};\nexport function BiTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21h15.893c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zm0-2v-5h4v5H4zM14 7v5h-4V7h4zM8 7v5H4V7h4zm2 12v-5h4v5h-4zm6 0v-5h3.894v5H16zm3.893-7H16V7h3.893v5z\"}}]})(props);\n};\nexport function BiTachometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4C6.486 4 2 8.486 2 14a9.89 9.89 0 0 0 1.051 4.445c.17.34.516.555.895.555h16.107c.379 0 .726-.215.896-.555A9.89 9.89 0 0 0 22 14c0-5.514-4.486-10-10-10zm7.41 13H4.59A7.875 7.875 0 0 1 4 14c0-4.411 3.589-8 8-8s8 3.589 8 8a7.875 7.875 0 0 1-.59 3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.939 12.939a1.53 1.53 0 0 0 0 2.561 1.53 1.53 0 0 0 2.121-.44l3.962-6.038a.034.034 0 0 0 0-.035.033.033 0 0 0-.045-.01l-6.038 3.962z\"}}]})(props);\n};\nexport function BiTagAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.868 4.504A1 1 0 0 0 17 4H3a1 1 0 0 0-.868 1.496L5.849 12l-3.717 6.504A1 1 0 0 0 3 20h14a1 1 0 0 0 .868-.504l4-7a.998.998 0 0 0 0-.992l-4-7zM16.42 18H4.724l3.145-5.504a.998.998 0 0 0 0-.992L4.724 6H16.42l3.429 6-3.429 6z\"}}]})(props);\n};\nexport function BiTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H8.515a2 2 0 0 0-1.627.838l-4.701 6.581a.997.997 0 0 0 0 1.162l4.701 6.581A2 2 0 0 0 8.515 20H20c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm0 14H8.515l-4.286-6 4.286-6H20v12z\"}}]})(props);\n};\nexport function BiTargetLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 4.069V2h-2v2.069A8.008 8.008 0 0 0 4.069 11H2v2h2.069A8.007 8.007 0 0 0 11 19.931V22h2v-2.069A8.007 8.007 0 0 0 19.931 13H22v-2h-2.069A8.008 8.008 0 0 0 13 4.069zM12 18c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6z\"}}]})(props);\n};\nexport function BiTaskX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 20c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2h-2a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1H5c-1.103 0-2 .897-2 2v15zM5 5h2v2h10V5h2v15H5V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.292 10.295 12 12.587l-2.292-2.292-1.414 1.414 2.292 2.292-2.292 2.292 1.414 1.414L12 15.415l2.292 2.292 1.414-1.414-2.292-2.292 2.292-2.292z\"}}]})(props);\n};\nexport function BiTask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 22h14c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2h-2a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1H5c-1.103 0-2 .897-2 2v15c0 1.103.897 2 2 2zM5 5h2v2h10V5h2v15H5V5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m11 13.586-1.793-1.793-1.414 1.414L11 16.414l5.207-5.207-1.414-1.414z\"}}]})(props);\n};\nexport function BiTaxi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.772 10.156-1.368-4.105A2.995 2.995 0 0 0 16.559 4H14V2h-4v2H7.441a2.995 2.995 0 0 0-2.845 2.051l-1.368 4.105A2.003 2.003 0 0 0 2 12v5c0 .753.423 1.402 1.039 1.743-.013.066-.039.126-.039.195V21a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-2h12v2a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-2.062c0-.069-.026-.13-.039-.195A1.993 1.993 0 0 0 22 17v-5c0-.829-.508-1.541-1.228-1.844zM4 17v-5h16l.002 5H4zM7.441 6h9.117c.431 0 .813.274.949.684L18.613 10H5.387l1.105-3.316A1 1 0 0 1 7.441 6z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiTennisBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.929 19.081c1.895 1.895 4.405 2.938 7.071 2.938s5.177-1.043 7.071-2.938c3.899-3.899 3.899-10.243 0-14.143C17.177 3.044 14.665 2 12 2S6.823 3.044 4.929 4.938c-3.899 3.899-3.899 10.244 0 14.143zm12.728-1.414a7.969 7.969 0 0 1-3.813 2.129c-.009-1.602.586-3.146 1.691-4.251 1.163-1.163 2.732-1.828 4.277-1.851a7.945 7.945 0 0 1-2.155 3.973zm2.325-5.965c-2.124-.021-4.284.853-5.861 2.429-1.532 1.532-2.327 3.68-2.263 5.881a7.946 7.946 0 0 1-5.516-2.345 7.97 7.97 0 0 1-2.332-5.512c.077.002.154.014.231.014 2.115 0 4.16-.804 5.637-2.28 1.58-1.58 2.457-3.739 2.43-5.873a7.948 7.948 0 0 1 5.349 2.337 7.96 7.96 0 0 1 2.325 5.349zM6.343 6.353a7.968 7.968 0 0 1 3.973-2.169c-.018 1.555-.685 3.124-1.851 4.291-1.104 1.103-2.642 1.696-4.238 1.691a7.929 7.929 0 0 1 2.116-3.813z\"}}]})(props);\n};\nexport function BiTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14h6v2h-6zM6.293 9.707 8.586 12l-2.293 2.293 1.414 1.414L11.414 12 7.707 8.293z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zM4 18V6h16l.002 12H4z\"}}]})(props);\n};\nexport function BiTestTube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.293 2.707.818.818L3.318 14.318C2.468 15.168 2 16.298 2 17.5s.468 2.332 1.318 3.183C4.169 21.532 5.299 22 6.5 22s2.331-.468 3.182-1.318L20.475 9.889l.818.818 1.414-1.414-8-8-1.414 1.414zm3.182 8.354-2.403-2.404-1.414 1.414 2.403 2.404-1.414 1.415-.99-.99-1.414 1.414.99.99-1.415 1.415-2.403-2.404L7 15.728l2.403 2.404-1.136 1.136c-.945.944-2.59.944-3.535 0C4.26 18.795 4 18.168 4 17.5s.26-1.295.732-1.768L15.525 4.939l3.535 3.535-2.585 2.587z\"}}]})(props);\n};\nexport function BiText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 8h2V6h3.252L7.68 18H5v2h8v-2h-2.252L13.32 6H17v2h2V4H5z\"}}]})(props);\n};\nexport function BiTimeFive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v5.414l3.293 3.293 1.414-1.414L13 11.586z\"}}]})(props);\n};\nexport function BiTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 7h-2v6h6v-2h-4z\"}}]})(props);\n};\nexport function BiTimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.145 8.27 1.563-1.563-1.414-1.414L18.586 7c-1.05-.63-2.274-1-3.586-1-3.859 0-7 3.14-7 7s3.141 7 7 7 7-3.14 7-7a6.966 6.966 0 0 0-1.855-4.73zM15 18c-2.757 0-5-2.243-5-5s2.243-5 5-5 5 2.243 5 5-2.243 5-5 5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 10h2v4h-2zm-1-7h4v2h-4zM3 8h4v2H3zm0 8h4v2H3zm-1-4h3.99v2H2z\"}}]})(props);\n};\nexport function BiTired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14c-3 0-4 3-4 3h8s-1-3-4-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m17.555 8.832-1.109-1.664-3 2a1.001 1.001 0 0 0 .108 1.727l4 2 .895-1.789-2.459-1.229 1.565-1.045zm-6.557 1.23a1 1 0 0 0-.443-.894l-3-2-1.11 1.664 1.566 1.044-2.459 1.229.895 1.789 4-2a.998.998 0 0 0 .551-.832z\"}}]})(props);\n};\nexport function BiToggleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 9c-1.628 0-3 1.372-3 3s1.372 3 3 3 3-1.372 3-3-1.372-3-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H8c-3.3 0-5.989 2.689-6 6v.016A6.01 6.01 0 0 0 8 18h8a6.01 6.01 0 0 0 6-5.994V12c-.009-3.309-2.699-6-6-6zm0 10H8a4.006 4.006 0 0 1-4-3.99C4.004 9.799 5.798 8 8 8h8c2.202 0 3.996 1.799 4 4.006A4.007 4.007 0 0 1 16 16zm4-3.984.443-.004.557.004h-1z\"}}]})(props);\n};\nexport function BiToggleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 9c-1.628 0-3 1.372-3 3s1.372 3 3 3 3-1.372 3-3-1.372-3-3-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 6H8c-3.296 0-5.982 2.682-6 5.986v.042A6.01 6.01 0 0 0 8 18h8c3.309 0 6-2.691 6-6s-2.691-6-6-6zm0 10H8a4.006 4.006 0 0 1-4-3.99C4.004 9.799 5.798 8 8 8h8c2.206 0 4 1.794 4 4s-1.794 4-4 4z\"}}]})(props);\n};\nexport function BiTone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm-1 9H4.069a7.965 7.965 0 0 1 .52-2H11v2zm0 4H4.589a7.965 7.965 0 0 1-.52-2H11v2zm0-10.931V7H5.765A7.996 7.996 0 0 1 11 4.069zM5.765 17H11v2.931A7.996 7.996 0 0 1 5.765 17zM13 19.931V4.069c3.939.495 7 3.858 7 7.931s-3.061 7.436-7 7.931z\"}}]})(props);\n};\nexport function BiTrafficCone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.943 2.667A1 1 0 0 0 13 2h-2a1 1 0 0 0-.943.667L4.292 19H2v2h20v-2h-2.292L13.943 2.667zM15.47 13H8.53l1.06-3h4.82l1.06 3zm-3.763-9h.586l1.412 4h-3.41l1.412-4zM7.825 15h8.35l1.412 4H6.413l1.412-4z\"}}]})(props);\n};\nexport function BiTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"14.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.87 3.34A3.55 3.55 0 0 0 16.38 2H7.62a3.47 3.47 0 0 0-2.5 1.35A4.32 4.32 0 0 0 4 6v12a1 1 0 0 0 1 1h2l-2 3h2.32L8 21h8l.68 1H19l-2-3h2a1 1 0 0 0 1-1V6a4.15 4.15 0 0 0-1.13-2.66zM7.62 4h8.72a1.77 1.77 0 0 1 1 .66 3.25 3.25 0 0 1 .25.34H6.39a2.3 2.3 0 0 1 .25-.35A1.65 1.65 0 0 1 7.62 4zM6 8V7h12v3H6zm12 9H6v-5h12z\"}}]})(props);\n};\nexport function BiTransferAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.924 10.383a1 1 0 0 0-.217-1.09l-5-5-1.414 1.414L16.586 9H4v2h15a1 1 0 0 0 .924-.617zM4.076 13.617a1 1 0 0 0 .217 1.09l5 5 1.414-1.414L7.414 15H20v-2H5a.999.999 0 0 0-.924.617z\"}}]})(props);\n};\nexport function BiTransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15 12 5-4-5-4v2.999H2v2h13zm7 3H9v-3l-5 4 5 4v-3h13z\"}}]})(props);\n};\nexport function BiTrashAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 2H9c-1.103 0-2 .897-2 2v2H3v2h2v12c0 1.103.897 2 2 2h10c1.103 0 2-.897 2-2V8h2V6h-4V4c0-1.103-.897-2-2-2zM9 4h6v2H9V4zm8 16H7V8h10v12z\"}}]})(props);\n};\nexport function BiTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 20a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8h2V6h-4V4a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v2H3v2h2zM9 4h6v2H9zM8 8h9v12H7V8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h2v8H9zm4 0h2v8h-2z\"}}]})(props);\n};\nexport function BiTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14 9.586-4 4-6.293-6.293-1.414 1.414L10 16.414l4-4 4.293 4.293L16 19h6v-6l-2.293 2.293z\"}}]})(props);\n};\nexport function BiTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10 10.414 4 4 5.707-5.707L22 11V5h-6l2.293 2.293L14 11.586l-4-4-7.707 7.707 1.414 1.414z\"}}]})(props);\n};\nexport function BiTrim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16h3v3c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2v-9c0-1.103-.897-2-2-2h-3V5c0-1.103-.897-2-2-2H5c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2zm14-6-.003 9H10v-3h4c1.103 0 2-.897 2-2v-4h3zM5 10h5V5h4l-.003 9H5v-4z\"}}]})(props);\n};\nexport function BiTrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.844 20H6.5C5.121 20 4 18.879 4 17.5S5.121 15 6.5 15h7c1.93 0 3.5-1.57 3.5-3.5S15.43 8 13.5 8H8.639a9.812 9.812 0 0 1-1.354 2H13.5c.827 0 1.5.673 1.5 1.5s-.673 1.5-1.5 1.5h-7C4.019 13 2 15.019 2 17.5S4.019 22 6.5 22h9.593a10.415 10.415 0 0 1-1.249-2zM5 2C3.346 2 2 3.346 2 5c0 3.188 3 5 3 5s3-1.813 3-5c0-1.654-1.346-3-3-3zm0 4.5a1.5 1.5 0 1 1 .001-3.001A1.5 1.5 0 0 1 5 6.5z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 14c-1.654 0-3 1.346-3 3 0 3.188 3 5 3 5s3-1.813 3-5c0-1.654-1.346-3-3-3zm0 4.5a1.5 1.5 0 1 1 .001-3.001A1.5 1.5 0 0 1 19 18.5z\"}}]})(props);\n};\nexport function BiTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4h-3V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v1H3a1 1 0 0 0-1 1v3c0 4.31 1.799 6.91 4.819 7.012A6.001 6.001 0 0 0 11 17.91V20H9v2h6v-2h-2v-2.09a6.01 6.01 0 0 0 4.181-2.898C20.201 14.91 22 12.31 22 8V5a1 1 0 0 0-1-1zM4 8V6h2v6.83C4.216 12.078 4 9.299 4 8zm8 8c-2.206 0-4-1.794-4-4V4h8v8c0 2.206-1.794 4-4 4zm6-3.17V6h2v2c0 1.299-.216 4.078-2 4.83z\"}}]})(props);\n};\nexport function BiTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 6h-5.586l2.293-2.293-1.414-1.414L12 5.586 8.707 2.293 7.293 3.707 9.586 6H4c-1.103 0-2 .897-2 2v11c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2zM4 19V8h16l.002 11H4z\"}}]})(props);\n};\nexport function BiUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18h14v2H5zM6 4v6c0 3.309 2.691 6 6 6s6-2.691 6-6V4h-2v6c0 2.206-1.794 4-4 4s-4-1.794-4-4V4H6z\"}}]})(props);\n};\nexport function BiUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 10h6c1.654 0 3 1.346 3 3s-1.346 3-3 3h-3v2h3c2.757 0 5-2.243 5-5s-2.243-5-5-5H9V5L4 9l5 4v-3z\"}}]})(props);\n};\nexport function BiUnite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 16a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16h1V8a2 2 0 0 1 2-2h8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2zm3 3a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-1v8a2 2 0 0 1-2 2H8v1z\"}}]})(props);\n};\nexport function BiUnlink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.949 14.121 19.071 12a5.008 5.008 0 0 0 0-7.071 5.006 5.006 0 0 0-7.071 0l-.707.707 1.414 1.414.707-.707a3.007 3.007 0 0 1 4.243 0 3.005 3.005 0 0 1 0 4.243l-2.122 2.121a2.723 2.723 0 0 1-.844.57L13.414 12l1.414-1.414-.707-.707a4.965 4.965 0 0 0-3.535-1.465c-.235 0-.464.032-.691.066L3.707 2.293 2.293 3.707l18 18 1.414-1.414-5.536-5.536c.277-.184.538-.396.778-.636zm-6.363 3.536a3.007 3.007 0 0 1-4.243 0 3.005 3.005 0 0 1 0-4.243l1.476-1.475-1.414-1.414L4.929 12a5.008 5.008 0 0 0 0 7.071 4.983 4.983 0 0 0 3.535 1.462A4.982 4.982 0 0 0 12 19.071l.707-.707-1.414-1.414-.707.707z\"}}]})(props);\n};\nexport function BiUpArrowAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8.414V18h2V8.414l4.293 4.293 1.414-1.414L12 4.586l-6.707 6.707 1.414 1.414z\"}}]})(props);\n};\nexport function BiUpArrowCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.001 1.993C6.486 1.994 2 6.48 2 11.994c.001 5.514 4.487 10 10 10 5.515 0 10.001-4.486 10.001-10s-4.486-10-10-10.001zM12 19.994c-4.41 0-7.999-3.589-8-8 0-4.411 3.589-8 8.001-8.001 4.411.001 8 3.59 8 8.001s-3.589 8-8.001 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m12.001 8.001-4.005 4.005h3.005V16h2v-3.994h3.004z\"}}]})(props);\n};\nexport function BiUpArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 19h18a1.002 1.002 0 0 0 .823-1.569l-9-13c-.373-.539-1.271-.539-1.645 0l-9 13A.999.999 0 0 0 3 19zm9-12.243L19.092 17H4.908L12 6.757z\"}}]})(props);\n};\nexport function BiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 15h2V9h3l-4-5-4 5h3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 18H4v-7H2v7c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2v-7h-2v7z\"}}]})(props);\n};\nexport function BiUpsideDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.829 9.172c.181.181.346.38.488.592l1.658-1.119a6.063 6.063 0 0 0-1.621-1.62 5.963 5.963 0 0 0-2.148-.903 5.985 5.985 0 0 0-5.448 1.634 5.993 5.993 0 0 0-.733.889l1.657 1.119a4.017 4.017 0 0 1 2.51-1.683 3.989 3.989 0 0 1 3.637 1.091z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"15.5\",\"cy\":\"13.5\",\"r\":\"1.5\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.507\",\"cy\":\"13.507\",\"r\":\"1.493\"}}]})(props);\n};\nexport function BiUpvote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.781 2.375c-.381-.475-1.181-.475-1.562 0l-8 10A1.001 1.001 0 0 0 4 14h4v7a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-7h4a1.001 1.001 0 0 0 .781-1.625l-8-10zM15 12h-1v8h-4v-8H6.081L12 4.601 17.919 12H15z\"}}]})(props);\n};\nexport function BiUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10h1v2h-4V6h2l-3-4-3 4h2v8H7v-2.277c.596-.347 1-.985 1-1.723a2 2 0 0 0-4 0c0 .738.404 1.376 1 1.723V14c0 1.103.897 2 2 2h4v2.277A1.99 1.99 0 0 0 10 20a2 2 0 0 0 4 0c0-.738-.404-1.376-1-1.723V14h4c1.103 0 2-.897 2-2v-2h1V6h-4v4z\"}}]})(props);\n};\nexport function BiUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.29 8.29 16 12.58l-1.3-1.29-1.41 1.42 2.7 2.7 5.72-5.7zM4 8a3.91 3.91 0 0 0 4 4 3.91 3.91 0 0 0 4-4 3.91 3.91 0 0 0-4-4 3.91 3.91 0 0 0-4 4zm6 0a1.91 1.91 0 0 1-2 2 1.91 1.91 0 0 1-2-2 1.91 1.91 0 0 1 2-2 1.91 1.91 0 0 1 2 2zM4 18a3 3 0 0 1 3-3h2a3 3 0 0 1 3 3v1h2v-1a5 5 0 0 0-5-5H7a5 5 0 0 0-5 5v1h2z\"}}]})(props);\n};\nexport function BiUserCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2A10.13 10.13 0 0 0 2 12a10 10 0 0 0 4 7.92V20h.1a9.7 9.7 0 0 0 11.8 0h.1v-.08A10 10 0 0 0 22 12 10.13 10.13 0 0 0 12 2zM8.07 18.93A3 3 0 0 1 11 16.57h2a3 3 0 0 1 2.93 2.36 7.75 7.75 0 0 1-7.86 0zm9.54-1.29A5 5 0 0 0 13 14.57h-2a5 5 0 0 0-4.61 3.07A8 8 0 0 1 4 12a8.1 8.1 0 0 1 8-8 8.1 8.1 0 0 1 8 8 8 8 0 0 1-2.39 5.64z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6a3.91 3.91 0 0 0-4 4 3.91 3.91 0 0 0 4 4 3.91 3.91 0 0 0 4-4 3.91 3.91 0 0 0-4-4zm0 6a1.91 1.91 0 0 1-2-2 1.91 1.91 0 0 1 2-2 1.91 1.91 0 0 1 2 2 1.91 1.91 0 0 1-2 2z\"}}]})(props);\n};\nexport function BiUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11h8v2h-8zM8 4a3.91 3.91 0 0 0-4 4 3.91 3.91 0 0 0 4 4 3.91 3.91 0 0 0 4-4 3.91 3.91 0 0 0-4-4zm0 6a1.91 1.91 0 0 1-2-2 1.91 1.91 0 0 1 2-2 1.91 1.91 0 0 1 2 2 1.91 1.91 0 0 1-2 2zm-4 8a3 3 0 0 1 3-3h2a3 3 0 0 1 3 3v1h2v-1a5 5 0 0 0-5-5H7a5 5 0 0 0-5 5v1h2z\"}}]})(props);\n};\nexport function BiUserPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10c1.151 0 2-.848 2-2s-.849-2-2-2c-1.15 0-2 .848-2 2s.85 2 2 2zm0 1c-2.209 0-4 1.612-4 3.6v.386h8V14.6c0-1.988-1.791-3.6-4-3.6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 2H5c-1.103 0-2 .897-2 2v13c0 1.103.897 2 2 2h4l3 3 3-3h4c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2zm-5 15-2 2-2-2H5V4h14l.002 13H14z\"}}]})(props);\n};\nexport function BiUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM4 8a3.91 3.91 0 0 0 4 4 3.91 3.91 0 0 0 4-4 3.91 3.91 0 0 0-4-4 3.91 3.91 0 0 0-4 4zm6 0a1.91 1.91 0 0 1-2 2 1.91 1.91 0 0 1-2-2 1.91 1.91 0 0 1 2-2 1.91 1.91 0 0 1 2 2zM4 18a3 3 0 0 1 3-3h2a3 3 0 0 1 3 3v1h2v-1a5 5 0 0 0-5-5H7a5 5 0 0 0-5 5v1h2z\"}}]})(props);\n};\nexport function BiUserVoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 12c2.28 0 4-1.72 4-4s-1.72-4-4-4-4 1.72-4 4 1.72 4 4 4zm0-6c1.178 0 2 .822 2 2s-.822 2-2 2-2-.822-2-2 .822-2 2-2zm1 7H7c-2.757 0-5 2.243-5 5v1h2v-1c0-1.654 1.346-3 3-3h2c1.654 0 3 1.346 3 3v1h2v-1c0-2.757-2.243-5-5-5zm9.364-10.364L16.95 4.05C18.271 5.373 19 7.131 19 9s-.729 3.627-2.05 4.95l1.414 1.414C20.064 13.663 21 11.403 21 9s-.936-4.663-2.636-6.364z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.535 5.464 14.121 6.88C14.688 7.445 15 8.198 15 9s-.312 1.555-.879 2.12l1.414 1.416C16.479 11.592 17 10.337 17 9s-.521-2.592-1.465-3.536z\"}}]})(props);\n};\nexport function BiUserX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15.71 15.71 2.29-2.3 2.29 2.3 1.42-1.42-2.3-2.29 2.3-2.29-1.42-1.42-2.29 2.3-2.29-2.3-1.42 1.42L16.58 12l-2.29 2.29zM12 8a3.91 3.91 0 0 0-4-4 3.91 3.91 0 0 0-4 4 3.91 3.91 0 0 0 4 4 3.91 3.91 0 0 0 4-4zM6 8a1.91 1.91 0 0 1 2-2 1.91 1.91 0 0 1 2 2 1.91 1.91 0 0 1-2 2 1.91 1.91 0 0 1-2-2zM4 18a3 3 0 0 1 3-3h2a3 3 0 0 1 3 3v1h2v-1a5 5 0 0 0-5-5H7a5 5 0 0 0-5 5v1h2z\"}}]})(props);\n};\nexport function BiUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a5 5 0 1 0 5 5 5 5 0 0 0-5-5zm0 8a3 3 0 1 1 3-3 3 3 0 0 1-3 3zm9 11v-1a7 7 0 0 0-7-7h-4a7 7 0 0 0-7 7v1h2v-1a5 5 0 0 1 5-5h4a5 5 0 0 1 5 5v1z\"}}]})(props);\n};\nexport function BiVector (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.277 8c.347.596.985 1 1.723 1a2 2 0 0 0 0-4c-.738 0-1.376.404-1.723 1H16V4a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v2H5.723C5.376 5.404 4.738 5 4 5a2 2 0 0 0 0 4c.738 0 1.376-.404 1.723-1H8v.369C5.133 9.84 4.318 12.534 4.091 14H3a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-.877c.197-.959.718-2.406 2.085-3.418A.984.984 0 0 0 9 11h6a.98.98 0 0 0 .792-.419c1.373 1.013 1.895 2.458 2.089 3.419H17a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-1.092c-.227-1.466-1.042-4.161-3.908-5.632V8h2.277zM6 18H4v-2h2v2zm14 0h-2v-2h2v2zm-6-9h-4V5h4v4z\"}}]})(props);\n};\nexport function BiVerticalCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5V2h-2v3H8l4 4 4-4zm0 17v-3h3l-4-4-4 4h3v3zM3 11h3v2H3zm5 0h3v2H8zm5 0h3v2h-3zm5 0h3v2h-3z\"}}]})(props);\n};\nexport function BiVial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.95 3.564.708.707-9.193 9.193C2.521 14.408 2 15.664 2 17s.521 2.592 1.465 3.535C4.408 21.479 5.664 22 7 22s2.592-.521 3.535-1.465l9.193-9.193.707.708 1.414-1.414-8.485-8.486-1.414 1.414zM9.121 19.121c-1.133 1.133-3.109 1.133-4.242 0C4.313 18.555 4 17.802 4 17s.313-1.555.879-2.121L5.758 14h8.484l-5.121 5.121zM16.242 12H7.758l6.314-6.314 4.242 4.242L16.242 12z\"}}]})(props);\n};\nexport function BiVideoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7c0-1.103-.897-2-2-2H6.414L3.707 2.293 2.293 3.707l18 18 1.414-1.414L18 16.586v-2.919L22 17V7l-4 3.333V7zm-2 7.586L8.414 7H16v7.586zM4 19h10.879l-2-2H4V8.121L2.145 6.265A1.977 1.977 0 0 0 2 7v10c0 1.103.897 2 2 2z\"}}]})(props);\n};\nexport function BiVideoPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 8H9v3H6v2h3v3h2v-3h3v-2h-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-3.333L22 17V7l-4 3.333V7zm-1.999 10H4V7h12v5l.001 5z\"}}]})(props);\n};\nexport function BiVideoRecording (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9c0-1.103-.897-2-2-2h-1.434l-2.418-4.029A2.008 2.008 0 0 0 10.434 2H5v2h5.434l1.8 3H4c-1.103 0-2 .897-2 2v9c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-3l4 2v-7l-4 2V9zm-1.998 9H4V9h12l.001 4H16v1l.001.001.001 3.999z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 14h6v2H6z\"}}]})(props);\n};\nexport function BiVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 7c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2v-3.333L22 17V7l-4 3.333V7zm-1.998 10H4V7h12l.001 4.999L16 12l.001.001.001 4.999z\"}}]})(props);\n};\nexport function BiVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.5 8a4.505 4.505 0 0 0-4.5 4.5c0 .925.281 1.784.762 2.5h-3.523c.48-.716.761-1.575.761-2.5C11 10.019 8.981 8 6.5 8S2 10.019 2 12.5 4.019 17 6.5 17c.171 0 .334-.032.5-.051V17h11v-.051c2.244-.252 4-2.139 4-4.449 0-2.481-2.019-4.5-4.5-4.5zM4 12.5C4 11.121 5.121 10 6.5 10S9 11.121 9 12.5 7.879 15 6.5 15 4 13.879 4 12.5zM17.5 15c-1.379 0-2.5-1.121-2.5-2.5s1.121-2.5 2.5-2.5 2.5 1.121 2.5 2.5-1.121 2.5-2.5 2.5z\"}}]})(props);\n};\nexport function BiVolumeFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21c3.527-1.547 5.999-4.909 5.999-9S19.527 4.547 16 3v2c2.387 1.386 3.999 4.047 3.999 7S18.387 17.614 16 19v2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7v10c1.225-1.1 2-3.229 2-5s-.775-3.9-2-5zM4 17h2.697l5.748 3.832a1.004 1.004 0 0 0 1.027.05A1 1 0 0 0 14 20V4a1 1 0 0 0-1.554-.832L6.697 7H4c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2zm0-8h3c.033 0 .061-.016.093-.019a1.027 1.027 0 0 0 .38-.116c.026-.015.057-.017.082-.033L12 5.868v12.264l-4.445-2.964c-.025-.017-.056-.02-.082-.033a.986.986 0 0 0-.382-.116C7.059 15.016 7.032 15 7 15H4V9z\"}}]})(props);\n};\nexport function BiVolumeLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 17h2.697l5.748 3.832a1.004 1.004 0 0 0 1.027.05A1 1 0 0 0 14 20V4a1 1 0 0 0-1.554-.832L6.697 7H4c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2zm0-8h3c.033 0 .061-.016.093-.019a1.027 1.027 0 0 0 .379-.116c.026-.014.057-.017.082-.033L12 5.868v12.264l-4.445-2.964c-.025-.018-.056-.02-.082-.033a.977.977 0 0 0-.382-.116C7.059 15.016 7.032 15 7 15H4V9zm12-2v10c1.225-1.1 2-3.229 2-5s-.775-3.9-2-5z\"}}]})(props);\n};\nexport function BiVolumeMute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.707 20.293-2.023-2.023A9.566 9.566 0 0 0 21.999 12c0-4.091-2.472-7.453-5.999-9v2c2.387 1.386 3.999 4.047 3.999 7a8.113 8.113 0 0 1-1.672 4.913l-1.285-1.285C17.644 14.536 18 13.19 18 12c0-1.771-.775-3.9-2-5v7.586l-2-2V4a1 1 0 0 0-1.554-.832L7.727 6.313l-4.02-4.02-1.414 1.414 18 18 1.414-1.414zM12 5.868v4.718L9.169 7.755 12 5.868zM4 17h2.697l5.748 3.832a1.004 1.004 0 0 0 1.027.05A1 1 0 0 0 14 20v-1.879l-2-2v2.011l-4.445-2.964c-.025-.017-.056-.02-.082-.033a.986.986 0 0 0-.382-.116C7.059 15.016 7.032 15 7 15H4V9h.879L3.102 7.223A1.995 1.995 0 0 0 2 9v6c0 1.103.897 2 2 2z\"}}]})(props);\n};\nexport function BiVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 17h2.697l5.748 3.832a1.004 1.004 0 0 0 1.027.05A1 1 0 0 0 14 20V4a1 1 0 0 0-1.554-.832L6.697 7H4c-1.103 0-2 .897-2 2v6c0 1.103.897 2 2 2zm0-8h3c.033 0 .061-.016.093-.019a1.027 1.027 0 0 0 .379-.116c.026-.014.057-.017.082-.033L12 5.868v12.264l-4.445-2.964c-.025-.018-.056-.02-.082-.033a.977.977 0 0 0-.382-.116C7.059 15.016 7.032 15 7 15H4V9z\"}}]})(props);\n};\nexport function BiWalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"13\",\"cy\":\"4\",\"r\":\"2\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.978 12.27c.245.368.611.647 1.031.787l2.675.892.633-1.896-2.675-.892-1.663-2.495a2.016 2.016 0 0 0-.769-.679l-1.434-.717a1.989 1.989 0 0 0-1.378-.149l-3.193.797a2.002 2.002 0 0 0-1.306 1.046l-1.794 3.589 1.789.895 1.794-3.589 2.223-.556-1.804 8.346-3.674 2.527 1.133 1.648 3.675-2.528c.421-.29.713-.725.82-1.225l.517-2.388 2.517 1.888.925 4.625 1.961-.393-.925-4.627a2 2 0 0 0-.762-1.206l-2.171-1.628.647-3.885 1.208 1.813z\"}}]})(props);\n};\nexport function BiWalletAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H5C3.346 3 2 4.346 2 6v12c0 1.654 1.346 3 3 3h15c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM5 19c-.552 0-1-.449-1-1V6c0-.551.448-1 1-1h15v3h-6c-1.103 0-2 .897-2 2v4c0 1.103.897 2 2 2h6.001v3H5zm15-9v4h-6v-4h6z\"}}]})(props);\n};\nexport function BiWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 12h2v4h-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 7V5c0-1.103-.897-2-2-2H5C3.346 3 2 4.346 2 6v12c0 2.201 1.794 3 3 3h15c1.103 0 2-.897 2-2V9c0-1.103-.897-2-2-2zM5 5h13v2H5a1.001 1.001 0 0 1 0-2zm15 14H5.012C4.55 18.988 4 18.805 4 18V8.815c.314.113.647.185 1 .185h15v10z\"}}]})(props);\n};\nexport function BiWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.996 9c1.413 0 2.16-.747 2.705-1.293.49-.49.731-.707 1.292-.707s.802.217 1.292.707C11.83 8.253 12.577 9 13.991 9c1.415 0 2.163-.747 2.71-1.293.491-.49.732-.707 1.295-.707s.804.217 1.295.707C19.837 8.253 20.585 9 22 9V7c-.563 0-.804-.217-1.295-.707C20.159 5.747 19.411 5 17.996 5s-2.162.747-2.709 1.292c-.491.491-.731.708-1.296.708-.562 0-.802-.217-1.292-.707C12.154 5.747 11.407 5 9.993 5s-2.161.747-2.706 1.293c-.49.49-.73.707-1.291.707s-.801-.217-1.291-.707C4.16 5.747 3.413 5 2 5v2c.561 0 .801.217 1.291.707C3.836 8.253 4.583 9 5.996 9zm0 5c1.413 0 2.16-.747 2.705-1.293.49-.49.731-.707 1.292-.707s.802.217 1.292.707c.545.546 1.292 1.293 2.706 1.293 1.415 0 2.163-.747 2.71-1.293.491-.49.732-.707 1.295-.707s.804.217 1.295.707C19.837 13.253 20.585 14 22 14v-2c-.563 0-.804-.217-1.295-.707-.546-.546-1.294-1.293-2.709-1.293s-2.162.747-2.709 1.292c-.491.491-.731.708-1.296.708-.562 0-.802-.217-1.292-.707C12.154 10.747 11.407 10 9.993 10s-2.161.747-2.706 1.293c-.49.49-.73.707-1.291.707s-.801-.217-1.291-.707C4.16 10.747 3.413 10 2 10v2c.561 0 .801.217 1.291.707C3.836 13.253 4.583 14 5.996 14zm0 5c1.413 0 2.16-.747 2.705-1.293.49-.49.731-.707 1.292-.707s.802.217 1.292.707c.545.546 1.292 1.293 2.706 1.293 1.415 0 2.163-.747 2.71-1.293.491-.49.732-.707 1.295-.707s.804.217 1.295.707C19.837 18.253 20.585 19 22 19v-2c-.563 0-.804-.217-1.295-.707-.546-.546-1.294-1.293-2.709-1.293s-2.162.747-2.709 1.292c-.491.491-.731.708-1.296.708-.562 0-.802-.217-1.292-.707C12.154 15.747 11.407 15 9.993 15s-2.161.747-2.706 1.293c-.49.49-.73.707-1.291.707s-.801-.217-1.291-.707C4.16 15.747 3.413 15 2 15v2c.561 0 .801.217 1.291.707C3.836 18.253 4.583 19 5.996 19z\"}}]})(props);\n};\nexport function BiWebcam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2c-4.963 0-9 4.038-9 9 0 3.328 1.82 6.232 4.513 7.79l-2.067 1.378A1 1 0 0 0 6 22h12a1 1 0 0 0 .555-1.832l-2.067-1.378C19.18 17.232 21 14.328 21 11c0-4.962-4.037-9-9-9zm0 16c-3.859 0-7-3.141-7-7 0-3.86 3.141-7 7-7s7 3.14 7 7c0 3.859-3.141 7-7 7z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c-2.757 0-5 2.243-5 5s2.243 5 5 5 5-2.243 5-5-2.243-5-5-5zm0 8c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3z\"}}]})(props);\n};\nexport function BiWifi0 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function BiWifi1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.671 14.307C16.184 12.819 14.17 12 12 12s-4.184.819-5.671 2.307l1.414 1.414c1.11-1.11 2.621-1.722 4.257-1.722 1.636.001 3.147.612 4.257 1.722l1.414-1.414z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function BiWifi2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.671 14.307C16.184 12.819 14.17 12 12 12s-4.184.819-5.671 2.307l1.414 1.414c1.11-1.11 2.621-1.722 4.257-1.722 1.636.001 3.147.612 4.257 1.722l1.414-1.414z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.437 11.292c-4.572-4.573-12.301-4.573-16.873 0l1.414 1.414c3.807-3.807 10.238-3.807 14.045 0l1.414-1.414z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function BiWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m1.293 8.395 1.414 1.414c.504-.504 1.052-.95 1.622-1.359L2.9 7.021c-.56.422-1.104.87-1.607 1.374zM6.474 5.06 3.707 2.293 2.293 3.707l18 18 1.414-1.414-5.012-5.012.976-.975a7.86 7.86 0 0 0-4.099-2.148L11.294 9.88c2.789-.191 5.649.748 7.729 2.827l1.414-1.414c-2.898-2.899-7.061-3.936-10.888-3.158L8.024 6.61A13.366 13.366 0 0 1 12 6c3.537 0 6.837 1.353 9.293 3.809l1.414-1.414C19.874 5.561 16.071 4 12 4a15.198 15.198 0 0 0-5.526 1.06zm-2.911 6.233 1.414 1.414a9.563 9.563 0 0 1 2.058-1.551L5.576 9.697c-.717.451-1.395.979-2.013 1.596zm2.766 3.014 1.414 1.414c.692-.692 1.535-1.151 2.429-1.428l-1.557-1.557a7.76 7.76 0 0 0-2.286 1.571zm7.66 3.803-2.1-2.1a1.996 1.996 0 1 0 2.1 2.1z\"}}]})(props);\n};\nexport function BiWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6c3.537 0 6.837 1.353 9.293 3.809l1.414-1.414C19.874 5.561 16.071 4 12 4c-4.071.001-7.874 1.561-10.707 4.395l1.414 1.414C5.163 7.353 8.463 6 12 6zm5.671 8.307c-3.074-3.074-8.268-3.074-11.342 0l1.414 1.414c2.307-2.307 6.207-2.307 8.514 0l1.414-1.414z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.437 11.293c-4.572-4.574-12.301-4.574-16.873 0l1.414 1.414c3.807-3.807 10.238-3.807 14.045 0l1.414-1.414z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"}}]})(props);\n};\nexport function BiWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 5.5C13 3.57 11.43 2 9.5 2 7.466 2 6.25 3.525 6.25 5h2c0-.415.388-1 1.25-1 .827 0 1.5.673 1.5 1.5S10.327 7 9.5 7H2v2h7.5C11.43 9 13 7.43 13 5.5zm2.5 9.5H8v2h7.5c.827 0 1.5.673 1.5 1.5s-.673 1.5-1.5 1.5c-.862 0-1.25-.585-1.25-1h-2c0 1.475 1.216 3 3.25 3 1.93 0 3.5-1.57 3.5-3.5S17.43 15 15.5 15z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 5c-2.206 0-4 1.794-4 4h2c0-1.103.897-2 2-2s2 .897 2 2-.897 2-2 2H2v2h16c2.206 0 4-1.794 4-4s-1.794-4-4-4zM2 15h4v2H2z\"}}]})(props);\n};\nexport function BiWindowAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zm0 2 .001 4H4V5h16zM4 19v-8h16.001l.001 8H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 6h2v2h-2zm3 0h2v2h-2z\"}}]})(props);\n};\nexport function BiWindowClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2zM4 19V7h16l.001 12H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"m15.707 10.707-1.414-1.414L12 11.586 9.707 9.293l-1.414 1.414L10.586 13l-2.293 2.293 1.414 1.414L12 14.414l2.293 2.293 1.414-1.414L13.414 13z\"}}]})(props);\n};\nexport function BiWindowOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 3H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h5v-2H4V7h16v12h-5v2h5c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 21v-5h3l-4-5-4 5h3v5z\"}}]})(props);\n};\nexport function BiWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21h16c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2zm0-2V7h16l.001 12H4z\"}}]})(props);\n};\nexport function BiWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 7H4c-1.103 0-2 .897-2 2v10c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V9c0-1.103-.897-2-2-2zM4 19v-8h12V9l.002 10H4z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 5c0-1.103-.897-2-2-2H7c-1.103 0-2 .897-2 2h13.001c1.101 0 1.996.895 1.999 1.994L20.002 15H20v2c1.103 0 2-.897 2-2V8.007L22.001 8V6L22 5.99V5z\"}}]})(props);\n};\nexport function BiWine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.713 12.123c.264-.952.312-2.03.143-3.206l-.866-6.059A1 1 0 0 0 18 2H6a1 1 0 0 0-.99.858l-.865 6.058c-.169 1.177-.121 2.255.142 3.206.864 3.134 3.551 5.392 6.713 5.794V20H9v2h6v-2h-2v-2.084c3.162-.402 5.849-2.66 6.713-5.793zM17.133 4l.57 4H6.296l.571-4h10.266zM6.215 11.59c-.132-.474-.181-1.009-.159-1.59h11.889c.021.581-.028 1.116-.159 1.591A6.021 6.021 0 0 1 12 16a6.019 6.019 0 0 1-5.785-4.41z\"}}]})(props);\n};\nexport function BiWinkSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm0 18c-4.411 0-8-3.589-8-8s3.589-8 8-8 8 3.589 8 8-3.589 8-8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M14.828 14.828a3.988 3.988 0 0 1-2.02 1.09 4.108 4.108 0 0 1-1.616 0 4.103 4.103 0 0 1-.749-.232 4.161 4.161 0 0 1-.679-.368 4.115 4.115 0 0 1-1.082-1.082l-1.658 1.117c.215.319.462.619.733.889a5.991 5.991 0 0 0 8.485.002c.272-.271.52-.571.734-.891l-1.658-1.117c-.143.211-.307.41-.49.592z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"10.5\",\"r\":\"1.5\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 10c-2 0-2.5 2-2.5 2h5s-.501-2-2.5-2z\"}}]})(props);\n};\nexport function BiWinkTongue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 9c-2 0-2.5 2-2.5 2h5s-.501-2-2.5-2z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zm-2 16v-3h4v3c0 1.103-.897 2-2 2s-2-.897-2-2zm5.856 1.005c.085-.323.144-.656.144-1.005v-1.499C17.589 15.028 18 13 18 13H6s.412 2.028 2 3.501V18c0 .349.059.682.144 1.005A8.005 8.005 0 0 1 4 12c0-4.411 3.589-8 8-8s8 3.589 8 8a8.005 8.005 0 0 1-4.144 7.005z\"}},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"9.5\",\"r\":\"1.5\"}}]})(props);\n};\nexport function BiWon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.758 5H19.68l-.844 3h-4.893l-.899-3h-2.088l-.899 3H5.164L4.32 5H2.242l.844 3H2v2h1.648l.563 2H2v2h2.773l1.688 6h2.083l1.8-6h3.313l1.8 6h2.083l1.688-6H22v-2h-2.211l.563-2H22V8h-1.086l.844-3zM5.727 10h3.729l-.6 2H6.289l-.562-2zm1.804 6.417L6.852 14h1.404l-.725 2.417zM10.944 12l.6-2h.912l.6 2h-2.112zm5.525 4.417L15.744 14h1.404l-.679 2.417zM17.711 12h-2.567l-.6-2h3.729l-.562 2z\"}}]})(props);\n};\nexport function BiWorld (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2C6.486 2 2 6.486 2 12s4.486 10 10 10 10-4.486 10-10S17.514 2 12 2zM4 12c0-.899.156-1.762.431-2.569L6 11l2 2v2l2 2 1 1v1.931C7.061 19.436 4 16.072 4 12zm14.33 4.873C17.677 16.347 16.687 16 16 16v-1a2 2 0 0 0-2-2h-4v-3a2 2 0 0 0 2-2V7h1a2 2 0 0 0 2-2v-.411C17.928 5.778 20 8.65 20 12a7.947 7.947 0 0 1-1.67 4.873z\"}}]})(props);\n};\nexport function BiWrench (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.122 21c.378.378.88.586 1.414.586S7.572 21.378 7.95 21l4.336-4.336a7.495 7.495 0 0 0 2.217.333 7.446 7.446 0 0 0 5.302-2.195 7.484 7.484 0 0 0 1.632-8.158l-.57-1.388-4.244 4.243-2.121-2.122 4.243-4.243-1.389-.571A7.478 7.478 0 0 0 14.499 2c-2.003 0-3.886.78-5.301 2.196a7.479 7.479 0 0 0-1.862 7.518L3 16.05a2.001 2.001 0 0 0 0 2.828L5.122 21zm4.548-8.791-.254-.616a5.486 5.486 0 0 1 1.196-5.983 5.46 5.46 0 0 1 4.413-1.585l-3.353 3.353 4.949 4.95 3.355-3.355a5.49 5.49 0 0 1-1.587 4.416c-1.55 1.55-3.964 2.027-5.984 1.196l-.615-.255-5.254 5.256h.001l-.001 1v-1l-2.122-2.122 5.256-5.255z\"}}]})(props);\n};\nexport function BiXCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.172 16.242 12 13.414l2.828 2.828 1.414-1.414L13.414 12l2.828-2.828-1.414-1.414L12 10.586 9.172 7.758 7.758 9.172 10.586 12l-2.828 2.828z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22c5.514 0 10-4.486 10-10S17.514 2 12 2 2 6.486 2 12s4.486 10 10 10zm0-18c4.411 0 8 3.589 8 8s-3.589 8-8 8-8-3.589-8-8 3.589-8 8-8z\"}}]})(props);\n};\nexport function BiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.192 6.344-4.243 4.242-4.242-4.242-1.414 1.414L10.535 12l-4.242 4.242 1.414 1.414 4.242-4.242 4.243 4.242 1.414-1.414L13.364 12l4.242-4.242z\"}}]})(props);\n};\nexport function BiYen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.2 3.4 12 10.333 6.8 3.4 5.2 4.6 10 11H7v2h4v2H7v2h4v4h2v-4h4v-2h-4v-2h4v-2h-3l4.8-6.4z\"}}]})(props);\n};\nexport function BiZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 6H9v3H6v2h3v3h2v-3h3V9h-3z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 2c-4.411 0-8 3.589-8 8s3.589 8 8 8a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8zm0 14c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6z\"}}]})(props);\n};\nexport function BiZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 9h8v2H6z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 18a7.952 7.952 0 0 0 4.897-1.688l4.396 4.396 1.414-1.414-4.396-4.396A7.952 7.952 0 0 0 18 10c0-4.411-3.589-8-8-8s-8 3.589-8 8 3.589 8 8 8zm0-14c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6z\"}}]})(props);\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar DetailedError = /*#__PURE__*/function (_Error) {\n _inherits(DetailedError, _Error);\n\n var _super = _createSuper(DetailedError);\n\n function DetailedError(message) {\n var _this;\n\n var causingErr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var req = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, DetailedError);\n\n _this = _super.call(this, message);\n _this.originalRequest = req;\n _this.originalResponse = res;\n _this.causingError = causingErr;\n\n if (causingErr != null) {\n message += \", caused by \".concat(causingErr.toString());\n }\n\n if (req != null) {\n var requestId = req.getHeader('X-Request-ID') || 'n/a';\n var method = req.getMethod();\n var url = req.getURL();\n var status = res ? res.getStatus() : 'n/a';\n var body = res ? res.getBody() || '' : 'n/a';\n message += \", originated from request (method: \".concat(method, \", url: \").concat(url, \", response code: \").concat(status, \", response text: \").concat(body, \", request id: \").concat(requestId, \")\");\n }\n\n _this.message = message;\n return _this;\n }\n\n return DetailedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport default DetailedError;","/* eslint no-console: \"off\" */\nvar isEnabled = false;\nexport function enableDebugLog() {\n isEnabled = true;\n}\nexport function log(msg) {\n if (!isEnabled) return;\n console.log(msg);\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* global window */\nimport { Base64 } from 'js-base64';\nimport URL from 'url-parse';\nimport DetailedError from './error';\nimport { log } from './logger';\nimport uuid from './uuid';\nvar defaultOptions = {\n endpoint: null,\n uploadUrl: null,\n metadata: {},\n fingerprint: null,\n uploadSize: null,\n onProgress: null,\n onChunkComplete: null,\n onSuccess: null,\n onError: null,\n _onUploadUrlAvailable: null,\n overridePatchMethod: false,\n headers: {},\n addRequestId: false,\n onBeforeRequest: null,\n onAfterResponse: null,\n onShouldRetry: null,\n chunkSize: Infinity,\n retryDelays: [0, 1000, 3000, 5000],\n parallelUploads: 1,\n storeFingerprintForResuming: true,\n removeFingerprintOnSuccess: false,\n uploadLengthDeferred: false,\n uploadDataDuringCreation: false,\n urlStorage: null,\n fileReader: null,\n httpStack: null\n};\n\nvar BaseUpload = /*#__PURE__*/function () {\n function BaseUpload(file, options) {\n _classCallCheck(this, BaseUpload);\n\n // Warn about removed options from previous versions\n if ('resume' in options) {\n console.log('tus: The `resume` option has been removed in tus-js-client v2. Please use the URL storage API instead.'); // eslint-disable-line no-console\n } // The default options will already be added from the wrapper classes.\n\n\n this.options = options; // Cast chunkSize to integer\n\n this.options.chunkSize = +this.options.chunkSize; // The storage module used to store URLs\n\n this._urlStorage = this.options.urlStorage; // The underlying File/Blob object\n\n this.file = file; // The URL against which the file will be uploaded\n\n this.url = null; // The underlying request object for the current PATCH request\n\n this._req = null; // The fingerpinrt for the current file (set after start())\n\n this._fingerprint = null; // The key that the URL storage returned when saving an URL with a fingerprint,\n\n this._urlStorageKey = null; // The offset used in the current PATCH request\n\n this._offset = null; // True if the current PATCH request has been aborted\n\n this._aborted = false; // The file's size in bytes\n\n this._size = null; // The Source object which will wrap around the given file and provides us\n // with a unified interface for getting its size and slice chunks from its\n // content allowing us to easily handle Files, Blobs, Buffers and Streams.\n\n this._source = null; // The current count of attempts which have been made. Zero indicates none.\n\n this._retryAttempt = 0; // The timeout's ID which is used to delay the next retry\n\n this._retryTimeout = null; // The offset of the remote upload before the latest attempt was started.\n\n this._offsetBeforeRetry = 0; // An array of BaseUpload instances which are used for uploading the different\n // parts, if the parallelUploads option is used.\n\n this._parallelUploads = null; // An array of upload URLs which are used for uploading the different\n // parts, if the parallelUploads option is used.\n\n this._parallelUploadUrls = null;\n }\n /**\n * Use the Termination extension to delete an upload from the server by sending a DELETE\n * request to the specified upload URL. This is only possible if the server supports the\n * Termination extension. If the `options.retryDelays` property is set, the method will\n * also retry if an error ocurrs.\n *\n * @param {String} url The upload's URL which will be terminated.\n * @param {object} options Optional options for influencing HTTP requests.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n\n\n _createClass(BaseUpload, [{\n key: \"findPreviousUploads\",\n value: function findPreviousUploads() {\n var _this = this;\n\n return this.options.fingerprint(this.file, this.options).then(function (fingerprint) {\n return _this._urlStorage.findUploadsByFingerprint(fingerprint);\n });\n }\n }, {\n key: \"resumeFromPreviousUpload\",\n value: function resumeFromPreviousUpload(previousUpload) {\n this.url = previousUpload.uploadUrl || null;\n this._parallelUploadUrls = previousUpload.parallelUploadUrls || null;\n this._urlStorageKey = previousUpload.urlStorageKey;\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n\n var file = this.file;\n\n if (!file) {\n this._emitError(new Error('tus: no file or stream to upload provided'));\n\n return;\n }\n\n if (!this.options.endpoint && !this.options.uploadUrl) {\n this._emitError(new Error('tus: neither an endpoint or an upload URL is provided'));\n\n return;\n }\n\n var retryDelays = this.options.retryDelays;\n\n if (retryDelays != null && Object.prototype.toString.call(retryDelays) !== '[object Array]') {\n this._emitError(new Error('tus: the `retryDelays` option must either be an array or null'));\n\n return;\n }\n\n if (this.options.parallelUploads > 1) {\n // Test which options are incompatible with parallel uploads.\n ['uploadUrl', 'uploadSize', 'uploadLengthDeferred'].forEach(function (optionName) {\n if (_this2.options[optionName]) {\n _this2._emitError(new Error(\"tus: cannot use the \".concat(optionName, \" option when parallelUploads is enabled\")));\n }\n });\n }\n\n this.options.fingerprint(file, this.options).then(function (fingerprint) {\n if (fingerprint == null) {\n log('No fingerprint was calculated meaning that the upload cannot be stored in the URL storage.');\n } else {\n log(\"Calculated fingerprint: \".concat(fingerprint));\n }\n\n _this2._fingerprint = fingerprint;\n\n if (_this2._source) {\n return _this2._source;\n }\n\n return _this2.options.fileReader.openFile(file, _this2.options.chunkSize);\n }).then(function (source) {\n _this2._source = source; // If the upload was configured to use multiple requests or if we resume from\n // an upload which used multiple requests, we start a parallel upload.\n\n if (_this2.options.parallelUploads > 1 || _this2._parallelUploadUrls != null) {\n _this2._startParallelUpload();\n } else {\n _this2._startSingleUpload();\n }\n })[\"catch\"](function (err) {\n _this2._emitError(err);\n });\n }\n /**\n * Initiate the uploading procedure for a parallelized upload, where one file is split into\n * multiple request which are run in parallel.\n *\n * @api private\n */\n\n }, {\n key: \"_startParallelUpload\",\n value: function _startParallelUpload() {\n var _this3 = this;\n\n var totalSize = this._size = this._source.size;\n var totalProgress = 0;\n this._parallelUploads = [];\n var partCount = this._parallelUploadUrls != null ? this._parallelUploadUrls.length : this.options.parallelUploads; // The input file will be split into multiple slices which are uploaded in separate\n // requests. Here we generate the start and end position for the slices.\n\n var parts = splitSizeIntoParts(this._source.size, partCount, this._parallelUploadUrls); // Create an empty list for storing the upload URLs\n\n this._parallelUploadUrls = new Array(parts.length); // Generate a promise for each slice that will be resolve if the respective\n // upload is completed.\n\n var uploads = parts.map(function (part, index) {\n var lastPartProgress = 0;\n return _this3._source.slice(part.start, part.end).then(function (_ref) {\n var value = _ref.value;\n return new Promise(function (resolve, reject) {\n // Merge with the user supplied options but overwrite some values.\n var options = _objectSpread(_objectSpread({}, _this3.options), {}, {\n // If available, the partial upload should be resumed from a previous URL.\n uploadUrl: part.uploadUrl || null,\n // We take manually care of resuming for partial uploads, so they should\n // not be stored in the URL storage.\n storeFingerprintForResuming: false,\n removeFingerprintOnSuccess: false,\n // Reset the parallelUploads option to not cause recursion.\n parallelUploads: 1,\n metadata: {},\n // Add the header to indicate the this is a partial upload.\n headers: _objectSpread(_objectSpread({}, _this3.options.headers), {}, {\n 'Upload-Concat': 'partial'\n }),\n // Reject or resolve the promise if the upload errors or completes.\n onSuccess: resolve,\n onError: reject,\n // Based in the progress for this partial upload, calculate the progress\n // for the entire final upload.\n onProgress: function onProgress(newPartProgress) {\n totalProgress = totalProgress - lastPartProgress + newPartProgress;\n lastPartProgress = newPartProgress;\n\n _this3._emitProgress(totalProgress, totalSize);\n },\n // Wait until every partial upload has an upload URL, so we can add\n // them to the URL storage.\n _onUploadUrlAvailable: function _onUploadUrlAvailable() {\n _this3._parallelUploadUrls[index] = upload.url; // Test if all uploads have received an URL\n\n if (_this3._parallelUploadUrls.filter(function (u) {\n return !!u;\n }).length === parts.length) {\n _this3._saveUploadInUrlStorage();\n }\n }\n });\n\n var upload = new BaseUpload(value, options);\n upload.start(); // Store the upload in an array, so we can later abort them if necessary.\n\n _this3._parallelUploads.push(upload);\n });\n });\n });\n var req; // Wait until all partial uploads are finished and we can send the POST request for\n // creating the final upload.\n\n Promise.all(uploads).then(function () {\n req = _this3._openRequest('POST', _this3.options.endpoint);\n req.setHeader('Upload-Concat', \"final;\".concat(_this3._parallelUploadUrls.join(' '))); // Add metadata if values have been added\n\n var metadata = encodeMetadata(_this3.options.metadata);\n\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n\n return _this3._sendRequest(req, null);\n }).then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this3._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n\n return;\n }\n\n var location = res.getHeader('Location');\n\n if (location == null) {\n _this3._emitHttpError(req, res, 'tus: invalid or missing Location header');\n\n return;\n }\n\n _this3.url = resolveUrl(_this3.options.endpoint, location);\n log(\"Created upload at \".concat(_this3.url));\n\n _this3._emitSuccess();\n })[\"catch\"](function (err) {\n _this3._emitError(err);\n });\n }\n /**\n * Initiate the uploading procedure for a non-parallel upload. Here the entire file is\n * uploaded in a sequential matter.\n *\n * @api private\n */\n\n }, {\n key: \"_startSingleUpload\",\n value: function _startSingleUpload() {\n // First, we look at the uploadLengthDeferred option.\n // Next, we check if the caller has supplied a manual upload size.\n // Finally, we try to use the calculated size from the source object.\n if (this.options.uploadLengthDeferred) {\n this._size = null;\n } else if (this.options.uploadSize != null) {\n this._size = +this.options.uploadSize;\n\n if (isNaN(this._size)) {\n this._emitError(new Error('tus: cannot convert `uploadSize` option into a number'));\n\n return;\n }\n } else {\n this._size = this._source.size;\n\n if (this._size == null) {\n this._emitError(new Error(\"tus: cannot automatically derive upload's size from input. Specify it manually using the `uploadSize` option or use the `uploadLengthDeferred` option\"));\n\n return;\n }\n } // Reset the aborted flag when the upload is started or else the\n // _performUpload will stop before sending a request if the upload has been\n // aborted previously.\n\n\n this._aborted = false; // The upload had been started previously and we should reuse this URL.\n\n if (this.url != null) {\n log(\"Resuming upload from previous URL: \".concat(this.url));\n\n this._resumeUpload();\n\n return;\n } // A URL has manually been specified, so we try to resume\n\n\n if (this.options.uploadUrl != null) {\n log(\"Resuming upload from provided URL: \".concat(this.options.uploadUrl));\n this.url = this.options.uploadUrl;\n\n this._resumeUpload();\n\n return;\n } // An upload has not started for the file yet, so we start a new one\n\n\n log('Creating a new upload');\n\n this._createUpload();\n }\n /**\n * Abort any running request and stop the current upload. After abort is called, no event\n * handler will be invoked anymore. You can use the `start` method to resume the upload\n * again.\n * If `shouldTerminate` is true, the `terminate` function will be called to remove the\n * current upload from the server.\n *\n * @param {boolean} shouldTerminate True if the upload should be deleted from the server.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n\n }, {\n key: \"abort\",\n value: function abort(shouldTerminate) {\n var _this4 = this;\n\n // Count the number of arguments to see if a callback is being provided in the old style required by tus-js-client 1.x, then throw an error if it is.\n // `arguments` is a JavaScript built-in variable that contains all of the function's arguments.\n if (arguments.length > 1 && typeof arguments[1] === 'function') {\n throw new Error('tus: the abort function does not accept a callback since v2 anymore; please use the returned Promise instead');\n } // Stop any parallel partial uploads, that have been started in _startParallelUploads.\n\n\n if (this._parallelUploads != null) {\n this._parallelUploads.forEach(function (upload) {\n upload.abort(shouldTerminate);\n });\n } // Stop any current running request.\n\n\n if (this._req !== null) {\n this._req.abort();\n\n this._source.close();\n }\n\n this._aborted = true; // Stop any timeout used for initiating a retry.\n\n if (this._retryTimeout != null) {\n clearTimeout(this._retryTimeout);\n this._retryTimeout = null;\n }\n\n if (!shouldTerminate || this.url == null) {\n return Promise.resolve();\n }\n\n return BaseUpload.terminate(this.url, this.options) // Remove entry from the URL storage since the upload URL is no longer valid.\n .then(function () {\n return _this4._removeFromUrlStorage();\n });\n }\n }, {\n key: \"_emitHttpError\",\n value: function _emitHttpError(req, res, message, causingErr) {\n this._emitError(new DetailedError(message, causingErr, req, res));\n }\n }, {\n key: \"_emitError\",\n value: function _emitError(err) {\n var _this5 = this;\n\n // Do not emit errors, e.g. from aborted HTTP requests, if the upload has been stopped.\n if (this._aborted) return; // Check if we should retry, when enabled, before sending the error to the user.\n\n if (this.options.retryDelays != null) {\n // We will reset the attempt counter if\n // - we were already able to connect to the server (offset != null) and\n // - we were able to upload a small chunk of data to the server\n var shouldResetDelays = this._offset != null && this._offset > this._offsetBeforeRetry;\n\n if (shouldResetDelays) {\n this._retryAttempt = 0;\n }\n\n if (shouldRetry(err, this._retryAttempt, this.options)) {\n var delay = this.options.retryDelays[this._retryAttempt++];\n this._offsetBeforeRetry = this._offset;\n this._retryTimeout = setTimeout(function () {\n _this5.start();\n }, delay);\n return;\n }\n }\n\n if (typeof this.options.onError === 'function') {\n this.options.onError(err);\n } else {\n throw err;\n }\n }\n /**\n * Publishes notification if the upload has been successfully completed.\n *\n * @api private\n */\n\n }, {\n key: \"_emitSuccess\",\n value: function _emitSuccess() {\n if (this.options.removeFingerprintOnSuccess) {\n // Remove stored fingerprint and corresponding endpoint. This causes\n // new uploads of the same file to be treated as a different file.\n this._removeFromUrlStorage();\n }\n\n if (typeof this.options.onSuccess === 'function') {\n this.options.onSuccess();\n }\n }\n /**\n * Publishes notification when data has been sent to the server. This\n * data may not have been accepted by the server yet.\n *\n * @param {number} bytesSent Number of bytes sent to the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n\n }, {\n key: \"_emitProgress\",\n value: function _emitProgress(bytesSent, bytesTotal) {\n if (typeof this.options.onProgress === 'function') {\n this.options.onProgress(bytesSent, bytesTotal);\n }\n }\n /**\n * Publishes notification when a chunk of data has been sent to the server\n * and accepted by the server.\n * @param {number} chunkSize Size of the chunk that was accepted by the server.\n * @param {number} bytesAccepted Total number of bytes that have been\n * accepted by the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n\n }, {\n key: \"_emitChunkComplete\",\n value: function _emitChunkComplete(chunkSize, bytesAccepted, bytesTotal) {\n if (typeof this.options.onChunkComplete === 'function') {\n this.options.onChunkComplete(chunkSize, bytesAccepted, bytesTotal);\n }\n }\n /**\n * Create a new upload using the creation extension by sending a POST\n * request to the endpoint. After successful creation the file will be\n * uploaded\n *\n * @api private\n */\n\n }, {\n key: \"_createUpload\",\n value: function _createUpload() {\n var _this6 = this;\n\n if (!this.options.endpoint) {\n this._emitError(new Error('tus: unable to create upload because no endpoint is provided'));\n\n return;\n }\n\n var req = this._openRequest('POST', this.options.endpoint);\n\n if (this.options.uploadLengthDeferred) {\n req.setHeader('Upload-Defer-Length', 1);\n } else {\n req.setHeader('Upload-Length', this._size);\n } // Add metadata if values have been added\n\n\n var metadata = encodeMetadata(this.options.metadata);\n\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n\n var promise;\n\n if (this.options.uploadDataDuringCreation && !this.options.uploadLengthDeferred) {\n this._offset = 0;\n promise = this._addChunkToRequest(req);\n } else {\n promise = this._sendRequest(req, null);\n }\n\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this6._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n\n return;\n }\n\n var location = res.getHeader('Location');\n\n if (location == null) {\n _this6._emitHttpError(req, res, 'tus: invalid or missing Location header');\n\n return;\n }\n\n _this6.url = resolveUrl(_this6.options.endpoint, location);\n log(\"Created upload at \".concat(_this6.url));\n\n if (typeof _this6.options._onUploadUrlAvailable === 'function') {\n _this6.options._onUploadUrlAvailable();\n }\n\n if (_this6._size === 0) {\n // Nothing to upload and file was successfully created\n _this6._emitSuccess();\n\n _this6._source.close();\n\n return;\n }\n\n _this6._saveUploadInUrlStorage();\n\n if (_this6.options.uploadDataDuringCreation) {\n _this6._handleUploadResponse(req, res);\n } else {\n _this6._offset = 0;\n\n _this6._performUpload();\n }\n })[\"catch\"](function (err) {\n _this6._emitHttpError(req, null, 'tus: failed to create upload', err);\n });\n }\n /*\n * Try to resume an existing upload. First a HEAD request will be sent\n * to retrieve the offset. If the request fails a new upload will be\n * created. In the case of a successful response the file will be uploaded.\n *\n * @api private\n */\n\n }, {\n key: \"_resumeUpload\",\n value: function _resumeUpload() {\n var _this7 = this;\n\n var req = this._openRequest('HEAD', this.url);\n\n var promise = this._sendRequest(req, null);\n\n promise.then(function (res) {\n var status = res.getStatus();\n\n if (!inStatusCategory(status, 200)) {\n if (inStatusCategory(status, 400)) {\n // Remove stored fingerprint and corresponding endpoint,\n // on client errors since the file can not be found\n _this7._removeFromUrlStorage();\n } // If the upload is locked (indicated by the 423 Locked status code), we\n // emit an error instead of directly starting a new upload. This way the\n // retry logic can catch the error and will retry the upload. An upload\n // is usually locked for a short period of time and will be available\n // afterwards.\n\n\n if (status === 423) {\n _this7._emitHttpError(req, res, 'tus: upload is currently locked; retry later');\n\n return;\n }\n\n if (!_this7.options.endpoint) {\n // Don't attempt to create a new upload if no endpoint is provided.\n _this7._emitHttpError(req, res, 'tus: unable to resume upload (new upload cannot be created without an endpoint)');\n\n return;\n } // Try to create a new upload\n\n\n _this7.url = null;\n\n _this7._createUpload();\n\n return;\n }\n\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n\n if (isNaN(offset)) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing offset value');\n\n return;\n }\n\n var length = parseInt(res.getHeader('Upload-Length'), 10);\n\n if (isNaN(length) && !_this7.options.uploadLengthDeferred) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing length value');\n\n return;\n }\n\n if (typeof _this7.options._onUploadUrlAvailable === 'function') {\n _this7.options._onUploadUrlAvailable();\n } // Upload has already been completed and we do not need to send additional\n // data to the server\n\n\n if (offset === length) {\n _this7._emitProgress(length, length);\n\n _this7._emitSuccess();\n\n return;\n }\n\n _this7._offset = offset;\n\n _this7._performUpload();\n })[\"catch\"](function (err) {\n _this7._emitHttpError(req, null, 'tus: failed to resume upload', err);\n });\n }\n /**\n * Start uploading the file using PATCH requests. The file will be divided\n * into chunks as specified in the chunkSize option. During the upload\n * the onProgress event handler may be invoked multiple times.\n *\n * @api private\n */\n\n }, {\n key: \"_performUpload\",\n value: function _performUpload() {\n var _this8 = this;\n\n // If the upload has been aborted, we will not send the next PATCH request.\n // This is important if the abort method was called during a callback, such\n // as onChunkComplete or onProgress.\n if (this._aborted) {\n return;\n }\n\n var req; // Some browser and servers may not support the PATCH method. For those\n // cases, you can tell tus-js-client to use a POST request with the\n // X-HTTP-Method-Override header for simulating a PATCH request.\n\n if (this.options.overridePatchMethod) {\n req = this._openRequest('POST', this.url);\n req.setHeader('X-HTTP-Method-Override', 'PATCH');\n } else {\n req = this._openRequest('PATCH', this.url);\n }\n\n req.setHeader('Upload-Offset', this._offset);\n\n var promise = this._addChunkToRequest(req);\n\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this8._emitHttpError(req, res, 'tus: unexpected response while uploading chunk');\n\n return;\n }\n\n _this8._handleUploadResponse(req, res);\n })[\"catch\"](function (err) {\n // Don't emit an error if the upload was aborted manually\n if (_this8._aborted) {\n return;\n }\n\n _this8._emitHttpError(req, null, \"tus: failed to upload chunk at offset \".concat(_this8._offset), err);\n });\n }\n /**\n * _addChunktoRequest reads a chunk from the source and sends it using the\n * supplied request object. It will not handle the response.\n *\n * @api private\n */\n\n }, {\n key: \"_addChunkToRequest\",\n value: function _addChunkToRequest(req) {\n var _this9 = this;\n\n var start = this._offset;\n var end = this._offset + this.options.chunkSize;\n req.setProgressHandler(function (bytesSent) {\n _this9._emitProgress(start + bytesSent, _this9._size);\n });\n req.setHeader('Content-Type', 'application/offset+octet-stream'); // The specified chunkSize may be Infinity or the calcluated end position\n // may exceed the file's size. In both cases, we limit the end position to\n // the input's total size for simpler calculations and correctness.\n\n if ((end === Infinity || end > this._size) && !this.options.uploadLengthDeferred) {\n end = this._size;\n }\n\n return this._source.slice(start, end).then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n\n // If the upload length is deferred, the upload size was not specified during\n // upload creation. So, if the file reader is done reading, we know the total\n // upload size and can tell the tus server.\n if (_this9.options.uploadLengthDeferred && done) {\n _this9._size = _this9._offset + (value && value.size ? value.size : 0);\n req.setHeader('Upload-Length', _this9._size);\n }\n\n if (value === null) {\n return _this9._sendRequest(req);\n }\n\n _this9._emitProgress(_this9._offset, _this9._size);\n\n return _this9._sendRequest(req, value);\n });\n }\n /**\n * _handleUploadResponse is used by requests that haven been sent using _addChunkToRequest\n * and already have received a response.\n *\n * @api private\n */\n\n }, {\n key: \"_handleUploadResponse\",\n value: function _handleUploadResponse(req, res) {\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n\n if (isNaN(offset)) {\n this._emitHttpError(req, res, 'tus: invalid or missing offset value');\n\n return;\n }\n\n this._emitProgress(offset, this._size);\n\n this._emitChunkComplete(offset - this._offset, offset, this._size);\n\n this._offset = offset;\n\n if (offset == this._size) {\n // Yay, finally done :)\n this._emitSuccess();\n\n this._source.close();\n\n return;\n }\n\n this._performUpload();\n }\n /**\n * Create a new HTTP request object with the given method and URL.\n *\n * @api private\n */\n\n }, {\n key: \"_openRequest\",\n value: function _openRequest(method, url) {\n var req = openRequest(method, url, this.options);\n this._req = req;\n return req;\n }\n /**\n * Remove the entry in the URL storage, if it has been saved before.\n *\n * @api private\n */\n\n }, {\n key: \"_removeFromUrlStorage\",\n value: function _removeFromUrlStorage() {\n var _this10 = this;\n\n if (!this._urlStorageKey) return;\n\n this._urlStorage.removeUpload(this._urlStorageKey)[\"catch\"](function (err) {\n _this10._emitError(err);\n });\n\n this._urlStorageKey = null;\n }\n /**\n * Add the upload URL to the URL storage, if possible.\n *\n * @api private\n */\n\n }, {\n key: \"_saveUploadInUrlStorage\",\n value: function _saveUploadInUrlStorage() {\n var _this11 = this;\n\n // Only if a fingerprint was calculated for the input (i.e. not a stream), we can store the upload URL.\n if (!this.options.storeFingerprintForResuming || !this._fingerprint) {\n return;\n }\n\n var storedUpload = {\n size: this._size,\n metadata: this.options.metadata,\n creationTime: new Date().toString()\n };\n\n if (this._parallelUploads) {\n // Save multiple URLs if the parallelUploads option is used ...\n storedUpload.parallelUploadUrls = this._parallelUploadUrls;\n } else {\n // ... otherwise we just save the one available URL.\n storedUpload.uploadUrl = this.url;\n }\n\n this._urlStorage.addUpload(this._fingerprint, storedUpload).then(function (urlStorageKey) {\n return _this11._urlStorageKey = urlStorageKey;\n })[\"catch\"](function (err) {\n _this11._emitError(err);\n });\n }\n /**\n * Send a request with the provided body.\n *\n * @api private\n */\n\n }, {\n key: \"_sendRequest\",\n value: function _sendRequest(req) {\n var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return sendRequest(req, body, this.options);\n }\n }], [{\n key: \"terminate\",\n value: function terminate(url, options) {\n // Count the number of arguments to see if a callback is being provided as the last\n // argument in the old style required by tus-js-client 1.x, then throw an error if it is.\n // `arguments` is a JavaScript built-in variable that contains all of the function's arguments.\n if (arguments.length > 1 && typeof arguments[arguments.length - 1] === 'function') {\n throw new Error('tus: the terminate function does not accept a callback since v2 anymore; please use the returned Promise instead');\n } // Note that in order for the trick above to work, a default value cannot be set for `options`,\n // so the check below replaces the old default `{}`.\n\n\n if (options === undefined) {\n options = {};\n }\n\n var req = openRequest('DELETE', url, options);\n return sendRequest(req, null, options).then(function (res) {\n // A 204 response indicates a successfull request\n if (res.getStatus() === 204) {\n return;\n }\n\n throw new DetailedError('tus: unexpected response while terminating upload', null, req, res);\n })[\"catch\"](function (err) {\n if (!(err instanceof DetailedError)) {\n err = new DetailedError('tus: failed to terminate upload', err, req, null);\n }\n\n if (!shouldRetry(err, 0, options)) {\n throw err;\n } // Instead of keeping track of the retry attempts, we remove the first element from the delays\n // array. If the array is empty, all retry attempts are used up and we will bubble up the error.\n // We recursively call the terminate function will removing elements from the retryDelays array.\n\n\n var delay = options.retryDelays[0];\n var remainingDelays = options.retryDelays.slice(1);\n\n var newOptions = _objectSpread(_objectSpread({}, options), {}, {\n retryDelays: remainingDelays\n });\n\n return new Promise(function (resolve) {\n return setTimeout(resolve, delay);\n }).then(function () {\n return BaseUpload.terminate(url, newOptions);\n });\n });\n }\n }]);\n\n return BaseUpload;\n}();\n\nfunction encodeMetadata(metadata) {\n var encoded = [];\n\n for (var key in metadata) {\n encoded.push(\"\".concat(key, \" \").concat(Base64.encode(metadata[key])));\n }\n\n return encoded.join(',');\n}\n/**\n * Checks whether a given status is in the range of the expected category.\n * For example, only a status between 200 and 299 will satisfy the category 200.\n *\n * @api private\n */\n\n\nfunction inStatusCategory(status, category) {\n return status >= category && status < category + 100;\n}\n/**\n * Create a new HTTP request with the specified method and URL.\n * The necessary headers that are included in every request\n * will be added, including the request ID.\n *\n * @api private\n */\n\n\nfunction openRequest(method, url, options) {\n var req = options.httpStack.createRequest(method, url);\n req.setHeader('Tus-Resumable', '1.0.0');\n var headers = options.headers || {};\n\n for (var name in headers) {\n req.setHeader(name, headers[name]);\n }\n\n if (options.addRequestId) {\n var requestId = uuid();\n req.setHeader('X-Request-ID', requestId);\n }\n\n return req;\n}\n/**\n * Send a request with the provided body while invoking the onBeforeRequest\n * and onAfterResponse callbacks.\n *\n * @api private\n */\n\n\nfunction sendRequest(req, body, options) {\n var onBeforeRequestPromise = typeof options.onBeforeRequest === 'function' ? Promise.resolve(options.onBeforeRequest(req)) : Promise.resolve();\n return onBeforeRequestPromise.then(function () {\n return req.send(body).then(function (res) {\n var onAfterResponsePromise = typeof options.onAfterResponse === 'function' ? Promise.resolve(options.onAfterResponse(req, res)) : Promise.resolve();\n return onAfterResponsePromise.then(function () {\n return res;\n });\n });\n });\n}\n/**\n * Checks whether the browser running this code has internet access.\n * This function will always return true in the node.js environment\n *\n * @api private\n */\n\n\nfunction isOnline() {\n var online = true;\n\n if (typeof window !== 'undefined' && 'navigator' in window && window.navigator.onLine === false) {\n online = false;\n }\n\n return online;\n}\n/**\n * Checks whether or not it is ok to retry a request.\n * @param {Error} err the error returned from the last request\n * @param {number} retryAttempt the number of times the request has already been retried\n * @param {object} options tus Upload options\n *\n * @api private\n */\n\n\nfunction shouldRetry(err, retryAttempt, options) {\n // We only attempt a retry if\n // - retryDelays option is set\n // - we didn't exceed the maxium number of retries, yet, and\n // - this error was caused by a request or it's response and\n // - the error is server error (i.e. not a status 4xx except a 409 or 423) or\n // a onShouldRetry is specified and returns true\n // - the browser does not indicate that we are offline\n if (options.retryDelays == null || retryAttempt >= options.retryDelays.length || err.originalRequest == null) {\n return false;\n }\n\n if (options && typeof options.onShouldRetry === 'function') {\n return options.onShouldRetry(err, retryAttempt, options);\n }\n\n var status = err.originalResponse ? err.originalResponse.getStatus() : 0;\n return (!inStatusCategory(status, 400) || status === 409 || status === 423) && isOnline();\n}\n/**\n * Resolve a relative link given the origin as source. For example,\n * if a HTTP request to http://example.com/files/ returns a Location\n * header with the value /upload/abc, the resolved URL will be:\n * http://example.com/upload/abc\n */\n\n\nfunction resolveUrl(origin, link) {\n return new URL(link, origin).toString();\n}\n/**\n * Calculate the start and end positions for the parts if an upload\n * is split into multiple parallel requests.\n *\n * @param {number} totalSize The byte size of the upload, which will be split.\n * @param {number} partCount The number in how many parts the upload will be split.\n * @param {string[]} previousUrls The upload URLs for previous parts.\n * @return {object[]}\n * @api private\n */\n\n\nfunction splitSizeIntoParts(totalSize, partCount, previousUrls) {\n var partSize = Math.floor(totalSize / partCount);\n var parts = [];\n\n for (var i = 0; i < partCount; i++) {\n parts.push({\n start: partSize * i,\n end: partSize * (i + 1)\n });\n }\n\n parts[partCount - 1].end = totalSize; // Attach URLs from previous uploads, if available.\n\n if (previousUrls) {\n parts.forEach(function (part, index) {\n part.uploadUrl = previousUrls[index] || null;\n });\n }\n\n return parts;\n}\n\nBaseUpload.defaultOptions = defaultOptions;\nexport default BaseUpload;","/**\n * Generate a UUID v4 based on random numbers. We intentioanlly use the less\n * secure Math.random function here since the more secure crypto.getRandomNumbers\n * is not available on all platforms.\n * This is not a problem for us since we use the UUID only for generating a\n * request ID, so we can correlate server logs to client errors.\n *\n * This function is taken from following site:\n * https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n *\n * @return {string} The generate UUID\n */\nexport default function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-unused-vars: \"off\" */\nvar NoopUrlStorage = /*#__PURE__*/function () {\n function NoopUrlStorage() {\n _classCallCheck(this, NoopUrlStorage);\n }\n\n _createClass(NoopUrlStorage, [{\n key: \"listAllUploads\",\n value: function listAllUploads() {\n return Promise.resolve([]);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n return Promise.resolve([]);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n return Promise.resolve(null);\n }\n }]);\n\n return NoopUrlStorage;\n}();\n\nexport { NoopUrlStorage as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* global window, localStorage */\nvar hasStorage = false;\n\ntry {\n hasStorage = 'localStorage' in window; // Attempt to store and read entries from the local storage to detect Private\n // Mode on Safari on iOS (see #49)\n\n var key = 'tusSupport';\n localStorage.setItem(key, localStorage.getItem(key));\n} catch (e) {\n // If we try to access localStorage inside a sandboxed iframe, a SecurityError\n // is thrown. When in private mode on iOS Safari, a QuotaExceededError is\n // thrown (see #49)\n if (e.code === e.SECURITY_ERR || e.code === e.QUOTA_EXCEEDED_ERR) {\n hasStorage = false;\n } else {\n throw e;\n }\n}\n\nexport var canStoreURLs = hasStorage;\nexport var WebStorageUrlStorage = /*#__PURE__*/function () {\n function WebStorageUrlStorage() {\n _classCallCheck(this, WebStorageUrlStorage);\n }\n\n _createClass(WebStorageUrlStorage, [{\n key: \"findAllUploads\",\n value: function findAllUploads() {\n var results = this._findEntries('tus::');\n\n return Promise.resolve(results);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n var results = this._findEntries(\"tus::\".concat(fingerprint, \"::\"));\n\n return Promise.resolve(results);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n localStorage.removeItem(urlStorageKey);\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n var id = Math.round(Math.random() * 1e12);\n var key = \"tus::\".concat(fingerprint, \"::\").concat(id);\n localStorage.setItem(key, JSON.stringify(upload));\n return Promise.resolve(key);\n }\n }, {\n key: \"_findEntries\",\n value: function _findEntries(prefix) {\n var results = [];\n\n for (var i = 0; i < localStorage.length; i++) {\n var _key = localStorage.key(i);\n\n if (_key.indexOf(prefix) !== 0) continue;\n\n try {\n var upload = JSON.parse(localStorage.getItem(_key));\n upload.urlStorageKey = _key;\n results.push(upload);\n } catch (e) {// The JSON parse error is intentionally ignored here, so a malformed\n // entry in the storage cannot prevent an upload.\n }\n }\n\n return results;\n }\n }]);\n\n return WebStorageUrlStorage;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint-disable max-classes-per-file */\nvar XHRHttpStack = /*#__PURE__*/function () {\n function XHRHttpStack() {\n _classCallCheck(this, XHRHttpStack);\n }\n\n _createClass(XHRHttpStack, [{\n key: \"createRequest\",\n value: function createRequest(method, url) {\n return new Request(method, url);\n }\n }, {\n key: \"getName\",\n value: function getName() {\n return 'XHRHttpStack';\n }\n }]);\n\n return XHRHttpStack;\n}();\n\nexport { XHRHttpStack as default };\n\nvar Request = /*#__PURE__*/function () {\n function Request(method, url) {\n _classCallCheck(this, Request);\n\n this._xhr = new XMLHttpRequest();\n\n this._xhr.open(method, url, true);\n\n this._method = method;\n this._url = url;\n this._headers = {};\n }\n\n _createClass(Request, [{\n key: \"getMethod\",\n value: function getMethod() {\n return this._method;\n }\n }, {\n key: \"getURL\",\n value: function getURL() {\n return this._url;\n }\n }, {\n key: \"setHeader\",\n value: function setHeader(header, value) {\n this._xhr.setRequestHeader(header, value);\n\n this._headers[header] = value;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._headers[header];\n }\n }, {\n key: \"setProgressHandler\",\n value: function setProgressHandler(progressHandler) {\n // Test support for progress events before attaching an event listener\n if (!('upload' in this._xhr)) {\n return;\n }\n\n this._xhr.upload.onprogress = function (e) {\n if (!e.lengthComputable) {\n return;\n }\n\n progressHandler(e.loaded);\n };\n }\n }, {\n key: \"send\",\n value: function send() {\n var _this = this;\n\n var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return new Promise(function (resolve, reject) {\n _this._xhr.onload = function () {\n resolve(new Response(_this._xhr));\n };\n\n _this._xhr.onerror = function (err) {\n reject(err);\n };\n\n _this._xhr.send(body);\n });\n }\n }, {\n key: \"abort\",\n value: function abort() {\n this._xhr.abort();\n\n return Promise.resolve();\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n\n return Request;\n}();\n\nvar Response = /*#__PURE__*/function () {\n function Response(xhr) {\n _classCallCheck(this, Response);\n\n this._xhr = xhr;\n }\n\n _createClass(Response, [{\n key: \"getStatus\",\n value: function getStatus() {\n return this._xhr.status;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._xhr.getResponseHeader(header);\n }\n }, {\n key: \"getBody\",\n value: function getBody() {\n return this._xhr.responseText;\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n\n return Response;\n}();","var isReactNative = function isReactNative() {\n return typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';\n};\n\nexport default isReactNative;","var isCordova = function isCordova() {\n return typeof window != 'undefined' && (typeof window.PhoneGap != 'undefined' || typeof window.Cordova != 'undefined' || typeof window.cordova != 'undefined');\n};\n\nexport default isCordova;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport isCordova from './isCordova';\nimport readAsByteArray from './readAsByteArray';\n\nvar FileSource = /*#__PURE__*/function () {\n // Make this.size a method\n function FileSource(file) {\n _classCallCheck(this, FileSource);\n\n this._file = file;\n this.size = file.size;\n }\n\n _createClass(FileSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n // In Apache Cordova applications, a File must be resolved using\n // FileReader instances, see\n // https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-file/index.html#read-a-file\n if (isCordova()) {\n return readAsByteArray(this._file.slice(start, end));\n }\n\n var value = this._file.slice(start, end);\n\n return Promise.resolve({\n value: value\n });\n }\n }, {\n key: \"close\",\n value: function close() {// Nothing to do here since we don't need to release any resources.\n }\n }]);\n\n return FileSource;\n}();\n\nexport { FileSource as default };","/**\n * readAsByteArray converts a File object to a Uint8Array.\n * This function is only used on the Apache Cordova platform.\n * See https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#read-a-file\n */\nexport default function readAsByteArray(chunk) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function () {\n var value = new Uint8Array(reader.result);\n resolve({\n value: value\n });\n };\n\n reader.onerror = function (err) {\n reject(err);\n };\n\n reader.readAsArrayBuffer(chunk);\n });\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction len(blobOrArray) {\n if (blobOrArray === undefined) return 0;\n if (blobOrArray.size !== undefined) return blobOrArray.size;\n return blobOrArray.length;\n}\n/*\n Typed arrays and blobs don't have a concat method.\n This function helps StreamSource accumulate data to reach chunkSize.\n*/\n\n\nfunction concat(a, b) {\n if (a.concat) {\n // Is `a` an Array?\n return a.concat(b);\n }\n\n if (a instanceof Blob) {\n return new Blob([a, b], {\n type: a.type\n });\n }\n\n if (a.set) {\n // Is `a` a typed array?\n var c = new a.constructor(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }\n\n throw new Error('Unknown data type');\n}\n\nvar StreamSource = /*#__PURE__*/function () {\n function StreamSource(reader, chunkSize) {\n _classCallCheck(this, StreamSource);\n\n this._chunkSize = chunkSize;\n this._buffer = undefined;\n this._bufferOffset = 0;\n this._reader = reader;\n this._done = false;\n }\n\n _createClass(StreamSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n if (start < this._bufferOffset) {\n return Promise.reject(new Error(\"Requested data is before the reader's current offset\"));\n }\n\n return this._readUntilEnoughDataOrDone(start, end);\n }\n }, {\n key: \"_readUntilEnoughDataOrDone\",\n value: function _readUntilEnoughDataOrDone(start, end) {\n var _this = this;\n\n var hasEnoughData = end <= this._bufferOffset + len(this._buffer);\n\n if (this._done || hasEnoughData) {\n var value = this._getDataFromBuffer(start, end);\n\n var done = value == null ? this._done : false;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n\n if (done) {\n _this._done = true;\n } else if (_this._buffer === undefined) {\n _this._buffer = value;\n } else {\n _this._buffer = concat(_this._buffer, value);\n }\n\n return _this._readUntilEnoughDataOrDone(start, end);\n });\n }\n }, {\n key: \"_getDataFromBuffer\",\n value: function _getDataFromBuffer(start, end) {\n // Remove data from buffer before `start`.\n // Data might be reread from the buffer if an upload fails, so we can only\n // safely delete data when it comes *before* what is currently being read.\n if (start > this._bufferOffset) {\n this._buffer = this._buffer.slice(start - this._bufferOffset);\n this._bufferOffset = start;\n } // If the buffer is empty after removing old data, all data has been read.\n\n\n var hasAllDataBeenRead = len(this._buffer) === 0;\n\n if (this._done && hasAllDataBeenRead) {\n return null;\n } // We already removed data before `start`, so we just return the first\n // chunk from the buffer.\n\n\n return this._buffer.slice(0, end - start);\n }\n }, {\n key: \"close\",\n value: function close() {\n if (this._reader.cancel) {\n this._reader.cancel();\n }\n }\n }]);\n\n return StreamSource;\n}();\n\nexport { StreamSource as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport isReactNative from './isReactNative';\nimport uriToBlob from './uriToBlob';\nimport FileSource from './sources/FileSource';\nimport StreamSource from './sources/StreamSource';\n\nvar FileReader = /*#__PURE__*/function () {\n function FileReader() {\n _classCallCheck(this, FileReader);\n }\n\n _createClass(FileReader, [{\n key: \"openFile\",\n value: function openFile(input, chunkSize) {\n // In React Native, when user selects a file, instead of a File or Blob,\n // you usually get a file object {} with a uri property that contains\n // a local path to the file. We use XMLHttpRequest to fetch\n // the file blob, before uploading with tus.\n if (isReactNative() && input && typeof input.uri !== 'undefined') {\n return uriToBlob(input.uri).then(function (blob) {\n return new FileSource(blob);\n })[\"catch\"](function (err) {\n throw new Error(\"tus: cannot fetch `file.uri` as Blob, make sure the uri is correct and accessible. \".concat(err));\n });\n } // Since we emulate the Blob type in our tests (not all target browsers\n // support it), we cannot use `instanceof` for testing whether the input value\n // can be handled. Instead, we simply check is the slice() function and the\n // size property are available.\n\n\n if (typeof input.slice === 'function' && typeof input.size !== 'undefined') {\n return Promise.resolve(new FileSource(input));\n }\n\n if (typeof input.read === 'function') {\n chunkSize = +chunkSize;\n\n if (!isFinite(chunkSize)) {\n return Promise.reject(new Error('cannot create source for stream without a finite value for the `chunkSize` option'));\n }\n\n return Promise.resolve(new StreamSource(input, chunkSize));\n }\n\n return Promise.reject(new Error('source object may only be an instance of File, Blob, or Reader in this environment'));\n }\n }]);\n\n return FileReader;\n}();\n\nexport { FileReader as default };","/**\n * uriToBlob resolves a URI to a Blob object. This is used for\n * React Native to retrieve a file (identified by a file://\n * URI) as a blob.\n */\nexport default function uriToBlob(uri) {\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.responseType = 'blob';\n\n xhr.onload = function () {\n var blob = xhr.response;\n resolve(blob);\n };\n\n xhr.onerror = function (err) {\n reject(err);\n };\n\n xhr.open('GET', uri);\n xhr.send();\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport BaseUpload from '../upload';\nimport NoopUrlStorage from '../noopUrlStorage';\nimport { enableDebugLog } from '../logger';\nimport { canStoreURLs, WebStorageUrlStorage } from './urlStorage';\nimport HttpStack from './httpStack';\nimport FileReader from './fileReader';\nimport fingerprint from './fingerprint';\n\nvar defaultOptions = _objectSpread(_objectSpread({}, BaseUpload.defaultOptions), {}, {\n httpStack: new HttpStack(),\n fileReader: new FileReader(),\n urlStorage: canStoreURLs ? new WebStorageUrlStorage() : new NoopUrlStorage(),\n fingerprint: fingerprint\n});\n\nvar Upload = /*#__PURE__*/function (_BaseUpload) {\n _inherits(Upload, _BaseUpload);\n\n var _super = _createSuper(Upload);\n\n function Upload() {\n var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Upload);\n\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return _super.call(this, file, options);\n }\n\n _createClass(Upload, null, [{\n key: \"terminate\",\n value: function terminate(url, options, cb) {\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return BaseUpload.terminate(url, options, cb);\n }\n }]);\n\n return Upload;\n}(BaseUpload);\n\nvar _window = window,\n XMLHttpRequest = _window.XMLHttpRequest,\n Blob = _window.Blob;\nvar isSupported = XMLHttpRequest && Blob && typeof Blob.prototype.slice === 'function';\nexport { Upload, canStoreURLs, defaultOptions, isSupported, enableDebugLog, HttpStack };","import isReactNative from './isReactNative'; // TODO: Differenciate between input types\n\n/**\n * Generate a fingerprint for a file which will be used the store the endpoint\n *\n * @param {File} file\n * @param {Object} options\n * @param {Function} callback\n */\n\nexport default function fingerprint(file, options) {\n if (isReactNative()) {\n return Promise.resolve(reactNativeFingerprint(file, options));\n }\n\n return Promise.resolve(['tus-br', file.name, file.type, file.size, file.lastModified, options.endpoint].join('-'));\n}\n\nfunction reactNativeFingerprint(file, options) {\n var exifHash = file.exif ? hashCode(JSON.stringify(file.exif)) : 'noexif';\n return ['tus-rn', file.name || 'noname', file.size || 'nosize', exifHash, options.endpoint].join('/');\n}\n\nfunction hashCode(str) {\n // from https://stackoverflow.com/a/8831937/151666\n var hash = 0;\n\n if (str.length === 0) {\n return hash;\n }\n\n for (var i = 0; i < str.length; i++) {\n var _char = str.charCodeAt(i);\n\n hash = (hash << 5) - hash + _char;\n hash &= hash; // Convert to 32bit integer\n }\n\n return hash;\n}","import urljoin from \"url-join\";\nimport parse from \"url-parse\";\nimport { trimForwardSlash, trimSuffix, trimUriPrefix } from \"./string\";\nimport { throwValidationError, validateString } from \"./validation\";\nexport const DEFAULT_SKYNET_PORTAL_URL = \"https://siasky.net\";\n/**\n * @deprecated please use DEFAULT_SKYNET_PORTAL_URL.\n */\nexport const defaultSkynetPortalUrl = DEFAULT_SKYNET_PORTAL_URL;\nexport const URI_HANDSHAKE_PREFIX = \"hns://\";\n/**\n * @deprecated please use URI_HANDSHAKE_PREFIX.\n */\nexport const uriHandshakePrefix = URI_HANDSHAKE_PREFIX;\nexport const URI_SKYNET_PREFIX = \"sia://\";\n/**\n * @deprecated please use URI_SKYNET_PREFIX.\n */\nexport const uriSkynetPrefix = URI_SKYNET_PREFIX;\n// TODO: This will be smarter. See\n// https://github.com/SkynetLabs/skynet-docs/issues/5.\n/**\n * Returns the default portal URL.\n *\n * @returns - The portal URL.\n */\nexport function defaultPortalUrl() {\n /* istanbul ignore next */\n if (typeof window === \"undefined\")\n return \"/\"; // default to path root on ssr\n return window.location.origin;\n}\n/**\n * Adds a path to the given URL.\n *\n * @param url - The URL.\n * @param path - The given path.\n * @returns - The final URL.\n */\nexport function addPath(url, path) {\n validateString(\"url\", url, \"parameter\");\n validateString(\"path\", path, \"parameter\");\n path = trimForwardSlash(path);\n let str;\n if (url === \"localhost\") {\n // Special handling for localhost.\n str = `localhost/${path}`;\n }\n else {\n // Construct a URL object and set the pathname property.\n const urlObj = new URL(url);\n urlObj.pathname = path;\n str = urlObj.toString();\n }\n return trimSuffix(str, \"/\");\n}\n/**\n * Adds a subdomain to the given URL.\n *\n * @param url - The URL.\n * @param subdomain - The subdomain to add.\n * @returns - The final URL.\n */\nexport function addSubdomain(url, subdomain) {\n const urlObj = new URL(url);\n urlObj.hostname = `${subdomain}.${urlObj.hostname}`;\n const str = urlObj.toString();\n return trimSuffix(str, \"/\");\n}\n/**\n * Adds a query to the given URL.\n *\n * @param url - The URL.\n * @param query - The query parameters.\n * @returns - The final URL.\n */\nexport function addUrlQuery(url, query) {\n const parsed = parse(url, true);\n // Combine the desired query params with the already existing ones.\n query = { ...parsed.query, ...query };\n parsed.set(\"query\", query);\n return parsed.toString();\n}\n/**\n * Properly joins paths together to create a URL. Takes a variable number of\n * arguments.\n *\n * @param args - Array of URL parts to join.\n * @returns - Final URL constructed from the input parts.\n */\nexport function makeUrl(...args) {\n if (args.length === 0) {\n throwValidationError(\"args\", args, \"parameter\", \"non-empty\");\n }\n return args.reduce((acc, cur) => urljoin(acc, cur));\n}\n/**\n * Constructs the full URL for the given domain,\n * e.g. (\"https://siasky.net\", \"dac.hns/path/file\") => \"https://dac.hns.siasky.net/path/file\"\n *\n * @param portalUrl - The portal URL.\n * @param domain - Domain.\n * @returns - The full URL for the given domain.\n */\nexport function getFullDomainUrlForPortal(portalUrl, domain) {\n validateString(\"portalUrl\", portalUrl, \"parameter\");\n validateString(\"domain\", domain, \"parameter\");\n domain = trimUriPrefix(domain, uriSkynetPrefix);\n domain = trimForwardSlash(domain);\n // Split on first / to get the path.\n let path;\n [domain, path] = domain.split(/\\/(.+)/);\n // Add to subdomain.\n let url;\n if (domain === \"localhost\") {\n // Special handling for localhost.\n url = \"localhost\";\n }\n else {\n url = addSubdomain(portalUrl, domain);\n }\n // Add back the path if there was one.\n if (path) {\n url = addPath(url, path);\n }\n return url;\n}\n/**\n * Extracts the domain from the given portal URL,\n * e.g. (\"https://siasky.net\", \"dac.hns.siasky.net/path/file\") => \"dac.hns/path/file\"\n *\n * @param portalUrl - The portal URL.\n * @param fullDomain - Full URL.\n * @returns - The extracted domain.\n */\nexport function extractDomainForPortal(portalUrl, fullDomain) {\n validateString(\"portalUrl\", portalUrl, \"parameter\");\n validateString(\"fullDomain\", fullDomain, \"parameter\");\n let path;\n try {\n // Try to extract the domain from the fullDomain.\n const fullDomainObj = new URL(fullDomain);\n fullDomain = fullDomainObj.hostname;\n path = fullDomainObj.pathname;\n path = trimForwardSlash(path);\n }\n catch {\n // If fullDomain is not a URL, ignore the error and use it as-is.\n //\n // Trim any slashes from the input URL.\n fullDomain = trimForwardSlash(fullDomain);\n // Split on first / to get the path.\n [fullDomain, path] = fullDomain.split(/\\/(.+)/);\n // Lowercase the domain to match URL parsing. Leave path as-is.\n fullDomain = fullDomain.toLowerCase();\n }\n // Get the portal domain.\n const portalUrlObj = new URL(portalUrl);\n const portalDomain = trimForwardSlash(portalUrlObj.hostname);\n // Remove the portal domain from the domain.\n let domain = trimSuffix(fullDomain, portalDomain, 1);\n domain = trimSuffix(domain, \".\");\n // Add back the path if there is one.\n if (path && path !== \"\") {\n path = trimForwardSlash(path);\n domain = `${domain}/${path}`;\n }\n return domain;\n}\n","import parse from \"url-parse\";\nimport { trimForwardSlash, trimSuffix, trimUriPrefix } from \"../utils/string\";\nimport { URI_SKYNET_PREFIX } from \"../utils/url\";\nimport { validateOptionalObject, validateString } from \"../utils/validation\";\nconst defaultParseSkylinkOptions = {\n fromSubdomain: false,\n includePath: false,\n onlyPath: false,\n};\nconst SKYLINK_MATCHER = \"([a-zA-Z0-9_-]{46})\";\nconst SKYLINK_MATCHER_SUBDOMAIN = \"([a-z0-9_-]{55})\";\nconst SKYLINK_DIRECT_REGEX = new RegExp(`^${SKYLINK_MATCHER}$`);\nconst SKYLINK_PATHNAME_REGEX = new RegExp(`^/?${SKYLINK_MATCHER}((/.*)?)$`);\nconst SKYLINK_SUBDOMAIN_REGEX = new RegExp(`^${SKYLINK_MATCHER_SUBDOMAIN}(\\\\..*)?$`);\nconst SKYLINK_DIRECT_MATCH_POSITION = 1;\nconst SKYLINK_PATH_MATCH_POSITION = 2;\n/**\n * Parses the given string for a base64 skylink, or base32 if opts.fromSubdomain is given. If the given string is prefixed with sia:, sia://, or a portal URL, those will be removed and the raw skylink returned.\n *\n * @param skylinkUrl - Plain skylink, skylink with URI prefix, or URL with skylink as the first path element.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The base64 (or base32) skylink, optionally with the path included.\n * @throws - Will throw on invalid combination of options.\n */\nexport function parseSkylink(skylinkUrl, customOptions) {\n validateString(\"skylinkUrl\", skylinkUrl, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", defaultParseSkylinkOptions);\n const opts = { ...defaultParseSkylinkOptions, ...customOptions };\n if (opts.includePath && opts.onlyPath) {\n throw new Error(\"The includePath and onlyPath options cannot both be set\");\n }\n if (opts.includePath && opts.fromSubdomain) {\n throw new Error(\"The includePath and fromSubdomain options cannot both be set\");\n }\n if (opts.fromSubdomain) {\n return parseSkylinkBase32(skylinkUrl, opts);\n }\n // Check for skylink prefixed with sia: or sia:// and extract it.\n // Example: sia:XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg\n // Example: sia://XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg\n skylinkUrl = trimUriPrefix(skylinkUrl, URI_SKYNET_PREFIX);\n // Check for direct base64 skylink match.\n const matchDirect = skylinkUrl.match(SKYLINK_DIRECT_REGEX);\n if (matchDirect) {\n if (opts.onlyPath) {\n return \"\";\n }\n return matchDirect[SKYLINK_DIRECT_MATCH_POSITION];\n }\n // Check for skylink passed in an url and extract it.\n // Example: https://siasky.net/XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg\n // Example: https://bg06v2tidkir84hg0s1s4t97jaeoaa1jse1svrad657u070c9calq4g.siasky.net (if opts.fromSubdomain = true)\n // Pass empty object as second param to disable using location as base url\n // when parsing in browser.\n const parsed = parse(skylinkUrl, {});\n const skylinkAndPath = trimSuffix(parsed.pathname, \"/\");\n const matchPathname = skylinkAndPath.match(SKYLINK_PATHNAME_REGEX);\n if (!matchPathname)\n return null;\n const path = matchPathname[SKYLINK_PATH_MATCH_POSITION];\n if (opts.includePath)\n return trimForwardSlash(skylinkAndPath);\n else if (opts.onlyPath)\n return path;\n else\n return matchPathname[SKYLINK_DIRECT_MATCH_POSITION];\n}\n/**\n * Helper function that parses the given string for a base32 skylink.\n *\n * @param skylinkUrl - Base32 skylink.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The base32 skylink.\n */\nexport function parseSkylinkBase32(skylinkUrl, customOptions) {\n // Do not validate inputs, this helper function should only be called from parseSkylink.\n const opts = { ...defaultParseSkylinkOptions, ...customOptions };\n // Pass empty object as second param to disable using location as base url\n // when parsing in browser.\n const parsed = parse(skylinkUrl, {});\n // Check if the hostname contains a skylink subdomain.\n const matchHostname = parsed.hostname.match(SKYLINK_SUBDOMAIN_REGEX);\n if (matchHostname) {\n if (opts.onlyPath) {\n return trimSuffix(parsed.pathname, \"/\");\n }\n return matchHostname[SKYLINK_DIRECT_MATCH_POSITION];\n }\n return null;\n}\n","import { parseSkylink } from \"../skylink/parse\";\nimport { isHexString } from \"./string\";\n/**\n * Validates the given value as a bigint.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid bigint.\n */\nexport function validateBigint(name, value, valueKind) {\n if (typeof value !== \"bigint\") {\n throwValidationError(name, value, valueKind, \"type 'bigint'\");\n }\n}\n/**\n * Validates the given value as a boolean.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid boolean.\n */\nexport function validateBoolean(name, value, valueKind) {\n if (typeof value !== \"boolean\") {\n throwValidationError(name, value, valueKind, \"type 'boolean'\");\n }\n}\n/**\n * Validates the given value as an object.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid object.\n */\nexport function validateObject(name, value, valueKind) {\n if (typeof value !== \"object\") {\n throwValidationError(name, value, valueKind, \"type 'object'\");\n }\n if (value === null) {\n throwValidationError(name, value, valueKind, \"non-null\");\n }\n}\n/**\n * Validates the given value as an optional object.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @param model - A model object that contains all possible fields. 'value' does not need to have all fields, but it may not have any fields not contained in 'model'.\n * @throws - Will throw if not a valid optional object.\n */\nexport function validateOptionalObject(name, value, valueKind, model) {\n if (!value) {\n // This is okay, the object is optional.\n return;\n }\n validateObject(name, value, valueKind);\n // Check if all given properties of value also exist in the model.\n for (const property in value) {\n if (!(property in model)) {\n throw new Error(`Object ${valueKind} '${name}' contains unexpected property '${property}'`);\n }\n }\n}\n/**\n * Validates the given value as a number.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid number.\n */\nexport function validateNumber(name, value, valueKind) {\n if (typeof value !== \"number\") {\n throwValidationError(name, value, valueKind, \"type 'number'\");\n }\n}\n/**\n * Validates the given value as a skylink string.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @returns - The validated and parsed skylink.\n * @throws - Will throw if not a valid skylink string.\n */\nexport function validateSkylinkString(name, value, valueKind) {\n validateString(name, value, valueKind);\n const parsedSkylink = parseSkylink(value);\n if (parsedSkylink === null) {\n throw throwValidationError(name, value, valueKind, `valid skylink of type 'string'`);\n }\n return parsedSkylink;\n}\n/**\n * Validates the given value as a string.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid string.\n */\nexport function validateString(name, value, valueKind) {\n if (typeof value !== \"string\") {\n throwValidationError(name, value, valueKind, \"type 'string'\");\n }\n}\n/**\n * Validates the given value as a string of the given length.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @param len - The length to check.\n * @throws - Will throw if not a valid string of the given length.\n */\nexport function validateStringLen(name, value, valueKind, len) {\n validateString(name, value, valueKind);\n const actualLen = value.length;\n if (actualLen !== len) {\n throwValidationError(name, value, valueKind, `type 'string' of length ${len}, was length ${actualLen}`);\n }\n}\n/**\n * Validates the given value as a hex-encoded string.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid hex-encoded string.\n */\nexport function validateHexString(name, value, valueKind) {\n validateString(name, value, valueKind);\n if (!isHexString(value)) {\n throwValidationError(name, value, valueKind, \"a hex-encoded string\");\n }\n}\n/**\n * Validates the given value as a uint8array.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid uint8array.\n */\nexport function validateUint8Array(name, value, valueKind) {\n if (!(value instanceof Uint8Array)) {\n throwValidationError(name, value, valueKind, \"type 'Uint8Array'\");\n }\n}\n/**\n * Validates the given value as a uint8array of the given length.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @param len - The length to check.\n * @throws - Will throw if not a valid uint8array of the given length.\n */\nexport function validateUint8ArrayLen(name, value, valueKind, len) {\n validateUint8Array(name, value, valueKind);\n const actualLen = value.length;\n if (actualLen !== len) {\n throwValidationError(name, value, valueKind, `type 'Uint8Array' of length ${len}, was length ${actualLen}`);\n }\n}\n/**\n * Throws an error for the given value\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @param expected - The expected aspect of the value that could not be validated (e.g. \"type 'string'\" or \"non-null\").\n * @throws - Will always throw.\n */\nexport function throwValidationError(name, value, valueKind, expected) {\n let actualValue;\n if (value === undefined) {\n actualValue = \"type 'undefined'\";\n }\n else if (value === null) {\n actualValue = \"type 'null'\";\n }\n else {\n actualValue = `type '${typeof value}', value '${value}'`;\n }\n throw new Error(`Expected ${valueKind} '${name}' to be ${expected}, was ${actualValue}`);\n}\n","import { Buffer } from \"buffer\";\nimport { throwValidationError, validateHexString, validateString } from \"./validation\";\n/**\n * Prepends the prefix to the given string only if the string does not already start with the prefix.\n *\n * @param str - The string.\n * @param prefix - The prefix.\n * @returns - The prefixed string.\n */\nexport function ensurePrefix(str, prefix) {\n if (!str.startsWith(prefix)) {\n str = `${prefix}${str}`;\n }\n return str;\n}\n/**\n * Removes slashes from the beginning and end of the string.\n *\n * @param str - The string to process.\n * @returns - The processed string.\n */\nexport function trimForwardSlash(str) {\n return trimPrefix(trimSuffix(str, \"/\"), \"/\");\n}\n// TODO: Move to mysky-utils\n/**\n * Removes a prefix from the beginning of the string.\n *\n * @param str - The string to process.\n * @param prefix - The prefix to remove.\n * @param [limit] - Maximum amount of times to trim. No limit by default.\n * @returns - The processed string.\n */\nexport function trimPrefix(str, prefix, limit) {\n while (str.startsWith(prefix)) {\n if (limit !== undefined && limit <= 0) {\n break;\n }\n str = str.slice(prefix.length);\n if (limit) {\n limit -= 1;\n }\n }\n return str;\n}\n// TODO: Move to mysky-utils\n/**\n * Removes a suffix from the end of the string.\n *\n * @param str - The string to process.\n * @param suffix - The suffix to remove.\n * @param [limit] - Maximum amount of times to trim. No limit by default.\n * @returns - The processed string.\n */\nexport function trimSuffix(str, suffix, limit) {\n while (str.endsWith(suffix)) {\n if (limit !== undefined && limit <= 0) {\n break;\n }\n str = str.substring(0, str.length - suffix.length);\n if (limit) {\n limit -= 1;\n }\n }\n return str;\n}\n/**\n * Removes a URI prefix from the beginning of the string.\n *\n * @param str - The string to process.\n * @param prefix - The prefix to remove.\n * @returns - The processed string.\n */\nexport function trimUriPrefix(str, prefix) {\n const longPrefix = prefix.toLowerCase();\n const shortPrefix = trimSuffix(longPrefix, \"/\");\n // Make sure the trimming is case-insensitive.\n const strLower = str.toLowerCase();\n if (strLower.startsWith(longPrefix)) {\n // longPrefix is exactly at the beginning\n return str.slice(longPrefix.length);\n }\n if (strLower.startsWith(shortPrefix)) {\n // else shortPrefix is exactly at the beginning\n return str.slice(shortPrefix.length);\n }\n return str;\n}\n/**\n * Converts a UTF-8 string to a uint8 array containing valid UTF-8 bytes.\n *\n * @param str - The string to convert.\n * @returns - The uint8 array.\n * @throws - Will throw if the input is not a string.\n */\nexport function stringToUint8ArrayUtf8(str) {\n validateString(\"str\", str, \"parameter\");\n return Uint8Array.from(Buffer.from(str, \"utf-8\"));\n}\n/**\n * Converts a uint8 array containing valid utf-8 bytes to a string.\n *\n * @param array - The uint8 array to convert.\n * @returns - The string.\n */\nexport function uint8ArrayToStringUtf8(array) {\n return Buffer.from(array).toString(\"utf-8\");\n}\n/**\n * Converts a hex encoded string to a uint8 array.\n *\n * @param str - The string to convert.\n * @returns - The uint8 array.\n * @throws - Will throw if the input is not a valid hex-encoded string or is an empty string.\n */\nexport function hexToUint8Array(str) {\n validateHexString(\"str\", str, \"parameter\");\n const matches = str.match(/.{1,2}/g);\n if (matches === null) {\n throw throwValidationError(\"str\", str, \"parameter\", \"a hex-encoded string\");\n }\n return new Uint8Array(matches.map((byte) => parseInt(byte, 16)));\n}\n/**\n * Returns true if the input is a valid hex-encoded string.\n *\n * @param str - The input string.\n * @returns - True if the input is hex-encoded.\n * @throws - Will throw if the input is not a string.\n */\nexport function isHexString(str) {\n validateString(\"str\", str, \"parameter\");\n return /^[0-9A-Fa-f]*$/g.test(str);\n}\n/**\n * Convert a byte array to a hex string.\n *\n * @param byteArray - The byte array to convert.\n * @returns - The hex string.\n * @see {@link https://stackoverflow.com/a/44608819|Stack Overflow}\n */\nexport function toHexString(byteArray) {\n let s = \"\";\n byteArray.forEach(function (byte) {\n s += (\"0\" + (byte & 0xff).toString(16)).slice(-2);\n });\n return s;\n}\n","import mime from \"mime/lite\";\nimport path from \"path-browserify\";\nimport { trimPrefix } from \"./string\";\n/**\n * Gets the path for the file.\n *\n * @param file - The file.\n * @returns - The path.\n */\nfunction getFilePath(file) {\n /* istanbul ignore next */\n return file.webkitRelativePath || file.path || file.name;\n}\n/**\n * Gets the file path relative to the root directory of the path, e.g. `bar` in `/foo/bar`.\n *\n * @param file - The input file.\n * @returns - The relative file path.\n */\nexport function getRelativeFilePath(file) {\n const filePath = getFilePath(file);\n const { root, dir, base } = path.parse(filePath);\n const relative = path.normalize(dir).slice(root.length).split(path.sep).slice(1);\n return path.join(...relative, base);\n}\n/**\n * Gets the root directory of the file path, e.g. `foo` in `/foo/bar`.\n *\n * @param file - The input file.\n * @returns - The root directory.\n */\nexport function getRootDirectory(file) {\n const filePath = getFilePath(file);\n const { root, dir } = path.parse(filePath);\n return path.normalize(dir).slice(root.length).split(path.sep)[0];\n}\n/**\n * Get the file mime type. In case the type is not provided, try to guess the\n * file type based on the extension.\n *\n * @param file - The file.\n * @returns - The mime type.\n */\nexport function getFileMimeType(file) {\n if (file.type)\n return file.type;\n let ext = path.extname(file.name);\n ext = trimPrefix(ext, \".\");\n if (ext !== \"\") {\n const mimeType = mime.getType(ext);\n if (mimeType) {\n return mimeType;\n }\n }\n return \"\";\n}\n","/**\n * The default base custom options.\n */\nexport const DEFAULT_BASE_OPTIONS = {\n APIKey: \"\",\n customUserAgent: \"\",\n customCookie: \"\",\n onDownloadProgress: undefined,\n onUploadProgress: undefined,\n};\n/**\n * Extract only the model's custom options from the given options.\n *\n * @param opts - The given options.\n * @param model - The model options.\n * @returns - The extracted custom options.\n * @throws - If the given opts don't contain all properties of the model.\n */\nexport function extractOptions(opts, model) {\n const result = {};\n for (const property in model) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(model, property)) {\n continue;\n }\n // Throw if the given options don't contain the model's property.\n if (!Object.prototype.hasOwnProperty.call(opts, property)) {\n throw new Error(`Property '${property}' not found`);\n }\n result[property] = opts[property];\n }\n return result;\n}\n","import { validateBigint } from \"./validation\";\n/**\n * The maximum allowed value for an entry revision. Setting an entry revision to this value prevents it from being updated further.\n */\nexport const MAX_REVISION = BigInt(\"18446744073709551615\"); // max uint64\n/**\n * Checks if the provided bigint can fit in a 64-bit unsigned integer.\n *\n * @param int - The provided integer.\n * @throws - Will throw if the int does not fit in 64 bits.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asUintN | MDN Demo}\n */\nexport function assertUint64(int) {\n validateBigint(\"int\", int, \"parameter\");\n if (int < BigInt(0)) {\n throw new Error(`Argument ${int} must be an unsigned 64-bit integer; was negative`);\n }\n if (int > MAX_REVISION) {\n throw new Error(`Argument ${int} does not fit in a 64-bit unsigned integer; exceeds 2^64-1`);\n }\n}\n","import base32Decode from \"base32-decode\";\nimport base32Encode from \"base32-encode\";\nimport { fromByteArray, toByteArray } from \"base64-js\";\nimport { assertUint64 } from \"./number\";\nimport { stringToUint8ArrayUtf8 } from \"./string\";\nconst BASE32_ENCODING_VARIANT = \"RFC4648-HEX\";\n/**\n * Decodes the skylink encoded using base32 encoding to bytes.\n *\n * @param skylink - The encoded skylink.\n * @returns - The decoded bytes.\n */\nexport function decodeSkylinkBase32(skylink) {\n skylink = skylink.toUpperCase();\n const bytes = base32Decode(skylink, BASE32_ENCODING_VARIANT);\n return new Uint8Array(bytes);\n}\n/**\n * Encodes the bytes to a skylink encoded using base32 encoding.\n *\n * @param bytes - The bytes to encode.\n * @returns - The encoded skylink.\n */\nexport function encodeSkylinkBase32(bytes) {\n return base32Encode(bytes, BASE32_ENCODING_VARIANT, { padding: false }).toLowerCase();\n}\n/**\n * Decodes the skylink encoded using base64 raw URL encoding to bytes.\n *\n * @param skylink - The encoded skylink.\n * @returns - The decoded bytes.\n */\nexport function decodeSkylinkBase64(skylink) {\n // Add padding.\n skylink = `${skylink}==`;\n // Convert from URL encoding.\n skylink = skylink.replace(/-/g, \"+\").replace(/_/g, \"/\");\n return toByteArray(skylink);\n}\n/**\n * Encodes the bytes to a skylink encoded using base64 raw URL encoding.\n *\n * @param bytes - The bytes to encode.\n * @returns - The encoded skylink.\n */\nexport function encodeSkylinkBase64(bytes) {\n let base64 = fromByteArray(bytes);\n // Convert to URL encoding.\n base64 = base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n // Remove trailing \"==\". This will always be present as the skylink encoding\n // gets padded so that the string is a multiple of 4 characters in length.\n return base64.slice(0, -2);\n}\n/**\n * Converts the given number into a uint8 array\n *\n * @param num - Number to encode.\n * @returns - Number encoded as a byte array.\n */\nexport function encodeNumber(num) {\n const encoded = new Uint8Array(8);\n for (let index = 0; index < encoded.length; index++) {\n const byte = num & 0xff;\n encoded[index] = byte;\n num = num >> 8;\n }\n return encoded;\n}\n/**\n * Encodes the given bigint into a uint8 array.\n *\n * @param int - Bigint to encode.\n * @returns - Bigint encoded as a byte array.\n * @throws - Will throw if the int does not fit in 64 bits.\n */\nexport function encodeBigintAsUint64(int) {\n // Assert the input is 64 bits.\n assertUint64(int);\n const encoded = new Uint8Array(8);\n for (let index = 0; index < encoded.length; index++) {\n const byte = int & BigInt(0xff);\n encoded[index] = Number(byte);\n int = int >> BigInt(8);\n }\n return encoded;\n}\n/**\n * Encodes the uint8array, prefixed by its length.\n *\n * @param bytes - The input array.\n * @returns - The encoded byte array.\n */\nexport function encodePrefixedBytes(bytes) {\n const len = bytes.length;\n const buf = new ArrayBuffer(8 + len);\n const view = new DataView(buf);\n // Sia uses setUint64 which is unavailable in JS.\n view.setUint32(0, len, true);\n const uint8Bytes = new Uint8Array(buf);\n uint8Bytes.set(bytes, 8);\n return uint8Bytes;\n}\n/**\n * Encodes the given UTF-8 string into a uint8 array containing the string length and the string.\n *\n * @param str - String to encode.\n * @returns - String encoded as a byte array.\n */\nexport function encodeUtf8String(str) {\n const byteArray = stringToUint8ArrayUtf8(str);\n const encoded = new Uint8Array(8 + byteArray.length);\n encoded.set(encodeNumber(byteArray.length));\n encoded.set(byteArray, 8);\n return encoded;\n}\n","import { misc, codec } from \"sjcl\";\nimport { blake2bFinal, blake2bInit, blake2bUpdate } from \"blakejs\";\nimport randomBytes from \"randombytes\";\nimport { hash, sign } from \"tweetnacl\";\nimport { hexToUint8Array, stringToUint8ArrayUtf8, toHexString } from \"./utils/string\";\nimport { validateNumber, validateString } from \"./utils/validation\";\nimport { encodeBigintAsUint64, encodePrefixedBytes, encodeUtf8String } from \"./utils/encoding\";\nexport const HASH_LENGTH = 32;\nexport const PUBLIC_KEY_LENGTH = sign.publicKeyLength * 2;\nexport const PRIVATE_KEY_LENGTH = sign.secretKeyLength * 2;\nexport const SIGNATURE_LENGTH = sign.signatureLength;\n/**\n * Returns a blake2b 256bit hasher. See `NewHash` in Sia.\n *\n * @returns - blake2b 256bit hasher.\n */\nfunction newHash() {\n return blake2bInit(32);\n}\n/**\n * Derives a child seed from the given master seed and sub seed.\n *\n * @param masterSeed - The master seed to derive from.\n * @param seed - The sub seed for the derivation.\n * @returns - The child seed derived from `masterSeed` using `seed`.\n * @throws - Will throw if the inputs are not strings.\n */\nexport function deriveChildSeed(masterSeed, seed) {\n validateString(\"masterSeed\", masterSeed, \"parameter\");\n validateString(\"seed\", seed, \"parameter\");\n return toHexString(hashAll(encodeUtf8String(masterSeed), encodeUtf8String(seed)));\n}\n/**\n * Generates a master key pair and seed.\n *\n * @param [length=64] - The number of random bytes for the seed. Note that the string seed will be converted to hex representation, making it twice this length.\n * @returns - The generated key pair and seed.\n */\nexport function genKeyPairAndSeed(length = 64) {\n validateNumber(\"length\", length, \"parameter\");\n const seed = makeSeed(length);\n return { ...genKeyPairFromSeed(seed), seed };\n}\n/**\n * Generates a public and private key from a provided, secure seed.\n *\n * @param seed - A secure seed.\n * @returns - The generated key pair.\n * @throws - Will throw if the input is not a string.\n */\nexport function genKeyPairFromSeed(seed) {\n validateString(\"seed\", seed, \"parameter\");\n // Get a 32-byte key.\n const derivedKey = misc.pbkdf2(seed, \"\", 1000, 32 * 8);\n const derivedKeyHex = codec.hex.fromBits(derivedKey);\n const { publicKey, secretKey } = sign.keyPair.fromSeed(hexToUint8Array(derivedKeyHex));\n return { publicKey: toHexString(publicKey), privateKey: toHexString(secretKey) };\n}\n/**\n * Takes all given arguments and hashes them.\n *\n * @param args - Byte arrays to hash.\n * @returns - The final hash as a byte array.\n */\nexport function hashAll(...args) {\n const hasher = newHash();\n args.forEach((arg) => blake2bUpdate(hasher, arg));\n return blake2bFinal(hasher);\n}\n// TODO: Is this the same as hashString?\n/**\n * Hash the given data key.\n *\n * @param dataKey - Data key to hash.\n * @returns - Hash of the data key.\n */\nexport function hashDataKey(dataKey) {\n return hashAll(encodeUtf8String(dataKey));\n}\n/**\n * Hashes the given registry entry.\n *\n * @param registryEntry - Registry entry to hash.\n * @param hashedDataKeyHex - Whether the data key is already hashed and in hex format. If not, we hash the data key.\n * @returns - Hash of the registry entry.\n */\nexport function hashRegistryEntry(registryEntry, hashedDataKeyHex) {\n let dataKeyBytes;\n if (hashedDataKeyHex) {\n dataKeyBytes = hexToUint8Array(registryEntry.dataKey);\n }\n else {\n dataKeyBytes = hashDataKey(registryEntry.dataKey);\n }\n const dataBytes = encodePrefixedBytes(registryEntry.data);\n return hashAll(dataKeyBytes, dataBytes, encodeBigintAsUint64(registryEntry.revision));\n}\n/**\n * Hashes the given string or byte array using sha512.\n *\n * @param message - The string or byte array to hash.\n * @returns - The resulting hash.\n */\nexport function sha512(message) {\n if (typeof message === \"string\") {\n return hash(stringToUint8ArrayUtf8(message));\n }\n else {\n return hash(message);\n }\n}\n/**\n * Generates a random seed of the given length in bytes.\n *\n * @param length - Length of the seed in bytes.\n * @returns - The generated seed.\n */\nfunction makeSeed(length) {\n // Cryptographically-secure random number generator. It should use the\n // built-in crypto.getRandomValues in the browser.\n const array = randomBytes(length);\n return toHexString(array);\n}\n","import { hashAll } from \"../crypto\";\nimport { decodeSkylinkBase64, encodeSkylinkBase64, encodePrefixedBytes, decodeSkylinkBase32 } from \"../utils/encoding\";\nimport { hexToUint8Array, stringToUint8ArrayUtf8, trimUriPrefix } from \"../utils/string\";\nimport { URI_SKYNET_PREFIX } from \"../utils/url\";\nimport { validateHexString, validateNumber, validateString, validateUint8ArrayLen } from \"../utils/validation\";\n/**\n * The string length of the Skylink after it has been encoded using base32.\n */\nexport const BASE32_ENCODED_SKYLINK_SIZE = 55;\n/**\n * The string length of the Skylink after it has been encoded using base64.\n */\nexport const BASE64_ENCODED_SKYLINK_SIZE = 46;\n/**\n * Returned when a string could not be decoded into a Skylink due to it having\n * an incorrect size.\n */\nexport const ERR_SKYLINK_INCORRECT_SIZE = \"skylink has incorrect size\";\n/**\n * The raw size in bytes of the data that gets put into a link.\n */\nexport const RAW_SKYLINK_SIZE = 34;\n/**\n * An empty skylink.\n */\nexport const EMPTY_SKYLINK = new Uint8Array(RAW_SKYLINK_SIZE);\nexport class SiaSkylink {\n constructor(bitfield, merkleRoot) {\n this.bitfield = bitfield;\n this.merkleRoot = merkleRoot;\n validateNumber(\"bitfield\", bitfield, \"constructor parameter\");\n validateUint8ArrayLen(\"merkleRoot\", merkleRoot, \"constructor parameter\", 32);\n }\n toBytes() {\n const buf = new ArrayBuffer(RAW_SKYLINK_SIZE);\n const view = new DataView(buf);\n view.setUint16(0, this.bitfield, true);\n const uint8Bytes = new Uint8Array(buf);\n uint8Bytes.set(this.merkleRoot, 2);\n return uint8Bytes;\n }\n toString() {\n return encodeSkylinkBase64(this.toBytes());\n }\n /**\n * Loads the given raw data and returns the result. Based on sl.LoadBytes in\n * skyd.\n *\n * @param data - The raw bytes to load.\n * @returns - The sia skylink.\n * @throws - Will throw if the data has an unexpected size.\n */\n static fromBytes(data) {\n validateUint8ArrayLen(\"data\", data, \"parameter\", RAW_SKYLINK_SIZE);\n const view = new DataView(data.buffer);\n // Load the bitfield.\n const bitfield = view.getUint16(0, true);\n // TODO: Validate v1 bitfields.\n const merkleRoot = new Uint8Array(32);\n merkleRoot.set(data.slice(2));\n return new SiaSkylink(bitfield, merkleRoot);\n }\n /**\n * Converts from a string and returns the result. Based on sl.LoadString in\n * skyd.\n *\n * @param skylink - The skylink string to load.\n * @returns - The sia skylink.\n * @throws - Will throw if the data has an unexpected size.\n */\n static fromString(skylink) {\n const bytes = decodeSkylink(skylink);\n return SiaSkylink.fromBytes(bytes);\n }\n}\n/**\n * Checks if the given string is a V1 skylink.\n *\n * @param skylink - The skylink to check.\n * @returns - Whether the skylink is a V1 skylink.\n */\nexport function isSkylinkV1(skylink) {\n const raw = decodeSkylink(skylink);\n // Load and check the bitfield.\n const view = new DataView(raw.buffer);\n const bitfield = view.getUint16(0, true);\n return isBitfieldSkylinkV1(bitfield);\n}\n/**\n * Checks if the given string is a V2 skylink.\n *\n * @param skylink - The skylink to check.\n * @returns - Whether the skylink is a V2 skylink.\n */\nexport function isSkylinkV2(skylink) {\n // Decode the base into raw data.\n const raw = decodeSkylink(skylink);\n // Load and check the bitfield.\n const view = new DataView(raw.buffer);\n const bitfield = view.getUint16(0, true);\n return isBitfieldSkylinkV2(bitfield);\n}\n/**\n * Returns a boolean indicating if the Skylink is a V1 skylink\n *\n * @param bitfield - The bitfield to check.\n * @returns - Whether the bitfield corresponds to a V1 skylink.\n */\nfunction isBitfieldSkylinkV1(bitfield) {\n return (bitfield & 3) === 0;\n}\n/**\n * Returns a boolean indicating if the Skylink is a V2 skylink\n *\n * @param bitfield - The bitfield to check.\n * @returns - Whether the bitfield corresponds to a V2 skylink.\n */\nfunction isBitfieldSkylinkV2(bitfield) {\n // We compare against 1 here because a V2 skylink only uses the version\n // bits. All other bits should be set to 0.\n return bitfield == 1;\n}\nconst SPECIFIER_LEN = 16;\n/**\n * Returns a specifier for given name, a specifier can only be 16 bytes so we\n * panic if the given name is too long.\n *\n * @param name - The name.\n * @returns - The specifier, if valid.\n */\nexport function newSpecifier(name) {\n validateString(\"name\", name, \"parameter\");\n const specifier = new Uint8Array(SPECIFIER_LEN);\n specifier.set(stringToUint8ArrayUtf8(name));\n return specifier;\n}\nconst PUBLIC_KEY_SIZE = 32;\nclass SiaPublicKey {\n constructor(algorithm, key) {\n this.algorithm = algorithm;\n this.key = key;\n }\n marshalSia() {\n const bytes = new Uint8Array(SPECIFIER_LEN + 8 + PUBLIC_KEY_SIZE);\n bytes.set(this.algorithm);\n bytes.set(encodePrefixedBytes(this.key), SPECIFIER_LEN);\n return bytes;\n }\n}\n/**\n * Creates a new sia public key. Matches Ed25519PublicKey in sia.\n *\n * @param publicKey - The hex-encoded public key.\n * @returns - The SiaPublicKey.\n */\nexport function newEd25519PublicKey(publicKey) {\n validateHexString(\"publicKey\", publicKey, \"parameter\");\n const algorithm = newSpecifier(\"ed25519\");\n const publicKeyBytes = hexToUint8Array(publicKey);\n validateUint8ArrayLen(\"publicKeyBytes\", publicKeyBytes, \"converted publicKey\", PUBLIC_KEY_SIZE);\n return new SiaPublicKey(algorithm, publicKeyBytes);\n}\n/**\n * Creates a new v2 skylink. Matches `NewSkylinkV2` in skyd.\n *\n * @param siaPublicKey - The public key as a SiaPublicKey.\n * @param tweak - The hashed tweak.\n * @returns - The v2 skylink.\n */\nexport function newSkylinkV2(siaPublicKey, tweak) {\n const version = 2;\n const bitfield = version - 1;\n const merkleRoot = deriveRegistryEntryID(siaPublicKey, tweak);\n return new SiaSkylink(bitfield, merkleRoot);\n}\n/**\n * A helper function that decodes the given string representation of a skylink\n * into raw bytes. It either performs a base32 decoding, or base64 decoding,\n * depending on the length.\n *\n * @param encoded - The encoded string.\n * @returns - The decoded raw bytes.\n * @throws - Will throw if the skylink is not a V1 or V2 skylink string.\n */\nexport function decodeSkylink(encoded) {\n encoded = trimUriPrefix(encoded, URI_SKYNET_PREFIX);\n let bytes;\n if (encoded.length === BASE32_ENCODED_SKYLINK_SIZE) {\n bytes = decodeSkylinkBase32(encoded);\n }\n else if (encoded.length === BASE64_ENCODED_SKYLINK_SIZE) {\n bytes = decodeSkylinkBase64(encoded);\n }\n else {\n throw new Error(ERR_SKYLINK_INCORRECT_SIZE);\n }\n // Sanity check the size of the given data.\n /* istanbul ignore next */\n if (bytes.length != RAW_SKYLINK_SIZE) {\n throw new Error(\"failed to load skylink data\");\n }\n return bytes;\n}\n/**\n * A helper to derive an entry id for a registry key value pair. Matches `DeriveRegistryEntryID` in sia.\n *\n * @param pubKey - The sia public key.\n * @param tweak - The tweak.\n * @returns - The entry ID as a hash of the inputs.\n */\nfunction deriveRegistryEntryID(pubKey, tweak) {\n return hashAll(pubKey.marshalSia(), tweak);\n}\n","import { BASE32_ENCODED_SKYLINK_SIZE, BASE64_ENCODED_SKYLINK_SIZE } from \"./sia\";\nimport { decodeSkylinkBase32, decodeSkylinkBase64, encodeSkylinkBase32, encodeSkylinkBase64 } from \"../utils/encoding\";\nimport { trimUriPrefix } from \"../utils/string\";\nimport { URI_SKYNET_PREFIX } from \"../utils/url\";\nimport { validateString, validateStringLen } from \"../utils/validation\";\n/**\n * Converts the given base64 skylink to base32.\n *\n * @param skylink - The base64 skylink.\n * @returns - The converted base32 skylink.\n */\nexport function convertSkylinkToBase32(skylink) {\n skylink = trimUriPrefix(skylink, URI_SKYNET_PREFIX);\n validateStringLen(\"skylink\", skylink, \"parameter\", BASE64_ENCODED_SKYLINK_SIZE);\n const bytes = decodeSkylinkBase64(skylink);\n return encodeSkylinkBase32(bytes);\n}\n/**\n * Converts the given base32 skylink to base64.\n *\n * @param skylink - The base32 skylink.\n * @returns - The converted base64 skylink.\n */\nexport function convertSkylinkToBase64(skylink) {\n skylink = trimUriPrefix(skylink, URI_SKYNET_PREFIX);\n validateStringLen(\"skylink\", skylink, \"parameter\", BASE32_ENCODED_SKYLINK_SIZE);\n const bytes = decodeSkylinkBase32(skylink);\n return encodeSkylinkBase64(bytes);\n}\n/**\n * Formats the skylink by adding the sia: prefix.\n *\n * @param skylink - The skylink.\n * @returns - The formatted skylink.\n */\nexport function formatSkylink(skylink) {\n validateString(\"skylink\", skylink, \"parameter\");\n if (skylink === \"\") {\n return skylink;\n }\n if (!skylink.startsWith(URI_SKYNET_PREFIX)) {\n skylink = `${URI_SKYNET_PREFIX}${skylink}`;\n }\n return skylink;\n}\n","import { Upload } from \"tus-js-client\";\nimport { getFileMimeType } from \"./utils/file\";\nimport { DEFAULT_BASE_OPTIONS } from \"./utils/options\";\nimport { formatSkylink } from \"./skylink/format\";\nimport { buildRequestHeaders, buildRequestUrl } from \"./client\";\nimport { throwValidationError, validateObject, validateOptionalObject, validateString } from \"./utils/validation\";\n/**\n * The tus chunk size is (4MiB - encryptionOverhead) * dataPieces, set in skyd.\n */\nconst TUS_CHUNK_SIZE = (1 << 22) * 10;\n/**\n * A number indicating how many parts should be uploaded in parallel.\n */\nconst TUS_PARALLEL_UPLOADS = 2;\n/**\n * The retry delays, in ms. Data is stored in skyd for up to 20 minutes, so the\n * total delays should not exceed that length of time.\n */\nconst DEFAULT_TUS_RETRY_DELAYS = [0, 5000, 15000, 60000, 300000, 600000];\n/**\n * The portal file field name.\n */\nconst PORTAL_FILE_FIELD_NAME = \"file\";\n/**\n * The portal directory file field name.\n */\nconst PORTAL_DIRECTORY_FILE_FIELD_NAME = \"files[]\";\nexport const DEFAULT_UPLOAD_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n endpointUpload: \"/skynet/skyfile\",\n endpointLargeUpload: \"/skynet/tus\",\n customFilename: \"\",\n errorPages: undefined,\n largeFileSize: TUS_CHUNK_SIZE,\n retryDelays: DEFAULT_TUS_RETRY_DELAYS,\n tryFiles: undefined,\n};\n/**\n * Uploads a file to Skynet.\n *\n * @param this - SkynetClient\n * @param file - The file to upload.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointUpload=\"/skynet/skyfile\"] - The relative URL path of the portal endpoint to contact for small uploads.\n * @param [customOptions.endpointLargeUpload=\"/skynet/tus\"] - The relative URL path of the portal endpoint to contact for large uploads.\n * @returns - The returned skylink.\n * @throws - Will throw if the request is successful but the upload response does not contain a complete response.\n */\nexport async function uploadFile(file, customOptions) {\n // Validation is done in `uploadFileRequest` or `uploadLargeFileRequest`.\n const opts = { ...DEFAULT_UPLOAD_OPTIONS, ...this.customOptions, ...customOptions };\n if (file.size < opts.largeFileSize) {\n return this.uploadSmallFile(file, opts);\n }\n else {\n return this.uploadLargeFile(file, opts);\n }\n}\n/**\n * Uploads a small file to Skynet.\n *\n * @param this - SkynetClient\n * @param file - The file to upload.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointUpload=\"/skynet/tus\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The returned skylink.\n * @throws - Will throw if the request is successful but the upload response does not contain a complete response.\n */\nexport async function uploadSmallFile(file, customOptions) {\n const response = await this.uploadSmallFileRequest(file, customOptions);\n // Sanity check.\n validateUploadResponse(response);\n const skylink = formatSkylink(response.data.skylink);\n return { skylink };\n}\n/**\n * Makes a request to upload a small file to Skynet.\n *\n * @param this - SkynetClient\n * @param file - The file to upload.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointPath=\"/skynet/skyfile\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The upload response.\n */\nexport async function uploadSmallFileRequest(file, customOptions) {\n validateFile(\"file\", file, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_UPLOAD_OPTIONS);\n const opts = { ...DEFAULT_UPLOAD_OPTIONS, ...this.customOptions, ...customOptions };\n const formData = new FormData();\n file = ensureFileObjectConsistency(file);\n if (opts.customFilename) {\n formData.append(PORTAL_FILE_FIELD_NAME, file, opts.customFilename);\n }\n else {\n formData.append(PORTAL_FILE_FIELD_NAME, file);\n }\n const response = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointUpload,\n method: \"post\",\n data: formData,\n });\n return response;\n}\n/* istanbul ignore next */\n/**\n * Uploads a large file to Skynet using tus.\n *\n * @param this - SkynetClient\n * @param file - The file to upload.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointLargeUpload=\"/skynet/tus\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The returned skylink.\n * @throws - Will throw if the request is successful but the upload response does not contain a complete response.\n */\nexport async function uploadLargeFile(file, customOptions) {\n // Validation is done in `uploadLargeFileRequest`.\n const response = await this.uploadLargeFileRequest(file, customOptions);\n // Sanity check.\n validateLargeUploadResponse(response);\n // Get the skylink.\n let skylink = response.headers[\"skynet-skylink\"];\n // Format the skylink.\n skylink = formatSkylink(skylink);\n return { skylink };\n}\n/* istanbul ignore next */\n/**\n * Makes a request to upload a file to Skynet.\n *\n * @param this - SkynetClient\n * @param file - The file to upload.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointLargeUpload=\"/skynet/tus\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The upload response.\n */\nexport async function uploadLargeFileRequest(file, customOptions) {\n var _a;\n validateFile(\"file\", file, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_UPLOAD_OPTIONS);\n const opts = { ...DEFAULT_UPLOAD_OPTIONS, ...this.customOptions, ...customOptions };\n // TODO: Add back upload options once they are implemented in skyd.\n const url = await buildRequestUrl(this, opts.endpointLargeUpload);\n const headers = buildRequestHeaders(undefined, opts.customUserAgent, opts.customCookie);\n file = ensureFileObjectConsistency(file);\n let filename = file.name;\n if (opts.customFilename) {\n filename = opts.customFilename;\n }\n const onProgress = opts.onUploadProgress &&\n function (bytesSent, bytesTotal) {\n const progress = bytesSent / bytesTotal;\n // @ts-expect-error TS complains.\n opts.onUploadProgress(progress, { loaded: bytesSent, total: bytesTotal });\n };\n // Make an OPTIONS request to find out whether parallel uploads are supported.\n // TODO: Remove this once parallel uploads are fully supported and rolled-out.\n const resp = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointLargeUpload,\n method: \"options\",\n });\n let parallelUploads = 1;\n if ((_a = resp.headers[\"Tus-Extension\"]) === null || _a === void 0 ? void 0 : _a.contains(\"concatenation\")) {\n parallelUploads = TUS_PARALLEL_UPLOADS;\n }\n return new Promise((resolve, reject) => {\n const tusOpts = {\n endpoint: url,\n chunkSize: TUS_CHUNK_SIZE,\n retryDelays: opts.retryDelays,\n metadata: {\n filename,\n filetype: file.type,\n },\n parallelUploads,\n headers,\n onProgress,\n onBeforeRequest: function (req) {\n const xhr = req.getUnderlyingObject();\n xhr.withCredentials = true;\n },\n onError: (error) => {\n // Return error body rather than entire error.\n // @ts-expect-error tus-client-js Error is not typed correctly.\n const res = error.originalResponse;\n const newError = res ? new Error(res.getBody().trim()) || error : error;\n reject(newError);\n },\n onSuccess: async () => {\n if (!upload.url) {\n reject(new Error(\"'upload.url' was not set\"));\n return;\n }\n // Call HEAD to get the metadata, including the skylink.\n const resp = await this.executeRequest({\n ...opts,\n url: upload.url,\n endpointPath: opts.endpointLargeUpload,\n method: \"head\",\n headers: { ...headers, \"Tus-Resumable\": \"1.0.0\" },\n });\n resolve(resp);\n },\n };\n const upload = new Upload(file, tusOpts);\n upload.start();\n });\n}\n/**\n * Uploads a directory to Skynet.\n *\n * @param this - SkynetClient\n * @param directory - File objects to upload, indexed by their path strings.\n * @param filename - The name of the directory.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointPath=\"/skynet/skyfile\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The returned skylink.\n * @throws - Will throw if the request is successful but the upload response does not contain a complete response.\n */\nexport async function uploadDirectory(directory, filename, customOptions) {\n // Validation is done in `uploadDirectoryRequest`.\n const response = await this.uploadDirectoryRequest(directory, filename, customOptions);\n // Sanity check.\n validateUploadResponse(response);\n const skylink = formatSkylink(response.data.skylink);\n return { skylink };\n}\n/**\n * Makes a request to upload a directory to Skynet.\n *\n * @param this - SkynetClient\n * @param directory - File objects to upload, indexed by their path strings.\n * @param filename - The name of the directory.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointPath=\"/skynet/skyfile\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The upload response.\n * @throws - Will throw if the input filename is not a string.\n */\nexport async function uploadDirectoryRequest(directory, filename, customOptions) {\n validateObject(\"directory\", directory, \"parameter\");\n validateString(\"filename\", filename, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_UPLOAD_OPTIONS);\n const opts = { ...DEFAULT_UPLOAD_OPTIONS, ...this.customOptions, ...customOptions };\n const formData = new FormData();\n Object.entries(directory).forEach(([path, file]) => {\n file = ensureFileObjectConsistency(file);\n formData.append(PORTAL_DIRECTORY_FILE_FIELD_NAME, file, path);\n });\n const query = { filename };\n if (opts.tryFiles) {\n query.tryfiles = JSON.stringify(opts.tryFiles);\n }\n if (opts.errorPages) {\n query.errorpages = JSON.stringify(opts.errorPages);\n }\n const response = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointUpload,\n method: \"post\",\n data: formData,\n query,\n });\n return response;\n}\n/**\n * Sometimes file object might have had the type property defined manually with\n * Object.defineProperty and some browsers (namely firefox) can have problems\n * reading it after the file has been appended to form data. To overcome this,\n * we recreate the file object using native File constructor with a type defined\n * as a constructor argument.\n *\n * @param file - The input file.\n * @returns - The processed file.\n */\nfunction ensureFileObjectConsistency(file) {\n return new File([file], file.name, { type: getFileMimeType(file) });\n}\n/**\n * Validates the given value as a file.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid file.\n */\nfunction validateFile(name, value, valueKind) {\n if (!(value instanceof File)) {\n throwValidationError(name, value, valueKind, \"type 'File'\");\n }\n}\n/**\n * Validates the upload response.\n *\n * @param response - The upload response.\n * @throws - Will throw if not a valid upload response.\n */\nfunction validateUploadResponse(response) {\n try {\n if (!response.data) {\n throw new Error(\"response.data field missing\");\n }\n validateString(\"skylink\", response.data.skylink, \"upload response field\");\n }\n catch (err) {\n throw new Error(`Did not get a complete upload response despite a successful request. Please try again and report this issue to the devs if it persists. ${err}`);\n }\n}\n/* istanbul ignore next */\n/**\n * Validates the large upload response.\n *\n * @param response - The upload response.\n * @throws - Will throw if not a valid upload response.\n */\nfunction validateLargeUploadResponse(response) {\n try {\n if (!response.headers) {\n throw new Error(\"response.headers field missing\");\n }\n validateString('response.headers[\"skynet-skylink\"]', response.headers[\"skynet-skylink\"], \"upload response field\");\n }\n catch (err) {\n throw new Error(`Did not get a complete upload response despite a successful request. Please try again and report this issue to the devs if it persists. Error: ${err}`);\n }\n}\n","import { Buffer } from \"buffer\";\nimport { sign } from \"tweetnacl\";\nimport { assertUint64 } from \"./utils/number\";\nimport { DEFAULT_BASE_OPTIONS } from \"./utils/options\";\nimport { ensurePrefix, hexToUint8Array, isHexString, toHexString, trimPrefix, trimUriPrefix } from \"./utils/string\";\nimport { addUrlQuery, makeUrl, URI_SKYNET_PREFIX } from \"./utils/url\";\nimport { hashDataKey, hashRegistryEntry, PUBLIC_KEY_LENGTH, SIGNATURE_LENGTH } from \"./crypto\";\nimport { throwValidationError, validateBigint, validateHexString, validateObject, validateOptionalObject, validateString, validateUint8Array, validateUint8ArrayLen, } from \"./utils/validation\";\nimport { newEd25519PublicKey, newSkylinkV2 } from \"./skylink/sia\";\nimport { formatSkylink } from \"./skylink/format\";\nimport { toByteArray } from \"base64-js\";\nimport { encodeSkylinkBase64 } from \"./utils/encoding\";\nexport const DEFAULT_GET_ENTRY_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n endpointGetEntry: \"/skynet/registry\",\n hashedDataKeyHex: false,\n};\nexport const DEFAULT_SET_ENTRY_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n endpointSetEntry: \"/skynet/registry\",\n hashedDataKeyHex: false,\n};\nexport const DEFAULT_GET_ENTRY_TIMEOUT = 5; // 5 seconds\n/**\n * Regex for JSON revision value without quotes.\n */\nexport const REGEX_REVISION_NO_QUOTES = /\"revision\":\\s*([0-9]+)/;\n/**\n * The type of an entry that doesn't contain a pubkey. All of the data is\n * considered to be arbitrary.\n */\nexport const REGISTRY_TYPE_WITHOUT_PUBKEY = 1;\n/**\n * The type of an entry which is expected to have a RegistryPubKeyHashSize long\n * hash of a host's pubkey at the beginning of its data. The key is used to\n * determine whether an entry is considered a primary or secondary entry on a\n * host.\n */\nexport const REGISTRY_TYPE_WITH_PUBKEY = 2;\n/**\n * Regex for JSON revision value with quotes.\n */\nconst REGEX_REVISION_WITH_QUOTES = /\"revision\":\\s*\"([0-9]+)\"/;\nconst ED25519_PREFIX = \"ed25519:\";\n/**\n * Gets the registry entry corresponding to the publicKey and dataKey.\n *\n * @param this - SkynetClient\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The signed registry entry.\n * @throws - Will throw if the returned signature does not match the returned entry or the provided timeout is invalid or the given key is not valid.\n */\nexport async function getEntry(publicKey, dataKey, customOptions) {\n // Validation is done in `getEntryUrl`.\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const url = await this.registry.getEntryUrl(publicKey, dataKey, opts);\n let response;\n try {\n response = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointGetEntry,\n url,\n method: \"get\",\n // Transform the response to add quotes, since uint64 cannot be accurately\n // read by JS so the revision needs to be parsed as a string.\n transformResponse: function (data) {\n if (data === undefined) {\n return {};\n }\n // Change the revision value from a JSON integer to a string.\n data = data.replace(REGEX_REVISION_NO_QUOTES, '\"revision\":\"$1\"');\n // Try converting the JSON data to an object.\n try {\n return JSON.parse(data);\n }\n catch {\n // The data is not JSON, it's likely an HTML error response.\n return data;\n }\n },\n });\n }\n catch (err) {\n return handleGetEntryErrResponse(err);\n }\n // Sanity check.\n try {\n validateString(\"response.data.data\", response.data.data, \"entry response field\");\n validateString(\"response.data.revision\", response.data.revision, \"entry response field\");\n validateString(\"response.data.signature\", response.data.signature, \"entry response field\");\n }\n catch (err) {\n throw new Error(`Did not get a complete entry response despite a successful request. Please try again and report this issue to the devs if it persists. Error: ${err}`);\n }\n // Convert the revision from a string to bigint.\n const revision = BigInt(response.data.revision);\n const signature = Buffer.from(hexToUint8Array(response.data.signature));\n // Use empty array if the data is empty.\n let data = new Uint8Array([]);\n if (response.data.data) {\n data = hexToUint8Array(response.data.data);\n }\n const signedEntry = {\n entry: {\n dataKey,\n data,\n revision,\n },\n signature,\n };\n // Try verifying the returned data.\n const signatureBytes = new Uint8Array(signedEntry.signature);\n const publicKeyBytes = hexToUint8Array(publicKey);\n // Verify length of signature and public key.\n validateUint8ArrayLen(\"signatureArray\", signatureBytes, \"response value\", SIGNATURE_LENGTH);\n validateUint8ArrayLen(\"publicKeyArray\", publicKeyBytes, \"response value\", PUBLIC_KEY_LENGTH / 2);\n if (sign.detached.verify(hashRegistryEntry(signedEntry.entry, opts.hashedDataKeyHex), signatureBytes, publicKeyBytes)) {\n return signedEntry;\n }\n // The response could not be verified.\n throw new Error(\"Could not verify signature from retrieved, signed registry entry -- possible corrupted entry\");\n}\n/**\n * Gets the registry entry URL corresponding to the publicKey and dataKey.\n *\n * @param this - SkynetClient\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The full get entry URL.\n * @throws - Will throw if the provided timeout is invalid or the given key is not valid.\n */\nexport async function getEntryUrl(publicKey, dataKey, customOptions) {\n // Validation is done in `getEntryUrlForPortal`.\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const portalUrl = await this.portalUrl();\n return getEntryUrlForPortal(portalUrl, publicKey, dataKey, opts);\n}\n/**\n * Gets the registry entry URL without an initialized client.\n *\n * @param portalUrl - The portal URL.\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The full get entry URL.\n * @throws - Will throw if the given key is not valid.\n */\nexport function getEntryUrlForPortal(portalUrl, publicKey, dataKey, customOptions) {\n validateString(\"portalUrl\", portalUrl, \"parameter\");\n validatePublicKey(\"publicKey\", publicKey, \"parameter\");\n validateString(\"dataKey\", dataKey, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_ENTRY_OPTIONS);\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...customOptions,\n };\n // Hash and hex encode the given data key if it is not a hash already.\n let dataKeyHashHex = dataKey;\n if (!opts.hashedDataKeyHex) {\n dataKeyHashHex = toHexString(hashDataKey(dataKey));\n }\n const query = {\n publickey: ensurePrefix(publicKey, ED25519_PREFIX),\n datakey: dataKeyHashHex,\n timeout: DEFAULT_GET_ENTRY_TIMEOUT,\n };\n let url = makeUrl(portalUrl, opts.endpointGetEntry);\n url = addUrlQuery(url, query);\n return url;\n}\n/**\n * Gets the entry link for the entry at the given public key and data key. This link stays the same even if the content at the entry changes.\n *\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The entry link.\n * @throws - Will throw if the given key is not valid.\n */\nexport function getEntryLink(publicKey, dataKey, customOptions) {\n validatePublicKey(\"publicKey\", publicKey, \"parameter\");\n validateString(\"dataKey\", dataKey, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_ENTRY_OPTIONS);\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...customOptions,\n };\n const siaPublicKey = newEd25519PublicKey(trimPrefix(publicKey, ED25519_PREFIX));\n let tweak;\n if (opts.hashedDataKeyHex) {\n tweak = hexToUint8Array(dataKey);\n }\n else {\n tweak = hashDataKey(dataKey);\n }\n const skylink = newSkylinkV2(siaPublicKey, tweak).toString();\n return formatSkylink(skylink);\n}\n/* istanbul ignore next */\n/**\n * Gets the entry link for the entry at the given public key and data key. This link stays the same even if the content at the entry changes.\n *\n * @param this - SkynetClient\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The entry link.\n * @throws - Will throw if the given key is not valid.\n * @deprecated - Please use the standalone, non-async function `getEntryLink`.\n */\nexport async function getEntryLinkAsync(publicKey, dataKey, customOptions) {\n validatePublicKey(\"publicKey\", publicKey, \"parameter\");\n validateString(\"dataKey\", dataKey, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_ENTRY_OPTIONS);\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...customOptions,\n };\n const siaPublicKey = newEd25519PublicKey(trimPrefix(publicKey, ED25519_PREFIX));\n let tweak;\n if (opts.hashedDataKeyHex) {\n tweak = hexToUint8Array(dataKey);\n }\n else {\n tweak = hashDataKey(dataKey);\n }\n const skylink = newSkylinkV2(siaPublicKey, tweak).toString();\n return formatSkylink(skylink);\n}\n/**\n * Sets the registry entry.\n *\n * @param this - SkynetClient\n * @param privateKey - The user private key.\n * @param entry - The entry to set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An empty promise.\n * @throws - Will throw if the entry revision does not fit in 64 bits or the given key is not valid.\n */\nexport async function setEntry(privateKey, entry, customOptions) {\n validateHexString(\"privateKey\", privateKey, \"parameter\");\n validateRegistryEntry(\"entry\", entry, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_ENTRY_OPTIONS);\n // Assert the input is 64 bits.\n assertUint64(entry.revision);\n const opts = {\n ...DEFAULT_SET_ENTRY_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const privateKeyArray = hexToUint8Array(privateKey);\n const signature = await signEntry(privateKey, entry, opts.hashedDataKeyHex);\n const { publicKey: publicKeyArray } = sign.keyPair.fromSecretKey(privateKeyArray);\n return await this.registry.postSignedEntry(toHexString(publicKeyArray), entry, signature, opts);\n}\n/**\n * Signs the entry with the given private key.\n *\n * @param privateKey - The user private key.\n * @param entry - The entry to sign.\n * @param hashedDataKeyHex - Whether the data key is already hashed and in hex format. If not, we hash the data key.\n * @returns - The signature.\n */\nexport async function signEntry(privateKey, entry, hashedDataKeyHex) {\n // TODO: Publicly available, validate input.\n const privateKeyArray = hexToUint8Array(privateKey);\n // Sign the entry.\n // TODO: signature type should be Signature?\n return sign(hashRegistryEntry(entry, hashedDataKeyHex), privateKeyArray);\n}\n/**\n * Posts the entry with the given public key and signature to Skynet.\n *\n * @param this - The Skynet client.\n * @param publicKey - The user public key.\n * @param entry - The entry to set.\n * @param signature - The signature.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An empty promise.\n */\nexport async function postSignedEntry(publicKey, entry, signature, customOptions) {\n validateHexString(\"publicKey\", publicKey, \"parameter\");\n validateRegistryEntry(\"entry\", entry, \"parameter\");\n validateUint8Array(\"signature\", signature, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_ENTRY_OPTIONS);\n const opts = {\n ...DEFAULT_SET_ENTRY_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n // Hash and hex encode the given data key if it is not a hash already.\n let datakey = entry.dataKey;\n if (!opts.hashedDataKeyHex) {\n datakey = toHexString(hashDataKey(datakey));\n }\n // Convert the entry data to an array from raw bytes.\n const entryData = Array.from(entry.data);\n const data = {\n publickey: {\n algorithm: \"ed25519\",\n key: Array.from(hexToUint8Array(publicKey)),\n },\n datakey,\n // Set the revision as a string here. The value may be up to 64 bits and the limit for a JS number is 53 bits.\n // We remove the quotes later in transformRequest, as JSON does support 64 bit numbers.\n revision: entry.revision.toString(),\n data: entryData,\n signature: Array.from(signature),\n };\n await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointSetEntry,\n method: \"post\",\n data,\n // Transform the request to remove quotes, since the revision needs to be\n // parsed as a uint64 on the Go side.\n transformRequest: function (data) {\n // Convert the object data to JSON.\n const json = JSON.stringify(data);\n // Change the revision value from a string to a JSON integer.\n return json.replace(REGEX_REVISION_WITH_QUOTES, '\"revision\":$1');\n },\n });\n}\n/**\n * Validates the registry proof.\n *\n * @param proof - The registry proof.\n * @param [opts] - Optional custom options.\n * @returns - The resolver skylink and resolved skylink from the proof.\n * @throws - Will throw if the registry proof fails to verify.\n */\nexport function validateRegistryProof(proof, opts) {\n let resolverSkylink = undefined;\n let lastSkylink = opts === null || opts === void 0 ? void 0 : opts.resolverSkylink;\n const dataLink = opts === null || opts === void 0 ? void 0 : opts.skylink;\n // Verify the proof is not empty.\n if (proof.length === 0) {\n throw new Error(\"Expected registry proof not to be empty\");\n }\n // Verify the registry proof.\n for (const entry of proof) {\n if (entry.type !== REGISTRY_TYPE_WITHOUT_PUBKEY) {\n throw new Error(`Unsupported registry type in proof: '${entry.type}'`);\n }\n const publicKey = entry.publickey.key;\n const publicKeyBytes = toByteArray(publicKey);\n const publicKeyHex = toHexString(publicKeyBytes);\n const dataKey = entry.datakey;\n const data = entry.data;\n const signatureBytes = hexToUint8Array(entry.signature);\n // Verify the current entry corresponds to the previous skylink in the chain.\n let entryLink = getEntryLink(publicKeyHex, dataKey, { hashedDataKeyHex: true });\n entryLink = trimUriPrefix(entryLink, URI_SKYNET_PREFIX);\n if (lastSkylink && entryLink !== lastSkylink) {\n throw new Error(\"Could not verify registry proof chain\");\n }\n // Set the resolver skylink if this is the first link in the chain.\n if (!resolverSkylink) {\n resolverSkylink = entryLink;\n }\n // Data bytes are hex-encoded raw skylink bytes.\n const rawData = hexToUint8Array(data);\n const skylink = encodeSkylinkBase64(rawData);\n // Try verifying the returned data.\n const entryToVerify = {\n dataKey,\n data: rawData,\n revision: BigInt(entry.revision),\n };\n // Verify length of signature and public key.\n validateUint8ArrayLen(\"signatureArray\", signatureBytes, \"response value\", SIGNATURE_LENGTH);\n validateUint8ArrayLen(\"publicKeyArray\", publicKeyBytes, \"parameter\", PUBLIC_KEY_LENGTH / 2);\n if (!sign.detached.verify(hashRegistryEntry(entryToVerify, true), signatureBytes, publicKeyBytes)) {\n // Registry proof fails to verify.\n throw new Error(\"Could not verify signature from retrieved, signed registry entry in registry proof\");\n }\n lastSkylink = skylink;\n }\n if (dataLink && lastSkylink !== dataLink) {\n throw new Error(\"Could not verify registry proof chain\");\n }\n // These variables are guaranteed to be defined because at least one link in\n // the chain had to have been verified by this point.\n return { skylink: lastSkylink, resolverSkylink: resolverSkylink };\n}\n/**\n * Handles error responses returned in getEntry.\n *\n * @param err - The Axios error.\n * @returns - An empty signed registry entry if the status code is 404.\n * @throws - Will throw if the status code is not 404.\n */\nfunction handleGetEntryErrResponse(err) {\n /* istanbul ignore next */\n if (!err.response) {\n throw new Error(`Error response field not found, incomplete Axios error. Full error: ${err}`);\n }\n /* istanbul ignore next */\n if (!err.response.status) {\n throw new Error(`Error response did not contain expected field 'status'. Full error: ${err}`);\n }\n // Check if status was 404 \"not found\" and return null if so.\n if (err.response.status === 404) {\n return { entry: null, signature: null };\n }\n throw err;\n}\n/**\n * Validates the given registry entry.\n *\n * @param name - The name of the value.\n * @param value - The actual value.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n */\nexport function validateRegistryEntry(name, value, valueKind) {\n validateObject(name, value, valueKind);\n validateString(`${name}.dataKey`, value.dataKey, `${valueKind} field`);\n validateUint8Array(`${name}.data`, value.data, `${valueKind} field`);\n validateBigint(`${name}.revision`, value.revision, `${valueKind} field`);\n}\n/**\n * Validates the given value as a hex-encoded, potentially prefixed public key.\n *\n * @param name - The name of the value.\n * @param publicKey - The public key.\n * @param valueKind - The kind of value that is being checked (e.g. \"parameter\", \"response field\", etc.)\n * @throws - Will throw if not a valid hex-encoded public key.\n */\nfunction validatePublicKey(name, publicKey, valueKind) {\n if (!isHexString(trimPrefix(publicKey, ED25519_PREFIX))) {\n throwValidationError(name, publicKey, valueKind, \"a hex-encoded string with a valid prefix\");\n }\n}\n","import { getEntryLink, validateRegistryProof } from \"./registry\";\nimport { convertSkylinkToBase32, formatSkylink } from \"./skylink/format\";\nimport { parseSkylink } from \"./skylink/parse\";\nimport { isSkylinkV1 } from \"./skylink/sia\";\nimport { DEFAULT_BASE_OPTIONS } from \"./utils/options\";\nimport { trimUriPrefix } from \"./utils/string\";\nimport { addSubdomain, addUrlQuery, makeUrl, URI_HANDSHAKE_PREFIX } from \"./utils/url\";\nimport { throwValidationError, validateObject, validateOptionalObject, validateSkylinkString, validateString, } from \"./utils/validation\";\nexport const DEFAULT_DOWNLOAD_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n endpointDownload: \"/\",\n download: false,\n path: undefined,\n range: undefined,\n responseType: undefined,\n subdomain: false,\n};\nconst DEFAULT_GET_METADATA_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n endpointGetMetadata: \"/skynet/metadata\",\n};\nconst DEFAULT_DOWNLOAD_HNS_OPTIONS = {\n ...DEFAULT_DOWNLOAD_OPTIONS,\n endpointDownloadHns: \"hns\",\n hnsSubdomain: \"hns\",\n // Default to subdomain format for HNS URLs.\n subdomain: true,\n};\nconst DEFAULT_RESOLVE_HNS_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n endpointResolveHns: \"hnsres\",\n};\n/**\n * Initiates a download of the content of the skylink within the browser.\n *\n * @param this - SkynetClient\n * @param skylinkUrl - 46-character skylink, or a valid skylink URL. Can be followed by a path. Note that the skylink will not be encoded, so if your path might contain special characters, consider using `customOptions.path`.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointDownload=\"/\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The full URL that was used.\n * @throws - Will throw if the skylinkUrl does not contain a skylink or if the path option is not a string.\n */\nexport async function downloadFile(skylinkUrl, customOptions) {\n // Validation is done in `getSkylinkUrl`.\n const opts = { ...DEFAULT_DOWNLOAD_OPTIONS, ...this.customOptions, ...customOptions, download: true };\n const url = await this.getSkylinkUrl(skylinkUrl, opts);\n // Download the url.\n window.location.assign(url);\n return url;\n}\n/**\n * Initiates a download of the content of the skylink at the Handshake domain.\n *\n * @param this - SkynetClient\n * @param domain - Handshake domain.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointDownloadHns=\"/hns\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The full URL that was used.\n * @throws - Will throw if the input domain is not a string.\n */\nexport async function downloadFileHns(domain, customOptions) {\n // Validation is done in `getHnsUrl`.\n const opts = { ...DEFAULT_DOWNLOAD_HNS_OPTIONS, ...this.customOptions, ...customOptions, download: true };\n const url = await this.getHnsUrl(domain, opts);\n // Download the url.\n window.location.assign(url);\n return url;\n}\n/**\n * Constructs the full URL for the given skylink.\n *\n * @param this - SkynetClient\n * @param skylinkUrl - Skylink string. See `downloadFile`.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointDownload=\"/\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The full URL for the skylink.\n * @throws - Will throw if the skylinkUrl does not contain a skylink or if the path option is not a string.\n */\nexport async function getSkylinkUrl(skylinkUrl, customOptions) {\n // Validation is done in `getSkylinkUrlForPortal`.\n const opts = { ...DEFAULT_DOWNLOAD_OPTIONS, ...this.customOptions, ...customOptions };\n const portalUrl = await this.portalUrl();\n return getSkylinkUrlForPortal(portalUrl, skylinkUrl, opts);\n}\n/**\n * Gets the skylink URL without an initialized client.\n *\n * @param portalUrl - The portal URL.\n * @param skylinkUrl - Skylink string. See `downloadFile`.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointDownload=\"/\"] - The relative URL path of the portal endpoint.\n * @returns - The full URL for the skylink.\n * @throws - Will throw if the skylinkUrl does not contain a skylink or if the path option is not a string.\n */\nexport function getSkylinkUrlForPortal(portalUrl, skylinkUrl, customOptions) {\n var _a;\n validateString(\"portalUrl\", portalUrl, \"parameter\");\n validateString(\"skylinkUrl\", skylinkUrl, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_DOWNLOAD_OPTIONS);\n const opts = { ...DEFAULT_DOWNLOAD_OPTIONS, ...customOptions };\n const query = {};\n if (opts.download) {\n // Set the \"attachment\" parameter.\n query.attachment = true;\n }\n // URL-encode the path.\n let path = \"\";\n if (opts.path) {\n if (typeof opts.path !== \"string\") {\n throw new Error(`opts.path has to be a string, ${typeof opts.path} provided`);\n }\n // Encode each element of the path separately and join them.\n //\n // Don't use encodeURI because it does not encode characters such as '?'\n // etc. These are allowed as filenames on Skynet and should be encoded so\n // they are not treated as URL separators.\n path = opts.path\n .split(\"/\")\n .map((element) => encodeURIComponent(element))\n .join(\"/\");\n }\n let url;\n if (opts.subdomain) {\n // The caller wants to use a URL with the skylink as a base32 subdomain.\n //\n // Get the path from the skylink. Use the empty string if not found.\n const skylinkPath = (_a = parseSkylink(skylinkUrl, { onlyPath: true })) !== null && _a !== void 0 ? _a : \"\";\n // Get just the skylink.\n let skylink = parseSkylink(skylinkUrl);\n if (skylink === null) {\n throw new Error(`Could not get skylink out of input '${skylinkUrl}'`);\n }\n // Convert the skylink (without the path) to base32.\n skylink = convertSkylinkToBase32(skylink);\n url = addSubdomain(portalUrl, skylink);\n url = makeUrl(url, skylinkPath, path);\n }\n else {\n // Get the skylink including the path.\n const skylink = parseSkylink(skylinkUrl, { includePath: true });\n if (skylink === null) {\n throw new Error(`Could not get skylink with path out of input '${skylinkUrl}'`);\n }\n // Add additional path if passed in.\n url = makeUrl(portalUrl, opts.endpointDownload, skylink);\n url = makeUrl(url, path);\n }\n return addUrlQuery(url, query);\n}\n/**\n * Constructs the full URL for the given HNS domain.\n *\n * @param this - SkynetClient\n * @param domain - Handshake domain.\n * @param [customOptions={}] - Additional settings that can optionally be set.\n * @param [customOptions.endpointDownloadHns=\"/hns\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The full URL for the HNS domain.\n * @throws - Will throw if the input domain is not a string.\n */\nexport async function getHnsUrl(domain, customOptions) {\n validateString(\"domain\", domain, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_DOWNLOAD_HNS_OPTIONS);\n const opts = { ...DEFAULT_DOWNLOAD_HNS_OPTIONS, ...this.customOptions, ...customOptions };\n const query = {};\n if (opts.download) {\n query.attachment = true;\n }\n domain = trimUriPrefix(domain, URI_HANDSHAKE_PREFIX);\n const portalUrl = await this.portalUrl();\n const url = opts.subdomain\n ? addSubdomain(addSubdomain(portalUrl, opts.hnsSubdomain), domain)\n : makeUrl(portalUrl, opts.endpointDownloadHns, domain);\n return addUrlQuery(url, query);\n}\n/**\n * Constructs the full URL for the resolver for the given HNS domain.\n *\n * @param this - SkynetClient\n * @param domain - Handshake domain.\n * @param [customOptions={}] - Additional settings that can optionally be set.\n * @param [customOptions.endpointResolveHns=\"/hnsres\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The full URL for the resolver for the HNS domain.\n * @throws - Will throw if the input domain is not a string.\n */\nexport async function getHnsresUrl(domain, customOptions) {\n validateString(\"domain\", domain, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_RESOLVE_HNS_OPTIONS);\n const opts = { ...DEFAULT_RESOLVE_HNS_OPTIONS, ...this.customOptions, ...customOptions };\n domain = trimUriPrefix(domain, URI_HANDSHAKE_PREFIX);\n const portalUrl = await this.portalUrl();\n return makeUrl(portalUrl, opts.endpointResolveHns, domain);\n}\n/**\n * Gets only the metadata for the given skylink without the contents.\n *\n * @param this - SkynetClient\n * @param skylinkUrl - Skylink string. See `downloadFile`.\n * @param [customOptions] - Additional settings that can optionally be set. See `downloadFile` for the full list.\n * @param [customOptions.endpointGetMetadata=\"/\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The metadata in JSON format. Empty if no metadata was found.\n * @throws - Will throw if the skylinkUrl does not contain a skylink or if the path option is not a string.\n */\nexport async function getMetadata(skylinkUrl, customOptions) {\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_METADATA_OPTIONS);\n // Rest of validation is done in `getSkylinkUrl`.\n const opts = { ...DEFAULT_GET_METADATA_OPTIONS, ...this.customOptions, ...customOptions };\n // Don't include the path for now since the endpoint doesn't support it.\n const path = parseSkylink(skylinkUrl, { onlyPath: true });\n if (path) {\n throw new Error(\"Skylink string should not contain a path\");\n }\n const getSkylinkUrlOpts = { endpointDownload: opts.endpointGetMetadata };\n const url = await this.getSkylinkUrl(skylinkUrl, getSkylinkUrlOpts);\n const response = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointGetMetadata,\n method: \"GET\",\n url,\n });\n // TODO: Pass subdomain option.\n const inputSkylink = parseSkylink(skylinkUrl);\n validateGetMetadataResponse(response, inputSkylink);\n const metadata = response.data;\n const portalUrl = response.headers[\"skynet-portal-api\"];\n const skylink = formatSkylink(response.headers[\"skynet-skylink\"]);\n return { metadata, portalUrl, skylink };\n}\n/**\n * Gets the contents of the file at the given skylink.\n *\n * @param this - SkynetClient\n * @param skylinkUrl - Skylink string. See `downloadFile`.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointDownload=\"/\"] - The relative URL path of the portal endpoint to contact.\n * @returns - An object containing the data of the file, the content-type, metadata, and the file's skylink.\n * @throws - Will throw if the skylinkUrl does not contain a skylink or if the path option is not a string.\n */\nexport async function getFileContent(skylinkUrl, customOptions) {\n // Validation is done in `getSkylinkUrl`.\n const opts = { ...DEFAULT_DOWNLOAD_OPTIONS, ...this.customOptions, ...customOptions };\n const url = await this.getSkylinkUrl(skylinkUrl, opts);\n const inputSkylink = parseSkylink(skylinkUrl);\n const headers = buildGetFileContentHeaders(opts.range);\n // GET request the data at the skylink.\n const response = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointDownload,\n method: \"get\",\n url,\n headers,\n });\n // `inputSkylink` cannot be null.\n validateGetFileContentResponse(response, inputSkylink);\n const data = response.data;\n const contentType = response.headers[\"content-type\"];\n const portalUrl = response.headers[\"skynet-portal-api\"];\n const skylink = formatSkylink(response.headers[\"skynet-skylink\"]);\n return { data, contentType, portalUrl, skylink };\n}\n/**\n * Gets the contents of the file at the given Handshake domain.\n *\n * @param this - SkynetClient\n * @param domain - Handshake domain.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @param [customOptions.endpointDownloadHns=\"/hns\"] - The relative URL path of the portal endpoint to contact.\n * @returns - An object containing the data of the file, the content-type, metadata, and the file's skylink.\n * @throws - Will throw if the domain does not contain a skylink.\n */\nexport async function getFileContentHns(domain, customOptions) {\n // Validation is done in `getHnsUrl`.\n const opts = { ...DEFAULT_DOWNLOAD_HNS_OPTIONS, ...this.customOptions, ...customOptions };\n const url = await this.getHnsUrl(domain, opts);\n const headers = buildGetFileContentHeaders(opts.range);\n // GET request the data at the HNS domain and resolve the skylink in parallel.\n const [response, { skylink: inputSkylink }] = await Promise.all([\n this.executeRequest({\n ...opts,\n endpointPath: opts.endpointDownload,\n method: \"get\",\n url,\n headers,\n }),\n this.resolveHns(domain),\n ]);\n validateGetFileContentResponse(response, inputSkylink);\n const data = response.data;\n const contentType = response.headers[\"content-type\"];\n const portalUrl = response.headers[\"skynet-portal-api\"];\n const skylink = formatSkylink(response.headers[\"skynet-skylink\"]);\n return { data, contentType, portalUrl, skylink };\n}\n/**\n * Opens the content of the skylink within the browser.\n *\n * @param this - SkynetClient\n * @param skylinkUrl - Skylink string. See `downloadFile`.\n * @param [customOptions] - Additional settings that can optionally be set. See `downloadFile` for the full list.\n * @param [customOptions.endpointDownload=\"/\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The full URL that was used.\n * @throws - Will throw if the skylinkUrl does not contain a skylink or if the path option is not a string.\n */\nexport async function openFile(skylinkUrl, customOptions) {\n // Validation is done in `getSkylinkUrl`.\n const opts = { ...DEFAULT_DOWNLOAD_OPTIONS, ...this.customOptions, ...customOptions };\n const url = await this.getSkylinkUrl(skylinkUrl, opts);\n window.open(url, \"_blank\");\n return url;\n}\n/**\n * Opens the content of the skylink from the given Handshake domain within the browser.\n *\n * @param this - SkynetClient\n * @param domain - Handshake domain.\n * @param [customOptions] - Additional settings that can optionally be set. See `downloadFileHns` for the full list.\n * @param [customOptions.endpointDownloadHns=\"/hns\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The full URL that was used.\n * @throws - Will throw if the input domain is not a string.\n */\nexport async function openFileHns(domain, customOptions) {\n // Validation is done in `getHnsUrl`.\n const opts = { ...DEFAULT_DOWNLOAD_HNS_OPTIONS, ...this.customOptions, ...customOptions };\n const url = await this.getHnsUrl(domain, opts);\n // Open the url in a new tab.\n window.open(url, \"_blank\");\n return url;\n}\n/**\n * Resolves the given HNS domain to its skylink and returns it and the raw data.\n *\n * @param this - SkynetClient\n * @param domain - Handshake resolver domain.\n * @param [customOptions={}] - Additional settings that can optionally be set.\n * @param [customOptions.endpointResolveHns=\"/hnsres\"] - The relative URL path of the portal endpoint to contact.\n * @returns - The raw data and corresponding skylink.\n * @throws - Will throw if the input domain is not a string.\n */\nexport async function resolveHns(domain, customOptions) {\n // Validation is done in `getHnsresUrl`.\n const opts = { ...DEFAULT_RESOLVE_HNS_OPTIONS, ...this.customOptions, ...customOptions };\n const url = await this.getHnsresUrl(domain, opts);\n // Get the txt record from the hnsres domain on the portal.\n const response = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointResolveHns,\n method: \"get\",\n url,\n });\n validateResolveHnsResponse(response);\n if (response.data.skylink) {\n return { data: response.data, skylink: response.data.skylink };\n }\n else {\n // We got a registry entry instead of a skylink, so get the entry link.\n const entryLink = getEntryLink(response.data.registry.publickey, response.data.registry.datakey, {\n hashedDataKeyHex: true,\n });\n return { data: response.data, skylink: entryLink };\n }\n}\n/**\n * Builds the headers for getFileContent.\n *\n * @param range - The optional range header.\n * @returns - The headers.\n */\nfunction buildGetFileContentHeaders(range) {\n const headers = {};\n if (range) {\n headers[\"Range\"] = range;\n }\n return headers;\n}\n/**\n * Validates the response from getFileContent.\n *\n * @param response - The Axios response.\n * @param inputSkylink - The input skylink, required to validate the proof.\n * @throws - Will throw if the response does not contain the expected fields.\n */\nfunction validateGetFileContentResponse(response, inputSkylink) {\n try {\n // Allow data === \"\" to support 0-byte files.\n if (!response.data && response.data !== \"\") {\n throw new Error(\"'response.data' field missing\");\n }\n if (!response.headers) {\n throw new Error(\"'response.headers' field missing\");\n }\n const contentType = response.headers[\"content-type\"];\n if (!contentType) {\n throw new Error(\"'content-type' header missing\");\n }\n validateString(`response.headers[\"content-type\"]`, contentType, \"getFileContent response header\");\n const portalUrl = response.headers[\"skynet-portal-api\"];\n if (!portalUrl) {\n throw new Error(\"'skynet-portal-api' header missing\");\n }\n validateString(`response.headers[\"skynet-portal-api\"]`, portalUrl, \"getFileContent response header\");\n const skylink = response.headers[\"skynet-skylink\"];\n if (!skylink) {\n throw new Error(\"'skynet-skylink' header missing\");\n }\n validateSkylinkString(`response.headers[\"skynet-skylink\"]`, skylink, \"getFileContent response header\");\n const proof = response.headers[\"skynet-proof\"];\n validateRegistryProofResponse(inputSkylink, skylink, proof);\n }\n catch (err) {\n throw new Error(`File content response invalid despite a successful request. Please try again and report this issue to the devs if it persists. ${err}`);\n }\n}\n/**\n * Validates the response from getMetadata.\n *\n * @param response - The Axios response.\n * @param inputSkylink - The input skylink, required to validate the proof.\n * @throws - Will throw if the response does not contain the expected fields.\n */\nfunction validateGetMetadataResponse(response, inputSkylink) {\n try {\n if (!response.data) {\n throw new Error(\"'response.data' field missing\");\n }\n if (!response.headers) {\n throw new Error(\"'response.headers' field missing\");\n }\n const portalUrl = response.headers[\"skynet-portal-api\"];\n if (!portalUrl) {\n throw new Error(\"'skynet-portal-api' header missing\");\n }\n validateString(`response.headers[\"skynet-portal-api\"]`, portalUrl, \"getMetadata response header\");\n const skylink = response.headers[\"skynet-skylink\"];\n if (!skylink) {\n throw new Error(\"'skynet-skylink' header missing\");\n }\n validateSkylinkString(`response.headers[\"skynet-skylink\"]`, skylink, \"getMetadata response header\");\n validateRegistryProofResponse(inputSkylink, skylink, response.headers[\"skynet-proof\"]);\n }\n catch (err) {\n throw new Error(`Metadata response invalid despite a successful request. Please try again and report this issue to the devs if it persists. ${err}`);\n }\n}\n/**\n * Validates the response from resolveHns.\n *\n * @param response - The Axios response.\n * @throws - Will throw if the response contains an unexpected format.\n */\nfunction validateResolveHnsResponse(response) {\n try {\n if (!response.data) {\n throw new Error(\"'response.data' field missing\");\n }\n if (response.data.skylink) {\n // Skylink response.\n validateSkylinkString(\"response.data.skylink\", response.data.skylink, \"resolveHns response field\");\n }\n else if (response.data.registry) {\n // Registry entry response.\n validateObject(\"response.data.registry\", response.data.registry, \"resolveHns response field\");\n validateString(\"response.data.registry.publickey\", response.data.registry.publickey, \"resolveHns response field\");\n validateString(\"response.data.registry.datakey\", response.data.registry.datakey, \"resolveHns response field\");\n }\n else {\n // Invalid response.\n throwValidationError(\"response.data\", response.data, \"response data object\", \"object containing skylink or registry field\");\n }\n }\n catch (err) {\n throw new Error(`Did not get a complete resolve HNS response despite a successful request. Please try again and report this issue to the devs if it persists. ${err}`);\n }\n}\n/**\n * Validates the registry proof response.\n *\n * @param inputSkylink - The input skylink, required to validate the proof.\n * @param dataLink - The returned data link.\n * @param proof - The returned proof.\n * @throws - Will throw if the registry proof header is not present, empty when it shouldn't be, or fails to verify.\n */\nfunction validateRegistryProofResponse(inputSkylink, dataLink, proof) {\n let proofArray = [];\n try {\n // skyd omits the header if the array is empty.\n if (proof) {\n proofArray = JSON.parse(proof);\n if (!proofArray) {\n throw new Error(\"Could not parse 'skynet-proof' header as JSON\");\n }\n }\n }\n catch (err) {\n throw new Error(`Could not parse 'skynet-proof' header as JSON: ${err}`);\n }\n if (isSkylinkV1(inputSkylink)) {\n if (inputSkylink !== dataLink) {\n throw new Error(\"Expected returned skylink to be the same as input data link\");\n }\n // If input skylink is not an entry link, no proof should be present.\n if (proof) {\n throw new Error(\"Expected 'skynet-proof' header to be empty for data link\");\n }\n // Nothing else to do for data links, there is no proof to validate.\n return;\n }\n // Validation for input entry link.\n if (inputSkylink === dataLink) {\n // Input skylink is entry link and returned skylink is the same.\n throw new Error(\"Expected returned skylink to be different from input entry link\");\n }\n validateRegistryProof(proofArray, { resolverSkylink: inputSkylink, skylink: dataLink });\n}\n","import randomBytes from \"randombytes\";\nimport { sanitizePath } from \"skynet-mysky-utils\";\nimport { secretbox } from \"tweetnacl\";\nimport { HASH_LENGTH, sha512 } from \"../crypto\";\nimport { hexToUint8Array, stringToUint8ArrayUtf8, toHexString, uint8ArrayToStringUtf8 } from \"../utils/string\";\nimport { validateBoolean, validateHexString, validateNumber, validateObject, validateString, validateUint8Array, validateUint8ArrayLen, } from \"../utils/validation\";\n/**\n * The current response version for encrypted JSON files. Part of the metadata\n * prepended to encrypted data.\n */\nexport const ENCRYPTED_JSON_RESPONSE_VERSION = 1;\n/**\n * The length of the encryption key.\n */\nexport const ENCRYPTION_KEY_LENGTH = 32;\n/**\n * The length of the hidden field metadata stored along with encrypted files.\n * Note that this is hidden from the user, but not actually encrypted. It is\n * stored after the nonce.\n */\nexport const ENCRYPTION_HIDDEN_FIELD_METADATA_LENGTH = 16;\n/**\n * The length of the random nonce, prepended to the encrypted bytes. It comes\n * before the unencrypted hidden field metadata.\n */\nexport const ENCRYPTION_NONCE_LENGTH = 24;\n/**\n * The length of the overhead introduced by encryption.\n */\nconst ENCRYPTION_OVERHEAD_LENGTH = 16;\n/**\n * The length of the share-able path seed.\n */\nexport const ENCRYPTION_PATH_SEED_LENGTH = 32;\n// Descriptive salt that should not be changed.\nconst SALT_ENCRYPTED_CHILD = \"encrypted filesystem child\";\n// Descriptive salt that should not be changed.\nconst SALT_ENCRYPTED_TWEAK = \"encrypted filesystem tweak\";\n// Descriptive salt that should not be changed.\nconst SALT_ENCRYPTION = \"encryption\";\n/**\n * Decrypts the given bytes as an encrypted JSON file.\n *\n * @param data - The given raw bytes.\n * @param key - The encryption key.\n * @returns - The JSON data and metadata.\n * @throws - Will throw if the bytes could not be decrypted.\n */\nexport function decryptJSONFile(data, key) {\n validateUint8Array(\"data\", data, \"parameter\");\n validateUint8ArrayLen(\"key\", key, \"parameter\", ENCRYPTION_KEY_LENGTH);\n // Validate that the size of the data corresponds to a padded block.\n if (!checkPaddedBlock(data.length)) {\n throw new Error(`Expected parameter 'data' to be padded encrypted data, length was '${data.length}', nearest padded block is '${padFileSize(data.length)}'`);\n }\n // Extract the nonce.\n const nonce = data.slice(0, ENCRYPTION_NONCE_LENGTH);\n data = data.slice(ENCRYPTION_NONCE_LENGTH);\n // Extract the unencrypted hidden field metadata.\n const metadataBytes = data.slice(0, ENCRYPTION_HIDDEN_FIELD_METADATA_LENGTH);\n data = data.slice(ENCRYPTION_HIDDEN_FIELD_METADATA_LENGTH);\n const metadata = decodeEncryptedFileMetadata(metadataBytes);\n if (metadata.version !== ENCRYPTED_JSON_RESPONSE_VERSION) {\n throw new Error(`Received unrecognized JSON response version '${metadata.version}' in metadata, expected '${ENCRYPTED_JSON_RESPONSE_VERSION}'`);\n }\n // Decrypt the non-nonce part of the data.\n let decryptedBytes = secretbox.open(data, nonce, key);\n if (!decryptedBytes) {\n throw new Error(\"Could not decrypt given encrypted JSON file\");\n }\n // Trim the 0-byte padding off the end of the decrypted bytes. This should never remove real data as\n // properly-formatted JSON must end with '}'.\n let paddingIndex = decryptedBytes.length;\n while (paddingIndex > 0 && decryptedBytes[paddingIndex - 1] === 0) {\n paddingIndex--;\n }\n decryptedBytes = decryptedBytes.slice(0, paddingIndex);\n // Parse the final decrypted message as json.\n return JSON.parse(uint8ArrayToStringUtf8(decryptedBytes));\n}\n/**\n * Encrypts the given JSON data and metadata.\n *\n * @param json - The given JSON data.\n * @param metadata - The given metadata.\n * @param key - The encryption key.\n * @returns - The encrypted data.\n */\nexport function encryptJSONFile(json, metadata, key) {\n validateObject(\"json\", json, \"parameter\");\n validateNumber(\"metadata.version\", metadata.version, \"parameter\");\n validateUint8ArrayLen(\"key\", key, \"parameter\", ENCRYPTION_KEY_LENGTH);\n // Stringify the json and convert to bytes.\n let data = stringToUint8ArrayUtf8(JSON.stringify(json));\n // Add padding so that the final size will be a padded block. The overhead will be added by encryption and we add the nonce at the end.\n const totalOverhead = ENCRYPTION_OVERHEAD_LENGTH + ENCRYPTION_NONCE_LENGTH + ENCRYPTION_HIDDEN_FIELD_METADATA_LENGTH;\n const finalSize = padFileSize(data.length + totalOverhead) - totalOverhead;\n data = new Uint8Array([...data, ...new Uint8Array(finalSize - data.length)]);\n // Generate a random nonce.\n const nonce = new Uint8Array(randomBytes(ENCRYPTION_NONCE_LENGTH));\n // Encrypt the data.\n const encryptedBytes = secretbox(data, nonce, key);\n // Prepend the metadata.\n const metadataBytes = encodeEncryptedFileMetadata(metadata);\n const finalBytes = new Uint8Array([...metadataBytes, ...encryptedBytes]);\n // Prepend the nonce to the final data.\n return new Uint8Array([...nonce, ...finalBytes]);\n}\n/**\n * Derives key entropy for the given path seed.\n *\n * @param pathSeed - The given path seed.\n * @returns - The key entropy.\n */\nexport function deriveEncryptedFileKeyEntropy(pathSeed) {\n const bytes = new Uint8Array([...sha512(SALT_ENCRYPTION), ...sha512(pathSeed)]);\n const hashBytes = sha512(bytes);\n // Truncate the hash to the size of an encryption key.\n return hashBytes.slice(0, ENCRYPTION_KEY_LENGTH);\n}\n/**\n * Derives the encrypted file tweak for the given path seed.\n *\n * @param pathSeed - the given path seed.\n * @returns - The encrypted file tweak.\n */\nexport function deriveEncryptedFileTweak(pathSeed) {\n let hashBytes = sha512(new Uint8Array([...sha512(SALT_ENCRYPTED_TWEAK), ...sha512(pathSeed)]));\n // Truncate the hash or it will be rejected in skyd.\n hashBytes = hashBytes.slice(0, HASH_LENGTH);\n return toHexString(hashBytes);\n}\n/**\n * Derives the path seed for the relative path, given the starting path seed and\n * whether it is a directory. The path can be an absolute path if the root seed\n * is given.\n *\n * @param pathSeed - The given starting path seed.\n * @param subPath - The path.\n * @param isDirectory - Whether the path is a directory.\n * @returns - The path seed for the given path.\n * @throws - Will throw if the input sub path is not a valid path.\n */\nexport function deriveEncryptedFileSeed(pathSeed, subPath, isDirectory) {\n validateHexString(\"pathSeed\", pathSeed, \"parameter\");\n validateString(\"subPath\", subPath, \"parameter\");\n validateBoolean(\"isDirectory\", isDirectory, \"parameter\");\n let pathSeedBytes = hexToUint8Array(pathSeed);\n const sanitizedPath = sanitizePath(subPath);\n if (sanitizedPath === null) {\n throw new Error(`Input subPath '${subPath}' not a valid path`);\n }\n const names = sanitizedPath.split(\"/\");\n names.forEach((name, index) => {\n const directory = index === names.length - 1 ? isDirectory : true;\n const derivationPathObj = {\n pathSeed: pathSeedBytes,\n directory,\n name,\n };\n const derivationPath = hashDerivationPathObject(derivationPathObj);\n const bytes = new Uint8Array([...sha512(SALT_ENCRYPTED_CHILD), ...derivationPath]);\n pathSeedBytes = sha512(bytes);\n });\n // Truncate and hex-encode the final output.\n return toHexString(pathSeedBytes.slice(0, ENCRYPTION_PATH_SEED_LENGTH));\n}\n/**\n * Hashes the derivation path object.\n *\n * @param obj - The given object containing the derivation path.\n * @returns - The hash.\n */\nfunction hashDerivationPathObject(obj) {\n const bytes = new Uint8Array([...obj.pathSeed, obj.directory ? 1 : 0, ...stringToUint8ArrayUtf8(obj.name)]);\n return sha512(bytes);\n}\n/**\n * To prevent analysis that can occur by looking at the sizes of files, all\n * encrypted files will be padded to the nearest \"pad block\" (after encryption).\n * A pad block is minimally 4 kib in size, is always a power of 2, and is always\n * at least 5% of the size of the file.\n *\n * For example, a 1 kib encrypted file would be padded to 4 kib, a 5 kib file\n * would be padded to 8 kib, and a 105 kib file would be padded to 112 kib.\n * Below is a short table of valid file sizes:\n *\n * ```\n * 4 KiB 8 KiB 12 KiB 16 KiB 20 KiB\n * 24 KiB 28 KiB 32 KiB 36 KiB 40 KiB\n * 44 KiB 48 KiB 52 KiB 56 KiB 60 KiB\n * 64 KiB 68 KiB 72 KiB 76 KiB 80 KiB\n *\n * 88 KiB 96 KiB 104 KiB 112 KiB 120 KiB\n * 128 KiB 136 KiB 144 KiB 152 KiB 160 KiB\n *\n * 176 KiB 192 Kib 208 KiB 224 KiB 240 KiB\n * 256 KiB 272 KiB 288 KiB 304 KiB 320 KiB\n *\n * 352 KiB ... etc\n * ```\n *\n * Note that the first 20 valid sizes are all a multiple of 4 KiB, the next 10\n * are a multiple of 8 KiB, and each 10 after that the multiple doubles. We use\n * this method of padding files to prevent an adversary from guessing the\n * contents or structure of the file based on its size.\n *\n * @param initialSize - The size of the file.\n * @returns - The final size, padded to a pad block.\n * @throws - Will throw if the size would overflow the JS number type.\n */\nexport function padFileSize(initialSize) {\n const kib = 1 << 10;\n // Only iterate to 53 (the maximum safe power of 2).\n for (let n = 0; n < 53; n++) {\n if (initialSize <= (1 << n) * 80 * kib) {\n const paddingBlock = (1 << n) * 4 * kib;\n let finalSize = initialSize;\n if (finalSize % paddingBlock !== 0) {\n finalSize = initialSize - (initialSize % paddingBlock) + paddingBlock;\n }\n return finalSize;\n }\n }\n // Prevent overflow. Max JS number size is 2^53-1.\n throw new Error(\"Could not pad file size, overflow detected.\");\n}\n/**\n * Checks if the given size corresponds to the correct padded block.\n *\n * @param size - The given file size.\n * @returns - Whether the size corresponds to a padded block.\n * @throws - Will throw if the size would overflow the JS number type.\n */\nexport function checkPaddedBlock(size) {\n const kib = 1 << 10;\n // Only iterate to 53 (the maximum safe power of 2).\n for (let n = 0; n < 53; n++) {\n if (size <= (1 << n) * 80 * kib) {\n const paddingBlock = (1 << n) * 4 * kib;\n return size % paddingBlock === 0;\n }\n }\n // Prevent overflow. Max JS number size is 2^53-1.\n throw new Error(\"Could not check padded file size, overflow detected.\");\n}\n/**\n * Decodes the encoded encrypted file metadata.\n *\n * @param bytes - The encoded metadata.\n * @returns - The decoded metadata.\n * @throws - Will throw if the given bytes are of the wrong length.\n */\nfunction decodeEncryptedFileMetadata(bytes) {\n // Ensure input is correct length.\n validateUint8ArrayLen(\"bytes\", bytes, \"encrypted file metadata bytes\", ENCRYPTION_HIDDEN_FIELD_METADATA_LENGTH);\n const version = bytes[0];\n return {\n version,\n };\n}\n/**\n * Encodes the given encrypted file metadata.\n *\n * @param metadata - The given metadata.\n * @returns - The encoded metadata bytes.\n * @throws - Will throw if the version does not fit in a byte.\n */\nexport function encodeEncryptedFileMetadata(metadata) {\n const bytes = new Uint8Array(ENCRYPTION_HIDDEN_FIELD_METADATA_LENGTH);\n // Encode the version\n if (metadata.version >= 1 << 8 || metadata.version < 0) {\n throw new Error(`Metadata version '${metadata.version}' could not be stored in a uint8`);\n }\n // Don't need to use a DataView or worry about endianness for a uint8.\n bytes[0] = metadata.version;\n return bytes;\n}\n","import { hashAll } from \"../crypto\";\nimport { stringToUint8ArrayUtf8, toHexString } from \"../utils/string\";\nconst DISCOVERABLE_BUCKET_TWEAK_VERSION = 1;\n/**\n * Derives the discoverable file tweak for the given path.\n *\n * @param path - The given path.\n * @returns - The hex-encoded tweak.\n */\nexport function deriveDiscoverableFileTweak(path) {\n const dbt = new DiscoverableBucketTweak(path);\n const bytes = dbt.getHash();\n return toHexString(bytes);\n}\nexport class DiscoverableBucketTweak {\n constructor(path) {\n const paths = splitPath(path);\n const pathHashes = paths.map(hashPathComponent);\n this.version = DISCOVERABLE_BUCKET_TWEAK_VERSION;\n this.path = pathHashes;\n }\n encode() {\n const size = 1 + 32 * this.path.length;\n const buf = new Uint8Array(size);\n buf.set([this.version]);\n let offset = 1;\n for (const pathLevel of this.path) {\n buf.set(pathLevel, offset);\n offset += 32;\n }\n return buf;\n }\n getHash() {\n const encoding = this.encode();\n return hashAll(encoding);\n }\n}\n/**\n * Splits the path by forward slashes.\n *\n * @param path - The path to split.\n * @returns - An array of path components.\n */\nexport function splitPath(path) {\n return path.split(\"/\");\n}\n/**\n * Hashes the path component.\n *\n * @param component - The component extracted from the path.\n * @returns - The hash.\n */\n// TODO: Can we replace with hashString?\nexport function hashPathComponent(component) {\n return hashAll(stringToUint8ArrayUtf8(component));\n}\n","import { sign } from \"tweetnacl\";\nimport { DEFAULT_DOWNLOAD_OPTIONS } from \"./download\";\nimport { DEFAULT_GET_ENTRY_OPTIONS, DEFAULT_SET_ENTRY_OPTIONS, } from \"./registry\";\nimport { BASE64_ENCODED_SKYLINK_SIZE, decodeSkylink, EMPTY_SKYLINK, RAW_SKYLINK_SIZE } from \"./skylink/sia\";\nimport { MAX_REVISION } from \"./utils/number\";\nimport { URI_SKYNET_PREFIX } from \"./utils/url\";\nimport { hexToUint8Array, trimUriPrefix, toHexString, stringToUint8ArrayUtf8, uint8ArrayToStringUtf8, } from \"./utils/string\";\nimport { formatSkylink } from \"./skylink/format\";\nimport { DEFAULT_UPLOAD_OPTIONS } from \"./upload\";\nimport { areEqualUint8Arrays } from \"./utils/array\";\nimport { decodeSkylinkBase64, encodeSkylinkBase64 } from \"./utils/encoding\";\nimport { DEFAULT_BASE_OPTIONS, extractOptions } from \"./utils/options\";\nimport { throwValidationError, validateHexString, validateObject, validateOptionalObject, validateSkylinkString, validateString, validateUint8ArrayLen, } from \"./utils/validation\";\nconst JSON_RESPONSE_VERSION = 2;\n/**\n * The default options for get JSON. Includes the default get entry and download\n * options.\n */\nexport const DEFAULT_GET_JSON_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...DEFAULT_DOWNLOAD_OPTIONS,\n cachedDataLink: undefined,\n};\n/**\n * The default options for set JSON. Includes the default upload, get JSON, and\n * set entry options.\n */\nexport const DEFAULT_SET_JSON_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n ...DEFAULT_UPLOAD_OPTIONS,\n ...DEFAULT_GET_JSON_OPTIONS,\n ...DEFAULT_SET_ENTRY_OPTIONS,\n};\n// ====\n// JSON\n// ====\n/**\n * Gets the JSON object corresponding to the publicKey and dataKey.\n *\n * @param this - SkynetClient\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The returned JSON and corresponding data link.\n * @throws - Will throw if the returned signature does not match the returned entry, or if the skylink in the entry is invalid.\n */\nexport async function getJSON(publicKey, dataKey, customOptions) {\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_JSON_OPTIONS);\n // Rest of validation is done in `getEntry`.\n const opts = {\n ...DEFAULT_GET_JSON_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n // Lookup the registry entry.\n const entry = await getSkyDBRegistryEntry(this, publicKey, dataKey, opts);\n if (entry === null) {\n return { data: null, dataLink: null };\n }\n // Determine the data link.\n // TODO: Can this still be an entry link which hasn't yet resolved to a data link?\n const { rawDataLink, dataLink } = parseDataLink(entry.data, true);\n // If a cached data link is provided and the data link hasn't changed, return.\n if (checkCachedDataLink(rawDataLink, opts.cachedDataLink)) {\n return { data: null, dataLink };\n }\n // Download the data in the returned data link.\n const downloadOpts = extractOptions(opts, DEFAULT_DOWNLOAD_OPTIONS);\n const { data } = await this.getFileContent(dataLink, downloadOpts);\n if (typeof data !== \"object\" || data === null) {\n throw new Error(`File data for the entry at data key '${dataKey}' is not JSON.`);\n }\n if (!(data[\"_data\"] && data[\"_v\"])) {\n // Legacy data prior to skynet-js v4, return as-is.\n return { data, dataLink };\n }\n const actualData = data[\"_data\"];\n if (typeof actualData !== \"object\" || data === null) {\n throw new Error(`File data '_data' for the entry at data key '${dataKey}' is not JSON.`);\n }\n return { data: actualData, dataLink };\n}\n/**\n * Sets a JSON object at the registry entry corresponding to the publicKey and dataKey.\n *\n * @param this - SkynetClient\n * @param privateKey - The user private key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param json - The JSON data to set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The returned JSON and corresponding data link.\n * @throws - Will throw if the input keys are not valid strings.\n */\nexport async function setJSON(privateKey, dataKey, json, customOptions) {\n validateHexString(\"privateKey\", privateKey, \"parameter\");\n validateString(\"dataKey\", dataKey, \"parameter\");\n validateObject(\"json\", json, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const { publicKey: publicKeyArray } = sign.keyPair.fromSecretKey(hexToUint8Array(privateKey));\n const [entry, dataLink] = await getOrCreateRegistryEntry(this, toHexString(publicKeyArray), dataKey, json, opts);\n // Update the registry.\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.registry.setEntry(privateKey, entry, setEntryOpts);\n return { data: json, dataLink: formatSkylink(dataLink) };\n}\n/**\n * Deletes a JSON object at the registry entry corresponding to the publicKey and dataKey.\n *\n * @param this - SkynetClient\n * @param privateKey - The user private key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @throws - Will throw if the input keys are not valid strings.\n */\nexport async function deleteJSON(privateKey, dataKey, customOptions) {\n validateHexString(\"privateKey\", privateKey, \"parameter\");\n validateString(\"dataKey\", dataKey, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const { publicKey: publicKeyArray } = sign.keyPair.fromSecretKey(hexToUint8Array(privateKey));\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const entry = await getNextRegistryEntry(this, toHexString(publicKeyArray), dataKey, new Uint8Array(RAW_SKYLINK_SIZE), getEntryOpts);\n // Update the registry.\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.registry.setEntry(privateKey, entry, setEntryOpts);\n}\n/**\n * Sets the datalink for the entry at the given private key and data key.\n *\n * @param this - SkynetClient\n * @param privateKey - The user private key.\n * @param dataKey - The data key.\n * @param dataLink - The data link to set at the entry.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @throws - Will throw if the input keys are not valid strings.\n */\nexport async function setDataLink(privateKey, dataKey, dataLink, customOptions) {\n validateHexString(\"privateKey\", privateKey, \"parameter\");\n validateString(\"dataKey\", dataKey, \"parameter\");\n validateString(\"dataLink\", dataLink, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const { publicKey: publicKeyArray } = sign.keyPair.fromSecretKey(hexToUint8Array(privateKey));\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const entry = await getNextRegistryEntry(this, toHexString(publicKeyArray), dataKey, decodeSkylink(dataLink), getEntryOpts);\n // Update the registry.\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.registry.setEntry(privateKey, entry, setEntryOpts);\n}\n// =========\n// Raw Bytes\n// =========\n/**\n * Gets the raw bytes corresponding to the publicKey and dataKey. The caller is responsible for setting any metadata in the bytes.\n *\n * @param this - SkynetClient\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The returned bytes.\n * @throws - Will throw if the returned signature does not match the returned entry, or if the skylink in the entry is invalid.\n */\nexport async function getRawBytes(publicKey, dataKey, \n// TODO: Take a new options type?\ncustomOptions) {\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_JSON_OPTIONS);\n // Rest of validation is done in `getEntry`.\n const opts = {\n ...DEFAULT_GET_JSON_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n // Lookup the registry entry.\n const entry = await getSkyDBRegistryEntry(this, publicKey, dataKey, opts);\n if (entry === null) {\n return { data: null, dataLink: null };\n }\n // Determine the data link.\n // TODO: Can this still be an entry link which hasn't yet resolved to a data link?\n const { rawDataLink, dataLink } = parseDataLink(entry.data, false);\n // If a cached data link is provided and the data link hasn't changed, return.\n if (checkCachedDataLink(rawDataLink, opts.cachedDataLink)) {\n return { data: null, dataLink };\n }\n // Download the data in the returned data link.\n const downloadOpts = {\n ...extractOptions(opts, DEFAULT_DOWNLOAD_OPTIONS),\n responseType: \"arraybuffer\",\n };\n const { data: buffer } = await this.getFileContent(dataLink, downloadOpts);\n return { data: new Uint8Array(buffer), dataLink };\n}\n/* istanbul ignore next */\n/**\n * Gets the registry entry for the given raw bytes or creates the entry if it doesn't exist.\n *\n * @param client - The Skynet client.\n * @param publicKey - The user public key.\n * @param dataKey - The dat akey.\n * @param data - The raw byte data to set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The registry entry and corresponding data link.\n * @throws - Will throw if the revision is already the maximum value.\n */\n// TODO: Rename & refactor after the SkyDB caching refactor.\nexport async function getOrCreateRawBytesRegistryEntry(client, publicKey, dataKey, data, customOptions) {\n // Not publicly available, don't validate input.\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...client.customOptions,\n ...customOptions,\n };\n // Create the data to upload to acquire its skylink.\n let dataKeyHex = dataKey;\n if (!opts.hashedDataKeyHex) {\n dataKeyHex = toHexString(stringToUint8ArrayUtf8(dataKey));\n }\n const file = new File([data], `dk:${dataKeyHex}`, { type: \"application/octet-stream\" });\n // Start file upload, do not block.\n const uploadOpts = extractOptions(opts, DEFAULT_UPLOAD_OPTIONS);\n const skyfilePromise = client.uploadFile(file, uploadOpts);\n // Fetch the current value to find out the revision.\n //\n // Start getEntry, do not block.\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const entryPromise = client.registry.getEntry(publicKey, dataKey, getEntryOpts);\n // Block until both getEntry and uploadFile are finished.\n const [signedEntry, skyfile] = await Promise.all([\n entryPromise,\n skyfilePromise,\n ]);\n const revision = getNextRevisionFromEntry(signedEntry.entry);\n // Build the registry entry.\n const dataLink = trimUriPrefix(skyfile.skylink, URI_SKYNET_PREFIX);\n const rawDataLink = decodeSkylinkBase64(dataLink);\n validateUint8ArrayLen(\"rawDataLink\", rawDataLink, \"skylink byte array\", RAW_SKYLINK_SIZE);\n const entry = {\n dataKey,\n data: rawDataLink,\n revision,\n };\n return entry;\n}\n// =======\n// Helpers\n// =======\n/**\n * Gets the next entry for the given public key and data key, setting the data to be the given data and the revision number accordingly.\n *\n * @param client - The Skynet client.\n * @param publicKey - The user public key.\n * @param dataKey - The dat akey.\n * @param data - The data to set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The registry entry and corresponding data link.\n * @throws - Will throw if the revision is already the maximum value.\n */\nexport async function getNextRegistryEntry(client, publicKey, dataKey, data, customOptions) {\n // Not publicly available, don't validate input.\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...client.customOptions,\n ...customOptions,\n };\n // Get the latest entry.\n // TODO: Can remove this once we start caching the latest revision.\n const signedEntry = await client.registry.getEntry(publicKey, dataKey, opts);\n const revision = getNextRevisionFromEntry(signedEntry.entry);\n // Build the registry entry.\n const entry = {\n dataKey,\n data,\n revision,\n };\n return entry;\n}\n/**\n * Gets the registry entry and data link or creates the entry if it doesn't exist.\n *\n * @param client - The Skynet client.\n * @param publicKey - The user public key.\n * @param dataKey - The dat akey.\n * @param json - The JSON to set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The registry entry and corresponding data link.\n * @throws - Will throw if the revision is already the maximum value.\n */\nexport async function getOrCreateRegistryEntry(client, publicKey, dataKey, json, customOptions) {\n // Not publicly available, don't validate input.\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...client.customOptions,\n ...customOptions,\n };\n // Set the hidden _data and _v fields.\n const fullData = { _data: json, _v: JSON_RESPONSE_VERSION };\n // Create the data to upload to acquire its skylink.\n let dataKeyHex = dataKey;\n if (!opts.hashedDataKeyHex) {\n dataKeyHex = toHexString(stringToUint8ArrayUtf8(dataKey));\n }\n const file = new File([JSON.stringify(fullData)], `dk:${dataKeyHex}`, { type: \"application/json\" });\n // Start file upload, do not block.\n const uploadOpts = extractOptions(opts, DEFAULT_UPLOAD_OPTIONS);\n const skyfilePromise = client.uploadFile(file, uploadOpts);\n // Fetch the current value to find out the revision.\n //\n // Start getEntry, do not block.\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const entryPromise = client.registry.getEntry(publicKey, dataKey, getEntryOpts);\n // Block until both getEntry and uploadFile are finished.\n const [signedEntry, skyfile] = await Promise.all([\n entryPromise,\n skyfilePromise,\n ]);\n const revision = getNextRevisionFromEntry(signedEntry.entry);\n // Build the registry entry.\n const dataLink = trimUriPrefix(skyfile.skylink, URI_SKYNET_PREFIX);\n const data = decodeSkylinkBase64(dataLink);\n validateUint8ArrayLen(\"data\", data, \"skylink byte array\", RAW_SKYLINK_SIZE);\n const entry = {\n dataKey,\n data,\n revision,\n };\n return [entry, formatSkylink(dataLink)];\n}\n/**\n * Gets the next revision from a returned entry (or 0 if the entry was not found).\n *\n * @param entry - The returned registry entry.\n * @returns - The revision.\n * @throws - Will throw if the next revision would be beyond the maximum allowed value.\n */\nexport function getNextRevisionFromEntry(entry) {\n let revision;\n if (entry === null) {\n revision = BigInt(0);\n }\n else {\n revision = entry.revision + BigInt(1);\n }\n // Throw if the revision is already the maximum value.\n if (revision > MAX_REVISION) {\n throw new Error(\"Current entry already has maximum allowed revision, could not update the entry\");\n }\n return revision;\n}\n/**\n * Checks whether the raw data link matches the cached data link, if provided.\n *\n * @param rawDataLink - The raw, unformatted data link.\n * @param cachedDataLink - The cached data link, if provided.\n * @returns - Whether the cached data link is a match.\n * @throws - Will throw if the given cached data link is not a valid skylink.\n */\nexport function checkCachedDataLink(rawDataLink, cachedDataLink) {\n if (cachedDataLink) {\n cachedDataLink = validateSkylinkString(\"cachedDataLink\", cachedDataLink, \"optional parameter\");\n return rawDataLink === cachedDataLink;\n }\n return false;\n}\n/**\n * Gets the registry entry, returning null if the entry contains an empty skylink (the deletion sentinel).\n *\n * @param client - The Skynet Client\n * @param publicKey - The user public key.\n * @param dataKey - The key of the data to fetch for the given user.\n * @param opts - Additional settings.\n * @returns - The registry entry, or null if not found or deleted.\n */\nasync function getSkyDBRegistryEntry(client, publicKey, dataKey, opts) {\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const { entry } = await client.registry.getEntry(publicKey, dataKey, getEntryOpts);\n if (entry === null || areEqualUint8Arrays(entry.data, EMPTY_SKYLINK)) {\n return null;\n }\n return entry;\n}\n/**\n * Parses a data link out of the given registry entry data.\n *\n * @param data - The raw registry entry data.\n * @param legacy - Whether to check for possible legacy skylink data, encoded as base64.\n * @returns - The raw, unformatted data link and the formatted data link.\n * @throws - Will throw if the data is not of the expected length for a skylink.\n */\nfunction parseDataLink(data, legacy) {\n let rawDataLink = \"\";\n if (legacy && data.length === BASE64_ENCODED_SKYLINK_SIZE) {\n // Legacy data, convert to string for backwards compatibility.\n rawDataLink = uint8ArrayToStringUtf8(data);\n }\n else if (data.length === RAW_SKYLINK_SIZE) {\n // Convert the bytes to a base64 skylink.\n rawDataLink = encodeSkylinkBase64(data);\n }\n else {\n throwValidationError(\"entry.data\", data, \"returned entry data\", `length ${RAW_SKYLINK_SIZE} bytes`);\n }\n return { rawDataLink, dataLink: formatSkylink(rawDataLink) };\n}\n","/**\n * Returns true if the two uint8 arrays are equal. From\n * https://stackoverflow.com/a/60818105/6085242\n *\n * @param array1 - The first uint8 array.\n * @param array2 - The second uint8 array.\n * @returns - Whether the arrays are equal.\n */\nexport function areEqualUint8Arrays(array1, array2) {\n if (array1.length != array2.length) {\n return false;\n }\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] != array2[i]) {\n return false;\n }\n }\n return true;\n}\n","import { decryptJSONFile, deriveEncryptedFileKeyEntropy, deriveEncryptedFileTweak, } from \"./mysky/encrypted_files\";\nimport { deriveDiscoverableFileTweak } from \"./mysky/tweak\";\nimport { DEFAULT_GET_ENTRY_OPTIONS, getEntryLink as registryGetEntryLink } from \"./registry\";\nimport { DEFAULT_GET_JSON_OPTIONS } from \"./skydb\";\nimport { validateOptionalObject, validateString, validateStringLen } from \"./utils/validation\";\n// ====\n// JSON\n// ====\n/**\n * Gets Discoverable JSON set with MySky at the given data path for the given\n * public user ID.\n *\n * @param this - SkynetClient\n * @param userID - The MySky public user ID.\n * @param path - The data path.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An object containing the json data as well as the skylink for the data.\n */\nexport async function getJSON(userID, path, customOptions) {\n validateString(\"userID\", userID, \"parameter\");\n validateString(\"path\", path, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_GET_JSON_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n return await this.db.getJSON(userID, dataKey, opts);\n}\n// =====\n// Entry\n// =====\n/**\n * Gets the entry link for the entry set with MySky at the given data path, for\n * the given public user ID. This is a v2 skylink. This link stays the same even\n * if the content at the entry changes.\n *\n * @param this - SkynetClient\n * @param userID - The MySky public user ID.\n * @param path - The data path.\n * @returns - The entry link.\n */\nexport async function getEntryLink(userID, path) {\n validateString(\"userID\", userID, \"parameter\");\n validateString(\"path\", path, \"parameter\");\n const dataKey = deriveDiscoverableFileTweak(path);\n // Do not hash the tweak anymore.\n const opts = { ...DEFAULT_GET_ENTRY_OPTIONS, hashedDataKeyHex: true };\n return registryGetEntryLink(userID, dataKey, opts);\n}\n/**\n * Gets the entry data for the entry set with MySky at the given data path, for\n * the given public user ID.\n *\n * @param this - SkynetClient\n * @param userID - The MySky public user ID.\n * @param path - The data path.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The entry data.\n */\nexport async function getEntryData(userID, path, customOptions) {\n validateString(\"userID\", userID, \"parameter\");\n validateString(\"path\", path, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_ENTRY_OPTIONS);\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n };\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n const { entry } = await this.registry.getEntry(userID, dataKey, opts);\n if (!entry) {\n return { data: null };\n }\n return { data: entry.data };\n}\n// ===============\n// Encrypted Files\n// ===============\n/**\n * Gets Encrypted JSON set with MySky at the given data path for the given\n * public user ID.\n *\n * @param this - SkynetClient\n * @param userID - The MySky public user ID.\n * @param pathSeed - The share-able secret path seed.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An object containing the decrypted json data.\n */\nexport async function getJSONEncrypted(userID, pathSeed, \n// TODO: Take a new options type?\ncustomOptions) {\n validateString(\"userID\", userID, \"parameter\");\n validateStringLen(\"pathSeed\", pathSeed, \"parameter\", 64);\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_GET_JSON_OPTIONS,\n ...this.customOptions,\n ...customOptions,\n hashedDataKeyHex: true, // Do not hash the tweak anymore.\n };\n // Fetch the raw encrypted JSON data.\n const dataKey = deriveEncryptedFileTweak(pathSeed);\n const { data } = await this.db.getRawBytes(userID, dataKey, opts);\n if (data === null) {\n return { data: null };\n }\n const key = deriveEncryptedFileKeyEntropy(pathSeed);\n const json = decryptJSONFile(data, key);\n return { data: json };\n}\n","import { formatSkylink } from \"./skylink/format\";\nimport { parseSkylink } from \"./skylink/parse\";\nimport { DEFAULT_BASE_OPTIONS } from \"./utils/options\";\nimport { validateSkylinkString, validateString } from \"./utils/validation\";\nexport const DEFAULT_PIN_OPTIONS = {\n ...DEFAULT_BASE_OPTIONS,\n endpointPin: \"/skynet/pin\",\n};\n/**\n * Re-pins the given skylink.\n *\n * @param this - SkynetClient\n * @param skylinkUrl - 46-character skylink, or a valid skylink URL.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The returned JSON and revision number.\n * @throws - Will throw if the returned signature does not match the returned entry, or if the skylink in the entry is invalid.\n */\nexport async function pinSkylink(skylinkUrl, customOptions) {\n const skylink = validateSkylinkString(\"skylinkUrl\", skylinkUrl, \"parameter\");\n const opts = { ...DEFAULT_PIN_OPTIONS, ...this.customOptions, ...customOptions };\n // Don't include the path since the endpoint doesn't support it.\n const path = parseSkylink(skylinkUrl, { onlyPath: true });\n if (path) {\n throw new Error(\"Skylink string should not contain a path\");\n }\n const response = await this.executeRequest({\n ...opts,\n endpointPath: opts.endpointPin,\n method: \"post\",\n extraPath: skylink,\n });\n // Sanity check.\n validatePinResponse(response);\n // Get the skylink.\n let returnedSkylink = response.headers[\"skynet-skylink\"];\n // Format the skylink.\n returnedSkylink = formatSkylink(returnedSkylink);\n return { skylink: returnedSkylink };\n}\n/**\n * Validates the pin response.\n *\n * @param response - The pin response.\n * @throws - Will throw if not a valid pin response.\n */\nfunction validatePinResponse(response) {\n try {\n if (!response.headers) {\n throw new Error(\"response.headers field missing\");\n }\n validateString('response.headers[\"skynet-skylink\"]', response.headers[\"skynet-skylink\"], \"pin response field\");\n }\n catch (err) {\n throw new Error(`Did not get a complete pin response despite a successful request. Please try again and report this issue to the devs if it persists. ${err}`);\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar MARKER = '@post-me';\n\nfunction createUniqueIdFn() {\n var __id = 0;\n return function () {\n var id = __id;\n __id += 1;\n return id;\n };\n}\n/**\n * A concrete implementation of the {@link Emitter} interface\n *\n * @public\n */\n\n\nvar ConcreteEmitter = /*#__PURE__*/function () {\n function ConcreteEmitter() {\n _classCallCheck(this, ConcreteEmitter);\n\n this._listeners = {};\n }\n /** {@inheritDoc Emitter.addEventListener} */\n\n\n _createClass(ConcreteEmitter, [{\n key: \"addEventListener\",\n value: function addEventListener(eventName, listener) {\n var listeners = this._listeners[eventName];\n\n if (!listeners) {\n listeners = new Set();\n this._listeners[eventName] = listeners;\n }\n\n listeners.add(listener);\n }\n /** {@inheritDoc Emitter.removeEventListener} */\n\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(eventName, listener) {\n var listeners = this._listeners[eventName];\n\n if (!listeners) {\n return;\n }\n\n listeners[\"delete\"](listener);\n }\n /** {@inheritDoc Emitter.once} */\n\n }, {\n key: \"once\",\n value: function once(eventName) {\n var _this = this;\n\n return new Promise(function (resolve) {\n var listener = function listener(data) {\n _this.removeEventListener(eventName, listener);\n\n resolve(data);\n };\n\n _this.addEventListener(eventName, listener);\n });\n }\n /** @internal */\n\n }, {\n key: \"emit\",\n value: function emit(eventName, data) {\n var listeners = this._listeners[eventName];\n\n if (!listeners) {\n return;\n }\n\n listeners.forEach(function (listener) {\n listener(data);\n });\n }\n /** @internal */\n\n }, {\n key: \"removeAllListeners\",\n value: function removeAllListeners() {\n Object.values(this._listeners).forEach(function (listeners) {\n if (listeners) {\n listeners.clear();\n }\n });\n }\n }]);\n\n return ConcreteEmitter;\n}();\n\nvar MessageType;\n\n(function (MessageType) {\n MessageType[\"HandshakeRequest\"] = \"handshake-request\";\n MessageType[\"HandshakeResponse\"] = \"handshake-response\";\n MessageType[\"Call\"] = \"call\";\n MessageType[\"Response\"] = \"response\";\n MessageType[\"Error\"] = \"error\";\n MessageType[\"Event\"] = \"event\";\n MessageType[\"Callback\"] = \"callback\";\n})(MessageType || (MessageType = {})); // Message Creators\n\n\nfunction createHandshakeRequestMessage(sessionId) {\n return {\n type: MARKER,\n action: MessageType.HandshakeRequest,\n sessionId: sessionId\n };\n}\n\nfunction createHandshakeResponseMessage(sessionId) {\n return {\n type: MARKER,\n action: MessageType.HandshakeResponse,\n sessionId: sessionId\n };\n}\n\nfunction createCallMessage(sessionId, requestId, methodName, args) {\n return {\n type: MARKER,\n action: MessageType.Call,\n sessionId: sessionId,\n requestId: requestId,\n methodName: methodName,\n args: args\n };\n}\n\nfunction createResponsMessage(sessionId, requestId, result, error) {\n var message = {\n type: MARKER,\n action: MessageType.Response,\n sessionId: sessionId,\n requestId: requestId\n };\n\n if (result !== undefined) {\n message.result = result;\n }\n\n if (error !== undefined) {\n message.error = error;\n }\n\n return message;\n}\n\nfunction createCallbackMessage(sessionId, requestId, callbackId, args) {\n return {\n type: MARKER,\n action: MessageType.Callback,\n sessionId: sessionId,\n requestId: requestId,\n callbackId: callbackId,\n args: args\n };\n}\n\nfunction createEventMessage(sessionId, eventName, payload) {\n return {\n type: MARKER,\n action: MessageType.Event,\n sessionId: sessionId,\n eventName: eventName,\n payload: payload\n };\n} // Type Guards\n\n\nfunction isMessage(m) {\n return m && m.type === MARKER;\n}\n\nfunction isHandshakeRequestMessage(m) {\n return isMessage(m) && m.action === MessageType.HandshakeRequest;\n}\n\nfunction isHandshakeResponseMessage(m) {\n return isMessage(m) && m.action === MessageType.HandshakeResponse;\n}\n\nfunction isCallMessage(m) {\n return isMessage(m) && m.action === MessageType.Call;\n}\n\nfunction isResponseMessage(m) {\n return isMessage(m) && m.action === MessageType.Response;\n}\n\nfunction isCallbackMessage(m) {\n return isMessage(m) && m.action === MessageType.Callback;\n}\n\nfunction isEventMessage(m) {\n return isMessage(m) && m.action === MessageType.Event;\n}\n\nfunction makeCallbackEvent(requestId) {\n return \"callback_\".concat(requestId);\n}\n\nfunction makeResponseEvent(requestId) {\n return \"response_\".concat(requestId);\n}\n\nvar Dispatcher = /*#__PURE__*/function (_ConcreteEmitter) {\n _inherits(Dispatcher, _ConcreteEmitter);\n\n var _super = _createSuper(Dispatcher);\n\n function Dispatcher(messenger, sessionId) {\n var _this2;\n\n _classCallCheck(this, Dispatcher);\n\n _this2 = _super.call(this);\n _this2.uniqueId = createUniqueIdFn();\n _this2.messenger = messenger;\n _this2.sessionId = sessionId;\n _this2.removeMessengerListener = _this2.messenger.addMessageListener(_this2.messengerListener.bind(_assertThisInitialized(_this2)));\n return _this2;\n }\n\n _createClass(Dispatcher, [{\n key: \"messengerListener\",\n value: function messengerListener(event) {\n var data = event.data;\n\n if (!isMessage(data)) {\n return;\n }\n\n if (this.sessionId !== data.sessionId) {\n return;\n }\n\n if (isCallMessage(data)) {\n this.emit(MessageType.Call, data);\n } else if (isResponseMessage(data)) {\n this.emit(makeResponseEvent(data.requestId), data);\n } else if (isEventMessage(data)) {\n this.emit(MessageType.Event, data);\n } else if (isCallbackMessage(data)) {\n this.emit(makeCallbackEvent(data.requestId), data);\n }\n }\n }, {\n key: \"callOnRemote\",\n value: function callOnRemote(methodName, args, transfer) {\n var requestId = this.uniqueId();\n var callbackEvent = makeCallbackEvent(requestId);\n var responseEvent = makeResponseEvent(requestId);\n var message = createCallMessage(this.sessionId, requestId, methodName, args);\n this.messenger.postMessage(message, transfer);\n return {\n callbackEvent: callbackEvent,\n responseEvent: responseEvent\n };\n }\n }, {\n key: \"respondToRemote\",\n value: function respondToRemote(requestId, value, error, transfer) {\n if (error instanceof Error) {\n error = {\n name: error.name,\n message: error.message\n };\n }\n\n var message = createResponsMessage(this.sessionId, requestId, value, error);\n this.messenger.postMessage(message, transfer);\n }\n }, {\n key: \"callbackToRemote\",\n value: function callbackToRemote(requestId, callbackId, args) {\n var message = createCallbackMessage(this.sessionId, requestId, callbackId, args);\n this.messenger.postMessage(message);\n }\n }, {\n key: \"emitToRemote\",\n value: function emitToRemote(eventName, payload, transfer) {\n var message = createEventMessage(this.sessionId, eventName, payload);\n this.messenger.postMessage(message, transfer);\n }\n }, {\n key: \"close\",\n value: function close() {\n this.removeMessengerListener();\n this.removeAllListeners();\n }\n }]);\n\n return Dispatcher;\n}(ConcreteEmitter);\n\nvar ParentHandshakeDispatcher = /*#__PURE__*/function (_ConcreteEmitter2) {\n _inherits(ParentHandshakeDispatcher, _ConcreteEmitter2);\n\n var _super2 = _createSuper(ParentHandshakeDispatcher);\n\n function ParentHandshakeDispatcher(messenger, sessionId) {\n var _this3;\n\n _classCallCheck(this, ParentHandshakeDispatcher);\n\n _this3 = _super2.call(this);\n _this3.messenger = messenger;\n _this3.sessionId = sessionId;\n _this3.removeMessengerListener = _this3.messenger.addMessageListener(_this3.messengerListener.bind(_assertThisInitialized(_this3)));\n return _this3;\n }\n\n _createClass(ParentHandshakeDispatcher, [{\n key: \"messengerListener\",\n value: function messengerListener(event) {\n var data = event.data;\n\n if (!isMessage(data)) {\n return;\n }\n\n if (this.sessionId !== data.sessionId) {\n return;\n }\n\n if (isHandshakeResponseMessage(data)) {\n this.emit(data.sessionId, data);\n }\n }\n }, {\n key: \"initiateHandshake\",\n value: function initiateHandshake() {\n var message = createHandshakeRequestMessage(this.sessionId);\n this.messenger.postMessage(message);\n return this.sessionId;\n }\n }, {\n key: \"close\",\n value: function close() {\n this.removeMessengerListener();\n this.removeAllListeners();\n }\n }]);\n\n return ParentHandshakeDispatcher;\n}(ConcreteEmitter);\n\nvar ChildHandshakeDispatcher = /*#__PURE__*/function (_ConcreteEmitter3) {\n _inherits(ChildHandshakeDispatcher, _ConcreteEmitter3);\n\n var _super3 = _createSuper(ChildHandshakeDispatcher);\n\n function ChildHandshakeDispatcher(messenger) {\n var _this4;\n\n _classCallCheck(this, ChildHandshakeDispatcher);\n\n _this4 = _super3.call(this);\n _this4.messenger = messenger;\n _this4.removeMessengerListener = _this4.messenger.addMessageListener(_this4.messengerListener.bind(_assertThisInitialized(_this4)));\n return _this4;\n }\n\n _createClass(ChildHandshakeDispatcher, [{\n key: \"messengerListener\",\n value: function messengerListener(event) {\n var data = event.data;\n\n if (isHandshakeRequestMessage(data)) {\n this.emit(MessageType.HandshakeRequest, data);\n }\n }\n }, {\n key: \"acceptHandshake\",\n value: function acceptHandshake(sessionId) {\n var message = createHandshakeResponseMessage(sessionId);\n this.messenger.postMessage(message);\n }\n }, {\n key: \"close\",\n value: function close() {\n this.removeMessengerListener();\n this.removeAllListeners();\n }\n }]);\n\n return ChildHandshakeDispatcher;\n}(ConcreteEmitter);\n\nvar ProxyType;\n\n(function (ProxyType) {\n ProxyType[\"Callback\"] = \"callback\";\n})(ProxyType || (ProxyType = {}));\n\nfunction createCallbackProxy(callbackId) {\n return {\n type: MARKER,\n proxy: ProxyType.Callback,\n callbackId: callbackId\n };\n}\n\nfunction isCallbackProxy(p) {\n return p && p.type === MARKER && p.proxy === ProxyType.Callback;\n}\n\nvar ConcreteRemoteHandle = /*#__PURE__*/function (_ConcreteEmitter4) {\n _inherits(ConcreteRemoteHandle, _ConcreteEmitter4);\n\n var _super4 = _createSuper(ConcreteRemoteHandle);\n\n function ConcreteRemoteHandle(dispatcher) {\n var _this5;\n\n _classCallCheck(this, ConcreteRemoteHandle);\n\n _this5 = _super4.call(this);\n _this5._dispatcher = dispatcher;\n _this5._callTransfer = {};\n\n _this5._dispatcher.addEventListener(MessageType.Event, _this5._handleEvent.bind(_assertThisInitialized(_this5)));\n\n return _this5;\n }\n\n _createClass(ConcreteRemoteHandle, [{\n key: \"close\",\n value: function close() {\n this.removeAllListeners();\n }\n }, {\n key: \"setCallTransfer\",\n value: function setCallTransfer(methodName, transfer) {\n this._callTransfer[methodName] = transfer;\n }\n }, {\n key: \"call\",\n value: function call(methodName) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return this.customCall(methodName, args);\n }\n }, {\n key: \"customCall\",\n value: function customCall(methodName, args) {\n var _this6 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return new Promise(function (resolve, reject) {\n var sanitizedArgs = [];\n var callbacks = [];\n var callbackId = 0;\n args.forEach(function (arg) {\n if (typeof arg === 'function') {\n callbacks.push(arg);\n sanitizedArgs.push(createCallbackProxy(callbackId));\n callbackId += 1;\n } else {\n sanitizedArgs.push(arg);\n }\n });\n var hasCallbacks = callbacks.length > 0;\n var callbackListener = undefined;\n\n if (hasCallbacks) {\n callbackListener = function callbackListener(data) {\n var callbackId = data.callbackId,\n args = data.args;\n callbacks[callbackId].apply(callbacks, _toConsumableArray(args));\n };\n }\n\n var transfer = options.transfer;\n\n if (transfer === undefined && _this6._callTransfer[methodName]) {\n var _this6$_callTransfer;\n\n transfer = (_this6$_callTransfer = _this6._callTransfer)[methodName].apply(_this6$_callTransfer, sanitizedArgs);\n }\n\n var _this6$_dispatcher$ca = _this6._dispatcher.callOnRemote(methodName, sanitizedArgs, transfer),\n callbackEvent = _this6$_dispatcher$ca.callbackEvent,\n responseEvent = _this6$_dispatcher$ca.responseEvent;\n\n if (hasCallbacks) {\n _this6._dispatcher.addEventListener(callbackEvent, callbackListener);\n }\n\n _this6._dispatcher.once(responseEvent).then(function (response) {\n if (callbackListener) {\n _this6._dispatcher.removeEventListener(callbackEvent, callbackListener);\n }\n\n var result = response.result,\n error = response.error;\n\n if (error !== undefined) {\n reject(error);\n } else {\n resolve(result);\n }\n });\n });\n }\n }, {\n key: \"_handleEvent\",\n value: function _handleEvent(data) {\n var eventName = data.eventName,\n payload = data.payload;\n this.emit(eventName, payload);\n }\n }]);\n\n return ConcreteRemoteHandle;\n}(ConcreteEmitter);\n\nvar ConcreteLocalHandle = /*#__PURE__*/function () {\n function ConcreteLocalHandle(dispatcher, localMethods) {\n _classCallCheck(this, ConcreteLocalHandle);\n\n this._dispatcher = dispatcher;\n this._methods = localMethods;\n this._returnTransfer = {};\n this._emitTransfer = {};\n\n this._dispatcher.addEventListener(MessageType.Call, this._handleCall.bind(this));\n }\n\n _createClass(ConcreteLocalHandle, [{\n key: \"emit\",\n value: function emit(eventName, payload) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var transfer = options.transfer;\n\n if (transfer === undefined && this._emitTransfer[eventName]) {\n transfer = this._emitTransfer[eventName](payload);\n }\n\n this._dispatcher.emitToRemote(eventName, payload, transfer);\n }\n }, {\n key: \"setMethods\",\n value: function setMethods(methods) {\n this._methods = methods;\n }\n }, {\n key: \"setMethod\",\n value: function setMethod(methodName, method) {\n this._methods[methodName] = method;\n }\n }, {\n key: \"setReturnTransfer\",\n value: function setReturnTransfer(methodName, transfer) {\n this._returnTransfer[methodName] = transfer;\n }\n }, {\n key: \"setEmitTransfer\",\n value: function setEmitTransfer(eventName, transfer) {\n this._emitTransfer[eventName] = transfer;\n }\n }, {\n key: \"_handleCall\",\n value: function _handleCall(data) {\n var _this7 = this;\n\n var requestId = data.requestId,\n methodName = data.methodName,\n args = data.args;\n var callMethod = new Promise(function (resolve, reject) {\n var _this7$_methods;\n\n var method = _this7._methods[methodName];\n\n if (typeof method !== 'function') {\n reject(new Error(\"The method \\\"\".concat(methodName, \"\\\" has not been implemented.\")));\n return;\n }\n\n var desanitizedArgs = args.map(function (arg) {\n if (isCallbackProxy(arg)) {\n var callbackId = arg.callbackId;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this7._dispatcher.callbackToRemote(requestId, callbackId, args);\n };\n } else {\n return arg;\n }\n });\n Promise.resolve((_this7$_methods = _this7._methods)[methodName].apply(_this7$_methods, _toConsumableArray(desanitizedArgs))).then(resolve)[\"catch\"](reject);\n });\n callMethod.then(function (result) {\n var transfer;\n\n if (_this7._returnTransfer[methodName]) {\n transfer = _this7._returnTransfer[methodName](result);\n }\n\n _this7._dispatcher.respondToRemote(requestId, result, undefined, transfer);\n })[\"catch\"](function (error) {\n _this7._dispatcher.respondToRemote(requestId, undefined, error);\n });\n }\n }]);\n\n return ConcreteLocalHandle;\n}();\n\nvar ConcreteConnection = /*#__PURE__*/function () {\n function ConcreteConnection(dispatcher, localMethods) {\n _classCallCheck(this, ConcreteConnection);\n\n this._dispatcher = dispatcher;\n this._localHandle = new ConcreteLocalHandle(dispatcher, localMethods);\n this._remoteHandle = new ConcreteRemoteHandle(dispatcher);\n }\n\n _createClass(ConcreteConnection, [{\n key: \"close\",\n value: function close() {\n this._dispatcher.close();\n\n this.remoteHandle().close();\n }\n }, {\n key: \"localHandle\",\n value: function localHandle() {\n return this._localHandle;\n }\n }, {\n key: \"remoteHandle\",\n value: function remoteHandle() {\n return this._remoteHandle;\n }\n }]);\n\n return ConcreteConnection;\n}();\n\nvar uniqueSessionId = createUniqueIdFn();\n\nvar runUntil = function runUntil(worker, condition, unfulfilled, maxAttempts, attemptInterval) {\n var attempt = 0;\n\n var fn = function fn() {\n if (!condition() && (attempt < maxAttempts || maxAttempts < 1)) {\n worker();\n attempt += 1;\n setTimeout(fn, attemptInterval);\n } else if (!condition() && attempt >= maxAttempts && maxAttempts >= 1) {\n unfulfilled();\n }\n };\n\n fn();\n};\n/**\n * Initiate the handshake from the Parent side\n *\n * @param messenger - The Messenger used to send and receive messages from the other end\n * @param localMethods - The methods that will be exposed to the other end\n * @param maxAttempts - The maximum number of handshake attempts\n * @param attemptsInterval - The interval between handshake attempts\n * @returns A Promise to an active {@link Connection} to the other end\n *\n * @public\n */\n\n\nfunction ParentHandshake(messenger) {\n var localMethods = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var maxAttempts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;\n var attemptsInterval = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 100;\n var thisSessionId = uniqueSessionId();\n var connected = false;\n return new Promise(function (resolve, reject) {\n var handshakeDispatcher = new ParentHandshakeDispatcher(messenger, thisSessionId);\n handshakeDispatcher.once(thisSessionId).then(function (response) {\n connected = true;\n handshakeDispatcher.close();\n var sessionId = response.sessionId;\n var dispatcher = new Dispatcher(messenger, sessionId);\n var connection = new ConcreteConnection(dispatcher, localMethods);\n resolve(connection);\n });\n runUntil(function () {\n return handshakeDispatcher.initiateHandshake();\n }, function () {\n return connected;\n }, function () {\n return reject(new Error(\"Handshake failed, reached maximum number of attempts\"));\n }, maxAttempts, attemptsInterval);\n });\n}\n/**\n * Initiate the handshake from the Child side\n *\n * @param messenger - The Messenger used to send and receive messages from the other end\n * @param localMethods - The methods that will be exposed to the other end\n * @returns A Promise to an active {@link Connection} to the other end\n *\n * @public\n */\n\n\nfunction ChildHandshake(messenger) {\n var localMethods = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function (resolve, reject) {\n var handshakeDispatcher = new ChildHandshakeDispatcher(messenger);\n handshakeDispatcher.once(MessageType.HandshakeRequest).then(function (response) {\n var sessionId = response.sessionId;\n handshakeDispatcher.acceptHandshake(sessionId);\n handshakeDispatcher.close();\n var dispatcher = new Dispatcher(messenger, sessionId);\n var connection = new ConcreteConnection(dispatcher, localMethods);\n resolve(connection);\n });\n });\n}\n\nvar acceptableMessageEvent = function acceptableMessageEvent(event, remoteWindow, acceptedOrigin) {\n var source = event.source,\n origin = event.origin;\n\n if (source !== remoteWindow) {\n return false;\n }\n\n if (origin !== acceptedOrigin && acceptedOrigin !== '*') {\n return false;\n }\n\n return true;\n};\n/**\n * A concrete implementation of {@link Messenger} used to communicate with another Window.\n *\n * @public\n *\n */\n\n\nvar WindowMessenger = function WindowMessenger(_ref) {\n var localWindow = _ref.localWindow,\n remoteWindow = _ref.remoteWindow,\n remoteOrigin = _ref.remoteOrigin;\n\n _classCallCheck(this, WindowMessenger);\n\n localWindow = localWindow || window;\n\n this.postMessage = function (message, transfer) {\n remoteWindow.postMessage(message, remoteOrigin, transfer);\n };\n\n this.addMessageListener = function (listener) {\n var outerListener = function outerListener(event) {\n if (acceptableMessageEvent(event, remoteWindow, remoteOrigin)) {\n listener(event);\n }\n };\n\n localWindow.addEventListener('message', outerListener);\n\n var removeListener = function removeListener() {\n localWindow.removeEventListener('message', outerListener);\n };\n\n return removeListener;\n };\n};\n/** @public */\n\n\nvar BareMessenger = function BareMessenger(postable) {\n _classCallCheck(this, BareMessenger);\n\n this.postMessage = function (message) {\n var transfer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n postable.postMessage(message, transfer);\n };\n\n this.addMessageListener = function (listener) {\n var outerListener = function outerListener(event) {\n listener(event);\n };\n\n postable.addEventListener('message', outerListener);\n\n var removeListener = function removeListener() {\n postable.removeEventListener('message', outerListener);\n };\n\n return removeListener;\n };\n};\n/**\n * A concrete implementation of {@link Messenger} used to communicate with a Worker.\n *\n * Takes a {@link Postable} representing the `Worker` (when calling from\n * the parent context) or the `self` `DedicatedWorkerGlobalScope` object\n * (when calling from the child context).\n *\n * @public\n *\n */\n\n\nvar WorkerMessenger = /*#__PURE__*/function (_BareMessenger) {\n _inherits(WorkerMessenger, _BareMessenger);\n\n var _super5 = _createSuper(WorkerMessenger);\n\n function WorkerMessenger(_ref2) {\n var worker = _ref2.worker;\n\n _classCallCheck(this, WorkerMessenger);\n\n return _super5.call(this, worker);\n }\n\n return WorkerMessenger;\n}(BareMessenger);\n/**\n * A concrete implementation of {@link Messenger} used to communicate with a MessagePort.\n *\n * @public\n *\n */\n\n\nvar PortMessenger = /*#__PURE__*/function (_BareMessenger2) {\n _inherits(PortMessenger, _BareMessenger2);\n\n var _super6 = _createSuper(PortMessenger);\n\n function PortMessenger(_ref3) {\n var port = _ref3.port;\n\n _classCallCheck(this, PortMessenger);\n\n port.start();\n return _super6.call(this, port);\n }\n\n return PortMessenger;\n}(BareMessenger);\n/**\n * Create a logger function with a specific namespace\n *\n * @param namespace - The namespace will be prepended to all the arguments passed to the logger function\n * @param log - The underlying logger (`console.log` by default)\n *\n * @public\n *\n */\n\n\nfunction debug(namespace, log) {\n log = log || console.debug || console.log || function () {};\n\n return function () {\n for (var _len3 = arguments.length, data = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n data[_key3] = arguments[_key3];\n }\n\n log.apply(void 0, [namespace].concat(data));\n };\n}\n/**\n * Decorate a {@link Messenger} so that it will log any message exchanged\n * @param messenger - The Messenger that will be decorated\n * @param log - The logger function that will receive each message\n * @returns A decorated Messenger\n *\n * @public\n *\n */\n\n\nfunction DebugMessenger(messenger, log) {\n log = log || debug('post-me');\n\n var debugListener = function debugListener(event) {\n var data = event.data;\n log('⬅️ received message', data);\n };\n\n messenger.addMessageListener(debugListener);\n return {\n postMessage: function postMessage(message, transfer) {\n log('➡️ sending message', message);\n messenger.postMessage(message, transfer);\n },\n addMessageListener: function addMessageListener(listener) {\n return messenger.addMessageListener(listener);\n }\n };\n}\n\nexport { BareMessenger, ChildHandshake, ConcreteEmitter, DebugMessenger, ParentHandshake, PortMessenger, WindowMessenger, WorkerMessenger, debug };\n","/* istanbul ignore file */\nimport { ParentHandshake, WindowMessenger } from \"post-me\";\nimport { createIframe, defaultHandshakeAttemptsInterval, defaultHandshakeMaxAttempts } from \"skynet-mysky-utils\";\nimport { addUrlQuery } from \"../utils/url\";\nexport const DEFAULT_CONNECTOR_OPTIONS = {\n dev: false,\n debug: false,\n alpha: false,\n handshakeMaxAttempts: defaultHandshakeMaxAttempts,\n handshakeAttemptsInterval: defaultHandshakeAttemptsInterval,\n};\nexport class Connector {\n constructor(url, client, childFrame, connection, options) {\n this.url = url;\n this.client = client;\n this.childFrame = childFrame;\n this.connection = connection;\n this.options = options;\n }\n // Static initializer\n static async init(client, domain, customOptions) {\n const opts = { ...DEFAULT_CONNECTOR_OPTIONS, ...customOptions };\n // Get the URL for the domain on the current portal.\n let domainUrl = await client.getFullDomainUrl(domain);\n if (opts.dev) {\n domainUrl = addUrlQuery(domainUrl, { dev: \"true\" });\n }\n if (opts.debug) {\n domainUrl = addUrlQuery(domainUrl, { debug: \"true\" });\n }\n if (opts.alpha) {\n domainUrl = addUrlQuery(domainUrl, { alpha: \"true\" });\n }\n // Create the iframe.\n const childFrame = createIframe(domainUrl, domainUrl);\n // The frame window should always exist. Sanity check + make TS happy.\n if (!childFrame.contentWindow) {\n throw new Error(\"'childFrame.contentWindow' was null\");\n }\n const childWindow = childFrame.contentWindow;\n // Connect to the iframe.\n const messenger = new WindowMessenger({\n localWindow: window,\n remoteWindow: childWindow,\n remoteOrigin: \"*\",\n });\n const connection = await ParentHandshake(messenger, {}, opts.handshakeMaxAttempts, opts.handshakeAttemptsInterval);\n // Construct the component connector.\n return new Connector(domainUrl, client, childFrame, connection, opts);\n }\n async call(method, ...args) {\n return this.connection.remoteHandle().call(method, ...args);\n }\n}\n","import { ensureUrl } from \"skynet-mysky-utils\";\nimport { getFullDomainUrlForPortal, extractDomainForPortal } from \"../utils/url\";\n/**\n * Constructs the full URL for the given component domain,\n * e.g. \"dac.hns\" => \"https://dac.hns.siasky.net\"\n *\n * @param this - SkynetClient\n * @param domain - Component domain.\n * @returns - The full URL for the component.\n */\nexport async function getFullDomainUrl(domain) {\n const portalUrl = await this.portalUrl();\n return getFullDomainUrlForPortal(portalUrl, domain);\n}\n/**\n * Extracts the domain from the current portal URL,\n * e.g. (\"dac.hns.siasky.net\") => \"dac.hns\"\n *\n * @param this - SkynetClient\n * @param fullDomain - Full URL.\n * @returns - The extracted domain.\n */\nexport async function extractDomain(fullDomain) {\n const portalUrl = await this.portalUrl();\n return extractDomainForPortal(portalUrl, fullDomain);\n}\n/* istanbul ignore next */\n/**\n * Create a new popup window. From SkyID.\n *\n * @param url - The URL to open.\n * @param winName - The name of the popup window.\n * @param w - The width of the popup window.\n * @param h - the height of the popup window.\n * @returns - The window.\n * @throws - Will throw if the window could not be opened.\n */\nexport function popupCenter(url, winName, w, h) {\n if (!window.top) {\n throw new Error(\"Current window is not valid\");\n }\n url = ensureUrl(url);\n const y = window.top.outerHeight / 2 + window.top.screenY - h / 2;\n const x = window.top.outerWidth / 2 + window.top.screenX - w / 2;\n const newWindow = window.open(url, winName, `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, copyhistory=no, width=${w}, height=${h}, top=${y}, left=${x}`);\n if (!newWindow) {\n throw new Error(\"Could not open window\");\n }\n if (newWindow.focus) {\n newWindow.focus();\n }\n return newWindow;\n}\n","/* istanbul ignore file */\nexport { DacLibrary } from \"./dac\";\nimport { ParentHandshake, WindowMessenger } from \"post-me\";\nimport { dispatchedErrorEvent, errorWindowClosed, monitorWindowError, PermCategory, Permission, PermType, } from \"skynet-mysky-utils\";\nimport { Connector, DEFAULT_CONNECTOR_OPTIONS } from \"./connector\";\nimport { DEFAULT_GET_ENTRY_OPTIONS, DEFAULT_SET_ENTRY_OPTIONS, getEntryLink, } from \"../registry\";\nimport { DEFAULT_GET_JSON_OPTIONS, DEFAULT_SET_JSON_OPTIONS, getOrCreateRegistryEntry, getNextRegistryEntry, getOrCreateRawBytesRegistryEntry, } from \"../skydb\";\nimport { deriveDiscoverableFileTweak } from \"./tweak\";\nimport { popupCenter } from \"./utils\";\nimport { extractOptions } from \"../utils/options\";\nimport { throwValidationError, validateBoolean, validateObject, validateOptionalObject, validateString, validateUint8Array, } from \"../utils/validation\";\nimport { decodeSkylink, RAW_SKYLINK_SIZE } from \"../skylink/sia\";\nimport { decryptJSONFile, deriveEncryptedFileKeyEntropy, deriveEncryptedFileTweak, ENCRYPTED_JSON_RESPONSE_VERSION, encryptJSONFile, } from \"./encrypted_files\";\n/**\n * The domain for MySky.\n */\nexport const MYSKY_DOMAIN = \"skynet-mysky.hns\";\n/**\n * @deprecated please use MYSKY_DOMAIN.\n */\nexport const mySkyDomain = MYSKY_DOMAIN;\n/**\n * The domain for MySky dev.\n */\nexport const MYSKY_DEV_DOMAIN = \"skynet-mysky-dev.hns\";\n/**\n * @deprecated please use MYSKY_DEV_DOMAIN.\n */\nexport const mySkyDevDomain = MYSKY_DEV_DOMAIN;\n/**\n * The domain for MySky alpha. Intentionally not exported in index file.\n */\nexport const MYSKY_ALPHA_DOMAIN = \"sandbridge.hns\";\n/**\n * The maximum length for entry data when setting entry data.\n */\nexport const MAX_ENTRY_LENGTH = 70;\nconst mySkyUiRelativeUrl = \"ui.html\";\nconst mySkyUiTitle = \"MySky UI\";\nconst [mySkyUiW, mySkyUiH] = [640, 750];\n/**\n * Loads MySky. Note that this does not log in the user.\n *\n * @param this - The Skynet client.\n * @param skappDomain - The domain of the host skapp. For this domain permissions will be requested and, by default, automatically granted.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - Loaded (but not logged-in) MySky instance.\n */\nexport async function loadMySky(skappDomain, customOptions) {\n const mySky = await MySky.New(this, skappDomain, customOptions);\n return mySky;\n}\nexport class MySky {\n // ============\n // Constructors\n // ============\n constructor(connector, permissions, hostDomain) {\n this.connector = connector;\n this.hostDomain = hostDomain;\n // Holds the loaded DACs.\n this.dacs = [];\n // Holds the currently granted permissions.\n this.grantedPermissions = [];\n this.pendingPermissions = permissions;\n }\n static async New(client, skappDomain, customOptions) {\n const opts = { ...DEFAULT_CONNECTOR_OPTIONS, ...customOptions };\n // Enforce singleton.\n if (MySky.instance) {\n return MySky.instance;\n }\n let domain = MYSKY_DOMAIN;\n if (opts.alpha) {\n domain = MYSKY_ALPHA_DOMAIN;\n }\n else if (opts.dev) {\n domain = MYSKY_DEV_DOMAIN;\n }\n const connector = await Connector.init(client, domain, customOptions);\n const hostDomain = await client.extractDomain(window.location.hostname);\n const permissions = [];\n if (skappDomain) {\n const perm1 = new Permission(hostDomain, skappDomain, PermCategory.Discoverable, PermType.Write);\n const perm2 = new Permission(hostDomain, skappDomain, PermCategory.Hidden, PermType.Read);\n const perm3 = new Permission(hostDomain, skappDomain, PermCategory.Hidden, PermType.Write);\n permissions.push(perm1, perm2, perm3);\n }\n MySky.instance = new MySky(connector, permissions, hostDomain);\n return MySky.instance;\n }\n // ==========\n // Public API\n // ==========\n /**\n * Checks if the current browser is supported by MySky.\n *\n * @returns - A promise with a boolean indicating whether the browser is supported and, if not, a string containing the user-friendly error message.\n */\n static async isBrowserSupported() {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (isSafari) {\n return [false, \"MySky is currently not supported in Safari browsers.\"];\n }\n return [true, \"\"];\n }\n /**\n * Loads the given DACs.\n *\n * @param dacs - The DAC library instances to call `init` on.\n */\n async loadDacs(...dacs) {\n const promises = [];\n for (const dac of dacs) {\n promises.push(this.loadDac(dac));\n }\n this.dacs.push(...dacs);\n await Promise.all(promises);\n }\n async addPermissions(...permissions) {\n this.pendingPermissions.push(...permissions);\n }\n async checkLogin() {\n const [seedFound, permissionsResponse] = await this.connector.connection\n .remoteHandle()\n .call(\"checkLogin\", this.pendingPermissions);\n // Save granted and failed permissions.\n const { grantedPermissions, failedPermissions } = permissionsResponse;\n this.grantedPermissions = grantedPermissions;\n this.pendingPermissions = failedPermissions;\n const loggedIn = seedFound && failedPermissions.length === 0;\n await this.handleLogin(loggedIn);\n return loggedIn;\n }\n /**\n * Destroys the mysky connection by:\n *\n * 1. Destroying the connected DACs.\n *\n * 2. Closing the connection.\n *\n * 3. Closing the child iframe.\n *\n * @throws - Will throw if there is an unexpected DOM error.\n */\n async destroy() {\n // TODO: For all connected dacs, send a destroy call.\n // TODO: Delete all connected dacs.\n // Close the connection.\n this.connector.connection.close();\n // Close the child iframe.\n const frame = this.connector.childFrame;\n if (frame) {\n // The parent node should always exist. Sanity check + make TS happy.\n if (!frame.parentNode) {\n throw new Error(\"'childFrame.parentNode' was not set\");\n }\n frame.parentNode.removeChild(frame);\n }\n }\n async logout() {\n return await this.connector.connection.remoteHandle().call(\"logout\");\n }\n async requestLoginAccess() {\n let uiWindow;\n let uiConnection;\n let seedFound = false;\n // Add error listener.\n const { promise: promiseError, controller: controllerError } = monitorWindowError();\n // eslint-disable-next-line no-async-promise-executor\n const promise = new Promise(async (resolve, reject) => {\n // Make this promise run in the background and reject on window close or any errors.\n promiseError.catch((err) => {\n if (err === errorWindowClosed) {\n // Resolve without updating the pending permissions.\n resolve();\n return;\n }\n reject(err);\n });\n try {\n // Launch the UI.\n uiWindow = this.launchUI();\n uiConnection = await this.connectUi(uiWindow);\n // Send the UI the list of required permissions.\n // TODO: This should be a dual-promise that also calls ping() on an interval and rejects if no response was found in a given amount of time.\n const [seedFoundResponse, permissionsResponse] = await uiConnection\n .remoteHandle()\n .call(\"requestLoginAccess\", this.pendingPermissions);\n seedFound = seedFoundResponse;\n // Save failed permissions.\n const { grantedPermissions, failedPermissions } = permissionsResponse;\n this.grantedPermissions = grantedPermissions;\n this.pendingPermissions = failedPermissions;\n resolve();\n }\n catch (err) {\n reject(err);\n }\n });\n await promise\n .catch((err) => {\n throw err;\n })\n .finally(() => {\n // Close the window.\n if (uiWindow) {\n uiWindow.close();\n }\n // Close the connection.\n if (uiConnection) {\n uiConnection.close();\n }\n // Clean up the event listeners and promises.\n controllerError.cleanup();\n });\n const loggedIn = seedFound && this.pendingPermissions.length === 0;\n await this.handleLogin(loggedIn);\n return loggedIn;\n }\n async userID() {\n return await this.connector.connection.remoteHandle().call(\"userID\");\n }\n /**\n * Gets Discoverable JSON at the given path through MySky, if the user has\n * given Discoverable Read permissions to do so.\n *\n * @param path - The data path.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An object containing the json data as well as the skylink for the data.\n * @throws - Will throw if the user does not have Discoverable Read permission on the path.\n */\n async getJSON(path, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_GET_JSON_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n };\n const publicKey = await this.userID();\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n return await this.connector.client.db.getJSON(publicKey, dataKey, opts);\n }\n /**\n * Gets the entry link for the entry at the given path. This is a v2 skylink.\n * This link stays the same even if the content at the entry changes.\n *\n * @param path - The data path.\n * @returns - The entry link.\n */\n async getEntryLink(path) {\n validateString(\"path\", path, \"parameter\");\n const publicKey = await this.userID();\n const dataKey = deriveDiscoverableFileTweak(path);\n // Do not hash the tweak anymore.\n const opts = { ...DEFAULT_GET_ENTRY_OPTIONS, hashedDataKeyHex: true };\n return getEntryLink(publicKey, dataKey, opts);\n }\n /**\n * Sets Discoverable JSON at the given path through MySky, if the user has\n * given Discoverable Write permissions to do so.\n *\n * @param path - The data path.\n * @param json - The json to set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An object containing the json data as well as the skylink for the data.\n * @throws - Will throw if the user does not have Discoverable Write permission on the path.\n */\n async setJSON(path, json, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateObject(\"json\", json, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n };\n const publicKey = await this.userID();\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n const [entry, dataLink] = await getOrCreateRegistryEntry(this.connector.client, publicKey, dataKey, json, opts);\n const signature = await this.signRegistryEntry(entry, path);\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.connector.client.registry.postSignedEntry(publicKey, entry, signature, setEntryOpts);\n return { data: json, dataLink };\n }\n /**\n * Sets entry at the given path to point to the data link. Like setJSON, but it doesn't upload a file.\n *\n * @param path - The data path.\n * @param dataLink - The data link to set at the path.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An empty promise.\n * @throws - Will throw if the user does not have Discoverable Write permission on the path.\n */\n async setDataLink(path, dataLink, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateString(\"dataLink\", dataLink, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n };\n const publicKey = await this.userID();\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const entry = await getNextRegistryEntry(this.connector.client, publicKey, dataKey, decodeSkylink(dataLink), getEntryOpts);\n const signature = await this.signRegistryEntry(entry, path);\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.connector.client.registry.postSignedEntry(publicKey, entry, signature, setEntryOpts);\n }\n /**\n * Deletes Discoverable JSON at the given path through MySky, if the user has\n * given Discoverable Write permissions to do so.\n *\n * @param path - The data path.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An empty promise.\n * @throws - Will throw if the revision is already the maximum value.\n * @throws - Will throw if the user does not have Discoverable Write permission on the path.\n */\n async deleteJSON(path, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n };\n const publicKey = await this.userID();\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const entry = await getNextRegistryEntry(this.connector.client, publicKey, dataKey, new Uint8Array(RAW_SKYLINK_SIZE), getEntryOpts);\n const signature = await this.signRegistryEntry(entry, path);\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.connector.client.registry.postSignedEntry(publicKey, entry, signature, setEntryOpts);\n }\n /**\n * Gets the raw registry entry data for the given path, if the user has given\n * Discoverable Read permissions.\n *\n * @param path - The data path.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The entry data.\n * @throws - Will throw if the user does not have Discoverable Read permission on the path.\n */\n async getEntryData(path, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_ENTRY_OPTIONS);\n const opts = {\n ...DEFAULT_GET_ENTRY_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n };\n const publicKey = await this.userID();\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n const { entry } = await this.connector.client.registry.getEntry(publicKey, dataKey, opts);\n if (!entry) {\n return { data: null };\n }\n return { data: entry.data };\n }\n /**\n * Sets the entry data at the given path, if the user has given Discoverable\n * Write permissions.\n *\n * @param path - The data path.\n * @param data - The raw entry data to set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - The entry data.\n * @throws - Will throw if the length of the data is > 70 bytes.\n * @throws - Will throw if the user does not have Discoverable Write permission on the path.\n */\n async setEntryData(path, data, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateUint8Array(\"data\", data, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_ENTRY_OPTIONS);\n if (data.length > MAX_ENTRY_LENGTH) {\n throwValidationError(\"data\", data, \"parameter\", `'Uint8Array' of length <= ${MAX_ENTRY_LENGTH}, was length ${data.length}`);\n }\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n };\n const publicKey = await this.userID();\n const dataKey = deriveDiscoverableFileTweak(path);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n const getEntryOpts = extractOptions(opts, DEFAULT_GET_ENTRY_OPTIONS);\n const entry = await getNextRegistryEntry(this.connector.client, publicKey, dataKey, data, getEntryOpts);\n const signature = await this.signRegistryEntry(entry, path);\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.connector.client.registry.postSignedEntry(publicKey, entry, signature, setEntryOpts);\n return { data: entry.data };\n }\n // ===============\n // Encrypted Files\n // ===============\n /**\n * Lets you get the share-able path seed, which can be passed to\n * file.getJSONEncrypted. Requires Hidden Read permission on the path.\n *\n * @param path - The given path.\n * @param isDirectory - Whether the path is a directory.\n * @returns - The seed for the path.\n * @throws - Will throw if the user does not have Hidden Read permission on the path.\n */\n async getEncryptedFileSeed(path, isDirectory) {\n validateString(\"path\", path, \"parameter\");\n validateBoolean(\"isDirectory\", isDirectory, \"parameter\");\n return await this.connector.connection.remoteHandle().call(\"getEncryptedFileSeed\", path, isDirectory);\n }\n /**\n * Gets Encrypted JSON at the given path through MySky, if the user has given\n * Hidden Read permissions to do so.\n *\n * @param path - The data path.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An object containing the decrypted json data.\n * @throws - Will throw if the user does not have Hidden Read permission on the path.\n */\n async getJSONEncrypted(path, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_GET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_GET_JSON_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n hashedDataKeyHex: true, // Do not hash the tweak anymore.\n };\n // Call MySky which checks for read permissions on the path.\n const [publicKey, pathSeed] = await Promise.all([this.userID(), this.getEncryptedFileSeed(path, false)]);\n // Fetch the raw encrypted JSON data.\n const dataKey = deriveEncryptedFileTweak(pathSeed);\n const { data } = await this.connector.client.db.getRawBytes(publicKey, dataKey, opts);\n if (data === null) {\n return { data: null };\n }\n const encryptionKey = deriveEncryptedFileKeyEntropy(pathSeed);\n const json = decryptJSONFile(data, encryptionKey);\n return { data: json };\n }\n /**\n * Sets Encrypted JSON at the given path through MySky, if the user has given\n * Hidden Write permissions to do so.\n *\n * @param path - The data path.\n * @param json - The json to encrypt and set.\n * @param [customOptions] - Additional settings that can optionally be set.\n * @returns - An object containing the original json data.\n * @throws - Will throw if the user does not have Hidden Write permission on the path.\n */\n async setJSONEncrypted(path, json, customOptions) {\n validateString(\"path\", path, \"parameter\");\n validateObject(\"json\", json, \"parameter\");\n validateOptionalObject(\"customOptions\", customOptions, \"parameter\", DEFAULT_SET_JSON_OPTIONS);\n const opts = {\n ...DEFAULT_SET_JSON_OPTIONS,\n ...this.connector.client.customOptions,\n ...customOptions,\n };\n // Call MySky which checks for read permissions on the path.\n const [publicKey, pathSeed] = await Promise.all([this.userID(), this.getEncryptedFileSeed(path, false)]);\n const dataKey = deriveEncryptedFileTweak(pathSeed);\n opts.hashedDataKeyHex = true; // Do not hash the tweak anymore.\n const encryptionKey = deriveEncryptedFileKeyEntropy(pathSeed);\n // Pad and encrypt json file.\n const data = encryptJSONFile(json, { version: ENCRYPTED_JSON_RESPONSE_VERSION }, encryptionKey);\n const entry = await getOrCreateRawBytesRegistryEntry(this.connector.client, publicKey, dataKey, data, opts);\n // Call MySky which checks for write permissions on the path.\n const signature = await this.signEncryptedRegistryEntry(entry, path);\n const setEntryOpts = extractOptions(opts, DEFAULT_SET_ENTRY_OPTIONS);\n await this.connector.client.registry.postSignedEntry(publicKey, entry, signature, setEntryOpts);\n return { data: json };\n }\n // ================\n // Internal Methods\n // ================\n async catchError(errorMsg) {\n const event = new CustomEvent(dispatchedErrorEvent, { detail: errorMsg });\n window.dispatchEvent(event);\n }\n launchUI() {\n const mySkyUrl = new URL(this.connector.url);\n mySkyUrl.pathname = mySkyUiRelativeUrl;\n const uiUrl = mySkyUrl.toString();\n // Open the window.\n const childWindow = popupCenter(uiUrl, mySkyUiTitle, mySkyUiW, mySkyUiH);\n if (!childWindow) {\n throw new Error(`Could not open window at '${uiUrl}'`);\n }\n return childWindow;\n }\n async connectUi(childWindow) {\n const options = this.connector.options;\n // Complete handshake with UI window.\n const messenger = new WindowMessenger({\n localWindow: window,\n remoteWindow: childWindow,\n remoteOrigin: \"*\",\n });\n const methods = {\n catchError: this.catchError,\n };\n const connection = await ParentHandshake(messenger, methods, options.handshakeMaxAttempts, options.handshakeAttemptsInterval);\n return connection;\n }\n async loadDac(dac) {\n // Initialize DAC.\n await dac.init(this.connector.client, this.connector.options);\n // Add DAC permissions.\n const perms = dac.getPermissions();\n await this.addPermissions(...perms);\n }\n async handleLogin(loggedIn) {\n if (loggedIn) {\n await Promise.all(this.dacs.map(async (dac) => {\n try {\n await dac.onUserLogin();\n }\n catch (error) {\n // Don't throw on error, just print a console warning.\n console.warn(error);\n }\n }));\n }\n }\n async signRegistryEntry(entry, path) {\n return await this.connector.connection.remoteHandle().call(\"signRegistryEntry\", entry, path);\n }\n async signEncryptedRegistryEntry(entry, path) {\n return await this.connector.connection.remoteHandle().call(\"signEncryptedRegistryEntry\", entry, path);\n }\n}\nMySky.instance = null;\n","import axios from \"axios\";\nimport { uploadFile, uploadLargeFile, uploadDirectory, uploadDirectoryRequest, uploadSmallFile, uploadSmallFileRequest, uploadLargeFileRequest, } from \"./upload\";\nimport { downloadFile, downloadFileHns, getSkylinkUrl, getHnsUrl, getHnsresUrl, getMetadata, getFileContent, getFileContentHns, openFile, openFileHns, resolveHns, } from \"./download\";\nimport { getJSONEncrypted, getEntryData, getEntryLink as fileGetEntryLink, getJSON as fileGetJSON } from \"./file\";\nimport { pinSkylink } from \"./pin\";\nimport { getEntry, getEntryLinkAsync, getEntryUrl, setEntry, postSignedEntry } from \"./registry\";\nimport { deleteJSON, getJSON, setJSON, setDataLink, getRawBytes } from \"./skydb\";\nimport { addUrlQuery, defaultPortalUrl, makeUrl } from \"./utils/url\";\nimport { loadMySky } from \"./mysky\";\nimport { extractDomain, getFullDomainUrl } from \"./mysky/utils\";\nimport { trimSuffix } from \"./utils/string\";\n/**\n * The Skynet Client which can be used to access Skynet.\n */\nexport class SkynetClient {\n /**\n * The Skynet Client which can be used to access Skynet.\n *\n * @class\n * @param [initialPortalUrl] The initial portal URL to use to access Skynet, if specified. A request will be made to this URL to get the actual portal URL. To use the default portal while passing custom options, pass \"\".\n * @param [customOptions] Configuration for the client.\n */\n constructor(initialPortalUrl = \"\", customOptions = {}) {\n // Set methods (defined in other files).\n // Upload\n this.uploadFile = uploadFile;\n this.uploadSmallFile = uploadSmallFile;\n this.uploadSmallFileRequest = uploadSmallFileRequest;\n this.uploadLargeFile = uploadLargeFile;\n this.uploadLargeFileRequest = uploadLargeFileRequest;\n this.uploadDirectory = uploadDirectory;\n this.uploadDirectoryRequest = uploadDirectoryRequest;\n // Download\n this.downloadFile = downloadFile;\n this.downloadFileHns = downloadFileHns;\n this.getSkylinkUrl = getSkylinkUrl;\n this.getHnsUrl = getHnsUrl;\n this.getHnsresUrl = getHnsresUrl;\n this.getMetadata = getMetadata;\n this.getFileContent = getFileContent;\n this.getFileContentHns = getFileContentHns;\n this.openFile = openFile;\n this.openFileHns = openFileHns;\n this.resolveHns = resolveHns;\n // Pin\n this.pinSkylink = pinSkylink;\n // MySky\n this.extractDomain = extractDomain;\n this.getFullDomainUrl = getFullDomainUrl;\n this.loadMySky = loadMySky;\n // File API\n this.file = {\n getJSON: fileGetJSON.bind(this),\n getEntryData: getEntryData.bind(this),\n getEntryLink: fileGetEntryLink.bind(this),\n getJSONEncrypted: getJSONEncrypted.bind(this),\n };\n // SkyDB\n this.db = {\n deleteJSON: deleteJSON.bind(this),\n getJSON: getJSON.bind(this),\n setJSON: setJSON.bind(this),\n setDataLink: setDataLink.bind(this),\n getRawBytes: getRawBytes.bind(this),\n };\n // Registry\n this.registry = {\n getEntry: getEntry.bind(this),\n getEntryUrl: getEntryUrl.bind(this),\n getEntryLink: getEntryLinkAsync.bind(this),\n setEntry: setEntry.bind(this),\n postSignedEntry: postSignedEntry.bind(this),\n };\n if (initialPortalUrl === \"\") {\n // Portal was not given, use the default portal URL. We'll still make a request for the resolved portal URL.\n initialPortalUrl = defaultPortalUrl();\n }\n else {\n // Portal was given, don't make the request for the resolved portal URL.\n this.customPortalUrl = initialPortalUrl;\n }\n this.initialPortalUrl = initialPortalUrl;\n this.customOptions = customOptions;\n }\n /**\n * Make the request for the API portal URL.\n *\n * @returns - A promise that resolves when the request is complete.\n */\n /* istanbul ignore next */\n async initPortalUrl() {\n if (this.customPortalUrl) {\n // Tried to make a request for the API portal URL when a custom URL was already provided.\n return;\n }\n if (!SkynetClient.resolvedPortalUrl) {\n SkynetClient.resolvedPortalUrl = this.resolvePortalUrl();\n }\n await SkynetClient.resolvedPortalUrl;\n return;\n }\n /**\n * Returns the API portal URL. Makes the request to get it if not done so already.\n *\n * @returns - the portal URL.\n */\n /* istanbul ignore next */\n async portalUrl() {\n if (this.customPortalUrl) {\n return this.customPortalUrl;\n }\n // Make the request if needed and not done so.\n await this.initPortalUrl();\n return await SkynetClient.resolvedPortalUrl; // eslint-disable-line\n }\n // ===============\n // Private Methods\n // ===============\n /**\n * Creates and executes a request.\n *\n * @param config - Configuration for the request.\n * @returns - The response from axios.\n */\n async executeRequest(config) {\n const url = await buildRequestUrl(this, config.endpointPath, config.url, config.extraPath, config.query);\n // Build headers.\n const headers = buildRequestHeaders(config.headers, config.customUserAgent, config.customCookie);\n const auth = config.APIKey ? { username: \"\", password: config.APIKey } : undefined;\n let onDownloadProgress = undefined;\n if (config.onDownloadProgress) {\n onDownloadProgress = function (event) {\n // Avoid NaN for 0-byte file.\n /* istanbul ignore next: Empty file test doesn't work yet. */\n const progress = event.total ? event.loaded / event.total : 1;\n // @ts-expect-error TS complains even though we've ensured this is defined.\n config.onDownloadProgress(progress, event);\n };\n }\n let onUploadProgress = undefined;\n if (config.onUploadProgress) {\n onUploadProgress = function (event) {\n // Avoid NaN for 0-byte file.\n /* istanbul ignore next: event.total is always 0 in Node. */\n const progress = event.total ? event.loaded / event.total : 1;\n // @ts-expect-error TS complains even though we've ensured this is defined.\n config.onUploadProgress(progress, event);\n };\n }\n return axios({\n url,\n method: config.method,\n data: config.data,\n headers,\n auth,\n onDownloadProgress,\n onUploadProgress,\n responseType: config.responseType,\n transformRequest: config.transformRequest,\n transformResponse: config.transformResponse,\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n // Allow cross-site cookies.\n withCredentials: true,\n });\n }\n async resolvePortalUrl() {\n const response = await this.executeRequest({\n ...this.customOptions,\n method: \"head\",\n url: this.initialPortalUrl,\n endpointPath: \"/\",\n });\n if (typeof response.headers === \"undefined\") {\n throw new Error(\"Did not get 'headers' in response despite a successful request. Please try again and report this issue to the devs if it persists.\");\n }\n const portalUrl = response.headers[\"skynet-portal-api\"];\n if (!portalUrl) {\n throw new Error(\"Could not get portal URL for the given portal\");\n }\n return trimSuffix(portalUrl, \"/\");\n }\n}\n// =======\n// Helpers\n// =======\n/**\n * Helper function that builds the request URL.\n *\n * @param client - The Skynet client.\n * @param endpointPath - The endpoint to contact.\n * @param [url] - The base URL to use, instead of the portal URL.\n * @param [extraPath] - An optional path to append to the URL.\n * @param [query] - Optional query parameters to append to the URL.\n * @returns - The built URL.\n */\nexport async function buildRequestUrl(client, endpointPath, url, extraPath, query) {\n // Build the URL.\n if (!url) {\n const portalUrl = await client.portalUrl();\n url = makeUrl(portalUrl, endpointPath, extraPath !== null && extraPath !== void 0 ? extraPath : \"\");\n }\n if (query) {\n url = addUrlQuery(url, query);\n }\n return url;\n}\n/**\n * Helper function that builds the request headers.\n *\n * @param [baseHeaders] - Any base headers.\n * @param [customUserAgent] - A custom user agent to set.\n * @param [customCookie] - A custom cookie.\n * @returns - The built headers.\n */\nexport function buildRequestHeaders(baseHeaders, customUserAgent, customCookie) {\n const returnHeaders = { ...baseHeaders };\n // Set some headers from common options.\n if (customUserAgent) {\n returnHeaders[\"User-Agent\"] = customUserAgent;\n }\n if (customCookie) {\n returnHeaders[\"Cookie\"] = customCookie;\n }\n return returnHeaders;\n}\n","import { Integration, Transaction } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\ntype Method =\n | 'all'\n | 'get'\n | 'post'\n | 'put'\n | 'delete'\n | 'patch'\n | 'options'\n | 'head'\n | 'checkout'\n | 'copy'\n | 'lock'\n | 'merge'\n | 'mkactivity'\n | 'mkcol'\n | 'move'\n | 'm-search'\n | 'notify'\n | 'purge'\n | 'report'\n | 'search'\n | 'subscribe'\n | 'trace'\n | 'unlock'\n | 'unsubscribe'\n | 'use';\n\ntype Router = {\n [method in Method]: (...args: any) => any; // eslint-disable-line @typescript-eslint/no-explicit-any\n};\n\ninterface ExpressResponse {\n once(name: string, callback: () => void): void;\n}\n\n/**\n * Internal helper for `__sentry_transaction`\n * @hidden\n */\ninterface SentryTracingResponse {\n __sentry_transaction?: Transaction;\n}\n\n/**\n * Express integration\n *\n * Provides an request and error handler for Express framework as well as tracing capabilities\n */\nexport class Express implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Express';\n\n /**\n * @inheritDoc\n */\n public name: string = Express.id;\n\n /**\n * Express App instance\n */\n private readonly _router?: Router;\n private readonly _methods?: Method[];\n\n /**\n * @inheritDoc\n */\n public constructor(options: { app?: Router; router?: Router; methods?: Method[] } = {}) {\n this._router = options.router || options.app;\n this._methods = (Array.isArray(options.methods) ? options.methods : []).concat('use');\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n if (!this._router) {\n logger.error('ExpressIntegration is missing an Express instance');\n return;\n }\n instrumentMiddlewares(this._router, this._methods);\n }\n}\n\n/**\n * Wraps original middleware function in a tracing call, which stores the info about the call as a span,\n * and finishes it once the middleware is done invoking.\n *\n * Express middlewares have 3 various forms, thus we have to take care of all of them:\n * // sync\n * app.use(function (req, res) { ... })\n * // async\n * app.use(function (req, res, next) { ... })\n * // error handler\n * app.use(function (err, req, res, next) { ... })\n *\n * They all internally delegate to the `router[method]` of the given application instance.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any\nfunction wrap(fn: Function, method: Method): (...args: any[]) => void {\n const arity = fn.length;\n\n switch (arity) {\n case 2: {\n return function (this: NodeJS.Global, req: unknown, res: ExpressResponse & SentryTracingResponse): void {\n const transaction = res.__sentry_transaction;\n if (transaction) {\n const span = transaction.startChild({\n description: fn.name,\n op: `express.middleware.${method}`,\n });\n res.once('finish', () => {\n span.finish();\n });\n }\n return fn.call(this, req, res);\n };\n }\n case 3: {\n return function (\n this: NodeJS.Global,\n req: unknown,\n res: ExpressResponse & SentryTracingResponse,\n next: () => void,\n ): void {\n const transaction = res.__sentry_transaction;\n const span = transaction?.startChild({\n description: fn.name,\n op: `express.middleware.${method}`,\n });\n fn.call(this, req, res, function (this: NodeJS.Global, ...args: unknown[]): void {\n span?.finish();\n next.call(this, ...args);\n });\n };\n }\n case 4: {\n return function (\n this: NodeJS.Global,\n err: Error,\n req: Request,\n res: Response & SentryTracingResponse,\n next: () => void,\n ): void {\n const transaction = res.__sentry_transaction;\n const span = transaction?.startChild({\n description: fn.name,\n op: `express.middleware.${method}`,\n });\n fn.call(this, err, req, res, function (this: NodeJS.Global, ...args: unknown[]): void {\n span?.finish();\n next.call(this, ...args);\n });\n };\n }\n default: {\n throw new Error(`Express middleware takes 2-4 arguments. Got: ${arity}`);\n }\n }\n}\n\n/**\n * Takes all the function arguments passed to the original `app` or `router` method, eg. `app.use` or `router.use`\n * and wraps every function, as well as array of functions with a call to our `wrap` method.\n * We have to take care of the arrays as well as iterate over all of the arguments,\n * as `app.use` can accept middlewares in few various forms.\n *\n * app.use([<path>], <fn>)\n * app.use([<path>], <fn>, ...<fn>)\n * app.use([<path>], ...<fn>[])\n */\nfunction wrapMiddlewareArgs(args: unknown[], method: Method): unknown[] {\n return args.map((arg: unknown) => {\n if (typeof arg === 'function') {\n return wrap(arg, method);\n }\n\n if (Array.isArray(arg)) {\n return arg.map((a: unknown) => {\n if (typeof a === 'function') {\n return wrap(a, method);\n }\n return a;\n });\n }\n\n return arg;\n });\n}\n\n/**\n * Patches original router to utilize our tracing functionality\n */\nfunction patchMiddleware(router: Router, method: Method): Router {\n const originalCallback = router[method];\n\n router[method] = function (...args: unknown[]): void {\n return originalCallback.call(this, ...wrapMiddlewareArgs(args, method));\n };\n\n return router;\n}\n\n/**\n * Patches original router methods\n */\nfunction instrumentMiddlewares(router: Router, methods: Method[] = []): void {\n methods.forEach((method: Method) => patchMiddleware(router, method));\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration } from '@sentry/types';\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\n\ninterface PgClient {\n prototype: {\n query: () => void | Promise<unknown>;\n };\n}\n\ninterface PgOptions {\n usePgNative?: boolean;\n}\n\n/** Tracing integration for node-postgres package */\nexport class Postgres implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Postgres';\n\n /**\n * @inheritDoc\n */\n public name: string = Postgres.id;\n\n private _usePgNative: boolean;\n\n public constructor(options: PgOptions = {}) {\n this._usePgNative = !!options.usePgNative;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const pkg = loadModule<{ Client: PgClient; native: { Client: PgClient } }>('pg');\n\n if (!pkg) {\n logger.error('Postgres Integration was unable to require `pg` package.');\n return;\n }\n\n if (this._usePgNative && !pkg.native?.Client) {\n logger.error(\"Postgres Integration was unable to access 'pg-native' bindings.\");\n return;\n }\n\n const { Client } = this._usePgNative ? pkg.native : pkg;\n\n /**\n * function (query, callback) => void\n * function (query, params, callback) => void\n * function (query) => Promise\n * function (query, params) => Promise\n * function (pg.Cursor) => pg.Cursor\n */\n fill(Client.prototype, 'query', function (orig: () => void | Promise<unknown>) {\n return function (this: unknown, config: unknown, values: unknown, callback: unknown) {\n const scope = getCurrentHub().getScope();\n const parentSpan = scope?.getSpan();\n const span = parentSpan?.startChild({\n description: typeof config === 'string' ? config : (config as { text: string }).text,\n op: 'db',\n });\n\n if (typeof callback === 'function') {\n return orig.call(this, config, values, function (err: Error, result: unknown) {\n span?.finish();\n callback(err, result);\n });\n }\n\n if (typeof values === 'function') {\n return orig.call(this, config, function (err: Error, result: unknown) {\n span?.finish();\n values(err, result);\n });\n }\n\n const rv = typeof values !== 'undefined' ? orig.call(this, config, values) : orig.call(this, config);\n\n if (isThenable(rv)) {\n return (rv as Promise<unknown>).then((res: unknown) => {\n span?.finish();\n return res;\n });\n }\n\n span?.finish();\n return rv;\n };\n });\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration } from '@sentry/types';\nimport { fill, loadModule, logger } from '@sentry/utils';\n\ninterface MysqlConnection {\n createQuery: () => void;\n}\n\n/** Tracing integration for node-mysql package */\nexport class Mysql implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Mysql';\n\n /**\n * @inheritDoc\n */\n public name: string = Mysql.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const pkg = loadModule<MysqlConnection>('mysql/lib/Connection.js');\n\n if (!pkg) {\n logger.error('Mysql Integration was unable to require `mysql` package.');\n return;\n }\n\n // The original function will have one of these signatures:\n // function (callback) => void\n // function (options, callback) => void\n // function (options, values, callback) => void\n fill(pkg, 'createQuery', function (orig: () => void) {\n return function (this: unknown, options: unknown, values: unknown, callback: unknown) {\n const scope = getCurrentHub().getScope();\n const parentSpan = scope?.getSpan();\n const span = parentSpan?.startChild({\n description: typeof options === 'string' ? options : (options as { sql: string }).sql,\n op: 'db',\n });\n\n if (typeof callback === 'function') {\n return orig.call(this, options, values, function (err: Error, result: unknown, fields: unknown) {\n span?.finish();\n callback(err, result, fields);\n });\n }\n\n if (typeof values === 'function') {\n return orig.call(this, options, function (err: Error, result: unknown, fields: unknown) {\n span?.finish();\n values(err, result, fields);\n });\n }\n\n return orig.call(this, options, values, callback);\n };\n });\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration, SpanContext } from '@sentry/types';\nimport { fill, isThenable, loadModule, logger } from '@sentry/utils';\n\n// This allows us to use the same array for both defaults options and the type itself.\n// (note `as const` at the end to make it a union of string literal types (i.e. \"a\" | \"b\" | ... )\n// and not just a string[])\ntype Operation = typeof OPERATIONS[number];\nconst OPERATIONS = [\n 'aggregate', // aggregate(pipeline, options, callback)\n 'bulkWrite', // bulkWrite(operations, options, callback)\n 'countDocuments', // countDocuments(query, options, callback)\n 'createIndex', // createIndex(fieldOrSpec, options, callback)\n 'createIndexes', // createIndexes(indexSpecs, options, callback)\n 'deleteMany', // deleteMany(filter, options, callback)\n 'deleteOne', // deleteOne(filter, options, callback)\n 'distinct', // distinct(key, query, options, callback)\n 'drop', // drop(options, callback)\n 'dropIndex', // dropIndex(indexName, options, callback)\n 'dropIndexes', // dropIndexes(options, callback)\n 'estimatedDocumentCount', // estimatedDocumentCount(options, callback)\n 'find', // find(query, options, callback)\n 'findOne', // findOne(query, options, callback)\n 'findOneAndDelete', // findOneAndDelete(filter, options, callback)\n 'findOneAndReplace', // findOneAndReplace(filter, replacement, options, callback)\n 'findOneAndUpdate', // findOneAndUpdate(filter, update, options, callback)\n 'indexes', // indexes(options, callback)\n 'indexExists', // indexExists(indexes, options, callback)\n 'indexInformation', // indexInformation(options, callback)\n 'initializeOrderedBulkOp', // initializeOrderedBulkOp(options, callback)\n 'insertMany', // insertMany(docs, options, callback)\n 'insertOne', // insertOne(doc, options, callback)\n 'isCapped', // isCapped(options, callback)\n 'mapReduce', // mapReduce(map, reduce, options, callback)\n 'options', // options(options, callback)\n 'parallelCollectionScan', // parallelCollectionScan(options, callback)\n 'rename', // rename(newName, options, callback)\n 'replaceOne', // replaceOne(filter, doc, options, callback)\n 'stats', // stats(options, callback)\n 'updateMany', // updateMany(filter, update, options, callback)\n 'updateOne', // updateOne(filter, update, options, callback)\n] as const;\n\n// All of the operations above take `options` and `callback` as their final parameters, but some of them\n// take additional parameters as well. For those operations, this is a map of\n// { <operation name>: [<names of additional parameters>] }, as a way to know what to call the operation's\n// positional arguments when we add them to the span's `data` object later\nconst OPERATION_SIGNATURES: {\n [op in Operation]?: string[];\n} = {\n // aggregate intentionally not included because `pipeline` arguments are too complex to serialize well\n // see https://github.com/getsentry/sentry-javascript/pull/3102\n bulkWrite: ['operations'],\n countDocuments: ['query'],\n createIndex: ['fieldOrSpec'],\n createIndexes: ['indexSpecs'],\n deleteMany: ['filter'],\n deleteOne: ['filter'],\n distinct: ['key', 'query'],\n dropIndex: ['indexName'],\n find: ['query'],\n findOne: ['query'],\n findOneAndDelete: ['filter'],\n findOneAndReplace: ['filter', 'replacement'],\n findOneAndUpdate: ['filter', 'update'],\n indexExists: ['indexes'],\n insertMany: ['docs'],\n insertOne: ['doc'],\n mapReduce: ['map', 'reduce'],\n rename: ['newName'],\n replaceOne: ['filter', 'doc'],\n updateMany: ['filter', 'update'],\n updateOne: ['filter', 'update'],\n};\n\ninterface MongoCollection {\n collectionName: string;\n dbName: string;\n namespace: string;\n prototype: {\n [operation in Operation]: (...args: unknown[]) => unknown;\n };\n}\n\ninterface MongoOptions {\n operations?: Operation[];\n describeOperations?: boolean | Operation[];\n useMongoose?: boolean;\n}\n\n/** Tracing integration for mongo package */\nexport class Mongo implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Mongo';\n\n /**\n * @inheritDoc\n */\n public name: string = Mongo.id;\n\n private _operations: Operation[];\n private _describeOperations?: boolean | Operation[];\n private _useMongoose: boolean;\n\n /**\n * @inheritDoc\n */\n public constructor(options: MongoOptions = {}) {\n this._operations = Array.isArray(options.operations) ? options.operations : (OPERATIONS as unknown as Operation[]);\n this._describeOperations = 'describeOperations' in options ? options.describeOperations : true;\n this._useMongoose = !!options.useMongoose;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n const moduleName = this._useMongoose ? 'mongoose' : 'mongodb';\n const pkg = loadModule<{ Collection: MongoCollection }>(moduleName);\n\n if (!pkg) {\n logger.error(`Mongo Integration was unable to require \\`${moduleName}\\` package.`);\n return;\n }\n\n this._instrumentOperations(pkg.Collection, this._operations, getCurrentHub);\n }\n\n /**\n * Patches original collection methods\n */\n private _instrumentOperations(collection: MongoCollection, operations: Operation[], getCurrentHub: () => Hub): void {\n operations.forEach((operation: Operation) => this._patchOperation(collection, operation, getCurrentHub));\n }\n\n /**\n * Patches original collection to utilize our tracing functionality\n */\n private _patchOperation(collection: MongoCollection, operation: Operation, getCurrentHub: () => Hub): void {\n if (!(operation in collection.prototype)) return;\n\n const getSpanContext = this._getSpanContextFromOperationArguments.bind(this);\n\n fill(collection.prototype, operation, function (orig: () => void | Promise<unknown>) {\n return function (this: unknown, ...args: unknown[]) {\n const lastArg = args[args.length - 1];\n const scope = getCurrentHub().getScope();\n const parentSpan = scope?.getSpan();\n\n // Check if the operation was passed a callback. (mapReduce requires a different check, as\n // its (non-callback) arguments can also be functions.)\n if (typeof lastArg !== 'function' || (operation === 'mapReduce' && args.length === 2)) {\n const span = parentSpan?.startChild(getSpanContext(this, operation, args));\n const maybePromise = orig.call(this, ...args) as Promise<unknown>;\n\n if (isThenable(maybePromise)) {\n return maybePromise.then((res: unknown) => {\n span?.finish();\n return res;\n });\n } else {\n span?.finish();\n return maybePromise;\n }\n }\n\n const span = parentSpan?.startChild(getSpanContext(this, operation, args.slice(0, -1)));\n return orig.call(this, ...args.slice(0, -1), function (err: Error, result: unknown) {\n span?.finish();\n lastArg(err, result);\n });\n };\n });\n }\n\n /**\n * Form a SpanContext based on the user input to a given operation.\n */\n private _getSpanContextFromOperationArguments(\n collection: MongoCollection,\n operation: Operation,\n args: unknown[],\n ): SpanContext {\n const data: { [key: string]: string } = {\n collectionName: collection.collectionName,\n dbName: collection.dbName,\n namespace: collection.namespace,\n };\n const spanContext: SpanContext = {\n op: 'db',\n description: operation,\n data,\n };\n\n // If the operation takes no arguments besides `options` and `callback`, or if argument\n // collection is disabled for this operation, just return early.\n const signature = OPERATION_SIGNATURES[operation];\n const shouldDescribe = Array.isArray(this._describeOperations)\n ? this._describeOperations.includes(operation)\n : this._describeOperations;\n\n if (!signature || !shouldDescribe) {\n return spanContext;\n }\n\n try {\n // Special case for `mapReduce`, as the only one accepting functions as arguments.\n if (operation === 'mapReduce') {\n const [map, reduce] = args as { name?: string }[];\n data[signature[0]] = typeof map === 'string' ? map : map.name || '<anonymous>';\n data[signature[1]] = typeof reduce === 'string' ? reduce : reduce.name || '<anonymous>';\n } else {\n for (let i = 0; i < signature.length; i++) {\n data[signature[i]] = JSON.stringify(args[i]);\n }\n }\n } catch (_oO) {\n // no-empty\n }\n\n return spanContext;\n }\n}\n","import { getGlobalObject, logger } from '@sentry/utils';\n\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from '../constants';\nimport { IdleTransaction } from '../idletransaction';\nimport { SpanStatusType } from '../span';\nimport { getActiveTransaction } from '../utils';\n\nconst global = getGlobalObject<Window>();\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection(): void {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n const activeTransaction = getActiveTransaction() as IdleTransaction;\n if (global.document.hidden && activeTransaction) {\n const statusType: SpanStatusType = 'cancelled';\n\n logger.log(\n `[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`,\n );\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(statusType);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[2]);\n activeTransaction.finish();\n }\n });\n } else {\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Metric, ReportHandler } from '../types';\n\nexport const bindReporter = (\n callback: ReportHandler,\n metric: Metric,\n reportAllChanges?: boolean,\n): ((forceReport?: boolean) => void) => {\n let prevValue: number;\n return (forceReport?: boolean) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n metric.delta = metric.value - (prevValue || 0);\n\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (metric.delta || prevValue === undefined) {\n prevValue = metric.value;\n callback(metric);\n }\n }\n }\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Metric } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\n\nexport const initMetric = (name: Metric['name'], value?: number): Metric => {\n return {\n name,\n value: value ?? -1,\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = (): string => {\n return `v2-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface PerformanceEntryHandler {\n (entry: PerformanceEntry): void;\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = (type: string, callback: PerformanceEntryHandler): PerformanceObserver | undefined => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n // More extensive feature detect needed for Firefox due to:\n // https://github.com/GoogleChrome/web-vitals/issues/142\n if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n return;\n }\n\n const po: PerformanceObserver = new PerformanceObserver(l => l.getEntries().map(callback));\n\n po.observe({ type, buffered: true });\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobalObject } from '@sentry/utils';\n\nexport interface OnHiddenCallback {\n (event: Event): void;\n}\n\nexport const onHidden = (cb: OnHiddenCallback, once?: boolean): void => {\n const onHiddenOrPageHide = (event: Event): void => {\n if (event.type === 'pagehide' || getGlobalObject<Window>().document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobalObject } from '@sentry/utils';\n\nimport { onHidden } from './onHidden';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = (): number => {\n return getGlobalObject<Window>().document.visibilityState === 'hidden' ? 0 : Infinity;\n};\n\nconst trackChanges = (): void => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nexport const getVisibilityWatcher = (): {\n readonly firstHiddenTime: number;\n} => {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { ReportHandler } from './types';\n\n// https://wicg.github.io/largest-contentful-paint/#sec-largest-contentful-paint-interface\nexport interface LargestContentfulPaint extends PerformanceEntry {\n renderTime: DOMHighResTimeStamp;\n loadTime: DOMHighResTimeStamp;\n size: number;\n id: string;\n url: string;\n element?: Element;\n toJSON(): Record<string, string>;\n}\n\nconst reportedMetricIDs: Record<string, boolean> = {};\n\nexport const getLCP = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('LCP');\n let report: ReturnType<typeof bindReporter>;\n\n const entryHandler = (entry: PerformanceEntry): void => {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n const value = entry.startTime;\n\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries.push(entry);\n }\n\n if (report) {\n report();\n }\n };\n\n const po = observe('largest-contentful-paint', entryHandler);\n\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n const stopListening = (): void => {\n if (!reportedMetricIDs[metric.id]) {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(type => {\n addEventListener(type, stopListening, { once: true, capture: true });\n });\n\n onHidden(stopListening, true);\n }\n};\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Measurements, SpanContext } from '@sentry/types';\nimport { browserPerformanceTimeOrigin, getGlobalObject, htmlTreeAsString, isNodeEnv, logger } from '@sentry/utils';\n\nimport { Span } from '../span';\nimport { Transaction } from '../transaction';\nimport { msToSec } from '../utils';\nimport { getCLS, LayoutShift } from './web-vitals/getCLS';\nimport { getFID } from './web-vitals/getFID';\nimport { getLCP, LargestContentfulPaint } from './web-vitals/getLCP';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher';\nimport { NavigatorDeviceMemory, NavigatorNetworkInformation } from './web-vitals/types';\n\nconst global = getGlobalObject<Window>();\n\n/** Class tracking metrics */\nexport class MetricsInstrumentation {\n private _measurements: Measurements = {};\n\n private _performanceCursor: number = 0;\n private _lcpEntry: LargestContentfulPaint | undefined;\n private _clsEntry: LayoutShift | undefined;\n\n public constructor(private _reportAllChanges: boolean = false) {\n if (!isNodeEnv() && global && global.performance && global.document) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n\n this._trackCLS();\n this._trackLCP();\n this._trackFID();\n }\n }\n\n /** Add performance related spans to a transaction */\n public addPerformanceEntries(transaction: Transaction): void {\n if (!global || !global.performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n logger.log('[Tracing] Adding & adjusting spans using Performance API');\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n let responseStartTimestamp: number | undefined;\n let requestStartTimestamp: number | undefined;\n\n global.performance\n .getEntries()\n .slice(this._performanceCursor)\n .forEach((entry: Record<string, any>) => {\n const startTime = msToSec(entry.startTime as number);\n const duration = msToSec(entry.duration as number);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart as number);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart as number);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n const startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n // capture web vitals\n\n const firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FP');\n this._measurements['fp'] = { value: entry.startTime };\n this._measurements['mark.fp'] = { value: startTimestamp };\n }\n\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FCP');\n this._measurements['fcp'] = { value: entry.startTime };\n this._measurements['mark.fcp'] = { value: startTimestamp };\n }\n\n break;\n }\n case 'resource': {\n const resourceName = (entry.name as string).replace(global.location.origin, '');\n addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n\n this._trackNavigator(transaction);\n\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // normalize applicable web vital values to be relative to transaction.startTimestamp\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n logger.log('[Measurements] Adding TTFB');\n this._measurements['ttfb'] = { value: (responseStartTimestamp - transaction.startTimestamp) * 1000 };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n this._measurements['ttfb.requestTime'] = { value: (responseStartTimestamp - requestStartTimestamp) * 1000 };\n }\n }\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!this._measurements[name] || timeOrigin >= transaction.startTimestamp) {\n return;\n }\n\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n\n const oldValue = this._measurements[name].value;\n const measurementTimestamp = timeOrigin + msToSec(oldValue);\n // normalizedValue should be in milliseconds\n const normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n\n const delta = normalizedValue - oldValue;\n logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n\n this._measurements[name].value = normalizedValue;\n });\n\n if (this._measurements['mark.fid'] && this._measurements['fid']) {\n // create span for FID\n\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: this._measurements['mark.fid'].value + msToSec(this._measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: this._measurements['mark.fid'].value,\n });\n }\n\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in this._measurements)) {\n delete this._measurements.cls;\n }\n\n transaction.setMeasurements(this._measurements);\n tagMetricInfo(transaction, this._lcpEntry, this._clsEntry);\n transaction.setTag('sentry_reportAllChanges', this._reportAllChanges);\n }\n }\n\n /**\n * Capture the information of the user agent.\n */\n private _trackNavigator(transaction: Transaction): void {\n const navigator = global.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n const connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n\n if (isMeasurementValue(connection.rtt)) {\n this._measurements['connection.rtt'] = { value: connection.rtt as number };\n }\n\n if (isMeasurementValue(connection.downlink)) {\n this._measurements['connection.downlink'] = { value: connection.downlink as number };\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', String(navigator.deviceMemory));\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n }\n\n /** Starts tracking the Cumulative Layout Shift on the current page. */\n private _trackCLS(): void {\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n logger.log('[Measurements] Adding CLS');\n this._measurements['cls'] = { value: metric.value };\n this._clsEntry = entry as LayoutShift;\n });\n }\n\n /** Starts tracking the Largest Contentful Paint on the current page. */\n private _trackLCP(): void {\n getLCP(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime as number);\n logger.log('[Measurements] Adding LCP');\n this._measurements['lcp'] = { value: metric.value };\n this._measurements['mark.lcp'] = { value: timeOrigin + startTime };\n this._lcpEntry = entry as LargestContentfulPaint;\n }, this._reportAllChanges);\n }\n\n /** Starts tracking the First Input Delay on the current page. */\n private _trackFID(): void {\n getFID(metric => {\n const entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n const timeOrigin = msToSec(browserPerformanceTimeOrigin as number);\n const startTime = msToSec(entry.startTime as number);\n logger.log('[Measurements] Adding FID');\n this._measurements['fid'] = { value: metric.value };\n this._measurements['mark.fid'] = { value: timeOrigin + startTime };\n });\n }\n}\n\n/** Instrument navigation entries */\nfunction addNavigationSpans(transaction: Transaction, entry: Record<string, any>, timeOrigin: number): void {\n ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {\n addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);\n });\n addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');\n addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');\n addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');\n addRequest(transaction, entry, timeOrigin);\n}\n\n/** Create measure related spans */\nfunction addMeasureSpans(\n transaction: Transaction,\n entry: Record<string, any>,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): number {\n const measureStartTimestamp = timeOrigin + startTime;\n const measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name as string,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType as string,\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\nexport interface ResourceEntry extends Record<string, unknown> {\n initiatorType?: string;\n transferSize?: number;\n encodedBodySize?: number;\n decodedBodySize?: number;\n}\n\n/** Create resource-related spans */\nexport function addResourceSpans(\n transaction: Transaction,\n entry: ResourceEntry,\n resourceName: string,\n startTime: number,\n duration: number,\n timeOrigin: number,\n): void {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return;\n }\n\n const data: Record<string, any> = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n\n const startTimestamp = timeOrigin + startTime;\n const endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource',\n startTimestamp,\n data,\n });\n}\n\n/** Create performance navigation related spans */\nfunction addPerformanceNavigationTiming(\n transaction: Transaction,\n entry: Record<string, any>,\n event: string,\n timeOrigin: number,\n description?: string,\n eventEnd?: string,\n): void {\n const end = eventEnd ? (entry[eventEnd] as number | undefined) : (entry[`${event}End`] as number | undefined);\n const start = entry[`${event}Start`] as number | undefined;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: description ?? event,\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\nfunction addRequest(transaction: Transaction, entry: Record<string, any>, timeOrigin: number): void {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart as number),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd as number),\n });\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function _startChild(transaction: Transaction, { startTimestamp, ...ctx }: SpanContext): Span {\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value: any): boolean {\n return typeof value === 'number' && isFinite(value);\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction tagMetricInfo(\n transaction: Transaction,\n lcpEntry: MetricsInstrumentation['_lcpEntry'],\n clsEntry: MetricsInstrumentation['_clsEntry'],\n): void {\n if (lcpEntry) {\n logger.log('[Measurements] Adding LCP Data');\n\n // Capture Properties of the LCP element that contributes to the LCP.\n\n if (lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(lcpEntry.element));\n }\n\n if (lcpEntry.id) {\n transaction.setTag('lcp.id', lcpEntry.id);\n }\n\n if (lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', lcpEntry.url.trim().slice(0, 200));\n }\n\n transaction.setTag('lcp.size', lcpEntry.size);\n }\n\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (clsEntry && clsEntry.sources) {\n logger.log('[Measurements] Adding CLS Data');\n clsEntry.sources.forEach((source, index) =>\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { ReportHandler } from './types';\n\n// https://wicg.github.io/layout-instability/#sec-layout-shift\nexport interface LayoutShift extends PerformanceEntry {\n value: number;\n hadRecentInput: boolean;\n sources: Array<LayoutShiftAttribution>;\n toJSON(): Record<string, unknown>;\n}\n\nexport interface LayoutShiftAttribution {\n node?: Node;\n previousRect: DOMRectReadOnly;\n currentRect: DOMRectReadOnly;\n}\n\nexport const getCLS = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const metric = initMetric('CLS', 0);\n let report: ReturnType<typeof bindReporter>;\n\n let sessionValue = 0;\n let sessionEntries: PerformanceEntry[] = [];\n\n const entryHandler = (entry: LayoutShift): void => {\n // Only count layout shifts without recent user input.\n // TODO: Figure out why entry can be undefined\n if (entry && !entry.hadRecentInput) {\n const firstSessionEntry = sessionEntries[0];\n const lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (\n sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000\n ) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n } else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n };\n\n const po = observe('layout-shift', entryHandler as PerformanceEntryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n onHidden(() => {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n report(true);\n });\n }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe, PerformanceEntryHandler } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { PerformanceEventTiming, ReportHandler } from './types';\n\nexport const getFID = (onReport: ReportHandler, reportAllChanges?: boolean): void => {\n const visibilityWatcher = getVisibilityWatcher();\n const metric = initMetric('FID');\n let report: ReturnType<typeof bindReporter>;\n\n const entryHandler = (entry: PerformanceEventTiming): void => {\n // Only report if the page wasn't hidden prior to the first input.\n if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n const po = observe('first-input', entryHandler as PerformanceEntryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(() => {\n po.takeRecords().map(entryHandler as PerformanceEntryHandler);\n po.disconnect();\n }, true);\n }\n};\n","import { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\n\nimport { Span } from '../span';\nimport { getActiveTransaction, hasTracingEnabled } from '../utils';\n\nexport const DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n /**\n * List of strings / regex where the integration should create Spans out of. Additionally this will be used\n * to define which outgoing requests the `sentry-trace` header will be attached to.\n *\n * Default: ['localhost', /^\\//] {@see DEFAULT_TRACING_ORIGINS}\n */\n tracingOrigins: Array<string | RegExp>;\n\n /**\n * Flag to disable patching all together for fetch requests.\n *\n * Default: true\n */\n traceFetch: boolean;\n\n /**\n * Flag to disable patching all together for xhr requests.\n *\n * Default: true\n */\n traceXHR: boolean;\n\n /**\n * This function will be called before creating a span for a request with the given url.\n * Return false if you don't want a span for the given url.\n *\n * By default it uses the `tracingOrigins` options as a url match.\n */\n shouldCreateSpanForRequest?(url: string): boolean;\n}\n\n/** Data returned from fetch callback */\nexport interface FetchData {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any[]; // the arguments passed to the fetch call itself\n fetchData?: {\n method: string;\n url: string;\n // span_id\n __span?: string;\n };\n\n // TODO Should this be unknown instead? If we vendor types, make it a Response\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n response?: any;\n error?: unknown;\n\n startTimestamp: number;\n endTimestamp?: number;\n}\n\n/** Data returned from XHR request */\nexport interface XHRData {\n xhr?: {\n __sentry_xhr__?: {\n method: string;\n url: string;\n status_code: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: Record<string, any>;\n };\n __sentry_xhr_span_id__?: string;\n setRequestHeader?: (key: string, val: string) => void;\n __sentry_own_request__?: boolean;\n };\n startTimestamp: number;\n endTimestamp?: number;\n}\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options?: Partial<RequestInstrumentationOptions>): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest } = {\n ...defaultRequestInstrumentationOptions,\n ..._options,\n };\n\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n const urlMap: Record<string, boolean> = {};\n\n const defaultShouldCreateSpan = (url: string): boolean => {\n if (urlMap[url]) {\n return urlMap[url];\n }\n const origins = tracingOrigins;\n urlMap[url] =\n origins.some((origin: string | RegExp) => isMatchingPattern(url, origin)) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\n\n // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n let shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = (url: string) => {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n\n const spans: Record<string, Span> = {};\n\n if (traceFetch) {\n addInstrumentationHandler('fetch', (handlerData: FetchData) => {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n\n if (traceXHR) {\n addInstrumentationHandler('xhr', (handlerData: XHRData) => {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n}\n\n/**\n * Create and track fetch request spans\n */\nexport function fetchCallback(\n handlerData: FetchData,\n shouldCreateSpan: (url: string) => boolean,\n spans: Record<string, Span>,\n): void {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n\n if (handlerData.endTimestamp) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const span = activeTransaction.startChild({\n data: {\n ...handlerData.fetchData,\n type: 'fetch',\n },\n description: `${handlerData.fetchData.method} ${handlerData.fetchData.url}`,\n op: 'http.client',\n });\n\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n\n const request = (handlerData.args[0] = handlerData.args[0] as string | Request);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const options = (handlerData.args[1] = (handlerData.args[1] as { [key: string]: any }) || {});\n let headers = options.headers;\n if (isInstanceOf(request, Request)) {\n headers = (request as Request).headers;\n }\n if (headers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (typeof headers.append === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n headers.append('sentry-trace', span.toTraceparent());\n } else if (Array.isArray(headers)) {\n headers = [...headers, ['sentry-trace', span.toTraceparent()]];\n } else {\n headers = { ...headers, 'sentry-trace': span.toTraceparent() };\n }\n } else {\n headers = { 'sentry-trace': span.toTraceparent() };\n }\n options.headers = headers;\n }\n}\n\n/**\n * Create and track xhr request spans\n */\nexport function xhrCallback(\n handlerData: XHRData,\n shouldCreateSpan: (url: string) => boolean,\n spans: Record<string, Span>,\n): void {\n if (\n !hasTracingEnabled() ||\n (handlerData.xhr && handlerData.xhr.__sentry_own_request__) ||\n !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))\n ) {\n return;\n }\n\n const xhr = handlerData.xhr.__sentry_xhr__;\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp) {\n const spanId = handlerData.xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n const span = spans[spanId];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n return;\n }\n\n // if not, create a new span to track it\n const activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n const span = activeTransaction.startChild({\n data: {\n ...xhr.data,\n type: 'xhr',\n method: xhr.method,\n url: xhr.url,\n },\n description: `${xhr.method} ${xhr.url}`,\n op: 'http.client',\n });\n\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n","import { Transaction, TransactionContext } from '@sentry/types';\nimport { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\n\nconst global = getGlobalObject<Window>();\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults<T extends Transaction>(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad: boolean = true,\n startTransactionOnLocationChange: boolean = true,\n): void {\n if (!global || !global.location) {\n logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl: string | undefined = global.location.href;\n\n let activeTransaction: T | undefined;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n }\n\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler('history', ({ to, from }: { to: string; from?: string }) => {\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n logger.log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n }\n });\n }\n}\n","import { Hub } from '@sentry/hub';\nimport { EventProcessor, Integration, Transaction, TransactionContext } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT, IdleTransaction } from '../idletransaction';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport {\n defaultRequestInstrumentationOptions,\n instrumentOutgoingRequests,\n RequestInstrumentationOptions,\n} from './request';\nimport { instrumentRoutingWithDefaults } from './router';\n\nexport const DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions extends RequestInstrumentationOptions {\n /**\n * The time to wait in ms until the transaction will be finished. The transaction will use the end timestamp of\n * the last finished span as the endtime for the transaction.\n * Time is in ms.\n *\n * Default: 1000\n */\n idleTimeout: number;\n\n /**\n * Flag to enable/disable creation of `navigation` transaction on history changes.\n *\n * Default: true\n */\n startTransactionOnLocationChange: boolean;\n\n /**\n * Flag to enable/disable creation of `pageload` transaction on first pageload.\n *\n * Default: true\n */\n startTransactionOnPageLoad: boolean;\n\n /**\n * The maximum duration of a transaction before it will be marked as \"deadline_exceeded\".\n * If you never want to mark a transaction set it to 0.\n * Time is in seconds.\n *\n * Default: 600\n */\n maxTransactionDuration: number;\n\n /**\n * Flag Transactions where tabs moved to background with \"cancelled\". Browser background tab timing is\n * not suited towards doing precise measurements of operations. By default, we recommend that this option\n * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n *\n * Default: true\n */\n markBackgroundTransactions: boolean;\n\n /**\n * _metricOptions allows the user to send options to change how metrics are collected.\n *\n * _metricOptions is currently experimental.\n *\n * Default: undefined\n */\n _metricOptions?: Partial<{ _reportAllChanges: boolean }>;\n\n /**\n * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction\n * context data, or drop the transaction entirely (by setting `sampled = false` in the context).\n *\n * Note: For legacy reasons, transactions can also be dropped by returning `undefined`.\n *\n * @param context: The context data which will be passed to `startTransaction` by default\n *\n * @returns A (potentially) modified context object, with `sampled = false` if the transaction should be dropped.\n */\n beforeNavigate?(context: TransactionContext): TransactionContext | undefined;\n\n /**\n * Instrumentation that creates routing change transactions. By default creates\n * pageload and navigation transactions.\n */\n routingInstrumentation<T extends Transaction>(\n customStartTransaction: (context: TransactionContext) => T | undefined,\n startTransactionOnPageLoad?: boolean,\n startTransactionOnLocationChange?: boolean,\n ): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS = {\n idleTimeout: DEFAULT_IDLE_TIMEOUT,\n markBackgroundTransactions: true,\n maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nexport class BrowserTracing implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'BrowserTracing';\n\n /** Browser Tracing integration options */\n public options: BrowserTracingOptions;\n\n /**\n * @inheritDoc\n */\n public name: string = BrowserTracing.id;\n\n private _getCurrentHub?: () => Hub;\n\n private readonly _metrics: MetricsInstrumentation;\n\n private readonly _emitOptionsWarning: boolean = false;\n\n /** Store configured idle timeout so that it can be added as a tag to transactions */\n private _configuredIdleTimeout: BrowserTracingOptions['idleTimeout'] | undefined = undefined;\n\n public constructor(_options?: Partial<BrowserTracingOptions>) {\n let tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options) {\n this._configuredIdleTimeout = _options.idleTimeout;\n if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n } else {\n this._emitOptionsWarning = true;\n }\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n tracingOrigins,\n };\n\n const { _metricOptions } = this.options;\n this._metrics = new MetricsInstrumentation(_metricOptions && _metricOptions._reportAllChanges);\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(_: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n this._getCurrentHub = getCurrentHub;\n\n if (this._emitOptionsWarning) {\n logger.warn(\n '[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.',\n );\n logger.warn(\n `[Tracing] We added a reasonable default for you: ${defaultRequestInstrumentationOptions.tracingOrigins}`,\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n tracingOrigins,\n shouldCreateSpanForRequest,\n } = this.options;\n\n instrumentRouting(\n (context: TransactionContext) => this._createRouteTransaction(context),\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n instrumentOutgoingRequests({ traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest });\n }\n\n /** Create routing idle transaction. */\n private _createRouteTransaction(context: TransactionContext): Transaction | undefined {\n if (!this._getCurrentHub) {\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeNavigate, idleTimeout, maxTransactionDuration } = this.options;\n\n const parentContextFromHeader = context.op === 'pageload' ? getHeaderContext() : undefined;\n\n const expandedContext = {\n ...context,\n ...parentContextFromHeader,\n trimEnd: true,\n };\n const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n const finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n if (finalContext.sampled === false) {\n logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n const hub = this._getCurrentHub();\n const { location } = getGlobalObject() as WindowOrWorkerGlobalScope & { location: Location };\n\n const idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n true,\n { location }, // for use in the tracesSampler\n );\n idleTransaction.registerBeforeFinishCallback((transaction, endTimestamp) => {\n this._metrics.addPerformanceEntries(transaction);\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n\n idleTransaction.setTag('idleTimeout', this._configuredIdleTimeout);\n\n return idleTransaction as Transaction;\n }\n}\n\n/**\n * Gets transaction context from a sentry-trace meta.\n *\n * @returns Transaction context data from the header or undefined if there's no header or the header is malformed\n */\nexport function getHeaderContext(): Partial<TransactionContext> | undefined {\n const header = getMetaContent('sentry-trace');\n if (header) {\n return extractTraceparentData(header);\n }\n\n return undefined;\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | null {\n const el = getGlobalObject<Window>().document.querySelector(`meta[name=${metaName}]`);\n return el ? el.getAttribute('content') : null;\n}\n\n/** Adjusts transaction value based on max transaction duration */\nfunction adjustTransactionDuration(maxDuration: number, transaction: IdleTransaction, endTimestamp: number): void {\n const diff = endTimestamp - transaction.startTimestamp;\n const isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n if (isOutdatedTransaction) {\n transaction.setStatus('deadline_exceeded');\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\n\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n}\n\nfunction renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList.displayName).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n}\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/types';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n\n if (!errorVal) {\n return null;\n }\n\n var lineCoordinates = [];\n var lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound); // the right line of |--|\n\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n }); // the middle line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n }); // the left line of |--|\n\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n\n var _xMin = xMid - width;\n\n var _xMax = xMid + width;\n\n var _yMin = _scale(value - lowBound);\n\n var _yMax = _scale(value + highBound); // the top line\n\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n }); // the middle line\n\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n }); // the bottom line\n\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { ErrorBar } from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps } from '../util/types';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n _inherits(Line, _PureComponent);\n\n var _super = _createSuper(Line);\n\n function Line() {\n var _this;\n\n _classCallCheck(this, Line);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.mainCurve = void 0;\n _this.state = {\n isAnimationFinished: true,\n totalLength: 0\n };\n\n _this.getStrokeDasharray = function (length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n\n for (var i = 0, sum = 0;; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n };\n\n _this.id = uniqueId('recharts-line-');\n\n _this.pathRef = function (node) {\n _this.mainCurve = node;\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Line, [{\n key: \"componentDidMount\",\n value:\n /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props = this.props,\n points = _this$props.points,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n layout = _this$props.layout,\n children = _this$props.children;\n var errorBarItems = findAllByType(children, ErrorBar.displayName);\n\n if (!errorBarItems) {\n return null;\n }\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n // eslint-disable-next-line react/no-array-index-key\n key: \"bar-\".concat(i),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var lineProps = filterProps(this.props);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, [\"type\", \"layout\", \"connectNulls\", \"ref\"]);\n\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n } // magic number of faking previous x and y location\n\n\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = \"\".concat(curLength, \"px \").concat(totalLength - curLength, \"px\");\n }\n\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-line', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(), (hasSinglePoint || dot) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = classNames('recharts-line-dot', option ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n\n return dotItem;\n }\n }]);\n\n return Line;\n}(PureComponent);\nLine.displayName = 'Line';\nLine.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false\n};\n\nLine.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: _isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: _isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n};","import { useRef, useCallback, } from \"react\";\n/**\n * useObserver\n * @param callback IntersectionObserverCallback\n * @param options IntersectionObserverInit\n * @param externalState React.ComponentState[]\n */\nconst useObserver = (callback, { root, rootMargin, threshold } = {}, externalState = []) => {\n const target = useRef(null);\n const observer = useRef(null);\n const setTarget = useCallback((node) => {\n if (target.current && observer.current) {\n observer.current.unobserve(target.current);\n observer.current.disconnect();\n observer.current = null;\n }\n if (node) {\n observer.current = new IntersectionObserver(callback, { root, rootMargin, threshold });\n observer.current.observe(node);\n target.current = node;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [target, root, rootMargin, JSON.stringify(threshold), ...externalState]);\n return setTarget;\n};\nexport default useObserver;\n","/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { WrappedFunction } from '@sentry/types';\n\nimport { isDebugBuild } from './env';\nimport { getGlobalObject } from './global';\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\n\nconst global = getGlobalObject<Window>();\n\ntype InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'history'\n | 'sentry'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\ntype InstrumentHandlerCallback = (data: any) => void;\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Instruments given API */\nfunction instrument(type: InstrumentHandlerType): void {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type: InstrumentHandlerType, callback: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n (handlers[type] as InstrumentHandlerCallback[]).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type: InstrumentHandlerType, data: any): void {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (const handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n if (isDebugBuild()) {\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole(): void {\n if (!('console' in global)) {\n return;\n }\n\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level: string): void {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod: () => any): Function {\n return function (...args: any[]): void {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch(): void {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n const handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(\n (response: Response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\ntype XHRSendInput = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\n/** JSDoc */\ninterface SentryWrappedXMLHttpRequest extends XMLHttpRequest {\n [key: string]: any;\n __sentry_xhr__?: {\n method?: string;\n url?: string;\n status_code?: number;\n body?: XHRSendInput;\n };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs: any[] = []): string {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs: any[] = []): string {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\n/** JSDoc */\nfunction instrumentXHR(): void {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n const xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const url = args[1];\n const xhrInfo: SentryWrappedXMLHttpRequest['__sentry_xhr__'] = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n const onreadystatechangeHandler = function (): void {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original: WrappedFunction): Function {\n return function (...readyStateArgs: any[]): void {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend: () => void): () => void {\n return function (this: SentryWrappedXMLHttpRequest, ...args: any[]): void {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref: string;\n\n/** JSDoc */\nfunction instrumentHistory(): void {\n if (!supportsHistory()) {\n return;\n }\n\n const oldOnPopState = global.onpopstate;\n global.onpopstate = function (this: WindowEventHandlers, ...args: any[]): any {\n const to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n const from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n return function (this: History, ...args: any[]): void {\n const url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n const from = lastHref;\n const to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nconst debounceDuration = 1000;\nlet debounceTimerID: number | undefined;\nlet lastCapturedEvent: Event | undefined;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous: Event | undefined, current: Event): boolean {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event: Event): boolean {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n const target = event.target as HTMLElement;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler: Function, globalListener: boolean = false): (event: Event) => void {\n return (event: Event): void => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n const name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\ntype AddEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n __sentry_instrumentation_handlers__?: {\n [key in 'click' | 'keypress']?: {\n handler?: Function;\n /** The number of custom listeners attached to this element */\n refCount: number;\n };\n };\n};\n\n/** JSDoc */\nfunction instrumentDOM(): void {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target: string) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = (global as any)[target] && (global as any)[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): AddEventListener {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n const handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n return function (\n this: Element,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n if (type === 'click' || type == 'keypress') {\n try {\n const el = this as InstrumentedElement;\n const handlers = el.__sentry_instrumentation_handlers__ || {};\n const handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler: OnErrorEventHandler = null;\n/** JSDoc */\nfunction instrumentError(): void {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg: any, url: any, line: any, column: any, error: any): boolean {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler: ((e: any) => void) | null = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e: any): boolean {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array<!Document>} */\n this._monitoringDocuments = [];\n /** @private @const {!Array<function()>} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array<Object>} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the <body>\n // or <html> element, update the intersection rect.\n // Note: <body> and <html> cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use <html>/<body> instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n return (\n containsDeep(rootDoc, target) &&\n (!this.root || rootDoc == target.ownerDocument)\n );\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n\n/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n // If the parent has element that is assigned through shadow root slot\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n}\n\n/**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\nfunction isDoc(node) {\n return node && node.nodeType === 9;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction Cg(a,b,c,d){var e=a.updateQueue;wg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=Zc(0);this.expirationTimes=Zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Zc(0);this.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.markCanisterIdAsFailed = exports.getCanisterId = exports.getRandomCanisterId = exports.getResult = exports.isProceedToAnalyticsReceiver = exports.isProceedToClientRegistry = void 0;\nvar agent_1 = require(\"@dfinity/agent\");\nvar coordinator_1 = require(\"./canisters/coordinator\");\nvar Storage_1 = require(\"./Storage\");\nvar utils_1 = require(\"./utils\");\nvar ClientRegistryService_1 = require(\"./ClientRegistryService\");\nvar SessionFacade_1 = require(\"./SessionFacade\");\nvar constants_1 = require(\"./canisters/constants\");\nvar isProceedToClientRegistry = function (obj) {\n return (0, utils_1.hasOwnProperty)(obj, \"clientRegistry\");\n};\nexports.isProceedToClientRegistry = isProceedToClientRegistry;\nvar isProceedToAnalyticsReceiver = function (obj) {\n return (0, utils_1.hasOwnProperty)(obj, \"analyticsReceiver\");\n};\nexports.isProceedToAnalyticsReceiver = isProceedToAnalyticsReceiver;\nvar currentSessionTopologyId;\nvar getResult = function (sdkVersion, sessionContext) { return __awaiter(void 0, void 0, void 0, function () {\n var canisterIds;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Storage_1.UGStorage.coordinator.getTopologyId()];\n case 1:\n currentSessionTopologyId = _a.sent();\n return [4 /*yield*/, Storage_1.UGStorage.coordinator.getCanisterIds()];\n case 2:\n canisterIds = _a.sent();\n if (canisterIds.length === 0) {\n canisterIds = Array.from(constants_1.coordinator_canister_ids);\n }\n if (canisterIds.length === 0) {\n (0, utils_1.warn)(\"no canisters\");\n return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n return [4 /*yield*/, getClientRegistry(sdkVersion, sessionContext, canisterIds)];\n case 3: return [2 /*return*/, _a.sent()];\n }\n });\n}); };\nexports.getResult = getResult;\nvar hello = function (sdkVersion, sessionContext, canisterId) { return __awaiter(void 0, void 0, void 0, function () {\n var actor, topologyId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n actor = (0, coordinator_1.createCanisterActor)(canisterId, new agent_1.AnonymousIdentity(), sessionContext.host);\n topologyId = currentSessionTopologyId;\n return [4 /*yield*/, actor.hello([sessionContext.clientPrincipal], sdkVersion, topologyId ? [topologyId] : [], sessionContext.apiKey)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n}); };\nvar getClientRegistry = function (sdkVersion, sessionContext, inProgressCanisterIds) { return __awaiter(void 0, void 0, void 0, function () {\n var canisterId, result, e_1, clientRegistry, clientRegistryPrincipal, analyticsReceiver, analyticsReceiverView, changeTopology, newTopologyId, newCoordinators, newCanisterIds, i, newCoordinatorData, coordinatorPrincipal, coordinatorMethodName, timeout, updatedInProgressCanisters;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n canisterId = (0, exports.getCanisterId)(inProgressCanisterIds);\n (0, utils_1.log)(\"using:\", { inProgressCanisterIds: inProgressCanisterIds, currentSessionTopologyId: currentSessionTopologyId, canisterId: canisterId });\n if (!canisterId) return [3 /*break*/, 6];\n result = void 0;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, hello(sdkVersion, sessionContext, canisterId)];\n case 2:\n result = _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n (0, utils_1.warn)(\"actor.hello\", e_1);\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n case 4:\n (0, utils_1.log)(\"actor.hello\", result);\n if ((0, utils_1.hasOwnProperty)(result, \"clientRegistry\")) {\n clientRegistry = result.clientRegistry;\n clientRegistryPrincipal = (0, utils_1.getSharedFunctionDataPrincipal)(clientRegistry.getAnalyticsReceiver);\n if (clientRegistryPrincipal) {\n return [2 /*return*/, (0, utils_1.createProceedResult)({ clientRegistry: { canisterPrincipal: clientRegistryPrincipal } })];\n }\n }\n else if ((0, utils_1.hasOwnProperty)(result, \"analyticsReceiver\")) {\n analyticsReceiver = result.analyticsReceiver;\n analyticsReceiverView = (0, ClientRegistryService_1.getAnalyticsReceiverData)(analyticsReceiver);\n if (analyticsReceiverView) {\n return [2 /*return*/, (0, utils_1.createProceedResult)({ analyticsReceiver: { view: analyticsReceiverView } })];\n }\n }\n else if ((0, utils_1.hasOwnProperty)(result, \"collectSuccess\")) {\n return [2 /*return*/, (0, utils_1.createOkResult)(\"collectSuccess\")];\n }\n else if ((0, utils_1.hasOwnProperty)(result, \"changeTopology\")) {\n changeTopology = result.changeTopology;\n newTopologyId = changeTopology.topologyId;\n newCoordinators = changeTopology.coordinators;\n newCanisterIds = [];\n for (i = 0; i < newCoordinators.length; i++) {\n newCoordinatorData = (0, utils_1.getSharedFunctionData)(newCoordinators[i]);\n if (newCoordinatorData) {\n coordinatorPrincipal = newCoordinatorData[0], coordinatorMethodName = newCoordinatorData[1];\n if (coordinatorMethodName == \"hello\") {\n newCanisterIds.push(coordinatorPrincipal.toText());\n }\n }\n }\n if (newCanisterIds.length > 0) {\n currentSessionTopologyId = newTopologyId;\n Storage_1.UGStorage.coordinator.setCanisterIds(newCanisterIds);\n Storage_1.UGStorage.coordinator.setTopologyId(newTopologyId);\n }\n return [2 /*return*/, (0, utils_1.createErrResult)(\"changeTopology\")];\n }\n else if ((0, utils_1.hasOwnProperty)(result, \"invalidClient\")) {\n return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n timeout = SessionFacade_1.timeoutBetweenRetriesSec * 1000;\n (0, utils_1.log)(\"sleep for\", timeout, \"ms\");\n return [4 /*yield*/, (0, utils_1.delayPromise)(timeout)];\n case 5:\n _a.sent();\n updatedInProgressCanisters = (0, exports.markCanisterIdAsFailed)(canisterId, inProgressCanisterIds);\n return [2 /*return*/, getClientRegistry(sdkVersion, sessionContext, updatedInProgressCanisters)];\n case 6: return [2 /*return*/, (0, utils_1.createErrRetry)()];\n }\n });\n}); };\nvar getRandomCanisterId = function (array) {\n var index = Math.floor(Math.random() * array.length);\n return array[index];\n};\nexports.getRandomCanisterId = getRandomCanisterId;\nvar getCanisterId = function (inProgressCanisterIds) {\n if (inProgressCanisterIds.length == 0) {\n return undefined;\n }\n return (0, exports.getRandomCanisterId)(inProgressCanisterIds);\n};\nexports.getCanisterId = getCanisterId;\nvar markCanisterIdAsFailed = function (failedCanisterId, inProgressCanisterIds) {\n return inProgressCanisterIds.filter(function (value) { return value !== failedCanisterId; });\n};\nexports.markCanisterIdAsFailed = markCanisterIdAsFailed;\n//# sourceMappingURL=CoordinatorService.js.map","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst Decoder = require('./decoder')\nconst utils = require('./utils')\n\n/**\n * Output the diagnostic format from a stream of CBOR bytes.\n *\n */\nclass Diagnose extends Decoder {\n createTag (tagNumber, value) {\n return `${tagNumber}(${value})`\n }\n\n createInt (val) {\n return super.createInt(val).toString()\n }\n\n createInt32 (f, g) {\n return super.createInt32(f, g).toString()\n }\n\n createInt64 (f1, f2, g1, g2) {\n return super.createInt64(f1, f2, g1, g2).toString()\n }\n\n createInt32Neg (f, g) {\n return super.createInt32Neg(f, g).toString()\n }\n\n createInt64Neg (f1, f2, g1, g2) {\n return super.createInt64Neg(f1, f2, g1, g2).toString()\n }\n\n createTrue () {\n return 'true'\n }\n\n createFalse () {\n return 'false'\n }\n\n createFloat (val) {\n const fl = super.createFloat(val)\n if (utils.isNegativeZero(val)) {\n return '-0_1'\n }\n\n return `${fl}_1`\n }\n\n createFloatSingle (a, b, c, d) {\n const fl = super.createFloatSingle(a, b, c, d)\n return `${fl}_2`\n }\n\n createFloatDouble (a, b, c, d, e, f, g, h) {\n const fl = super.createFloatDouble(a, b, c, d, e, f, g, h)\n return `${fl}_3`\n }\n\n createByteString (raw, len) {\n const val = raw.join(', ')\n\n if (len === -1) {\n return `(_ ${val})`\n }\n return `h'${val}`\n }\n\n createByteStringFromHeap (start, end) {\n const val = (Buffer.from(\n super.createByteStringFromHeap(start, end)\n )).toString('hex')\n\n return `h'${val}'`\n }\n\n createInfinity () {\n return 'Infinity_1'\n }\n\n createInfinityNeg () {\n return '-Infinity_1'\n }\n\n createNaN () {\n return 'NaN_1'\n }\n\n createNaNNeg () {\n return '-NaN_1'\n }\n\n createNull () {\n return 'null'\n }\n\n createUndefined () {\n return 'undefined'\n }\n\n createSimpleUnassigned (val) {\n return `simple(${val})`\n }\n\n createArray (arr, len) {\n const val = super.createArray(arr, len)\n\n if (len === -1) {\n // indefinite\n return `[_ ${val.join(', ')}]`\n }\n\n return `[${val.join(', ')}]`\n }\n\n createMap (map, len) {\n const val = super.createMap(map)\n const list = Array.from(val.keys())\n .reduce(collectObject(val), '')\n\n if (len === -1) {\n return `{_ ${list}}`\n }\n\n return `{${list}}`\n }\n\n createObject (obj, len) {\n const val = super.createObject(obj)\n const map = Object.keys(val)\n .reduce(collectObject(val), '')\n\n if (len === -1) {\n return `{_ ${map}}`\n }\n\n return `{${map}}`\n }\n\n createUtf8String (raw, len) {\n const val = raw.join(', ')\n\n if (len === -1) {\n return `(_ ${val})`\n }\n\n return `\"${val}\"`\n }\n\n createUtf8StringFromHeap (start, end) {\n const val = (Buffer.from(\n super.createUtf8StringFromHeap(start, end)\n )).toString('utf8')\n\n return `\"${val}\"`\n }\n\n static diagnose (input, enc) {\n if (typeof input === 'string') {\n input = Buffer.from(input, enc || 'hex')\n }\n\n const dec = new Diagnose()\n return dec.decodeFirst(input)\n }\n}\n\nmodule.exports = Diagnose\n\nfunction collectObject (val) {\n return (acc, key) => {\n if (acc) {\n return `${acc}, ${key}: ${val[key]}`\n }\n return `${key}: ${val[key]}`\n }\n}\n","/* eslint-disable */\n\nmodule.exports = function decodeAsm (stdlib, foreign, buffer) {\n 'use asm'\n\n // -- Imports\n\n var heap = new stdlib.Uint8Array(buffer)\n // var log = foreign.log\n var pushInt = foreign.pushInt\n var pushInt32 = foreign.pushInt32\n var pushInt32Neg = foreign.pushInt32Neg\n var pushInt64 = foreign.pushInt64\n var pushInt64Neg = foreign.pushInt64Neg\n var pushFloat = foreign.pushFloat\n var pushFloatSingle = foreign.pushFloatSingle\n var pushFloatDouble = foreign.pushFloatDouble\n var pushTrue = foreign.pushTrue\n var pushFalse = foreign.pushFalse\n var pushUndefined = foreign.pushUndefined\n var pushNull = foreign.pushNull\n var pushInfinity = foreign.pushInfinity\n var pushInfinityNeg = foreign.pushInfinityNeg\n var pushNaN = foreign.pushNaN\n var pushNaNNeg = foreign.pushNaNNeg\n\n var pushArrayStart = foreign.pushArrayStart\n var pushArrayStartFixed = foreign.pushArrayStartFixed\n var pushArrayStartFixed32 = foreign.pushArrayStartFixed32\n var pushArrayStartFixed64 = foreign.pushArrayStartFixed64\n var pushObjectStart = foreign.pushObjectStart\n var pushObjectStartFixed = foreign.pushObjectStartFixed\n var pushObjectStartFixed32 = foreign.pushObjectStartFixed32\n var pushObjectStartFixed64 = foreign.pushObjectStartFixed64\n\n var pushByteString = foreign.pushByteString\n var pushByteStringStart = foreign.pushByteStringStart\n var pushUtf8String = foreign.pushUtf8String\n var pushUtf8StringStart = foreign.pushUtf8StringStart\n\n var pushSimpleUnassigned = foreign.pushSimpleUnassigned\n\n var pushTagStart = foreign.pushTagStart\n var pushTagStart4 = foreign.pushTagStart4\n var pushTagStart8 = foreign.pushTagStart8\n var pushTagUnassigned = foreign.pushTagUnassigned\n\n var pushBreak = foreign.pushBreak\n\n var pow = stdlib.Math.pow\n\n // -- Constants\n\n\n // -- Mutable Variables\n\n var offset = 0\n var inputLength = 0\n var code = 0\n\n // Decode a cbor string represented as Uint8Array\n // which is allocated on the heap from 0 to inputLength\n //\n // input - Int\n //\n // Returns Code - Int,\n // Success = 0\n // Error > 0\n function parse (input) {\n input = input | 0\n\n offset = 0\n inputLength = input\n\n while ((offset | 0) < (inputLength | 0)) {\n code = jumpTable[heap[offset] & 255](heap[offset] | 0) | 0\n\n if ((code | 0) > 0) {\n break\n }\n }\n\n return code | 0\n }\n\n // -- Helper Function\n\n function checkOffset (n) {\n n = n | 0\n\n if ((((offset | 0) + (n | 0)) | 0) < (inputLength | 0)) {\n return 0\n }\n\n return 1\n }\n\n function readUInt16 (n) {\n n = n | 0\n\n return (\n (heap[n | 0] << 8) | heap[(n + 1) | 0]\n ) | 0\n }\n\n function readUInt32 (n) {\n n = n | 0\n\n return (\n (heap[n | 0] << 24) | (heap[(n + 1) | 0] << 16) | (heap[(n + 2) | 0] << 8) | heap[(n + 3) | 0]\n ) | 0\n }\n\n // -- Initial Byte Handlers\n\n function INT_P (octet) {\n octet = octet | 0\n\n pushInt(octet | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UINT_P_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushInt(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function UINT_P_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushInt(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function UINT_P_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushInt32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function UINT_P_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushInt64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function INT_N (octet) {\n octet = octet | 0\n\n pushInt((-1 - ((octet - 32) | 0)) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UINT_N_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushInt(\n (-1 - (heap[(offset + 1) | 0] | 0)) | 0\n )\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function UINT_N_16 (octet) {\n octet = octet | 0\n\n var val = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n val = readUInt16((offset + 1) | 0) | 0\n pushInt((-1 - (val | 0)) | 0)\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function UINT_N_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushInt32Neg(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function UINT_N_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushInt64Neg(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function BYTE_STRING (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var step = 0\n\n step = (octet - 64) | 0\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n start = (offset + 1) | 0\n end = (((offset + 1) | 0) + (step | 0)) | 0\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_8 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n length = heap[(offset + 1) | 0] | 0\n start = (offset + 2) | 0\n end = (((offset + 2) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 1) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_16 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n length = readUInt16((offset + 1) | 0) | 0\n start = (offset + 3) | 0\n end = (((offset + 3) | 0) + (length | 0)) | 0\n\n\n if (checkOffset((length + 2) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_32 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n length = readUInt32((offset + 1) | 0) | 0\n start = (offset + 5) | 0\n end = (((offset + 5) | 0) + (length | 0)) | 0\n\n\n if (checkOffset((length + 4) | 0) | 0) {\n return 1\n }\n\n pushByteString(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function BYTE_STRING_64 (octet) {\n // NOT IMPLEMENTED\n octet = octet | 0\n\n return 1\n }\n\n function BYTE_STRING_BREAK (octet) {\n octet = octet | 0\n\n pushByteStringStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function UTF8_STRING (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var step = 0\n\n step = (octet - 96) | 0\n\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n start = (offset + 1) | 0\n end = (((offset + 1) | 0) + (step | 0)) | 0\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_8 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n length = heap[(offset + 1) | 0] | 0\n start = (offset + 2) | 0\n end = (((offset + 2) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 1) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_16 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n length = readUInt16((offset + 1) | 0) | 0\n start = (offset + 3) | 0\n end = (((offset + 3) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 2) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_32 (octet) {\n octet = octet | 0\n\n var start = 0\n var end = 0\n var length = 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n length = readUInt32((offset + 1) | 0) | 0\n start = (offset + 5) | 0\n end = (((offset + 5) | 0) + (length | 0)) | 0\n\n if (checkOffset((length + 4) | 0) | 0) {\n return 1\n }\n\n pushUtf8String(start | 0, end | 0)\n\n offset = end | 0\n\n return 0\n }\n\n function UTF8_STRING_64 (octet) {\n // NOT IMPLEMENTED\n octet = octet | 0\n\n return 1\n }\n\n function UTF8_STRING_BREAK (octet) {\n octet = octet | 0\n\n pushUtf8StringStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function ARRAY (octet) {\n octet = octet | 0\n\n pushArrayStartFixed((octet - 128) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function ARRAY_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushArrayStartFixed(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function ARRAY_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushArrayStartFixed(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function ARRAY_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushArrayStartFixed32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function ARRAY_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushArrayStartFixed64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function ARRAY_BREAK (octet) {\n octet = octet | 0\n\n pushArrayStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function MAP (octet) {\n octet = octet | 0\n\n var step = 0\n\n step = (octet - 160) | 0\n\n if (checkOffset(step | 0) | 0) {\n return 1\n }\n\n pushObjectStartFixed(step | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function MAP_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushObjectStartFixed(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function MAP_16 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushObjectStartFixed(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function MAP_32 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushObjectStartFixed32(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function MAP_64 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushObjectStartFixed64(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function MAP_BREAK (octet) {\n octet = octet | 0\n\n pushObjectStart()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function TAG_KNOWN (octet) {\n octet = octet | 0\n\n pushTagStart((octet - 192| 0) | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_POS (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_NEG (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_FRAC (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BIGNUM_FLOAT (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_UNASSIGNED (octet) {\n octet = octet | 0\n\n pushTagStart((octet - 192| 0) | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE64_URL (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE64 (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_BASE16 (octet) {\n octet = octet | 0\n\n pushTagStart(octet | 0)\n\n offset = (offset + 1 | 0)\n\n return 0\n }\n\n function TAG_MORE_1 (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushTagStart(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2 | 0)\n\n return 0\n }\n\n function TAG_MORE_2 (octet) {\n octet = octet | 0\n\n if (checkOffset(2) | 0) {\n return 1\n }\n\n pushTagStart(\n readUInt16((offset + 1) | 0) | 0\n )\n\n offset = (offset + 3 | 0)\n\n return 0\n }\n\n function TAG_MORE_4 (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushTagStart4(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0\n )\n\n offset = (offset + 5 | 0)\n\n return 0\n }\n\n function TAG_MORE_8 (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushTagStart8(\n readUInt16((offset + 1) | 0) | 0,\n readUInt16((offset + 3) | 0) | 0,\n readUInt16((offset + 5) | 0) | 0,\n readUInt16((offset + 7) | 0) | 0\n )\n\n offset = (offset + 9 | 0)\n\n return 0\n }\n\n function SIMPLE_UNASSIGNED (octet) {\n octet = octet | 0\n\n pushSimpleUnassigned(((octet | 0) - 224) | 0)\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_FALSE (octet) {\n octet = octet | 0\n\n pushFalse()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_TRUE (octet) {\n octet = octet | 0\n\n pushTrue()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_NULL (octet) {\n octet = octet | 0\n\n pushNull()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_UNDEFINED (octet) {\n octet = octet | 0\n\n pushUndefined()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n function SIMPLE_BYTE (octet) {\n octet = octet | 0\n\n if (checkOffset(1) | 0) {\n return 1\n }\n\n pushSimpleUnassigned(heap[(offset + 1) | 0] | 0)\n\n offset = (offset + 2) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_HALF (octet) {\n octet = octet | 0\n\n var f = 0\n var g = 0\n var sign = 1.0\n var exp = 0.0\n var mant = 0.0\n var r = 0.0\n if (checkOffset(2) | 0) {\n return 1\n }\n\n f = heap[(offset + 1) | 0] | 0\n g = heap[(offset + 2) | 0] | 0\n\n if ((f | 0) & 0x80) {\n sign = -1.0\n }\n\n exp = +(((f | 0) & 0x7C) >> 2)\n mant = +((((f | 0) & 0x03) << 8) | g)\n\n if (+exp == 0.0) {\n pushFloat(+(\n (+sign) * +5.9604644775390625e-8 * (+mant)\n ))\n } else if (+exp == 31.0) {\n if (+sign == 1.0) {\n if (+mant > 0.0) {\n pushNaN()\n } else {\n pushInfinity()\n }\n } else {\n if (+mant > 0.0) {\n pushNaNNeg()\n } else {\n pushInfinityNeg()\n }\n }\n } else {\n pushFloat(+(\n +sign * pow(+2, +(+exp - 25.0)) * +(1024.0 + mant)\n ))\n }\n\n offset = (offset + 3) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_SINGLE (octet) {\n octet = octet | 0\n\n if (checkOffset(4) | 0) {\n return 1\n }\n\n pushFloatSingle(\n heap[(offset + 1) | 0] | 0,\n heap[(offset + 2) | 0] | 0,\n heap[(offset + 3) | 0] | 0,\n heap[(offset + 4) | 0] | 0\n )\n\n offset = (offset + 5) | 0\n\n return 0\n }\n\n function SIMPLE_FLOAT_DOUBLE (octet) {\n octet = octet | 0\n\n if (checkOffset(8) | 0) {\n return 1\n }\n\n pushFloatDouble(\n heap[(offset + 1) | 0] | 0,\n heap[(offset + 2) | 0] | 0,\n heap[(offset + 3) | 0] | 0,\n heap[(offset + 4) | 0] | 0,\n heap[(offset + 5) | 0] | 0,\n heap[(offset + 6) | 0] | 0,\n heap[(offset + 7) | 0] | 0,\n heap[(offset + 8) | 0] | 0\n )\n\n offset = (offset + 9) | 0\n\n return 0\n }\n\n function ERROR (octet) {\n octet = octet | 0\n\n return 1\n }\n\n function BREAK (octet) {\n octet = octet | 0\n\n pushBreak()\n\n offset = (offset + 1) | 0\n\n return 0\n }\n\n // -- Jump Table\n\n var jumpTable = [\n // Integer 0x00..0x17 (0..23)\n INT_P, // 0x00\n INT_P, // 0x01\n INT_P, // 0x02\n INT_P, // 0x03\n INT_P, // 0x04\n INT_P, // 0x05\n INT_P, // 0x06\n INT_P, // 0x07\n INT_P, // 0x08\n INT_P, // 0x09\n INT_P, // 0x0A\n INT_P, // 0x0B\n INT_P, // 0x0C\n INT_P, // 0x0D\n INT_P, // 0x0E\n INT_P, // 0x0F\n INT_P, // 0x10\n INT_P, // 0x11\n INT_P, // 0x12\n INT_P, // 0x13\n INT_P, // 0x14\n INT_P, // 0x15\n INT_P, // 0x16\n INT_P, // 0x17\n // Unsigned integer (one-byte uint8_t follows)\n UINT_P_8, // 0x18\n // Unsigned integer (two-byte uint16_t follows)\n UINT_P_16, // 0x19\n // Unsigned integer (four-byte uint32_t follows)\n UINT_P_32, // 0x1a\n // Unsigned integer (eight-byte uint64_t follows)\n UINT_P_64, // 0x1b\n ERROR, // 0x1c\n ERROR, // 0x1d\n ERROR, // 0x1e\n ERROR, // 0x1f\n // Negative integer -1-0x00..-1-0x17 (-1..-24)\n INT_N, // 0x20\n INT_N, // 0x21\n INT_N, // 0x22\n INT_N, // 0x23\n INT_N, // 0x24\n INT_N, // 0x25\n INT_N, // 0x26\n INT_N, // 0x27\n INT_N, // 0x28\n INT_N, // 0x29\n INT_N, // 0x2A\n INT_N, // 0x2B\n INT_N, // 0x2C\n INT_N, // 0x2D\n INT_N, // 0x2E\n INT_N, // 0x2F\n INT_N, // 0x30\n INT_N, // 0x31\n INT_N, // 0x32\n INT_N, // 0x33\n INT_N, // 0x34\n INT_N, // 0x35\n INT_N, // 0x36\n INT_N, // 0x37\n // Negative integer -1-n (one-byte uint8_t for n follows)\n UINT_N_8, // 0x38\n // Negative integer -1-n (two-byte uint16_t for n follows)\n UINT_N_16, // 0x39\n // Negative integer -1-n (four-byte uint32_t for nfollows)\n UINT_N_32, // 0x3a\n // Negative integer -1-n (eight-byte uint64_t for n follows)\n UINT_N_64, // 0x3b\n ERROR, // 0x3c\n ERROR, // 0x3d\n ERROR, // 0x3e\n ERROR, // 0x3f\n // byte string (0x00..0x17 bytes follow)\n BYTE_STRING, // 0x40\n BYTE_STRING, // 0x41\n BYTE_STRING, // 0x42\n BYTE_STRING, // 0x43\n BYTE_STRING, // 0x44\n BYTE_STRING, // 0x45\n BYTE_STRING, // 0x46\n BYTE_STRING, // 0x47\n BYTE_STRING, // 0x48\n BYTE_STRING, // 0x49\n BYTE_STRING, // 0x4A\n BYTE_STRING, // 0x4B\n BYTE_STRING, // 0x4C\n BYTE_STRING, // 0x4D\n BYTE_STRING, // 0x4E\n BYTE_STRING, // 0x4F\n BYTE_STRING, // 0x50\n BYTE_STRING, // 0x51\n BYTE_STRING, // 0x52\n BYTE_STRING, // 0x53\n BYTE_STRING, // 0x54\n BYTE_STRING, // 0x55\n BYTE_STRING, // 0x56\n BYTE_STRING, // 0x57\n // byte string (one-byte uint8_t for n, and then n bytes follow)\n BYTE_STRING_8, // 0x58\n // byte string (two-byte uint16_t for n, and then n bytes follow)\n BYTE_STRING_16, // 0x59\n // byte string (four-byte uint32_t for n, and then n bytes follow)\n BYTE_STRING_32, // 0x5a\n // byte string (eight-byte uint64_t for n, and then n bytes follow)\n BYTE_STRING_64, // 0x5b\n ERROR, // 0x5c\n ERROR, // 0x5d\n ERROR, // 0x5e\n // byte string, byte strings follow, terminated by \"break\"\n BYTE_STRING_BREAK, // 0x5f\n // UTF-8 string (0x00..0x17 bytes follow)\n UTF8_STRING, // 0x60\n UTF8_STRING, // 0x61\n UTF8_STRING, // 0x62\n UTF8_STRING, // 0x63\n UTF8_STRING, // 0x64\n UTF8_STRING, // 0x65\n UTF8_STRING, // 0x66\n UTF8_STRING, // 0x67\n UTF8_STRING, // 0x68\n UTF8_STRING, // 0x69\n UTF8_STRING, // 0x6A\n UTF8_STRING, // 0x6B\n UTF8_STRING, // 0x6C\n UTF8_STRING, // 0x6D\n UTF8_STRING, // 0x6E\n UTF8_STRING, // 0x6F\n UTF8_STRING, // 0x70\n UTF8_STRING, // 0x71\n UTF8_STRING, // 0x72\n UTF8_STRING, // 0x73\n UTF8_STRING, // 0x74\n UTF8_STRING, // 0x75\n UTF8_STRING, // 0x76\n UTF8_STRING, // 0x77\n // UTF-8 string (one-byte uint8_t for n, and then n bytes follow)\n UTF8_STRING_8, // 0x78\n // UTF-8 string (two-byte uint16_t for n, and then n bytes follow)\n UTF8_STRING_16, // 0x79\n // UTF-8 string (four-byte uint32_t for n, and then n bytes follow)\n UTF8_STRING_32, // 0x7a\n // UTF-8 string (eight-byte uint64_t for n, and then n bytes follow)\n UTF8_STRING_64, // 0x7b\n // UTF-8 string, UTF-8 strings follow, terminated by \"break\"\n ERROR, // 0x7c\n ERROR, // 0x7d\n ERROR, // 0x7e\n UTF8_STRING_BREAK, // 0x7f\n // array (0x00..0x17 data items follow)\n ARRAY, // 0x80\n ARRAY, // 0x81\n ARRAY, // 0x82\n ARRAY, // 0x83\n ARRAY, // 0x84\n ARRAY, // 0x85\n ARRAY, // 0x86\n ARRAY, // 0x87\n ARRAY, // 0x88\n ARRAY, // 0x89\n ARRAY, // 0x8A\n ARRAY, // 0x8B\n ARRAY, // 0x8C\n ARRAY, // 0x8D\n ARRAY, // 0x8E\n ARRAY, // 0x8F\n ARRAY, // 0x90\n ARRAY, // 0x91\n ARRAY, // 0x92\n ARRAY, // 0x93\n ARRAY, // 0x94\n ARRAY, // 0x95\n ARRAY, // 0x96\n ARRAY, // 0x97\n // array (one-byte uint8_t fo, and then n data items follow)\n ARRAY_8, // 0x98\n // array (two-byte uint16_t for n, and then n data items follow)\n ARRAY_16, // 0x99\n // array (four-byte uint32_t for n, and then n data items follow)\n ARRAY_32, // 0x9a\n // array (eight-byte uint64_t for n, and then n data items follow)\n ARRAY_64, // 0x9b\n // array, data items follow, terminated by \"break\"\n ERROR, // 0x9c\n ERROR, // 0x9d\n ERROR, // 0x9e\n ARRAY_BREAK, // 0x9f\n // map (0x00..0x17 pairs of data items follow)\n MAP, // 0xa0\n MAP, // 0xa1\n MAP, // 0xa2\n MAP, // 0xa3\n MAP, // 0xa4\n MAP, // 0xa5\n MAP, // 0xa6\n MAP, // 0xa7\n MAP, // 0xa8\n MAP, // 0xa9\n MAP, // 0xaA\n MAP, // 0xaB\n MAP, // 0xaC\n MAP, // 0xaD\n MAP, // 0xaE\n MAP, // 0xaF\n MAP, // 0xb0\n MAP, // 0xb1\n MAP, // 0xb2\n MAP, // 0xb3\n MAP, // 0xb4\n MAP, // 0xb5\n MAP, // 0xb6\n MAP, // 0xb7\n // map (one-byte uint8_t for n, and then n pairs of data items follow)\n MAP_8, // 0xb8\n // map (two-byte uint16_t for n, and then n pairs of data items follow)\n MAP_16, // 0xb9\n // map (four-byte uint32_t for n, and then n pairs of data items follow)\n MAP_32, // 0xba\n // map (eight-byte uint64_t for n, and then n pairs of data items follow)\n MAP_64, // 0xbb\n ERROR, // 0xbc\n ERROR, // 0xbd\n ERROR, // 0xbe\n // map, pairs of data items follow, terminated by \"break\"\n MAP_BREAK, // 0xbf\n // Text-based date/time (data item follows; see Section 2.4.1)\n TAG_KNOWN, // 0xc0\n // Epoch-based date/time (data item follows; see Section 2.4.1)\n TAG_KNOWN, // 0xc1\n // Positive bignum (data item \"byte string\" follows)\n TAG_KNOWN, // 0xc2\n // Negative bignum (data item \"byte string\" follows)\n TAG_KNOWN, // 0xc3\n // Decimal Fraction (data item \"array\" follows; see Section 2.4.3)\n TAG_KNOWN, // 0xc4\n // Bigfloat (data item \"array\" follows; see Section 2.4.3)\n TAG_KNOWN, // 0xc5\n // (tagged item)\n TAG_UNASSIGNED, // 0xc6\n TAG_UNASSIGNED, // 0xc7\n TAG_UNASSIGNED, // 0xc8\n TAG_UNASSIGNED, // 0xc9\n TAG_UNASSIGNED, // 0xca\n TAG_UNASSIGNED, // 0xcb\n TAG_UNASSIGNED, // 0xcc\n TAG_UNASSIGNED, // 0xcd\n TAG_UNASSIGNED, // 0xce\n TAG_UNASSIGNED, // 0xcf\n TAG_UNASSIGNED, // 0xd0\n TAG_UNASSIGNED, // 0xd1\n TAG_UNASSIGNED, // 0xd2\n TAG_UNASSIGNED, // 0xd3\n TAG_UNASSIGNED, // 0xd4\n // Expected Conversion (data item follows; see Section 2.4.4.2)\n TAG_UNASSIGNED, // 0xd5\n TAG_UNASSIGNED, // 0xd6\n TAG_UNASSIGNED, // 0xd7\n // (more tagged items, 1/2/4/8 bytes and then a data item follow)\n TAG_MORE_1, // 0xd8\n TAG_MORE_2, // 0xd9\n TAG_MORE_4, // 0xda\n TAG_MORE_8, // 0xdb\n ERROR, // 0xdc\n ERROR, // 0xdd\n ERROR, // 0xde\n ERROR, // 0xdf\n // (simple value)\n SIMPLE_UNASSIGNED, // 0xe0\n SIMPLE_UNASSIGNED, // 0xe1\n SIMPLE_UNASSIGNED, // 0xe2\n SIMPLE_UNASSIGNED, // 0xe3\n SIMPLE_UNASSIGNED, // 0xe4\n SIMPLE_UNASSIGNED, // 0xe5\n SIMPLE_UNASSIGNED, // 0xe6\n SIMPLE_UNASSIGNED, // 0xe7\n SIMPLE_UNASSIGNED, // 0xe8\n SIMPLE_UNASSIGNED, // 0xe9\n SIMPLE_UNASSIGNED, // 0xea\n SIMPLE_UNASSIGNED, // 0xeb\n SIMPLE_UNASSIGNED, // 0xec\n SIMPLE_UNASSIGNED, // 0xed\n SIMPLE_UNASSIGNED, // 0xee\n SIMPLE_UNASSIGNED, // 0xef\n SIMPLE_UNASSIGNED, // 0xf0\n SIMPLE_UNASSIGNED, // 0xf1\n SIMPLE_UNASSIGNED, // 0xf2\n SIMPLE_UNASSIGNED, // 0xf3\n // False\n SIMPLE_FALSE, // 0xf4\n // True\n SIMPLE_TRUE, // 0xf5\n // Null\n SIMPLE_NULL, // 0xf6\n // Undefined\n SIMPLE_UNDEFINED, // 0xf7\n // (simple value, one byte follows)\n SIMPLE_BYTE, // 0xf8\n // Half-Precision Float (two-byte IEEE 754)\n SIMPLE_FLOAT_HALF, // 0xf9\n // Single-Precision Float (four-byte IEEE 754)\n SIMPLE_FLOAT_SINGLE, // 0xfa\n // Double-Precision Float (eight-byte IEEE 754)\n SIMPLE_FLOAT_DOUBLE, // 0xfb\n ERROR, // 0xfc\n ERROR, // 0xfd\n ERROR, // 0xfe\n // \"break\" stop code\n BREAK // 0xff\n ]\n\n // --\n\n return {\n parse: parse\n }\n}\n","'use strict';\n\nconst { URLWithLegacySupport, format } = require('./url');\n\nmodule.exports = (url, location = {}, protocolMap = {}, defaultProtocol) => {\n let protocol = location.protocol ?\n location.protocol.replace(':', '') :\n 'http';\n\n // Check protocol map\n protocol = (protocolMap[protocol] || defaultProtocol || protocol) + ':';\n let urlParsed;\n\n try {\n urlParsed = new URLWithLegacySupport(url);\n } catch (err) {\n urlParsed = {};\n }\n\n const base = Object.assign({}, location, {\n protocol: protocol || urlParsed.protocol,\n host: location.host || urlParsed.host\n });\n\n return new URLWithLegacySupport(url, format(base)).toString();\n};\n","'use strict'\n\nconst { Buffer } = require('buffer')\nconst { URL } = require('iso-url')\nconst Bignumber = require('bignumber.js').BigNumber\n\nconst utils = require('./utils')\nconst constants = require('./constants')\nconst MT = constants.MT\nconst NUMBYTES = constants.NUMBYTES\nconst SHIFT32 = constants.SHIFT32\nconst SYMS = constants.SYMS\nconst TAG = constants.TAG\nconst HALF = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.TWO\nconst FLOAT = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.FOUR\nconst DOUBLE = (constants.MT.SIMPLE_FLOAT << 5) | constants.NUMBYTES.EIGHT\nconst TRUE = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.TRUE\nconst FALSE = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.FALSE\nconst UNDEFINED = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.UNDEFINED\nconst NULL = (constants.MT.SIMPLE_FLOAT << 5) | constants.SIMPLE.NULL\n\nconst MAXINT_BN = new Bignumber('0x20000000000000')\nconst BUF_NAN = Buffer.from('f97e00', 'hex')\nconst BUF_INF_NEG = Buffer.from('f9fc00', 'hex')\nconst BUF_INF_POS = Buffer.from('f97c00', 'hex')\n\nfunction toType (obj) {\n // [object Type]\n // --------8---1\n return ({}).toString.call(obj).slice(8, -1)\n}\n\n/**\n * Transform JavaScript values into CBOR bytes\n *\n */\nclass Encoder {\n /**\n * @param {Object} [options={}]\n * @param {function(Buffer)} options.stream\n */\n constructor (options) {\n options = options || {}\n\n this.streaming = typeof options.stream === 'function'\n this.onData = options.stream\n\n this.semanticTypes = [\n [URL, this._pushUrl],\n [Bignumber, this._pushBigNumber]\n ]\n\n const addTypes = options.genTypes || []\n const len = addTypes.length\n for (let i = 0; i < len; i++) {\n this.addSemanticType(\n addTypes[i][0],\n addTypes[i][1]\n )\n }\n\n this._reset()\n }\n\n addSemanticType (type, fun) {\n const len = this.semanticTypes.length\n for (let i = 0; i < len; i++) {\n const typ = this.semanticTypes[i][0]\n if (typ === type) {\n const old = this.semanticTypes[i][1]\n this.semanticTypes[i][1] = fun\n return old\n }\n }\n this.semanticTypes.push([type, fun])\n return null\n }\n\n push (val) {\n if (!val) {\n return true\n }\n\n this.result[this.offset] = val\n this.resultMethod[this.offset] = 0\n this.resultLength[this.offset] = val.length\n this.offset++\n\n if (this.streaming) {\n this.onData(this.finalize())\n }\n\n return true\n }\n\n pushWrite (val, method, len) {\n this.result[this.offset] = val\n this.resultMethod[this.offset] = method\n this.resultLength[this.offset] = len\n this.offset++\n\n if (this.streaming) {\n this.onData(this.finalize())\n }\n\n return true\n }\n\n _pushUInt8 (val) {\n return this.pushWrite(val, 1, 1)\n }\n\n _pushUInt16BE (val) {\n return this.pushWrite(val, 2, 2)\n }\n\n _pushUInt32BE (val) {\n return this.pushWrite(val, 3, 4)\n }\n\n _pushDoubleBE (val) {\n return this.pushWrite(val, 4, 8)\n }\n\n _pushNaN () {\n return this.push(BUF_NAN)\n }\n\n _pushInfinity (obj) {\n const half = (obj < 0) ? BUF_INF_NEG : BUF_INF_POS\n return this.push(half)\n }\n\n _pushFloat (obj) {\n const b2 = Buffer.allocUnsafe(2)\n\n if (utils.writeHalf(b2, obj)) {\n if (utils.parseHalf(b2) === obj) {\n return this._pushUInt8(HALF) && this.push(b2)\n }\n }\n\n const b4 = Buffer.allocUnsafe(4)\n b4.writeFloatBE(obj, 0)\n if (b4.readFloatBE(0) === obj) {\n return this._pushUInt8(FLOAT) && this.push(b4)\n }\n\n return this._pushUInt8(DOUBLE) && this._pushDoubleBE(obj)\n }\n\n _pushInt (obj, mt, orig) {\n const m = mt << 5\n if (obj < 24) {\n return this._pushUInt8(m | obj)\n }\n\n if (obj <= 0xff) {\n return this._pushUInt8(m | NUMBYTES.ONE) && this._pushUInt8(obj)\n }\n\n if (obj <= 0xffff) {\n return this._pushUInt8(m | NUMBYTES.TWO) && this._pushUInt16BE(obj)\n }\n\n if (obj <= 0xffffffff) {\n return this._pushUInt8(m | NUMBYTES.FOUR) && this._pushUInt32BE(obj)\n }\n\n if (obj <= Number.MAX_SAFE_INTEGER) {\n return this._pushUInt8(m | NUMBYTES.EIGHT) &&\n this._pushUInt32BE(Math.floor(obj / SHIFT32)) &&\n this._pushUInt32BE(obj % SHIFT32)\n }\n\n if (mt === MT.NEG_INT) {\n return this._pushFloat(orig)\n }\n\n return this._pushFloat(obj)\n }\n\n _pushIntNum (obj) {\n if (obj < 0) {\n return this._pushInt(-obj - 1, MT.NEG_INT, obj)\n } else {\n return this._pushInt(obj, MT.POS_INT)\n }\n }\n\n _pushNumber (obj) {\n switch (false) {\n case (obj === obj): // eslint-disable-line\n return this._pushNaN(obj)\n case isFinite(obj):\n return this._pushInfinity(obj)\n case ((obj % 1) !== 0):\n return this._pushIntNum(obj)\n default:\n return this._pushFloat(obj)\n }\n }\n\n _pushString (obj) {\n const len = Buffer.byteLength(obj, 'utf8')\n return this._pushInt(len, MT.UTF8_STRING) && this.pushWrite(obj, 5, len)\n }\n\n _pushBoolean (obj) {\n return this._pushUInt8(obj ? TRUE : FALSE)\n }\n\n _pushUndefined (obj) {\n return this._pushUInt8(UNDEFINED)\n }\n\n _pushArray (gen, obj) {\n const len = obj.length\n if (!gen._pushInt(len, MT.ARRAY)) {\n return false\n }\n for (let j = 0; j < len; j++) {\n if (!gen.pushAny(obj[j])) {\n return false\n }\n }\n return true\n }\n\n _pushTag (tag) {\n return this._pushInt(tag, MT.TAG)\n }\n\n _pushDate (gen, obj) {\n // Round date, to get seconds since 1970-01-01 00:00:00 as defined in\n // Sec. 2.4.1 and get a possibly more compact encoding. Note that it is\n // still allowed to encode fractions of seconds which can be achieved by\n // changing overwriting the encode function for Date objects.\n return gen._pushTag(TAG.DATE_EPOCH) && gen.pushAny(Math.round(obj / 1000))\n }\n\n _pushBuffer (gen, obj) {\n return gen._pushInt(obj.length, MT.BYTE_STRING) && gen.push(obj)\n }\n\n _pushNoFilter (gen, obj) {\n return gen._pushBuffer(gen, obj.slice())\n }\n\n _pushRegexp (gen, obj) {\n return gen._pushTag(TAG.REGEXP) && gen.pushAny(obj.source)\n }\n\n _pushSet (gen, obj) {\n if (!gen._pushInt(obj.size, MT.ARRAY)) {\n return false\n }\n for (const x of obj) {\n if (!gen.pushAny(x)) {\n return false\n }\n }\n return true\n }\n\n _pushUrl (gen, obj) {\n return gen._pushTag(TAG.URI) && gen.pushAny(obj.format())\n }\n\n _pushBigint (obj) {\n let tag = TAG.POS_BIGINT\n if (obj.isNegative()) {\n obj = obj.negated().minus(1)\n tag = TAG.NEG_BIGINT\n }\n let str = obj.toString(16)\n if (str.length % 2) {\n str = '0' + str\n }\n const buf = Buffer.from(str, 'hex')\n return this._pushTag(tag) && this._pushBuffer(this, buf)\n }\n\n _pushBigNumber (gen, obj) {\n if (obj.isNaN()) {\n return gen._pushNaN()\n }\n if (!obj.isFinite()) {\n return gen._pushInfinity(obj.isNegative() ? -Infinity : Infinity)\n }\n if (obj.isInteger()) {\n return gen._pushBigint(obj)\n }\n if (!(gen._pushTag(TAG.DECIMAL_FRAC) &&\n gen._pushInt(2, MT.ARRAY))) {\n return false\n }\n\n const dec = obj.decimalPlaces()\n const slide = obj.multipliedBy(new Bignumber(10).pow(dec))\n if (!gen._pushIntNum(-dec)) {\n return false\n }\n if (slide.abs().isLessThan(MAXINT_BN)) {\n return gen._pushIntNum(slide.toNumber())\n } else {\n return gen._pushBigint(slide)\n }\n }\n\n _pushMap (gen, obj) {\n if (!gen._pushInt(obj.size, MT.MAP)) {\n return false\n }\n\n return this._pushRawMap(\n obj.size,\n Array.from(obj)\n )\n }\n\n _pushObject (obj) {\n if (!obj) {\n return this._pushUInt8(NULL)\n }\n\n var len = this.semanticTypes.length\n for (var i = 0; i < len; i++) {\n if (obj instanceof this.semanticTypes[i][0]) {\n return this.semanticTypes[i][1].call(obj, this, obj)\n }\n }\n\n var f = obj.encodeCBOR\n if (typeof f === 'function') {\n return f.call(obj, this)\n }\n\n var keys = Object.keys(obj)\n var keyLength = keys.length\n if (!this._pushInt(keyLength, MT.MAP)) {\n return false\n }\n\n return this._pushRawMap(\n keyLength,\n keys.map((k) => [k, obj[k]])\n )\n }\n\n _pushRawMap (len, map) {\n // Sort keys for canoncialization\n // 1. encode key\n // 2. shorter key comes before longer key\n // 3. same length keys are sorted with lower\n // byte value before higher\n\n map = map.map(function (a) {\n a[0] = Encoder.encode(a[0])\n return a\n }).sort(utils.keySorter)\n\n for (var j = 0; j < len; j++) {\n if (!this.push(map[j][0])) {\n return false\n }\n\n if (!this.pushAny(map[j][1])) {\n return false\n }\n }\n\n return true\n }\n\n /**\n * Alias for `.pushAny`\n *\n * @param {*} obj\n * @returns {boolean} true on success\n */\n write (obj) {\n return this.pushAny(obj)\n }\n\n /**\n * Push any supported type onto the encoded stream\n *\n * @param {any} obj\n * @returns {boolean} true on success\n */\n pushAny (obj) {\n var typ = toType(obj)\n\n switch (typ) {\n case 'Number':\n return this._pushNumber(obj)\n case 'String':\n return this._pushString(obj)\n case 'Boolean':\n return this._pushBoolean(obj)\n case 'Object':\n return this._pushObject(obj)\n case 'Array':\n return this._pushArray(this, obj)\n case 'Uint8Array':\n return this._pushBuffer(this, Buffer.isBuffer(obj) ? obj : Buffer.from(obj))\n case 'Null':\n return this._pushUInt8(NULL)\n case 'Undefined':\n return this._pushUndefined(obj)\n case 'Map':\n return this._pushMap(this, obj)\n case 'Set':\n return this._pushSet(this, obj)\n case 'URL':\n return this._pushUrl(this, obj)\n case 'BigNumber':\n return this._pushBigNumber(this, obj)\n case 'Date':\n return this._pushDate(this, obj)\n case 'RegExp':\n return this._pushRegexp(this, obj)\n case 'Symbol':\n switch (obj) {\n case SYMS.NULL:\n return this._pushObject(null)\n case SYMS.UNDEFINED:\n return this._pushUndefined(undefined)\n // TODO: Add pluggable support for other symbols\n default:\n throw new Error('Unknown symbol: ' + obj.toString())\n }\n default:\n throw new Error('Unknown type: ' + typeof obj + ', ' + (obj ? obj.toString() : ''))\n }\n }\n\n finalize () {\n if (this.offset === 0) {\n return null\n }\n\n var result = this.result\n var resultLength = this.resultLength\n var resultMethod = this.resultMethod\n var offset = this.offset\n\n // Determine the size of the buffer\n var size = 0\n var i = 0\n\n for (; i < offset; i++) {\n size += resultLength[i]\n }\n\n var res = Buffer.allocUnsafe(size)\n var index = 0\n var length = 0\n\n // Write the content into the result buffer\n for (i = 0; i < offset; i++) {\n length = resultLength[i]\n\n switch (resultMethod[i]) {\n case 0:\n result[i].copy(res, index)\n break\n case 1:\n res.writeUInt8(result[i], index, true)\n break\n case 2:\n res.writeUInt16BE(result[i], index, true)\n break\n case 3:\n res.writeUInt32BE(result[i], index, true)\n break\n case 4:\n res.writeDoubleBE(result[i], index, true)\n break\n case 5:\n res.write(result[i], index, length, 'utf8')\n break\n default:\n throw new Error('unkown method')\n }\n\n index += length\n }\n\n var tmp = res\n\n this._reset()\n\n return tmp\n }\n\n _reset () {\n this.result = []\n this.resultMethod = []\n this.resultLength = []\n this.offset = 0\n }\n\n /**\n * Encode the given value\n * @param {*} o\n * @returns {Buffer}\n */\n static encode (o) {\n const enc = new Encoder()\n const ret = enc.pushAny(o)\n if (!ret) {\n throw new Error('Failed to encode input')\n }\n\n return enc.finalize()\n }\n}\n\nmodule.exports = Encoder\n","\"use strict\";\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst cbor = __importStar(require(\"./value\"));\nconst BufferClasses = [\n ArrayBuffer,\n Uint8Array,\n Uint16Array,\n Uint32Array,\n Int8Array,\n Int16Array,\n Int32Array,\n Float32Array,\n Float64Array,\n];\nclass JsonDefaultCborEncoder {\n // @param _serializer The CBOR Serializer to use.\n // @param _stable Whether or not keys from objects should be sorted (stable). This is\n // particularly useful when testing encodings between JSON objects.\n constructor(_serializer, _stable = false) {\n this._serializer = _serializer;\n this._stable = _stable;\n this.name = \"jsonDefault\";\n this.priority = -100;\n }\n match(value) {\n return [\"undefined\", \"boolean\", \"number\", \"string\", \"object\"].indexOf(typeof value) != -1;\n }\n encode(value) {\n switch (typeof value) {\n case \"undefined\":\n return cbor.undefined_();\n case \"boolean\":\n return cbor.bool(value);\n case \"number\":\n if (Math.floor(value) === value) {\n return cbor.number(value);\n }\n else {\n return cbor.doubleFloat(value);\n }\n case \"string\":\n return cbor.string(value);\n case \"object\":\n if (value === null) {\n return cbor.null_();\n }\n else if (Array.isArray(value)) {\n return cbor.array(value.map((x) => this._serializer.serializeValue(x)));\n }\n else if (BufferClasses.find((x) => value instanceof x)) {\n return cbor.bytes(value.buffer);\n }\n else if (Object.getOwnPropertyNames(value).indexOf(\"toJSON\") !== -1) {\n return this.encode(value.toJSON());\n }\n else if (value instanceof Map) {\n const m = new Map();\n for (const [key, item] of value.entries()) {\n m.set(key, this._serializer.serializeValue(item));\n }\n return cbor.map(m, this._stable);\n }\n else {\n const m = new Map();\n for (const [key, item] of Object.entries(value)) {\n m.set(key, this._serializer.serializeValue(item));\n }\n return cbor.map(m, this._stable);\n }\n default:\n throw new Error(\"Invalid value.\");\n }\n }\n}\nexports.JsonDefaultCborEncoder = JsonDefaultCborEncoder;\nclass ToCborEncoder {\n constructor() {\n this.name = \"cborEncoder\";\n this.priority = -90;\n }\n match(value) {\n return typeof value == \"object\" && typeof value[\"toCBOR\"] == \"function\";\n }\n encode(value) {\n return value.toCBOR();\n }\n}\nexports.ToCborEncoder = ToCborEncoder;\nclass CborSerializer {\n constructor() {\n this._encoders = new Set();\n }\n static withDefaultEncoders(stable = false) {\n const s = new this();\n s.addEncoder(new JsonDefaultCborEncoder(s, stable));\n s.addEncoder(new ToCborEncoder());\n return s;\n }\n removeEncoder(name) {\n // Has to make an extra call to values() to ensure it doesn't break on iteration.\n for (const encoder of this._encoders.values()) {\n if (encoder.name == name) {\n this._encoders.delete(encoder);\n }\n }\n }\n addEncoder(encoder) {\n this._encoders.add(encoder);\n }\n getEncoderFor(value) {\n let chosenEncoder = null;\n for (const encoder of this._encoders) {\n if (!chosenEncoder || encoder.priority > chosenEncoder.priority) {\n if (encoder.match(value)) {\n chosenEncoder = encoder;\n }\n }\n }\n if (chosenEncoder === null) {\n throw new Error(\"Could not find an encoder for value.\");\n }\n return chosenEncoder;\n }\n serializeValue(value) {\n return this.getEncoderFor(value).encode(value);\n }\n serialize(value) {\n return this.serializeValue(value);\n }\n}\nexports.CborSerializer = CborSerializer;\nclass SelfDescribeCborSerializer extends CborSerializer {\n serialize(value) {\n return cbor.raw(new Uint8Array([\n // Self describe CBOR.\n ...new Uint8Array([0xd9, 0xd9, 0xf7]),\n ...new Uint8Array(super.serializeValue(value)),\n ]));\n }\n}\nexports.SelfDescribeCborSerializer = SelfDescribeCborSerializer;\n//# sourceMappingURL=serializer.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCanisterActor = void 0;\nvar agent_1 = require(\"@dfinity/agent\");\nvar idlFactory = function (_a) {\n var IDL = _a.IDL;\n var HelloResult = IDL.Rec();\n var SdkVersion = IDL.Nat32;\n var TopologyId = IDL.Nat32;\n var ProjectApiKey = IDL.Text;\n var AccessToken = IDL.Text;\n var AnalyticsReceiverApiError = IDL.Variant({\n 'invalidClient': IDL.Null,\n 'wrongAccessToken': IDL.Null,\n 'temporarilyUnavailable': IDL.Null,\n });\n var IsCollectRequiredResult = IDL.Variant({\n 'ok': IDL.Bool,\n 'err': AnalyticsReceiverApiError,\n });\n var IsCollectRequired = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [IsCollectRequiredResult], ['query']);\n var CollectResult = IDL.Variant({\n 'ok': IDL.Null,\n 'err': AnalyticsReceiverApiError,\n });\n var Collect = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [CollectResult], []);\n var AnalyticsReceiverApi = IDL.Record({\n 'isCollectRequired': IsCollectRequired,\n 'collect': Collect,\n });\n var GetAnalyticsReceiverApiResult = IDL.Variant({\n 'ok': AnalyticsReceiverApi,\n 'err': AnalyticsReceiverApiError,\n });\n var GetAnalyticsReceiverApi = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [GetAnalyticsReceiverApiResult], ['query']);\n var AnalyticsReceiver = IDL.Record({\n 'getAnalyticsReceiverApi': GetAnalyticsReceiverApi,\n 'accessToken': AccessToken,\n });\n var Hello = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, IDL.Opt(TopologyId), ProjectApiKey], [HelloResult], ['query']);\n var Topology = IDL.Record({\n 'topologyId': TopologyId,\n 'coordinators': IDL.Vec(Hello),\n });\n var GetAnalyticsReceiverError = IDL.Variant({\n 'wrongApiKey': IDL.Null,\n 'clientBlocked': IDL.Null,\n 'invalidClient': IDL.Null,\n 'clientNotRegistered': IDL.Null,\n 'temporarilyUnavailable': IDL.Null,\n 'wrongTopology': IDL.Null,\n });\n var GetAnalyticsReceiverResult = IDL.Variant({\n 'ok': AnalyticsReceiver,\n 'err': GetAnalyticsReceiverError,\n });\n var GetAnalyticsReceiver = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, ProjectApiKey], [GetAnalyticsReceiverResult], ['query']);\n var RegisterClientOkResult = IDL.Record({\n 'analyticsReceiver': AnalyticsReceiver,\n 'analyticsStoreNotified': IDL.Bool,\n });\n var RegisterClientError = IDL.Variant({\n 'wrongApiKey': IDL.Null,\n 'invalidClient': IDL.Null,\n 'temporarilyUnavailable': IDL.Null,\n 'wrongTopology': IDL.Null,\n });\n var RegisterClientResult = IDL.Variant({\n 'ok': RegisterClientOkResult,\n 'err': RegisterClientError,\n });\n var RegisterClient = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, ProjectApiKey], [RegisterClientResult], []);\n var ClientRegistry = IDL.Record({\n 'getAnalyticsReceiver': GetAnalyticsReceiver,\n 'registerClient': RegisterClient,\n });\n HelloResult.fill(IDL.Variant({\n 'temporaryUnavailable': IDL.Null,\n 'invalidClient': IDL.Null,\n 'analyticsReceiver': AnalyticsReceiver,\n 'changeTopology': Topology,\n 'clientRegistry': ClientRegistry,\n 'collectSuccess': IDL.Null,\n }));\n return IDL.Service({\n 'hello': IDL.Func([\n IDL.Opt(IDL.Principal),\n SdkVersion,\n IDL.Opt(TopologyId),\n ProjectApiKey,\n ], [HelloResult], ['query']),\n });\n};\n/**\n *\n * @param {string | import(\"@dfinity/principal\").Principal} canisterId Canister ID of Agent\n * @param {{agentOptions?: import(\"@dfinity/agent\").HttpAgentOptions; actorOptions?: import(\"@dfinity/agent\").ActorConfig}} [options]\n * @return {import(\"@dfinity/agent\").ActorSubclass<import(\"src/canisters/coordinator.did.d.ts\")._SERVICE>}\n */\nvar createActor = function (canisterId, options) {\n var agent = new agent_1.HttpAgent(__assign({}, options === null || options === void 0 ? void 0 : options.agentOptions));\n // Fetch root key for certificate validation during development\n if (process.env.NODE_ENV !== \"production\") {\n agent.fetchRootKey().catch(function (err) {\n console.warn(\"Unable to fetch root key. Check to ensure that your local replica is running\");\n console.error(err);\n });\n }\n // Creates an actor with using the candid interface and the HttpAgent\n return agent_1.Actor.createActor(idlFactory, __assign({ agent: agent, canisterId: canisterId }, options === null || options === void 0 ? void 0 : options.actorOptions));\n};\n/**\n *\n * @param {string} canisterId\n * @param {import(\"@dfinity/agent\").Identity} identity\n * @param {string} host\n * @return {import(\"@dfinity/agent\").ActorSubclass<import(\"src/canisters/coordinator.did.d.ts\")._SERVICE>}\n */\nvar createCanisterActor = function (canisterId, identity, host) {\n return createActor(canisterId, {\n agentOptions: {\n identity: identity,\n host: host\n }\n });\n};\nexports.createCanisterActor = createCanisterActor;\n//# sourceMappingURL=coordinator.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UGStorage = void 0;\nvar auth_client_1 = require(\"@dfinity/auth-client\");\nvar utils_1 = require(\"./utils\");\nvar store = new auth_client_1.LocalStorage(\"ug-ic\");\nvar Key_TopologyId = \"coordinator__topologyId\";\nvar Key_CanisterIds = \"coordinator__canisterIds\";\nexports.UGStorage = {\n coordinator: {\n getTopologyId: function () { return __awaiter(void 0, void 0, void 0, function () {\n var value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, store.get(Key_TopologyId)];\n case 1:\n value = _a.sent();\n if (value) {\n return [2 /*return*/, Number(value)];\n }\n return [2 /*return*/, undefined];\n }\n });\n }); },\n setTopologyId: function (value) {\n store.set(Key_TopologyId, JSON.stringify(value));\n },\n getCanisterIds: function () { return __awaiter(void 0, void 0, void 0, function () {\n var value, _a, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 2, , 3]);\n _b = (_a = JSON).parse;\n return [4 /*yield*/, store.get(Key_CanisterIds)];\n case 1:\n value = _b.apply(_a, [_c.sent()]);\n if (value && Array.isArray(value)) {\n return [2 /*return*/, value];\n }\n return [3 /*break*/, 3];\n case 2:\n e_1 = _c.sent();\n (0, utils_1.warn)(\"storage.getCanisterIds\", e_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/, []];\n }\n });\n }); },\n setCanisterIds: function (value) {\n store.set(Key_CanisterIds, JSON.stringify(value));\n },\n }\n};\n//# sourceMappingURL=Storage.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCanisterActor = void 0;\nvar agent_1 = require(\"@dfinity/agent\");\nvar idlFactory = function (_a) {\n var IDL = _a.IDL;\n var SdkVersion = IDL.Nat32;\n var ProjectApiKey = IDL.Text;\n var AccessToken = IDL.Text;\n var AnalyticsReceiverApiError = IDL.Variant({\n 'invalidClient': IDL.Null,\n 'wrongAccessToken': IDL.Null,\n 'temporarilyUnavailable': IDL.Null,\n });\n var IsCollectRequiredResult = IDL.Variant({\n 'ok': IDL.Bool,\n 'err': AnalyticsReceiverApiError,\n });\n var IsCollectRequired = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [IsCollectRequiredResult], ['query']);\n var CollectResult = IDL.Variant({\n 'ok': IDL.Null,\n 'err': AnalyticsReceiverApiError,\n });\n var Collect = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [CollectResult], []);\n var AnalyticsReceiverApi = IDL.Record({\n 'isCollectRequired': IsCollectRequired,\n 'collect': Collect,\n });\n var GetAnalyticsReceiverApiResult = IDL.Variant({\n 'ok': AnalyticsReceiverApi,\n 'err': AnalyticsReceiverApiError,\n });\n var GetAnalyticsReceiverApi = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [GetAnalyticsReceiverApiResult], ['query']);\n var AnalyticsReceiver = IDL.Record({\n 'getAnalyticsReceiverApi': GetAnalyticsReceiverApi,\n 'accessToken': AccessToken,\n });\n var GetAnalyticsReceiverError = IDL.Variant({\n 'wrongApiKey': IDL.Null,\n 'clientBlocked': IDL.Null,\n 'invalidClient': IDL.Null,\n 'clientNotRegistered': IDL.Null,\n 'temporarilyUnavailable': IDL.Null,\n 'wrongTopology': IDL.Null,\n });\n var GetAnalyticsReceiverResult = IDL.Variant({\n 'ok': AnalyticsReceiver,\n 'err': GetAnalyticsReceiverError,\n });\n var RegisterClientOkResult = IDL.Record({\n 'analyticsReceiver': AnalyticsReceiver,\n 'analyticsStoreNotified': IDL.Bool,\n });\n var RegisterClientError = IDL.Variant({\n 'wrongApiKey': IDL.Null,\n 'invalidClient': IDL.Null,\n 'temporarilyUnavailable': IDL.Null,\n 'wrongTopology': IDL.Null,\n });\n var RegisterClientResult = IDL.Variant({\n 'ok': RegisterClientOkResult,\n 'err': RegisterClientError,\n });\n return IDL.Service({\n 'getAnalyticsReceiver': IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, ProjectApiKey], [GetAnalyticsReceiverResult], ['query']),\n 'registerClient': IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, ProjectApiKey], [RegisterClientResult], []),\n });\n};\n/**\n *\n * @param {string | import(\"@dfinity/principal\").Principal} canisterId Canister ID of Agent\n * @param {{agentOptions?: import(\"@dfinity/agent\").HttpAgentOptions; actorOptions?: import(\"@dfinity/agent\").ActorConfig}} [options]\n * @return {import(\"@dfinity/agent\").ActorSubclass<import(\"src/canisters/clientRegistry.did.d.ts\")._SERVICE>}\n */\nvar createActor = function (canisterId, options) {\n var agent = new agent_1.HttpAgent(__assign({}, options === null || options === void 0 ? void 0 : options.agentOptions));\n // Fetch root key for certificate validation during development\n if (process.env.NODE_ENV !== \"production\") {\n agent.fetchRootKey().catch(function (err) {\n console.warn(\"Unable to fetch root key. Check to ensure that your local replica is running\");\n console.error(err);\n });\n }\n // Creates an actor with using the candid interface and the HttpAgent\n return agent_1.Actor.createActor(idlFactory, __assign({ agent: agent, canisterId: canisterId }, options === null || options === void 0 ? void 0 : options.actorOptions));\n};\n/**\n *\n * @param {string} canisterId\n * @param {import(\"@dfinity/agent\").Identity} identity\n * @param {string} host\n * @return {import(\"@dfinity/agent\").ActorSubclass<import(\"src/canisters/clientRegistry.did.d.ts\")._SERVICE>}\n */\nvar createCanisterActor = function (canisterId, identity, host) {\n return createActor(canisterId, {\n agentOptions: {\n identity: identity,\n host: host\n }\n });\n};\nexports.createCanisterActor = createCanisterActor;\n//# sourceMappingURL=clientRegistry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.coordinator_canister_ids = void 0;\nexports.coordinator_canister_ids = process.env[\"COORDINATOR_CANISTER_IDS\"] || [\"r5m4o-xaaaa-aaaah-qbpfq-cai\", \"3vhcz-7yaaa-aaaah-qbr2q-cai\"];\n//# sourceMappingURL=constants.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResult = void 0;\nvar analyticsStore_1 = require(\"./canisters/analyticsStore\");\nvar utils_1 = require(\"./utils\");\nvar agent_1 = require(\"@dfinity/agent\");\nvar getResult = function (sdkVersion, sessionContext, canisterPrincipal, accessToken) { return __awaiter(void 0, void 0, void 0, function () {\n var getApiActor, handleGetAnalyticsReceiverApiResponse, apiPrincipal, actor, handleIsCollectRequiredResponse, handleCollectResponse;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n getApiActor = (0, analyticsStore_1.createCanisterActor)(canisterPrincipal.toText(), new agent_1.AnonymousIdentity(), sessionContext.host);\n return [4 /*yield*/, handleGetAnalyticsReceiverApi(getApiActor, sessionContext.clientPrincipal, sdkVersion, accessToken)];\n case 1:\n handleGetAnalyticsReceiverApiResponse = _a.sent();\n if (!(0, utils_1.isOk)(handleGetAnalyticsReceiverApiResponse)) return [3 /*break*/, 8];\n apiPrincipal = handleGetAnalyticsReceiverApiResponse.ok;\n actor = (0, analyticsStore_1.createCanisterActor)(apiPrincipal.toText(), new agent_1.AnonymousIdentity(), sessionContext.host);\n return [4 /*yield*/, isCollectRequired(actor, sessionContext.clientPrincipal, sdkVersion, accessToken)];\n case 2:\n handleIsCollectRequiredResponse = _a.sent();\n if (!(0, utils_1.isOk)(handleIsCollectRequiredResponse)) return [3 /*break*/, 6];\n if (!handleIsCollectRequiredResponse.ok.isCollectRequired) return [3 /*break*/, 4];\n return [4 /*yield*/, handleCollect(actor, sessionContext.clientPrincipal, sdkVersion, accessToken)];\n case 3:\n handleCollectResponse = _a.sent();\n if ((0, utils_1.isOk)(handleCollectResponse)) {\n return [2 /*return*/, (0, utils_1.createOkResult)(\"collected\")];\n }\n else if ((0, utils_1.isErr)(handleCollectResponse)) {\n return [2 /*return*/, handleCollectResponse];\n }\n return [3 /*break*/, 5];\n case 4: return [2 /*return*/, (0, utils_1.createOkResult)(\"alreadyCollected\")];\n case 5: return [3 /*break*/, 7];\n case 6:\n if ((0, utils_1.isErr)(handleIsCollectRequiredResponse)) {\n return [2 /*return*/, handleIsCollectRequiredResponse];\n }\n _a.label = 7;\n case 7: return [3 /*break*/, 9];\n case 8:\n if ((0, utils_1.isErr)(handleGetAnalyticsReceiverApiResponse)) {\n return [2 /*return*/, handleGetAnalyticsReceiverApiResponse];\n }\n _a.label = 9;\n case 9: return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n}); };\nexports.getResult = getResult;\nvar handleGetAnalyticsReceiverApi = function (actor, clientPrincipal, sdkVersion, accessToken) { return __awaiter(void 0, void 0, void 0, function () {\n var result, e_1, apiPrincipal, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, actor.getAnalyticsReceiverApi([clientPrincipal], sdkVersion, accessToken)];\n case 1:\n result = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_1 = _a.sent();\n (0, utils_1.warn)(\"actor.getAnalyticsReceiverApi\", e_1);\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n case 3:\n (0, utils_1.log)(\"actor.getAnalyticsReceiverApi\", result);\n if ((0, utils_1.isOk)(result)) {\n apiPrincipal = getAnalyticsReceiverApiPrincipal(result.ok);\n return [2 /*return*/, (0, utils_1.createOkResult)(apiPrincipal)];\n }\n else if ((0, utils_1.isErr)(result)) {\n error = result.err;\n if ((0, utils_1.isErrTemporarilyUnavailable)(error)) {\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n }\n }\n return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n}); };\nvar isCollectRequired = function (actor, clientPrincipal, sdkVersion, accessToken) { return __awaiter(void 0, void 0, void 0, function () {\n var result, e_2, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, actor.isCollectRequired([clientPrincipal], sdkVersion, accessToken)];\n case 1:\n result = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_2 = _a.sent();\n (0, utils_1.warn)(\"actor.isCollectRequired\", e_2);\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n case 3:\n (0, utils_1.log)(\"actor.isCollectRequired\", result);\n if ((0, utils_1.isOk)(result)) {\n return [2 /*return*/, (0, utils_1.createOkResult)({ isCollectRequired: result.ok })];\n }\n else if ((0, utils_1.isErr)(result)) {\n error = result.err;\n if ((0, utils_1.isErrTemporarilyUnavailable)(error)) {\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n }\n }\n return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n}); };\nvar handleCollect = function (actor, clientPrincipal, sdkVersion, accessToken) { return __awaiter(void 0, void 0, void 0, function () {\n var result, e_3, error;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, actor.collect([clientPrincipal], sdkVersion, accessToken)];\n case 1:\n result = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_3 = _a.sent();\n (0, utils_1.warn)(\"actor.collect\", e_3);\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n case 3:\n (0, utils_1.log)(\"actor.collect\", result);\n if ((0, utils_1.isOk)(result)) {\n return [2 /*return*/, (0, utils_1.createOkResult)(null)];\n }\n else if ((0, utils_1.isErr)(result)) {\n error = result.err;\n if ((0, utils_1.isErrTemporarilyUnavailable)(error)) {\n return [2 /*return*/, (0, utils_1.createErrRetry)()];\n }\n }\n return [2 /*return*/, (0, utils_1.createErrFatal)()];\n }\n });\n}); };\nvar getAnalyticsReceiverApiPrincipal = function (analyticsReceiverApi) {\n var getAnalyticsReceiverApiData = (0, utils_1.getSharedFunctionData)(analyticsReceiverApi.isCollectRequired);\n if (getAnalyticsReceiverApiData) {\n var principal = getAnalyticsReceiverApiData[0];\n return principal;\n }\n return undefined;\n};\n//# sourceMappingURL=AnalyticsStoreService.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createCanisterActor = void 0;\nvar agent_1 = require(\"@dfinity/agent\");\nvar idlFactory = function (_a) {\n var IDL = _a.IDL;\n var SdkVersion = IDL.Nat32;\n var AccessToken = IDL.Text;\n var AnalyticsReceiverApiError = IDL.Variant({\n 'invalidClient': IDL.Null,\n 'wrongAccessToken': IDL.Null,\n 'temporarilyUnavailable': IDL.Null,\n });\n var CollectResult = IDL.Variant({\n 'ok': IDL.Null,\n 'err': AnalyticsReceiverApiError,\n });\n var IsCollectRequiredResult = IDL.Variant({\n 'ok': IDL.Bool,\n 'err': AnalyticsReceiverApiError,\n });\n var IsCollectRequired = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [IsCollectRequiredResult], ['query']);\n var Collect = IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [CollectResult], []);\n var AnalyticsReceiverApi = IDL.Record({\n 'isCollectRequired': IsCollectRequired,\n 'collect': Collect,\n });\n var GetAnalyticsReceiverApiResult = IDL.Variant({\n 'ok': AnalyticsReceiverApi,\n 'err': AnalyticsReceiverApiError,\n });\n return IDL.Service({\n 'collect': IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [CollectResult], []),\n 'getAnalyticsReceiverApi': IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [GetAnalyticsReceiverApiResult], ['query']),\n 'isCollectRequired': IDL.Func([IDL.Opt(IDL.Principal), SdkVersion, AccessToken], [IsCollectRequiredResult], ['query']),\n });\n};\n/**\n *\n * @param {string | import(\"@dfinity/principal\").Principal} canisterId Canister ID of Agent\n * @param {{agentOptions?: import(\"@dfinity/agent\").HttpAgentOptions; actorOptions?: import(\"@dfinity/agent\").ActorConfig}} [options]\n * @return {import(\"@dfinity/agent\").ActorSubclass<import(\"src/canisters/analyticsStore.did.d.ts\")._SERVICE>}\n */\nvar createActor = function (canisterId, options) {\n var agent = new agent_1.HttpAgent(__assign({}, options === null || options === void 0 ? void 0 : options.agentOptions));\n // Fetch root key for certificate validation during development\n if (process.env.NODE_ENV !== \"production\") {\n agent.fetchRootKey().catch(function (err) {\n console.warn(\"Unable to fetch root key. Check to ensure that your local replica is running\");\n console.error(err);\n });\n }\n // Creates an actor with using the candid interface and the HttpAgent\n return agent_1.Actor.createActor(idlFactory, __assign({ agent: agent, canisterId: canisterId }, options === null || options === void 0 ? void 0 : options.actorOptions));\n};\n/**\n *\n * @param {string} canisterId\n * @param {import(\"@dfinity/agent\").Identity} identity\n * @param {string} host\n * @return {import(\"@dfinity/agent\").ActorSubclass<import(\"src/canisters/analyticsStore.did.d.ts\")._SERVICE>}\n */\nvar createCanisterActor = function (canisterId, identity, host) {\n return createActor(canisterId, {\n agentOptions: {\n identity: identity,\n host: host\n }\n });\n};\nexports.createCanisterActor = createCanisterActor;\n//# sourceMappingURL=analyticsStore.js.map","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./proptypes\"), exports);\n__exportStar(require(\"./colors\"), exports);\n__exportStar(require(\"./unitConverter\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.heightWidthRadiusDefaults = exports.heightWidthDefaults = exports.sizeMarginDefaults = exports.sizeDefaults = void 0;\n/*\n * DefaultProps object for different loaders\n */\nvar commonValues = {\n loading: true,\n color: \"#000000\",\n css: \"\",\n speedMultiplier: 1\n};\nfunction sizeDefaults(sizeValue) {\n return Object.assign({}, commonValues, { size: sizeValue });\n}\nexports.sizeDefaults = sizeDefaults;\nfunction sizeMarginDefaults(sizeValue) {\n return Object.assign({}, sizeDefaults(sizeValue), {\n margin: 2\n });\n}\nexports.sizeMarginDefaults = sizeMarginDefaults;\nfunction heightWidthDefaults(height, width) {\n return Object.assign({}, commonValues, {\n height: height,\n width: width\n });\n}\nexports.heightWidthDefaults = heightWidthDefaults;\nfunction heightWidthRadiusDefaults(height, width, radius) {\n if (radius === void 0) { radius = 2; }\n return Object.assign({}, heightWidthDefaults(height, width), {\n radius: radius,\n margin: 2\n });\n}\nexports.heightWidthRadiusDefaults = heightWidthRadiusDefaults;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateRgba = void 0;\nvar BasicColors;\n(function (BasicColors) {\n BasicColors[\"maroon\"] = \"#800000\";\n BasicColors[\"red\"] = \"#FF0000\";\n BasicColors[\"orange\"] = \"#FFA500\";\n BasicColors[\"yellow\"] = \"#FFFF00\";\n BasicColors[\"olive\"] = \"#808000\";\n BasicColors[\"green\"] = \"#008000\";\n BasicColors[\"purple\"] = \"#800080\";\n BasicColors[\"fuchsia\"] = \"#FF00FF\";\n BasicColors[\"lime\"] = \"#00FF00\";\n BasicColors[\"teal\"] = \"#008080\";\n BasicColors[\"aqua\"] = \"#00FFFF\";\n BasicColors[\"blue\"] = \"#0000FF\";\n BasicColors[\"navy\"] = \"#000080\";\n BasicColors[\"black\"] = \"#000000\";\n BasicColors[\"gray\"] = \"#808080\";\n BasicColors[\"silver\"] = \"#C0C0C0\";\n BasicColors[\"white\"] = \"#FFFFFF\";\n})(BasicColors || (BasicColors = {}));\nvar calculateRgba = function (color, opacity) {\n if (Object.keys(BasicColors).includes(color)) {\n color = BasicColors[color];\n }\n if (color[0] === \"#\") {\n color = color.slice(1);\n }\n if (color.length === 3) {\n var res_1 = \"\";\n color.split(\"\").forEach(function (c) {\n res_1 += c;\n res_1 += c;\n });\n color = res_1;\n }\n var rgbValues = (color.match(/.{2}/g) || [])\n .map(function (hex) { return parseInt(hex, 16); })\n .join(\", \");\n return \"rgba(\" + rgbValues + \", \" + opacity + \")\";\n};\nexports.calculateRgba = calculateRgba;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssValue = exports.parseLengthAndUnit = void 0;\nvar cssUnit = {\n cm: true,\n mm: true,\n in: true,\n px: true,\n pt: true,\n pc: true,\n em: true,\n ex: true,\n ch: true,\n rem: true,\n vw: true,\n vh: true,\n vmin: true,\n vmax: true,\n \"%\": true\n};\n/**\n * If size is a number, append px to the value as default unit.\n * If size is a string, validate against list of valid units.\n * If unit is valid, return size as is.\n * If unit is invalid, console warn issue, replace with px as the unit.\n *\n * @param {(number | string)} size\n * @return {LengthObject} LengthObject\n */\nfunction parseLengthAndUnit(size) {\n if (typeof size === \"number\") {\n return {\n value: size,\n unit: \"px\"\n };\n }\n var value;\n var valueString = (size.match(/^[0-9.]*/) || \"\").toString();\n if (valueString.includes(\".\")) {\n value = parseFloat(valueString);\n }\n else {\n value = parseInt(valueString, 10);\n }\n var unit = (size.match(/[^0-9]*$/) || \"\").toString();\n if (cssUnit[unit]) {\n return {\n value: value,\n unit: unit\n };\n }\n console.warn(\"React Spinners: \" + size + \" is not a valid css value. Defaulting to \" + value + \"px.\");\n return {\n value: value,\n unit: \"px\"\n };\n}\nexports.parseLengthAndUnit = parseLengthAndUnit;\n/**\n * Take value as an input and return valid css value\n *\n * @param {(number | string)} value\n * @return {string} valid css value\n */\nfunction cssValue(value) {\n var lengthWithunit = parseLengthAndUnit(value);\n return \"\" + lengthWithunit.value + lengthWithunit.unit;\n}\nexports.cssValue = cssValue;\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst LOAD_BASE = name => Promise.reject(new Error(`No base found for \"${ name }\"`));\nclass Multibases {\n constructor(options) {\n this._basesByName = {};\n this._basesByPrefix = {};\n this._loadBase = options.loadBase || LOAD_BASE;\n for (const base of options.bases) {\n this.addBase(base);\n }\n }\n addBase(base) {\n if (this._basesByName[base.name] || this._basesByPrefix[base.prefix]) {\n throw new Error(`Codec already exists for codec \"${ base.name }\"`);\n }\n this._basesByName[base.name] = base;\n this._basesByPrefix[base.prefix] = base;\n }\n removeBase(base) {\n delete this._basesByName[base.name];\n delete this._basesByPrefix[base.prefix];\n }\n async getBase(nameOrPrefix) {\n if (this._basesByName[nameOrPrefix]) {\n return this._basesByName[nameOrPrefix];\n }\n if (this._basesByPrefix[nameOrPrefix]) {\n return this._basesByPrefix[nameOrPrefix];\n }\n const base = await this._loadBase(nameOrPrefix);\n if (this._basesByName[base.name] == null && this._basesByPrefix[base.prefix] == null) {\n this.addBase(base);\n }\n return base;\n }\n listBases() {\n return Object.values(this._basesByName);\n }\n}\n\nexports.Multibases = Multibases;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst LOAD_CODEC = codeOrName => Promise.reject(new Error(`No codec found for \"${ codeOrName }\"`));\nclass Multicodecs {\n constructor(options) {\n this._codecsByName = {};\n this._codecsByCode = {};\n this._loadCodec = options.loadCodec || LOAD_CODEC;\n for (const codec of options.codecs) {\n this.addCodec(codec);\n }\n }\n addCodec(codec) {\n if (this._codecsByName[codec.name] || this._codecsByCode[codec.code]) {\n throw new Error(`Resolver already exists for codec \"${ codec.name }\"`);\n }\n this._codecsByName[codec.name] = codec;\n this._codecsByCode[codec.code] = codec;\n }\n removeCodec(codec) {\n delete this._codecsByName[codec.name];\n delete this._codecsByCode[codec.code];\n }\n async getCodec(code) {\n const table = typeof code === 'string' ? this._codecsByName : this._codecsByCode;\n if (table[code]) {\n return table[code];\n }\n const codec = await this._loadCodec(code);\n if (table[code] == null) {\n this.addCodec(codec);\n }\n return codec;\n }\n listCodecs() {\n return Object.values(this._codecsByName);\n }\n}\n\nexports.Multicodecs = Multicodecs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst LOAD_HASHER = codeOrName => Promise.reject(new Error(`No hasher found for \"${ codeOrName }\"`));\nclass Multihashes {\n constructor(options) {\n this._hashersByName = {};\n this._hashersByCode = {};\n this._loadHasher = options.loadHasher || LOAD_HASHER;\n for (const hasher of options.hashers) {\n this.addHasher(hasher);\n }\n }\n addHasher(hasher) {\n if (this._hashersByName[hasher.name] || this._hashersByCode[hasher.code]) {\n throw new Error(`Resolver already exists for codec \"${ hasher.name }\"`);\n }\n this._hashersByName[hasher.name] = hasher;\n this._hashersByCode[hasher.code] = hasher;\n }\n removeHasher(hasher) {\n delete this._hashersByName[hasher.name];\n delete this._hashersByCode[hasher.code];\n }\n async getHasher(code) {\n const table = typeof code === 'string' ? this._hashersByName : this._hashersByCode;\n if (table[code]) {\n return table[code];\n }\n const hasher = await this._loadHasher(code);\n if (table[code] == null) {\n this.addHasher(hasher);\n }\n return hasher;\n }\n listHashers() {\n return Object.values(this._hashersByName);\n }\n}\n\nexports.Multihashes = Multihashes;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar pbDecode = require('./pb-decode.js');\nvar pbEncode = require('./pb-encode.js');\nvar util = require('./util.js');\n\nconst name = 'dag-pb';\nconst code = 112;\nfunction encode(node) {\n util.validate(node);\n const pbn = {};\n if (node.Links) {\n pbn.Links = node.Links.map(l => {\n const link = {};\n if (l.Hash) {\n link.Hash = l.Hash.bytes;\n }\n if (l.Name !== undefined) {\n link.Name = l.Name;\n }\n if (l.Tsize !== undefined) {\n link.Tsize = l.Tsize;\n }\n return link;\n });\n }\n if (node.Data) {\n pbn.Data = node.Data;\n }\n return pbEncode.encodeNode(pbn);\n}\nfunction decode(bytes) {\n const pbn = pbDecode.decodeNode(bytes);\n const node = {};\n if (pbn.Data) {\n node.Data = pbn.Data;\n }\n if (pbn.Links) {\n node.Links = pbn.Links.map(l => {\n const link = {};\n try {\n link.Hash = cid.CID.decode(l.Hash);\n } catch (e) {\n }\n if (!link.Hash) {\n throw new Error('Invalid Hash field found in link, expected CID');\n }\n if (l.Name !== undefined) {\n link.Name = l.Name;\n }\n if (l.Tsize !== undefined) {\n link.Tsize = l.Tsize;\n }\n return link;\n });\n }\n return node;\n}\n\nexports.createLink = util.createLink;\nexports.createNode = util.createNode;\nexports.prepare = util.prepare;\nexports.validate = util.validate;\nexports.code = code;\nexports.decode = decode;\nexports.encode = encode;\nexports.name = name;\n","'use strict';\n\nvar encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nvar varint$1 = _brrp_varint;\n\nmodule.exports = varint$1;\n","'use strict';\n\nfunction base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\n\nmodule.exports = _brrp__multiformats_scope_baseX;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst textDecoder = new TextDecoder();\nfunction decodeVarint(bytes, offset) {\n let v = 0;\n for (let shift = 0;; shift += 7) {\n if (shift >= 64) {\n throw new Error('protobuf: varint overflow');\n }\n if (offset >= bytes.length) {\n throw new Error('protobuf: unexpected end of data');\n }\n const b = bytes[offset++];\n v += shift < 28 ? (b & 127) << shift : (b & 127) * 2 ** shift;\n if (b < 128) {\n break;\n }\n }\n return [\n v,\n offset\n ];\n}\nfunction decodeBytes(bytes, offset) {\n let byteLen;\n [byteLen, offset] = decodeVarint(bytes, offset);\n const postOffset = offset + byteLen;\n if (byteLen < 0 || postOffset < 0) {\n throw new Error('protobuf: invalid length');\n }\n if (postOffset > bytes.length) {\n throw new Error('protobuf: unexpected end of data');\n }\n return [\n bytes.subarray(offset, postOffset),\n postOffset\n ];\n}\nfunction decodeKey(bytes, index) {\n let wire;\n [wire, index] = decodeVarint(bytes, index);\n return [\n wire & 7,\n wire >> 3,\n index\n ];\n}\nfunction decodeLink(bytes) {\n const link = {};\n const l = bytes.length;\n let index = 0;\n while (index < l) {\n let wireType, fieldNum;\n [wireType, fieldNum, index] = decodeKey(bytes, index);\n if (fieldNum === 1) {\n if (link.Hash) {\n throw new Error('protobuf: (PBLink) duplicate Hash section');\n }\n if (wireType !== 2) {\n throw new Error(`protobuf: (PBLink) wrong wireType (${ wireType }) for Hash`);\n }\n if (link.Name !== undefined) {\n throw new Error('protobuf: (PBLink) invalid order, found Name before Hash');\n }\n if (link.Tsize !== undefined) {\n throw new Error('protobuf: (PBLink) invalid order, found Tsize before Hash');\n }\n ;\n [link.Hash, index] = decodeBytes(bytes, index);\n } else if (fieldNum === 2) {\n if (link.Name !== undefined) {\n throw new Error('protobuf: (PBLink) duplicate Name section');\n }\n if (wireType !== 2) {\n throw new Error(`protobuf: (PBLink) wrong wireType (${ wireType }) for Name`);\n }\n if (link.Tsize !== undefined) {\n throw new Error('protobuf: (PBLink) invalid order, found Tsize before Name');\n }\n let byts;\n [byts, index] = decodeBytes(bytes, index);\n link.Name = textDecoder.decode(byts);\n } else if (fieldNum === 3) {\n if (link.Tsize !== undefined) {\n throw new Error('protobuf: (PBLink) duplicate Tsize section');\n }\n if (wireType !== 0) {\n throw new Error(`protobuf: (PBLink) wrong wireType (${ wireType }) for Tsize`);\n }\n ;\n [link.Tsize, index] = decodeVarint(bytes, index);\n } else {\n throw new Error(`protobuf: (PBLink) invalid fieldNumber, expected 1, 2 or 3, got ${ fieldNum }`);\n }\n }\n if (index > l) {\n throw new Error('protobuf: (PBLink) unexpected end of data');\n }\n return link;\n}\nfunction decodeNode(bytes) {\n const l = bytes.length;\n let index = 0;\n let links;\n let linksBeforeData = false;\n let data;\n while (index < l) {\n let wireType, fieldNum;\n [wireType, fieldNum, index] = decodeKey(bytes, index);\n if (wireType !== 2) {\n throw new Error(`protobuf: (PBNode) invalid wireType, expected 2, got ${ wireType }`);\n }\n if (fieldNum === 1) {\n if (data) {\n throw new Error('protobuf: (PBNode) duplicate Data section');\n }\n ;\n [data, index] = decodeBytes(bytes, index);\n if (links) {\n linksBeforeData = true;\n }\n } else if (fieldNum === 2) {\n if (linksBeforeData) {\n throw new Error('protobuf: (PBNode) duplicate Links section');\n } else if (!links) {\n links = [];\n }\n let byts;\n [byts, index] = decodeBytes(bytes, index);\n links.push(decodeLink(byts));\n } else {\n throw new Error(`protobuf: (PBNode) invalid fieldNumber, expected 1 or 2, got ${ fieldNum }`);\n }\n }\n if (index > l) {\n throw new Error('protobuf: (PBNode) unexpected end of data');\n }\n const node = {};\n if (data) {\n node.Data = data;\n }\n node.Links = links || [];\n return node;\n}\n\nexports.decodeNode = decodeNode;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst textEncoder = new TextEncoder();\nconst maxInt32 = 2 ** 32;\nconst maxUInt32 = 2 ** 31;\nfunction encodeLink(link, bytes) {\n let i = bytes.length;\n if (typeof link.Tsize === 'number') {\n if (link.Tsize < 0) {\n throw new Error('Tsize cannot be negative');\n }\n if (!Number.isSafeInteger(link.Tsize)) {\n throw new Error('Tsize too large for encoding');\n }\n i = encodeVarint(bytes, i, link.Tsize) - 1;\n bytes[i] = 24;\n }\n if (typeof link.Name === 'string') {\n const nameBytes = textEncoder.encode(link.Name);\n i -= nameBytes.length;\n bytes.set(nameBytes, i);\n i = encodeVarint(bytes, i, nameBytes.length) - 1;\n bytes[i] = 18;\n }\n if (link.Hash) {\n i -= link.Hash.length;\n bytes.set(link.Hash, i);\n i = encodeVarint(bytes, i, link.Hash.length) - 1;\n bytes[i] = 10;\n }\n return bytes.length - i;\n}\nfunction encodeNode(node) {\n const size = sizeNode(node);\n const bytes = new Uint8Array(size);\n let i = size;\n if (node.Data) {\n i -= node.Data.length;\n bytes.set(node.Data, i);\n i = encodeVarint(bytes, i, node.Data.length) - 1;\n bytes[i] = 10;\n }\n if (node.Links) {\n for (let index = node.Links.length - 1; index >= 0; index--) {\n const size = encodeLink(node.Links[index], bytes.subarray(0, i));\n i -= size;\n i = encodeVarint(bytes, i, size) - 1;\n bytes[i] = 18;\n }\n }\n return bytes;\n}\nfunction sizeLink(link) {\n let n = 0;\n if (link.Hash) {\n const l = link.Hash.length;\n n += 1 + l + sov(l);\n }\n if (typeof link.Name === 'string') {\n const l = textEncoder.encode(link.Name).length;\n n += 1 + l + sov(l);\n }\n if (typeof link.Tsize === 'number') {\n n += 1 + sov(link.Tsize);\n }\n return n;\n}\nfunction sizeNode(node) {\n let n = 0;\n if (node.Data) {\n const l = node.Data.length;\n n += 1 + l + sov(l);\n }\n if (node.Links) {\n for (const link of node.Links) {\n const l = sizeLink(link);\n n += 1 + l + sov(l);\n }\n }\n return n;\n}\nfunction encodeVarint(bytes, offset, v) {\n offset -= sov(v);\n const base = offset;\n while (v >= maxUInt32) {\n bytes[offset++] = v & 127 | 128;\n v /= 128;\n }\n while (v >= 128) {\n bytes[offset++] = v & 127 | 128;\n v >>>= 7;\n }\n bytes[offset] = v;\n return base;\n}\nfunction sov(x) {\n if (x % 2 === 0) {\n x++;\n }\n return Math.floor((len64(x) + 6) / 7);\n}\nfunction len64(x) {\n let n = 0;\n if (x >= maxInt32) {\n x = Math.floor(x / maxInt32);\n n = 32;\n }\n if (x >= 1 << 16) {\n x >>>= 16;\n n += 16;\n }\n if (x >= 1 << 8) {\n x >>>= 8;\n n += 8;\n }\n return n + len8tab[x];\n}\nconst len8tab = [\n 0,\n 1,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8,\n 8\n];\n\nexports.encodeNode = encodeNode;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\n\nconst pbNodeProperties = [\n 'Data',\n 'Links'\n];\nconst pbLinkProperties = [\n 'Hash',\n 'Name',\n 'Tsize'\n];\nconst textEncoder = new TextEncoder();\nfunction linkComparator(a, b) {\n if (a === b) {\n return 0;\n }\n const abuf = a.Name ? textEncoder.encode(a.Name) : [];\n const bbuf = b.Name ? textEncoder.encode(b.Name) : [];\n let x = abuf.length;\n let y = bbuf.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (abuf[i] !== bbuf[i]) {\n x = abuf[i];\n y = bbuf[i];\n break;\n }\n }\n return x < y ? -1 : y < x ? 1 : 0;\n}\nfunction hasOnlyProperties(node, properties) {\n return !Object.keys(node).some(p => !properties.includes(p));\n}\nfunction asLink(link) {\n if (typeof link.asCID === 'object') {\n const Hash = cid.CID.asCID(link);\n if (!Hash) {\n throw new TypeError('Invalid DAG-PB form');\n }\n return { Hash };\n }\n if (typeof link !== 'object' || Array.isArray(link)) {\n throw new TypeError('Invalid DAG-PB form');\n }\n const pbl = {};\n if (link.Hash) {\n let cid$1 = cid.CID.asCID(link.Hash);\n try {\n if (!cid$1) {\n if (typeof link.Hash === 'string') {\n cid$1 = cid.CID.parse(link.Hash);\n } else if (link.Hash instanceof Uint8Array) {\n cid$1 = cid.CID.decode(link.Hash);\n }\n }\n } catch (e) {\n throw new TypeError(`Invalid DAG-PB form: ${ e.message }`);\n }\n if (cid$1) {\n pbl.Hash = cid$1;\n }\n }\n if (!pbl.Hash) {\n throw new TypeError('Invalid DAG-PB form');\n }\n if (typeof link.Name === 'string') {\n pbl.Name = link.Name;\n }\n if (typeof link.Tsize === 'number') {\n pbl.Tsize = link.Tsize;\n }\n return pbl;\n}\nfunction prepare(node) {\n if (node instanceof Uint8Array || typeof node === 'string') {\n node = { Data: node };\n }\n if (typeof node !== 'object' || Array.isArray(node)) {\n throw new TypeError('Invalid DAG-PB form');\n }\n const pbn = {};\n if (node.Data !== undefined) {\n if (typeof node.Data === 'string') {\n pbn.Data = textEncoder.encode(node.Data);\n } else if (node.Data instanceof Uint8Array) {\n pbn.Data = node.Data;\n } else {\n throw new TypeError('Invalid DAG-PB form');\n }\n }\n if (node.Links !== undefined) {\n if (Array.isArray(node.Links)) {\n pbn.Links = node.Links.map(asLink);\n pbn.Links.sort(linkComparator);\n } else {\n throw new TypeError('Invalid DAG-PB form');\n }\n } else {\n pbn.Links = [];\n }\n return pbn;\n}\nfunction validate(node) {\n if (!node || typeof node !== 'object' || Array.isArray(node)) {\n throw new TypeError('Invalid DAG-PB form');\n }\n if (!hasOnlyProperties(node, pbNodeProperties)) {\n throw new TypeError('Invalid DAG-PB form (extraneous properties)');\n }\n if (node.Data !== undefined && !(node.Data instanceof Uint8Array)) {\n throw new TypeError('Invalid DAG-PB form (Data must be a Uint8Array)');\n }\n if (!Array.isArray(node.Links)) {\n throw new TypeError('Invalid DAG-PB form (Links must be an array)');\n }\n for (let i = 0; i < node.Links.length; i++) {\n const link = node.Links[i];\n if (!link || typeof link !== 'object' || Array.isArray(link)) {\n throw new TypeError('Invalid DAG-PB form (bad link object)');\n }\n if (!hasOnlyProperties(link, pbLinkProperties)) {\n throw new TypeError('Invalid DAG-PB form (extraneous properties on link object)');\n }\n if (!link.Hash) {\n throw new TypeError('Invalid DAG-PB form (link must have a Hash)');\n }\n if (link.Hash.asCID !== link.Hash) {\n throw new TypeError('Invalid DAG-PB form (link Hash must be a CID)');\n }\n if (link.Name !== undefined && typeof link.Name !== 'string') {\n throw new TypeError('Invalid DAG-PB form (link Name must be a string)');\n }\n if (link.Tsize !== undefined && (typeof link.Tsize !== 'number' || link.Tsize % 1 !== 0)) {\n throw new TypeError('Invalid DAG-PB form (link Tsize must be an integer)');\n }\n if (i > 0 && linkComparator(link, node.Links[i - 1]) === -1) {\n throw new TypeError('Invalid DAG-PB form (links must be sorted by Name bytes)');\n }\n }\n}\nfunction createNode(data, links = []) {\n return prepare({\n Data: data,\n Links: links\n });\n}\nfunction createLink(name, size, cid) {\n return asLink({\n Hash: cid,\n Name: name,\n Tsize: size\n });\n}\n\nexports.createLink = createLink;\nexports.createNode = createNode;\nexports.prepare = prepare;\nexports.validate = validate;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cborg = require('cborg');\nvar cid = require('multiformats/cid');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar cborg__namespace = /*#__PURE__*/_interopNamespace(cborg);\n\nconst CID_CBOR_TAG = 42;\nfunction cidEncoder(obj) {\n if (obj.asCID !== obj) {\n return null;\n }\n const cid$1 = cid.CID.asCID(obj);\n if (!cid$1) {\n return null;\n }\n const bytes = new Uint8Array(cid$1.bytes.byteLength + 1);\n bytes.set(cid$1.bytes, 1);\n return [\n new cborg__namespace.Token(cborg__namespace.Type.tag, CID_CBOR_TAG),\n new cborg__namespace.Token(cborg__namespace.Type.bytes, bytes)\n ];\n}\nfunction undefinedEncoder() {\n throw new Error('`undefined` is not supported by the IPLD Data Model and cannot be encoded');\n}\nfunction numberEncoder(num) {\n if (Number.isNaN(num)) {\n throw new Error('`NaN` is not supported by the IPLD Data Model and cannot be encoded');\n }\n if (num === Infinity || num === -Infinity) {\n throw new Error('`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded');\n }\n return null;\n}\nconst encodeOptions = {\n float64: true,\n typeEncoders: {\n Object: cidEncoder,\n undefined: undefinedEncoder,\n number: numberEncoder\n }\n};\nfunction cidDecoder(bytes) {\n if (bytes[0] !== 0) {\n throw new Error('Invalid CID for CBOR tag 42; expected leading 0x00');\n }\n return cid.CID.decode(bytes.subarray(1));\n}\nconst decodeOptions = {\n allowIndefinite: false,\n allowUndefined: false,\n allowNaN: false,\n allowInfinity: false,\n allowBigInt: true,\n strict: true,\n useMaps: false,\n tags: []\n};\ndecodeOptions.tags[CID_CBOR_TAG] = cidDecoder;\nconst name = 'dag-cbor';\nconst code = 113;\nconst encode = node => cborg__namespace.encode(node, encodeOptions);\nconst decode = data => cborg__namespace.decode(data, decodeOptions);\n\nexports.code = code;\nexports.decode = decode;\nexports.encode = encode;\nexports.name = name;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar encode = require('./lib/encode.js');\nvar decode = require('./lib/decode.js');\nvar token = require('./lib/token.js');\n\n\n\nexports.encode = encode.encode;\nexports.decode = decode.decode;\nexports.Token = token.Token;\nexports.Type = token.Type;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar is = require('./is.js');\nvar token = require('./token.js');\nvar bl = require('./bl.js');\nvar common = require('./common.js');\nvar jump = require('./jump.js');\nvar byteUtils = require('./byte-utils.js');\nvar _0uint = require('./0uint.js');\nvar _1negint = require('./1negint.js');\nvar _2bytes = require('./2bytes.js');\nvar _3string = require('./3string.js');\nvar _4array = require('./4array.js');\nvar _5map = require('./5map.js');\nvar _6tag = require('./6tag.js');\nvar _7float = require('./7float.js');\n\nconst defaultEncodeOptions = {\n float64: false,\n mapSorter,\n quickEncodeToken: jump.quickEncodeToken\n};\nconst cborEncoders = [];\ncborEncoders[token.Type.uint.major] = _0uint.encodeUint;\ncborEncoders[token.Type.negint.major] = _1negint.encodeNegint;\ncborEncoders[token.Type.bytes.major] = _2bytes.encodeBytes;\ncborEncoders[token.Type.string.major] = _3string.encodeString;\ncborEncoders[token.Type.array.major] = _4array.encodeArray;\ncborEncoders[token.Type.map.major] = _5map.encodeMap;\ncborEncoders[token.Type.tag.major] = _6tag.encodeTag;\ncborEncoders[token.Type.float.major] = _7float.encodeFloat;\nconst buf = new bl.Bl();\nclass Ref {\n constructor(obj, parent) {\n this.obj = obj;\n this.parent = parent;\n }\n includes(obj) {\n let p = this;\n do {\n if (p.obj === obj) {\n return true;\n }\n } while (p = p.parent);\n return false;\n }\n static createCheck(stack, obj) {\n if (stack && stack.includes(obj)) {\n throw new Error(`${ common.encodeErrPrefix } object contains circular references`);\n }\n return new Ref(obj, stack);\n }\n}\nconst simpleTokens = {\n null: new token.Token(token.Type.null, null),\n undefined: new token.Token(token.Type.undefined, undefined),\n true: new token.Token(token.Type.true, true),\n false: new token.Token(token.Type.false, false),\n emptyArray: new token.Token(token.Type.array, 0),\n emptyMap: new token.Token(token.Type.map, 0)\n};\nconst typeEncoders = {\n number(obj, _typ, _options, _refStack) {\n if (!Number.isInteger(obj) || !Number.isSafeInteger(obj)) {\n return new token.Token(token.Type.float, obj);\n } else if (obj >= 0) {\n return new token.Token(token.Type.uint, obj);\n } else {\n return new token.Token(token.Type.negint, obj);\n }\n },\n bigint(obj, _typ, _options, _refStack) {\n if (obj >= BigInt(0)) {\n return new token.Token(token.Type.uint, obj);\n } else {\n return new token.Token(token.Type.negint, obj);\n }\n },\n Uint8Array(obj, _typ, _options, _refStack) {\n return new token.Token(token.Type.bytes, obj);\n },\n string(obj, _typ, _options, _refStack) {\n return new token.Token(token.Type.string, obj);\n },\n boolean(obj, _typ, _options, _refStack) {\n return obj ? simpleTokens.true : simpleTokens.false;\n },\n null(_obj, _typ, _options, _refStack) {\n return simpleTokens.null;\n },\n undefined(_obj, _typ, _options, _refStack) {\n return simpleTokens.undefined;\n },\n ArrayBuffer(obj, _typ, _options, _refStack) {\n return new token.Token(token.Type.bytes, new Uint8Array(obj));\n },\n DataView(obj, _typ, _options, _refStack) {\n return new token.Token(token.Type.bytes, new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength));\n },\n Array(obj, _typ, options, refStack) {\n if (!obj.length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyArray,\n new token.Token(token.Type.break)\n ];\n }\n return simpleTokens.emptyArray;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const e of obj) {\n entries[i++] = objectToTokens(e, options, refStack);\n }\n if (options.addBreakTokens) {\n return [\n new token.Token(token.Type.array, obj.length),\n entries,\n new token.Token(token.Type.break)\n ];\n }\n return [\n new token.Token(token.Type.array, obj.length),\n entries\n ];\n },\n Object(obj, typ, options, refStack) {\n const isMap = typ !== 'Object';\n const keys = isMap ? obj.keys() : Object.keys(obj);\n const length = isMap ? obj.size : keys.length;\n if (!length) {\n if (options.addBreakTokens === true) {\n return [\n simpleTokens.emptyMap,\n new token.Token(token.Type.break)\n ];\n }\n return simpleTokens.emptyMap;\n }\n refStack = Ref.createCheck(refStack, obj);\n const entries = [];\n let i = 0;\n for (const key of keys) {\n entries[i++] = [\n objectToTokens(key, options, refStack),\n objectToTokens(isMap ? obj.get(key) : obj[key], options, refStack)\n ];\n }\n sortMapEntries(entries, options);\n if (options.addBreakTokens) {\n return [\n new token.Token(token.Type.map, length),\n entries,\n new token.Token(token.Type.break)\n ];\n }\n return [\n new token.Token(token.Type.map, length),\n entries\n ];\n }\n};\ntypeEncoders.Map = typeEncoders.Object;\ntypeEncoders.Buffer = typeEncoders.Uint8Array;\nfor (const typ of 'Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64'.split(' ')) {\n typeEncoders[`${ typ }Array`] = typeEncoders.DataView;\n}\nfunction objectToTokens(obj, options = {}, refStack) {\n const typ = is.is(obj);\n const customTypeEncoder = options && options.typeEncoders && options.typeEncoders[typ] || typeEncoders[typ];\n if (typeof customTypeEncoder === 'function') {\n const tokens = customTypeEncoder(obj, typ, options, refStack);\n if (tokens != null) {\n return tokens;\n }\n }\n const typeEncoder = typeEncoders[typ];\n if (!typeEncoder) {\n throw new Error(`${ common.encodeErrPrefix } unsupported type: ${ typ }`);\n }\n return typeEncoder(obj, typ, options, refStack);\n}\nfunction sortMapEntries(entries, options) {\n if (options.mapSorter) {\n entries.sort(options.mapSorter);\n }\n}\nfunction mapSorter(e1, e2) {\n const keyToken1 = Array.isArray(e1[0]) ? e1[0][0] : e1[0];\n const keyToken2 = Array.isArray(e2[0]) ? e2[0][0] : e2[0];\n if (keyToken1.type !== keyToken2.type) {\n return keyToken1.type.compare(keyToken2.type);\n }\n const major = keyToken1.type.major;\n const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2);\n if (tcmp === 0) {\n console.warn('WARNING: complex key types used, CBOR key sorting guarantees are gone');\n }\n return tcmp;\n}\nfunction tokensToEncoded(buf, tokens, encoders, options) {\n if (Array.isArray(tokens)) {\n for (const token of tokens) {\n tokensToEncoded(buf, token, encoders, options);\n }\n } else {\n encoders[tokens.type.major](buf, tokens, options);\n }\n}\nfunction encodeCustom(data, encoders, options) {\n const tokens = objectToTokens(data, options);\n if (!Array.isArray(tokens) && options.quickEncodeToken) {\n const quickBytes = options.quickEncodeToken(tokens);\n if (quickBytes) {\n return quickBytes;\n }\n const encoder = encoders[tokens.type.major];\n if (encoder.encodedSize) {\n const size = encoder.encodedSize(tokens, options);\n const buf = new bl.Bl(size);\n encoder(buf, tokens, options);\n if (buf.chunks.length !== 1) {\n throw new Error(`Unexpected error: pre-calculated length for ${ tokens } was wrong`);\n }\n return byteUtils.asU8A(buf.chunks[0]);\n }\n }\n tokensToEncoded(buf, tokens, encoders, options);\n return buf.toBytes(true);\n}\nfunction encode(data, options) {\n options = Object.assign({}, defaultEncodeOptions, options);\n return encodeCustom(data, cborEncoders, options);\n}\n\nexports.Ref = Ref;\nexports.encode = encode;\nexports.encodeCustom = encodeCustom;\nexports.objectToTokens = objectToTokens;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst typeofs = [\n 'string',\n 'number',\n 'bigint',\n 'symbol'\n];\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'HTMLElement',\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nfunction is(value) {\n if (value === null) {\n return 'null';\n }\n if (value === undefined) {\n return 'undefined';\n }\n if (value === true || value === false) {\n return 'boolean';\n }\n const typeOf = typeof value;\n if (typeofs.includes(typeOf)) {\n return typeOf;\n }\n if (typeOf === 'function') {\n return 'Function';\n }\n if (Array.isArray(value)) {\n return 'Array';\n }\n if (isBuffer(value)) {\n return 'Buffer';\n }\n const objectType = getObjectType(value);\n if (objectType) {\n return objectType;\n }\n return 'Object';\n}\nfunction isBuffer(value) {\n return value && value.constructor && value.constructor.isBuffer && value.constructor.isBuffer.call(null, value);\n}\nfunction getObjectType(value) {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (objectTypeNames.includes(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n}\n\nexports.is = is;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar byteUtils = require('./byte-utils.js');\n\nconst defaultChunkSize = 256;\nclass Bl {\n constructor(chunkSize = defaultChunkSize) {\n this.chunkSize = chunkSize;\n this.cursor = 0;\n this.maxCursor = -1;\n this.chunks = [];\n this._initReuseChunk = null;\n }\n reset() {\n this.chunks = [];\n this.cursor = 0;\n this.maxCursor = -1;\n if (this._initReuseChunk !== null) {\n this.chunks.push(this._initReuseChunk);\n this.maxCursor = this._initReuseChunk.length - 1;\n }\n }\n push(bytes) {\n let topChunk = this.chunks[this.chunks.length - 1];\n const newMax = this.cursor + bytes.length;\n if (newMax <= this.maxCursor + 1) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n topChunk.set(bytes, chunkPos);\n } else {\n if (topChunk) {\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1;\n if (chunkPos < topChunk.length) {\n this.chunks[this.chunks.length - 1] = topChunk.subarray(0, chunkPos);\n this.maxCursor = this.cursor - 1;\n }\n }\n if (bytes.length < 64 && bytes.length < this.chunkSize) {\n topChunk = byteUtils.alloc(this.chunkSize);\n this.chunks.push(topChunk);\n this.maxCursor += topChunk.length;\n if (this._initReuseChunk === null) {\n this._initReuseChunk = topChunk;\n }\n topChunk.set(bytes, 0);\n } else {\n this.chunks.push(bytes);\n this.maxCursor += bytes.length;\n }\n }\n this.cursor += bytes.length;\n }\n toBytes(reset = false) {\n let byts;\n if (this.chunks.length === 1) {\n const chunk = this.chunks[0];\n if (reset && this.cursor > chunk.length / 2) {\n byts = this.cursor === chunk.length ? chunk : chunk.subarray(0, this.cursor);\n this._initReuseChunk = null;\n this.chunks = [];\n } else {\n byts = byteUtils.slice(chunk, 0, this.cursor);\n }\n } else {\n byts = byteUtils.concat(this.chunks, this.cursor);\n }\n if (reset) {\n this.reset();\n }\n return byts;\n }\n}\n\nexports.Bl = Bl;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar common = require('./common.js');\nvar token = require('./token.js');\nvar jump = require('./jump.js');\n\nconst defaultDecodeOptions = {\n strict: false,\n allowIndefinite: true,\n allowUndefined: true,\n allowBigInt: true\n};\nclass Tokeniser {\n constructor(data, options = {}) {\n this.pos = 0;\n this.data = data;\n this.options = options;\n }\n done() {\n return this.pos >= this.data.length;\n }\n next() {\n const byt = this.data[this.pos];\n let token = jump.quick[byt];\n if (token === undefined) {\n const decoder = jump.jump[byt];\n if (!decoder) {\n throw new Error(`${ common.decodeErrPrefix } no decoder for major type ${ byt >>> 5 } (byte 0x${ byt.toString(16).padStart(2, '0') })`);\n }\n const minor = byt & 31;\n token = decoder(this.data, this.pos, minor, this.options);\n }\n this.pos += token.encodedLength;\n return token;\n }\n}\nconst DONE = Symbol.for('DONE');\nconst BREAK = Symbol.for('BREAK');\nfunction tokenToArray(token, tokeniser, options) {\n const arr = [];\n for (let i = 0; i < token.value; i++) {\n const value = tokensToObject(tokeniser, options);\n if (value === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ common.decodeErrPrefix } got unexpected break to lengthed array`);\n }\n if (value === DONE) {\n throw new Error(`${ common.decodeErrPrefix } found array but not enough entries (got ${ i }, expected ${ token.value })`);\n }\n arr[i] = value;\n }\n return arr;\n}\nfunction tokenToMap(token, tokeniser, options) {\n const useMaps = options.useMaps === true;\n const obj = useMaps ? undefined : {};\n const m = useMaps ? new Map() : undefined;\n for (let i = 0; i < token.value; i++) {\n const key = tokensToObject(tokeniser, options);\n if (key === BREAK) {\n if (token.value === Infinity) {\n break;\n }\n throw new Error(`${ common.decodeErrPrefix } got unexpected break to lengthed map`);\n }\n if (key === DONE) {\n throw new Error(`${ common.decodeErrPrefix } found map but not enough entries (got ${ i } [no key], expected ${ token.value })`);\n }\n if (useMaps !== true && typeof key !== 'string') {\n throw new Error(`${ common.decodeErrPrefix } non-string keys not supported (got ${ typeof key })`);\n }\n const value = tokensToObject(tokeniser, options);\n if (value === DONE) {\n throw new Error(`${ common.decodeErrPrefix } found map but not enough entries (got ${ i } [no value], expected ${ token.value })`);\n }\n if (useMaps) {\n m.set(key, value);\n } else {\n obj[key] = value;\n }\n }\n return useMaps ? m : obj;\n}\nfunction tokensToObject(tokeniser, options) {\n if (tokeniser.done()) {\n return DONE;\n }\n const token$1 = tokeniser.next();\n if (token$1.type === token.Type.break) {\n return BREAK;\n }\n if (token$1.type.terminal) {\n return token$1.value;\n }\n if (token$1.type === token.Type.array) {\n return tokenToArray(token$1, tokeniser, options);\n }\n if (token$1.type === token.Type.map) {\n return tokenToMap(token$1, tokeniser, options);\n }\n if (token$1.type === token.Type.tag) {\n if (options.tags && typeof options.tags[token$1.value] === 'function') {\n const tagged = tokensToObject(tokeniser, options);\n return options.tags[token$1.value](tagged);\n }\n throw new Error(`${ common.decodeErrPrefix } tag not supported (${ token$1.value })`);\n }\n throw new Error('unsupported');\n}\nfunction decode(data, options) {\n if (!(data instanceof Uint8Array)) {\n throw new Error(`${ common.decodeErrPrefix } data to decode must be a Uint8Array`);\n }\n options = Object.assign({}, defaultDecodeOptions, options);\n const tokeniser = options.tokenizer || new Tokeniser(data, options);\n const decoded = tokensToObject(tokeniser, options);\n if (decoded === DONE) {\n throw new Error(`${ common.decodeErrPrefix } did not find any content to decode`);\n }\n if (decoded === BREAK) {\n throw new Error(`${ common.decodeErrPrefix } got unexpected break`);\n }\n if (!tokeniser.done()) {\n throw new Error(`${ common.decodeErrPrefix } too many terminals, data makes no sense`);\n }\n return decoded;\n}\n\nexports.Tokeniser = Tokeniser;\nexports.decode = decode;\nexports.tokensToObject = tokensToObject;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\nvar bytes = require('../bytes.js');\n\nconst identity = base.from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => bytes.toString(buf),\n decode: str => bytes.fromString(str)\n});\n\nexports.identity = identity;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base2 = base.rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});\n\nexports.base2 = base2;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base8 = base.rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});\n\nexports.base8 = base8;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base10 = base.baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});\n\nexports.base10 = base10;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base16 = base.rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nconst base16upper = base.rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});\n\nexports.base16 = base16;\nexports.base16upper = base16upper;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base36 = base.baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nconst base36upper = base.baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});\n\nexports.base36 = base36;\nexports.base36upper = base36upper;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base64 = base.rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nconst base64pad = base.rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nconst base64url = base.rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nconst base64urlpad = base.rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});\n\nexports.base64 = base64;\nexports.base64pad = base64pad;\nexports.base64url = base64url;\nexports.base64urlpad = base64urlpad;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar hasher = require('./hasher.js');\n\nconst sha = name => async data => new Uint8Array(await crypto.subtle.digest(name, data));\nconst sha256 = hasher.from({\n name: 'sha2-256',\n code: 18,\n encode: sha('SHA-256')\n});\nconst sha512 = hasher.from({\n name: 'sha2-512',\n code: 19,\n encode: sha('SHA-512')\n});\n\nexports.sha256 = sha256;\nexports.sha512 = sha512;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bytes = require('../bytes.js');\n\nconst name = 'raw';\nconst code = 85;\nconst encode = node => bytes.coerce(node);\nconst decode = data => bytes.coerce(data);\n\nexports.code = code;\nexports.decode = decode;\nexports.encode = encode;\nexports.name = name;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nconst name = 'json';\nconst code = 512;\nconst encode = node => textEncoder.encode(JSON.stringify(node));\nconst decode = data => JSON.parse(textDecoder.decode(data));\n\nexports.code = code;\nexports.decode = decode;\nexports.encode = encode;\nexports.name = name;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('./cid.js');\nvar varint = require('./varint.js');\nvar bytes = require('./bytes.js');\nvar hasher = require('./hashes/hasher.js');\nvar digest = require('./hashes/digest.js');\n\n\n\nexports.CID = cid.CID;\nexports.varint = varint;\nexports.bytes = bytes;\nexports.hasher = hasher;\nexports.digest = digest;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar wantlist = require('./wantlist.js');\nvar wantlistForPeer = require('./wantlist-for-peer.js');\nvar stat = require('./stat.js');\nvar unwant = require('./unwant.js');\n\nfunction createBitswap(config) {\n return {\n wantlist: wantlist.createWantlist(config),\n wantlistForPeer: wantlistForPeer.createWantlistForPeer(config),\n unwant: unwant.createUnwant(config),\n stat: stat.createStat(config)\n };\n}\n\nexports.createBitswap = createBitswap;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createWantlist = configure.configure(api => {\n async function wantlist(options = {}) {\n const res = await (await api.post('bitswap/wantlist', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n })).json();\n return (res.Keys || []).map(k => cid.CID.parse(k['/']));\n }\n return wantlist;\n});\n\nexports.createWantlist = createWantlist;\n","'use strict'\n\nconst convert = require('./convert')\nconst protocols = require('./protocols-table')\nconst varint = require('varint')\nconst { concat: uint8ArrayConcat } = require('uint8arrays/concat')\nconst { toString: uint8ArrayToString } = require('uint8arrays/to-string')\n\n// export codec\nmodule.exports = {\n stringToStringTuples,\n stringTuplesToString,\n\n tuplesToStringTuples,\n stringTuplesToTuples,\n\n bytesToTuples,\n tuplesToBytes,\n\n bytesToString,\n stringToBytes,\n\n fromString,\n fromBytes,\n validateBytes,\n isValidBytes,\n cleanPath,\n\n ParseError,\n protoFromTuple,\n\n sizeForAddr\n}\n\n// string -> [[str name, str addr]... ]\n/**\n * @param {string} str\n */\nfunction stringToStringTuples (str) {\n const tuples = []\n const parts = str.split('/').slice(1) // skip first empty elem\n if (parts.length === 1 && parts[0] === '') {\n return []\n }\n\n for (let p = 0; p < parts.length; p++) {\n const part = parts[p]\n const proto = protocols(part)\n\n if (proto.size === 0) {\n tuples.push([part])\n continue\n }\n\n p++ // advance addr part\n if (p >= parts.length) {\n throw ParseError('invalid address: ' + str)\n }\n\n // if it's a path proto, take the rest\n if (proto.path) {\n tuples.push([\n part,\n // TODO: should we need to check each path part to see if it's a proto?\n // This would allow for other protocols to be added after a unix path,\n // however it would have issues if the path had a protocol name in the path\n cleanPath(parts.slice(p).join('/'))\n ])\n break\n }\n\n tuples.push([part, parts[p]])\n }\n\n return tuples\n}\n\n// [[str name, str addr]... ] -> string\n/**\n * @param {[number, string?][]} tuples\n */\nfunction stringTuplesToString (tuples) {\n /** @type {Array<string | undefined>} */\n const parts = []\n tuples.map((tup) => {\n const proto = protoFromTuple(tup)\n parts.push(proto.name)\n if (tup.length > 1) {\n parts.push(tup[1])\n }\n return null\n })\n\n return cleanPath(parts.join('/'))\n}\n\n// [[str name, str addr]... ] -> [[int code, Uint8Array]... ]\n/**\n * @param {Array<string[] | string >} tuples\n * @returns {[number , Uint8Array?][]}\n */\nfunction stringTuplesToTuples (tuples) {\n return tuples.map((tup) => {\n if (!Array.isArray(tup)) {\n tup = [tup]\n }\n const proto = protoFromTuple(tup)\n if (tup.length > 1) {\n return [proto.code, convert.toBytes(proto.code, tup[1])]\n }\n return [proto.code]\n })\n}\n\n/**\n * Convert tuples to string tuples\n *\n * [[int code, Uint8Array]... ] -> [[int code, str addr]... ]\n *\n * @param {Array<[number, Uint8Array?]>} tuples\n * @returns {Array<[number, string?]>}\n */\n\nfunction tuplesToStringTuples (tuples) {\n return tuples.map(tup => {\n const proto = protoFromTuple(tup)\n if (tup[1]) {\n return [proto.code, convert.toString(proto.code, tup[1])]\n }\n return [proto.code]\n })\n}\n\n// [[int code, Uint8Array ]... ] -> Uint8Array\n/**\n * @param {[number, Uint8Array?][]} tuples\n */\nfunction tuplesToBytes (tuples) {\n return fromBytes(uint8ArrayConcat(tuples.map((/** @type {any[]} */ tup) => {\n const proto = protoFromTuple(tup)\n let buf = Uint8Array.from(varint.encode(proto.code))\n\n if (tup.length > 1) {\n buf = uint8ArrayConcat([buf, tup[1]]) // add address buffer\n }\n\n return buf\n })))\n}\n\n/**\n * @param {import(\"./types\").Protocol} p\n * @param {Uint8Array | number[]} addr\n */\nfunction sizeForAddr (p, addr) {\n if (p.size > 0) {\n return p.size / 8\n } else if (p.size === 0) {\n return 0\n } else {\n const size = varint.decode(addr)\n return size + varint.decode.bytes\n }\n}\n\n/**\n *\n * @param {Uint8Array} buf\n * @returns {Array<[number, Uint8Array?]>}\n */\nfunction bytesToTuples (buf) {\n /** @type {Array<[number, Uint8Array?]>} */\n const tuples = []\n let i = 0\n while (i < buf.length) {\n const code = varint.decode(buf, i)\n const n = varint.decode.bytes\n\n const p = protocols(code)\n\n const size = sizeForAddr(p, buf.slice(i + n))\n\n if (size === 0) {\n tuples.push([code])\n i += n\n continue\n }\n\n const addr = buf.slice(i + n, i + n + size)\n\n i += (size + n)\n\n if (i > buf.length) { // did not end _exactly_ at buffer.length\n throw ParseError('Invalid address Uint8Array: ' + uint8ArrayToString(buf, 'base16'))\n }\n\n // ok, tuple seems good.\n tuples.push([code, addr])\n }\n\n return tuples\n}\n\n// Uint8Array -> String\n/**\n * @param {Uint8Array} buf\n */\nfunction bytesToString (buf) {\n const a = bytesToTuples(buf)\n const b = tuplesToStringTuples(a)\n return stringTuplesToString(b)\n}\n\n// String -> Uint8Array\n/**\n * @param {string} str\n */\nfunction stringToBytes (str) {\n str = cleanPath(str)\n const a = stringToStringTuples(str)\n const b = stringTuplesToTuples(a)\n\n return tuplesToBytes(b)\n}\n\n// String -> Uint8Array\n/**\n * @param {string} str\n */\nfunction fromString (str) {\n return stringToBytes(str)\n}\n\n// Uint8Array -> Uint8Array\n/**\n * @param {Uint8Array} buf\n */\nfunction fromBytes (buf) {\n const err = validateBytes(buf)\n if (err) throw err\n return Uint8Array.from(buf) // copy\n}\n\n/**\n * @param {Uint8Array} buf\n */\nfunction validateBytes (buf) {\n try {\n bytesToTuples(buf) // try to parse. will throw if breaks\n } catch (err) {\n return err\n }\n}\n\n/**\n * @param {Uint8Array} buf\n */\nfunction isValidBytes (buf) {\n return validateBytes(buf) === undefined\n}\n\n/**\n * @param {string} str\n */\nfunction cleanPath (str) {\n return '/' + str.trim().split('/').filter((/** @type {any} */ a) => a).join('/')\n}\n\n/**\n * @param {string} str\n */\nfunction ParseError (str) {\n return new Error('Error parsing address: ' + str)\n}\n\n/**\n * @param {any[]} tup\n */\nfunction protoFromTuple (tup) {\n const proto = protocols(tup[0])\n return proto\n}\n","'use strict'\n\nconst ip = require('./ip')\nconst protocols = require('./protocols-table')\nconst { CID } = require('multiformats/cid')\nconst { base32 } = require('multiformats/bases/base32')\nconst { base58btc } = require('multiformats/bases/base58')\nconst Digest = require('multiformats/hashes/digest')\nconst varint = require('varint')\nconst { toString: uint8ArrayToString } = require('uint8arrays/to-string')\nconst { fromString: uint8ArrayFromString } = require('uint8arrays/from-string')\nconst { concat: uint8ArrayConcat } = require('uint8arrays/concat')\n\nmodule.exports = Convert\n\n// converts (serializes) addresses\n/**\n * @param {string} proto\n * @param {string | Uint8Array} a\n */\nfunction Convert (proto, a) {\n if (a instanceof Uint8Array) {\n return Convert.toString(proto, a)\n } else {\n return Convert.toBytes(proto, a)\n }\n}\n\n/**\n * Convert [code,Uint8Array] to string\n *\n * @param {number|string} proto\n * @param {Uint8Array} buf\n * @returns {string}\n */\nConvert.toString = function convertToString (proto, buf) {\n const protocol = protocols(proto)\n switch (protocol.code) {\n case 4: // ipv4\n case 41: // ipv6\n return bytes2ip(buf)\n\n case 6: // tcp\n case 273: // udp\n case 33: // dccp\n case 132: // sctp\n return bytes2port(buf).toString()\n\n case 53: // dns\n case 54: // dns4\n case 55: // dns6\n case 56: // dnsaddr\n case 400: // unix\n case 777: // memory\n return bytes2str(buf)\n\n case 421: // ipfs\n return bytes2mh(buf)\n case 444: // onion\n return bytes2onion(buf)\n case 445: // onion3\n return bytes2onion(buf)\n default:\n return uint8ArrayToString(buf, 'base16') // no clue. convert to hex\n }\n}\n\nConvert.toBytes = function convertToBytes (/** @type {string | number } */ proto, /** @type {string} */ str) {\n const protocol = protocols(proto)\n switch (protocol.code) {\n case 4: // ipv4\n return ip2bytes(str)\n case 41: // ipv6\n return ip2bytes(str)\n\n case 6: // tcp\n case 273: // udp\n case 33: // dccp\n case 132: // sctp\n return port2bytes(parseInt(str, 10))\n\n case 53: // dns\n case 54: // dns4\n case 55: // dns6\n case 56: // dnsaddr\n case 400: // unix\n case 777: // memory\n return str2bytes(str)\n\n case 421: // ipfs\n return mh2bytes(str)\n case 444: // onion\n return onion2bytes(str)\n case 445: // onion3\n return onion32bytes(str)\n default:\n return uint8ArrayFromString(str, 'base16') // no clue. convert from hex\n }\n}\n\n/**\n * @param {string} ipString\n */\nfunction ip2bytes (ipString) {\n if (!ip.isIP(ipString)) {\n throw new Error('invalid ip address')\n }\n return ip.toBytes(ipString)\n}\n\n/**\n * @param {Uint8Array} ipBuff\n */\nfunction bytes2ip (ipBuff) {\n const ipString = ip.toString(ipBuff)\n if (!ipString || !ip.isIP(ipString)) {\n throw new Error('invalid ip address')\n }\n return ipString\n}\n\n/**\n * @param {number} port\n */\nfunction port2bytes (port) {\n const buf = new ArrayBuffer(2)\n const view = new DataView(buf)\n view.setUint16(0, port)\n\n return new Uint8Array(buf)\n}\n\n/**\n * @param {Uint8Array} buf\n */\nfunction bytes2port (buf) {\n const view = new DataView(buf.buffer)\n return view.getUint16(buf.byteOffset)\n}\n\n/**\n * @param {string} str\n */\nfunction str2bytes (str) {\n const buf = uint8ArrayFromString(str)\n const size = Uint8Array.from(varint.encode(buf.length))\n return uint8ArrayConcat([size, buf], size.length + buf.length)\n}\n\n/**\n * @param {Uint8Array} buf\n */\nfunction bytes2str (buf) {\n const size = varint.decode(buf)\n buf = buf.slice(varint.decode.bytes)\n\n if (buf.length !== size) {\n throw new Error('inconsistent lengths')\n }\n\n return uint8ArrayToString(buf)\n}\n\n/**\n * @param {string} hash - base58btc string\n */\nfunction mh2bytes (hash) {\n let mh\n\n if (hash[0] === 'Q' || hash[0] === '1') {\n mh = Digest.decode(base58btc.decode(`z${hash}`)).bytes\n } else {\n mh = CID.parse(hash).multihash.bytes\n }\n\n // the address is a varint prefixed multihash string representation\n const size = Uint8Array.from(varint.encode(mh.length))\n return uint8ArrayConcat([size, mh], size.length + mh.length)\n}\n\n/**\n * Converts bytes to bas58btc string\n *\n * @param {Uint8Array} buf\n * @returns {string} base58btc string\n */\nfunction bytes2mh (buf) {\n const size = varint.decode(buf)\n const address = buf.slice(varint.decode.bytes)\n\n if (address.length !== size) {\n throw new Error('inconsistent lengths')\n }\n\n return uint8ArrayToString(address, 'base58btc')\n}\n\n/**\n * @param {string} str\n */\nfunction onion2bytes (str) {\n const addr = str.split(':')\n if (addr.length !== 2) {\n throw new Error('failed to parse onion addr: ' + addr + ' does not contain a port number')\n }\n if (addr[0].length !== 16) {\n throw new Error('failed to parse onion addr: ' + addr[0] + ' not a Tor onion address.')\n }\n\n // onion addresses do not include the multibase prefix, add it before decoding\n const buf = base32.decode('b' + addr[0])\n\n // onion port number\n const port = parseInt(addr[1], 10)\n if (port < 1 || port > 65536) {\n throw new Error('Port number is not in range(1, 65536)')\n }\n const portBuf = port2bytes(port)\n return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length)\n}\n\n/**\n * @param {string} str\n */\nfunction onion32bytes (str) {\n const addr = str.split(':')\n if (addr.length !== 2) {\n throw new Error('failed to parse onion addr: ' + addr + ' does not contain a port number')\n }\n if (addr[0].length !== 56) {\n throw new Error('failed to parse onion addr: ' + addr[0] + ' not a Tor onion3 address.')\n }\n // onion addresses do not include the multibase prefix, add it before decoding\n const buf = base32.decode('b' + addr[0])\n\n // onion port number\n const port = parseInt(addr[1], 10)\n if (port < 1 || port > 65536) {\n throw new Error('Port number is not in range(1, 65536)')\n }\n const portBuf = port2bytes(port)\n return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length)\n}\n\n/**\n * @param {Uint8Array} buf\n */\nfunction bytes2onion (buf) {\n const addrBytes = buf.slice(0, buf.length - 2)\n const portBytes = buf.slice(buf.length - 2)\n const addr = uint8ArrayToString(addrBytes, 'base32')\n const port = bytes2port(portBytes)\n return addr + ':' + port\n}\n","'use strict'\n\nconst isIp = require('is-ip')\nconst { toString: uint8ArrayToString } = require('uint8arrays/to-string')\n\nconst isIP = isIp\nconst isV4 = isIp.v4\nconst isV6 = isIp.v6\n\n// Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7\n// @ts-ignore - this is copied from the link above better to keep it the same\nconst toBytes = function (ip, buff, offset) {\n offset = ~~offset\n\n let result\n\n if (isV4(ip)) {\n result = buff || new Uint8Array(offset + 4)\n // @ts-ignore\n // eslint-disable-next-line array-callback-return\n ip.split(/\\./g).map(function (byte) {\n result[offset++] = parseInt(byte, 10) & 0xff\n })\n } else if (isV6(ip)) {\n const sections = ip.split(':', 8)\n\n let i\n for (i = 0; i < sections.length; i++) {\n const isv4 = isV4(sections[i])\n let v4Buffer\n\n if (isv4) {\n v4Buffer = toBytes(sections[i])\n sections[i] = uint8ArrayToString(v4Buffer.slice(0, 2), 'base16')\n }\n\n if (v4Buffer && ++i < 8) {\n sections.splice(i, 0, uint8ArrayToString(v4Buffer.slice(2, 4), 'base16'))\n }\n }\n\n if (sections[0] === '') {\n while (sections.length < 8) sections.unshift('0')\n } else if (sections[sections.length - 1] === '') {\n while (sections.length < 8) sections.push('0')\n } else if (sections.length < 8) {\n for (i = 0; i < sections.length && sections[i] !== ''; i++);\n const argv = [i, '1']\n for (i = 9 - sections.length; i > 0; i--) {\n argv.push('0')\n }\n sections.splice.apply(sections, argv)\n }\n\n result = buff || new Uint8Array(offset + 16)\n for (i = 0; i < sections.length; i++) {\n const word = parseInt(sections[i], 16)\n result[offset++] = (word >> 8) & 0xff\n result[offset++] = word & 0xff\n }\n }\n\n if (!result) {\n throw Error('Invalid ip address: ' + ip)\n }\n\n return result\n}\n\n// Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L63\n// @ts-ignore - this is copied from the link above better to keep it the same\nconst toString = function (buff, offset, length) {\n offset = ~~offset\n length = length || (buff.length - offset)\n\n const result = []\n let string\n const view = new DataView(buff.buffer)\n if (length === 4) {\n // IPv4\n for (let i = 0; i < length; i++) {\n result.push(buff[offset + i])\n }\n string = result.join('.')\n } else if (length === 16) {\n // IPv6\n for (let i = 0; i < length; i += 2) {\n result.push(view.getUint16(offset + i).toString(16))\n }\n string = result.join(':')\n string = string.replace(/(^|:)0(:0)*:0(:|$)/, '$1::$3')\n string = string.replace(/:{3,4}/, '::')\n }\n\n return string\n}\n\nmodule.exports = {\n isIP,\n isV4,\n isV6,\n toBytes,\n toString\n}\n","'use strict';\nconst ipRegex = require('ip-regex');\n\nconst isIp = string => ipRegex({exact: true}).test(string);\nisIp.v4 = string => ipRegex.v4({exact: true}).test(string);\nisIp.v6 = string => ipRegex.v6({exact: true}).test(string);\nisIp.version = string => isIp(string) ? (isIp.v4(string) ? 4 : 6) : undefined;\n\nmodule.exports = isIp;\n","'use strict';\n\nconst word = '[a-fA-F\\\\d:]';\nconst b = options => options && options.includeBoundaries ?\n\t`(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))` :\n\t'';\n\nconst v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\nconst v6seg = '[a-fA-F\\\\d]{1,4}';\nconst v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`.replace(/\\s*\\/\\/.*$/gm, '').replace(/\\n/g, '').trim();\n\n// Pre-compile only the exact regexes because adding a global flag make regexes stateful\nconst v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\nconst v4exact = new RegExp(`^${v4}$`);\nconst v6exact = new RegExp(`^${v6}$`);\n\nconst ip = options => options && options.exact ?\n\tv46Exact :\n\tnew RegExp(`(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(options)})`, 'g');\n\nip.v4 = options => options && options.exact ? v4exact : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\nip.v6 = options => options && options.exact ? v6exact : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\nmodule.exports = ip;\n","module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n if (Number.MAX_SAFE_INTEGER && num > Number.MAX_SAFE_INTEGER) {\n encode.bytes = 0\n throw new RangeError('Could not encode varint')\n }\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n","module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\n do {\n if (counter >= l || shift > 49) {\n read.bytes = 0\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++]\n res += shift < 28\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\n","\nvar N1 = Math.pow(2, 7)\nvar N2 = Math.pow(2, 14)\nvar N3 = Math.pow(2, 21)\nvar N4 = Math.pow(2, 28)\nvar N5 = Math.pow(2, 35)\nvar N6 = Math.pow(2, 42)\nvar N7 = Math.pow(2, 49)\nvar N8 = Math.pow(2, 56)\nvar N9 = Math.pow(2, 63)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction equals(a, b) {\n if (a === b) {\n return true;\n }\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\nexports.equals = equals;\n","// https://github.com/electron/electron/issues/2288\nfunction isElectron() {\n // Renderer process\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\n return true;\n }\n\n // Main process\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\n return true;\n }\n\n // Detect the user agent when the `nodeIntegration` option is set to false\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isElectron;\n","let durationRE = /(-?(?:\\d+\\.?\\d*|\\d*\\.?\\d+)(?:e[-+]?\\d+)?)\\s*([\\p{L}]*)/uig\r\n\r\n\r\n/**\r\n * conversion ratios\r\n */\r\n\r\nparse.nanosecond =\r\nparse.ns = 1 / 1e6\r\n\r\nparse['µs'] =\r\nparse['μs'] =\r\nparse.us =\r\nparse.microsecond = 1 / 1e3\r\n\r\nparse.millisecond =\r\nparse.ms =\r\nparse[''] = 1\r\n\r\nparse.second =\r\nparse.sec =\r\nparse.s = parse.ms * 1000\r\n\r\nparse.minute =\r\nparse.min =\r\nparse.m = parse.s * 60\r\n\r\nparse.hour =\r\nparse.hr =\r\nparse.h = parse.m * 60\r\n\r\nparse.day =\r\nparse.d = parse.h * 24\r\n\r\nparse.week =\r\nparse.wk =\r\nparse.w = parse.d * 7\r\n\r\nparse.month =\r\nparse.b =\r\nparse.d * (365.25 / 12)\r\n\r\nparse.year =\r\nparse.yr =\r\nparse.y = parse.d * 365.25\r\n\r\n/**\r\n * convert `str` to ms\r\n *\r\n * @param {String} str\r\n * @param {String} format\r\n * @return {Number}\r\n */\r\n\r\nfunction parse(str='', format='ms'){\r\n var result = null\r\n // ignore commas/placeholders\r\n str = (str+'').replace(/(\\d)[,_](\\d)/g, '$1$2')\r\n str.replace(durationRE, function(_, n, units){\r\n units = unitRatio(units)\r\n if (units) result = (result || 0) + parseFloat(n, 10) * units\r\n })\r\n\r\n return result && (result / (unitRatio(format) || 1))\r\n}\r\n\r\nfunction unitRatio(str) {\r\n return parse[str] || parse[str.toLowerCase().replace(/s$/, '')]\r\n}\r\n\r\nexport default parse\r\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\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","'use strict'\n\nconst { TimeoutError, AbortError } = require('./error')\nconst { Response, Request, Headers, default: fetch } = require('../fetch')\n\n/**\n * @typedef {import('../types').FetchOptions} FetchOptions\n * @typedef {import('../types').ProgressFn} ProgressFn\n */\n\n/**\n * Fetch with progress\n *\n * @param {string | Request} url\n * @param {FetchOptions} [options]\n * @returns {Promise<ResponseWithURL>}\n */\nconst fetchWithProgress = (url, options = {}) => {\n const request = new XMLHttpRequest()\n request.open(options.method || 'GET', url.toString(), true)\n\n const { timeout, headers } = options\n\n if (timeout && timeout > 0 && timeout < Infinity) {\n request.timeout = timeout\n }\n\n if (options.overrideMimeType != null) {\n request.overrideMimeType(options.overrideMimeType)\n }\n\n if (headers) {\n for (const [name, value] of new Headers(headers)) {\n request.setRequestHeader(name, value)\n }\n }\n\n if (options.signal) {\n options.signal.onabort = () => request.abort()\n }\n\n if (options.onUploadProgress) {\n request.upload.onprogress = options.onUploadProgress\n }\n\n // Note: Need to use `arraybuffer` here instead of `blob` because `Blob`\n // instances coming from JSDOM are not compatible with `Response` from\n // node-fetch (which is the setup we get when testing with jest because\n // it uses JSDOM which does not provide a global fetch\n // https://github.com/jsdom/jsdom/issues/1724)\n request.responseType = 'arraybuffer'\n\n return new Promise((resolve, reject) => {\n /**\n * @param {Event} event\n */\n const handleEvent = (event) => {\n switch (event.type) {\n case 'error': {\n resolve(Response.error())\n break\n }\n case 'load': {\n resolve(\n new ResponseWithURL(request.responseURL, request.response, {\n status: request.status,\n statusText: request.statusText,\n headers: parseHeaders(request.getAllResponseHeaders())\n })\n )\n break\n }\n case 'timeout': {\n reject(new TimeoutError())\n break\n }\n case 'abort': {\n reject(new AbortError())\n break\n }\n default: {\n break\n }\n }\n }\n request.onerror = handleEvent\n request.onload = handleEvent\n request.ontimeout = handleEvent\n request.onabort = handleEvent\n\n // @ts-expect-error options.body can be a node readable stream, which isn't compatible with XHR, but this\n // file is a browser override so you won't get a node readable stream so ignore the error\n request.send(options.body)\n })\n}\n\nconst fetchWithStreaming = fetch\n\n/**\n * @param {string | Request} url\n * @param {FetchOptions} options\n */\nconst fetchWith = (url, options = {}) =>\n (options.onUploadProgress != null)\n ? fetchWithProgress(url, options)\n : fetchWithStreaming(url, options)\n\n/**\n * Parse Headers from a XMLHttpRequest\n *\n * @param {string} input\n * @returns {Headers}\n */\nconst parseHeaders = (input) => {\n const headers = new Headers()\n for (const line of input.trim().split(/[\\r\\n]+/)) {\n const index = line.indexOf(': ')\n if (index > 0) {\n headers.set(line.slice(0, index), line.slice(index + 1))\n }\n }\n\n return headers\n}\n\nclass ResponseWithURL extends Response {\n /**\n * @param {string} url\n * @param {BodyInit} body\n * @param {ResponseInit} options\n */\n constructor (url, body, options) {\n super(body, options)\n Object.defineProperty(this, 'url', { value: url })\n }\n}\n\nmodule.exports = {\n fetch: fetchWith,\n Request,\n Headers\n}\n","'use strict'\n\nconst { isElectronMain } = require('./env')\n\nif (isElectronMain) {\n module.exports = require('electron-fetch')\n} else {\n// use window.fetch if it is available, fall back to node-fetch if not\n module.exports = require('native-fetch')\n}\n","'use strict'\n\nif (globalThis.fetch && globalThis.Headers && globalThis.Request && globalThis.Response) {\n module.exports = {\n default: globalThis.fetch,\n Headers: globalThis.Headers,\n Request: globalThis.Request,\n Response: globalThis.Response\n }\n} else {\n module.exports = {\n default: require('node-fetch').default,\n Headers: require('node-fetch').Headers,\n Request: require('node-fetch').Request,\n Response: require('node-fetch').Response\n }\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","'use strict'\n\nconst {\n URLWithLegacySupport,\n format,\n URLSearchParams,\n defaultBase\n} = require('./src/url')\nconst relative = require('./src/relative')\n\nmodule.exports = {\n URL: URLWithLegacySupport,\n URLSearchParams,\n format,\n relative,\n defaultBase\n}\n","'use strict'\n\nconst { URLWithLegacySupport, format } = require('./url')\n\n/**\n * @param {string | undefined} url\n * @param {any} [location]\n * @param {any} [protocolMap]\n * @param {any} [defaultProtocol]\n */\nmodule.exports = (url, location = {}, protocolMap = {}, defaultProtocol) => {\n let protocol = location.protocol\n ? location.protocol.replace(':', '')\n : 'http'\n\n // Check protocol map\n protocol = (protocolMap[protocol] || defaultProtocol || protocol) + ':'\n let urlParsed\n\n try {\n urlParsed = new URLWithLegacySupport(url)\n } catch (err) {\n urlParsed = {}\n }\n\n const base = Object.assign({}, location, {\n protocol: protocol || urlParsed.protocol,\n host: location.host || urlParsed.host\n })\n\n return new URLWithLegacySupport(url, format(base)).toString()\n}\n","const { AbortController } = globalThis\n\n/**\n * Takes an array of AbortSignals and returns a single signal.\n * If any signals are aborted, the returned signal will be aborted.\n * @param {Array<AbortSignal>} signals\n * @returns {AbortSignal}\n */\nfunction anySignal (signals) {\n const controller = new AbortController()\n\n function onAbort () {\n controller.abort()\n\n for (const signal of signals) {\n if (!signal || !signal.removeEventListener) continue\n signal.removeEventListener('abort', onAbort)\n }\n }\n\n for (const signal of signals) {\n if (!signal || !signal.addEventListener) continue\n if (signal.aborted) {\n onAbort()\n break\n }\n signal.addEventListener('abort', onAbort)\n }\n\n return controller.signal\n}\n\nmodule.exports = anySignal\nmodule.exports.anySignal = anySignal\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar multiAddrToUri = require('multiaddr-to-uri');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar multiAddrToUri__default = /*#__PURE__*/_interopDefaultLegacy(multiAddrToUri);\n\nfunction toUrlString(url) {\n try {\n url = multiAddrToUri__default['default'](new multiaddr.Multiaddr(url));\n } catch (err) {\n }\n url = url.toString();\n return url;\n}\n\nexports.toUrlString = toUrlString;\n","const { Multiaddr } = require('multiaddr')\n\nconst reduceValue = (_, v) => v\nconst tcpUri = (str, port, parts, opts) => {\n // return tcp when explicitly requested\n if (opts && opts.assumeHttp === false) return `tcp://${str}:${port}`\n // check if tcp is the last protocol in multiaddr\n let protocol = 'tcp'\n let explicitPort = `:${port}`\n const last = parts[parts.length - 1]\n if (last.protocol === 'tcp') {\n // assume http and produce clean urls\n protocol = port === '443' ? 'https' : 'http'\n explicitPort = port === '443' || port === '80' ? '' : explicitPort\n }\n return `${protocol}://${str}${explicitPort}`\n}\n\nconst Reducers = {\n ip4: reduceValue,\n ip6: (str, content, i, parts) => (\n parts.length === 1 && parts[0].protocol === 'ip6'\n ? content\n : `[${content}]`\n ),\n tcp: (str, content, i, parts, opts) => (\n parts.some(p => ['http', 'https', 'ws', 'wss'].includes(p.protocol))\n ? `${str}:${content}`\n : tcpUri(str, content, parts, opts)\n ),\n udp: (str, content) => `udp://${str}:${content}`,\n dnsaddr: reduceValue,\n dns4: reduceValue,\n dns6: reduceValue,\n ipfs: (str, content) => `${str}/ipfs/${content}`,\n p2p: (str, content) => `${str}/p2p/${content}`,\n http: str => `http://${str}`,\n https: str => `https://${str}`,\n ws: str => `ws://${str}`,\n wss: str => `wss://${str}`,\n 'p2p-websocket-star': str => `${str}/p2p-websocket-star`,\n 'p2p-webrtc-star': str => `${str}/p2p-webrtc-star`,\n 'p2p-webrtc-direct': str => `${str}/p2p-webrtc-direct`\n}\n\nmodule.exports = (multiaddr, opts) => {\n const ma = new Multiaddr(multiaddr)\n const parts = multiaddr.toString().split('/').slice(1)\n return ma\n .tuples()\n .map(tuple => ({\n protocol: parts.shift(),\n content: tuple[1] ? parts.shift() : null\n }))\n .reduce((str, part, i, parts) => {\n const reduce = Reducers[part.protocol]\n if (!reduce) throw new Error(`Unsupported protocol ${part.protocol}`)\n return reduce(str, part.content, i, parts, opts)\n }, '')\n}\n","'use strict';\n\nvar agent_browser = () => {\n};\n\nmodule.exports = agent_browser;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createWantlistForPeer = configure.configure(api => {\n async function wantlistForPeer(peerId, options = {}) {\n const res = await (await api.post('bitswap/wantlist', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n ...options,\n peer: peerId.toString()\n }),\n headers: options.headers\n })).json();\n return (res.Keys || []).map(k => cid.CID.parse(k['/']));\n }\n return wantlistForPeer;\n});\n\nexports.createWantlistForPeer = createWantlistForPeer;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createUnwant = configure.configure(api => {\n async function unwant(cid, options = {}) {\n const res = await api.post('bitswap/unwant', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: cid.toString(),\n ...options\n }),\n headers: options.headers\n });\n return res.json();\n }\n return unwant;\n});\n\nexports.createUnwant = createUnwant;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar get = require('./get.js');\nvar put = require('./put.js');\nvar rm = require('./rm.js');\nvar stat = require('./stat.js');\n\nfunction createBlock(config) {\n return {\n get: get.createGet(config),\n put: put.createPut(config),\n rm: rm.createRm(config),\n stat: stat.createStat(config)\n };\n}\n\nexports.createBlock = createBlock;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar abortSignal = require('../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createPut = configure.configure(api => {\n async function put(data, options = {}) {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n let res;\n try {\n const response = await api.post('block/put', {\n signal: signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n ...await multipartRequest.multipartRequest(data, controller, options.headers)\n });\n res = await response.json();\n } catch (err) {\n if (options.format === 'dag-pb') {\n return put(data, {\n ...options,\n format: 'protobuf'\n });\n } else if (options.format === 'dag-cbor') {\n return put(data, {\n ...options,\n format: 'cbor'\n });\n }\n throw err;\n }\n return cid.CID.parse(res.Key);\n }\n return put;\n});\n\nexports.createPut = createPut;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar normaliseContent_browser = require('./normalise-content.browser.js');\nvar normalise = require('./normalise.js');\n\nfunction normaliseInput(input) {\n return normalise.normalise(input, normaliseContent_browser.normaliseContent);\n}\n\nexports.normaliseInput = normaliseInput;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar errCode = require('err-code');\nvar itPeekable = require('it-peekable');\nvar browserStreamToIt = require('browser-readablestream-to-it');\nvar all = require('it-all');\nvar utils = require('./utils.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\nvar itPeekable__default = /*#__PURE__*/_interopDefaultLegacy(itPeekable);\nvar browserStreamToIt__default = /*#__PURE__*/_interopDefaultLegacy(browserStreamToIt);\nvar all__default = /*#__PURE__*/_interopDefaultLegacy(all);\n\nasync function normaliseContent(input) {\n if (utils.isBytes(input)) {\n return new Blob([input]);\n }\n if (typeof input === 'string' || input instanceof String) {\n return new Blob([input.toString()]);\n }\n if (utils.isBlob(input)) {\n return input;\n }\n if (utils.isReadableStream(input)) {\n input = browserStreamToIt__default['default'](input);\n }\n if (Symbol.iterator in input || Symbol.asyncIterator in input) {\n const peekable = itPeekable__default['default'](input);\n const {value, done} = await peekable.peek();\n if (done) {\n return itToBlob(peekable);\n }\n peekable.push(value);\n if (Number.isInteger(value)) {\n return new Blob([Uint8Array.from(await all__default['default'](peekable))]);\n }\n if (utils.isBytes(value) || typeof value === 'string' || value instanceof String) {\n return itToBlob(peekable);\n }\n }\n throw errCode__default['default'](new Error(`Unexpected input: ${ input }`), 'ERR_UNEXPECTED_INPUT');\n}\nasync function itToBlob(stream) {\n const parts = [];\n for await (const chunk of stream) {\n parts.push(chunk);\n }\n return new Blob(parts);\n}\n\nexports.normaliseContent = normaliseContent;\n","'use strict'\n\n/**\n * Collects all values from an (async) iterable into an array and returns it.\n *\n * @template T\n * @param {AsyncIterable<T>|Iterable<T>} source\n */\nconst all = async (source) => {\n const arr = []\n\n for await (const entry of source) {\n arr.push(entry)\n }\n\n return arr\n}\n\nmodule.exports = all\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar errCode = require('err-code');\nvar browserStreamToIt = require('browser-readablestream-to-it');\nvar itPeekable = require('it-peekable');\nvar map = require('it-map');\nvar utils = require('./utils.js');\nvar ipfsUnixfs = require('ipfs-unixfs');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\nvar browserStreamToIt__default = /*#__PURE__*/_interopDefaultLegacy(browserStreamToIt);\nvar itPeekable__default = /*#__PURE__*/_interopDefaultLegacy(itPeekable);\nvar map__default = /*#__PURE__*/_interopDefaultLegacy(map);\n\nasync function* normalise(input, normaliseContent) {\n if (input === null || input === undefined) {\n throw errCode__default['default'](new Error(`Unexpected input: ${ input }`), 'ERR_UNEXPECTED_INPUT');\n }\n if (typeof input === 'string' || input instanceof String) {\n yield toFileObject(input.toString(), normaliseContent);\n return;\n }\n if (utils.isBytes(input) || utils.isBlob(input)) {\n yield toFileObject(input, normaliseContent);\n return;\n }\n if (utils.isReadableStream(input)) {\n input = browserStreamToIt__default['default'](input);\n }\n if (Symbol.iterator in input || Symbol.asyncIterator in input) {\n const peekable = itPeekable__default['default'](input);\n const {value, done} = await peekable.peek();\n if (done) {\n yield* [];\n return;\n }\n peekable.push(value);\n if (Number.isInteger(value) || utils.isBytes(value)) {\n yield toFileObject(peekable, normaliseContent);\n return;\n }\n if (value._readableState) {\n yield* map__default['default'](peekable, value => toFileObject({ content: value }, normaliseContent));\n return;\n }\n if (utils.isFileObject(value) || utils.isBlob(value) || typeof value === 'string' || value instanceof String) {\n yield* map__default['default'](peekable, value => toFileObject(value, normaliseContent));\n return;\n }\n if (value[Symbol.iterator] || value[Symbol.asyncIterator] || utils.isReadableStream(value)) {\n yield* map__default['default'](peekable, value => toFileObject(value, normaliseContent));\n return;\n }\n }\n if (utils.isFileObject(input)) {\n yield toFileObject(input, normaliseContent);\n return;\n }\n throw errCode__default['default'](new Error('Unexpected input: ' + typeof input), 'ERR_UNEXPECTED_INPUT');\n}\nasync function toFileObject(input, normaliseContent) {\n const {path, mode, mtime, content} = input;\n const file = {\n path: path || '',\n mode: ipfsUnixfs.parseMode(mode),\n mtime: ipfsUnixfs.parseMtime(mtime)\n };\n if (content) {\n file.content = await normaliseContent(content);\n } else if (!path) {\n file.content = await normaliseContent(input);\n }\n return file;\n}\n\nexports.normalise = normalise;\n","'use strict'\n\n/**\n * Takes an (async) iterable and returns one with each item mapped by the passed\n * function.\n *\n * @template I,O\n * @param {AsyncIterable<I>|Iterable<I>} source\n * @param {function(I):O|Promise<O>} func\n * @returns {AsyncIterable<O>}\n */\nconst map = async function * (source, func) {\n for await (const val of source) {\n yield func(val)\n }\n}\n\nmodule.exports = map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar errcode = require('err-code');\nvar unixfs = require('./unixfs.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errcode__default = /*#__PURE__*/_interopDefaultLegacy(errcode);\n\nconst PBData = unixfs.Data;\nconst types = [\n 'raw',\n 'directory',\n 'file',\n 'metadata',\n 'symlink',\n 'hamt-sharded-directory'\n];\nconst dirTypes = [\n 'directory',\n 'hamt-sharded-directory'\n];\nconst DEFAULT_FILE_MODE = parseInt('0644', 8);\nconst DEFAULT_DIRECTORY_MODE = parseInt('0755', 8);\nfunction parseMode(mode) {\n if (mode == null) {\n return undefined;\n }\n if (typeof mode === 'number') {\n return mode & 4095;\n }\n mode = mode.toString();\n if (mode.substring(0, 1) === '0') {\n return parseInt(mode, 8) & 4095;\n }\n return parseInt(mode, 10) & 4095;\n}\nfunction parseMtime(input) {\n if (input == null) {\n return undefined;\n }\n let mtime;\n if (input.secs != null) {\n mtime = {\n secs: input.secs,\n nsecs: input.nsecs\n };\n }\n if (input.Seconds != null) {\n mtime = {\n secs: input.Seconds,\n nsecs: input.FractionalNanoseconds\n };\n }\n if (Array.isArray(input)) {\n mtime = {\n secs: input[0],\n nsecs: input[1]\n };\n }\n if (input instanceof Date) {\n const ms = input.getTime();\n const secs = Math.floor(ms / 1000);\n mtime = {\n secs: secs,\n nsecs: (ms - secs * 1000) * 1000\n };\n }\n if (!Object.prototype.hasOwnProperty.call(mtime, 'secs')) {\n return undefined;\n }\n if (mtime != null && mtime.nsecs != null && (mtime.nsecs < 0 || mtime.nsecs > 999999999)) {\n throw errcode__default['default'](new Error('mtime-nsecs must be within the range [0,999999999]'), 'ERR_INVALID_MTIME_NSECS');\n }\n return mtime;\n}\nclass UnixFS {\n static unmarshal(marshaled) {\n const message = PBData.decode(marshaled);\n const decoded = PBData.toObject(message, {\n defaults: false,\n arrays: true,\n longs: Number,\n objects: false\n });\n const data = new UnixFS({\n type: types[decoded.Type],\n data: decoded.Data,\n blockSizes: decoded.blocksizes,\n mode: decoded.mode,\n mtime: decoded.mtime ? {\n secs: decoded.mtime.Seconds,\n nsecs: decoded.mtime.FractionalNanoseconds\n } : undefined\n });\n data._originalMode = decoded.mode || 0;\n return data;\n }\n constructor(options = { type: 'file' }) {\n const {type, data, blockSizes, hashType, fanout, mtime, mode} = options;\n if (type && !types.includes(type)) {\n throw errcode__default['default'](new Error('Type: ' + type + ' is not valid'), 'ERR_INVALID_TYPE');\n }\n this.type = type || 'file';\n this.data = data;\n this.hashType = hashType;\n this.fanout = fanout;\n this.blockSizes = blockSizes || [];\n this._originalMode = 0;\n this.mode = parseMode(mode);\n if (mtime) {\n this.mtime = parseMtime(mtime);\n if (this.mtime && !this.mtime.nsecs) {\n this.mtime.nsecs = 0;\n }\n }\n }\n set mode(mode) {\n this._mode = this.isDirectory() ? DEFAULT_DIRECTORY_MODE : DEFAULT_FILE_MODE;\n const parsedMode = parseMode(mode);\n if (parsedMode !== undefined) {\n this._mode = parsedMode;\n }\n }\n get mode() {\n return this._mode;\n }\n isDirectory() {\n return Boolean(this.type && dirTypes.includes(this.type));\n }\n addBlockSize(size) {\n this.blockSizes.push(size);\n }\n removeBlockSize(index) {\n this.blockSizes.splice(index, 1);\n }\n fileSize() {\n if (this.isDirectory()) {\n return 0;\n }\n let sum = 0;\n this.blockSizes.forEach(size => {\n sum += size;\n });\n if (this.data) {\n sum += this.data.length;\n }\n return sum;\n }\n marshal() {\n let type;\n switch (this.type) {\n case 'raw':\n type = PBData.DataType.Raw;\n break;\n case 'directory':\n type = PBData.DataType.Directory;\n break;\n case 'file':\n type = PBData.DataType.File;\n break;\n case 'metadata':\n type = PBData.DataType.Metadata;\n break;\n case 'symlink':\n type = PBData.DataType.Symlink;\n break;\n case 'hamt-sharded-directory':\n type = PBData.DataType.HAMTShard;\n break;\n default:\n throw errcode__default['default'](new Error('Type: ' + type + ' is not valid'), 'ERR_INVALID_TYPE');\n }\n let data = this.data;\n if (!this.data || !this.data.length) {\n data = undefined;\n }\n let mode;\n if (this.mode != null) {\n mode = this._originalMode & 4294963200 | (parseMode(this.mode) || 0);\n if (mode === DEFAULT_FILE_MODE && !this.isDirectory()) {\n mode = undefined;\n }\n if (mode === DEFAULT_DIRECTORY_MODE && this.isDirectory()) {\n mode = undefined;\n }\n }\n let mtime;\n if (this.mtime != null) {\n const parsed = parseMtime(this.mtime);\n if (parsed) {\n mtime = {\n Seconds: parsed.secs,\n FractionalNanoseconds: parsed.nsecs\n };\n if (mtime.FractionalNanoseconds === 0) {\n delete mtime.FractionalNanoseconds;\n }\n }\n }\n const pbData = {\n Type: type,\n Data: data,\n filesize: this.isDirectory() ? undefined : this.fileSize(),\n blocksizes: this.blockSizes,\n hashType: this.hashType,\n fanout: this.fanout,\n mode,\n mtime\n };\n return PBData.encode(pbData).finish();\n }\n}\n\nexports.UnixFS = UnixFS;\nexports.parseMode = parseMode;\nexports.parseMtime = parseMtime;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar $protobuf = require('protobufjs/minimal.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar $protobuf__default = /*#__PURE__*/_interopDefaultLegacy($protobuf);\n\nconst $Reader = $protobuf__default['default'].Reader, $Writer = $protobuf__default['default'].Writer, $util = $protobuf__default['default'].util;\nconst $root = $protobuf__default['default'].roots['ipfs-unixfs'] || ($protobuf__default['default'].roots['ipfs-unixfs'] = {});\nconst Data = $root.Data = (() => {\n function Data(p) {\n this.blocksizes = [];\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n Data.prototype.Type = 0;\n Data.prototype.Data = $util.newBuffer([]);\n Data.prototype.filesize = $util.Long ? $util.Long.fromBits(0, 0, true) : 0;\n Data.prototype.blocksizes = $util.emptyArray;\n Data.prototype.hashType = $util.Long ? $util.Long.fromBits(0, 0, true) : 0;\n Data.prototype.fanout = $util.Long ? $util.Long.fromBits(0, 0, true) : 0;\n Data.prototype.mode = 0;\n Data.prototype.mtime = null;\n Data.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n w.uint32(8).int32(m.Type);\n if (m.Data != null && Object.hasOwnProperty.call(m, 'Data'))\n w.uint32(18).bytes(m.Data);\n if (m.filesize != null && Object.hasOwnProperty.call(m, 'filesize'))\n w.uint32(24).uint64(m.filesize);\n if (m.blocksizes != null && m.blocksizes.length) {\n for (var i = 0; i < m.blocksizes.length; ++i)\n w.uint32(32).uint64(m.blocksizes[i]);\n }\n if (m.hashType != null && Object.hasOwnProperty.call(m, 'hashType'))\n w.uint32(40).uint64(m.hashType);\n if (m.fanout != null && Object.hasOwnProperty.call(m, 'fanout'))\n w.uint32(48).uint64(m.fanout);\n if (m.mode != null && Object.hasOwnProperty.call(m, 'mode'))\n w.uint32(56).uint32(m.mode);\n if (m.mtime != null && Object.hasOwnProperty.call(m, 'mtime'))\n $root.UnixTime.encode(m.mtime, w.uint32(66).fork()).ldelim();\n return w;\n };\n Data.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.Data();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.Type = r.int32();\n break;\n case 2:\n m.Data = r.bytes();\n break;\n case 3:\n m.filesize = r.uint64();\n break;\n case 4:\n if (!(m.blocksizes && m.blocksizes.length))\n m.blocksizes = [];\n if ((t & 7) === 2) {\n var c2 = r.uint32() + r.pos;\n while (r.pos < c2)\n m.blocksizes.push(r.uint64());\n } else\n m.blocksizes.push(r.uint64());\n break;\n case 5:\n m.hashType = r.uint64();\n break;\n case 6:\n m.fanout = r.uint64();\n break;\n case 7:\n m.mode = r.uint32();\n break;\n case 8:\n m.mtime = $root.UnixTime.decode(r, r.uint32());\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n if (!m.hasOwnProperty('Type'))\n throw $util.ProtocolError('missing required \\'Type\\'', { instance: m });\n return m;\n };\n Data.fromObject = function fromObject(d) {\n if (d instanceof $root.Data)\n return d;\n var m = new $root.Data();\n switch (d.Type) {\n case 'Raw':\n case 0:\n m.Type = 0;\n break;\n case 'Directory':\n case 1:\n m.Type = 1;\n break;\n case 'File':\n case 2:\n m.Type = 2;\n break;\n case 'Metadata':\n case 3:\n m.Type = 3;\n break;\n case 'Symlink':\n case 4:\n m.Type = 4;\n break;\n case 'HAMTShard':\n case 5:\n m.Type = 5;\n break;\n }\n if (d.Data != null) {\n if (typeof d.Data === 'string')\n $util.base64.decode(d.Data, m.Data = $util.newBuffer($util.base64.length(d.Data)), 0);\n else if (d.Data.length)\n m.Data = d.Data;\n }\n if (d.filesize != null) {\n if ($util.Long)\n (m.filesize = $util.Long.fromValue(d.filesize)).unsigned = true;\n else if (typeof d.filesize === 'string')\n m.filesize = parseInt(d.filesize, 10);\n else if (typeof d.filesize === 'number')\n m.filesize = d.filesize;\n else if (typeof d.filesize === 'object')\n m.filesize = new $util.LongBits(d.filesize.low >>> 0, d.filesize.high >>> 0).toNumber(true);\n }\n if (d.blocksizes) {\n if (!Array.isArray(d.blocksizes))\n throw TypeError('.Data.blocksizes: array expected');\n m.blocksizes = [];\n for (var i = 0; i < d.blocksizes.length; ++i) {\n if ($util.Long)\n (m.blocksizes[i] = $util.Long.fromValue(d.blocksizes[i])).unsigned = true;\n else if (typeof d.blocksizes[i] === 'string')\n m.blocksizes[i] = parseInt(d.blocksizes[i], 10);\n else if (typeof d.blocksizes[i] === 'number')\n m.blocksizes[i] = d.blocksizes[i];\n else if (typeof d.blocksizes[i] === 'object')\n m.blocksizes[i] = new $util.LongBits(d.blocksizes[i].low >>> 0, d.blocksizes[i].high >>> 0).toNumber(true);\n }\n }\n if (d.hashType != null) {\n if ($util.Long)\n (m.hashType = $util.Long.fromValue(d.hashType)).unsigned = true;\n else if (typeof d.hashType === 'string')\n m.hashType = parseInt(d.hashType, 10);\n else if (typeof d.hashType === 'number')\n m.hashType = d.hashType;\n else if (typeof d.hashType === 'object')\n m.hashType = new $util.LongBits(d.hashType.low >>> 0, d.hashType.high >>> 0).toNumber(true);\n }\n if (d.fanout != null) {\n if ($util.Long)\n (m.fanout = $util.Long.fromValue(d.fanout)).unsigned = true;\n else if (typeof d.fanout === 'string')\n m.fanout = parseInt(d.fanout, 10);\n else if (typeof d.fanout === 'number')\n m.fanout = d.fanout;\n else if (typeof d.fanout === 'object')\n m.fanout = new $util.LongBits(d.fanout.low >>> 0, d.fanout.high >>> 0).toNumber(true);\n }\n if (d.mode != null) {\n m.mode = d.mode >>> 0;\n }\n if (d.mtime != null) {\n if (typeof d.mtime !== 'object')\n throw TypeError('.Data.mtime: object expected');\n m.mtime = $root.UnixTime.fromObject(d.mtime);\n }\n return m;\n };\n Data.toObject = function toObject(m, o) {\n if (!o)\n o = {};\n var d = {};\n if (o.arrays || o.defaults) {\n d.blocksizes = [];\n }\n if (o.defaults) {\n d.Type = o.enums === String ? 'Raw' : 0;\n if (o.bytes === String)\n d.Data = '';\n else {\n d.Data = [];\n if (o.bytes !== Array)\n d.Data = $util.newBuffer(d.Data);\n }\n if ($util.Long) {\n var n = new $util.Long(0, 0, true);\n d.filesize = o.longs === String ? n.toString() : o.longs === Number ? n.toNumber() : n;\n } else\n d.filesize = o.longs === String ? '0' : 0;\n if ($util.Long) {\n var n = new $util.Long(0, 0, true);\n d.hashType = o.longs === String ? n.toString() : o.longs === Number ? n.toNumber() : n;\n } else\n d.hashType = o.longs === String ? '0' : 0;\n if ($util.Long) {\n var n = new $util.Long(0, 0, true);\n d.fanout = o.longs === String ? n.toString() : o.longs === Number ? n.toNumber() : n;\n } else\n d.fanout = o.longs === String ? '0' : 0;\n d.mode = 0;\n d.mtime = null;\n }\n if (m.Type != null && m.hasOwnProperty('Type')) {\n d.Type = o.enums === String ? $root.Data.DataType[m.Type] : m.Type;\n }\n if (m.Data != null && m.hasOwnProperty('Data')) {\n d.Data = o.bytes === String ? $util.base64.encode(m.Data, 0, m.Data.length) : o.bytes === Array ? Array.prototype.slice.call(m.Data) : m.Data;\n }\n if (m.filesize != null && m.hasOwnProperty('filesize')) {\n if (typeof m.filesize === 'number')\n d.filesize = o.longs === String ? String(m.filesize) : m.filesize;\n else\n d.filesize = o.longs === String ? $util.Long.prototype.toString.call(m.filesize) : o.longs === Number ? new $util.LongBits(m.filesize.low >>> 0, m.filesize.high >>> 0).toNumber(true) : m.filesize;\n }\n if (m.blocksizes && m.blocksizes.length) {\n d.blocksizes = [];\n for (var j = 0; j < m.blocksizes.length; ++j) {\n if (typeof m.blocksizes[j] === 'number')\n d.blocksizes[j] = o.longs === String ? String(m.blocksizes[j]) : m.blocksizes[j];\n else\n d.blocksizes[j] = o.longs === String ? $util.Long.prototype.toString.call(m.blocksizes[j]) : o.longs === Number ? new $util.LongBits(m.blocksizes[j].low >>> 0, m.blocksizes[j].high >>> 0).toNumber(true) : m.blocksizes[j];\n }\n }\n if (m.hashType != null && m.hasOwnProperty('hashType')) {\n if (typeof m.hashType === 'number')\n d.hashType = o.longs === String ? String(m.hashType) : m.hashType;\n else\n d.hashType = o.longs === String ? $util.Long.prototype.toString.call(m.hashType) : o.longs === Number ? new $util.LongBits(m.hashType.low >>> 0, m.hashType.high >>> 0).toNumber(true) : m.hashType;\n }\n if (m.fanout != null && m.hasOwnProperty('fanout')) {\n if (typeof m.fanout === 'number')\n d.fanout = o.longs === String ? String(m.fanout) : m.fanout;\n else\n d.fanout = o.longs === String ? $util.Long.prototype.toString.call(m.fanout) : o.longs === Number ? new $util.LongBits(m.fanout.low >>> 0, m.fanout.high >>> 0).toNumber(true) : m.fanout;\n }\n if (m.mode != null && m.hasOwnProperty('mode')) {\n d.mode = m.mode;\n }\n if (m.mtime != null && m.hasOwnProperty('mtime')) {\n d.mtime = $root.UnixTime.toObject(m.mtime, o);\n }\n return d;\n };\n Data.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf__default['default'].util.toJSONOptions);\n };\n Data.DataType = function () {\n const valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = 'Raw'] = 0;\n values[valuesById[1] = 'Directory'] = 1;\n values[valuesById[2] = 'File'] = 2;\n values[valuesById[3] = 'Metadata'] = 3;\n values[valuesById[4] = 'Symlink'] = 4;\n values[valuesById[5] = 'HAMTShard'] = 5;\n return values;\n }();\n return Data;\n})();\nconst UnixTime = $root.UnixTime = (() => {\n function UnixTime(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n UnixTime.prototype.Seconds = $util.Long ? $util.Long.fromBits(0, 0, false) : 0;\n UnixTime.prototype.FractionalNanoseconds = 0;\n UnixTime.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n w.uint32(8).int64(m.Seconds);\n if (m.FractionalNanoseconds != null && Object.hasOwnProperty.call(m, 'FractionalNanoseconds'))\n w.uint32(21).fixed32(m.FractionalNanoseconds);\n return w;\n };\n UnixTime.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.UnixTime();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.Seconds = r.int64();\n break;\n case 2:\n m.FractionalNanoseconds = r.fixed32();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n if (!m.hasOwnProperty('Seconds'))\n throw $util.ProtocolError('missing required \\'Seconds\\'', { instance: m });\n return m;\n };\n UnixTime.fromObject = function fromObject(d) {\n if (d instanceof $root.UnixTime)\n return d;\n var m = new $root.UnixTime();\n if (d.Seconds != null) {\n if ($util.Long)\n (m.Seconds = $util.Long.fromValue(d.Seconds)).unsigned = false;\n else if (typeof d.Seconds === 'string')\n m.Seconds = parseInt(d.Seconds, 10);\n else if (typeof d.Seconds === 'number')\n m.Seconds = d.Seconds;\n else if (typeof d.Seconds === 'object')\n m.Seconds = new $util.LongBits(d.Seconds.low >>> 0, d.Seconds.high >>> 0).toNumber();\n }\n if (d.FractionalNanoseconds != null) {\n m.FractionalNanoseconds = d.FractionalNanoseconds >>> 0;\n }\n return m;\n };\n UnixTime.toObject = function toObject(m, o) {\n if (!o)\n o = {};\n var d = {};\n if (o.defaults) {\n if ($util.Long) {\n var n = new $util.Long(0, 0, false);\n d.Seconds = o.longs === String ? n.toString() : o.longs === Number ? n.toNumber() : n;\n } else\n d.Seconds = o.longs === String ? '0' : 0;\n d.FractionalNanoseconds = 0;\n }\n if (m.Seconds != null && m.hasOwnProperty('Seconds')) {\n if (typeof m.Seconds === 'number')\n d.Seconds = o.longs === String ? String(m.Seconds) : m.Seconds;\n else\n d.Seconds = o.longs === String ? $util.Long.prototype.toString.call(m.Seconds) : o.longs === Number ? new $util.LongBits(m.Seconds.low >>> 0, m.Seconds.high >>> 0).toNumber() : m.Seconds;\n }\n if (m.FractionalNanoseconds != null && m.hasOwnProperty('FractionalNanoseconds')) {\n d.FractionalNanoseconds = m.FractionalNanoseconds;\n }\n return d;\n };\n UnixTime.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf__default['default'].util.toJSONOptions);\n };\n return UnixTime;\n})();\nconst Metadata = $root.Metadata = (() => {\n function Metadata(p) {\n if (p)\n for (var ks = Object.keys(p), i = 0; i < ks.length; ++i)\n if (p[ks[i]] != null)\n this[ks[i]] = p[ks[i]];\n }\n Metadata.prototype.MimeType = '';\n Metadata.encode = function encode(m, w) {\n if (!w)\n w = $Writer.create();\n if (m.MimeType != null && Object.hasOwnProperty.call(m, 'MimeType'))\n w.uint32(10).string(m.MimeType);\n return w;\n };\n Metadata.decode = function decode(r, l) {\n if (!(r instanceof $Reader))\n r = $Reader.create(r);\n var c = l === undefined ? r.len : r.pos + l, m = new $root.Metadata();\n while (r.pos < c) {\n var t = r.uint32();\n switch (t >>> 3) {\n case 1:\n m.MimeType = r.string();\n break;\n default:\n r.skipType(t & 7);\n break;\n }\n }\n return m;\n };\n Metadata.fromObject = function fromObject(d) {\n if (d instanceof $root.Metadata)\n return d;\n var m = new $root.Metadata();\n if (d.MimeType != null) {\n m.MimeType = String(d.MimeType);\n }\n return m;\n };\n Metadata.toObject = function toObject(m, o) {\n if (!o)\n o = {};\n var d = {};\n if (o.defaults) {\n d.MimeType = '';\n }\n if (m.MimeType != null && m.hasOwnProperty('MimeType')) {\n d.MimeType = m.MimeType;\n }\n return d;\n };\n Metadata.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf__default['default'].util.toJSONOptions);\n };\n return Metadata;\n})();\n\nexports.Data = Data;\nexports.Metadata = Metadata;\nexports.UnixTime = UnixTime;\nexports['default'] = $root;\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction modeToString(mode) {\n if (mode == null) {\n return undefined;\n }\n if (typeof mode === 'string') {\n return mode;\n }\n return mode.toString(8).padStart(4, '0');\n}\n\nexports.modeToString = modeToString;\n","const { AbortController } = require('native-abort-controller')\n\n/**\n * Takes an array of AbortSignals and returns a single signal.\n * If any signals are aborted, the returned signal will be aborted.\n * @param {Array<AbortSignal>} signals\n * @returns {AbortSignal}\n */\nfunction anySignal (signals) {\n const controller = new AbortController()\n\n function onAbort () {\n controller.abort()\n\n for (const signal of signals) {\n if (!signal || !signal.removeEventListener) continue\n signal.removeEventListener('abort', onAbort)\n }\n }\n\n for (const signal of signals) {\n if (!signal || !signal.addEventListener) continue\n if (signal.aborted) {\n onAbort()\n break\n }\n signal.addEventListener('abort', onAbort)\n }\n\n return controller.signal\n}\n\nmodule.exports = anySignal\nmodule.exports.anySignal = anySignal\n","/*globals self, window */\n\"use strict\"\n\n/*eslint-disable @mysticatea/prettier */\nconst { AbortController, AbortSignal } =\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n /* otherwise */ undefined\n/*eslint-enable @mysticatea/prettier */\n\nmodule.exports = AbortController\nmodule.exports.AbortSignal = AbortSignal\nmodule.exports.default = AbortController\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createRm = configure.configure(api => {\n async function* rm(cid, options = {}) {\n if (!Array.isArray(cid)) {\n cid = [cid];\n }\n const res = await api.post('block/rm', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: cid.map(cid => cid.toString()),\n 'stream-channels': true,\n ...options\n }),\n headers: options.headers\n });\n for await (const removed of res.ndjson()) {\n yield toCoreInterface(removed);\n }\n }\n return rm;\n});\nfunction toCoreInterface(removed) {\n const out = { cid: cid.CID.parse(removed.Hash) };\n if (removed.Error) {\n out.error = new Error(removed.Error);\n }\n return out;\n}\n\nexports.createRm = createRm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createStat = configure.configure(api => {\n async function stat(cid$1, options = {}) {\n const res = await api.post('block/stat', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: cid$1.toString(),\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return {\n cid: cid.CID.parse(data.Key),\n size: data.Size\n };\n }\n return stat;\n});\n\nexports.createStat = createStat;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar add = require('./add.js');\nvar clear = require('./clear.js');\nvar list = require('./list.js');\nvar reset = require('./reset.js');\nvar rm = require('./rm.js');\n\nfunction createBootstrap(config) {\n return {\n add: add.createAdd(config),\n clear: clear.createClear(config),\n list: list.createList(config),\n reset: reset.createReset(config),\n rm: rm.createRm(config)\n };\n}\n\nexports.createBootstrap = createBootstrap;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar multiaddr = require('multiaddr');\n\nconst createAdd = configure.configure(api => {\n async function add(addr, options = {}) {\n const res = await api.post('bootstrap/add', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: addr,\n ...options\n }),\n headers: options.headers\n });\n const {Peers} = await res.json();\n return { Peers: Peers.map(ma => new multiaddr.Multiaddr(ma)) };\n }\n return add;\n});\n\nexports.createAdd = createAdd;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar multiaddr = require('multiaddr');\n\nconst createClear = configure.configure(api => {\n async function clear(options = {}) {\n const res = await api.post('bootstrap/rm', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n ...options,\n all: true\n }),\n headers: options.headers\n });\n const {Peers} = await res.json();\n return { Peers: Peers.map(ma => new multiaddr.Multiaddr(ma)) };\n }\n return clear;\n});\n\nexports.createClear = createClear;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar multiaddr = require('multiaddr');\n\nconst createList = configure.configure(api => {\n async function list(options = {}) {\n const res = await api.post('bootstrap/list', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const {Peers} = await res.json();\n return { Peers: Peers.map(ma => new multiaddr.Multiaddr(ma)) };\n }\n return list;\n});\n\nexports.createList = createList;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar multiaddr = require('multiaddr');\n\nconst createReset = configure.configure(api => {\n async function reset(options = {}) {\n const res = await api.post('bootstrap/add', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n ...options,\n default: true\n }),\n headers: options.headers\n });\n const {Peers} = await res.json();\n return { Peers: Peers.map(ma => new multiaddr.Multiaddr(ma)) };\n }\n return reset;\n});\n\nexports.createReset = createReset;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar multiaddr = require('multiaddr');\n\nconst createRm = configure.configure(api => {\n async function rm(addr, options = {}) {\n const res = await api.post('bootstrap/rm', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: addr,\n ...options\n }),\n headers: options.headers\n });\n const {Peers} = await res.json();\n return { Peers: Peers.map(ma => new multiaddr.Multiaddr(ma)) };\n }\n return rm;\n});\n\nexports.createRm = createRm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar index = require('./profiles/index.js');\nvar get = require('./get.js');\nvar getAll = require('./get-all.js');\nvar replace = require('./replace.js');\nvar set = require('./set.js');\n\nfunction createConfig(config) {\n return {\n getAll: getAll.createGetAll(config),\n get: get.createGet(config),\n set: set.createSet(config),\n replace: replace.createReplace(config),\n profiles: index.createProfiles(config)\n };\n}\n\nexports.createConfig = createConfig;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar apply = require('./apply.js');\nvar list = require('./list.js');\n\nfunction createProfiles(config) {\n return {\n apply: apply.createApply(config),\n list: list.createList(config)\n };\n}\n\nexports.createProfiles = createProfiles;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst createApply = configure.configure(api => {\n async function apply(profile, options = {}) {\n const res = await api.post('config/profile/apply', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: profile,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return {\n original: data.OldCfg,\n updated: data.NewCfg\n };\n }\n return apply;\n});\n\nexports.createApply = createApply;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../../lib/object-to-camel.js');\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst createList = configure.configure(api => {\n async function list(options = {}) {\n const res = await api.post('config/profile/list', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const data = await res.json();\n return data.map(profile => objectToCamel.objectToCamel(profile));\n }\n return list;\n});\n\nexports.createList = createList;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createGet = configure.configure(api => {\n const get = async (key, options = {}) => {\n if (!key) {\n throw new Error('key argument is required');\n }\n const res = await api.post('config', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: key,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return data.Value;\n };\n return get;\n});\n\nexports.createGet = createGet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createGetAll = configure.configure(api => {\n const getAll = async (options = {}) => {\n const res = await api.post('config/show', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({ ...options }),\n headers: options.headers\n });\n const data = await res.json();\n return data;\n };\n return getAll;\n});\n\nexports.createGetAll = createGetAll;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar fromString = require('uint8arrays/from-string');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar abortSignal = require('../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createReplace = configure.configure(api => {\n const replace = async (config, options = {}) => {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const res = await api.post('config/replace', {\n signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n ...await multipartRequest.multipartRequest(fromString.fromString(JSON.stringify(config)), controller, options.headers)\n });\n await res.text();\n };\n return replace;\n});\n\nexports.createReplace = createReplace;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createSet = configure.configure(api => {\n const set = async (key, value, options = {}) => {\n if (typeof key !== 'string') {\n throw new Error('Invalid key type');\n }\n const params = {\n ...options,\n ...encodeParam(key, value)\n };\n const res = await api.post('config', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(params),\n headers: options.headers\n });\n await res.text();\n };\n return set;\n});\nconst encodeParam = (key, value) => {\n switch (typeof value) {\n case 'boolean':\n return {\n arg: [\n key,\n value.toString()\n ],\n bool: true\n };\n case 'string':\n return {\n arg: [\n key,\n value\n ]\n };\n default:\n return {\n arg: [\n key,\n JSON.stringify(value)\n ],\n json: true\n };\n }\n};\n\nexports.createSet = createSet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _export = require('./export.js');\nvar get = require('./get.js');\nvar _import = require('./import.js');\nvar put = require('./put.js');\nvar resolve = require('./resolve.js');\n\nfunction createDag(codecs, config) {\n return {\n export: _export.createExport(config),\n get: get.createGet(codecs, config),\n import: _import.createImport(config),\n put: put.createPut(codecs, config),\n resolve: resolve.createResolve(config)\n };\n}\n\nexports.createDag = createDag;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createExport = configure.configure(api => {\n async function* dagExport(root, options = {}) {\n const res = await api.post('dag/export', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({ arg: root.toString() }),\n headers: options.headers\n });\n yield* res.iterator();\n }\n return dagExport;\n});\n\nexports.createExport = createExport;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar resolve = require('../lib/resolve.js');\nvar first = require('it-first');\nvar last = require('it-last');\nvar errCode = require('err-code');\nvar get = require('../block/get.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar first__default = /*#__PURE__*/_interopDefaultLegacy(first);\nvar last__default = /*#__PURE__*/_interopDefaultLegacy(last);\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\n\nconst createGet = (codecs, options) => {\n const fn = configure.configure((api, opts) => {\n const getBlock = get.createGet(opts);\n const get$1 = async (cid, options = {}) => {\n if (options.path) {\n const entry = options.localResolve ? await first__default['default'](resolve.resolve(cid, options.path, codecs, getBlock, options)) : await last__default['default'](resolve.resolve(cid, options.path, codecs, getBlock, options));\n const result = entry;\n if (!result) {\n throw errCode__default['default'](new Error('Not found'), 'ERR_NOT_FOUND');\n }\n return result;\n }\n const codec = await codecs.getCodec(cid.code);\n const block = await getBlock(cid, options);\n const node = codec.decode(block);\n return {\n value: node,\n remainderPath: ''\n };\n };\n return get$1;\n });\n return fn(options);\n};\n\nexports.createGet = createGet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar errCode = require('err-code');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\n\nasync function* resolve(cid$1, path, codecs, getBlock, options) {\n const load = async cid => {\n const codec = await codecs.getCodec(cid.code);\n const block = await getBlock(cid, options);\n return codec.decode(block);\n };\n const parts = path.split('/').filter(Boolean);\n let value = await load(cid$1);\n let lastCid = cid$1;\n if (!parts.length) {\n yield {\n value,\n remainderPath: ''\n };\n }\n while (parts.length) {\n const key = parts.shift();\n if (!key) {\n throw errCode__default['default'](new Error(`Could not resolve path \"${ path }\"`), 'ERR_INVALID_PATH');\n }\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n value = value[key];\n yield {\n value,\n remainderPath: parts.join('/')\n };\n } else {\n throw errCode__default['default'](new Error(`no link named \"${ key }\" under ${ lastCid }`), 'ERR_NO_LINK');\n }\n const cid$1 = cid.CID.asCID(value);\n if (cid$1) {\n lastCid = cid$1;\n value = await load(value);\n }\n }\n}\n\nexports.resolve = resolve;\n","'use strict'\n\n/**\n * Returns the first result from an (async) iterable, unless empty, in which\n * case returns `undefined`.\n *\n * @template T\n * @param {AsyncIterable<T>|Iterable<T>} source\n */\nconst first = async (source) => {\n for await (const entry of source) { // eslint-disable-line no-unreachable-loop\n return entry\n }\n\n return undefined\n}\n\nmodule.exports = first\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar abortSignal = require('../lib/abort-signal.js');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar nativeAbortController = require('native-abort-controller');\nvar cid = require('multiformats/cid');\n\nconst createImport = configure.configure(api => {\n async function* dagImport(source, options = {}) {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const {headers, body} = await multipartRequest.multipartRequest(source, controller, options.headers);\n const res = await api.post('dag/import', {\n signal,\n headers,\n body,\n searchParams: toUrlSearchParams.toUrlSearchParams({ 'pin-roots': options.pinRoots })\n });\n for await (const {Root} of res.ndjson()) {\n if (Root !== undefined) {\n const {\n Cid: {'/': Cid},\n PinErrorMsg\n } = Root;\n yield {\n root: {\n cid: cid.CID.parse(Cid),\n pinErrorMsg: PinErrorMsg\n }\n };\n }\n }\n }\n return dagImport;\n});\n\nexports.createImport = createImport;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createResolve = configure.configure(api => {\n const resolve = async (ipfsPath, options = {}) => {\n const res = await api.post('dag/resolve', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ ipfsPath }${ options.path ? `/${ options.path }`.replace(/\\/[/]+/g, '/') : '' }`,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return {\n cid: cid.CID.parse(data.Cid['/']),\n remainderPath: data.RemPath\n };\n };\n return resolve;\n});\n\nexports.createResolve = createResolve;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar findPeer = require('./find-peer.js');\nvar findProvs = require('./find-provs.js');\nvar get = require('./get.js');\nvar provide = require('./provide.js');\nvar put = require('./put.js');\nvar query = require('./query.js');\n\nfunction createDht(config) {\n return {\n findPeer: findPeer.createFindPeer(config),\n findProvs: findProvs.createFindProvs(config),\n get: get.createGet(config),\n provide: provide.createProvide(config),\n put: put.createPut(config),\n query: query.createQuery(config)\n };\n}\n\nexports.createDht = createDht;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar responseTypes = require('./response-types.js');\n\nconst createFindPeer = configure.configure(api => {\n async function findPeer(peerId, options = {}) {\n const res = await api.post('dht/findpeer', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: peerId,\n ...options\n }),\n headers: options.headers\n });\n for await (const data of res.ndjson()) {\n if (data.Type === responseTypes.FinalPeer && data.Responses) {\n const {ID, Addrs} = data.Responses[0];\n return {\n id: ID,\n addrs: (Addrs || []).map(a => new multiaddr.Multiaddr(a))\n };\n }\n }\n throw new Error('not found');\n }\n return findPeer;\n});\n\nexports.createFindPeer = createFindPeer;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar responseTypes = require('./response-types.js');\n\nconst createFindProvs = configure.configure(api => {\n async function* findProvs(cid, options = {}) {\n const res = await api.post('dht/findprovs', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: cid.toString(),\n ...options\n }),\n headers: options.headers\n });\n for await (const message of res.ndjson()) {\n if (message.Type === responseTypes.Provider && message.Responses) {\n for (const {ID, Addrs} of message.Responses) {\n yield {\n id: ID,\n addrs: (Addrs || []).map(a => new multiaddr.Multiaddr(a))\n };\n }\n }\n }\n }\n return findProvs;\n});\n\nexports.createFindProvs = createFindProvs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar responseTypes = require('./response-types.js');\nvar fromString = require('uint8arrays/from-string');\nvar toString = require('uint8arrays/to-string');\n\nconst createGet = configure.configure(api => {\n async function get(key, options = {}) {\n const res = await api.post('dht/get', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: key instanceof Uint8Array ? toString.toString(key) : key,\n ...options\n }),\n headers: options.headers\n });\n for await (const message of res.ndjson()) {\n if (message.Type === responseTypes.Value) {\n return fromString.fromString(message.Extra, 'base64pad');\n }\n }\n throw new Error('not found');\n }\n return get;\n});\n\nexports.createGet = createGet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createProvide = configure.configure(api => {\n async function* provide(cids, options = { recursive: false }) {\n const cidArr = Array.isArray(cids) ? cids : [cids];\n const res = await api.post('dht/provide', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: cidArr.map(cid => cid.toString()),\n ...options\n }),\n headers: options.headers\n });\n for await (let message of res.ndjson()) {\n message = objectToCamel.objectToCamel(message);\n if (message.responses) {\n message.responses = message.responses.map(({ID, Addrs}) => ({\n id: ID,\n addrs: (Addrs || []).map(a => new multiaddr.Multiaddr(a))\n }));\n } else {\n message.responses = [];\n }\n yield message;\n }\n }\n return provide;\n});\n\nexports.createProvide = createProvide;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar abortSignal = require('../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\nvar toString = require('uint8arrays/to-string');\n\nconst createPut = configure.configure(api => {\n async function* put(key, value, options = {}) {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const res = await api.post('dht/put', {\n signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: toString.toString(key),\n ...options\n }),\n ...await multipartRequest.multipartRequest(value, controller, options.headers)\n });\n for await (let message of res.ndjson()) {\n message = objectToCamel.objectToCamel(message);\n if (message.responses) {\n message.responses = message.responses.map(({ID, Addrs}) => ({\n id: ID,\n addrs: (Addrs || []).map(a => new multiaddr.Multiaddr(a))\n }));\n }\n yield message;\n }\n }\n return put;\n});\n\nexports.createPut = createPut;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createQuery = configure.configure(api => {\n async function* query(peerId, options = {}) {\n const res = await api.post('dht/query', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: peerId.toString(),\n ...options\n }),\n headers: options.headers\n });\n for await (let message of res.ndjson()) {\n message = objectToCamel.objectToCamel(message);\n message.responses = (message.responses || []).map(({ID, Addrs}) => ({\n id: ID,\n addrs: (Addrs || []).map(a => new multiaddr.Multiaddr(a))\n }));\n yield message;\n }\n }\n return query;\n});\n\nexports.createQuery = createQuery;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cmds = require('./cmds.js');\nvar net = require('./net.js');\nvar sys = require('./sys.js');\n\nfunction createDiag(config) {\n return {\n cmds: cmds.createCmds(config),\n net: net.createNet(config),\n sys: sys.createSys(config)\n };\n}\n\nexports.createDiag = createDiag;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createCmds = configure.configure(api => {\n async function cmds(options = {}) {\n const res = await api.post('diag/cmds', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n return res.json();\n }\n return cmds;\n});\n\nexports.createCmds = createCmds;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createNet = configure.configure(api => {\n async function net(options = {}) {\n const res = await api.post('diag/net', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n return res.json();\n }\n return net;\n});\n\nexports.createNet = createNet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createSys = configure.configure(api => {\n async function sys(options = {}) {\n const res = await api.post('diag/sys', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n return res.json();\n }\n return sys;\n});\n\nexports.createSys = createSys;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar chmod = require('./chmod.js');\nvar cp = require('./cp.js');\nvar flush = require('./flush.js');\nvar ls = require('./ls.js');\nvar mkdir = require('./mkdir.js');\nvar mv = require('./mv.js');\nvar read = require('./read.js');\nvar rm = require('./rm.js');\nvar stat = require('./stat.js');\nvar touch = require('./touch.js');\nvar write = require('./write.js');\n\nfunction createFiles(config) {\n return {\n chmod: chmod.createChmod(config),\n cp: cp.createCp(config),\n flush: flush.createFlush(config),\n ls: ls.createLs(config),\n mkdir: mkdir.createMkdir(config),\n mv: mv.createMv(config),\n read: read.createRead(config),\n rm: rm.createRm(config),\n stat: stat.createStat(config),\n touch: touch.createTouch(config),\n write: write.createWrite(config)\n };\n}\n\nexports.createFiles = createFiles;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createChmod = configure.configure(api => {\n async function chmod(path, mode, options = {}) {\n const res = await api.post('files/chmod', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n mode,\n ...options\n }),\n headers: options.headers\n });\n await res.text();\n }\n return chmod;\n});\n\nexports.createChmod = createChmod;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createCp = configure.configure(api => {\n async function cp(sources, destination, options = {}) {\n const sourceArr = Array.isArray(sources) ? sources : [sources];\n const res = await api.post('files/cp', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: sourceArr.concat(destination).map(src => cid.CID.asCID(src) ? `/ipfs/${ src }` : src),\n ...options\n }),\n headers: options.headers\n });\n await res.text();\n }\n return cp;\n});\n\nexports.createCp = createCp;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createFlush = configure.configure(api => {\n async function flush(path, options = {}) {\n if (!path || typeof path !== 'string') {\n throw new Error('ipfs.files.flush requires a path');\n }\n const res = await api.post('files/flush', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return cid.CID.parse(data.Cid);\n }\n return flush;\n});\n\nexports.createFlush = createFlush;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar objectToCamelWithMetadata = require('../lib/object-to-camel-with-metadata.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createLs = configure.configure(api => {\n async function* ls(path, options = {}) {\n if (!path) {\n throw new Error('ipfs.files.ls requires a path');\n }\n const res = await api.post('files/ls', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: cid.CID.asCID(path) ? `/ipfs/${ path }` : path,\n long: true,\n ...options,\n stream: true\n }),\n headers: options.headers\n });\n for await (const result of res.ndjson()) {\n if ('Entries' in result) {\n for (const entry of result.Entries || []) {\n yield toCoreInterface(objectToCamelWithMetadata.objectToCamelWithMetadata(entry));\n }\n } else {\n yield toCoreInterface(objectToCamelWithMetadata.objectToCamelWithMetadata(result));\n }\n }\n }\n return ls;\n});\nfunction toCoreInterface(entry) {\n if (entry.hash) {\n entry.cid = cid.CID.parse(entry.hash);\n }\n delete entry.hash;\n entry.type = entry.type === 1 ? 'directory' : 'file';\n return entry;\n}\n\nexports.createLs = createLs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createMkdir = configure.configure(api => {\n async function mkdir(path, options = {}) {\n const res = await api.post('files/mkdir', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n ...options\n }),\n headers: options.headers\n });\n await res.text();\n }\n return mkdir;\n});\n\nexports.createMkdir = createMkdir;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createMv = configure.configure(api => {\n async function mv(sources, destination, options = {}) {\n if (!Array.isArray(sources)) {\n sources = [sources];\n }\n const res = await api.post('files/mv', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: sources.concat(destination),\n ...options\n }),\n headers: options.headers\n });\n await res.text();\n }\n return mv;\n});\n\nexports.createMv = createMv;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar toIterable = require('stream-to-it/source.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar toIterable__default = /*#__PURE__*/_interopDefaultLegacy(toIterable);\n\nconst createRead = configure.configure(api => {\n async function* read(path, options = {}) {\n const res = await api.post('files/read', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n count: options.length,\n ...options\n }),\n headers: options.headers\n });\n yield* toIterable__default['default'](res.body);\n }\n return read;\n});\n\nexports.createRead = createRead;\n","module.exports = readable => {\n // Node.js stream\n if (readable[Symbol.asyncIterator]) return readable\n\n // Browser ReadableStream\n if (readable.getReader) {\n return (async function * () {\n const reader = readable.getReader()\n\n try {\n while (true) {\n const { done, value } = await reader.read()\n if (done) return\n yield value\n }\n } finally {\n reader.releaseLock()\n }\n })()\n }\n\n throw new Error('unknown stream')\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createRm = configure.configure(api => {\n async function rm(path, options = {}) {\n const res = await api.post('files/rm', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n ...options\n }),\n headers: options.headers\n });\n await res.text();\n }\n return rm;\n});\n\nexports.createRm = createRm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createTouch = configure.configure(api => {\n async function touch(path, options = {}) {\n const res = await api.post('files/touch', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n ...options\n }),\n headers: options.headers\n });\n await res.text();\n }\n return touch;\n});\n\nexports.createTouch = createTouch;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar modeToString = require('../lib/mode-to-string.js');\nvar parseMtime = require('../lib/parse-mtime.js');\nvar configure = require('../lib/configure.js');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar abortSignal = require('../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createWrite = configure.configure(api => {\n async function write(path, input, options = {}) {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const res = await api.post('files/write', {\n signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n streamChannels: true,\n count: options.length,\n ...options\n }),\n ...await multipartRequest.multipartRequest({\n content: input,\n path: 'arg',\n mode: modeToString.modeToString(options.mode),\n mtime: parseMtime.parseMtime(options.mtime)\n }, controller, options.headers)\n });\n await res.text();\n }\n return write;\n});\n\nexports.createWrite = createWrite;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _export = require('./export.js');\nvar gen = require('./gen.js');\nvar _import = require('./import.js');\nvar info = require('./info.js');\nvar list = require('./list.js');\nvar rename = require('./rename.js');\nvar rm = require('./rm.js');\n\nfunction createKey(config) {\n return {\n export: _export.createExport(config),\n gen: gen.createGen(config),\n import: _import.createImport(config),\n info: info.createInfo(config),\n list: list.createList(config),\n rename: rename.createRename(config),\n rm: rm.createRm(config)\n };\n}\n\nexports.createKey = createKey;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar errCode = require('err-code');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\n\nconst createExport = configure.configure(api => {\n const exportKey = async (name, password, options = {}) => {\n throw errCode__default['default'](new Error('Not implemented'), 'ERR_NOT_IMPLEMENTED');\n };\n return exportKey;\n});\n\nexports.createExport = createExport;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createGen = configure.configure(api => {\n async function gen(name, options = {\n type: 'rsa',\n size: 2048\n }) {\n const res = await api.post('key/gen', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: name,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return objectToCamel.objectToCamel(data);\n }\n return gen;\n});\n\nexports.createGen = createGen;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createImport = configure.configure(api => {\n async function importKey(name, pem, password, options = {}) {\n const res = await api.post('key/import', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: name,\n pem,\n password,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return objectToCamel.objectToCamel(data);\n }\n return importKey;\n});\n\nexports.createImport = createImport;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar errCode = require('err-code');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\n\nconst createInfo = configure.configure(api => {\n const info = async (name, options = {}) => {\n throw errCode__default['default'](new Error('Not implemented'), 'ERR_NOT_IMPLEMENTED');\n };\n return info;\n});\n\nexports.createInfo = createInfo;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createList = configure.configure(api => {\n async function list(options = {}) {\n const res = await api.post('key/list', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const data = await res.json();\n return (data.Keys || []).map(k => objectToCamel.objectToCamel(k));\n }\n return list;\n});\n\nexports.createList = createList;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createRename = configure.configure(api => {\n async function rename(oldName, newName, options = {}) {\n const res = await api.post('key/rename', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: [\n oldName,\n newName\n ],\n ...options\n }),\n headers: options.headers\n });\n return objectToCamel.objectToCamel(await res.json());\n }\n return rename;\n});\n\nexports.createRename = createRename;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createRm = configure.configure(api => {\n async function rm(name, options = {}) {\n const res = await api.post('key/rm', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: name,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return objectToCamel.objectToCamel(data.Keys[0]);\n }\n return rm;\n});\n\nexports.createRm = createRm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar level = require('./level.js');\nvar ls = require('./ls.js');\nvar tail = require('./tail.js');\n\nfunction createLog(config) {\n return {\n level: level.createLevel(config),\n ls: ls.createLs(config),\n tail: tail.createTail(config)\n };\n}\n\nexports.createLog = createLog;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createLevel = configure.configure(api => {\n async function level(subsystem, level, options = {}) {\n const res = await api.post('log/level', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: [\n subsystem,\n level\n ],\n ...options\n }),\n headers: options.headers\n });\n return objectToCamel.objectToCamel(await res.json());\n }\n return level;\n});\n\nexports.createLevel = createLevel;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createLs = configure.configure(api => {\n async function ls(options = {}) {\n const res = await api.post('log/ls', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const data = await res.json();\n return data.Strings;\n }\n return ls;\n});\n\nexports.createLs = createLs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createTail = configure.configure(api => {\n async function* tail(options = {}) {\n const res = await api.post('log/tail', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n yield* res.ndjson();\n }\n return tail;\n});\n\nexports.createTail = createTail;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar publish = require('./publish.js');\nvar resolve = require('./resolve.js');\nvar index = require('./pubsub/index.js');\n\nfunction createName(config) {\n return {\n publish: publish.createPublish(config),\n resolve: resolve.createResolve(config),\n pubsub: index.createPubsub(config)\n };\n}\n\nexports.createName = createName;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createPublish = configure.configure(api => {\n async function publish(path, options = {}) {\n const res = await api.post('name/publish', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ path }`,\n ...options\n }),\n headers: options.headers\n });\n return objectToCamel.objectToCamel(await res.json());\n }\n return publish;\n});\n\nexports.createPublish = createPublish;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createResolve = configure.configure(api => {\n async function* resolve(path, options = {}) {\n const res = await api.post('name/resolve', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n stream: true,\n ...options\n }),\n headers: options.headers\n });\n for await (const result of res.ndjson()) {\n yield result.Path;\n }\n }\n return resolve;\n});\n\nexports.createResolve = createResolve;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cancel = require('./cancel.js');\nvar state = require('./state.js');\nvar subs = require('./subs.js');\n\nfunction createPubsub(config) {\n return {\n cancel: cancel.createCancel(config),\n state: state.createState(config),\n subs: subs.createSubs(config)\n };\n}\n\nexports.createPubsub = createPubsub;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../../lib/object-to-camel.js');\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst createCancel = configure.configure(api => {\n async function cancel(name, options = {}) {\n const res = await api.post('name/pubsub/cancel', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: name,\n ...options\n }),\n headers: options.headers\n });\n return objectToCamel.objectToCamel(await res.json());\n }\n return cancel;\n});\n\nexports.createCancel = createCancel;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../../lib/object-to-camel.js');\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst createState = configure.configure(api => {\n async function state(options = {}) {\n const res = await api.post('name/pubsub/state', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n return objectToCamel.objectToCamel(await res.json());\n }\n return state;\n});\n\nexports.createState = createState;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst createSubs = configure.configure(api => {\n async function subs(options = {}) {\n const res = await api.post('name/pubsub/subs', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const data = await res.json();\n return data.Strings || [];\n }\n return subs;\n});\n\nexports.createSubs = createSubs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar data = require('./data.js');\nvar get = require('./get.js');\nvar links = require('./links.js');\nvar _new = require('./new.js');\nvar put = require('./put.js');\nvar stat = require('./stat.js');\nvar index = require('./patch/index.js');\n\nfunction createObject(codecs, config) {\n return {\n data: data.createData(config),\n get: get.createGet(config),\n links: links.createLinks(config),\n new: _new.createNew(config),\n put: put.createPut(codecs, config),\n stat: stat.createStat(config),\n patch: index.createPatch(config)\n };\n}\n\nexports.createObject = createObject;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createData = configure.configure(api => {\n async function data(cid$1, options = {}) {\n const res = await api.post('object/data', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ cid$1 instanceof Uint8Array ? cid.CID.decode(cid$1) : cid$1 }`,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.arrayBuffer();\n return new Uint8Array(data, 0, data.byteLength);\n }\n return data;\n});\n\nexports.createData = createData;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar fromString = require('uint8arrays/from-string');\n\nconst createGet = configure.configure(api => {\n async function get(cid$1, options = {}) {\n const res = await api.post('object/get', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ cid$1 instanceof Uint8Array ? cid.CID.decode(cid$1) : cid$1 }`,\n dataEncoding: 'base64',\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return {\n Data: fromString.fromString(data.Data, 'base64pad'),\n Links: (data.Links || []).map(link => ({\n Name: link.Name,\n Hash: cid.CID.parse(link.Hash),\n Tsize: link.Size\n }))\n };\n }\n return get;\n});\n\nexports.createGet = createGet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createLinks = configure.configure(api => {\n async function links(cid$1, options = {}) {\n const res = await api.post('object/links', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ cid$1 instanceof Uint8Array ? cid.CID.decode(cid$1) : cid$1 }`,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return (data.Links || []).map(l => ({\n Name: l.Name,\n Tsize: l.Size,\n Hash: cid.CID.parse(l.Hash)\n }));\n }\n return links;\n});\n\nexports.createLinks = createLinks;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createNew = configure.configure(api => {\n async function newObject(options = {}) {\n const res = await api.post('object/new', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: options.template,\n ...options\n }),\n headers: options.headers\n });\n const {Hash} = await res.json();\n return cid.CID.parse(Hash);\n }\n return newObject;\n});\n\nexports.createNew = createNew;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar put = require('../dag/put.js');\n\nconst createPut = (codecs, options) => {\n const fn = configure.configure(api => {\n const dagPut = put.createPut(codecs, options);\n async function put$1(obj, options = {}) {\n return dagPut(obj, {\n ...options,\n format: 'dag-pb',\n hashAlg: 'sha2-256',\n version: 0\n });\n }\n return put$1;\n });\n return fn(options);\n};\n\nexports.createPut = createPut;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createStat = configure.configure(api => {\n async function stat(cid$1, options = {}) {\n const res = await api.post('object/stat', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ cid$1 }`,\n ...options\n }),\n headers: options.headers\n });\n const output = await res.json();\n return {\n ...output,\n Hash: cid.CID.parse(output.Hash)\n };\n }\n return stat;\n});\n\nexports.createStat = createStat;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar addLink = require('./add-link.js');\nvar appendData = require('./append-data.js');\nvar rmLink = require('./rm-link.js');\nvar setData = require('./set-data.js');\n\nfunction createPatch(config) {\n return {\n addLink: addLink.createAddLink(config),\n appendData: appendData.createAppendData(config),\n rmLink: rmLink.createRmLink(config),\n setData: setData.createSetData(config)\n };\n}\n\nexports.createPatch = createPatch;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst createAddLink = configure.configure(api => {\n async function addLink(cid$1, dLink, options = {}) {\n const res = await api.post('object/patch/add-link', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: [\n `${ cid$1 }`,\n dLink.Name || dLink.name || '',\n (dLink.Hash || dLink.cid || '').toString() || null\n ],\n ...options\n }),\n headers: options.headers\n });\n const {Hash} = await res.json();\n return cid.CID.parse(Hash);\n }\n return addLink;\n});\n\nexports.createAddLink = createAddLink;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\nvar abortSignal = require('../../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createAppendData = configure.configure(api => {\n async function appendData(cid$1, data, options = {}) {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const res = await api.post('object/patch/append-data', {\n signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ cid$1 }`,\n ...options\n }),\n ...await multipartRequest.multipartRequest(data, controller, options.headers)\n });\n const {Hash} = await res.json();\n return cid.CID.parse(Hash);\n }\n return appendData;\n});\n\nexports.createAppendData = createAppendData;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\n\nconst createRmLink = configure.configure(api => {\n async function rmLink(cid$1, dLink, options = {}) {\n const res = await api.post('object/patch/rm-link', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: [\n `${ cid$1 }`,\n dLink.Name || dLink.name || null\n ],\n ...options\n }),\n headers: options.headers\n });\n const {Hash} = await res.json();\n return cid.CID.parse(Hash);\n }\n return rmLink;\n});\n\nexports.createRmLink = createRmLink;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar configure = require('../../lib/configure.js');\nvar toUrlSearchParams = require('../../lib/to-url-search-params.js');\nvar abortSignal = require('../../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createSetData = configure.configure(api => {\n async function setData(cid$1, data, options = {}) {\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const res = await api.post('object/patch/set-data', {\n signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: [`${ cid$1 }`],\n ...options\n }),\n ...await multipartRequest.multipartRequest(data, controller, options.headers)\n });\n const {Hash} = await res.json();\n return cid.CID.parse(Hash);\n }\n return setData;\n});\n\nexports.createSetData = createSetData;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar addAll = require('./add-all.js');\nvar add = require('./add.js');\nvar ls = require('./ls.js');\nvar rmAll = require('./rm-all.js');\nvar rm = require('./rm.js');\nvar index = require('./remote/index.js');\n\nfunction createPin(config) {\n return {\n addAll: addAll.createAddAll(config),\n add: add.createAdd(config),\n ls: ls.createLs(config),\n rmAll: rmAll.createRmAll(config),\n rm: rm.createRm(config),\n remote: index.createRemote(config)\n };\n}\n\nexports.createPin = createPin;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar addAll = require('./add-all.js');\nvar last = require('it-last');\nvar configure = require('../lib/configure.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar last__default = /*#__PURE__*/_interopDefaultLegacy(last);\n\nfunction createAdd(config) {\n const all = addAll.createAddAll(config);\n return configure.configure(() => {\n async function add(path, options = {}) {\n return last__default['default'](all([{\n path,\n ...options\n }], options));\n }\n return add;\n })(config);\n}\n\nexports.createAdd = createAdd;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nfunction toPin(type, cid$1, metadata) {\n const pin = {\n type,\n cid: cid.CID.parse(cid$1)\n };\n if (metadata) {\n pin.metadata = metadata;\n }\n return pin;\n}\nconst createLs = configure.configure(api => {\n async function* ls(options = {}) {\n let paths = [];\n if (options.paths) {\n paths = Array.isArray(options.paths) ? options.paths : [options.paths];\n }\n const res = await api.post('pin/ls', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n ...options,\n arg: paths.map(path => `${ path }`),\n stream: true\n }),\n headers: options.headers\n });\n for await (const pin of res.ndjson()) {\n if (pin.Keys) {\n for (const cid of Object.keys(pin.Keys)) {\n yield toPin(pin.Keys[cid].Type, cid, pin.Keys[cid].Metadata);\n }\n return;\n }\n yield toPin(pin.Type, pin.Cid, pin.Metadata);\n }\n }\n return ls;\n});\n\nexports.createLs = createLs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar rmAll = require('./rm-all.js');\nvar last = require('it-last');\nvar configure = require('../lib/configure.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar last__default = /*#__PURE__*/_interopDefaultLegacy(last);\n\nconst createRm = config => {\n const all = rmAll.createRmAll(config);\n return configure.configure(() => {\n async function rm(path, options = {}) {\n return last__default['default'](all([{\n path,\n ...options\n }], options));\n }\n return rm;\n })(config);\n};\n\nexports.createRm = createRm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar core = require('../../lib/core.js');\nvar add = require('./add.js');\nvar ls = require('./ls.js');\nvar rm = require('./rm.js');\nvar rmAll = require('./rm-all.js');\nvar index = require('./service/index.js');\n\nfunction createRemote(config) {\n const client = new core.Client(config);\n return {\n add: add.createAdd(client),\n ls: ls.createLs(client),\n rm: rm.createRm(client),\n rmAll: rmAll.createRmAll(client),\n service: index.createService(config)\n };\n}\n\nexports.createRemote = createRemote;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar utils = require('./utils.js');\n\nfunction createAdd(client) {\n async function add(cid, {timeout, signal, headers, ...query}) {\n const response = await client.post('pin/remote/add', {\n timeout,\n signal,\n headers,\n searchParams: utils.encodeAddParams({\n cid,\n ...query\n })\n });\n return utils.decodePin(await response.json());\n }\n return add;\n}\n\nexports.createAdd = createAdd;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar utils = require('./utils.js');\n\nfunction createLs(client) {\n async function* ls({timeout, signal, headers, ...query}) {\n const response = await client.post('pin/remote/ls', {\n timeout,\n signal,\n headers,\n searchParams: utils.encodeQuery(query)\n });\n for await (const pin of response.ndjson()) {\n yield utils.decodePin(pin);\n }\n }\n return ls;\n}\n\nexports.createLs = createLs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar utils = require('./utils.js');\n\nfunction createRm(client) {\n async function rm({timeout, signal, headers, ...query}) {\n await client.post('pin/remote/rm', {\n timeout,\n signal,\n headers,\n searchParams: utils.encodeQuery({\n ...query,\n all: false\n })\n });\n }\n return rm;\n}\n\nexports.createRm = createRm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar utils = require('./utils.js');\n\nfunction createRmAll(client) {\n async function rmAll({timeout, signal, headers, ...query}) {\n await client.post('pin/remote/rm', {\n timeout,\n signal,\n headers,\n searchParams: utils.encodeQuery({\n ...query,\n all: true\n })\n });\n }\n return rmAll;\n}\n\nexports.createRmAll = createRmAll;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar core = require('../../../lib/core.js');\nvar add = require('./add.js');\nvar ls = require('./ls.js');\nvar rm = require('./rm.js');\n\nfunction createService(config) {\n const client = new core.Client(config);\n return {\n add: add.createAdd(client),\n ls: ls.createLs(client),\n rm: rm.createRm(client)\n };\n}\n\nexports.createService = createService;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar toUrlSearchParams = require('../../../lib/to-url-search-params.js');\nvar utils = require('./utils.js');\n\nfunction createAdd(client) {\n async function add(name, options) {\n const {endpoint, key, headers, timeout, signal} = options;\n await client.post('pin/remote/service/add', {\n timeout,\n signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: [\n name,\n utils.encodeEndpoint(endpoint),\n key\n ]\n }),\n headers\n });\n }\n return add;\n}\n\nexports.createAdd = createAdd;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar toUrlSearchParams = require('../../../lib/to-url-search-params.js');\nvar utils = require('./utils.js');\n\nfunction createLs(client) {\n async function ls(options = {}) {\n const {stat, headers, timeout, signal} = options;\n const response = await client.post('pin/remote/service/ls', {\n timeout,\n signal,\n headers,\n searchParams: stat === true ? toUrlSearchParams.toUrlSearchParams({ stat }) : undefined\n });\n const {RemoteServices} = await response.json();\n return RemoteServices.map(utils.decodeRemoteService);\n }\n return ls;\n}\n\nexports.createLs = createLs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar toUrlSearchParams = require('../../../lib/to-url-search-params.js');\n\nfunction createRm(client) {\n async function rm(name, options = {}) {\n await client.post('pin/remote/service/rm', {\n signal: options.signal,\n headers: options.headers,\n searchParams: toUrlSearchParams.toUrlSearchParams({ arg: name })\n });\n }\n return rm;\n}\n\nexports.createRm = createRm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar ls = require('./ls.js');\nvar peers = require('./peers.js');\nvar publish = require('./publish.js');\nvar subscribe = require('./subscribe.js');\nvar unsubscribe = require('./unsubscribe.js');\nvar subscriptionTracker = require('./subscription-tracker.js');\n\nfunction createPubsub(config) {\n const subscriptionTracker$1 = new subscriptionTracker.SubscriptionTracker();\n return {\n ls: ls.createLs(config),\n peers: peers.createPeers(config),\n publish: publish.createPublish(config),\n subscribe: subscribe.createSubscribe(config, subscriptionTracker$1),\n unsubscribe: unsubscribe.createUnsubscribe(config, subscriptionTracker$1)\n };\n}\n\nexports.createPubsub = createPubsub;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createLs = configure.configure(api => {\n async function ls(options = {}) {\n const {Strings} = await (await api.post('pubsub/ls', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n })).json();\n return Strings || [];\n }\n return ls;\n});\n\nexports.createLs = createLs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createPeers = configure.configure(api => {\n async function peers(topic, options = {}) {\n const res = await api.post('pubsub/peers', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: topic,\n ...options\n }),\n headers: options.headers\n });\n const {Strings} = await res.json();\n return Strings || [];\n }\n return peers;\n});\n\nexports.createPeers = createPeers;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar multipartRequest = require('ipfs-core-utils/multipart-request');\nvar abortSignal = require('../lib/abort-signal.js');\nvar nativeAbortController = require('native-abort-controller');\n\nconst createPublish = configure.configure(api => {\n async function publish(topic, data, options = {}) {\n const searchParams = toUrlSearchParams.toUrlSearchParams({\n arg: topic,\n ...options\n });\n const controller = new nativeAbortController.AbortController();\n const signal = abortSignal.abortSignal(controller.signal, options.signal);\n const res = await api.post('pubsub/pub', {\n signal,\n searchParams,\n ...await multipartRequest.multipartRequest(data, controller, options.headers)\n });\n await res.text();\n }\n return publish;\n});\n\nexports.createPublish = createPublish;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar fromString = require('uint8arrays/from-string');\nvar toString = require('uint8arrays/to-string');\nvar debug = require('debug');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar debug__default = /*#__PURE__*/_interopDefaultLegacy(debug);\n\nconst log = debug__default['default']('ipfs-http-client:pubsub:subscribe');\nconst createSubscribe = (options, subsTracker) => {\n return configure.configure(api => {\n async function subscribe(topic, handler, options = {}) {\n options.signal = subsTracker.subscribe(topic, handler, options.signal);\n let done;\n let fail;\n const result = new Promise((resolve, reject) => {\n done = resolve;\n fail = reject;\n });\n const ffWorkaround = setTimeout(() => done(), 1000);\n api.post('pubsub/sub', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: topic,\n ...options\n }),\n headers: options.headers\n }).catch(err => {\n subsTracker.unsubscribe(topic, handler);\n fail(err);\n }).then(response => {\n clearTimeout(ffWorkaround);\n if (!response) {\n return;\n }\n readMessages(response, {\n onMessage: handler,\n onEnd: () => subsTracker.unsubscribe(topic, handler),\n onError: options.onError\n });\n done();\n });\n return result;\n }\n return subscribe;\n })(options);\n};\nasync function readMessages(response, {onMessage, onEnd, onError}) {\n onError = onError || log;\n try {\n for await (const msg of response.ndjson()) {\n try {\n if (!msg.from) {\n continue;\n }\n onMessage({\n from: toString.toString(fromString.fromString(msg.from, 'base64pad'), 'base58btc'),\n data: fromString.fromString(msg.data, 'base64pad'),\n seqno: fromString.fromString(msg.seqno, 'base64pad'),\n topicIDs: msg.topicIDs\n });\n } catch (err) {\n err.message = `Failed to parse pubsub message: ${ err.message }`;\n onError(err, false, msg);\n }\n }\n } catch (err) {\n if (!isAbortError(err)) {\n onError(err, true);\n }\n } finally {\n onEnd();\n }\n}\nconst isAbortError = error => {\n switch (error.type) {\n case 'aborted':\n return true;\n case 'abort':\n return true;\n default:\n return error.name === 'AbortError';\n }\n};\n\nexports.createSubscribe = createSubscribe;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst createUnsubscribe = (options, subsTracker) => {\n async function unsubscribe(topic, handler) {\n subsTracker.unsubscribe(topic, handler);\n }\n return unsubscribe;\n};\n\nexports.createUnsubscribe = createUnsubscribe;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar nativeAbortController = require('native-abort-controller');\n\nclass SubscriptionTracker {\n constructor() {\n this._subs = new Map();\n }\n subscribe(topic, handler, signal) {\n const topicSubs = this._subs.get(topic) || [];\n if (topicSubs.find(s => s.handler === handler)) {\n throw new Error(`Already subscribed to ${ topic } with this handler`);\n }\n const controller = new nativeAbortController.AbortController();\n this._subs.set(topic, [{\n handler,\n controller\n }].concat(topicSubs));\n if (signal) {\n signal.addEventListener('abort', () => this.unsubscribe(topic, handler));\n }\n return controller.signal;\n }\n unsubscribe(topic, handler) {\n const subs = this._subs.get(topic) || [];\n let unsubs;\n if (handler) {\n this._subs.set(topic, subs.filter(s => s.handler !== handler));\n unsubs = subs.filter(s => s.handler === handler);\n } else {\n this._subs.set(topic, []);\n unsubs = subs;\n }\n if (!(this._subs.get(topic) || []).length) {\n this._subs.delete(topic);\n }\n unsubs.forEach(s => s.controller.abort());\n }\n}\n\nexports.SubscriptionTracker = SubscriptionTracker;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\nvar local = require('./local.js');\n\nconst createRefs = configure.configure((api, opts) => {\n const refs = async function* (args, options = {}) {\n const argsArr = Array.isArray(args) ? args : [args];\n const res = await api.post('refs', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: argsArr.map(arg => `${ arg instanceof Uint8Array ? cid.CID.decode(arg) : arg }`),\n ...options\n }),\n headers: options.headers,\n transform: objectToCamel.objectToCamel\n });\n yield* res.ndjson();\n };\n return Object.assign(refs, { local: local.createLocal(opts) });\n});\n\nexports.createRefs = createRefs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('../lib/object-to-camel.js');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createLocal = configure.configure(api => {\n async function* refsLocal(options = {}) {\n const res = await api.post('refs/local', {\n signal: options.signal,\n transform: objectToCamel.objectToCamel,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n yield* res.ndjson();\n }\n return refsLocal;\n});\n\nexports.createLocal = createLocal;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar gc = require('./gc.js');\nvar stat = require('./stat.js');\nvar version = require('./version.js');\n\nfunction createRepo(config) {\n return {\n gc: gc.createGc(config),\n stat: stat.createStat(config),\n version: version.createVersion(config)\n };\n}\n\nexports.createRepo = createRepo;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createGc = configure.configure(api => {\n async function* gc(options = {}) {\n const res = await api.post('repo/gc', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers,\n transform: res => {\n return {\n err: res.Error ? new Error(res.Error) : null,\n cid: (res.Key || {})['/'] ? cid.CID.parse(res.Key['/']) : null\n };\n }\n });\n yield* res.ndjson();\n }\n return gc;\n});\n\nexports.createGc = createGc;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createVersion = configure.configure(api => {\n async function version(options = {}) {\n const res = await (await api.post('repo/version', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n })).json();\n return res.Version;\n }\n return version;\n});\n\nexports.createVersion = createVersion;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar stat = require('../bitswap/stat.js');\nvar stat$1 = require('../repo/stat.js');\nvar bw = require('./bw.js');\n\nfunction createStats(config) {\n return {\n bitswap: stat.createStat(config),\n repo: stat$1.createStat(config),\n bw: bw.createBw(config)\n };\n}\n\nexports.createStats = createStats;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createBw = configure.configure(api => {\n async function* bw(options = {}) {\n const res = await api.post('stats/bw', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers,\n transform: stats => ({\n totalIn: BigInt(stats.TotalIn),\n totalOut: BigInt(stats.TotalOut),\n rateIn: parseFloat(stats.RateIn),\n rateOut: parseFloat(stats.RateOut)\n })\n });\n yield* res.ndjson();\n }\n return bw;\n});\n\nexports.createBw = createBw;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar addrs = require('./addrs.js');\nvar connect = require('./connect.js');\nvar disconnect = require('./disconnect.js');\nvar localAddrs = require('./local-addrs.js');\nvar peers = require('./peers.js');\n\nfunction createSwarm(config) {\n return {\n addrs: addrs.createAddrs(config),\n connect: connect.createConnect(config),\n disconnect: disconnect.createDisconnect(config),\n localAddrs: localAddrs.createLocalAddrs(config),\n peers: peers.createPeers(config)\n };\n}\n\nexports.createSwarm = createSwarm;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createAddrs = configure.configure(api => {\n async function addrs(options = {}) {\n const res = await api.post('swarm/addrs', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const {Addrs} = await res.json();\n return Object.keys(Addrs).map(id => ({\n id,\n addrs: (Addrs[id] || []).map(a => new multiaddr.Multiaddr(a))\n }));\n }\n return addrs;\n});\n\nexports.createAddrs = createAddrs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createConnect = configure.configure(api => {\n async function connect(addr, options = {}) {\n const res = await api.post('swarm/connect', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: addr,\n ...options\n }),\n headers: options.headers\n });\n const {Strings} = await res.json();\n return Strings || [];\n }\n return connect;\n});\n\nexports.createConnect = createConnect;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createDisconnect = configure.configure(api => {\n async function disconnect(addr, options = {}) {\n const res = await api.post('swarm/disconnect', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: addr,\n ...options\n }),\n headers: options.headers\n });\n const {Strings} = await res.json();\n return Strings || [];\n }\n return disconnect;\n});\n\nexports.createDisconnect = createDisconnect;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createLocalAddrs = configure.configure(api => {\n async function localAddrs(options = {}) {\n const res = await api.post('swarm/addrs/local', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const {Strings} = await res.json();\n return (Strings || []).map(a => new multiaddr.Multiaddr(a));\n }\n return localAddrs;\n});\n\nexports.createLocalAddrs = createLocalAddrs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar multiaddr = require('multiaddr');\nvar configure = require('../lib/configure.js');\nvar toUrlSearchParams = require('../lib/to-url-search-params.js');\n\nconst createPeers = configure.configure(api => {\n async function peers(options = {}) {\n const res = await api.post('swarm/peers', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n const {Peers} = await res.json();\n return (Peers || []).map(peer => {\n return {\n addr: new multiaddr.Multiaddr(peer.Addr),\n peer: peer.Peer,\n muxer: peer.Muxer,\n latency: peer.Latency,\n streams: peer.Streams,\n direction: peer.Direction == null ? undefined : peer.Direction === 0 ? 'inbound' : 'outbound'\n };\n });\n }\n return peers;\n});\n\nexports.createPeers = createPeers;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar addAll = require('./add-all.js');\nvar last = require('it-last');\nvar configure = require('./lib/configure.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar last__default = /*#__PURE__*/_interopDefaultLegacy(last);\n\nfunction createAdd(options) {\n const all = addAll.createAddAll(options);\n return configure.configure(() => {\n async function add(input, options = {}) {\n return await last__default['default'](all(input, options));\n }\n return add;\n })(options);\n}\n\nexports.createAdd = createAdd;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createCat = configure.configure(api => {\n async function* cat(path, options = {}) {\n const res = await api.post('cat', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path.toString(),\n ...options\n }),\n headers: options.headers\n });\n yield* res.iterator();\n }\n return cat;\n});\n\nexports.createCat = createCat;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createCommands = configure.configure(api => {\n const commands = async (options = {}) => {\n const res = await api.post('commands', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n return res.json();\n };\n return commands;\n});\n\nexports.createCommands = createCommands;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createDns = configure.configure(api => {\n const dns = async (domain, options = {}) => {\n const res = await api.post('dns', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: domain,\n ...options\n }),\n headers: options.headers\n });\n const data = await res.json();\n return data.Path;\n };\n return dns;\n});\n\nexports.createDns = createDns;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('./lib/configure.js');\n\nconst createGetEndpointConfig = configure.configure(api => {\n return () => {\n const url = new URL(api.opts.base || '');\n return {\n host: url.hostname,\n port: url.port,\n protocol: url.protocol,\n pathname: url.pathname,\n 'api-path': url.pathname\n };\n };\n});\n\nexports.createGetEndpointConfig = createGetEndpointConfig;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createGet = configure.configure(api => {\n async function* get(path, options = {}) {\n const opts = {\n arg: `${ path instanceof Uint8Array ? cid.CID.decode(path) : path }`,\n ...options\n };\n if (opts.compressionLevel) {\n opts['compression-level'] = opts.compressionLevel;\n delete opts.compressionLevel;\n }\n const res = await api.post('get', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(opts),\n headers: options.headers\n });\n yield* res.iterator();\n }\n return get;\n});\n\nexports.createGet = createGet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar id = require('./id.js');\n\nconst createIsOnline = options => {\n const id$1 = id.createId(options);\n async function isOnline(options = {}) {\n const res = await id$1(options);\n return Boolean(res && res.addresses && res.addresses.length);\n }\n return isOnline;\n};\n\nexports.createIsOnline = createIsOnline;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('multiformats/cid');\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\nvar stat = require('./files/stat.js');\n\nconst createLs = configure.configure((api, opts) => {\n async function* ls(path, options = {}) {\n const pathStr = `${ path instanceof Uint8Array ? cid.CID.decode(path) : path }`;\n async function mapLink(link) {\n let hash = link.Hash;\n if (hash.includes('/')) {\n const ipfsPath = hash.startsWith('/ipfs/') ? hash : `/ipfs/${ hash }`;\n const stats = await stat.createStat(opts)(ipfsPath);\n hash = stats.cid;\n } else {\n hash = cid.CID.parse(hash);\n }\n const entry = {\n name: link.Name,\n path: pathStr + (link.Name ? `/${ link.Name }` : ''),\n size: link.Size,\n cid: hash,\n type: typeOf(link)\n };\n if (link.Mode) {\n entry.mode = parseInt(link.Mode, 8);\n }\n if (link.Mtime !== undefined && link.Mtime !== null) {\n entry.mtime = { secs: link.Mtime };\n if (link.MtimeNsecs !== undefined && link.MtimeNsecs !== null) {\n entry.mtime.nsecs = link.MtimeNsecs;\n }\n }\n return entry;\n }\n const res = await api.post('ls', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: pathStr,\n ...options\n }),\n headers: options.headers\n });\n for await (let result of res.ndjson()) {\n result = result.Objects;\n if (!result) {\n throw new Error('expected .Objects in results');\n }\n result = result[0];\n if (!result) {\n throw new Error('expected one array in results.Objects');\n }\n const links = result.Links;\n if (!Array.isArray(links)) {\n throw new Error('expected one array in results.Objects[0].Links');\n }\n if (!links.length) {\n yield mapLink(result);\n return;\n }\n yield* links.map(mapLink);\n }\n }\n return ls;\n});\nfunction typeOf(link) {\n switch (link.Type) {\n case 1:\n case 5:\n return 'dir';\n case 2:\n return 'file';\n default:\n return 'file';\n }\n}\n\nexports.createLs = createLs;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('./lib/object-to-camel.js');\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createMount = configure.configure(api => {\n async function mount(options = {}) {\n const res = await api.post('dns', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n return objectToCamel.objectToCamel(await res.json());\n }\n return mount;\n});\n\nexports.createMount = createMount;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('./lib/object-to-camel.js');\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createPing = configure.configure(api => {\n async function* ping(peerId, options = {}) {\n const res = await api.post('ping', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: `${ peerId }`,\n ...options\n }),\n headers: options.headers,\n transform: objectToCamel.objectToCamel\n });\n yield* res.ndjson();\n }\n return ping;\n});\n\nexports.createPing = createPing;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createResolve = configure.configure(api => {\n async function resolve(path, options = {}) {\n const res = await api.post('resolve', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams({\n arg: path,\n ...options\n }),\n headers: options.headers\n });\n const {Path} = await res.json();\n return Path;\n }\n return resolve;\n});\n\nexports.createResolve = createResolve;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('./lib/configure.js');\nvar errCode = require('err-code');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar errCode__default = /*#__PURE__*/_interopDefaultLegacy(errCode);\n\nconst createStart = configure.configure(api => {\n const start = async (options = {}) => {\n throw errCode__default['default'](new Error('Not implemented'), 'ERR_NOT_IMPLEMENTED');\n };\n return start;\n});\n\nexports.createStart = createStart;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createStop = configure.configure(api => {\n async function stop(options = {}) {\n const res = await api.post('shutdown', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n await res.text();\n }\n return stop;\n});\n\nexports.createStop = createStop;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar objectToCamel = require('./lib/object-to-camel.js');\nvar configure = require('./lib/configure.js');\nvar toUrlSearchParams = require('./lib/to-url-search-params.js');\n\nconst createVersion = configure.configure(api => {\n async function version(options = {}) {\n const res = await api.post('version', {\n signal: options.signal,\n searchParams: toUrlSearchParams.toUrlSearchParams(options),\n headers: options.headers\n });\n return {\n ...objectToCamel.objectToCamel(await res.json()),\n 'ipfs-http-client': '1.0.0'\n };\n }\n return version;\n});\n\nexports.createVersion = createVersion;\n","'use strict'\n\nconst HTTP = require('../http')\n\n/**\n *\n * @param {string} url\n * @param {import(\"../types\").HTTPOptions} [options]\n * @returns {{ path: string; content?: AsyncIterable<Uint8Array> }}\n */\nconst urlSource = (url, options) => {\n return {\n path: decodeURIComponent(new URL(url).pathname.split('/').pop() || ''),\n content: readURLContent(url, options)\n }\n}\n\n/**\n *\n * @param {string} url\n * @param {import(\"../types\").HTTPOptions} [options]\n * @returns {AsyncIterable<Uint8Array>}\n */\nasync function * readURLContent (url, options) {\n const http = new HTTP()\n const response = await http.get(url, options)\n\n yield * response.iterator()\n}\n\nmodule.exports = urlSource\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n var sX = 0, sY = 0, // spinX, spinY\n pX = 0, pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) { sY = event.detail; }\n if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; }\n if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n // side scrolling on FF with DOMMouseScroll\n if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) { pY = event.deltaY; }\n if ('deltaX' in event) { pX = event.deltaX; }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n return { spinX : sX,\n spinY : sY,\n pixelX : pX,\n pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n return (UserAgent_DEPRECATED.firefox())\n ? 'DOMMouseScroll'\n : (isEventSupported('wheel'))\n ? 'wheel'\n : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true;\n\n // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n\n // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n _win64 = !!(/Win64/.exec(uas));\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : (\n agent[5] ? parseFloat(agent[5]) : NaN);\n // IE compatibility mode\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n // grab the \"true\" ie version from the trident token if available\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function() {\n return _populate() || (_ie_real_version > _ie);\n },\n\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function() {\n return _populate() || _firefox;\n },\n\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function() {\n return _populate() || _opera;\n },\n\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome : function() {\n return _populate() || _chrome;\n },\n\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function() {\n return _populate() || _windows;\n },\n\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function() {\n return _populate() || _iphone;\n },\n\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n\n nativeApp: function() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n\n android: function() {\n return _populate() || _android;\n },\n\n ipad: function() {\n return _populate() || _ipad;\n }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"es\",\"ecma\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/express\":[\"exp\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/trig\":[\"trig\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/step+xml\":[\"stpx\"],\"model/step+zip\":[\"stpz\"],\"model/step-xml+zip\":[\"stpxz\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","'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","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\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/*<replacement>*/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/*</replacement>*/\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};","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('./lib/_stream_duplex.js');\n","module.exports = require('./readable').Transform\n","module.exports = require('./readable').PassThrough\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\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\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","module.exports = require('./browser/algorithms.json')\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","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\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","'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","'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","'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 MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.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 () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\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 (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 (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (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 createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\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","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\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","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","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 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","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","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","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","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","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","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// 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\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 } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\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 = [0x30, total, 0x02, r.length]\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 (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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar 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 '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) + '>';\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 '<EC JPoint Infinity>';\n return '<EC JPoint x: ' + this.x.toString(16, 2) +\n ' y: ' + this.y.toString(16, 2) +\n ' z: ' + this.z.toString(16, 2) + '>';\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 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 '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' z: ' + this.z.fromRed().toString(16, 2) + '>';\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","'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 '<EC Point Infinity>';\n return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n ' y: ' + this.y.fromRed().toString(16, 2) +\n ' z: ' + this.z.fromRed().toString(16, 2) + '>';\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","'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","'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","'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\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\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 Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'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","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","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\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","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +\n ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\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<Byte>} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array<Byte>} [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","'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<Bytes>|Object} sig -\n* @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes\n* @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array<Bytes>} [sig.Rencoded] - R point encoded\n* @param {Array<Bytes>} [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","// 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\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\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","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'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","'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","// 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","// 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","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\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","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\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","'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","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\nfunction blake2bInit (outlen, key) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i]\n }\n const keylen = key ? key.length : 0\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2b (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2bInit(outlen, key)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2bHex (input, key, outlen) {\n const output = blake2b(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","module.exports = function toDataView (data) {\n if (data instanceof Int8Array || data instanceof Uint8Array || data instanceof Uint8ClampedArray) {\n return new DataView(data.buffer, data.byteOffset, data.byteLength)\n }\n\n if (data instanceof ArrayBuffer) {\n return new DataView(data)\n }\n\n throw new TypeError('Expected `data` to be an ArrayBuffer, Buffer, Int8Array, Uint8Array or Uint8ClampedArray')\n}\n","\"use strict\";\nexports.__esModule = true;\nexports.sanitizePath = exports.getParentPath = exports.getPathDomain = void 0;\nvar utils_1 = require(\"./utils\");\n/**\n * Gets the root path domain for the given path.\n *\n * @param path - The given path.\n * @returns - The path domain.\n */\nfunction getPathDomain(path) {\n // Sanitize the path.\n var sanitizedPath = sanitizePath(path);\n if (sanitizedPath === null) {\n return null;\n }\n // Split the string and extract the domain. If there are no slashes, the first\n // element will contain the entire string.\n var domain = sanitizedPath.split(\"/\")[0];\n if (domain === \"\") {\n return null;\n }\n return domain;\n}\nexports.getPathDomain = getPathDomain;\n/**\n * Gets the parent path for the given path.\n *\n * @param path - The given path.\n * @returns - The parent path, or null if no parent.\n */\nfunction getParentPath(path) {\n // Sanitize the path.\n var sanitizedPath = sanitizePath(path);\n if (sanitizedPath === null) {\n return null;\n }\n // Split the path.\n var pathArray = sanitizedPath.split(\"/\");\n if (pathArray.length <= 1) {\n return null;\n }\n // Get the parent path.\n pathArray.pop();\n var parentPath = pathArray.join(\"/\");\n if (parentPath === \"\") {\n return null;\n }\n return parentPath;\n}\nexports.getParentPath = getParentPath;\n/**\n * Sanitizes the path by removing trailing slashes and removing repeating adjacent slashes.\n *\n * @param path - The given path\n * @returns - The sanitized path.\n */\nfunction sanitizePath(path) {\n // Trim the path.\n path = path.trim();\n // Paths starting with a slash are invalid.\n if (path.startsWith(\"/\")) {\n return null;\n }\n // Remove trailing slashes.\n path = utils_1.trimSuffix(path, \"/\");\n // Remove duplicate adjacent slashes.\n path = utils_1.removeAdjacentChars(path, \"/\");\n // Convert the domain to lowercase.\n var pathArray = path.split(\"/\");\n pathArray[0] = pathArray[0].toLowerCase();\n // Get the sanitized path.\n var sanitizedPath = pathArray.join(\"/\");\n if (sanitizedPath === \"\") {\n return null;\n }\n return sanitizedPath;\n}\nexports.sanitizePath = sanitizePath;\n//# sourceMappingURL=paths.js.map","\"use strict\";\nexports.__esModule = true;\nexports.permTypeToString = exports.permCategoryToString = exports.PermType = exports.PermWrite = exports.PermRead = exports.PermCategory = exports.PermLegacySkyID = exports.PermHidden = exports.PermDiscoverable = exports.Permission = void 0;\nvar Permission = /** @class */ (function () {\n function Permission(requestor, path, category, permType) {\n this.requestor = requestor;\n this.path = path;\n this.category = category;\n this.permType = permType;\n if (typeof category !== \"number\" || !(category in PermCategory)) {\n throw new Error(\"Invalid 'category' enum value \" + category);\n }\n if (typeof permType !== \"number\" || !(permType in PermType)) {\n throw new Error(\"Invalid 'permType' enum value \" + permType);\n }\n }\n return Permission;\n}());\nexports.Permission = Permission;\n// Define category constants for non-TS users.\nexports.PermDiscoverable = 1;\nexports.PermHidden = 2;\nexports.PermLegacySkyID = 3;\n/**\n * Defines what type of file is being requested. Discoverable files are visible\n * to the entire world, hidden files are only visible to the user (unless\n * shared), and LegacySkyID files are supported files from the legacy SkyID\n * login system.\n */\nvar PermCategory;\n(function (PermCategory) {\n PermCategory[PermCategory[\"Discoverable\"] = exports.PermDiscoverable] = \"Discoverable\";\n PermCategory[PermCategory[\"Hidden\"] = exports.PermHidden] = \"Hidden\";\n PermCategory[PermCategory[\"LegacySkyID\"] = exports.PermLegacySkyID] = \"LegacySkyID\";\n})(PermCategory = exports.PermCategory || (exports.PermCategory = {}));\n// Define type constants for non-TS users.\nexports.PermRead = 4;\nexports.PermWrite = 5;\nvar PermType;\n(function (PermType) {\n PermType[PermType[\"Read\"] = exports.PermRead] = \"Read\";\n PermType[PermType[\"Write\"] = exports.PermWrite] = \"Write\";\n})(PermType = exports.PermType || (exports.PermType = {}));\n/**\n * Converts the given permission category to a human-readable string.\n *\n * @param category - The given category.\n * @returns - The string.\n * @throws - Will throw if the category is not valid.\n */\nfunction permCategoryToString(category) {\n if (category === PermCategory.Discoverable) {\n return \"Discoverable\";\n }\n else if (category === PermCategory.Hidden) {\n return \"Hidden\";\n }\n else if (category === PermCategory.LegacySkyID) {\n return \"LegacySkyID\";\n }\n else {\n throw new Error(\"Invalid permission category \" + category);\n }\n}\nexports.permCategoryToString = permCategoryToString;\n/**\n * Converts the given permission type to a human-readable string.\n *\n * @param permType - The given type.\n * @returns - The string.\n * @throws - Will throw if the type is not valid.\n */\nfunction permTypeToString(permType) {\n if (permType === PermType.Read) {\n return \"Read\";\n }\n else if (permType === PermType.Write) {\n return \"Write\";\n }\n else {\n throw new Error(\"Invalid permission type \" + permType);\n }\n}\nexports.permTypeToString = permTypeToString;\n//# sourceMappingURL=permissions.js.map","\"use strict\";\nexports.__esModule = true;\nexports.monitorWindowError = exports.PromiseController = exports.dispatchedErrorEvent = exports.errorWindowClosed = void 0;\nexports.errorWindowClosed = \"window-closed\";\nexports.dispatchedErrorEvent = \"catchError\";\nvar PromiseController = /** @class */ (function () {\n function PromiseController() {\n }\n PromiseController.prototype.cleanup = function () {\n // Empty until implemented in monitorWindowError.\n };\n return PromiseController;\n}());\nexports.PromiseController = PromiseController;\n/**\n * Checks if there has been an error from the window on an interval.\n *\n * @returns - The promise that rejects if the listener encounters an error from the remote window, and a controller that can abort the event listener and clean up the promise.\n */\nfunction monitorWindowError() {\n var controller = new PromiseController();\n var abortController = new AbortController();\n var promise = new Promise(function (resolve, reject) {\n var handleEvent = function (event) {\n window.removeEventListener(exports.dispatchedErrorEvent, handleEvent);\n var err = event.detail;\n reject(err);\n };\n // @ts-expect-error doesn't recognize signal option.\n window.addEventListener(exports.dispatchedErrorEvent, handleEvent, {\n signal: abortController.signal\n });\n // Initialize cleanup function.\n controller.cleanup = function () {\n // Abort the event listener.\n abortController.abort();\n // Cleanup the promise.\n resolve();\n };\n });\n return { promise: promise, controller: controller };\n}\nexports.monitorWindowError = monitorWindowError;\n//# sourceMappingURL=window-listener.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst bignumber_js_1 = require(\"bignumber.js\");\r\nclass Ar {\r\n constructor() {\r\n // Configure and assign the constructor function for the bignumber library.\r\n this.BigNum = (value, decimals) => {\r\n let instance = bignumber_js_1.BigNumber.clone({ DECIMAL_PLACES: decimals });\r\n return new instance(value);\r\n };\r\n }\r\n winstonToAr(winstonString, { formatted = false, decimals = 12, trim = true } = {}) {\r\n let number = this.stringToBigNum(winstonString, decimals).shiftedBy(-12);\r\n return formatted ? number.toFormat(decimals) : number.toFixed(decimals);\r\n }\r\n arToWinston(arString, { formatted = false } = {}) {\r\n let number = this.stringToBigNum(arString).shiftedBy(12);\r\n return formatted ? number.toFormat() : number.toFixed(0);\r\n }\r\n compare(winstonStringA, winstonStringB) {\r\n let a = this.stringToBigNum(winstonStringA);\r\n let b = this.stringToBigNum(winstonStringB);\r\n return a.comparedTo(b);\r\n }\r\n isEqual(winstonStringA, winstonStringB) {\r\n return this.compare(winstonStringA, winstonStringB) === 0;\r\n }\r\n isLessThan(winstonStringA, winstonStringB) {\r\n let a = this.stringToBigNum(winstonStringA);\r\n let b = this.stringToBigNum(winstonStringB);\r\n return a.isLessThan(b);\r\n }\r\n isGreaterThan(winstonStringA, winstonStringB) {\r\n let a = this.stringToBigNum(winstonStringA);\r\n let b = this.stringToBigNum(winstonStringB);\r\n return a.isGreaterThan(b);\r\n }\r\n add(winstonStringA, winstonStringB) {\r\n let a = this.stringToBigNum(winstonStringA);\r\n let b = this.stringToBigNum(winstonStringB);\r\n return a.plus(winstonStringB).toFixed(0);\r\n }\r\n sub(winstonStringA, winstonStringB) {\r\n let a = this.stringToBigNum(winstonStringA);\r\n let b = this.stringToBigNum(winstonStringB);\r\n return a.minus(winstonStringB).toFixed(0);\r\n }\r\n stringToBigNum(stringValue, decimalPlaces = 12) {\r\n return this.BigNum(stringValue, decimalPlaces);\r\n }\r\n}\r\nexports.default = Ar;\r\n//# sourceMappingURL=ar.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst axios_1 = require(\"axios\");\r\nclass Api {\r\n constructor(config) {\r\n this.METHOD_GET = \"GET\";\r\n this.METHOD_POST = \"POST\";\r\n this.applyConfig(config);\r\n }\r\n applyConfig(config) {\r\n this.config = this.mergeDefaults(config);\r\n }\r\n getConfig() {\r\n return this.config;\r\n }\r\n mergeDefaults(config) {\r\n const protocol = config.protocol || \"http\";\r\n const port = config.port || (protocol === \"https\" ? 443 : 80);\r\n return {\r\n host: config.host || \"127.0.0.1\",\r\n protocol,\r\n port,\r\n timeout: config.timeout || 20000,\r\n logging: config.logging || false,\r\n logger: config.logger || console.log,\r\n };\r\n }\r\n async get(endpoint, config) {\r\n try {\r\n return await this.request().get(endpoint, config);\r\n }\r\n catch (error) {\r\n if (error.response && error.response.status) {\r\n return error.response;\r\n }\r\n throw error;\r\n }\r\n }\r\n async post(endpoint, body, config) {\r\n try {\r\n return await this.request().post(endpoint, body, config);\r\n }\r\n catch (error) {\r\n if (error.response && error.response.status) {\r\n return error.response;\r\n }\r\n throw error;\r\n }\r\n }\r\n /**\r\n * Get an AxiosInstance with the base configuration setup to fire off\r\n * a request to the network.\r\n */\r\n request() {\r\n let instance = axios_1.default.create({\r\n baseURL: `${this.config.protocol}://${this.config.host}:${this.config.port}`,\r\n timeout: this.config.timeout,\r\n maxContentLength: 1024 * 1024 * 512,\r\n });\r\n if (this.config.logging) {\r\n instance.interceptors.request.use((request) => {\r\n this.config.logger(`Requesting: ${request.baseURL}/${request.url}`);\r\n return request;\r\n });\r\n instance.interceptors.response.use((response) => {\r\n this.config.logger(`Response: ${response.config.url} - ${response.status}`);\r\n return response;\r\n });\r\n }\r\n return instance;\r\n }\r\n}\r\nexports.default = Api;\r\n//# sourceMappingURL=api.js.map","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nclass Network {\r\n constructor(api) {\r\n this.api = api;\r\n }\r\n getInfo() {\r\n return this.api.get(`info`).then((response) => {\r\n return response.data;\r\n });\r\n }\r\n getPeers() {\r\n return this.api.get(`peers`).then((response) => {\r\n return response.data;\r\n });\r\n }\r\n}\r\nexports.default = Network;\r\n//# sourceMappingURL=network.js.map","\"use strict\";\r\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\r\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst error_1 = require(\"./lib/error\");\r\nconst transaction_1 = require(\"./lib/transaction\");\r\nconst ArweaveUtils = require(\"./lib/utils\");\r\nconst transaction_uploader_1 = require(\"./lib/transaction-uploader\");\r\nrequire(\"arconnect\");\r\nclass Transactions {\r\n constructor(api, crypto, chunks) {\r\n this.api = api;\r\n this.crypto = crypto;\r\n this.chunks = chunks;\r\n }\r\n getTransactionAnchor() {\r\n /**\r\n * Maintain compatibility with erdjs which sets a global axios.defaults.transformResponse\r\n * in order to overcome some other issue in: https://github.com/axios/axios/issues/983\r\n *\r\n * However, this introduces a problem with ardrive-js, so we will enforce\r\n * config = {transformReponse: []} where we do not require a transform\r\n */\r\n return this.api\r\n .get(`tx_anchor`, { transformResponse: [] })\r\n .then((response) => {\r\n return response.data;\r\n });\r\n }\r\n getPrice(byteSize, targetAddress) {\r\n let endpoint = targetAddress\r\n ? `price/${byteSize}/${targetAddress}`\r\n : `price/${byteSize}`;\r\n return this.api\r\n .get(endpoint, {\r\n transformResponse: [\r\n /**\r\n * We need to specify a response transformer to override\r\n * the default JSON.parse behaviour, as this causes\r\n * winston to be converted to a number and we want to\r\n * return it as a winston string.\r\n * @param data\r\n */\r\n function (data) {\r\n return data;\r\n },\r\n ],\r\n })\r\n .then((response) => {\r\n return response.data;\r\n });\r\n }\r\n async get(id) {\r\n const response = await this.api.get(`tx/${id}`);\r\n if (response.status == 200) {\r\n const data_size = parseInt(response.data.data_size);\r\n if (response.data.format >= 2 &&\r\n data_size > 0 &&\r\n data_size <= 1024 * 1024 * 12) {\r\n const data = await this.getData(id);\r\n return new transaction_1.default(Object.assign(Object.assign({}, response.data), { data }));\r\n }\r\n return new transaction_1.default(Object.assign(Object.assign({}, response.data), { format: response.data.format || 1 }));\r\n }\r\n if (response.status == 404) {\r\n throw new error_1.default(\"TX_NOT_FOUND\" /* TX_NOT_FOUND */);\r\n }\r\n if (response.status == 410) {\r\n throw new error_1.default(\"TX_FAILED\" /* TX_FAILED */);\r\n }\r\n throw new error_1.default(\"TX_INVALID\" /* TX_INVALID */);\r\n }\r\n fromRaw(attributes) {\r\n return new transaction_1.default(attributes);\r\n }\r\n async search(tagName, tagValue) {\r\n return this.api\r\n .post(`arql`, {\r\n op: \"equals\",\r\n expr1: tagName,\r\n expr2: tagValue,\r\n })\r\n .then((response) => {\r\n if (!response.data) {\r\n return [];\r\n }\r\n return response.data;\r\n });\r\n }\r\n getStatus(id) {\r\n return this.api.get(`tx/${id}/status`).then((response) => {\r\n if (response.status == 200) {\r\n return {\r\n status: 200,\r\n confirmed: response.data,\r\n };\r\n }\r\n return {\r\n status: response.status,\r\n confirmed: null,\r\n };\r\n });\r\n }\r\n async getData(id, options) {\r\n // Only download from chunks, while /{txid} may work\r\n // it may give false positive about the data being seeded\r\n // if getData is problematic, please consider fetch-ing\r\n // an arweave gateway directly!\r\n const data = await this.chunks.downloadChunkedData(id);\r\n if (options && options.decode && !options.string) {\r\n return data;\r\n }\r\n if (options && options.decode && options.string) {\r\n return ArweaveUtils.bufferToString(data);\r\n }\r\n // Since decode wasn't requested, caller expects b64url encoded data.\r\n return ArweaveUtils.bufferTob64Url(data);\r\n }\r\n async sign(transaction, jwk, options) {\r\n if (!jwk && (typeof window === \"undefined\" || !window.arweaveWallet)) {\r\n throw new Error(`A new Arweave transaction must provide the jwk parameter.`);\r\n }\r\n else if (!jwk || jwk === \"use_wallet\") {\r\n try {\r\n const existingPermissions = await window.arweaveWallet.getPermissions();\r\n if (!existingPermissions.includes(\"SIGN_TRANSACTION\"))\r\n await window.arweaveWallet.connect([\"SIGN_TRANSACTION\"]);\r\n }\r\n catch (_a) {\r\n // Permission is already granted\r\n }\r\n const signedTransaction = await window.arweaveWallet.sign(transaction, options);\r\n transaction.setSignature({\r\n id: signedTransaction.id,\r\n owner: signedTransaction.owner,\r\n reward: signedTransaction.reward,\r\n tags: signedTransaction.tags,\r\n signature: signedTransaction.signature,\r\n });\r\n }\r\n else {\r\n transaction.setOwner(jwk.n);\r\n let dataToSign = await transaction.getSignatureData();\r\n let rawSignature = await this.crypto.sign(jwk, dataToSign, options);\r\n let id = await this.crypto.hash(rawSignature);\r\n transaction.setSignature({\r\n id: ArweaveUtils.bufferTob64Url(id),\r\n owner: jwk.n,\r\n signature: ArweaveUtils.bufferTob64Url(rawSignature),\r\n });\r\n }\r\n }\r\n async verify(transaction) {\r\n const signaturePayload = await transaction.getSignatureData();\r\n /**\r\n * The transaction ID should be a SHA-256 hash of the raw signature bytes, so this needs\r\n * to be recalculated from the signature and checked against the transaction ID.\r\n */\r\n const rawSignature = transaction.get(\"signature\", {\r\n decode: true,\r\n string: false,\r\n });\r\n const expectedId = ArweaveUtils.bufferTob64Url(await this.crypto.hash(rawSignature));\r\n if (transaction.id !== expectedId) {\r\n throw new Error(`Invalid transaction signature or ID! The transaction ID doesn't match the expected SHA-256 hash of the signature.`);\r\n }\r\n /**\r\n * Now verify the signature is valid and signed by the owner wallet (owner field = originating wallet public key).\r\n */\r\n return this.crypto.verify(transaction.owner, signaturePayload, rawSignature);\r\n }\r\n async post(transaction) {\r\n if (typeof transaction === \"string\") {\r\n transaction = new transaction_1.default(JSON.parse(transaction));\r\n }\r\n else if (typeof transaction.readInt32BE === \"function\") {\r\n transaction = new transaction_1.default(JSON.parse(transaction.toString()));\r\n }\r\n else if (typeof transaction === \"object\" &&\r\n !(transaction instanceof transaction_1.default)) {\r\n transaction = new transaction_1.default(transaction);\r\n }\r\n if (!(transaction instanceof transaction_1.default)) {\r\n throw new Error(`Must be Transaction object`);\r\n }\r\n if (!transaction.chunks) {\r\n await transaction.prepareChunks(transaction.data);\r\n }\r\n const uploader = await this.getUploader(transaction, transaction.data);\r\n // Emulate existing error & return value behaviour.\r\n try {\r\n while (!uploader.isComplete) {\r\n await uploader.uploadChunk();\r\n }\r\n }\r\n catch (e) {\r\n if (uploader.lastResponseStatus > 0) {\r\n return {\r\n status: uploader.lastResponseStatus,\r\n statusText: uploader.lastResponseError,\r\n data: {\r\n error: uploader.lastResponseError,\r\n },\r\n };\r\n }\r\n throw e;\r\n }\r\n return {\r\n status: 200,\r\n statusText: \"OK\",\r\n data: {},\r\n };\r\n }\r\n /**\r\n * Gets an uploader than can be used to upload a transaction chunk by chunk, giving progress\r\n * and the ability to resume.\r\n *\r\n * Usage example:\r\n *\r\n * ```\r\n * const uploader = arweave.transactions.getUploader(transaction);\r\n * while (!uploader.isComplete) {\r\n * await uploader.uploadChunk();\r\n * console.log(`${uploader.pctComplete}%`);\r\n * }\r\n * ```\r\n *\r\n * @param upload a Transaction object, a previously save progress object, or a transaction id.\r\n * @param data the data of the transaction. Required when resuming an upload.\r\n */\r\n async getUploader(upload, data) {\r\n let uploader;\r\n if (data instanceof ArrayBuffer) {\r\n data = new Uint8Array(data);\r\n }\r\n if (upload instanceof transaction_1.default) {\r\n if (!data) {\r\n data = upload.data;\r\n }\r\n if (!(data instanceof Uint8Array)) {\r\n throw new Error(\"Data format is invalid\");\r\n }\r\n if (!upload.chunks) {\r\n await upload.prepareChunks(data);\r\n }\r\n uploader = new transaction_uploader_1.TransactionUploader(this.api, upload);\r\n if (!uploader.data || uploader.data.length === 0) {\r\n uploader.data = data;\r\n }\r\n }\r\n else {\r\n if (typeof upload === \"string\") {\r\n upload = await transaction_uploader_1.TransactionUploader.fromTransactionId(this.api, upload);\r\n }\r\n if (!data || !(data instanceof Uint8Array)) {\r\n throw new Error(`Must provide data when resuming upload`);\r\n }\r\n // upload should be a serialized upload.\r\n uploader = await transaction_uploader_1.TransactionUploader.fromSerialized(this.api, upload, data);\r\n }\r\n return uploader;\r\n }\r\n /**\r\n * Async generator version of uploader\r\n *\r\n * Usage example:\r\n *\r\n * ```\r\n * for await (const uploader of arweave.transactions.upload(tx)) {\r\n * console.log(`${uploader.pctComplete}%`);\r\n * }\r\n * ```\r\n *\r\n * @param upload a Transaction object, a previously save uploader, or a transaction id.\r\n * @param data the data of the transaction. Required when resuming an upload.\r\n */\r\n upload(upload, data) {\r\n return __asyncGenerator(this, arguments, function* upload_1() {\r\n const uploader = yield __await(this.getUploader(upload, data));\r\n while (!uploader.isComplete) {\r\n yield __await(uploader.uploadChunk());\r\n yield yield __await(uploader);\r\n }\r\n return yield __await(uploader);\r\n });\r\n }\r\n}\r\nexports.default = Transactions;\r\n//# sourceMappingURL=transactions.js.map","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\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","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst common_1 = require(\"../common\");\r\nasync function deepHash(data) {\r\n if (Array.isArray(data)) {\r\n const tag = common_1.default.utils.concatBuffers([\r\n common_1.default.utils.stringToBuffer(\"list\"),\r\n common_1.default.utils.stringToBuffer(data.length.toString()),\r\n ]);\r\n return await deepHashChunks(data, await common_1.default.crypto.hash(tag, \"SHA-384\"));\r\n }\r\n const tag = common_1.default.utils.concatBuffers([\r\n common_1.default.utils.stringToBuffer(\"blob\"),\r\n common_1.default.utils.stringToBuffer(data.byteLength.toString()),\r\n ]);\r\n const taggedHash = common_1.default.utils.concatBuffers([\r\n await common_1.default.crypto.hash(tag, \"SHA-384\"),\r\n await common_1.default.crypto.hash(data, \"SHA-384\"),\r\n ]);\r\n return await common_1.default.crypto.hash(taggedHash, \"SHA-384\");\r\n}\r\nexports.default = deepHash;\r\nasync function deepHashChunks(chunks, acc) {\r\n if (chunks.length < 1) {\r\n return acc;\r\n }\r\n const hashPair = common_1.default.utils.concatBuffers([\r\n acc,\r\n await deepHash(chunks[0]),\r\n ]);\r\n const newAcc = await common_1.default.crypto.hash(hashPair, \"SHA-384\");\r\n return await deepHashChunks(chunks.slice(1), newAcc);\r\n}\r\n//# sourceMappingURL=deepHash.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TransactionUploader = void 0;\r\nconst transaction_1 = require(\"./transaction\");\r\nconst ArweaveUtils = require(\"./utils\");\r\nconst error_1 = require(\"./error\");\r\nconst merkle_1 = require(\"./merkle\");\r\n// Maximum amount of chunks we will upload in the body.\r\nconst MAX_CHUNKS_IN_BODY = 1;\r\n// We assume these errors are intermitment and we can try again after a delay:\r\n// - not_joined\r\n// - timeout\r\n// - data_root_not_found (we may have hit a node that just hasn't seen it yet)\r\n// - exceeds_disk_pool_size_limit\r\n// We also try again after any kind of unexpected network errors\r\n// Errors from /chunk we should never try and continue on.\r\nconst FATAL_CHUNK_UPLOAD_ERRORS = [\r\n \"invalid_json\",\r\n \"chunk_too_big\",\r\n \"data_path_too_big\",\r\n \"offset_too_big\",\r\n \"data_size_too_big\",\r\n \"chunk_proof_ratio_not_attractive\",\r\n \"invalid_proof\",\r\n];\r\n// Amount we will delay on receiving an error response but do want to continue.\r\nconst ERROR_DELAY = 1000 * 40;\r\nclass TransactionUploader {\r\n constructor(api, transaction) {\r\n this.api = api;\r\n this.chunkIndex = 0;\r\n this.txPosted = false;\r\n this.lastRequestTimeEnd = 0;\r\n this.totalErrors = 0; // Not serialized.\r\n this.lastResponseStatus = 0;\r\n this.lastResponseError = \"\";\r\n if (!transaction.id) {\r\n throw new Error(`Transaction is not signed`);\r\n }\r\n if (!transaction.chunks) {\r\n throw new Error(`Transaction chunks not prepared`);\r\n }\r\n // Make a copy of transaction, zeroing the data so we can serialize.\r\n this.data = transaction.data;\r\n this.transaction = new transaction_1.default(Object.assign({}, transaction, { data: new Uint8Array(0) }));\r\n }\r\n get isComplete() {\r\n return (this.txPosted &&\r\n this.chunkIndex === this.transaction.chunks.chunks.length);\r\n }\r\n get totalChunks() {\r\n return this.transaction.chunks.chunks.length;\r\n }\r\n get uploadedChunks() {\r\n return this.chunkIndex;\r\n }\r\n get pctComplete() {\r\n return Math.trunc((this.uploadedChunks / this.totalChunks) * 100);\r\n }\r\n /**\r\n * Uploads the next part of the transaction.\r\n * On the first call this posts the transaction\r\n * itself and on any subsequent calls uploads the\r\n * next chunk until it completes.\r\n */\r\n async uploadChunk(chunkIndex_) {\r\n if (this.isComplete) {\r\n throw new Error(`Upload is already complete`);\r\n }\r\n if (this.lastResponseError !== \"\") {\r\n this.totalErrors++;\r\n }\r\n else {\r\n this.totalErrors = 0;\r\n }\r\n // We have been trying for about an hour receiving an\r\n // error every time, so eventually bail.\r\n if (this.totalErrors === 100) {\r\n throw new Error(`Unable to complete upload: ${this.lastResponseStatus}: ${this.lastResponseError}`);\r\n }\r\n let delay = this.lastResponseError === \"\"\r\n ? 0\r\n : Math.max(this.lastRequestTimeEnd + ERROR_DELAY - Date.now(), ERROR_DELAY);\r\n if (delay > 0) {\r\n // Jitter delay bcoz networks, subtract up to 30% from 40 seconds\r\n delay = delay - delay * Math.random() * 0.3;\r\n await new Promise((res) => setTimeout(res, delay));\r\n }\r\n this.lastResponseError = \"\";\r\n if (!this.txPosted) {\r\n await this.postTransaction();\r\n return;\r\n }\r\n if (chunkIndex_) {\r\n this.chunkIndex = chunkIndex_;\r\n }\r\n const chunk = this.transaction.getChunk(chunkIndex_ || this.chunkIndex, this.data);\r\n const chunkOk = await (0, merkle_1.validatePath)(this.transaction.chunks.data_root, parseInt(chunk.offset), 0, parseInt(chunk.data_size), ArweaveUtils.b64UrlToBuffer(chunk.data_path));\r\n if (!chunkOk) {\r\n throw new Error(`Unable to validate chunk ${this.chunkIndex}`);\r\n }\r\n // Catch network errors and turn them into objects with status -1 and an error message.\r\n const resp = await this.api\r\n .post(`chunk`, this.transaction.getChunk(this.chunkIndex, this.data))\r\n .catch((e) => {\r\n console.error(e.message);\r\n return { status: -1, data: { error: e.message } };\r\n });\r\n this.lastRequestTimeEnd = Date.now();\r\n this.lastResponseStatus = resp.status;\r\n if (this.lastResponseStatus == 200) {\r\n this.chunkIndex++;\r\n }\r\n else {\r\n this.lastResponseError = (0, error_1.getError)(resp);\r\n if (FATAL_CHUNK_UPLOAD_ERRORS.includes(this.lastResponseError)) {\r\n throw new Error(`Fatal error uploading chunk ${this.chunkIndex}: ${this.lastResponseError}`);\r\n }\r\n }\r\n }\r\n /**\r\n * Reconstructs an upload from its serialized state and data.\r\n * Checks if data matches the expected data_root.\r\n *\r\n * @param serialized\r\n * @param data\r\n */\r\n static async fromSerialized(api, serialized, data) {\r\n if (!serialized ||\r\n typeof serialized.chunkIndex !== \"number\" ||\r\n typeof serialized.transaction !== \"object\") {\r\n throw new Error(`Serialized object does not match expected format.`);\r\n }\r\n // Everything looks ok, reconstruct the TransactionUpload,\r\n // prepare the chunks again and verify the data_root matches\r\n var transaction = new transaction_1.default(serialized.transaction);\r\n if (!transaction.chunks) {\r\n await transaction.prepareChunks(data);\r\n }\r\n const upload = new TransactionUploader(api, transaction);\r\n // Copy the serialized upload information, and data passed in.\r\n upload.chunkIndex = serialized.chunkIndex;\r\n upload.lastRequestTimeEnd = serialized.lastRequestTimeEnd;\r\n upload.lastResponseError = serialized.lastResponseError;\r\n upload.lastResponseStatus = serialized.lastResponseStatus;\r\n upload.txPosted = serialized.txPosted;\r\n upload.data = data;\r\n if (upload.transaction.data_root !== serialized.transaction.data_root) {\r\n throw new Error(`Data mismatch: Uploader doesn't match provided data.`);\r\n }\r\n return upload;\r\n }\r\n /**\r\n * Reconstruct an upload from the tx metadata, ie /tx/<id>.\r\n *\r\n * @param api\r\n * @param id\r\n * @param data\r\n */\r\n static async fromTransactionId(api, id) {\r\n const resp = await api.get(`tx/${id}`);\r\n if (resp.status !== 200) {\r\n throw new Error(`Tx ${id} not found: ${resp.status}`);\r\n }\r\n const transaction = resp.data;\r\n transaction.data = new Uint8Array(0);\r\n const serialized = {\r\n txPosted: true,\r\n chunkIndex: 0,\r\n lastResponseError: \"\",\r\n lastRequestTimeEnd: 0,\r\n lastResponseStatus: 0,\r\n transaction,\r\n };\r\n return serialized;\r\n }\r\n toJSON() {\r\n return {\r\n chunkIndex: this.chunkIndex,\r\n transaction: this.transaction,\r\n lastRequestTimeEnd: this.lastRequestTimeEnd,\r\n lastResponseStatus: this.lastResponseStatus,\r\n lastResponseError: this.lastResponseError,\r\n txPosted: this.txPosted,\r\n };\r\n }\r\n // POST to /tx\r\n async postTransaction() {\r\n const uploadInBody = this.totalChunks <= MAX_CHUNKS_IN_BODY;\r\n if (uploadInBody) {\r\n // Post the transaction with data.\r\n this.transaction.data = this.data;\r\n const resp = await this.api.post(`tx`, this.transaction).catch((e) => {\r\n console.error(e);\r\n return { status: -1, data: { error: e.message } };\r\n });\r\n this.lastRequestTimeEnd = Date.now();\r\n this.lastResponseStatus = resp.status;\r\n this.transaction.data = new Uint8Array(0);\r\n if (resp.status >= 200 && resp.status < 300) {\r\n // We are complete.\r\n this.txPosted = true;\r\n this.chunkIndex = MAX_CHUNKS_IN_BODY;\r\n return;\r\n }\r\n this.lastResponseError = (0, error_1.getError)(resp);\r\n throw new Error(`Unable to upload transaction: ${resp.status}, ${this.lastResponseError}`);\r\n }\r\n // Post the transaction with no data.\r\n const resp = await this.api.post(`tx`, this.transaction);\r\n this.lastRequestTimeEnd = Date.now();\r\n this.lastResponseStatus = resp.status;\r\n if (!(resp.status >= 200 && resp.status < 300)) {\r\n this.lastResponseError = (0, error_1.getError)(resp);\r\n throw new Error(`Unable to upload transaction: ${resp.status}, ${this.lastResponseError}`);\r\n }\r\n this.txPosted = true;\r\n }\r\n}\r\nexports.TransactionUploader = TransactionUploader;\r\n//# sourceMappingURL=transaction-uploader.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst ArweaveUtils = require(\"./lib/utils\");\r\nrequire(\"arconnect\");\r\nclass Wallets {\r\n constructor(api, crypto) {\r\n this.api = api;\r\n this.crypto = crypto;\r\n }\r\n /**\r\n * Get the wallet balance for the given address.\r\n *\r\n * @param {string} address - The arweave address to get the balance for.\r\n *\r\n * @returns {Promise<string>} - Promise which resolves with a winston string balance.\r\n */\r\n getBalance(address) {\r\n return this.api\r\n .get(`wallet/${address}/balance`, {\r\n transformResponse: [\r\n /**\r\n * We need to specify a response transformer to override\r\n * the default JSON.parse behaviour, as this causes\r\n * balances to be converted to a number and we want to\r\n * return it as a winston string.\r\n * @param data\r\n */\r\n function (data) {\r\n return data;\r\n },\r\n ],\r\n })\r\n .then((response) => {\r\n return response.data;\r\n });\r\n }\r\n /**\r\n * Get the last transaction ID for the given wallet address.\r\n *\r\n * @param {string} address - The arweave address to get the transaction for.\r\n *\r\n * @returns {Promise<string>} - Promise which resolves with a transaction ID.\r\n */\r\n getLastTransactionID(address) {\r\n return this.api.get(`wallet/${address}/last_tx`).then((response) => {\r\n return response.data;\r\n });\r\n }\r\n generate() {\r\n return this.crypto.generateJWK();\r\n }\r\n async jwkToAddress(jwk) {\r\n if (!jwk || jwk === \"use_wallet\") {\r\n return this.getAddress();\r\n }\r\n else {\r\n return this.getAddress(jwk);\r\n }\r\n }\r\n async getAddress(jwk) {\r\n if (!jwk || jwk === \"use_wallet\") {\r\n try {\r\n // @ts-ignore\r\n await window.arweaveWallet.connect([\"ACCESS_ADDRESS\"]);\r\n }\r\n catch (_a) {\r\n // Permission is already granted\r\n }\r\n // @ts-ignore\r\n return window.arweaveWallet.getActiveAddress();\r\n }\r\n else {\r\n return this.ownerToAddress(jwk.n);\r\n }\r\n }\r\n async ownerToAddress(owner) {\r\n return ArweaveUtils.bufferTob64Url(await this.crypto.hash(ArweaveUtils.b64UrlToBuffer(owner)));\r\n }\r\n}\r\nexports.default = Wallets;\r\n//# sourceMappingURL=wallets.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SiloResource = void 0;\r\nconst ArweaveUtils = require(\"./lib/utils\");\r\nclass Silo {\r\n constructor(api, crypto, transactions) {\r\n this.api = api;\r\n this.crypto = crypto;\r\n this.transactions = transactions;\r\n }\r\n async get(siloURI) {\r\n if (!siloURI) {\r\n throw new Error(`No Silo URI specified`);\r\n }\r\n const resource = await this.parseUri(siloURI);\r\n const ids = await this.transactions.search(\"Silo-Name\", resource.getAccessKey());\r\n if (ids.length == 0) {\r\n throw new Error(`No data could be found for the Silo URI: ${siloURI}`);\r\n }\r\n const transaction = await this.transactions.get(ids[0]);\r\n if (!transaction) {\r\n throw new Error(`No data could be found for the Silo URI: ${siloURI}`);\r\n }\r\n const encrypted = transaction.get(\"data\", { decode: true, string: false });\r\n return this.crypto.decrypt(encrypted, resource.getEncryptionKey());\r\n }\r\n async readTransactionData(transaction, siloURI) {\r\n if (!siloURI) {\r\n throw new Error(`No Silo URI specified`);\r\n }\r\n const resource = await this.parseUri(siloURI);\r\n const encrypted = transaction.get(\"data\", { decode: true, string: false });\r\n return this.crypto.decrypt(encrypted, resource.getEncryptionKey());\r\n }\r\n async parseUri(siloURI) {\r\n const parsed = siloURI.match(/^([a-z0-9-_]+)\\.([0-9]+)/i);\r\n if (!parsed) {\r\n throw new Error(`Invalid Silo name, must be a name in the format of [a-z0-9]+.[0-9]+, e.g. 'bubble.7'`);\r\n }\r\n const siloName = parsed[1];\r\n const hashIterations = Math.pow(2, parseInt(parsed[2]));\r\n const digest = await this.hash(ArweaveUtils.stringToBuffer(siloName), hashIterations);\r\n const accessKey = ArweaveUtils.bufferTob64(digest.slice(0, 15));\r\n const encryptionkey = await this.hash(digest.slice(16, 31), 1);\r\n return new SiloResource(siloURI, accessKey, encryptionkey);\r\n }\r\n async hash(input, iterations) {\r\n let digest = await this.crypto.hash(input);\r\n for (let count = 0; count < iterations - 1; count++) {\r\n digest = await this.crypto.hash(digest);\r\n }\r\n return digest;\r\n }\r\n}\r\nexports.default = Silo;\r\nclass SiloResource {\r\n constructor(uri, accessKey, encryptionKey) {\r\n this.uri = uri;\r\n this.accessKey = accessKey;\r\n this.encryptionKey = encryptionKey;\r\n }\r\n getUri() {\r\n return this.uri;\r\n }\r\n getAccessKey() {\r\n return this.accessKey;\r\n }\r\n getEncryptionKey() {\r\n return this.encryptionKey;\r\n }\r\n}\r\nexports.SiloResource = SiloResource;\r\n//# sourceMappingURL=silo.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst error_1 = require(\"./lib/error\");\r\nconst ArweaveUtils = require(\"./lib/utils\");\r\nclass Chunks {\r\n constructor(api) {\r\n this.api = api;\r\n }\r\n async getTransactionOffset(id) {\r\n const resp = await this.api.get(`tx/${id}/offset`);\r\n if (resp.status === 200) {\r\n return resp.data;\r\n }\r\n throw new Error(`Unable to get transaction offset: ${(0, error_1.getError)(resp)}`);\r\n }\r\n async getChunk(offset) {\r\n const resp = await this.api.get(`chunk/${offset}`);\r\n if (resp.status === 200) {\r\n return resp.data;\r\n }\r\n throw new Error(`Unable to get chunk: ${(0, error_1.getError)(resp)}`);\r\n }\r\n async getChunkData(offset) {\r\n const chunk = await this.getChunk(offset);\r\n const buf = ArweaveUtils.b64UrlToBuffer(chunk.chunk);\r\n return buf;\r\n }\r\n firstChunkOffset(offsetResponse) {\r\n return parseInt(offsetResponse.offset) - parseInt(offsetResponse.size) + 1;\r\n }\r\n async downloadChunkedData(id) {\r\n const offsetResponse = await this.getTransactionOffset(id);\r\n const size = parseInt(offsetResponse.size);\r\n const endOffset = parseInt(offsetResponse.offset);\r\n const startOffset = endOffset - size + 1;\r\n const data = new Uint8Array(size);\r\n let byte = 0;\r\n while (byte < size) {\r\n if (this.api.config.logging) {\r\n console.log(`[chunk] ${byte}/${size}`);\r\n }\r\n let chunkData;\r\n try {\r\n chunkData = await this.getChunkData(startOffset + byte);\r\n }\r\n catch (error) {\r\n console.error(`[chunk] Failed to fetch chunk at offset ${startOffset + byte}`);\r\n console.error(`[chunk] This could indicate that the chunk wasn't uploaded or hasn't yet seeded properly to a particular gatway/node`);\r\n }\r\n if (chunkData) {\r\n data.set(chunkData, byte);\r\n byte += chunkData.length;\r\n }\r\n else {\r\n throw new Error(`Coudn't complete data download at ${byte}/${size}`);\r\n }\r\n }\r\n return data;\r\n }\r\n}\r\nexports.default = Chunks;\r\n//# sourceMappingURL=chunks.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst error_1 = require(\"./lib/error\");\r\nrequire(\"arconnect\");\r\nclass Blocks {\r\n constructor(api, network) {\r\n this.api = api;\r\n this.network = network;\r\n }\r\n /**\r\n * Gets a block by its \"indep_hash\"\r\n */\r\n async get(indepHash) {\r\n const response = await this.api.get(`${Blocks.ENDPOINT}${indepHash}`);\r\n if (response.status === 200) {\r\n return response.data;\r\n }\r\n else {\r\n if (response.status === 404) {\r\n throw new error_1.default(\"BLOCK_NOT_FOUND\" /* BLOCK_NOT_FOUND */);\r\n }\r\n else {\r\n throw new Error(`Error while loading block data: ${response}`);\r\n }\r\n }\r\n }\r\n /**\r\n * Gets current block data (ie. block with indep_hash = Network.getInfo().current)\r\n */\r\n async getCurrent() {\r\n const { current } = await this.network.getInfo();\r\n return await this.get(current);\r\n }\r\n}\r\nexports.default = Blocks;\r\nBlocks.ENDPOINT = \"block/hash/\";\r\n//# sourceMappingURL=blocks.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst ArweaveUtils = require(\"../utils\");\r\nclass WebCryptoDriver {\r\n constructor() {\r\n this.keyLength = 4096;\r\n this.publicExponent = 0x10001;\r\n this.hashAlgorithm = \"sha256\";\r\n if (!this.detectWebCrypto()) {\r\n throw new Error(\"SubtleCrypto not available!\");\r\n }\r\n this.driver = crypto.subtle;\r\n }\r\n async generateJWK() {\r\n let cryptoKey = await this.driver.generateKey({\r\n name: \"RSA-PSS\",\r\n modulusLength: 4096,\r\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\r\n hash: {\r\n name: \"SHA-256\",\r\n },\r\n }, true, [\"sign\"]);\r\n let jwk = await this.driver.exportKey(\"jwk\", cryptoKey.privateKey);\r\n return {\r\n kty: jwk.kty,\r\n e: jwk.e,\r\n n: jwk.n,\r\n d: jwk.d,\r\n p: jwk.p,\r\n q: jwk.q,\r\n dp: jwk.dp,\r\n dq: jwk.dq,\r\n qi: jwk.qi,\r\n };\r\n }\r\n async sign(jwk, data, { saltLength } = {}) {\r\n let signature = await this.driver.sign({\r\n name: \"RSA-PSS\",\r\n saltLength: 32,\r\n }, await this.jwkToCryptoKey(jwk), data);\r\n return new Uint8Array(signature);\r\n }\r\n async hash(data, algorithm = \"SHA-256\") {\r\n let digest = await this.driver.digest(algorithm, data);\r\n return new Uint8Array(digest);\r\n }\r\n async verify(publicModulus, data, signature) {\r\n const publicKey = {\r\n kty: \"RSA\",\r\n e: \"AQAB\",\r\n n: publicModulus,\r\n };\r\n const key = await this.jwkToPublicCryptoKey(publicKey);\r\n const verifyWith32 = this.driver.verify({\r\n name: \"RSA-PSS\",\r\n saltLength: 32,\r\n }, key, signature, data);\r\n const verifyWith0 = this.driver.verify({\r\n name: \"RSA-PSS\",\r\n saltLength: 0,\r\n }, key, signature, data);\r\n return verifyWith32 || verifyWith0;\r\n }\r\n async jwkToCryptoKey(jwk) {\r\n return this.driver.importKey(\"jwk\", jwk, {\r\n name: \"RSA-PSS\",\r\n hash: {\r\n name: \"SHA-256\",\r\n },\r\n }, false, [\"sign\"]);\r\n }\r\n async jwkToPublicCryptoKey(publicJwk) {\r\n return this.driver.importKey(\"jwk\", publicJwk, {\r\n name: \"RSA-PSS\",\r\n hash: {\r\n name: \"SHA-256\",\r\n },\r\n }, false, [\"verify\"]);\r\n }\r\n detectWebCrypto() {\r\n if (typeof crypto === \"undefined\") {\r\n return false;\r\n }\r\n const subtle = crypto === null || crypto === void 0 ? void 0 : crypto.subtle;\r\n if (subtle === undefined) {\r\n return false;\r\n }\r\n const names = [\r\n \"generateKey\",\r\n \"importKey\",\r\n \"exportKey\",\r\n \"digest\",\r\n \"sign\",\r\n ];\r\n return names.every((name) => typeof subtle[name] === \"function\");\r\n }\r\n async encrypt(data, key, salt) {\r\n const initialKey = await this.driver.importKey(\"raw\", typeof key == \"string\" ? ArweaveUtils.stringToBuffer(key) : key, {\r\n name: \"PBKDF2\",\r\n length: 32,\r\n }, false, [\"deriveKey\"]);\r\n // const salt = ArweaveUtils.stringToBuffer(\"salt\");\r\n // create a random string for deriving the key\r\n // const salt = this.driver.randomBytes(16).toString('hex');\r\n const derivedkey = await this.driver.deriveKey({\r\n name: \"PBKDF2\",\r\n salt: salt\r\n ? ArweaveUtils.stringToBuffer(salt)\r\n : ArweaveUtils.stringToBuffer(\"salt\"),\r\n iterations: 100000,\r\n hash: \"SHA-256\",\r\n }, initialKey, {\r\n name: \"AES-CBC\",\r\n length: 256,\r\n }, false, [\"encrypt\", \"decrypt\"]);\r\n const iv = new Uint8Array(16);\r\n crypto.getRandomValues(iv);\r\n const encryptedData = await this.driver.encrypt({\r\n name: \"AES-CBC\",\r\n iv: iv,\r\n }, derivedkey, data);\r\n return ArweaveUtils.concatBuffers([iv, encryptedData]);\r\n }\r\n async decrypt(encrypted, key, salt) {\r\n const initialKey = await this.driver.importKey(\"raw\", typeof key == \"string\" ? ArweaveUtils.stringToBuffer(key) : key, {\r\n name: \"PBKDF2\",\r\n length: 32,\r\n }, false, [\"deriveKey\"]);\r\n // const salt = ArweaveUtils.stringToBuffer(\"pepper\");\r\n const derivedkey = await this.driver.deriveKey({\r\n name: \"PBKDF2\",\r\n salt: salt\r\n ? ArweaveUtils.stringToBuffer(salt)\r\n : ArweaveUtils.stringToBuffer(\"salt\"),\r\n iterations: 100000,\r\n hash: \"SHA-256\",\r\n }, initialKey, {\r\n name: \"AES-CBC\",\r\n length: 256,\r\n }, false, [\"encrypt\", \"decrypt\"]);\r\n const iv = encrypted.slice(0, 16);\r\n const data = await this.driver.decrypt({\r\n name: \"AES-CBC\",\r\n iv: iv,\r\n }, derivedkey, encrypted.slice(16));\r\n // We're just using concat to convert from an array buffer to uint8array\r\n return ArweaveUtils.concatBuffers([data]);\r\n }\r\n}\r\nexports.default = WebCryptoDriver;\r\n//# sourceMappingURL=webcrypto-driver.js.map","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n return parentSelector();\n}\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n function Modal() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n var parent = getParentElement(_this.props.parentSelector);\n if (parent && parent.contains(_this.node)) {\n parent.removeChild(_this.node);\n } else {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n }\n }, _this.portalRef = function (ref) {\n _this.portal = ref;\n }, _this.renderPortal = function (props) {\n var createPortal = getCreatePortal();\n var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n _this.portalRef(portal);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_safeHTMLElement.canUseDOM) return;\n\n if (!isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n this.node.className = this.props.portalClassName;\n\n var parent = getParentElement(this.props.parentSelector);\n parent.appendChild(this.node);\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps) {\n var prevParent = getParentElement(prevProps.parentSelector);\n var nextParent = getParentElement(this.props.parentSelector);\n return { prevParent: prevParent, nextParent: nextParent };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, _, snapshot) {\n if (!_safeHTMLElement.canUseDOM) return;\n var _props = this.props,\n isOpen = _props.isOpen,\n portalClassName = _props.portalClassName;\n\n\n if (prevProps.portalClassName !== portalClassName) {\n this.node.className = portalClassName;\n }\n\n var prevParent = snapshot.prevParent,\n nextParent = snapshot.nextParent;\n\n if (nextParent !== prevParent) {\n prevParent.removeChild(this.node);\n nextParent.appendChild(this.node);\n }\n\n // Stop unnecessary renders if modal is remaining closed\n if (!prevProps.isOpen && !isOpen) return;\n\n !isReact16 && this.renderPortal(this.props);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n var state = this.portal.state;\n var now = Date.now();\n var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n if (closesAt) {\n if (!state.beforeClose) {\n this.portal.closeWithTimeout();\n }\n\n setTimeout(this.removePortal, closesAt - now);\n } else {\n this.removePortal();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!_safeHTMLElement.canUseDOM || !isReact16) {\n return null;\n }\n\n if (!this.node && isReact16) {\n this.node = createHTMLElement(\"div\");\n }\n\n var createPortal = getCreatePortal();\n return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n ref: this.portalRef,\n defaultStyles: Modal.defaultStyles\n }, this.props)), this.node);\n }\n }], [{\n key: \"setAppElement\",\n value: function setAppElement(element) {\n ariaAppHider.setElement(element);\n }\n\n /* eslint-disable react/no-unused-prop-types */\n\n /* eslint-enable react/no-unused-prop-types */\n\n }]);\n\n return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n portalClassName: _propTypes2.default.string,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n base: _propTypes2.default.string.isRequired,\n afterOpen: _propTypes2.default.string.isRequired,\n beforeClose: _propTypes2.default.string.isRequired\n })]),\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n ariaHideApp: _propTypes2.default.bool,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n parentSelector: _propTypes2.default.func,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n isOpen: false,\n portalClassName: portalClassName,\n bodyOpenClassName: bodyOpenClassName,\n role: \"dialog\",\n ariaHideApp: true,\n closeTimeoutMS: 0,\n shouldFocusAfterRender: true,\n shouldCloseOnEsc: true,\n shouldCloseOnOverlayClick: true,\n shouldReturnFocusAfterClose: true,\n preventScroll: false,\n parentSelector: function parentSelector() {\n return document.body;\n },\n overlayElement: function overlayElement(props, contentEl) {\n return _react2.default.createElement(\n \"div\",\n props,\n contentEl\n );\n },\n contentElement: function contentElement(props, children) {\n return _react2.default.createElement(\n \"div\",\n props,\n children\n );\n }\n};\nModal.defaultStyles = {\n overlay: {\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n },\n content: {\n position: \"absolute\",\n top: \"40px\",\n left: \"40px\",\n right: \"40px\",\n bottom: \"40px\",\n border: \"1px solid #ccc\",\n background: \"#fff\",\n overflow: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n borderRadius: \"4px\",\n outline: \"none\",\n padding: \"20px\"\n }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n Modal.setCreateHTMLElement = function (fn) {\n return createHTMLElement = fn;\n };\n}\n\nexports.default = Modal;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n overlay: \"ReactModal__Overlay\",\n content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName;\n\n // Remove classes.\n\n bodyOpenClassName && classList.remove(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (event.keyCode === TAB_KEY) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName;\n\n // Add classes.\n\n bodyOpenClassName && classList.add(document.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(document.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \"<html /> (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar React = _interopRequireWildcard(_react);\n\nvar _defaultComponentDecorator = require('../decorators/defaultComponentDecorator');\n\nvar _defaultComponentDecorator2 = _interopRequireDefault(_defaultComponentDecorator);\n\nvar _defaultHrefDecorator = require('../decorators/defaultHrefDecorator');\n\nvar _defaultHrefDecorator2 = _interopRequireDefault(_defaultHrefDecorator);\n\nvar _defaultMatchDecorator = require('../decorators/defaultMatchDecorator');\n\nvar _defaultMatchDecorator2 = _interopRequireDefault(_defaultMatchDecorator);\n\nvar _defaultTextDecorator = require('../decorators/defaultTextDecorator');\n\nvar _defaultTextDecorator2 = _interopRequireDefault(_defaultTextDecorator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Linkify = function (_React$Component) {\n _inherits(Linkify, _React$Component);\n\n function Linkify() {\n _classCallCheck(this, Linkify);\n\n return _possibleConstructorReturn(this, (Linkify.__proto__ || Object.getPrototypeOf(Linkify)).apply(this, arguments));\n }\n\n _createClass(Linkify, [{\n key: 'parseString',\n value: function parseString(string) {\n var _this2 = this;\n\n if (string === '') {\n return string;\n }\n\n var matches = this.props.matchDecorator(string);\n if (!matches) {\n return string;\n }\n\n var elements = [];\n var lastIndex = 0;\n matches.forEach(function (match, i) {\n // Push preceding text if there is any\n if (match.index > lastIndex) {\n elements.push(string.substring(lastIndex, match.index));\n }\n\n var decoratedHref = _this2.props.hrefDecorator(match.url);\n var decoratedText = _this2.props.textDecorator(match.text);\n var decoratedComponent = _this2.props.componentDecorator(decoratedHref, decoratedText, i);\n elements.push(decoratedComponent);\n\n lastIndex = match.lastIndex;\n });\n\n // Push remaining text if there is any\n if (string.length > lastIndex) {\n elements.push(string.substring(lastIndex));\n }\n\n return elements.length === 1 ? elements[0] : elements;\n }\n }, {\n key: 'parse',\n value: function parse(children) {\n var _this3 = this;\n\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof children === 'string') {\n return this.parseString(children);\n } else if (React.isValidElement(children) && children.type !== 'a' && children.type !== 'button') {\n return React.cloneElement(children, { key: key }, this.parse(children.props.children));\n } else if (Array.isArray(children)) {\n return children.map(function (child, i) {\n return _this3.parse(child, i);\n });\n }\n\n return children;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(\n React.Fragment,\n null,\n this.parse(this.props.children)\n );\n }\n }]);\n\n return Linkify;\n}(React.Component);\n\nLinkify.defaultProps = {\n componentDecorator: _defaultComponentDecorator2.default,\n hrefDecorator: _defaultHrefDecorator2.default,\n matchDecorator: _defaultMatchDecorator2.default,\n textDecorator: _defaultTextDecorator2.default\n};\nexports.default = Linkify;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar React = _interopRequireWildcard(_react);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nexports.default = function (decoratedHref, decoratedText, key) {\n return React.createElement(\n 'a',\n { href: decoratedHref, key: key },\n decoratedText\n );\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (href) {\n return href;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _linkifyIt = require('linkify-it');\n\nvar _linkifyIt2 = _interopRequireDefault(_linkifyIt);\n\nvar _tlds = require('tlds');\n\nvar _tlds2 = _interopRequireDefault(_tlds);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar linkify = new _linkifyIt2.default();\nlinkify.tlds(_tlds2.default);\n\nexports.default = function (text) {\n return linkify.match(text);\n};","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = require('./lib/re')(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n","'use strict';\n\n\nmodule.exports = function (opts) {\n var re = {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = require('uc.micro/properties/Any/regex').source;\n re.src_Cc = require('uc.micro/categories/Cc/regex').source;\n re.src_Z = require('uc.micro/categories/Z/regex').source;\n re.src_P = require('uc.micro/categories/P/regex').source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')(?!-|_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-]).|' + // allow `I'm_king` if no pair found\n '\\\\.{2,4}[a-zA-Z0-9%/]|' + // github has ... in commit range links,\n // google has .... in links (issue #66)\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]).|' +\n (opts && opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n '\\\\,(?!' + re.src_ZCc + ').|' + // allow `,,,` in paths\n '\\\\!(?!' + re.src_ZCc + '|[!]).|' +\n '\\\\?(?!' + re.src_ZCc + '|[?]).' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","module.exports=/[\\0-\\x1F\\x7F-\\x9F]/","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (text) {\n return text;\n};","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Manager = _interopRequireDefault(require(\"../Manager\"));\n\nvar _BigPlayButton = _interopRequireDefault(require(\"./BigPlayButton\"));\n\nvar _LoadingSpinner = _interopRequireDefault(require(\"./LoadingSpinner\"));\n\nvar _PosterImage = _interopRequireDefault(require(\"./PosterImage\"));\n\nvar _Video = _interopRequireDefault(require(\"./Video\"));\n\nvar _Bezel = _interopRequireDefault(require(\"./Bezel\"));\n\nvar _Shortcut = _interopRequireDefault(require(\"./Shortcut\"));\n\nvar _ControlBar = _interopRequireDefault(require(\"./control-bar/ControlBar\"));\n\nvar browser = _interopRequireWildcard(require(\"../utils/browser\"));\n\nvar _dom = require(\"../utils/dom\");\n\nvar _utils = require(\"../utils\");\n\nvar _fullscreen = _interopRequireDefault(require(\"../utils/fullscreen\"));\n\nvar propTypes = {\n children: _propTypes[\"default\"].any,\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n fluid: _propTypes[\"default\"].bool,\n muted: _propTypes[\"default\"].bool,\n playsInline: _propTypes[\"default\"].bool,\n aspectRatio: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n videoId: _propTypes[\"default\"].string,\n startTime: _propTypes[\"default\"].number,\n loop: _propTypes[\"default\"].bool,\n autoPlay: _propTypes[\"default\"].bool,\n src: _propTypes[\"default\"].string,\n poster: _propTypes[\"default\"].string,\n preload: _propTypes[\"default\"].oneOf(['auto', 'metadata', 'none']),\n onLoadStart: _propTypes[\"default\"].func,\n onWaiting: _propTypes[\"default\"].func,\n onCanPlay: _propTypes[\"default\"].func,\n onCanPlayThrough: _propTypes[\"default\"].func,\n onPlaying: _propTypes[\"default\"].func,\n onEnded: _propTypes[\"default\"].func,\n onSeeking: _propTypes[\"default\"].func,\n onSeeked: _propTypes[\"default\"].func,\n onPlay: _propTypes[\"default\"].func,\n onPause: _propTypes[\"default\"].func,\n onProgress: _propTypes[\"default\"].func,\n onDurationChange: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onSuspend: _propTypes[\"default\"].func,\n onAbort: _propTypes[\"default\"].func,\n onEmptied: _propTypes[\"default\"].func,\n onStalled: _propTypes[\"default\"].func,\n onLoadedMetadata: _propTypes[\"default\"].func,\n onLoadedData: _propTypes[\"default\"].func,\n onTimeUpdate: _propTypes[\"default\"].func,\n onRateChange: _propTypes[\"default\"].func,\n onVolumeChange: _propTypes[\"default\"].func,\n store: _propTypes[\"default\"].object\n};\nvar defaultProps = {\n fluid: true,\n muted: false,\n playsInline: false,\n preload: 'auto',\n aspectRatio: 'auto'\n};\n\nvar Player =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Player, _Component);\n\n function Player(props) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Player);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Player).call(this, props));\n _this.controlsHideTimer = null;\n _this.video = null; // the Video component\n\n _this.manager = new _Manager[\"default\"](props.store);\n _this.actions = _this.manager.getActions();\n\n _this.manager.subscribeToPlayerStateChange(_this.handleStateChange.bind((0, _assertThisInitialized2[\"default\"])(_this)));\n\n _this.getStyle = _this.getStyle.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleResize = _this.handleResize.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getChildren = _this.getChildren.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleMouseMove = (0, _utils.throttle)(_this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this)), 250);\n _this.handleMouseDown = _this.handleMouseDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.startControlsTimer = _this.startControlsTimer.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFullScreenChange = _this.handleFullScreenChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Player, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize);\n\n _fullscreen[\"default\"].addEventListener(this.handleFullScreenChange);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n // Remove event listener\n window.removeEventListener('resize', this.handleResize);\n\n _fullscreen[\"default\"].removeEventListener(this.handleFullScreenChange);\n\n if (this.controlsHideTimer) {\n window.clearTimeout(this.controlsHideTimer);\n }\n }\n }, {\n key: \"getDefaultChildren\",\n value: function getDefaultChildren(originalChildren) {\n var _this2 = this;\n\n return [_react[\"default\"].createElement(_Video[\"default\"], {\n ref: function ref(c) {\n _this2.video = c;\n _this2.manager.video = _this2.video;\n },\n key: \"video\",\n order: 0.0\n }, originalChildren), _react[\"default\"].createElement(_PosterImage[\"default\"], {\n key: \"poster-image\",\n order: 1.0\n }), _react[\"default\"].createElement(_LoadingSpinner[\"default\"], {\n key: \"loading-spinner\",\n order: 2.0\n }), _react[\"default\"].createElement(_Bezel[\"default\"], {\n key: \"bezel\",\n order: 3.0\n }), _react[\"default\"].createElement(_BigPlayButton[\"default\"], {\n key: \"big-play-button\",\n order: 4.0\n }), _react[\"default\"].createElement(_ControlBar[\"default\"], {\n key: \"control-bar\",\n order: 5.0\n }), _react[\"default\"].createElement(_Shortcut[\"default\"], {\n key: \"shortcut\",\n order: 99.0\n })];\n }\n }, {\n key: \"getChildren\",\n value: function getChildren(props) {\n var _ = props.className,\n originalChildren = props.children,\n propsWithoutChildren = (0, _objectWithoutProperties2[\"default\"])(props, [\"className\", \"children\"]);\n\n var children = _react[\"default\"].Children.toArray(this.props.children).filter(function (e) {\n return !(0, _utils.isVideoChild)(e);\n });\n\n var defaultChildren = this.getDefaultChildren(originalChildren);\n return (0, _utils.mergeAndSortChildren)(defaultChildren, children, propsWithoutChildren);\n }\n }, {\n key: \"setWidthOrHeight\",\n value: function setWidthOrHeight(style, name, value) {\n var styleVal;\n\n if (typeof value === 'string') {\n if (value === 'auto') {\n styleVal = 'auto';\n } else if (value.match(/\\d+%/)) {\n styleVal = value;\n }\n } else if (typeof value === 'number') {\n styleVal = \"\".concat(value, \"px\");\n }\n\n Object.assign(style, (0, _defineProperty2[\"default\"])({}, name, styleVal));\n }\n }, {\n key: \"getStyle\",\n value: function getStyle() {\n var _this$props = this.props,\n fluid = _this$props.fluid,\n propsAspectRatio = _this$props.aspectRatio,\n propsHeight = _this$props.height,\n propsWidth = _this$props.width;\n\n var _this$manager$getStat = this.manager.getState(),\n player = _this$manager$getStat.player;\n\n var style = {};\n var width;\n var height;\n var aspectRatio; // The aspect ratio is either used directly or to calculate width and height.\n\n if (propsAspectRatio !== undefined && propsAspectRatio !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = propsAspectRatio;\n } else if (player.videoWidth) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = \"\".concat(player.videoWidth, \":\").concat(player.videoHeight);\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n } // Get the ratio as a decimal we can use to calculate dimensions\n\n\n var ratioParts = aspectRatio.split(':');\n var ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (propsWidth !== undefined) {\n // Use any width that's been specifically set\n width = propsWidth;\n } else if (propsHeight !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = propsHeight / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = player.videoWidth || 400;\n }\n\n if (propsHeight !== undefined) {\n // Use any height that's been specifically set\n height = propsHeight;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n if (fluid) {\n style.paddingTop = \"\".concat(ratioMultiplier * 100, \"%\");\n } else {\n // If Width contains \"auto\", set \"auto\" in style\n this.setWidthOrHeight(style, 'width', width);\n this.setWidthOrHeight(style, 'height', height);\n }\n\n return style;\n } // get redux state\n // { player, operation }\n\n }, {\n key: \"getState\",\n value: function getState() {\n return this.manager.getState();\n } // get playback rate\n\n }, {\n key: \"play\",\n // play the video\n value: function play() {\n this.video.play();\n } // pause the video\n\n }, {\n key: \"pause\",\n value: function pause() {\n this.video.pause();\n } // Change the video source and re-load the video:\n\n }, {\n key: \"load\",\n value: function load() {\n this.video.load();\n } // Add a new text track to the video\n\n }, {\n key: \"addTextTrack\",\n value: function addTextTrack() {\n var _this$video;\n\n (_this$video = this.video).addTextTrack.apply(_this$video, arguments);\n } // Check if your browser can play different types of video:\n\n }, {\n key: \"canPlayType\",\n value: function canPlayType() {\n var _this$video2;\n\n (_this$video2 = this.video).canPlayType.apply(_this$video2, arguments);\n } // seek video by time\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n this.video.seek(time);\n } // jump forward x seconds\n\n }, {\n key: \"forward\",\n value: function forward(seconds) {\n this.video.forward(seconds);\n } // jump back x seconds\n\n }, {\n key: \"replay\",\n value: function replay(seconds) {\n this.video.replay(seconds);\n } // enter or exist full screen\n\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n this.video.toggleFullscreen();\n } // subscribe to player state change\n\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener) {\n return this.manager.subscribeToPlayerStateChange(listener);\n } // player resize\n\n }, {\n key: \"handleResize\",\n value: function handleResize() {}\n }, {\n key: \"handleFullScreenChange\",\n value: function handleFullScreenChange(event) {\n if (event.target === this.manager.rootElement) {\n this.actions.handleFullscreenChange(_fullscreen[\"default\"].isFullscreen);\n }\n }\n }, {\n key: \"handleMouseDown\",\n value: function handleMouseDown() {\n this.startControlsTimer();\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove() {\n this.startControlsTimer();\n }\n }, {\n key: \"handleKeyDown\",\n value: function handleKeyDown() {\n this.startControlsTimer();\n }\n }, {\n key: \"startControlsTimer\",\n value: function startControlsTimer() {\n var _this3 = this;\n\n var controlBarActiveTime = 3000;\n\n _react[\"default\"].Children.forEach(this.props.children, function (element) {\n if (!_react[\"default\"].isValidElement(element) || element.type !== _ControlBar[\"default\"]) {\n return;\n }\n\n var autoHideTime = element.props.autoHideTime;\n\n if (typeof autoHideTime === 'number') {\n controlBarActiveTime = autoHideTime;\n }\n });\n\n this.actions.userActivate(true);\n clearTimeout(this.controlsHideTimer);\n this.controlsHideTimer = setTimeout(function () {\n _this3.actions.userActivate(false);\n }, controlBarActiveTime);\n }\n }, {\n key: \"handleStateChange\",\n value: function handleStateChange(state, prevState) {\n if (state.isFullscreen !== prevState.isFullscreen) {\n this.handleResize(); // focus root when switching fullscreen mode to avoid confusion #276\n\n (0, _dom.focusNode)(this.manager.rootElement);\n }\n\n this.forceUpdate(); // re-render\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus() {\n this.actions.activate(true);\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur() {\n this.actions.activate(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var fluid = this.props.fluid;\n\n var _this$manager$getStat2 = this.manager.getState(),\n player = _this$manager$getStat2.player;\n\n var paused = player.paused,\n hasStarted = player.hasStarted,\n waiting = player.waiting,\n seeking = player.seeking,\n isFullscreen = player.isFullscreen,\n userActivity = player.userActivity;\n var props = (0, _objectSpread2[\"default\"])({}, this.props, {\n player: player,\n actions: this.actions,\n manager: this.manager,\n store: this.manager.store,\n video: this.video ? this.video.video : null\n });\n var children = this.getChildren(props);\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-controls-enabled': true,\n 'video-react-has-started': hasStarted,\n 'video-react-paused': paused,\n 'video-react-playing': !paused,\n 'video-react-waiting': waiting,\n 'video-react-seeking': seeking,\n 'video-react-fluid': fluid,\n 'video-react-fullscreen': isFullscreen,\n 'video-react-user-inactive': !userActivity,\n 'video-react-user-active': userActivity,\n 'video-react-workinghover': !browser.IS_IOS\n }, 'video-react', this.props.className),\n style: this.getStyle(),\n ref: function ref(c) {\n _this4.manager.rootElement = c;\n },\n role: \"region\",\n onTouchStart: this.handleMouseDown,\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleMouseMove,\n onMouseMove: this.handleMouseMove,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: \"-1\"\n }, children);\n }\n }, {\n key: \"playbackRate\",\n get: function get() {\n return this.video.playbackRate;\n } // set playback rate\n // speed of video\n ,\n set: function set(rate) {\n this.video.playbackRate = rate;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this.video.muted;\n },\n set: function set(val) {\n this.video.muted = val;\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this.video.volume;\n },\n set: function set(val) {\n this.video.volume = val;\n } // video width\n\n }, {\n key: \"videoWidth\",\n get: function get() {\n return this.video.videoWidth;\n } // video height\n\n }, {\n key: \"videoHeight\",\n get: function get() {\n return this.video.videoHeight;\n }\n }]);\n return Player;\n}(_react.Component);\n\nexports[\"default\"] = Player;\nPlayer.contextTypes = {\n store: _propTypes[\"default\"].object\n};\nPlayer.propTypes = propTypes;\nPlayer.defaultProps = defaultProps;\nPlayer.displayName = 'Player';","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _redux = require(\"redux\");\n\nvar _reducers = _interopRequireDefault(require(\"./reducers\"));\n\nvar playerActions = _interopRequireWildcard(require(\"./actions/player\"));\n\nvar videoActions = _interopRequireWildcard(require(\"./actions/video\"));\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager(store) {\n (0, _classCallCheck2[\"default\"])(this, Manager);\n this.store = store || (0, _redux.createStore)(_reducers[\"default\"]);\n this.video = null;\n this.rootElement = null;\n }\n\n (0, _createClass2[\"default\"])(Manager, [{\n key: \"getActions\",\n value: function getActions() {\n var manager = this;\n var dispatch = this.store.dispatch;\n var actions = (0, _objectSpread2[\"default\"])({}, playerActions, videoActions);\n\n function bindActionCreator(actionCreator) {\n return function bindAction() {\n // eslint-disable-next-line prefer-rest-params\n var action = actionCreator.apply(manager, arguments);\n\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n return Object.keys(actions).filter(function (key) {\n return typeof actions[key] === 'function';\n }).reduce(function (boundActions, key) {\n boundActions[key] = bindActionCreator(actions[key]);\n return boundActions;\n }, {});\n }\n }, {\n key: \"getState\",\n value: function getState() {\n return this.store.getState();\n } // subscribe state change\n\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, getState) {\n if (!getState) {\n getState = this.getState.bind(this);\n }\n\n var prevState = getState();\n\n var handleChange = function handleChange() {\n var state = getState();\n\n if (state === prevState) {\n return;\n }\n\n var prevStateCopy = prevState;\n prevState = state;\n listener(state, prevStateCopy);\n };\n\n return this.store.subscribe(handleChange);\n } // subscribe to operation state change\n\n }, {\n key: \"subscribeToOperationStateChange\",\n value: function subscribeToOperationStateChange(listener) {\n var _this = this;\n\n return this.subscribeToStateChange(listener, function () {\n return _this.getState().operation;\n });\n } // subscribe to player state change\n\n }, {\n key: \"subscribeToPlayerStateChange\",\n value: function subscribeToPlayerStateChange(listener) {\n var _this2 = this;\n\n return this.subscribeToStateChange(listener, function () {\n return _this2.getState().player;\n });\n }\n }]);\n return Manager;\n}();\n\nexports[\"default\"] = Manager;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = player;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _video = require(\"../actions/video\");\n\nvar _player = require(\"../actions/player\");\n\nvar initialState = {\n currentSrc: null,\n duration: 0,\n currentTime: 0,\n seekingTime: 0,\n buffered: null,\n waiting: false,\n seeking: false,\n paused: true,\n autoPaused: false,\n ended: false,\n playbackRate: 1,\n muted: false,\n volume: 1,\n readyState: 0,\n networkState: 0,\n videoWidth: 0,\n videoHeight: 0,\n hasStarted: false,\n userActivity: true,\n isActive: false,\n isFullscreen: false,\n activeTextTrack: null\n};\n\nfunction player() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case _player.USER_ACTIVATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n userActivity: action.activity\n });\n\n case _player.PLAYER_ACTIVATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n isActive: action.activity\n });\n\n case _player.FULLSCREEN_CHANGE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n isFullscreen: !!action.isFullscreen\n });\n\n case _video.SEEKING_TIME:\n return (0, _objectSpread2[\"default\"])({}, state, {\n seekingTime: action.time\n });\n\n case _video.END_SEEKING:\n return (0, _objectSpread2[\"default\"])({}, state, {\n seekingTime: 0\n });\n\n case _video.LOAD_START:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n hasStarted: false,\n ended: false\n });\n\n case _video.CAN_PLAY:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: false\n });\n\n case _video.WAITING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: true\n });\n\n case _video.CAN_PLAY_THROUGH:\n case _video.PLAYING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n waiting: false\n });\n\n case _video.PLAY:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n ended: false,\n paused: false,\n autoPaused: false,\n waiting: false,\n hasStarted: true\n });\n\n case _video.PAUSE:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n paused: true\n });\n\n case _video.END:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n ended: true\n });\n\n case _video.SEEKING:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n seeking: true\n });\n\n case _video.SEEKED:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n seeking: false\n });\n\n case _video.ERROR:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps, {\n error: 'UNKNOWN ERROR',\n ended: true\n });\n\n case _video.DURATION_CHANGE:\n case _video.TIME_UPDATE:\n case _video.VOLUME_CHANGE:\n case _video.PROGRESS_CHANGE:\n case _video.RATE_CHANGE:\n case _video.SUSPEND:\n case _video.ABORT:\n case _video.EMPTIED:\n case _video.STALLED:\n case _video.LOADED_META_DATA:\n case _video.LOADED_DATA:\n case _video.RESIZE:\n return (0, _objectSpread2[\"default\"])({}, state, action.videoProps);\n\n case _video.ACTIVATE_TEXT_TRACK:\n return (0, _objectSpread2[\"default\"])({}, state, {\n activeTextTrack: action.textTrack\n });\n\n default:\n return state;\n }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = operation;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _player = require(\"../actions/player\");\n\nvar initialState = {\n count: 0,\n operation: {\n action: '',\n source: ''\n }\n};\n\nfunction operation() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case _player.OPERATE:\n return (0, _objectSpread2[\"default\"])({}, state, {\n count: state.count + 1,\n operation: (0, _objectSpread2[\"default\"])({}, state.operation, action.operation)\n });\n\n default:\n return state;\n }\n}","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = PopupButton;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ClickableComponent = _interopRequireDefault(require(\"../ClickableComponent\"));\n\nvar _Popup = _interopRequireDefault(require(\"./Popup\"));\n\nvar propTypes = {\n inline: _propTypes[\"default\"].bool,\n onClick: _propTypes[\"default\"].func.isRequired,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n inline: true\n};\n\nfunction PopupButton(props) {\n var inline = props.inline,\n className = props.className;\n var ps = (0, _objectSpread2[\"default\"])({}, props);\n delete ps.children;\n delete ps.inline;\n delete ps.className;\n return _react[\"default\"].createElement(_ClickableComponent[\"default\"], (0, _extends2[\"default\"])({\n className: (0, _classnames[\"default\"])(className, {\n 'video-react-menu-button-inline': !!inline,\n 'video-react-menu-button-popup': !inline\n }, 'video-react-control video-react-button video-react-menu-button')\n }, ps), _react[\"default\"].createElement(_Popup[\"default\"], props));\n}\n\nPopupButton.propTypes = propTypes;\nPopupButton.defaultProps = defaultProps;\nPopupButton.displayName = 'PopupButton';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n children: _propTypes[\"default\"].any\n};\n\nvar Popup =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Popup, _Component);\n\n function Popup(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Popup);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Popup).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Popup, [{\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu-content\"\n }, children));\n }\n }]);\n return Popup;\n}(_react.Component);\n\nexports[\"default\"] = Popup;\nPopup.propTypes = propTypes;\nPopup.displayName = 'Popup';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Slider = _interopRequireDefault(require(\"../Slider\"));\n\nvar _VolumeLevel = _interopRequireDefault(require(\"./VolumeLevel\"));\n\nvar propTypes = {\n actions: _propTypes[\"default\"].object,\n player: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n onFocus: _propTypes[\"default\"].func,\n onBlur: _propTypes[\"default\"].func\n};\n\nvar VolumeBar =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(VolumeBar, _Component);\n\n function VolumeBar(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, VolumeBar);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(VolumeBar).call(this, props, context));\n _this.state = {\n percentage: '0%'\n };\n _this.handleMouseMove = _this.handleMouseMove.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handlePercentageChange = _this.handlePercentageChange.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.checkMuted = _this.checkMuted.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.getPercent = _this.getPercent.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepForward = _this.stepForward.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.stepBack = _this.stepBack.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleFocus = _this.handleFocus.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleBlur = _this.handleBlur.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(VolumeBar, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {}\n }, {\n key: \"getPercent\",\n value: function getPercent() {\n var player = this.props.player;\n\n if (player.muted) {\n return 0;\n }\n\n return player.volume;\n }\n }, {\n key: \"checkMuted\",\n value: function checkMuted() {\n var _this$props = this.props,\n player = _this$props.player,\n actions = _this$props.actions;\n\n if (player.muted) {\n actions.mute(false);\n }\n }\n }, {\n key: \"handleMouseMove\",\n value: function handleMouseMove(event) {\n var actions = this.props.actions;\n this.checkMuted();\n var distance = this.slider.calculateDistance(event);\n actions.changeVolume(distance);\n }\n }, {\n key: \"stepForward\",\n value: function stepForward() {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions;\n this.checkMuted();\n actions.changeVolume(player.volume + 0.1);\n }\n }, {\n key: \"stepBack\",\n value: function stepBack() {\n var _this$props3 = this.props,\n player = _this$props3.player,\n actions = _this$props3.actions;\n this.checkMuted();\n actions.changeVolume(player.volume - 0.1);\n }\n }, {\n key: \"handleFocus\",\n value: function handleFocus(e) {\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n }, {\n key: \"handleBlur\",\n value: function handleBlur(e) {\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n }\n }, {\n key: \"handlePercentageChange\",\n value: function handlePercentageChange(percentage) {\n if (percentage !== this.state.percentage) {\n this.setState({\n percentage: percentage\n });\n }\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n player = _this$props4.player,\n className = _this$props4.className;\n var volume = (player.volume * 100).toFixed(2);\n return _react[\"default\"].createElement(_Slider[\"default\"], (0, _extends2[\"default\"])({\n ref: function ref(c) {\n _this2.slider = c;\n },\n label: \"volume level\",\n valuenow: volume,\n valuetext: \"\".concat(volume, \"%\"),\n onMouseMove: this.handleMouseMove,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n sliderActive: this.handleFocus,\n sliderInactive: this.handleBlur,\n getPercent: this.getPercent,\n onPercentageChange: this.handlePercentageChange,\n stepForward: this.stepForward,\n stepBack: this.stepBack\n }, this.props, {\n className: (0, _classnames[\"default\"])(className, 'video-react-volume-bar video-react-slider-bar')\n }), _react[\"default\"].createElement(_VolumeLevel[\"default\"], this.props));\n }\n }]);\n return VolumeBar;\n}(_react.Component);\n\nVolumeBar.propTypes = propTypes;\nVolumeBar.displayName = 'VolumeBar';\nvar _default = VolumeBar;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n percentage: _propTypes[\"default\"].string,\n vertical: _propTypes[\"default\"].bool,\n className: _propTypes[\"default\"].string\n};\nvar defaultProps = {\n percentage: '100%',\n vertical: false\n};\n\nfunction VolumeLevel(_ref) {\n var percentage = _ref.percentage,\n vertical = _ref.vertical,\n className = _ref.className;\n var style = {};\n\n if (vertical) {\n style.height = percentage;\n } else {\n style.width = percentage;\n }\n\n return _react[\"default\"].createElement(\"div\", {\n className: (0, _classnames[\"default\"])(className, 'video-react-volume-level'),\n style: style\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }));\n}\n\nVolumeLevel.propTypes = propTypes;\nVolumeLevel.defaultProps = defaultProps;\nVolumeLevel.displayName = 'VolumeLevel';\nvar _default = VolumeLevel;\nexports[\"default\"] = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar propTypes = {\n children: _propTypes[\"default\"].any\n};\n\nvar Menu =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(Menu, _Component);\n\n function Menu(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, Menu);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(Menu).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(Menu, [{\n key: \"handleClick\",\n value: function handleClick(event) {\n event.preventDefault(); // event.stopPropagation();\n }\n }, {\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(\"div\", {\n className: \"video-react-menu video-react-lock-showing\",\n role: \"presentation\",\n onClick: this.handleClick\n }, _react[\"default\"].createElement(\"ul\", {\n className: \"video-react-menu-content\"\n }, this.props.children));\n }\n }]);\n return Menu;\n}(_react.Component);\n\nexports[\"default\"] = Menu;\nMenu.propTypes = propTypes;\nMenu.displayName = 'Menu';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar propTypes = {\n item: _propTypes[\"default\"].object,\n index: _propTypes[\"default\"].number,\n activateIndex: _propTypes[\"default\"].number,\n onSelectItem: _propTypes[\"default\"].func\n};\n\nvar MenuItem =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(MenuItem, _Component);\n\n function MenuItem(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, MenuItem);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(MenuItem).call(this, props, context));\n _this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n (0, _createClass2[\"default\"])(MenuItem, [{\n key: \"handleClick\",\n value: function handleClick() {\n var _this$props = this.props,\n index = _this$props.index,\n onSelectItem = _this$props.onSelectItem;\n onSelectItem(index);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n item = _this$props2.item,\n index = _this$props2.index,\n activateIndex = _this$props2.activateIndex;\n return _react[\"default\"].createElement(\"li\", {\n className: (0, _classnames[\"default\"])({\n 'video-react-menu-item': true,\n 'video-react-selected': index === activateIndex\n }),\n role: \"menuitem\",\n onClick: this.handleClick\n }, item.label, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }));\n }\n }]);\n return MenuItem;\n}(_react.Component);\n\nexports[\"default\"] = MenuItem;\nMenuItem.propTypes = propTypes;\nMenuItem.displayName = 'MenuItem';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = void 0;\nvar USER_AGENT = typeof window !== 'undefined' && window.navigator ? window.navigator.userAgent : ''; // const webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\n// const appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT); // The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\n\nexports.IS_IPAD = IS_IPAD;\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\nexports.IS_IPHONE = IS_IPHONE;\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\nexports.IS_IPOD = IS_IPOD;\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\nexports.IS_IOS = IS_IOS;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _PlaybackRateMenuButton = _interopRequireDefault(require(\"./PlaybackRateMenuButton\"));\n\nvar _utils = require(\"../../utils\");\n\nvar PlaybackRate =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(PlaybackRate, _Component);\n\n function PlaybackRate(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, PlaybackRate);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(PlaybackRate).call(this, props, context));\n (0, _utils.deprecatedWarning)('PlaybackRate', 'PlaybackRateMenuButton');\n return _this;\n }\n\n (0, _createClass2[\"default\"])(PlaybackRate, [{\n key: \"render\",\n value: function render() {\n return _react[\"default\"].createElement(_PlaybackRateMenuButton[\"default\"], this.props);\n }\n }]);\n return PlaybackRate;\n}(_react.Component);\n\nexports[\"default\"] = PlaybackRate;\nPlaybackRate.displayName = 'PlaybackRate';","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _MenuButton = _interopRequireDefault(require(\"../menu/MenuButton\"));\n\nvar propTypes = {\n player: _propTypes[\"default\"].object,\n actions: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n offMenuText: _propTypes[\"default\"].string,\n showOffMenu: _propTypes[\"default\"].bool,\n kinds: _propTypes[\"default\"].array\n};\nvar defaultProps = {\n offMenuText: 'Off',\n showOffMenu: true,\n kinds: ['captions', 'subtitles'] // `kind`s of TextTrack to look for to associate it with this menu.\n\n};\n\nvar ClosedCaptionButton =\n/*#__PURE__*/\nfunction (_Component) {\n (0, _inherits2[\"default\"])(ClosedCaptionButton, _Component);\n\n function ClosedCaptionButton(props, context) {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, ClosedCaptionButton);\n _this = (0, _possibleConstructorReturn2[\"default\"])(this, (0, _getPrototypeOf2[\"default\"])(ClosedCaptionButton).call(this, props, context));\n _this.getTextTrackItems = _this.getTextTrackItems.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.updateState = _this.updateState.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleSelectItem = _this.handleSelectItem.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.state = _this.getTextTrackItems();\n return _this;\n }\n\n (0, _createClass2[\"default\"])(ClosedCaptionButton, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateState();\n }\n }, {\n key: \"getTextTrackItems\",\n value: function getTextTrackItems() {\n var _this$props = this.props,\n kinds = _this$props.kinds,\n player = _this$props.player,\n offMenuText = _this$props.offMenuText,\n showOffMenu = _this$props.showOffMenu;\n var textTracks = player.textTracks,\n activeTextTrack = player.activeTextTrack;\n var textTrackItems = {\n items: [],\n selectedIndex: 0\n };\n var tracks = Array.from(textTracks || []);\n\n if (tracks.length === 0) {\n return textTrackItems;\n }\n\n if (showOffMenu) {\n textTrackItems.items.push({\n label: offMenuText || 'Off',\n value: null\n });\n }\n\n tracks.forEach(function (textTrack) {\n // ignore invalid text track kind\n if (kinds.length && !kinds.includes(textTrack.kind)) {\n return;\n }\n\n textTrackItems.items.push({\n label: textTrack.label,\n value: textTrack.language\n });\n });\n textTrackItems.selectedIndex = textTrackItems.items.findIndex(function (item) {\n return activeTextTrack && activeTextTrack.language === item.value;\n });\n\n if (textTrackItems.selectedIndex === -1) {\n textTrackItems.selectedIndex = 0;\n }\n\n return textTrackItems;\n }\n }, {\n key: \"updateState\",\n value: function updateState() {\n var textTrackItems = this.getTextTrackItems();\n\n if (textTrackItems.selectedIndex !== this.state.selectedIndex || !this.textTrackItemsAreEqual(textTrackItems.items, this.state.items)) {\n this.setState(textTrackItems);\n }\n }\n }, {\n key: \"textTrackItemsAreEqual\",\n value: function textTrackItemsAreEqual(items1, items2) {\n if (items1.length !== items2.length) {\n return false;\n }\n\n for (var i = 0; i < items1.length; i++) {\n if (!items2[i] || items1[i].label !== items2[i].label || items1[i].value !== items2[i].value) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"handleSelectItem\",\n value: function handleSelectItem(index) {\n var _this$props2 = this.props,\n player = _this$props2.player,\n actions = _this$props2.actions,\n showOffMenu = _this$props2.showOffMenu;\n var textTracks = player.textTracks; // For the 'subtitles-off' button, the first condition will never match\n // so all subtitles will be turned off\n\n Array.from(textTracks).forEach(function (textTrack, i) {\n // if it shows the `Off` menu, the first item is `Off`\n if (index === (showOffMenu ? i + 1 : i)) {\n textTrack.mode = 'showing';\n actions.activateTextTrack(textTrack);\n } else {\n textTrack.mode = 'hidden';\n }\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state = this.state,\n items = _this$state.items,\n selectedIndex = _this$state.selectedIndex;\n return _react[\"default\"].createElement(_MenuButton[\"default\"], {\n className: (0, _classnames[\"default\"])('video-react-closed-caption', this.props.className),\n onSelectItem: this.handleSelectItem,\n items: items,\n selectedIndex: selectedIndex\n }, _react[\"default\"].createElement(\"span\", {\n className: \"video-react-control-text\"\n }, \"Closed Caption\"));\n }\n }]);\n return ClosedCaptionButton;\n}(_react.Component);\n\nClosedCaptionButton.propTypes = propTypes;\nClosedCaptionButton.defaultProps = defaultProps;\nClosedCaptionButton.displayName = 'ClosedCaptionButton';\nvar _default = ClosedCaptionButton;\nexports[\"default\"] = _default;","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var toFinite = require('./toFinite');\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\nmodule.exports = toInteger;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n","\n/* parser generated by jison 0.6.1-215 */\n\n/*\n * Returns a Parser object of the following structure:\n *\n * Parser: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a derivative/copy of this one,\n * not a direct reference!\n * }\n *\n * Parser.prototype: {\n * yy: {},\n * EOF: 1,\n * TERROR: 2,\n *\n * trace: function(errorMessage, ...),\n *\n * JisonParserError: function(msg, hash),\n *\n * quoteName: function(name),\n * Helper function which can be overridden by user code later on: put suitable\n * quotes around literal IDs in a description string.\n *\n * originalQuoteName: function(name),\n * The basic quoteName handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function\n * at the end of the `parse()`.\n *\n * describeSymbol: function(symbol),\n * Return a more-or-less human-readable description of the given symbol, when\n * available, or the symbol itself, serving as its own 'description' for lack\n * of something better to serve up.\n *\n * Return NULL when the symbol is unknown to the parser.\n *\n * symbols_: {associative list: name ==> number},\n * terminals_: {associative list: number ==> name},\n * nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},\n * terminal_descriptions_: (if there are any) {associative list: number ==> description},\n * productions_: [...],\n *\n * performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `yyval` internal object, which has members (`$` and `_$`)\n * to store/reference the rule value `$$` and location info `@$`.\n *\n * One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets\n * to see the same object via the `this` reference, i.e. if you wish to carry custom\n * data from one reduce action through to the next within a single parse run, then you\n * may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.\n *\n * `this.yy` is a direct reference to the `yy` shared state object.\n *\n * `%parse-param`-specified additional `parse()` arguments have been added to this `yy`\n * object at `parse()` start and are therefore available to the action code via the\n * same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from\n * the %parse-param` list.\n *\n * - `yytext` : reference to the lexer value which belongs to the last lexer token used\n * to match this rule. This is *not* the look-ahead token, but the last token\n * that's actually part of this rule.\n *\n * Formulated another way, `yytext` is the value of the token immediately preceeding\n * the current look-ahead token.\n * Caveats apply for rules which don't require look-ahead, such as epsilon rules.\n *\n * - `yyleng` : ditto as `yytext`, only now for the lexer.yyleng value.\n *\n * - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.\n *\n * - `yyloc` : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.\n *\n * WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead\n * of an empty object when no suitable location info can be provided.\n *\n * - `yystate` : the current parser state number, used internally for dispatching and\n * executing the action code chunk matching the rule currently being reduced.\n *\n * - `yysp` : the current state stack position (a.k.a. 'stack pointer')\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * Also note that you can access this and other stack index values using the new double-hash\n * syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things\n * related to the first rule term, just like you have `$1`, `@1` and `#1`.\n * This is made available to write very advanced grammar action rules, e.g. when you want\n * to investigate the parse state stack in your action code, which would, for example,\n * be relevant when you wish to implement error diagnostics and reporting schemes similar\n * to the work described here:\n *\n * + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.\n * In Journées Francophones des Languages Applicatifs.\n *\n * + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.\n * ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.\n *\n * - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.\n * constructs.\n *\n * - `yylstack`: reference to the parser token location stack. Also accessed via\n * the `@1` etc. constructs.\n *\n * WARNING: since jison 0.4.18-186 this array MAY contain slots which are\n * UNDEFINED rather than an empty (location) object, when the lexer/parser\n * action code did not provide a suitable location info object when such a\n * slot was filled!\n *\n * - `yystack` : reference to the parser token id stack. Also accessed via the\n * `#1` etc. constructs.\n *\n * Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to\n * its numeric token id value, hence that code wouldn't need the `yystack` but *you* might\n * want access this array for your own purposes, such as error analysis as mentioned above!\n *\n * Note that this stack stores the current stack of *tokens*, that is the sequence of\n * already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*\n * (lexer tokens *shifted* onto the stack until the rule they belong to is found and\n * *reduced*.\n *\n * - `yysstack`: reference to the parser state stack. This one carries the internal parser\n * *states* such as the one in `yystate`, which are used to represent\n * the parser state machine in the *parse table*. *Very* *internal* stuff,\n * what can I say? If you access this one, you're clearly doing wicked things\n *\n * - `...` : the extra arguments you specified in the `%parse-param` statement in your\n * grammar definition file.\n *\n * table: [...],\n * State transition table\n * ----------------------\n *\n * index levels are:\n * - `state` --> hash table\n * - `symbol` --> action (number or array)\n *\n * If the `action` is an array, these are the elements' meaning:\n * - index [0]: 1 = shift, 2 = reduce, 3 = accept\n * - index [1]: GOTO `state`\n *\n * If the `action` is a number, it is the GOTO `state`\n *\n * defaultActions: {...},\n *\n * parseError: function(str, hash, ExceptionClass),\n * yyError: function(str, ...),\n * yyRecovering: function(),\n * yyErrOk: function(),\n * yyClearIn: function(),\n *\n * constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this parser kernel in many places; example usage:\n *\n * var infoObj = parser.constructParseErrorInfo('fail!', null,\n * parser.collect_expected_token_set(state), true);\n * var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);\n *\n * originalParseError: function(str, hash, ExceptionClass),\n * The basic `parseError` handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function\n * at the end of the `parse()`.\n *\n * options: { ... parser %options ... },\n *\n * parse: function(input[, args...]),\n * Parse the given `input` and return the parsed value (or `true` when none was provided by\n * the root action, in which case the parser is acting as a *matcher*).\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the jison run-time;\n * when such a collision is detected an exception is thrown to prevent the generated run-time\n * from silently accepting this confusing and potentially hazardous situation!\n *\n * The lexer MAY add its own set of additional parameters (via the `%parse-param` line in\n * the lexer section of the grammar spec): these will be inserted in the `yy` shared state\n * object and any collision with those will be reported by the lexer via a thrown exception.\n *\n * cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API is invoked at the end of the `parse()` call, unless an exception was thrown\n * and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY\n * be invoked by calling user code to ensure the `post_parse` callbacks are invoked and\n * the internal parser gets properly garbage collected under these particular circumstances.\n *\n * yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API can be invoked to calculate a spanning `yylloc` location info object.\n *\n * Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case\n * this function will attempt to obtain a suitable location marker by inspecting the location stack\n * backwards.\n *\n * For more info see the documentation comment further below, immediately above this function's\n * implementation.\n *\n * lexer: {\n * yy: {...}, A reference to the so-called \"shared state\" `yy` once\n * received via a call to the `.setInput(input, yy)` lexer API.\n * EOF: 1,\n * ERROR: 2,\n * JisonLexerError: function(msg, hash),\n * parseError: function(str, hash, ExceptionClass),\n * setInput: function(input, [yy]),\n * input: function(),\n * unput: function(str),\n * more: function(),\n * reject: function(),\n * less: function(n),\n * pastInput: function(n),\n * upcomingInput: function(n),\n * showPosition: function(),\n * test_match: function(regex_match_array, rule_index, ...),\n * next: function(...),\n * lex: function(...),\n * begin: function(condition),\n * pushState: function(condition),\n * popState: function(),\n * topState: function(),\n * _currentRules: function(),\n * stateStackSize: function(),\n * cleanupAfterLex: function()\n *\n * options: { ... lexer %options ... },\n *\n * performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),\n * rules: [...],\n * conditions: {associative list: name ==> set},\n * }\n * }\n *\n *\n * token location info (@$, _$, etc.): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer and\n * parser errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * }\n *\n * parser (grammar) errors will also provide these additional members:\n *\n * {\n * expected: (array describing the set of expected tokens;\n * may be UNDEFINED when we cannot easily produce such a set)\n * state: (integer (or array when the table includes grammar collisions);\n * represents the current internal state of the parser kernel.\n * can, for example, be used to pass to the `collect_expected_token_set()`\n * API to obtain the expected token set)\n * action: (integer; represents the current internal action which will be executed)\n * new_state: (integer; represents the next/planned internal state, once the current\n * action has executed)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * state_stack: (array: the current parser LALR/LR internal state stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * location_stack: (array: the current parser LALR/LR internal location stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * parser: (reference to the current parser instance)\n * }\n *\n * while `this` will reference the current parser instance.\n *\n * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * lexer: (reference to the current lexer instance which reported the error)\n * }\n *\n * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired\n * from either the parser or lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * exception: (reference to the exception thrown)\n * }\n *\n * Please do note that in the latter situation, the `expected` field will be omitted as\n * this type of failure is assumed not to be due to *parse errors* but rather due to user\n * action code in either parser or lexer failing unexpectedly.\n *\n * ---\n *\n * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.\n * These options are available:\n *\n * ### options which are global for all parser instances\n *\n * Parser.pre_parse: function(yy)\n * optional: you can specify a pre_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`.\n * Parser.post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: you can specify a post_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`. When it does not return any value,\n * the parser will return the original `retval`.\n *\n * ### options which can be set up per parser instance\n *\n * yy: {\n * pre_parse: function(yy)\n * optional: is invoked before the parse cycle starts (and before the first\n * invocation of `lex()`) but immediately after the invocation of\n * `parser.pre_parse()`).\n * post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: is invoked when the parse terminates due to success ('accept')\n * or failure (even when exceptions are thrown).\n * `retval` contains the return value to be produced by `Parser.parse()`;\n * this function can override the return value by returning another.\n * When it does not return any value, the parser will return the original\n * `retval`.\n * This function is invoked immediately before `parser.post_parse()`.\n *\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * quoteName: function(name),\n * optional: overrides the default `quoteName` function.\n * }\n *\n * parser.lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this `%option` has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n \n \n var parser = (function () {\n\n\n// See also:\n// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n// with userland code which might access the derived class in a 'classic' way.\nfunction JisonParserError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonParserError'\n });\n\n if (msg == null) msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n\n var stacktrace;\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) { // V8/Chrome engine\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = (new Error(msg)).stack;\n }\n }\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n}\n\nif (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);\n} else {\n JisonParserError.prototype = Object.create(Error.prototype);\n}\nJisonParserError.prototype.constructor = JisonParserError;\nJisonParserError.prototype.name = 'JisonParserError';\n\n\n\n\n // helper: reconstruct the productions[] table\n function bp(s) {\n var rv = [];\n var p = s.pop;\n var r = s.rule;\n for (var i = 0, l = p.length; i < l; i++) {\n rv.push([\n p[i],\n r[i]\n ]);\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the defaultActions[] table\n function bda(s) {\n var rv = {};\n var d = s.idx;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var j = d[i];\n rv[j] = g[i];\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the 'goto' table\n function bt(s) {\n var rv = [];\n var d = s.len;\n var y = s.symbol;\n var t = s.type;\n var a = s.state;\n var m = s.mode;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var n = d[i];\n var q = {};\n for (var j = 0; j < n; j++) {\n var z = y.shift();\n switch (t.shift()) {\n case 2:\n q[z] = [\n m.shift(),\n g.shift()\n ];\n break;\n\n case 0:\n q[z] = a.shift();\n break;\n\n default:\n // type === 1: accept\n q[z] = [\n 3\n ];\n }\n }\n rv.push(q);\n }\n return rv;\n }\n \n\n\n // helper: runlength encoding with increment step: code, length: step (default step = 0)\n // `this` references an array\n function s(c, l, a) {\n a = a || 0;\n for (var i = 0; i < l; i++) {\n this.push(c);\n c += a;\n }\n }\n\n // helper: duplicate sequence from *relative* offset and length.\n // `this` references an array\n function c(i, l) {\n i = this.length - i;\n for (l += i; i < l; i++) {\n this.push(this[i]);\n }\n }\n\n // helper: unpack an array using helpers and data, all passed in an array argument 'a'.\n function u(a) {\n var rv = [];\n for (var i = 0, l = a.length; i < l; i++) {\n var e = a[i];\n // Is this entry a helper function?\n if (typeof e === 'function') {\n i++;\n e.apply(rv, a[i]);\n } else {\n rv.push(e);\n }\n }\n return rv;\n }\n \n\nvar parser = {\n // Code Generator Information Report\n // ---------------------------------\n //\n // Options:\n //\n // default action mode: ............. [\"classic\",\"merge\"]\n // test-compile action mode: ........ \"parser:*,lexer:*\"\n // try..catch: ...................... true\n // default resolve on conflict: ..... true\n // on-demand look-ahead: ............ false\n // error recovery token skip maximum: 3\n // yyerror in parse actions is: ..... NOT recoverable,\n // yyerror in lexer actions and other non-fatal lexer are:\n // .................................. NOT recoverable,\n // debug grammar/output: ............ false\n // has partial LR conflict upgrade: true\n // rudimentary token-stack support: false\n // parser table compression mode: ... 2\n // export debug tables: ............. false\n // export *all* tables: ............. false\n // module type: ..................... commonjs\n // parser engine type: .............. lalr\n // output main() in the module: ..... true\n // has user-specified main(): ....... false\n // has user-specified require()/import modules for main():\n // .................................. false\n // number of expected conflicts: .... 0\n //\n //\n // Parser Analysis flags:\n //\n // no significant actions (parser is a language matcher only):\n // .................................. false\n // uses yyleng: ..................... false\n // uses yylineno: ................... false\n // uses yytext: ..................... false\n // uses yylloc: ..................... false\n // uses ParseError API: ............. false\n // uses YYERROR: .................... false\n // uses YYRECOVERING: ............... false\n // uses YYERROK: .................... false\n // uses YYCLEARIN: .................. false\n // tracks rule values: .............. true\n // assigns rule values: ............. true\n // uses location tracking: .......... false\n // assigns location: ................ false\n // uses yystack: .................... false\n // uses yysstack: ................... false\n // uses yysp: ....................... true\n // uses yyrulelength: ............... false\n // uses yyMergeLocationInfo API: .... false\n // has error recovery: .............. false\n // has error reporting: ............. false\n //\n // --------- END OF REPORT -----------\n\ntrace: function no_op_trace() { },\nJisonParserError: JisonParserError,\nyy: {},\noptions: {\n type: \"lalr\",\n hasPartialLrUpgradeOnConflict: true,\n errorRecoveryTokenDiscardCount: 3\n},\nsymbols_: {\n \"$accept\": 0,\n \"$end\": 1,\n \"ADD\": 3,\n \"ANGLE\": 16,\n \"CHS\": 22,\n \"COMMA\": 14,\n \"CSS_CPROP\": 13,\n \"CSS_VAR\": 12,\n \"DIV\": 6,\n \"EMS\": 20,\n \"EOF\": 1,\n \"EXS\": 21,\n \"FREQ\": 18,\n \"LENGTH\": 15,\n \"LPAREN\": 7,\n \"MUL\": 5,\n \"NESTED_CALC\": 9,\n \"NUMBER\": 11,\n \"PERCENTAGE\": 28,\n \"PREFIX\": 10,\n \"REMS\": 23,\n \"RES\": 19,\n \"RPAREN\": 8,\n \"SUB\": 4,\n \"TIME\": 17,\n \"VHS\": 24,\n \"VMAXS\": 27,\n \"VMINS\": 26,\n \"VWS\": 25,\n \"css_value\": 33,\n \"css_variable\": 32,\n \"error\": 2,\n \"expression\": 29,\n \"math_expression\": 30,\n \"value\": 31\n},\nterminals_: {\n 1: \"EOF\",\n 2: \"error\",\n 3: \"ADD\",\n 4: \"SUB\",\n 5: \"MUL\",\n 6: \"DIV\",\n 7: \"LPAREN\",\n 8: \"RPAREN\",\n 9: \"NESTED_CALC\",\n 10: \"PREFIX\",\n 11: \"NUMBER\",\n 12: \"CSS_VAR\",\n 13: \"CSS_CPROP\",\n 14: \"COMMA\",\n 15: \"LENGTH\",\n 16: \"ANGLE\",\n 17: \"TIME\",\n 18: \"FREQ\",\n 19: \"RES\",\n 20: \"EMS\",\n 21: \"EXS\",\n 22: \"CHS\",\n 23: \"REMS\",\n 24: \"VHS\",\n 25: \"VWS\",\n 26: \"VMINS\",\n 27: \"VMAXS\",\n 28: \"PERCENTAGE\"\n},\nTERROR: 2,\n EOF: 1,\n\n // internals: defined here so the object *structure* doesn't get modified by parse() et al,\n // thus helping JIT compilers like Chrome V8.\n originalQuoteName: null,\n originalParseError: null,\n cleanupAfterParse: null,\n constructParseErrorInfo: null,\n yyMergeLocationInfo: null,\n\n __reentrant_call_depth: 0, // INTERNAL USE ONLY\n __error_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n __error_recovery_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n\n // APIs which will be set up depending on user action code analysis:\n //yyRecovering: 0,\n //yyErrOk: 0,\n //yyClearIn: 0,\n\n // Helper APIs\n // -----------\n\n // Helper function which can be overridden by user code later on: put suitable quotes around\n // literal IDs in a description string.\n quoteName: function parser_quoteName(id_str) {\n return '\"' + id_str + '\"';\n },\n\n // Return the name of the given symbol (terminal or non-terminal) as a string, when available.\n //\n // Return NULL when the symbol is unknown to the parser.\n getSymbolName: function parser_getSymbolName(symbol) {\n if (this.terminals_[symbol]) {\n return this.terminals_[symbol];\n }\n\n // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.\n //\n // An example of this may be where a rule's action code contains a call like this:\n //\n // parser.getSymbolName(#$)\n //\n // to obtain a human-readable name of the current grammar rule.\n var s = this.symbols_;\n for (var key in s) {\n if (s[key] === symbol) {\n return key;\n }\n }\n return null;\n },\n\n // Return a more-or-less human-readable description of the given symbol, when available,\n // or the symbol itself, serving as its own 'description' for lack of something better to serve up.\n //\n // Return NULL when the symbol is unknown to the parser.\n describeSymbol: function parser_describeSymbol(symbol) {\n if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {\n return this.terminal_descriptions_[symbol];\n }\n else if (symbol === this.EOF) {\n return 'end of input';\n }\n var id = this.getSymbolName(symbol);\n if (id) {\n return this.quoteName(id);\n }\n return null;\n },\n\n // Produce a (more or less) human-readable list of expected tokens at the point of failure.\n //\n // The produced list may contain token or token set descriptions instead of the tokens\n // themselves to help turning this output into something that easier to read by humans\n // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,\n // expected terminals and nonterminals is produced.\n //\n // The returned list (array) will not contain any duplicate entries.\n collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {\n var TERROR = this.TERROR;\n var tokenset = [];\n var check = {};\n // Has this (error?) state been outfitted with a custom expectations description text for human consumption?\n // If so, use that one instead of the less palatable token set.\n if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {\n return [\n this.state_descriptions_[state]\n ];\n }\n for (var p in this.table[state]) {\n p = +p;\n if (p !== TERROR) {\n var d = do_not_describe ? p : this.describeSymbol(p);\n if (d && !check[d]) {\n tokenset.push(d);\n check[d] = true; // Mark this token description as already mentioned to prevent outputting duplicate entries.\n }\n }\n }\n return tokenset;\n },\nproductions_: bp({\n pop: u([\n 29,\n s,\n [30, 10],\n 31,\n 31,\n 32,\n 32,\n s,\n [33, 15]\n]),\n rule: u([\n 2,\n s,\n [3, 5],\n 4,\n 7,\n s,\n [1, 4],\n 2,\n 4,\n 6,\n s,\n [1, 14],\n 2\n])\n}),\nperformAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {\n\n /* this == yyval */\n\n // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!\n var yy = this.yy;\n var yyparser = yy.parser;\n var yylexer = yy.lexer;\n\n \n\n switch (yystate) {\ncase 0:\n /*! Production:: $accept : expression $end */\n\n // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)\n break;\n\ncase 1:\n /*! Production:: expression : math_expression EOF */\n\n // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)\n \n \n return yyvstack[yysp - 1];\n break;\n\ncase 2:\n /*! Production:: math_expression : math_expression ADD math_expression */\ncase 3:\n /*! Production:: math_expression : math_expression SUB math_expression */\ncase 4:\n /*! Production:: math_expression : math_expression MUL math_expression */\ncase 5:\n /*! Production:: math_expression : math_expression DIV math_expression */\n\n this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };\n break;\n\ncase 6:\n /*! Production:: math_expression : LPAREN math_expression RPAREN */\n\n this.$ = yyvstack[yysp - 1];\n break;\n\ncase 7:\n /*! Production:: math_expression : NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };\n break;\n\ncase 8:\n /*! Production:: math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };\n break;\n\ncase 9:\n /*! Production:: math_expression : css_variable */\ncase 10:\n /*! Production:: math_expression : css_value */\ncase 11:\n /*! Production:: math_expression : value */\n\n this.$ = yyvstack[yysp];\n break;\n\ncase 12:\n /*! Production:: value : NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };\n break;\n\ncase 13:\n /*! Production:: value : SUB NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };\n break;\n\ncase 14:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };\n break;\n\ncase 15:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };\n break;\n\ncase 16:\n /*! Production:: css_value : LENGTH */\n\n this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 17:\n /*! Production:: css_value : ANGLE */\n\n this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 18:\n /*! Production:: css_value : TIME */\n\n this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 19:\n /*! Production:: css_value : FREQ */\n\n this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 20:\n /*! Production:: css_value : RES */\n\n this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 21:\n /*! Production:: css_value : EMS */\n\n this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };\n break;\n\ncase 22:\n /*! Production:: css_value : EXS */\n\n this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };\n break;\n\ncase 23:\n /*! Production:: css_value : CHS */\n\n this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };\n break;\n\ncase 24:\n /*! Production:: css_value : REMS */\n\n this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };\n break;\n\ncase 25:\n /*! Production:: css_value : VHS */\n\n this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };\n break;\n\ncase 26:\n /*! Production:: css_value : VWS */\n\n this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };\n break;\n\ncase 27:\n /*! Production:: css_value : VMINS */\n\n this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };\n break;\n\ncase 28:\n /*! Production:: css_value : VMAXS */\n\n this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };\n break;\n\ncase 29:\n /*! Production:: css_value : PERCENTAGE */\n\n this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };\n break;\n\ncase 30:\n /*! Production:: css_value : SUB css_value */\n\n var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;\n break;\n\n}\n},\ntable: bt({\n len: u([\n 24,\n 1,\n 5,\n 23,\n 1,\n 18,\n s,\n [0, 3],\n 1,\n s,\n [0, 16],\n s,\n [23, 4],\n c,\n [28, 3],\n 0,\n 0,\n 16,\n 1,\n 6,\n 6,\n s,\n [0, 3],\n 5,\n 1,\n 2,\n c,\n [37, 3],\n c,\n [20, 3],\n 5,\n 0,\n 0\n]),\n symbol: u([\n 4,\n 7,\n 9,\n 11,\n 12,\n s,\n [15, 19, 1],\n 1,\n 1,\n s,\n [3, 4, 1],\n c,\n [30, 19],\n c,\n [29, 4],\n 7,\n 4,\n 10,\n 11,\n c,\n [22, 14],\n c,\n [19, 3],\n c,\n [43, 22],\n c,\n [23, 69],\n c,\n [139, 4],\n 8,\n c,\n [51, 24],\n 4,\n c,\n [138, 15],\n 13,\n c,\n [186, 5],\n 8,\n c,\n [6, 6],\n c,\n [5, 5],\n 9,\n 8,\n 14,\n c,\n [159, 47],\n c,\n [60, 10]\n]),\n type: u([\n s,\n [2, 19],\n s,\n [0, 5],\n 1,\n s,\n [2, 24],\n s,\n [0, 4],\n c,\n [22, 19],\n c,\n [43, 42],\n c,\n [23, 70],\n c,\n [28, 25],\n c,\n [45, 25],\n c,\n [113, 54]\n]),\n state: u([\n 1,\n 2,\n 8,\n 6,\n 7,\n 30,\n c,\n [4, 3],\n 33,\n 37,\n c,\n [5, 3],\n 38,\n c,\n [4, 3],\n 39,\n c,\n [4, 3],\n 40,\n c,\n [4, 3],\n 42,\n c,\n [21, 4],\n 50,\n c,\n [5, 3],\n 51,\n c,\n [4, 3]\n]),\n mode: u([\n s,\n [1, 179],\n s,\n [2, 3],\n c,\n [5, 5],\n c,\n [6, 4],\n s,\n [1, 57]\n]),\n goto: u([\n 5,\n 3,\n 4,\n 24,\n s,\n [9, 15, 1],\n s,\n [25, 5, 1],\n c,\n [24, 19],\n 31,\n 35,\n 32,\n 34,\n c,\n [18, 14],\n 36,\n c,\n [38, 19],\n c,\n [19, 57],\n c,\n [118, 4],\n 41,\n c,\n [24, 19],\n 43,\n 35,\n c,\n [16, 14],\n 44,\n s,\n [2, 3],\n 28,\n 29,\n 2,\n s,\n [3, 3],\n 28,\n 29,\n 3,\n c,\n [53, 4],\n s,\n [45, 5, 1],\n c,\n [100, 42],\n 52,\n c,\n [5, 4],\n 53\n])\n}),\ndefaultActions: bda({\n idx: u([\n 6,\n 7,\n 8,\n s,\n [10, 16, 1],\n 33,\n 34,\n 39,\n 40,\n 41,\n 45,\n 47,\n 52,\n 53\n]),\n goto: u([\n 9,\n 10,\n 11,\n s,\n [16, 14, 1],\n 12,\n 1,\n 30,\n 13,\n s,\n [4, 4, 1],\n 14,\n 15,\n 8\n])\n}),\nparseError: function parseError(str, hash, ExceptionClass) {\n if (hash.recoverable) {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n hash.destroy(); // destroy... well, *almost*!\n } else {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n throw new ExceptionClass(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this;\n var stack = new Array(128); // token stack: stores token which leads to state at the same index (column storage)\n var sstack = new Array(128); // state stack: stores states (column storage)\n\n var vstack = new Array(128); // semantic value stack\n\n var table = this.table;\n var sp = 0; // 'stack pointer': index into the stacks\n\n\n \n\n\n var symbol = 0;\n\n\n\n var TERROR = this.TERROR;\n var EOF = this.EOF;\n var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;\n var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];\n\n var lexer;\n if (this.__lexer__) {\n lexer = this.__lexer__;\n } else {\n lexer = this.__lexer__ = Object.create(this.lexer);\n }\n\n var sharedState_yy = {\n parseError: undefined,\n quoteName: undefined,\n lexer: undefined,\n parser: undefined,\n pre_parse: undefined,\n post_parse: undefined,\n pre_lex: undefined,\n post_lex: undefined // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!\n };\n\n var ASSERT;\n if (typeof assert !== 'function') {\n ASSERT = function JisonAssert(cond, msg) {\n if (!cond) {\n throw new Error('assertion failed: ' + (msg || '***'));\n }\n };\n } else {\n ASSERT = assert;\n }\n\n this.yyGetSharedState = function yyGetSharedState() {\n return sharedState_yy;\n };\n\n\n\n\n\n\n\n\n function shallow_copy_noclobber(dst, src) {\n for (var k in src) {\n if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {\n dst[k] = src[k];\n }\n }\n }\n\n // copy state\n shallow_copy_noclobber(sharedState_yy, this.yy);\n\n sharedState_yy.lexer = lexer;\n sharedState_yy.parser = this;\n\n\n\n\n\n\n // Does the shared state override the default `parseError` that already comes with this instance?\n if (typeof sharedState_yy.parseError === 'function') {\n this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);\n };\n } else {\n this.parseError = this.originalParseError;\n }\n\n // Does the shared state override the default `quoteName` that already comes with this instance?\n if (typeof sharedState_yy.quoteName === 'function') {\n this.quoteName = function quoteNameAlt(id_str) {\n return sharedState_yy.quoteName.call(this, id_str);\n };\n } else {\n this.quoteName = this.originalQuoteName;\n }\n\n // set up the cleanup function; make it an API so that external code can re-use this one in case of\n // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which\n // case this parse() API method doesn't come with a `finally { ... }` block any more!\n //\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `sharedState`, etc. references will be *wrong*!\n this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {\n var rv;\n\n if (invoke_post_methods) {\n var hash;\n\n if (sharedState_yy.post_parse || this.post_parse) {\n // create an error hash info instance: we re-use this API in a **non-error situation**\n // as this one delivers all parser internals ready for access by userland code.\n hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);\n }\n\n if (sharedState_yy.post_parse) {\n rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n if (this.post_parse) {\n rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n\n // cleanup:\n if (hash && hash.destroy) {\n hash.destroy();\n }\n }\n\n if (this.__reentrant_call_depth > 1) return resultValue; // do not (yet) kill the sharedState when this is a reentrant run.\n\n // clean up the lingering lexer structures as well:\n if (lexer.cleanupAfterLex) {\n lexer.cleanupAfterLex(do_not_nuke_errorinfos);\n }\n\n // prevent lingering circular references from causing memory leaks:\n if (sharedState_yy) {\n sharedState_yy.lexer = undefined;\n sharedState_yy.parser = undefined;\n if (lexer.yy === sharedState_yy) {\n lexer.yy = undefined;\n }\n }\n sharedState_yy = undefined;\n this.parseError = this.originalParseError;\n this.quoteName = this.originalQuoteName;\n\n // nuke the vstack[] array at least as that one will still reference obsoleted user values.\n // To be safe, we nuke the other internal stack columns as well...\n stack.length = 0; // fastest way to nuke an array without overly bothering the GC\n sstack.length = 0;\n\n vstack.length = 0;\n sp = 0;\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n this.__error_infos.length = 0;\n\n\n }\n\n return resultValue;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `lexer`, `sharedState`, etc. references will be *wrong*!\n this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {\n var pei = {\n errStr: msg,\n exception: ex,\n text: lexer.match,\n value: lexer.yytext,\n token: this.describeSymbol(symbol) || symbol,\n token_id: symbol,\n line: lexer.yylineno,\n\n expected: expected,\n recoverable: recoverable,\n state: state,\n action: action,\n new_state: newState,\n symbol_stack: stack,\n state_stack: sstack,\n value_stack: vstack,\n\n stack_pointer: sp,\n yy: sharedState_yy,\n lexer: lexer,\n parser: this,\n\n // and make sure the error info doesn't stay due to potential\n // ref cycle via userland code manipulations.\n // These would otherwise all be memory leak opportunities!\n //\n // Note that only array and object references are nuked as those\n // constitute the set of elements which can produce a cyclic ref.\n // The rest of the members is kept intact as they are harmless.\n destroy: function destructParseErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // info.value = null;\n // info.value_stack = null;\n // ...\n var rec = !!this.recoverable;\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n this.recoverable = rec;\n }\n };\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n return pei;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n function getNonTerminalFromCode(symbol) {\n var tokenName = self.getSymbolName(symbol);\n if (!tokenName) {\n tokenName = symbol;\n }\n return tokenName;\n }\n\n\n function stdLex() {\n var token = lexer.lex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n function fastLex() {\n var token = lexer.fastLex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n var lex = stdLex;\n\n\n var state, action, r, t;\n var yyval = {\n $: true,\n _$: undefined,\n yy: sharedState_yy\n };\n var p;\n var yyrulelen;\n var this_production;\n var newState;\n var retval = false;\n\n\n try {\n this.__reentrant_call_depth++;\n\n lexer.setInput(input, sharedState_yy);\n\n // NOTE: we *assume* no lexer pre/post handlers are set up *after* \n // this initial `setInput()` call: hence we can now check and decide\n // whether we'll go with the standard, slower, lex() API or the\n // `fast_lex()` one:\n if (typeof lexer.canIUse === 'function') {\n var lexerInfo = lexer.canIUse();\n if (lexerInfo.fastLex && typeof fastLex === 'function') {\n lex = fastLex;\n }\n } \n\n\n\n vstack[sp] = null;\n sstack[sp] = 0;\n stack[sp] = 0;\n ++sp;\n\n\n\n\n\n if (this.pre_parse) {\n this.pre_parse.call(this, sharedState_yy);\n }\n if (sharedState_yy.pre_parse) {\n sharedState_yy.pre_parse.call(this, sharedState_yy);\n }\n\n newState = sstack[sp - 1];\n for (;;) {\n // retrieve state number from top of stack\n state = newState; // sstack[sp - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = 2;\n newState = this.defaultActions[state];\n } else {\n // The single `==` condition below covers both these `===` comparisons in a single\n // operation:\n //\n // if (symbol === null || typeof symbol === 'undefined') ...\n if (!symbol) {\n symbol = lex();\n }\n // read action for current state and first input\n t = (table[state] && table[state][symbol]) || NO_ACTION;\n newState = t[1];\n action = t[0];\n\n\n\n\n\n\n\n\n\n\n\n // handle parse error\n if (!action) {\n var errStr;\n var errSymbolDescr = (this.describeSymbol(symbol) || symbol);\n var expected = this.collect_expected_token_set(state);\n\n // Report error\n if (typeof lexer.yylineno === 'number') {\n errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';\n } else {\n errStr = 'Parse error: ';\n }\n if (typeof lexer.showPosition === 'function') {\n errStr += '\\n' + lexer.showPosition(79 - 10, 10) + '\\n';\n }\n if (expected.length) {\n errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;\n } else {\n errStr += 'Unexpected ' + errSymbolDescr;\n }\n // we cannot recover from the error!\n p = this.constructParseErrorInfo(errStr, null, expected, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n\n\n }\n\n\n\n\n\n\n\n\n\n\n switch (action) {\n // catch misc. parse failures:\n default:\n // this shouldn't happen, unless resolve defaults are off\n if (action instanceof Array) {\n p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n // Another case of better safe than sorry: in case state transitions come out of another error recovery process\n // or a buggy LUT (LookUp Table):\n p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n\n // shift:\n case 1:\n stack[sp] = symbol;\n vstack[sp] = lexer.yytext;\n\n sstack[sp] = newState; // push state\n\n ++sp;\n symbol = 0;\n\n\n\n\n // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:\n\n\n\n\n continue;\n\n // reduce:\n case 2:\n\n\n\n this_production = this.productions_[newState - 1]; // `this.productions_[]` is zero-based indexed while states start from 1 upwards...\n yyrulelen = this_production[1];\n\n\n\n\n\n\n\n\n\n\n r = this.performAction.call(yyval, newState, sp - 1, vstack);\n\n if (typeof r !== 'undefined') {\n retval = r;\n break;\n }\n\n // pop off stack\n sp -= yyrulelen;\n\n // don't overwrite the `symbol` variable: use a local var to speed things up:\n var ntsymbol = this_production[0]; // push nonterminal (reduce)\n stack[sp] = ntsymbol;\n vstack[sp] = yyval.$;\n\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[sstack[sp - 1]][ntsymbol];\n sstack[sp] = newState;\n ++sp;\n\n\n\n\n\n\n\n\n\n continue;\n\n // accept:\n case 3:\n if (sp !== -2) {\n retval = true;\n // Return the `$accept` rule's `$$` result, if available.\n //\n // Also note that JISON always adds this top-most `$accept` rule (with implicit,\n // default, action):\n //\n // $accept: <startSymbol> $end\n // %{ $$ = $1; @$ = @1; %}\n //\n // which, combined with the parse kernel's `$accept` state behaviour coded below,\n // will produce the `$$` value output of the <startSymbol> rule as the parse result,\n // IFF that result is *not* `undefined`. (See also the parser kernel code.)\n //\n // In code:\n //\n // %{\n // @$ = @1; // if location tracking support is included\n // if (typeof $1 !== 'undefined')\n // return $1;\n // else\n // return true; // the default parse result if the rule actions don't produce anything\n // %}\n sp--;\n if (typeof vstack[sp] !== 'undefined') {\n retval = vstack[sp];\n }\n }\n break;\n }\n\n // break out of loop: we accept or fail with error\n break;\n }\n } catch (ex) {\n // report exceptions through the parseError callback too, but keep the exception intact\n // if it is a known parser or lexer error which has been thrown by parseError() already:\n if (ex instanceof this.JisonParserError) {\n throw ex;\n }\n else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {\n throw ex;\n }\n\n p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);\n retval = false;\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n } finally {\n retval = this.cleanupAfterParse(retval, true, true);\n this.__reentrant_call_depth--;\n } // /finally\n\n return retval;\n}\n};\nparser.originalParseError = parser.parseError;\nparser.originalQuoteName = parser.quoteName;\n/* lexer generated by jison-lex 0.6.1-215 */\n\n/*\n * Returns a Lexer object of the following structure:\n *\n * Lexer: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a direct reference!\n *\n * This \"shared context\" object was passed to the lexer by way of \n * the `lexer.setInput(str, yy)` API before you may use it.\n *\n * This \"shared context\" object is passed to the lexer action code in `performAction()`\n * so userland code in the lexer actions may communicate with the outside world \n * and/or other lexer rules' actions in more or less complex ways.\n *\n * }\n *\n * Lexer.prototype: {\n * EOF: 1,\n * ERROR: 2,\n *\n * yy: The overall \"shared context\" object reference.\n *\n * JisonLexerError: function(msg, hash),\n *\n * performAction: function lexer__performAction(yy, yyrulenumber, YY_START),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `lexer` instance. \n * `yy_` is an alias for `this` lexer instance reference used internally.\n *\n * - `yy` : a reference to the `yy` \"shared state\" object which was passed to the lexer\n * by way of the `lexer.setInput(str, yy)` API before.\n *\n * Note:\n * The extra arguments you specified in the `%parse-param` statement in your\n * **parser** grammar definition file are passed to the lexer via this object\n * reference as member variables.\n *\n * - `yyrulenumber` : index of the matched lexer rule (regex), used internally.\n *\n * - `YY_START`: the current lexer \"start condition\" state.\n *\n * parseError: function(str, hash, ExceptionClass),\n *\n * constructLexErrorInfo: function(error_message, is_recoverable),\n * Helper function.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this lexer kernel in many places; example usage:\n *\n * var infoObj = lexer.constructParseErrorInfo('fail!', true);\n * var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);\n *\n * options: { ... lexer %options ... },\n *\n * lex: function(),\n * Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the **parser** or the jison run-time; \n * when such a collision is detected an exception is thrown to prevent the generated run-time \n * from silently accepting this confusing and potentially hazardous situation! \n *\n * cleanupAfterLex: function(do_not_nuke_errorinfos),\n * Helper function.\n *\n * This helper API is invoked when the **parse process** has completed: it is the responsibility\n * of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. \n *\n * This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.\n *\n * setInput: function(input, [yy]),\n *\n *\n * input: function(),\n *\n *\n * unput: function(str),\n *\n *\n * more: function(),\n *\n *\n * reject: function(),\n *\n *\n * less: function(n),\n *\n *\n * pastInput: function(n),\n *\n *\n * upcomingInput: function(n),\n *\n *\n * showPosition: function(),\n *\n *\n * test_match: function(regex_match_array, rule_index),\n *\n *\n * next: function(),\n *\n *\n * begin: function(condition),\n *\n *\n * pushState: function(condition),\n *\n *\n * popState: function(),\n *\n *\n * topState: function(),\n *\n *\n * _currentRules: function(),\n *\n *\n * stateStackSize: function(),\n *\n *\n * performAction: function(yy, yy_, yyrulenumber, YY_START),\n *\n *\n * rules: [...],\n *\n *\n * conditions: {associative list: name ==> set},\n * }\n *\n *\n * token location info (`yylloc`): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * }\n *\n * while `this` will reference the current lexer instance.\n *\n * When `parseError` is invoked by the lexer, the default implementation will\n * attempt to invoke `yy.parser.parseError()`; when this callback is not provided\n * it will try to invoke `yy.parseError()` instead. When that callback is also not\n * provided, a `JisonLexerError` exception will be thrown containing the error\n * message and `hash`, as constructed by the `constructLexErrorInfo()` API.\n *\n * Note that the lexer's `JisonLexerError` error class is passed via the\n * `ExceptionClass` argument, which is invoked to construct the exception\n * instance to be thrown, so technically `parseError` will throw the object\n * produced by the `new ExceptionClass(str, hash)` JavaScript expression.\n *\n * ---\n *\n * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.\n * These options are available:\n *\n * (Options are permanent.)\n * \n * yy: {\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * }\n *\n * lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * WARNING: the next set of options are not meant to be changed. They echo the abilities of\n * the lexer as per when it was compiled!\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this %option has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n\nvar lexer = function() {\n /**\n * See also:\n * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n * with userland code which might access the derived class in a 'classic' way.\n *\n * @public\n * @constructor\n * @nocollapse\n */\n function JisonLexerError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonLexerError'\n });\n\n if (msg == null)\n msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n var stacktrace;\n\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) {\n // V8\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = new Error(msg).stack;\n }\n }\n\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n }\n\n if (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);\n } else {\n JisonLexerError.prototype = Object.create(Error.prototype);\n }\n\n JisonLexerError.prototype.constructor = JisonLexerError;\n JisonLexerError.prototype.name = 'JisonLexerError';\n\n var lexer = {\n \n// Code Generator Information Report\n// ---------------------------------\n//\n// Options:\n//\n// backtracking: .................... false\n// location.ranges: ................. false\n// location line+column tracking: ... true\n//\n//\n// Forwarded Parser Analysis flags:\n//\n// uses yyleng: ..................... false\n// uses yylineno: ................... false\n// uses yytext: ..................... false\n// uses yylloc: ..................... false\n// uses lexer values: ............... true / true\n// location tracking: ............... false\n// location assignment: ............. false\n//\n//\n// Lexer Analysis flags:\n//\n// uses yyleng: ..................... ???\n// uses yylineno: ................... ???\n// uses yytext: ..................... ???\n// uses yylloc: ..................... ???\n// uses ParseError API: ............. ???\n// uses yyerror: .................... ???\n// uses location tracking & editing: ???\n// uses more() API: ................. ???\n// uses unput() API: ................ ???\n// uses reject() API: ............... ???\n// uses less() API: ................. ???\n// uses display APIs pastInput(), upcomingInput(), showPosition():\n// ............................. ???\n// uses describeYYLLOC() API: ....... ???\n//\n// --------- END OF REPORT -----------\n\nEOF: 1,\n ERROR: 2,\n\n // JisonLexerError: JisonLexerError, /// <-- injected by the code generator\n\n // options: {}, /// <-- injected by the code generator\n\n // yy: ..., /// <-- injected by setInput()\n\n __currentRuleSet__: null, /// INTERNAL USE ONLY: internal rule set cache for the current lexer state \n\n __error_infos: [], /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup \n __decompressed: false, /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use \n done: false, /// INTERNAL USE ONLY \n _backtrack: false, /// INTERNAL USE ONLY \n _input: '', /// INTERNAL USE ONLY \n _more: false, /// INTERNAL USE ONLY \n _signaled_error_token: false, /// INTERNAL USE ONLY \n conditionStack: [], /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()` \n match: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely! \n matched: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far \n matches: false, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt \n yytext: '', /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API. \n offset: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far \n yyleng: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`) \n yylineno: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located \n yylloc: null, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction \n\n /**\n * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.\n * \n * @public\n * @this {RegExpLexer}\n */\n constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {\n msg = '' + msg;\n\n // heuristic to determine if the error message already contains a (partial) source code dump\n // as produced by either `showPosition()` or `prettyPrintRange()`:\n if (show_input_position == undefined) {\n show_input_position = !(msg.indexOf('\\n') > 0 && msg.indexOf('^') > 0);\n }\n\n if (this.yylloc && show_input_position) {\n if (typeof this.prettyPrintRange === 'function') {\n var pretty_src = this.prettyPrintRange(this.yylloc);\n\n if (!/\\n\\s*$/.test(msg)) {\n msg += '\\n';\n }\n\n msg += '\\n Erroneous area:\\n' + this.prettyPrintRange(this.yylloc);\n } else if (typeof this.showPosition === 'function') {\n var pos_str = this.showPosition();\n\n if (pos_str) {\n if (msg.length && msg[msg.length - 1] !== '\\n' && pos_str[0] !== '\\n') {\n msg += '\\n' + pos_str;\n } else {\n msg += pos_str;\n }\n }\n }\n }\n\n /** @constructor */\n var pei = {\n errStr: msg,\n recoverable: !!recoverable,\n text: this.match, // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'... \n token: null,\n line: this.yylineno,\n loc: this.yylloc,\n yy: this.yy,\n lexer: this,\n\n /**\n * and make sure the error info doesn't stay due to potential\n * ref cycle via userland code manipulations.\n * These would otherwise all be memory leak opportunities!\n * \n * Note that only array and object references are nuked as those\n * constitute the set of elements which can produce a cyclic ref.\n * The rest of the members is kept intact as they are harmless.\n * \n * @public\n * @this {LexErrorInfo}\n */\n destroy: function destructLexErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // ...\n var rec = !!this.recoverable;\n\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n\n this.recoverable = rec;\n }\n };\n\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n\n return pei;\n },\n\n /**\n * handler which is invoked when a lexer error occurs.\n * \n * @public\n * @this {RegExpLexer}\n */\n parseError: function lexer_parseError(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonLexerError;\n }\n\n if (this.yy) {\n if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {\n return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n } else if (typeof this.yy.parseError === 'function') {\n return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n }\n }\n\n throw new ExceptionClass(str, hash);\n },\n\n /**\n * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.\n * \n * @public\n * @this {RegExpLexer}\n */\n yyerror: function yyError(str /*, ...args */) {\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': ' + str,\n this.options.lexerErrorsAreRecoverable\n );\n\n // Add any extra args to the hash under the name `extra_error_attributes`:\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (args.length) {\n p.extra_error_attributes = args;\n }\n\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n },\n\n /**\n * final cleanup function for when we have completed lexing the input;\n * make it an API so that external code can use this one once userland\n * code has decided it's time to destroy any lingering lexer error\n * hash object instances and the like: this function helps to clean\n * up these constructs, which *may* carry cyclic references which would\n * otherwise prevent the instances from being properly and timely\n * garbage-collected, i.e. this function helps prevent memory leaks!\n * \n * @public\n * @this {RegExpLexer}\n */\n cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {\n // prevent lingering circular references from causing memory leaks:\n this.setInput('', {});\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n\n this.__error_infos.length = 0;\n }\n\n return this;\n },\n\n /**\n * clear the lexer token context; intended for internal use only\n * \n * @public\n * @this {RegExpLexer}\n */\n clear: function lexer_clear() {\n this.yytext = '';\n this.yyleng = 0;\n this.match = '';\n\n // - DO NOT reset `this.matched`\n this.matches = false;\n\n this._more = false;\n this._backtrack = false;\n var col = (this.yylloc ? this.yylloc.last_column : 0);\n\n this.yylloc = {\n first_line: this.yylineno + 1,\n first_column: col,\n last_line: this.yylineno + 1,\n last_column: col,\n range: [this.offset, this.offset]\n };\n },\n\n /**\n * resets the lexer, sets new input\n * \n * @public\n * @this {RegExpLexer}\n */\n setInput: function lexer_setInput(input, yy) {\n this.yy = yy || this.yy || {};\n\n // also check if we've fully initialized the lexer instance,\n // including expansion work to be done to go from a loaded\n // lexer to a usable lexer:\n if (!this.__decompressed) {\n // step 1: decompress the regex list:\n var rules = this.rules;\n\n for (var i = 0, len = rules.length; i < len; i++) {\n var rule_re = rules[i];\n\n // compression: is the RE an xref to another RE slot in the rules[] table?\n if (typeof rule_re === 'number') {\n rules[i] = rules[rule_re];\n }\n }\n\n // step 2: unfold the conditions[] set to make these ready for use:\n var conditions = this.conditions;\n\n for (var k in conditions) {\n var spec = conditions[k];\n var rule_ids = spec.rules;\n var len = rule_ids.length;\n var rule_regexes = new Array(len + 1); // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! \n var rule_new_ids = new Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n var idx = rule_ids[i];\n var rule_re = rules[idx];\n rule_regexes[i + 1] = rule_re;\n rule_new_ids[i + 1] = idx;\n }\n\n spec.rules = rule_new_ids;\n spec.__rule_regexes = rule_regexes;\n spec.__rule_count = len;\n }\n\n this.__decompressed = true;\n }\n\n this._input = input || '';\n this.clear();\n this._signaled_error_token = false;\n this.done = false;\n this.yylineno = 0;\n this.matched = '';\n this.conditionStack = ['INITIAL'];\n this.__currentRuleSet__ = null;\n\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n this.offset = 0;\n return this;\n },\n\n /**\n * edit the remaining input via user-specified callback.\n * This can be used to forward-adjust the input-to-parse, \n * e.g. inserting macro expansions and alike in the\n * input which has yet to be lexed.\n * The behaviour of this API contrasts the `unput()` et al\n * APIs as those act on the *consumed* input, while this\n * one allows one to manipulate the future, without impacting\n * the current `yyloc` cursor location or any history. \n * \n * Use this API to help implement C-preprocessor-like\n * `#include` statements, etc.\n * \n * The provided callback must be synchronous and is\n * expected to return the edited input (string).\n *\n * The `cpsArg` argument value is passed to the callback\n * as-is.\n *\n * `callback` interface: \n * `function callback(input, cpsArg)`\n * \n * - `input` will carry the remaining-input-to-lex string\n * from the lexer.\n * - `cpsArg` is `cpsArg` passed into this API.\n * \n * The `this` reference for the callback will be set to\n * reference this lexer instance so that userland code\n * in the callback can easily and quickly access any lexer\n * API. \n *\n * When the callback returns a non-string-type falsey value,\n * we assume the callback did not edit the input and we\n * will using the input as-is.\n *\n * When the callback returns a non-string-type value, it\n * is converted to a string for lexing via the `\"\" + retval`\n * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html \n * -- that way any returned object's `toValue()` and `toString()`\n * methods will be invoked in a proper/desirable order.)\n * \n * @public\n * @this {RegExpLexer}\n */\n editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {\n var rv = callback.call(this, this._input, cpsArg);\n\n if (typeof rv !== 'string') {\n if (rv) {\n this._input = '' + rv;\n } \n // else: keep `this._input` as is. \n } else {\n this._input = rv;\n }\n\n return this;\n },\n\n /**\n * consumes and returns one char from the input\n * \n * @public\n * @this {RegExpLexer}\n */\n input: function lexer_input() {\n if (!this._input) {\n //this.done = true; -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <<EOF>> tokens and perform user action code for a <<EOF>> match, but only does so *once*)\n return null;\n }\n\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n\n // Count the linenumber up when we hit the LF (or a stand-alone CR).\n // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo\n // and we advance immediately past the LF as well, returning both together as if\n // it was all a single 'character' only.\n var slice_len = 1;\n\n var lines = false;\n\n if (ch === '\\n') {\n lines = true;\n } else if (ch === '\\r') {\n lines = true;\n var ch2 = this._input[1];\n\n if (ch2 === '\\n') {\n slice_len++;\n ch += ch2;\n this.yytext += ch2;\n this.yyleng++;\n this.offset++;\n this.match += ch2;\n this.matched += ch2;\n this.yylloc.range[1]++;\n }\n }\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n this.yylloc.last_column = 0;\n } else {\n this.yylloc.last_column++;\n }\n\n this.yylloc.range[1]++;\n this._input = this._input.slice(slice_len);\n return ch;\n },\n\n /**\n * unshifts one char (or an entire string) into the input\n * \n * @public\n * @this {RegExpLexer}\n */\n unput: function lexer_unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.yyleng = this.yytext.length;\n this.offset -= len;\n this.match = this.match.substr(0, this.match.length - len);\n this.matched = this.matched.substr(0, this.matched.length - len);\n\n if (lines.length > 1) {\n this.yylineno -= lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n\n // Get last entirely matched line into the `pre_lines[]` array's\n // last index slot; we don't mind when other previously \n // matched lines end up in the array too. \n var pre = this.match;\n\n var pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n\n if (pre_lines.length === 1) {\n pre = this.matched;\n pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n }\n\n this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;\n } else {\n this.yylloc.last_column -= len;\n }\n\n this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;\n this.done = false;\n return this;\n },\n\n /**\n * cache matched text and append it on next action\n * \n * @public\n * @this {RegExpLexer}\n */\n more: function lexer_more() {\n this._more = true;\n return this;\n },\n\n /**\n * signal the lexer that this rule fails to match the input, so the\n * next matching rule (regex) should be tested instead.\n * \n * @public\n * @this {RegExpLexer}\n */\n reject: function lexer_reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n // when the `parseError()` call returns, we MUST ensure that the error is registered.\n // We accomplish this by signaling an 'error' token to be produced for the current\n // `.lex()` run.\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',\n false\n );\n\n this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n\n return this;\n },\n\n /**\n * retain first n characters of the match\n * \n * @public\n * @this {RegExpLexer}\n */\n less: function lexer_less(n) {\n return this.unput(this.match.slice(n));\n },\n\n /**\n * return (part of the) already matched input, i.e. for error\n * messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of\n * input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n * \n * @public\n * @this {RegExpLexer}\n */\n pastInput: function lexer_pastInput(maxSize, maxLines) {\n var past = this.matched.substring(0, this.matched.length - this.match.length);\n\n if (maxSize < 0)\n maxSize = past.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = past.length; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substr` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n past = past.substr(-maxSize * 2 - 2);\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = past.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(-maxLines);\n past = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis prefix...\n if (past.length > maxSize) {\n past = '...' + past.substr(-maxSize);\n }\n\n return past;\n },\n\n /**\n * return (part of the) upcoming input, i.e. for error messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n *\n * > ### NOTE ###\n * >\n * > *\"upcoming input\"* is defined as the whole of the both\n * > the *currently lexed* input, together with any remaining input\n * > following that. *\"currently lexed\"* input is the input \n * > already recognized by the lexer but not yet returned with\n * > the lexer token. This happens when you are invoking this API\n * > from inside any lexer rule action code block. \n * >\n * \n * @public\n * @this {RegExpLexer}\n */\n upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {\n var next = this.match;\n\n if (maxSize < 0)\n maxSize = next.length + this._input.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = maxSize; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substring` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n if (next.length < maxSize * 2 + 2) {\n next += this._input.substring(0, maxSize * 2 + 2); // substring is faster on Chrome/V8 \n }\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = next.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(0, maxLines);\n next = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis postfix...\n if (next.length > maxSize) {\n next = next.substring(0, maxSize) + '...';\n }\n\n return next;\n },\n\n /**\n * return a string which displays the character position where the\n * lexing error occurred, i.e. for error messages\n * \n * @public\n * @this {RegExpLexer}\n */\n showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {\n var pre = this.pastInput(maxPrefix).replace(/\\s/g, ' ');\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput(maxPostfix).replace(/\\s/g, ' ') + '\\n' + c + '^';\n },\n\n /**\n * return an YYLLOC info object derived off the given context (actual, preceding, following, current).\n * Use this method when the given `actual` location is not guaranteed to exist (i.e. when\n * it MAY be NULL) and you MUST have a valid location info object anyway:\n * then we take the given context of the `preceding` and `following` locations, IFF those are available,\n * and reconstruct the `actual` location info from those.\n * If this fails, the heuristic is to take the `current` location, IFF available.\n * If this fails as well, we assume the sought location is at/around the current lexer position\n * and then produce that one as a response. DO NOTE that these heuristic/derived location info\n * values MAY be inaccurate!\n *\n * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just\n * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).\n * \n * @public\n * @this {RegExpLexer}\n */\n deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {\n var loc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n if (actual) {\n loc.first_line = actual.first_line | 0;\n loc.last_line = actual.last_line | 0;\n loc.first_column = actual.first_column | 0;\n loc.last_column = actual.last_column | 0;\n\n if (actual.range) {\n loc.range[0] = actual.range[0] | 0;\n loc.range[1] = actual.range[1] | 0;\n }\n }\n\n if (loc.first_line <= 0 || loc.last_line < loc.first_line) {\n // plan B: heuristic using preceding and following:\n if (loc.first_line <= 0 && preceding) {\n loc.first_line = preceding.last_line | 0;\n loc.first_column = preceding.last_column | 0;\n\n if (preceding.range) {\n loc.range[0] = actual.range[1] | 0;\n }\n }\n\n if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {\n loc.last_line = following.first_line | 0;\n loc.last_column = following.first_column | 0;\n\n if (following.range) {\n loc.range[1] = actual.range[0] | 0;\n }\n }\n\n // plan C?: see if the 'current' location is useful/sane too:\n if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {\n loc.first_line = current.first_line | 0;\n loc.first_column = current.first_column | 0;\n\n if (current.range) {\n loc.range[0] = current.range[0] | 0;\n }\n }\n\n if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {\n loc.last_line = current.last_line | 0;\n loc.last_column = current.last_column | 0;\n\n if (current.range) {\n loc.range[1] = current.range[1] | 0;\n }\n }\n }\n\n // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter\n // or plan D heuristics to produce a 'sensible' last_line value:\n if (loc.last_line <= 0) {\n if (loc.first_line <= 0) {\n loc.first_line = this.yylloc.first_line;\n loc.last_line = this.yylloc.last_line;\n loc.first_column = this.yylloc.first_column;\n loc.last_column = this.yylloc.last_column;\n loc.range[0] = this.yylloc.range[0];\n loc.range[1] = this.yylloc.range[1];\n } else {\n loc.last_line = this.yylloc.last_line;\n loc.last_column = this.yylloc.last_column;\n loc.range[1] = this.yylloc.range[1];\n }\n }\n\n if (loc.first_line <= 0) {\n loc.first_line = loc.last_line;\n loc.first_column = 0; // loc.last_column; \n loc.range[1] = loc.range[0];\n }\n\n if (loc.first_column < 0) {\n loc.first_column = 0;\n }\n\n if (loc.last_column < 0) {\n loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);\n }\n\n return loc;\n },\n\n /**\n * return a string which displays the lines & columns of input which are referenced \n * by the given location info range, plus a few lines of context.\n * \n * This function pretty-prints the indicated section of the input, with line numbers \n * and everything!\n * \n * This function is very useful to provide highly readable error reports, while\n * the location range may be specified in various flexible ways:\n * \n * - `loc` is the location info object which references the area which should be\n * displayed and 'marked up': these lines & columns of text are marked up by `^`\n * characters below each character in the entire input range.\n * \n * - `context_loc` is the *optional* location info object which instructs this\n * pretty-printer how much *leading* context should be displayed alongside\n * the area referenced by `loc`. This can help provide context for the displayed\n * error, etc.\n * \n * When this location info is not provided, a default context of 3 lines is\n * used.\n * \n * - `context_loc2` is another *optional* location info object, which serves\n * a similar purpose to `context_loc`: it specifies the amount of *trailing*\n * context lines to display in the pretty-print output.\n * \n * When this location info is not provided, a default context of 1 line only is\n * used.\n * \n * Special Notes:\n * \n * - when the `loc`-indicated range is very large (about 5 lines or more), then\n * only the first and last few lines of this block are printed while a\n * `...continued...` message will be printed between them.\n * \n * This serves the purpose of not printing a huge amount of text when the `loc`\n * range happens to be huge: this way a manageable & readable output results\n * for arbitrary large ranges.\n * \n * - this function can display lines of input which whave not yet been lexed.\n * `prettyPrintRange()` can access the entire input!\n * \n * @public\n * @this {RegExpLexer}\n */\n prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {\n loc = this.deriveLocationInfo(loc, context_loc, context_loc2);\n const CONTEXT = 3;\n const CONTEXT_TAIL = 1;\n const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;\n var input = this.matched + this._input;\n var lines = input.split('\\n');\n var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));\n var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));\n var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;\n var ws_prefix = new Array(lineno_display_width).join(' ');\n var nonempty_line_indexes = [];\n\n var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {\n var lno = index + l0;\n var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);\n var rv = lno_pfx + ': ' + line;\n var errpfx = new Array(lineno_display_width + 1).join('^');\n var offset = 2 + 1;\n var len = 0;\n\n if (lno === loc.first_line) {\n offset += loc.first_column;\n\n len = Math.max(\n 2,\n ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1\n );\n } else if (lno === loc.last_line) {\n len = Math.max(2, loc.last_column + 1);\n } else if (lno > loc.first_line && lno < loc.last_line) {\n len = Math.max(2, line.length + 1);\n }\n\n if (len) {\n var lead = new Array(offset).join('.');\n var mark = new Array(len).join('^');\n rv += '\\n' + errpfx + lead + mark;\n\n if (line.trim().length > 0) {\n nonempty_line_indexes.push(index);\n }\n }\n\n rv = rv.replace(/\\t/g, ' ');\n return rv;\n });\n\n // now make sure we don't print an overly large amount of error area: limit it \n // to the top and bottom line count:\n if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {\n var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;\n var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;\n var intermediate_line = new Array(lineno_display_width + 1).join(' ') + ' (...continued...)';\n intermediate_line += '\\n' + new Array(lineno_display_width + 1).join('-') + ' (---------------)';\n rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);\n }\n\n return rv.join('\\n');\n },\n\n /**\n * helper function, used to produce a human readable description as a string, given\n * the input `yylloc` location object.\n * \n * Set `display_range_too` to TRUE to include the string character index position(s)\n * in the description if the `yylloc.range` is available.\n * \n * @public\n * @this {RegExpLexer}\n */\n describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {\n var l1 = yylloc.first_line;\n var l2 = yylloc.last_line;\n var c1 = yylloc.first_column;\n var c2 = yylloc.last_column;\n var dl = l2 - l1;\n var dc = c2 - c1;\n var rv;\n\n if (dl === 0) {\n rv = 'line ' + l1 + ', ';\n\n if (dc <= 1) {\n rv += 'column ' + c1;\n } else {\n rv += 'columns ' + c1 + ' .. ' + c2;\n }\n } else {\n rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';\n }\n\n if (yylloc.range && display_range_too) {\n var r1 = yylloc.range[0];\n var r2 = yylloc.range[1] - 1;\n\n if (r2 <= r1) {\n rv += ' {String Offset: ' + r1 + '}';\n } else {\n rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';\n }\n }\n\n return rv;\n },\n\n /**\n * test the lexed token: return FALSE when not a match, otherwise return token.\n * \n * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`\n * contains the actually matched text string.\n * \n * Also move the input cursor forward and update the match collectors:\n * \n * - `yytext`\n * - `yyleng`\n * - `match`\n * - `matches`\n * - `yylloc`\n * - `offset`\n * \n * @public\n * @this {RegExpLexer}\n */\n test_match: function lexer_test_match(match, indexed_rule) {\n var token, lines, backup, match_str, match_str_len;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.yylloc.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column,\n range: this.yylloc.range.slice(0)\n },\n\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n\n //_signaled_error_token: this._signaled_error_token,\n yy: this.yy,\n\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n }\n\n match_str = match[0];\n match_str_len = match_str.length;\n\n // if (match_str.indexOf('\\n') !== -1 || match_str.indexOf('\\r') !== -1) {\n lines = match_str.split(/(?:\\r\\n?|\\n)/g);\n\n if (lines.length > 1) {\n this.yylineno += lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n this.yylloc.last_column = lines[lines.length - 1].length;\n } else {\n this.yylloc.last_column += match_str_len;\n }\n\n // }\n this.yytext += match_str;\n\n this.match += match_str;\n this.matched += match_str;\n this.matches = match;\n this.yyleng = this.yytext.length;\n this.yylloc.range[1] += match_str_len;\n\n // previous lex rules MAY have invoked the `more()` API rather than producing a token:\n // those rules will already have moved this `offset` forward matching their match lengths,\n // hence we must only add our own match length now:\n this.offset += match_str_len;\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match_str_len);\n\n // calling this method:\n //\n // function lexer__performAction(yy, yyrulenumber, YY_START) {...}\n token = this.performAction.call(\n this,\n this.yy,\n indexed_rule,\n this.conditionStack[this.conditionStack.length - 1] /* = YY_START */\n );\n\n // otherwise, when the action codes are all simple return token statements:\n //token = this.simpleCaseActionClusters[indexed_rule];\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n this.__currentRuleSet__ = null;\n return false; // rule action called reject() implying the next rule should be tested instead. \n } else if (this._signaled_error_token) {\n // produce one 'error' token as `.parseError()` in `reject()`\n // did not guarantee a failure signal by throwing an exception!\n token = this._signaled_error_token;\n\n this._signaled_error_token = false;\n return token;\n }\n\n return false;\n },\n\n /**\n * return next match in input\n * \n * @public\n * @this {RegExpLexer}\n */\n next: function lexer_next() {\n if (this.done) {\n this.clear();\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.clear();\n }\n\n var spec = this.__currentRuleSet__;\n\n if (!spec) {\n // Update the ruleset cache as we apparently encountered a state change or just started lexing.\n // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will\n // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps\n // speed up those activities a tiny bit.\n spec = this.__currentRuleSet__ = this._currentRules();\n\n // Check whether a *sane* condition has been pushed before: this makes the lexer robust against\n // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19\n if (!spec || !spec.rules) {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name \"' + this.topState() + '\"; this is a fatal error and should be reported to the application programmer team!',\n false\n );\n\n // produce one 'error' token until this situation has been resolved, most probably by parse termination!\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n }\n\n var rule_ids = spec.rules;\n var regexes = spec.__rule_regexes;\n var len = spec.__rule_count;\n\n // Note: the arrays are 1-based, while `len` itself is a valid index,\n // hence the non-standard less-or-equal check in the next loop condition!\n for (var i = 1; i <= len; i++) {\n tempMatch = this._input.match(regexes[i]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rule_ids[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = undefined;\n continue; // rule action called reject() implying a rule MISmatch. \n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rule_ids[index]);\n\n if (token !== false) {\n return token;\n }\n\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n\n if (!this._input) {\n this.done = true;\n this.clear();\n return this.EOF;\n } else {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': Unrecognized text.',\n this.options.lexerErrorsAreRecoverable\n );\n\n var pendingInput = this._input;\n var activeCondition = this.topState();\n var conditionStackDepth = this.conditionStack.length;\n token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n\n if (token === this.ERROR) {\n // we can try to recover from a lexer error that `parseError()` did not 'recover' for us\n // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`\n // has not consumed/modified any pending input or changed state in the error handler:\n if (!this.matches && // and make sure the input has been modified/consumed ...\n pendingInput === this._input && // ...or the lexer state has been modified significantly enough\n // to merit a non-consuming error handling action right now.\n activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {\n this.input();\n }\n }\n\n return token;\n }\n },\n\n /**\n * return next match that has a token\n * \n * @public\n * @this {RegExpLexer}\n */\n lex: function lexer_lex() {\n var r;\n\n // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:\n if (typeof this.pre_lex === 'function') {\n r = this.pre_lex.call(this, 0);\n }\n\n if (typeof this.options.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.pre_lex.call(this, r) || r;\n }\n\n if (this.yy && typeof this.yy.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.pre_lex.call(this, r) || r;\n }\n\n while (!r) {\n r = this.next();\n }\n\n if (this.yy && typeof this.yy.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.post_lex.call(this, r) || r;\n }\n\n if (typeof this.options.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.post_lex.call(this, r) || r;\n }\n\n if (typeof this.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.post_lex.call(this, r) || r;\n }\n\n return r;\n },\n\n /**\n * return next match that has a token. Identical to the `lex()` API but does not invoke any of the \n * `pre_lex()` nor any of the `post_lex()` callbacks.\n * \n * @public\n * @this {RegExpLexer}\n */\n fastLex: function lexer_fastLex() {\n var r;\n\n while (!r) {\n r = this.next();\n }\n\n return r;\n },\n\n /**\n * return info about the lexer state that can help a parser or other lexer API user to use the\n * most efficient means available. This API is provided to aid run-time performance for larger\n * systems which employ this lexer.\n * \n * @public\n * @this {RegExpLexer}\n */\n canIUse: function lexer_canIUse() {\n var rv = {\n fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'\n };\n\n return rv;\n },\n\n /**\n * backwards compatible alias for `pushState()`;\n * the latter is symmetrical with `popState()` and we advise to use\n * those APIs in any modern lexer code, rather than `begin()`.\n * \n * @public\n * @this {RegExpLexer}\n */\n begin: function lexer_begin(condition) {\n return this.pushState(condition);\n },\n\n /**\n * activates a new lexer condition state (pushes the new lexer\n * condition state onto the condition stack)\n * \n * @public\n * @this {RegExpLexer}\n */\n pushState: function lexer_pushState(condition) {\n this.conditionStack.push(condition);\n this.__currentRuleSet__ = null;\n return this;\n },\n\n /**\n * pop the previously active lexer condition state off the condition\n * stack\n * \n * @public\n * @this {RegExpLexer}\n */\n popState: function lexer_popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n this.__currentRuleSet__ = null;\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n /**\n * return the currently active lexer condition state; when an index\n * argument is provided it produces the N-th previous condition state,\n * if available\n * \n * @public\n * @this {RegExpLexer}\n */\n topState: function lexer_topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n\n /**\n * (internal) determine the lexer rule set which is active for the\n * currently active lexer condition state\n * \n * @public\n * @this {RegExpLexer}\n */\n _currentRules: function lexer__currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]];\n } else {\n return this.conditions['INITIAL'];\n }\n },\n\n /**\n * return the number of states currently on the stack\n * \n * @public\n * @this {RegExpLexer}\n */\n stateStackSize: function lexer_stateStackSize() {\n return this.conditionStack.length;\n },\n\n options: {\n trackPosition: true\n },\n\n JisonLexerError: JisonLexerError,\n\n performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {\n var yy_ = this;\n var YYSTATE = YY_START;\n\n switch (yyrulenumber) {\n case 1:\n /*! Conditions:: INITIAL */\n /*! Rule:: \\s+ */\n /* skip whitespace */\n break;\n\n default:\n return this.simpleCaseActionClusters[yyrulenumber];\n }\n },\n\n simpleCaseActionClusters: {\n /*! Conditions:: INITIAL */\n /*! Rule:: (--[0-9a-z-A-Z-]*) */\n 0: 13,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\* */\n 2: 5,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\/ */\n 3: 6,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\+ */\n 4: 3,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: - */\n 5: 4,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)px\\b */\n 6: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)cm\\b */\n 7: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)mm\\b */\n 8: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)in\\b */\n 9: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pt\\b */\n 10: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pc\\b */\n 11: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)deg\\b */\n 12: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)grad\\b */\n 13: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rad\\b */\n 14: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)turn\\b */\n 15: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)s\\b */\n 16: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ms\\b */\n 17: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)Hz\\b */\n 18: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)kHz\\b */\n 19: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpi\\b */\n 20: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpcm\\b */\n 21: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dppx\\b */\n 22: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)em\\b */\n 23: 20,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ex\\b */\n 24: 21,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ch\\b */\n 25: 22,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rem\\b */\n 26: 23,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vw\\b */\n 27: 25,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vh\\b */\n 28: 24,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmin\\b */\n 29: 26,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmax\\b */\n 30: 27,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)% */\n 31: 28,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)\\b */\n 32: 11,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (calc) */\n 33: 9,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (var) */\n 34: 12,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([a-z]+) */\n 35: 10,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\( */\n 36: 7,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\) */\n 37: 8,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: , */\n 38: 14,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: $ */\n 39: 1\n },\n\n rules: [\n /* 0: */ /^(?:(--[\\d\\-A-Za-z]*))/,\n /* 1: */ /^(?:\\s+)/,\n /* 2: */ /^(?:\\*)/,\n /* 3: */ /^(?:\\/)/,\n /* 4: */ /^(?:\\+)/,\n /* 5: */ /^(?:-)/,\n /* 6: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)px\\b)/,\n /* 7: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)cm\\b)/,\n /* 8: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)mm\\b)/,\n /* 9: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)in\\b)/,\n /* 10: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pt\\b)/,\n /* 11: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pc\\b)/,\n /* 12: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)deg\\b)/,\n /* 13: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)grad\\b)/,\n /* 14: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rad\\b)/,\n /* 15: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)turn\\b)/,\n /* 16: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)s\\b)/,\n /* 17: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ms\\b)/,\n /* 18: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)Hz\\b)/,\n /* 19: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)kHz\\b)/,\n /* 20: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpi\\b)/,\n /* 21: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpcm\\b)/,\n /* 22: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dppx\\b)/,\n /* 23: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)em\\b)/,\n /* 24: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ex\\b)/,\n /* 25: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ch\\b)/,\n /* 26: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rem\\b)/,\n /* 27: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vw\\b)/,\n /* 28: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vh\\b)/,\n /* 29: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmin\\b)/,\n /* 30: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmax\\b)/,\n /* 31: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)%)/,\n /* 32: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)\\b)/,\n /* 33: */ /^(?:(calc))/,\n /* 34: */ /^(?:(var))/,\n /* 35: */ /^(?:([a-z]+))/,\n /* 36: */ /^(?:\\()/,\n /* 37: */ /^(?:\\))/,\n /* 38: */ /^(?:,)/,\n /* 39: */ /^(?:$)/\n ],\n\n conditions: {\n 'INITIAL': {\n rules: [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39\n ],\n\n inclusive: true\n }\n }\n };\n\n return lexer;\n}();\nparser.lexer = lexer;\n\n\n\nfunction Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;\n\nreturn new Parser();\n})();\n\n \n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n \n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cssUnitConverter = require('css-unit-converter');\n\nvar _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertNodes(left, right, precision) {\n switch (left.type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n return convertAbsoluteLength(left, right, precision);\n default:\n return { left: left, right: right };\n }\n}\n\nfunction convertAbsoluteLength(left, right, precision) {\n if (right.type === left.type) {\n right = {\n type: left.type,\n value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),\n unit: left.unit\n };\n }\n return { left: left, right: right };\n}\n\nexports.default = convertNodes;\nmodule.exports = exports['default'];","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n \r\n var converted = conversions[targetUnit][sourceUnit] * value;\r\n \r\n if (precision !== false) {\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round(converted * precision) / precision;\r\n }\r\n \r\n return converted;\r\n};\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (calc, node, precision) {\n var str = stringify(node, precision);\n\n if (node.type === \"MathExpression\") {\n // if calc expression couldn't be resolved to a single value, re-wrap it as\n // a calc()\n str = calc + \"(\" + str + \")\";\n }\n return str;\n};\n\nvar _reducer = require(\"./reducer\");\n\nvar order = {\n \"*\": 0,\n \"/\": 0,\n \"+\": 1,\n \"-\": 1\n};\n\nfunction round(value, prec) {\n if (prec !== false) {\n var precision = Math.pow(10, prec);\n return Math.round(value * precision) / precision;\n }\n return value;\n}\n\nfunction stringify(node, prec) {\n switch (node.type) {\n case \"MathExpression\":\n {\n var left = node.left,\n right = node.right,\n op = node.operator;\n\n var str = \"\";\n\n if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += \"(\" + stringify(left, prec) + \")\";else str += stringify(left, prec);\n\n str += \" \" + node.operator + \" \";\n\n if (right.type === 'MathExpression' && order[op] < order[right.operator]) {\n str += \"(\" + stringify(right, prec) + \")\";\n } else if (right.type === 'MathExpression' && op === \"-\" && [\"+\", \"-\"].includes(right.operator)) {\n // fix #52 : a-(b+c) = a-b-c\n right.operator = (0, _reducer.flip)(right.operator);\n str += stringify(right, prec);\n } else {\n str += stringify(right, prec);\n }\n\n return str;\n }\n case \"Value\":\n return round(node.value, prec);\n case 'CssVariable':\n if (node.fallback) {\n return \"var(\" + node.value + \", \" + stringify(node.fallback, prec, true) + \")\";\n }\n return \"var(\" + node.value + \")\";\n case 'Calc':\n if (node.prefix) {\n return \"-\" + node.prefix + \"-calc(\" + stringify(node.value, prec) + \")\";\n }\n return \"calc(\" + stringify(node.value, prec) + \")\";\n default:\n return round(node.value, prec) + node.unit;\n }\n}\n\nmodule.exports = exports[\"default\"];","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `<ReplaceTransition>` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * <ReplaceTransition in>\n * <Fade><div>I appear first</div></Fade>\n * <Fade><div>I replace the above</div></Fade>\n * </ReplaceTransition>\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\nimport { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, useTheme as a, ThemeProvider as b, createEmotionProps as c, withTheme as d, hasOwnProperty as h, useInsertionEffectMaybe as u, withEmotionCache as w };\n","import * as React from 'react';\nimport { createElement, useLayoutEffect, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, u as useInsertionEffectMaybe } from './emotion-element-cbed451f.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, a as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-cbed451f.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.8.2\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/babel-plugin\": \"^11.7.1\",\n\t\t\"@emotion/cache\": \"^11.7.1\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/utils\": \"^1.1.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.7.1\",\n\t\t\"@emotion/css-prettifier\": \"1.0.1\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.8.1\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^4.2.1\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useLayoutEffect;\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffect(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectMaybe(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, namespaces.join()]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","/**\n * @fileOverview Line Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Line } from '../cartesian/Line';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var LineChart = generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n /**\n * Constructor of a message for `reason` at `place` from `origin`.\n * When an error is passed in as `reason`, copies the `stack`.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n */\n constructor(reason, place, origin) {\n /** @type {[string|null, string|null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n position.start = place\n }\n }\n\n // Fields from `Error`\n this.name = stringifyPosition(place) || '1:1'\n this.message = typeof reason === 'object' ? reason.message : reason\n this.stack = typeof reason === 'object' ? reason.stack : ''\n\n /**\n * Reason for message.\n * @type {string}\n */\n this.reason = this.message\n /**\n * If true, marks associated file as no longer processable.\n * @type {boolean?}\n */\n // eslint-disable-next-line no-unused-expressions\n this.fatal\n /**\n * Starting line of error.\n * @type {number?}\n */\n this.line = position.start.line\n /**\n * Starting column of error.\n * @type {number?}\n */\n this.column = position.start.column\n /**\n * Namespace of warning.\n * @type {string?}\n */\n this.source = parts[0]\n /**\n * Category of message.\n * @type {string?}\n */\n this.ruleId = parts[1]\n /**\n * Full range information, when available.\n * Has start and end properties, both set to an object with line and column, set to number?.\n * @type {Position?}\n */\n this.position = position\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /* eslint-disable no-unused-expressions */\n /**\n * You can use this to specify the source value that’s being reported, which\n * is deemed incorrect.\n * @type {string?}\n */\n this.actual\n /**\n * You can use this to suggest values that should be used instead of\n * `actual`, one or more values that are deemed as acceptable.\n * @type {Array<string>?}\n */\n this.expected\n /**\n * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n * @type {string?}\n */\n this.file\n /**\n * You may add a url property with a link to documentation for the message.\n * @type {string?}\n */\n this.url\n /**\n * You may add a note property with a long form description of the message (supported by vfile-reporter).\n * @type {string?}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// 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, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\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\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * @param {Array<string>} segments\n * @returns {string}\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string|undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * @param {boolean} allowAboveRoot\n * @returns {string}\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number|undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * @param {string} path\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileURLOrPath) {\n return (\n fileURLOrPath !== null &&\n typeof fileURLOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileURLOrPath.href &&\n // @ts-expect-error: indexable.\n fileURLOrPath.origin\n )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string|URL} path\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * @param {URL} url\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {Record<string, unknown> & {type: string, position?: Position|undefined}} NodeLike\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('..').VFileData} VFileData\n * @typedef {import('..').VFileValue} VFileValue\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n * This is a copy of the typing from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {VFileValue|VFileOptions|VFile|URL} VFileCompatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {VFileValue} [value]\n * @property {string} [cwd]\n * @property {Array<string>} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {VFileData} [data]\n *\n * @typedef Map\n * Raw source map, see:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * @property {Array<string>} sources\n * @property {Array<string>} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array<string>|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} VFileOptions\n * Configuration: a bunch of keys that will be shallow copied over to the new\n * file.\n *\n * @typedef {Record<string, unknown>} VFileReporterSettings\n * @typedef {<T = VFileReporterSettings>(files: Array<VFile>, options: T) => string} VFileReporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * If `options` is `string` or `Buffer`, treats it as `{value: options}`.\n * If `options` is a `VFile`, shallow copies its data over to the new file.\n * All other given fields are set on the newly created `VFile`.\n *\n * Path related properties are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * It’s not possible to set either `dirname` or `extname` without setting\n * either `history`, `path`, `basename`, or `stem` as well.\n *\n * @param {VFileCompatible} [value]\n */\n constructor(value) {\n /** @type {VFileOptions} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n // @ts-expect-error Looks like a buffer.\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n // @ts-expect-error Looks like file or options.\n options = value\n }\n\n /**\n * Place to store custom information.\n * It’s OK to store custom data directly on the file, moving it to `data`\n * gives a little more privacy.\n * @type {VFileData}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of file paths the file moved between.\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * Base of `path`.\n * Defaults to `process.cwd()` (`/` in browsers).\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n * @type {VFileValue}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n * This is used by vfile reporters.\n * @type {boolean}\n */\n this.stored\n\n /**\n * Sometimes files have a non-string representation.\n * This can be stored in the `result` field.\n * One example is when turning markdown into React nodes.\n * This is used by unified to store non-string results.\n * @type {unknown}\n */\n this.result\n\n /**\n * Sometimes files have a source map associated with them.\n * This can be stored in the `map` field.\n * This should be a `RawSourceMap` type from the `source-map` module.\n * @type {Map|undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined) {\n // @ts-expect-error: TS is confused by the different types for `history`.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) this[prop] = options[prop]\n }\n }\n\n /**\n * Access full path (`~/index.min.js`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set full path (`~/index.min.js`).\n * Cannot be nullified.\n *\n * @param {string|URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Access parent path (`~`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set parent path (`~`).\n * Cannot be set if there's no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Access basename (including extname) (`index.min.js`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (`index.min.js`).\n * Cannot contain path separators.\n * Cannot be nullified either (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Access extname (including dot) (`.js`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set extname (including dot) (`.js`).\n * Cannot be set if there's no `path` yet and cannot contain path separators.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Access stem (w/o extname) (`index.min`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set stem (w/o extname) (`index.min`).\n * Cannot be nullified, and cannot contain path separators.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding} [encoding='utf8'] If `file.value` is a buffer, `encoding` is used to serialize buffers.\n * @returns {string}\n */\n toString(encoding) {\n return (this.value || '').toString(encoding)\n }\n\n /**\n * Create a message and associates it w/ the file.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {VFileMessage}\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Info: create a message, associate it with the file, and mark the fatality\n * as `null`.\n * Calls `message()` internally.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {VFileMessage}\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Fail: create a message, associate it with the file, mark the fatality as\n * `true`.\n * Note: fatal errors mean a file is no longer processable.\n * Calls `message()` internally.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {never}\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string|undefined} path\n * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback\n * @typedef {(...input: Array<any>) => any} Middleware\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the node’s plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n var {includeImageAlt = true} = options || {}\n return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n return (\n (node &&\n typeof node === 'object' &&\n // @ts-ignore looks like a literal.\n (node.value ||\n // @ts-ignore looks like an image.\n (includeImageAlt ? node.alt : '') ||\n // @ts-ignore looks like a parent.\n ('children' in node && all(node.children, includeImageAlt)) ||\n (Array.isArray(node) && all(node, includeImageAlt)))) ||\n ''\n )\n}\n\n/**\n * @param {Array.<unknown>} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array.<string>} */\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record<string, unknown>} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {StackItem[]} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record<string, number>} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_index'|'_bufferIndex'>} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n\n const columnStart = {}\n /** @type {Construct[]} */\n\n const resolveAllConstructs = []\n /** @type {Chunk[]} */\n\n let chunks = []\n /** @type {Token[]} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record<string, unknown>} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Construct[]|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Construct[]} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Construct[]} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Chunk[]} chunks\n * @param {Pick<Token, 'start'|'end'>} token\n * @returns {Chunk[]}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Chunk[]} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Chunk[]} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {string[]} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record<string, unknown> & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable<Code>} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.29/#html-blocks>.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.29/#html-blocks>.\n *\n * Note that `textarea` is not available in `CommonMark@0.29` but has been\n * merged to the primary branch and is slated to be released in the next release\n * of CommonMark.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n /** @type {State} */\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","/**\n * Map of named character references.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntities = {\n AEli: 'Æ',\n AElig: 'Æ',\n AM: '&',\n AMP: '&',\n Aacut: 'Á',\n Aacute: 'Á',\n Abreve: 'Ă',\n Acir: 'Â',\n Acirc: 'Â',\n Acy: 'А',\n Afr: '𝔄',\n Agrav: 'À',\n Agrave: 'À',\n Alpha: 'Α',\n Amacr: 'Ā',\n And: '⩓',\n Aogon: 'Ą',\n Aopf: '𝔸',\n ApplyFunction: '⁡',\n Arin: 'Å',\n Aring: 'Å',\n Ascr: '𝒜',\n Assign: '≔',\n Atild: 'Ã',\n Atilde: 'Ã',\n Aum: 'Ä',\n Auml: 'Ä',\n Backslash: '∖',\n Barv: '⫧',\n Barwed: '⌆',\n Bcy: 'Б',\n Because: '∵',\n Bernoullis: 'ℬ',\n Beta: 'Β',\n Bfr: '𝔅',\n Bopf: '𝔹',\n Breve: '˘',\n Bscr: 'ℬ',\n Bumpeq: '≎',\n CHcy: 'Ч',\n COP: '©',\n COPY: '©',\n Cacute: 'Ć',\n Cap: '⋒',\n CapitalDifferentialD: 'ⅅ',\n Cayleys: 'ℭ',\n Ccaron: 'Č',\n Ccedi: 'Ç',\n Ccedil: 'Ç',\n Ccirc: 'Ĉ',\n Cconint: '∰',\n Cdot: 'Ċ',\n Cedilla: '¸',\n CenterDot: '·',\n Cfr: 'ℭ',\n Chi: 'Χ',\n CircleDot: '⊙',\n CircleMinus: '⊖',\n CirclePlus: '⊕',\n CircleTimes: '⊗',\n ClockwiseContourIntegral: '∲',\n CloseCurlyDoubleQuote: '”',\n CloseCurlyQuote: '’',\n Colon: '∷',\n Colone: '⩴',\n Congruent: '≡',\n Conint: '∯',\n ContourIntegral: '∮',\n Copf: 'ℂ',\n Coproduct: '∐',\n CounterClockwiseContourIntegral: '∳',\n Cross: '⨯',\n Cscr: '𝒞',\n Cup: '⋓',\n CupCap: '≍',\n DD: 'ⅅ',\n DDotrahd: '⤑',\n DJcy: 'Ђ',\n DScy: 'Ѕ',\n DZcy: 'Џ',\n Dagger: '‡',\n Darr: '↡',\n Dashv: '⫤',\n Dcaron: 'Ď',\n Dcy: 'Д',\n Del: '∇',\n Delta: 'Δ',\n Dfr: '𝔇',\n DiacriticalAcute: '´',\n DiacriticalDot: '˙',\n DiacriticalDoubleAcute: '˝',\n DiacriticalGrave: '`',\n DiacriticalTilde: '˜',\n Diamond: '⋄',\n DifferentialD: 'ⅆ',\n Dopf: '𝔻',\n Dot: '¨',\n DotDot: '⃜',\n DotEqual: '≐',\n DoubleContourIntegral: '∯',\n DoubleDot: '¨',\n DoubleDownArrow: '⇓',\n DoubleLeftArrow: '⇐',\n DoubleLeftRightArrow: '⇔',\n DoubleLeftTee: '⫤',\n DoubleLongLeftArrow: '⟸',\n DoubleLongLeftRightArrow: '⟺',\n DoubleLongRightArrow: '⟹',\n DoubleRightArrow: '⇒',\n DoubleRightTee: '⊨',\n DoubleUpArrow: '⇑',\n DoubleUpDownArrow: '⇕',\n DoubleVerticalBar: '∥',\n DownArrow: '↓',\n DownArrowBar: '⤓',\n DownArrowUpArrow: '⇵',\n DownBreve: '̑',\n DownLeftRightVector: '⥐',\n DownLeftTeeVector: '⥞',\n DownLeftVector: '↽',\n DownLeftVectorBar: '⥖',\n DownRightTeeVector: '⥟',\n DownRightVector: '⇁',\n DownRightVectorBar: '⥗',\n DownTee: '⊤',\n DownTeeArrow: '↧',\n Downarrow: '⇓',\n Dscr: '𝒟',\n Dstrok: 'Đ',\n ENG: 'Ŋ',\n ET: 'Ð',\n ETH: 'Ð',\n Eacut: 'É',\n Eacute: 'É',\n Ecaron: 'Ě',\n Ecir: 'Ê',\n Ecirc: 'Ê',\n Ecy: 'Э',\n Edot: 'Ė',\n Efr: '𝔈',\n Egrav: 'È',\n Egrave: 'È',\n Element: '∈',\n Emacr: 'Ē',\n EmptySmallSquare: '◻',\n EmptyVerySmallSquare: '▫',\n Eogon: 'Ę',\n Eopf: '𝔼',\n Epsilon: 'Ε',\n Equal: '⩵',\n EqualTilde: '≂',\n Equilibrium: '⇌',\n Escr: 'ℰ',\n Esim: '⩳',\n Eta: 'Η',\n Eum: 'Ë',\n Euml: 'Ë',\n Exists: '∃',\n ExponentialE: 'ⅇ',\n Fcy: 'Ф',\n Ffr: '𝔉',\n FilledSmallSquare: '◼',\n FilledVerySmallSquare: '▪',\n Fopf: '𝔽',\n ForAll: '∀',\n Fouriertrf: 'ℱ',\n Fscr: 'ℱ',\n GJcy: 'Ѓ',\n G: '>',\n GT: '>',\n Gamma: 'Γ',\n Gammad: 'Ϝ',\n Gbreve: 'Ğ',\n Gcedil: 'Ģ',\n Gcirc: 'Ĝ',\n Gcy: 'Г',\n Gdot: 'Ġ',\n Gfr: '𝔊',\n Gg: '⋙',\n Gopf: '𝔾',\n GreaterEqual: '≥',\n GreaterEqualLess: '⋛',\n GreaterFullEqual: '≧',\n GreaterGreater: '⪢',\n GreaterLess: '≷',\n GreaterSlantEqual: '⩾',\n GreaterTilde: '≳',\n Gscr: '𝒢',\n Gt: '≫',\n HARDcy: 'Ъ',\n Hacek: 'ˇ',\n Hat: '^',\n Hcirc: 'Ĥ',\n Hfr: 'ℌ',\n HilbertSpace: 'ℋ',\n Hopf: 'ℍ',\n HorizontalLine: '─',\n Hscr: 'ℋ',\n Hstrok: 'Ħ',\n HumpDownHump: '≎',\n HumpEqual: '≏',\n IEcy: 'Е',\n IJlig: 'IJ',\n IOcy: 'Ё',\n Iacut: 'Í',\n Iacute: 'Í',\n Icir: 'Î',\n Icirc: 'Î',\n Icy: 'И',\n Idot: 'İ',\n Ifr: 'ℑ',\n Igrav: 'Ì',\n Igrave: 'Ì',\n Im: 'ℑ',\n Imacr: 'Ī',\n ImaginaryI: 'ⅈ',\n Implies: '⇒',\n Int: '∬',\n Integral: '∫',\n Intersection: '⋂',\n InvisibleComma: '⁣',\n InvisibleTimes: '⁢',\n Iogon: 'Į',\n Iopf: '𝕀',\n Iota: 'Ι',\n Iscr: 'ℐ',\n Itilde: 'Ĩ',\n Iukcy: 'І',\n Ium: 'Ï',\n Iuml: 'Ï',\n Jcirc: 'Ĵ',\n Jcy: 'Й',\n Jfr: '𝔍',\n Jopf: '𝕁',\n Jscr: '𝒥',\n Jsercy: 'Ј',\n Jukcy: 'Є',\n KHcy: 'Х',\n KJcy: 'Ќ',\n Kappa: 'Κ',\n Kcedil: 'Ķ',\n Kcy: 'К',\n Kfr: '𝔎',\n Kopf: '𝕂',\n Kscr: '𝒦',\n LJcy: 'Љ',\n L: '<',\n LT: '<',\n Lacute: 'Ĺ',\n Lambda: 'Λ',\n Lang: '⟪',\n Laplacetrf: 'ℒ',\n Larr: '↞',\n Lcaron: 'Ľ',\n Lcedil: 'Ļ',\n Lcy: 'Л',\n LeftAngleBracket: '⟨',\n LeftArrow: '←',\n LeftArrowBar: '⇤',\n LeftArrowRightArrow: '⇆',\n LeftCeiling: '⌈',\n LeftDoubleBracket: '⟦',\n LeftDownTeeVector: '⥡',\n LeftDownVector: '⇃',\n LeftDownVectorBar: '⥙',\n LeftFloor: '⌊',\n LeftRightArrow: '↔',\n LeftRightVector: '⥎',\n LeftTee: '⊣',\n LeftTeeArrow: '↤',\n LeftTeeVector: '⥚',\n LeftTriangle: '⊲',\n LeftTriangleBar: '⧏',\n LeftTriangleEqual: '⊴',\n LeftUpDownVector: '⥑',\n LeftUpTeeVector: '⥠',\n LeftUpVector: '↿',\n LeftUpVectorBar: '⥘',\n LeftVector: '↼',\n LeftVectorBar: '⥒',\n Leftarrow: '⇐',\n Leftrightarrow: '⇔',\n LessEqualGreater: '⋚',\n LessFullEqual: '≦',\n LessGreater: '≶',\n LessLess: '⪡',\n LessSlantEqual: '⩽',\n LessTilde: '≲',\n Lfr: '𝔏',\n Ll: '⋘',\n Lleftarrow: '⇚',\n Lmidot: 'Ŀ',\n LongLeftArrow: '⟵',\n LongLeftRightArrow: '⟷',\n LongRightArrow: '⟶',\n Longleftarrow: '⟸',\n Longleftrightarrow: '⟺',\n Longrightarrow: '⟹',\n Lopf: '𝕃',\n LowerLeftArrow: '↙',\n LowerRightArrow: '↘',\n Lscr: 'ℒ',\n Lsh: '↰',\n Lstrok: 'Ł',\n Lt: '≪',\n Map: '⤅',\n Mcy: 'М',\n MediumSpace: ' ',\n Mellintrf: 'ℳ',\n Mfr: '𝔐',\n MinusPlus: '∓',\n Mopf: '𝕄',\n Mscr: 'ℳ',\n Mu: 'Μ',\n NJcy: 'Њ',\n Nacute: 'Ń',\n Ncaron: 'Ň',\n Ncedil: 'Ņ',\n Ncy: 'Н',\n NegativeMediumSpace: '​',\n NegativeThickSpace: '​',\n NegativeThinSpace: '​',\n NegativeVeryThinSpace: '​',\n NestedGreaterGreater: '≫',\n NestedLessLess: '≪',\n NewLine: '\\n',\n Nfr: '𝔑',\n NoBreak: '⁠',\n NonBreakingSpace: ' ',\n Nopf: 'ℕ',\n Not: '⫬',\n NotCongruent: '≢',\n NotCupCap: '≭',\n NotDoubleVerticalBar: '∦',\n NotElement: '∉',\n NotEqual: '≠',\n NotEqualTilde: '≂̸',\n NotExists: '∄',\n NotGreater: '≯',\n NotGreaterEqual: '≱',\n NotGreaterFullEqual: '≧̸',\n NotGreaterGreater: '≫̸',\n NotGreaterLess: '≹',\n NotGreaterSlantEqual: '⩾̸',\n NotGreaterTilde: '≵',\n NotHumpDownHump: '≎̸',\n NotHumpEqual: '≏̸',\n NotLeftTriangle: '⋪',\n NotLeftTriangleBar: '⧏̸',\n NotLeftTriangleEqual: '⋬',\n NotLess: '≮',\n NotLessEqual: '≰',\n NotLessGreater: '≸',\n NotLessLess: '≪̸',\n NotLessSlantEqual: '⩽̸',\n NotLessTilde: '≴',\n NotNestedGreaterGreater: '⪢̸',\n NotNestedLessLess: '⪡̸',\n NotPrecedes: '⊀',\n NotPrecedesEqual: '⪯̸',\n NotPrecedesSlantEqual: '⋠',\n NotReverseElement: '∌',\n NotRightTriangle: '⋫',\n NotRightTriangleBar: '⧐̸',\n NotRightTriangleEqual: '⋭',\n NotSquareSubset: '⊏̸',\n NotSquareSubsetEqual: '⋢',\n NotSquareSuperset: '⊐̸',\n NotSquareSupersetEqual: '⋣',\n NotSubset: '⊂⃒',\n NotSubsetEqual: '⊈',\n NotSucceeds: '⊁',\n NotSucceedsEqual: '⪰̸',\n NotSucceedsSlantEqual: '⋡',\n NotSucceedsTilde: '≿̸',\n NotSuperset: '⊃⃒',\n NotSupersetEqual: '⊉',\n NotTilde: '≁',\n NotTildeEqual: '≄',\n NotTildeFullEqual: '≇',\n NotTildeTilde: '≉',\n NotVerticalBar: '∤',\n Nscr: '𝒩',\n Ntild: 'Ñ',\n Ntilde: 'Ñ',\n Nu: 'Ν',\n OElig: 'Œ',\n Oacut: 'Ó',\n Oacute: 'Ó',\n Ocir: 'Ô',\n Ocirc: 'Ô',\n Ocy: 'О',\n Odblac: 'Ő',\n Ofr: '𝔒',\n Ograv: 'Ò',\n Ograve: 'Ò',\n Omacr: 'Ō',\n Omega: 'Ω',\n Omicron: 'Ο',\n Oopf: '𝕆',\n OpenCurlyDoubleQuote: '“',\n OpenCurlyQuote: '‘',\n Or: '⩔',\n Oscr: '𝒪',\n Oslas: 'Ø',\n Oslash: 'Ø',\n Otild: 'Õ',\n Otilde: 'Õ',\n Otimes: '⨷',\n Oum: 'Ö',\n Ouml: 'Ö',\n OverBar: '‾',\n OverBrace: '⏞',\n OverBracket: '⎴',\n OverParenthesis: '⏜',\n PartialD: '∂',\n Pcy: 'П',\n Pfr: '𝔓',\n Phi: 'Φ',\n Pi: 'Π',\n PlusMinus: '±',\n Poincareplane: 'ℌ',\n Popf: 'ℙ',\n Pr: '⪻',\n Precedes: '≺',\n PrecedesEqual: '⪯',\n PrecedesSlantEqual: '≼',\n PrecedesTilde: '≾',\n Prime: '″',\n Product: '∏',\n Proportion: '∷',\n Proportional: '∝',\n Pscr: '𝒫',\n Psi: 'Ψ',\n QUO: '\"',\n QUOT: '\"',\n Qfr: '𝔔',\n Qopf: 'ℚ',\n Qscr: '𝒬',\n RBarr: '⤐',\n RE: '®',\n REG: '®',\n Racute: 'Ŕ',\n Rang: '⟫',\n Rarr: '↠',\n Rarrtl: '⤖',\n Rcaron: 'Ř',\n Rcedil: 'Ŗ',\n Rcy: 'Р',\n Re: 'ℜ',\n ReverseElement: '∋',\n ReverseEquilibrium: '⇋',\n ReverseUpEquilibrium: '⥯',\n Rfr: 'ℜ',\n Rho: 'Ρ',\n RightAngleBracket: '⟩',\n RightArrow: '→',\n RightArrowBar: '⇥',\n RightArrowLeftArrow: '⇄',\n RightCeiling: '⌉',\n RightDoubleBracket: '⟧',\n RightDownTeeVector: '⥝',\n RightDownVector: '⇂',\n RightDownVectorBar: '⥕',\n RightFloor: '⌋',\n RightTee: '⊢',\n RightTeeArrow: '↦',\n RightTeeVector: '⥛',\n RightTriangle: '⊳',\n RightTriangleBar: '⧐',\n RightTriangleEqual: '⊵',\n RightUpDownVector: '⥏',\n RightUpTeeVector: '⥜',\n RightUpVector: '↾',\n RightUpVectorBar: '⥔',\n RightVector: '⇀',\n RightVectorBar: '⥓',\n Rightarrow: '⇒',\n Ropf: 'ℝ',\n RoundImplies: '⥰',\n Rrightarrow: '⇛',\n Rscr: 'ℛ',\n Rsh: '↱',\n RuleDelayed: '⧴',\n SHCHcy: 'Щ',\n SHcy: 'Ш',\n SOFTcy: 'Ь',\n Sacute: 'Ś',\n Sc: '⪼',\n Scaron: 'Š',\n Scedil: 'Ş',\n Scirc: 'Ŝ',\n Scy: 'С',\n Sfr: '𝔖',\n ShortDownArrow: '↓',\n ShortLeftArrow: '←',\n ShortRightArrow: '→',\n ShortUpArrow: '↑',\n Sigma: 'Σ',\n SmallCircle: '∘',\n Sopf: '𝕊',\n Sqrt: '√',\n Square: '□',\n SquareIntersection: '⊓',\n SquareSubset: '⊏',\n SquareSubsetEqual: '⊑',\n SquareSuperset: '⊐',\n SquareSupersetEqual: '⊒',\n SquareUnion: '⊔',\n Sscr: '𝒮',\n Star: '⋆',\n Sub: '⋐',\n Subset: '⋐',\n SubsetEqual: '⊆',\n Succeeds: '≻',\n SucceedsEqual: '⪰',\n SucceedsSlantEqual: '≽',\n SucceedsTilde: '≿',\n SuchThat: '∋',\n Sum: '∑',\n Sup: '⋑',\n Superset: '⊃',\n SupersetEqual: '⊇',\n Supset: '⋑',\n THOR: 'Þ',\n THORN: 'Þ',\n TRADE: '™',\n TSHcy: 'Ћ',\n TScy: 'Ц',\n Tab: '\\t',\n Tau: 'Τ',\n Tcaron: 'Ť',\n Tcedil: 'Ţ',\n Tcy: 'Т',\n Tfr: '𝔗',\n Therefore: '∴',\n Theta: 'Θ',\n ThickSpace: '  ',\n ThinSpace: ' ',\n Tilde: '∼',\n TildeEqual: '≃',\n TildeFullEqual: '≅',\n TildeTilde: '≈',\n Topf: '𝕋',\n TripleDot: '⃛',\n Tscr: '𝒯',\n Tstrok: 'Ŧ',\n Uacut: 'Ú',\n Uacute: 'Ú',\n Uarr: '↟',\n Uarrocir: '⥉',\n Ubrcy: 'Ў',\n Ubreve: 'Ŭ',\n Ucir: 'Û',\n Ucirc: 'Û',\n Ucy: 'У',\n Udblac: 'Ű',\n Ufr: '𝔘',\n Ugrav: 'Ù',\n Ugrave: 'Ù',\n Umacr: 'Ū',\n UnderBar: '_',\n UnderBrace: '⏟',\n UnderBracket: '⎵',\n UnderParenthesis: '⏝',\n Union: '⋃',\n UnionPlus: '⊎',\n Uogon: 'Ų',\n Uopf: '𝕌',\n UpArrow: '↑',\n UpArrowBar: '⤒',\n UpArrowDownArrow: '⇅',\n UpDownArrow: '↕',\n UpEquilibrium: '⥮',\n UpTee: '⊥',\n UpTeeArrow: '↥',\n Uparrow: '⇑',\n Updownarrow: '⇕',\n UpperLeftArrow: '↖',\n UpperRightArrow: '↗',\n Upsi: 'ϒ',\n Upsilon: 'Υ',\n Uring: 'Ů',\n Uscr: '𝒰',\n Utilde: 'Ũ',\n Uum: 'Ü',\n Uuml: 'Ü',\n VDash: '⊫',\n Vbar: '⫫',\n Vcy: 'В',\n Vdash: '⊩',\n Vdashl: '⫦',\n Vee: '⋁',\n Verbar: '‖',\n Vert: '‖',\n VerticalBar: '∣',\n VerticalLine: '|',\n VerticalSeparator: '❘',\n VerticalTilde: '≀',\n VeryThinSpace: ' ',\n Vfr: '𝔙',\n Vopf: '𝕍',\n Vscr: '𝒱',\n Vvdash: '⊪',\n Wcirc: 'Ŵ',\n Wedge: '⋀',\n Wfr: '𝔚',\n Wopf: '𝕎',\n Wscr: '𝒲',\n Xfr: '𝔛',\n Xi: 'Ξ',\n Xopf: '𝕏',\n Xscr: '𝒳',\n YAcy: 'Я',\n YIcy: 'Ї',\n YUcy: 'Ю',\n Yacut: 'Ý',\n Yacute: 'Ý',\n Ycirc: 'Ŷ',\n Ycy: 'Ы',\n Yfr: '𝔜',\n Yopf: '𝕐',\n Yscr: '𝒴',\n Yuml: 'Ÿ',\n ZHcy: 'Ж',\n Zacute: 'Ź',\n Zcaron: 'Ž',\n Zcy: 'З',\n Zdot: 'Ż',\n ZeroWidthSpace: '​',\n Zeta: 'Ζ',\n Zfr: 'ℨ',\n Zopf: 'ℤ',\n Zscr: '𝒵',\n aacut: 'á',\n aacute: 'á',\n abreve: 'ă',\n ac: '∾',\n acE: '∾̳',\n acd: '∿',\n acir: 'â',\n acirc: 'â',\n acut: '´',\n acute: '´',\n acy: 'а',\n aeli: 'æ',\n aelig: 'æ',\n af: '⁡',\n afr: '𝔞',\n agrav: 'à',\n agrave: 'à',\n alefsym: 'ℵ',\n aleph: 'ℵ',\n alpha: 'α',\n amacr: 'ā',\n amalg: '⨿',\n am: '&',\n amp: '&',\n and: '∧',\n andand: '⩕',\n andd: '⩜',\n andslope: '⩘',\n andv: '⩚',\n ang: '∠',\n ange: '⦤',\n angle: '∠',\n angmsd: '∡',\n angmsdaa: '⦨',\n angmsdab: '⦩',\n angmsdac: '⦪',\n angmsdad: '⦫',\n angmsdae: '⦬',\n angmsdaf: '⦭',\n angmsdag: '⦮',\n angmsdah: '⦯',\n angrt: '∟',\n angrtvb: '⊾',\n angrtvbd: '⦝',\n angsph: '∢',\n angst: 'Å',\n angzarr: '⍼',\n aogon: 'ą',\n aopf: '𝕒',\n ap: '≈',\n apE: '⩰',\n apacir: '⩯',\n ape: '≊',\n apid: '≋',\n apos: \"'\",\n approx: '≈',\n approxeq: '≊',\n arin: 'å',\n aring: 'å',\n ascr: '𝒶',\n ast: '*',\n asymp: '≈',\n asympeq: '≍',\n atild: 'ã',\n atilde: 'ã',\n aum: 'ä',\n auml: 'ä',\n awconint: '∳',\n awint: '⨑',\n bNot: '⫭',\n backcong: '≌',\n backepsilon: '϶',\n backprime: '‵',\n backsim: '∽',\n backsimeq: '⋍',\n barvee: '⊽',\n barwed: '⌅',\n barwedge: '⌅',\n bbrk: '⎵',\n bbrktbrk: '⎶',\n bcong: '≌',\n bcy: 'б',\n bdquo: '„',\n becaus: '∵',\n because: '∵',\n bemptyv: '⦰',\n bepsi: '϶',\n bernou: 'ℬ',\n beta: 'β',\n beth: 'ℶ',\n between: '≬',\n bfr: '𝔟',\n bigcap: '⋂',\n bigcirc: '◯',\n bigcup: '⋃',\n bigodot: '⨀',\n bigoplus: '⨁',\n bigotimes: '⨂',\n bigsqcup: '⨆',\n bigstar: '★',\n bigtriangledown: '▽',\n bigtriangleup: '△',\n biguplus: '⨄',\n bigvee: '⋁',\n bigwedge: '⋀',\n bkarow: '⤍',\n blacklozenge: '⧫',\n blacksquare: '▪',\n blacktriangle: '▴',\n blacktriangledown: '▾',\n blacktriangleleft: '◂',\n blacktriangleright: '▸',\n blank: '␣',\n blk12: '▒',\n blk14: '░',\n blk34: '▓',\n block: '█',\n bne: '=⃥',\n bnequiv: '≡⃥',\n bnot: '⌐',\n bopf: '𝕓',\n bot: '⊥',\n bottom: '⊥',\n bowtie: '⋈',\n boxDL: '╗',\n boxDR: '╔',\n boxDl: '╖',\n boxDr: '╓',\n boxH: '═',\n boxHD: '╦',\n boxHU: '╩',\n boxHd: '╤',\n boxHu: '╧',\n boxUL: '╝',\n boxUR: '╚',\n boxUl: '╜',\n boxUr: '╙',\n boxV: '║',\n boxVH: '╬',\n boxVL: '╣',\n boxVR: '╠',\n boxVh: '╫',\n boxVl: '╢',\n boxVr: '╟',\n boxbox: '⧉',\n boxdL: '╕',\n boxdR: '╒',\n boxdl: '┐',\n boxdr: '┌',\n boxh: '─',\n boxhD: '╥',\n boxhU: '╨',\n boxhd: '┬',\n boxhu: '┴',\n boxminus: '⊟',\n boxplus: '⊞',\n boxtimes: '⊠',\n boxuL: '╛',\n boxuR: '╘',\n boxul: '┘',\n boxur: '└',\n boxv: '│',\n boxvH: '╪',\n boxvL: '╡',\n boxvR: '╞',\n boxvh: '┼',\n boxvl: '┤',\n boxvr: '├',\n bprime: '‵',\n breve: '˘',\n brvba: '¦',\n brvbar: '¦',\n bscr: '𝒷',\n bsemi: '⁏',\n bsim: '∽',\n bsime: '⋍',\n bsol: '\\\\',\n bsolb: '⧅',\n bsolhsub: '⟈',\n bull: '•',\n bullet: '•',\n bump: '≎',\n bumpE: '⪮',\n bumpe: '≏',\n bumpeq: '≏',\n cacute: 'ć',\n cap: '∩',\n capand: '⩄',\n capbrcup: '⩉',\n capcap: '⩋',\n capcup: '⩇',\n capdot: '⩀',\n caps: '∩︀',\n caret: '⁁',\n caron: 'ˇ',\n ccaps: '⩍',\n ccaron: 'č',\n ccedi: 'ç',\n ccedil: 'ç',\n ccirc: 'ĉ',\n ccups: '⩌',\n ccupssm: '⩐',\n cdot: 'ċ',\n cedi: '¸',\n cedil: '¸',\n cemptyv: '⦲',\n cen: '¢',\n cent: '¢',\n centerdot: '·',\n cfr: '𝔠',\n chcy: 'ч',\n check: '✓',\n checkmark: '✓',\n chi: 'χ',\n cir: '○',\n cirE: '⧃',\n circ: 'ˆ',\n circeq: '≗',\n circlearrowleft: '↺',\n circlearrowright: '↻',\n circledR: '®',\n circledS: 'Ⓢ',\n circledast: '⊛',\n circledcirc: '⊚',\n circleddash: '⊝',\n cire: '≗',\n cirfnint: '⨐',\n cirmid: '⫯',\n cirscir: '⧂',\n clubs: '♣',\n clubsuit: '♣',\n colon: ':',\n colone: '≔',\n coloneq: '≔',\n comma: ',',\n commat: '@',\n comp: '∁',\n compfn: '∘',\n complement: '∁',\n complexes: 'ℂ',\n cong: '≅',\n congdot: '⩭',\n conint: '∮',\n copf: '𝕔',\n coprod: '∐',\n cop: '©',\n copy: '©',\n copysr: '℗',\n crarr: '↵',\n cross: '✗',\n cscr: '𝒸',\n csub: '⫏',\n csube: '⫑',\n csup: '⫐',\n csupe: '⫒',\n ctdot: '⋯',\n cudarrl: '⤸',\n cudarrr: '⤵',\n cuepr: '⋞',\n cuesc: '⋟',\n cularr: '↶',\n cularrp: '⤽',\n cup: '∪',\n cupbrcap: '⩈',\n cupcap: '⩆',\n cupcup: '⩊',\n cupdot: '⊍',\n cupor: '⩅',\n cups: '∪︀',\n curarr: '↷',\n curarrm: '⤼',\n curlyeqprec: '⋞',\n curlyeqsucc: '⋟',\n curlyvee: '⋎',\n curlywedge: '⋏',\n curre: '¤',\n curren: '¤',\n curvearrowleft: '↶',\n curvearrowright: '↷',\n cuvee: '⋎',\n cuwed: '⋏',\n cwconint: '∲',\n cwint: '∱',\n cylcty: '⌭',\n dArr: '⇓',\n dHar: '⥥',\n dagger: '†',\n daleth: 'ℸ',\n darr: '↓',\n dash: '‐',\n dashv: '⊣',\n dbkarow: '⤏',\n dblac: '˝',\n dcaron: 'ď',\n dcy: 'д',\n dd: 'ⅆ',\n ddagger: '‡',\n ddarr: '⇊',\n ddotseq: '⩷',\n de: '°',\n deg: '°',\n delta: 'δ',\n demptyv: '⦱',\n dfisht: '⥿',\n dfr: '𝔡',\n dharl: '⇃',\n dharr: '⇂',\n diam: '⋄',\n diamond: '⋄',\n diamondsuit: '♦',\n diams: '♦',\n die: '¨',\n digamma: 'ϝ',\n disin: '⋲',\n div: '÷',\n divid: '÷',\n divide: '÷',\n divideontimes: '⋇',\n divonx: '⋇',\n djcy: 'ђ',\n dlcorn: '⌞',\n dlcrop: '⌍',\n dollar: '$',\n dopf: '𝕕',\n dot: '˙',\n doteq: '≐',\n doteqdot: '≑',\n dotminus: '∸',\n dotplus: '∔',\n dotsquare: '⊡',\n doublebarwedge: '⌆',\n downarrow: '↓',\n downdownarrows: '⇊',\n downharpoonleft: '⇃',\n downharpoonright: '⇂',\n drbkarow: '⤐',\n drcorn: '⌟',\n drcrop: '⌌',\n dscr: '𝒹',\n dscy: 'ѕ',\n dsol: '⧶',\n dstrok: 'đ',\n dtdot: '⋱',\n dtri: '▿',\n dtrif: '▾',\n duarr: '⇵',\n duhar: '⥯',\n dwangle: '⦦',\n dzcy: 'џ',\n dzigrarr: '⟿',\n eDDot: '⩷',\n eDot: '≑',\n eacut: 'é',\n eacute: 'é',\n easter: '⩮',\n ecaron: 'ě',\n ecir: 'ê',\n ecirc: 'ê',\n ecolon: '≕',\n ecy: 'э',\n edot: 'ė',\n ee: 'ⅇ',\n efDot: '≒',\n efr: '𝔢',\n eg: '⪚',\n egrav: 'è',\n egrave: 'è',\n egs: '⪖',\n egsdot: '⪘',\n el: '⪙',\n elinters: '⏧',\n ell: 'ℓ',\n els: '⪕',\n elsdot: '⪗',\n emacr: 'ē',\n empty: '∅',\n emptyset: '∅',\n emptyv: '∅',\n emsp13: ' ',\n emsp14: ' ',\n emsp: ' ',\n eng: 'ŋ',\n ensp: ' ',\n eogon: 'ę',\n eopf: '𝕖',\n epar: '⋕',\n eparsl: '⧣',\n eplus: '⩱',\n epsi: 'ε',\n epsilon: 'ε',\n epsiv: 'ϵ',\n eqcirc: '≖',\n eqcolon: '≕',\n eqsim: '≂',\n eqslantgtr: '⪖',\n eqslantless: '⪕',\n equals: '=',\n equest: '≟',\n equiv: '≡',\n equivDD: '⩸',\n eqvparsl: '⧥',\n erDot: '≓',\n erarr: '⥱',\n escr: 'ℯ',\n esdot: '≐',\n esim: '≂',\n eta: 'η',\n et: 'ð',\n eth: 'ð',\n eum: 'ë',\n euml: 'ë',\n euro: '€',\n excl: '!',\n exist: '∃',\n expectation: 'ℰ',\n exponentiale: 'ⅇ',\n fallingdotseq: '≒',\n fcy: 'ф',\n female: '♀',\n ffilig: 'ffi',\n fflig: 'ff',\n ffllig: 'ffl',\n ffr: '𝔣',\n filig: 'fi',\n fjlig: 'fj',\n flat: '♭',\n fllig: 'fl',\n fltns: '▱',\n fnof: 'ƒ',\n fopf: '𝕗',\n forall: '∀',\n fork: '⋔',\n forkv: '⫙',\n fpartint: '⨍',\n frac1: '¼',\n frac12: '½',\n frac13: '⅓',\n frac14: '¼',\n frac15: '⅕',\n frac16: '⅙',\n frac18: '⅛',\n frac23: '⅔',\n frac25: '⅖',\n frac3: '¾',\n frac34: '¾',\n frac35: '⅗',\n frac38: '⅜',\n frac45: '⅘',\n frac56: '⅚',\n frac58: '⅝',\n frac78: '⅞',\n frasl: '⁄',\n frown: '⌢',\n fscr: '𝒻',\n gE: '≧',\n gEl: '⪌',\n gacute: 'ǵ',\n gamma: 'γ',\n gammad: 'ϝ',\n gap: '⪆',\n gbreve: 'ğ',\n gcirc: 'ĝ',\n gcy: 'г',\n gdot: 'ġ',\n ge: '≥',\n gel: '⋛',\n geq: '≥',\n geqq: '≧',\n geqslant: '⩾',\n ges: '⩾',\n gescc: '⪩',\n gesdot: '⪀',\n gesdoto: '⪂',\n gesdotol: '⪄',\n gesl: '⋛︀',\n gesles: '⪔',\n gfr: '𝔤',\n gg: '≫',\n ggg: '⋙',\n gimel: 'ℷ',\n gjcy: 'ѓ',\n gl: '≷',\n glE: '⪒',\n gla: '⪥',\n glj: '⪤',\n gnE: '≩',\n gnap: '⪊',\n gnapprox: '⪊',\n gne: '⪈',\n gneq: '⪈',\n gneqq: '≩',\n gnsim: '⋧',\n gopf: '𝕘',\n grave: '`',\n gscr: 'ℊ',\n gsim: '≳',\n gsime: '⪎',\n gsiml: '⪐',\n g: '>',\n gt: '>',\n gtcc: '⪧',\n gtcir: '⩺',\n gtdot: '⋗',\n gtlPar: '⦕',\n gtquest: '⩼',\n gtrapprox: '⪆',\n gtrarr: '⥸',\n gtrdot: '⋗',\n gtreqless: '⋛',\n gtreqqless: '⪌',\n gtrless: '≷',\n gtrsim: '≳',\n gvertneqq: '≩︀',\n gvnE: '≩︀',\n hArr: '⇔',\n hairsp: ' ',\n half: '½',\n hamilt: 'ℋ',\n hardcy: 'ъ',\n harr: '↔',\n harrcir: '⥈',\n harrw: '↭',\n hbar: 'ℏ',\n hcirc: 'ĥ',\n hearts: '♥',\n heartsuit: '♥',\n hellip: '…',\n hercon: '⊹',\n hfr: '𝔥',\n hksearow: '⤥',\n hkswarow: '⤦',\n hoarr: '⇿',\n homtht: '∻',\n hookleftarrow: '↩',\n hookrightarrow: '↪',\n hopf: '𝕙',\n horbar: '―',\n hscr: '𝒽',\n hslash: 'ℏ',\n hstrok: 'ħ',\n hybull: '⁃',\n hyphen: '‐',\n iacut: 'í',\n iacute: 'í',\n ic: '⁣',\n icir: 'î',\n icirc: 'î',\n icy: 'и',\n iecy: 'е',\n iexc: '¡',\n iexcl: '¡',\n iff: '⇔',\n ifr: '𝔦',\n igrav: 'ì',\n igrave: 'ì',\n ii: 'ⅈ',\n iiiint: '⨌',\n iiint: '∭',\n iinfin: '⧜',\n iiota: '℩',\n ijlig: 'ij',\n imacr: 'ī',\n image: 'ℑ',\n imagline: 'ℐ',\n imagpart: 'ℑ',\n imath: 'ı',\n imof: '⊷',\n imped: 'Ƶ',\n in: '∈',\n incare: '℅',\n infin: '∞',\n infintie: '⧝',\n inodot: 'ı',\n int: '∫',\n intcal: '⊺',\n integers: 'ℤ',\n intercal: '⊺',\n intlarhk: '⨗',\n intprod: '⨼',\n iocy: 'ё',\n iogon: 'į',\n iopf: '𝕚',\n iota: 'ι',\n iprod: '⨼',\n iques: '¿',\n iquest: '¿',\n iscr: '𝒾',\n isin: '∈',\n isinE: '⋹',\n isindot: '⋵',\n isins: '⋴',\n isinsv: '⋳',\n isinv: '∈',\n it: '⁢',\n itilde: 'ĩ',\n iukcy: 'і',\n ium: 'ï',\n iuml: 'ï',\n jcirc: 'ĵ',\n jcy: 'й',\n jfr: '𝔧',\n jmath: 'ȷ',\n jopf: '𝕛',\n jscr: '𝒿',\n jsercy: 'ј',\n jukcy: 'є',\n kappa: 'κ',\n kappav: 'ϰ',\n kcedil: 'ķ',\n kcy: 'к',\n kfr: '𝔨',\n kgreen: 'ĸ',\n khcy: 'х',\n kjcy: 'ќ',\n kopf: '𝕜',\n kscr: '𝓀',\n lAarr: '⇚',\n lArr: '⇐',\n lAtail: '⤛',\n lBarr: '⤎',\n lE: '≦',\n lEg: '⪋',\n lHar: '⥢',\n lacute: 'ĺ',\n laemptyv: '⦴',\n lagran: 'ℒ',\n lambda: 'λ',\n lang: '⟨',\n langd: '⦑',\n langle: '⟨',\n lap: '⪅',\n laqu: '«',\n laquo: '«',\n larr: '←',\n larrb: '⇤',\n larrbfs: '⤟',\n larrfs: '⤝',\n larrhk: '↩',\n larrlp: '↫',\n larrpl: '⤹',\n larrsim: '⥳',\n larrtl: '↢',\n lat: '⪫',\n latail: '⤙',\n late: '⪭',\n lates: '⪭︀',\n lbarr: '⤌',\n lbbrk: '❲',\n lbrace: '{',\n lbrack: '[',\n lbrke: '⦋',\n lbrksld: '⦏',\n lbrkslu: '⦍',\n lcaron: 'ľ',\n lcedil: 'ļ',\n lceil: '⌈',\n lcub: '{',\n lcy: 'л',\n ldca: '⤶',\n ldquo: '“',\n ldquor: '„',\n ldrdhar: '⥧',\n ldrushar: '⥋',\n ldsh: '↲',\n le: '≤',\n leftarrow: '←',\n leftarrowtail: '↢',\n leftharpoondown: '↽',\n leftharpoonup: '↼',\n leftleftarrows: '⇇',\n leftrightarrow: '↔',\n leftrightarrows: '⇆',\n leftrightharpoons: '⇋',\n leftrightsquigarrow: '↭',\n leftthreetimes: '⋋',\n leg: '⋚',\n leq: '≤',\n leqq: '≦',\n leqslant: '⩽',\n les: '⩽',\n lescc: '⪨',\n lesdot: '⩿',\n lesdoto: '⪁',\n lesdotor: '⪃',\n lesg: '⋚︀',\n lesges: '⪓',\n lessapprox: '⪅',\n lessdot: '⋖',\n lesseqgtr: '⋚',\n lesseqqgtr: '⪋',\n lessgtr: '≶',\n lesssim: '≲',\n lfisht: '⥼',\n lfloor: '⌊',\n lfr: '𝔩',\n lg: '≶',\n lgE: '⪑',\n lhard: '↽',\n lharu: '↼',\n lharul: '⥪',\n lhblk: '▄',\n ljcy: 'љ',\n ll: '≪',\n llarr: '⇇',\n llcorner: '⌞',\n llhard: '⥫',\n lltri: '◺',\n lmidot: 'ŀ',\n lmoust: '⎰',\n lmoustache: '⎰',\n lnE: '≨',\n lnap: '⪉',\n lnapprox: '⪉',\n lne: '⪇',\n lneq: '⪇',\n lneqq: '≨',\n lnsim: '⋦',\n loang: '⟬',\n loarr: '⇽',\n lobrk: '⟦',\n longleftarrow: '⟵',\n longleftrightarrow: '⟷',\n longmapsto: '⟼',\n longrightarrow: '⟶',\n looparrowleft: '↫',\n looparrowright: '↬',\n lopar: '⦅',\n lopf: '𝕝',\n loplus: '⨭',\n lotimes: '⨴',\n lowast: '∗',\n lowbar: '_',\n loz: '◊',\n lozenge: '◊',\n lozf: '⧫',\n lpar: '(',\n lparlt: '⦓',\n lrarr: '⇆',\n lrcorner: '⌟',\n lrhar: '⇋',\n lrhard: '⥭',\n lrm: '‎',\n lrtri: '⊿',\n lsaquo: '‹',\n lscr: '𝓁',\n lsh: '↰',\n lsim: '≲',\n lsime: '⪍',\n lsimg: '⪏',\n lsqb: '[',\n lsquo: '‘',\n lsquor: '‚',\n lstrok: 'ł',\n l: '<',\n lt: '<',\n ltcc: '⪦',\n ltcir: '⩹',\n ltdot: '⋖',\n lthree: '⋋',\n ltimes: '⋉',\n ltlarr: '⥶',\n ltquest: '⩻',\n ltrPar: '⦖',\n ltri: '◃',\n ltrie: '⊴',\n ltrif: '◂',\n lurdshar: '⥊',\n luruhar: '⥦',\n lvertneqq: '≨︀',\n lvnE: '≨︀',\n mDDot: '∺',\n mac: '¯',\n macr: '¯',\n male: '♂',\n malt: '✠',\n maltese: '✠',\n map: '↦',\n mapsto: '↦',\n mapstodown: '↧',\n mapstoleft: '↤',\n mapstoup: '↥',\n marker: '▮',\n mcomma: '⨩',\n mcy: 'м',\n mdash: '—',\n measuredangle: '∡',\n mfr: '𝔪',\n mho: '℧',\n micr: 'µ',\n micro: 'µ',\n mid: '∣',\n midast: '*',\n midcir: '⫰',\n middo: '·',\n middot: '·',\n minus: '−',\n minusb: '⊟',\n minusd: '∸',\n minusdu: '⨪',\n mlcp: '⫛',\n mldr: '…',\n mnplus: '∓',\n models: '⊧',\n mopf: '𝕞',\n mp: '∓',\n mscr: '𝓂',\n mstpos: '∾',\n mu: 'μ',\n multimap: '⊸',\n mumap: '⊸',\n nGg: '⋙̸',\n nGt: '≫⃒',\n nGtv: '≫̸',\n nLeftarrow: '⇍',\n nLeftrightarrow: '⇎',\n nLl: '⋘̸',\n nLt: '≪⃒',\n nLtv: '≪̸',\n nRightarrow: '⇏',\n nVDash: '⊯',\n nVdash: '⊮',\n nabla: '∇',\n nacute: 'ń',\n nang: '∠⃒',\n nap: '≉',\n napE: '⩰̸',\n napid: '≋̸',\n napos: 'ʼn',\n napprox: '≉',\n natur: '♮',\n natural: '♮',\n naturals: 'ℕ',\n nbs: ' ',\n nbsp: ' ',\n nbump: '≎̸',\n nbumpe: '≏̸',\n ncap: '⩃',\n ncaron: 'ň',\n ncedil: 'ņ',\n ncong: '≇',\n ncongdot: '⩭̸',\n ncup: '⩂',\n ncy: 'н',\n ndash: '–',\n ne: '≠',\n neArr: '⇗',\n nearhk: '⤤',\n nearr: '↗',\n nearrow: '↗',\n nedot: '≐̸',\n nequiv: '≢',\n nesear: '⤨',\n nesim: '≂̸',\n nexist: '∄',\n nexists: '∄',\n nfr: '𝔫',\n ngE: '≧̸',\n nge: '≱',\n ngeq: '≱',\n ngeqq: '≧̸',\n ngeqslant: '⩾̸',\n nges: '⩾̸',\n ngsim: '≵',\n ngt: '≯',\n ngtr: '≯',\n nhArr: '⇎',\n nharr: '↮',\n nhpar: '⫲',\n ni: '∋',\n nis: '⋼',\n nisd: '⋺',\n niv: '∋',\n njcy: 'њ',\n nlArr: '⇍',\n nlE: '≦̸',\n nlarr: '↚',\n nldr: '‥',\n nle: '≰',\n nleftarrow: '↚',\n nleftrightarrow: '↮',\n nleq: '≰',\n nleqq: '≦̸',\n nleqslant: '⩽̸',\n nles: '⩽̸',\n nless: '≮',\n nlsim: '≴',\n nlt: '≮',\n nltri: '⋪',\n nltrie: '⋬',\n nmid: '∤',\n nopf: '𝕟',\n no: '¬',\n not: '¬',\n notin: '∉',\n notinE: '⋹̸',\n notindot: '⋵̸',\n notinva: '∉',\n notinvb: '⋷',\n notinvc: '⋶',\n notni: '∌',\n notniva: '∌',\n notnivb: '⋾',\n notnivc: '⋽',\n npar: '∦',\n nparallel: '∦',\n nparsl: '⫽⃥',\n npart: '∂̸',\n npolint: '⨔',\n npr: '⊀',\n nprcue: '⋠',\n npre: '⪯̸',\n nprec: '⊀',\n npreceq: '⪯̸',\n nrArr: '⇏',\n nrarr: '↛',\n nrarrc: '⤳̸',\n nrarrw: '↝̸',\n nrightarrow: '↛',\n nrtri: '⋫',\n nrtrie: '⋭',\n nsc: '⊁',\n nsccue: '⋡',\n nsce: '⪰̸',\n nscr: '𝓃',\n nshortmid: '∤',\n nshortparallel: '∦',\n nsim: '≁',\n nsime: '≄',\n nsimeq: '≄',\n nsmid: '∤',\n nspar: '∦',\n nsqsube: '⋢',\n nsqsupe: '⋣',\n nsub: '⊄',\n nsubE: '⫅̸',\n nsube: '⊈',\n nsubset: '⊂⃒',\n nsubseteq: '⊈',\n nsubseteqq: '⫅̸',\n nsucc: '⊁',\n nsucceq: '⪰̸',\n nsup: '⊅',\n nsupE: '⫆̸',\n nsupe: '⊉',\n nsupset: '⊃⃒',\n nsupseteq: '⊉',\n nsupseteqq: '⫆̸',\n ntgl: '≹',\n ntild: 'ñ',\n ntilde: 'ñ',\n ntlg: '≸',\n ntriangleleft: '⋪',\n ntrianglelefteq: '⋬',\n ntriangleright: '⋫',\n ntrianglerighteq: '⋭',\n nu: 'ν',\n num: '#',\n numero: '№',\n numsp: ' ',\n nvDash: '⊭',\n nvHarr: '⤄',\n nvap: '≍⃒',\n nvdash: '⊬',\n nvge: '≥⃒',\n nvgt: '>⃒',\n nvinfin: '⧞',\n nvlArr: '⤂',\n nvle: '≤⃒',\n nvlt: '<⃒',\n nvltrie: '⊴⃒',\n nvrArr: '⤃',\n nvrtrie: '⊵⃒',\n nvsim: '∼⃒',\n nwArr: '⇖',\n nwarhk: '⤣',\n nwarr: '↖',\n nwarrow: '↖',\n nwnear: '⤧',\n oS: 'Ⓢ',\n oacut: 'ó',\n oacute: 'ó',\n oast: '⊛',\n ocir: 'ô',\n ocirc: 'ô',\n ocy: 'о',\n odash: '⊝',\n odblac: 'ő',\n odiv: '⨸',\n odot: '⊙',\n odsold: '⦼',\n oelig: 'œ',\n ofcir: '⦿',\n ofr: '𝔬',\n ogon: '˛',\n ograv: 'ò',\n ograve: 'ò',\n ogt: '⧁',\n ohbar: '⦵',\n ohm: 'Ω',\n oint: '∮',\n olarr: '↺',\n olcir: '⦾',\n olcross: '⦻',\n oline: '‾',\n olt: '⧀',\n omacr: 'ō',\n omega: 'ω',\n omicron: 'ο',\n omid: '⦶',\n ominus: '⊖',\n oopf: '𝕠',\n opar: '⦷',\n operp: '⦹',\n oplus: '⊕',\n or: '∨',\n orarr: '↻',\n ord: 'º',\n order: 'ℴ',\n orderof: 'ℴ',\n ordf: 'ª',\n ordm: 'º',\n origof: '⊶',\n oror: '⩖',\n orslope: '⩗',\n orv: '⩛',\n oscr: 'ℴ',\n oslas: 'ø',\n oslash: 'ø',\n osol: '⊘',\n otild: 'õ',\n otilde: 'õ',\n otimes: '⊗',\n otimesas: '⨶',\n oum: 'ö',\n ouml: 'ö',\n ovbar: '⌽',\n par: '¶',\n para: '¶',\n parallel: '∥',\n parsim: '⫳',\n parsl: '⫽',\n part: '∂',\n pcy: 'п',\n percnt: '%',\n period: '.',\n permil: '‰',\n perp: '⊥',\n pertenk: '‱',\n pfr: '𝔭',\n phi: 'φ',\n phiv: 'ϕ',\n phmmat: 'ℳ',\n phone: '☎',\n pi: 'π',\n pitchfork: '⋔',\n piv: 'ϖ',\n planck: 'ℏ',\n planckh: 'ℎ',\n plankv: 'ℏ',\n plus: '+',\n plusacir: '⨣',\n plusb: '⊞',\n pluscir: '⨢',\n plusdo: '∔',\n plusdu: '⨥',\n pluse: '⩲',\n plusm: '±',\n plusmn: '±',\n plussim: '⨦',\n plustwo: '⨧',\n pm: '±',\n pointint: '⨕',\n popf: '𝕡',\n poun: '£',\n pound: '£',\n pr: '≺',\n prE: '⪳',\n prap: '⪷',\n prcue: '≼',\n pre: '⪯',\n prec: '≺',\n precapprox: '⪷',\n preccurlyeq: '≼',\n preceq: '⪯',\n precnapprox: '⪹',\n precneqq: '⪵',\n precnsim: '⋨',\n precsim: '≾',\n prime: '′',\n primes: 'ℙ',\n prnE: '⪵',\n prnap: '⪹',\n prnsim: '⋨',\n prod: '∏',\n profalar: '⌮',\n profline: '⌒',\n profsurf: '⌓',\n prop: '∝',\n propto: '∝',\n prsim: '≾',\n prurel: '⊰',\n pscr: '𝓅',\n psi: 'ψ',\n puncsp: ' ',\n qfr: '𝔮',\n qint: '⨌',\n qopf: '𝕢',\n qprime: '⁗',\n qscr: '𝓆',\n quaternions: 'ℍ',\n quatint: '⨖',\n quest: '?',\n questeq: '≟',\n quo: '\"',\n quot: '\"',\n rAarr: '⇛',\n rArr: '⇒',\n rAtail: '⤜',\n rBarr: '⤏',\n rHar: '⥤',\n race: '∽̱',\n racute: 'ŕ',\n radic: '√',\n raemptyv: '⦳',\n rang: '⟩',\n rangd: '⦒',\n range: '⦥',\n rangle: '⟩',\n raqu: '»',\n raquo: '»',\n rarr: '→',\n rarrap: '⥵',\n rarrb: '⇥',\n rarrbfs: '⤠',\n rarrc: '⤳',\n rarrfs: '⤞',\n rarrhk: '↪',\n rarrlp: '↬',\n rarrpl: '⥅',\n rarrsim: '⥴',\n rarrtl: '↣',\n rarrw: '↝',\n ratail: '⤚',\n ratio: '∶',\n rationals: 'ℚ',\n rbarr: '⤍',\n rbbrk: '❳',\n rbrace: '}',\n rbrack: ']',\n rbrke: '⦌',\n rbrksld: '⦎',\n rbrkslu: '⦐',\n rcaron: 'ř',\n rcedil: 'ŗ',\n rceil: '⌉',\n rcub: '}',\n rcy: 'р',\n rdca: '⤷',\n rdldhar: '⥩',\n rdquo: '”',\n rdquor: '”',\n rdsh: '↳',\n real: 'ℜ',\n realine: 'ℛ',\n realpart: 'ℜ',\n reals: 'ℝ',\n rect: '▭',\n re: '®',\n reg: '®',\n rfisht: '⥽',\n rfloor: '⌋',\n rfr: '𝔯',\n rhard: '⇁',\n rharu: '⇀',\n rharul: '⥬',\n rho: 'ρ',\n rhov: 'ϱ',\n rightarrow: '→',\n rightarrowtail: '↣',\n rightharpoondown: '⇁',\n rightharpoonup: '⇀',\n rightleftarrows: '⇄',\n rightleftharpoons: '⇌',\n rightrightarrows: '⇉',\n rightsquigarrow: '↝',\n rightthreetimes: '⋌',\n ring: '˚',\n risingdotseq: '≓',\n rlarr: '⇄',\n rlhar: '⇌',\n rlm: '‏',\n rmoust: '⎱',\n rmoustache: '⎱',\n rnmid: '⫮',\n roang: '⟭',\n roarr: '⇾',\n robrk: '⟧',\n ropar: '⦆',\n ropf: '𝕣',\n roplus: '⨮',\n rotimes: '⨵',\n rpar: ')',\n rpargt: '⦔',\n rppolint: '⨒',\n rrarr: '⇉',\n rsaquo: '›',\n rscr: '𝓇',\n rsh: '↱',\n rsqb: ']',\n rsquo: '’',\n rsquor: '’',\n rthree: '⋌',\n rtimes: '⋊',\n rtri: '▹',\n rtrie: '⊵',\n rtrif: '▸',\n rtriltri: '⧎',\n ruluhar: '⥨',\n rx: '℞',\n sacute: 'ś',\n sbquo: '‚',\n sc: '≻',\n scE: '⪴',\n scap: '⪸',\n scaron: 'š',\n sccue: '≽',\n sce: '⪰',\n scedil: 'ş',\n scirc: 'ŝ',\n scnE: '⪶',\n scnap: '⪺',\n scnsim: '⋩',\n scpolint: '⨓',\n scsim: '≿',\n scy: 'с',\n sdot: '⋅',\n sdotb: '⊡',\n sdote: '⩦',\n seArr: '⇘',\n searhk: '⤥',\n searr: '↘',\n searrow: '↘',\n sec: '§',\n sect: '§',\n semi: ';',\n seswar: '⤩',\n setminus: '∖',\n setmn: '∖',\n sext: '✶',\n sfr: '𝔰',\n sfrown: '⌢',\n sharp: '♯',\n shchcy: 'щ',\n shcy: 'ш',\n shortmid: '∣',\n shortparallel: '∥',\n sh: '­',\n shy: '­',\n sigma: 'σ',\n sigmaf: 'ς',\n sigmav: 'ς',\n sim: '∼',\n simdot: '⩪',\n sime: '≃',\n simeq: '≃',\n simg: '⪞',\n simgE: '⪠',\n siml: '⪝',\n simlE: '⪟',\n simne: '≆',\n simplus: '⨤',\n simrarr: '⥲',\n slarr: '←',\n smallsetminus: '∖',\n smashp: '⨳',\n smeparsl: '⧤',\n smid: '∣',\n smile: '⌣',\n smt: '⪪',\n smte: '⪬',\n smtes: '⪬︀',\n softcy: 'ь',\n sol: '/',\n solb: '⧄',\n solbar: '⌿',\n sopf: '𝕤',\n spades: '♠',\n spadesuit: '♠',\n spar: '∥',\n sqcap: '⊓',\n sqcaps: '⊓︀',\n sqcup: '⊔',\n sqcups: '⊔︀',\n sqsub: '⊏',\n sqsube: '⊑',\n sqsubset: '⊏',\n sqsubseteq: '⊑',\n sqsup: '⊐',\n sqsupe: '⊒',\n sqsupset: '⊐',\n sqsupseteq: '⊒',\n squ: '□',\n square: '□',\n squarf: '▪',\n squf: '▪',\n srarr: '→',\n sscr: '𝓈',\n ssetmn: '∖',\n ssmile: '⌣',\n sstarf: '⋆',\n star: '☆',\n starf: '★',\n straightepsilon: 'ϵ',\n straightphi: 'ϕ',\n strns: '¯',\n sub: '⊂',\n subE: '⫅',\n subdot: '⪽',\n sube: '⊆',\n subedot: '⫃',\n submult: '⫁',\n subnE: '⫋',\n subne: '⊊',\n subplus: '⪿',\n subrarr: '⥹',\n subset: '⊂',\n subseteq: '⊆',\n subseteqq: '⫅',\n subsetneq: '⊊',\n subsetneqq: '⫋',\n subsim: '⫇',\n subsub: '⫕',\n subsup: '⫓',\n succ: '≻',\n succapprox: '⪸',\n succcurlyeq: '≽',\n succeq: '⪰',\n succnapprox: '⪺',\n succneqq: '⪶',\n succnsim: '⋩',\n succsim: '≿',\n sum: '∑',\n sung: '♪',\n sup: '⊃',\n sup1: '¹',\n sup2: '²',\n sup3: '³',\n supE: '⫆',\n supdot: '⪾',\n supdsub: '⫘',\n supe: '⊇',\n supedot: '⫄',\n suphsol: '⟉',\n suphsub: '⫗',\n suplarr: '⥻',\n supmult: '⫂',\n supnE: '⫌',\n supne: '⊋',\n supplus: '⫀',\n supset: '⊃',\n supseteq: '⊇',\n supseteqq: '⫆',\n supsetneq: '⊋',\n supsetneqq: '⫌',\n supsim: '⫈',\n supsub: '⫔',\n supsup: '⫖',\n swArr: '⇙',\n swarhk: '⤦',\n swarr: '↙',\n swarrow: '↙',\n swnwar: '⤪',\n szli: 'ß',\n szlig: 'ß',\n target: '⌖',\n tau: 'τ',\n tbrk: '⎴',\n tcaron: 'ť',\n tcedil: 'ţ',\n tcy: 'т',\n tdot: '⃛',\n telrec: '⌕',\n tfr: '𝔱',\n there4: '∴',\n therefore: '∴',\n theta: 'θ',\n thetasym: 'ϑ',\n thetav: 'ϑ',\n thickapprox: '≈',\n thicksim: '∼',\n thinsp: ' ',\n thkap: '≈',\n thksim: '∼',\n thor: 'þ',\n thorn: 'þ',\n tilde: '˜',\n time: '×',\n times: '×',\n timesb: '⊠',\n timesbar: '⨱',\n timesd: '⨰',\n tint: '∭',\n toea: '⤨',\n top: '⊤',\n topbot: '⌶',\n topcir: '⫱',\n topf: '𝕥',\n topfork: '⫚',\n tosa: '⤩',\n tprime: '‴',\n trade: '™',\n triangle: '▵',\n triangledown: '▿',\n triangleleft: '◃',\n trianglelefteq: '⊴',\n triangleq: '≜',\n triangleright: '▹',\n trianglerighteq: '⊵',\n tridot: '◬',\n trie: '≜',\n triminus: '⨺',\n triplus: '⨹',\n trisb: '⧍',\n tritime: '⨻',\n trpezium: '⏢',\n tscr: '𝓉',\n tscy: 'ц',\n tshcy: 'ћ',\n tstrok: 'ŧ',\n twixt: '≬',\n twoheadleftarrow: '↞',\n twoheadrightarrow: '↠',\n uArr: '⇑',\n uHar: '⥣',\n uacut: 'ú',\n uacute: 'ú',\n uarr: '↑',\n ubrcy: 'ў',\n ubreve: 'ŭ',\n ucir: 'û',\n ucirc: 'û',\n ucy: 'у',\n udarr: '⇅',\n udblac: 'ű',\n udhar: '⥮',\n ufisht: '⥾',\n ufr: '𝔲',\n ugrav: 'ù',\n ugrave: 'ù',\n uharl: '↿',\n uharr: '↾',\n uhblk: '▀',\n ulcorn: '⌜',\n ulcorner: '⌜',\n ulcrop: '⌏',\n ultri: '◸',\n umacr: 'ū',\n um: '¨',\n uml: '¨',\n uogon: 'ų',\n uopf: '𝕦',\n uparrow: '↑',\n updownarrow: '↕',\n upharpoonleft: '↿',\n upharpoonright: '↾',\n uplus: '⊎',\n upsi: 'υ',\n upsih: 'ϒ',\n upsilon: 'υ',\n upuparrows: '⇈',\n urcorn: '⌝',\n urcorner: '⌝',\n urcrop: '⌎',\n uring: 'ů',\n urtri: '◹',\n uscr: '𝓊',\n utdot: '⋰',\n utilde: 'ũ',\n utri: '▵',\n utrif: '▴',\n uuarr: '⇈',\n uum: 'ü',\n uuml: 'ü',\n uwangle: '⦧',\n vArr: '⇕',\n vBar: '⫨',\n vBarv: '⫩',\n vDash: '⊨',\n vangrt: '⦜',\n varepsilon: 'ϵ',\n varkappa: 'ϰ',\n varnothing: '∅',\n varphi: 'ϕ',\n varpi: 'ϖ',\n varpropto: '∝',\n varr: '↕',\n varrho: 'ϱ',\n varsigma: 'ς',\n varsubsetneq: '⊊︀',\n varsubsetneqq: '⫋︀',\n varsupsetneq: '⊋︀',\n varsupsetneqq: '⫌︀',\n vartheta: 'ϑ',\n vartriangleleft: '⊲',\n vartriangleright: '⊳',\n vcy: 'в',\n vdash: '⊢',\n vee: '∨',\n veebar: '⊻',\n veeeq: '≚',\n vellip: '⋮',\n verbar: '|',\n vert: '|',\n vfr: '𝔳',\n vltri: '⊲',\n vnsub: '⊂⃒',\n vnsup: '⊃⃒',\n vopf: '𝕧',\n vprop: '∝',\n vrtri: '⊳',\n vscr: '𝓋',\n vsubnE: '⫋︀',\n vsubne: '⊊︀',\n vsupnE: '⫌︀',\n vsupne: '⊋︀',\n vzigzag: '⦚',\n wcirc: 'ŵ',\n wedbar: '⩟',\n wedge: '∧',\n wedgeq: '≙',\n weierp: '℘',\n wfr: '𝔴',\n wopf: '𝕨',\n wp: '℘',\n wr: '≀',\n wreath: '≀',\n wscr: '𝓌',\n xcap: '⋂',\n xcirc: '◯',\n xcup: '⋃',\n xdtri: '▽',\n xfr: '𝔵',\n xhArr: '⟺',\n xharr: '⟷',\n xi: 'ξ',\n xlArr: '⟸',\n xlarr: '⟵',\n xmap: '⟼',\n xnis: '⋻',\n xodot: '⨀',\n xopf: '𝕩',\n xoplus: '⨁',\n xotime: '⨂',\n xrArr: '⟹',\n xrarr: '⟶',\n xscr: '𝓍',\n xsqcup: '⨆',\n xuplus: '⨄',\n xutri: '△',\n xvee: '⋁',\n xwedge: '⋀',\n yacut: 'ý',\n yacute: 'ý',\n yacy: 'я',\n ycirc: 'ŷ',\n ycy: 'ы',\n ye: '¥',\n yen: '¥',\n yfr: '𝔶',\n yicy: 'ї',\n yopf: '𝕪',\n yscr: '𝓎',\n yucy: 'ю',\n yum: 'ÿ',\n yuml: 'ÿ',\n zacute: 'ź',\n zcaron: 'ž',\n zcy: 'з',\n zdot: 'ż',\n zeetrf: 'ℨ',\n zeta: 'ζ',\n zfr: '𝔷',\n zhcy: 'ж',\n zigrarr: '⇝',\n zopf: '𝕫',\n zscr: '𝓏',\n zwj: '‍',\n zwnj: '‌'\n}\n","import {characterEntities} from 'character-entities'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Decode a single character reference (without the `&` or `;`).\n * You probably only need this when you’re building parsers yourself that follow\n * different rules compared to HTML.\n * This is optimized to be tiny in browsers.\n *\n * @param {string} value\n * `notin` (named), `#123` (deci), `#x123` (hexa).\n * @returns {string|false}\n * Decoded reference.\n */\nexport function decodeNamedCharacterReference(value) {\n return own.call(characterEntities, value) ? characterEntities[value] : false\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n /** @type {State} */\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n /** @type {State} */\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once we’ve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesn’t need this */\n\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Chunk[]}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Chunk[]} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {UnistParent & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record<string, unknown> & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n * @typedef {Record<string, Record<string, unknown>|Array<unknown>> & {canContainEols: Array<string>, transforms: Array<Transform>, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial<NormalizedExtension>} Extension\n * An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n * mdast compiler context\n * @property {Array<Node | Fragment>} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n * Set data into the key-value store.\n * @property {<K extends string>(key: K) => CompileData[K]} getData\n * Get data from the key-value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<N extends Node>(this: CompileContext, node: N, token: Token, onError?: OnEnterError) => N} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {NormalizedExtension} config\n * Configuration.\n *\n * @typedef {{mdastExtensions?: Array<Extension|Array<Extension>>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n/**\n * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options) => Root) &\n * ((value: Value, options?: Options) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {Options} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n /** @type {NormalizedExtension} */\n // @ts-expect-error: our base has all required fields, so the result will too.\n const config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n options.mdastExtensions || []\n )\n /** @type {CompileData} */\n\n const data = {}\n return compile\n /**\n * @param {Array<Event>} events\n * @returns {Root}\n */\n\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {CompileContext['stack']} */\n\n const stack = [tree]\n /** @type {CompileContext['tokenStack']} */\n\n const tokenStack = []\n /** @type {Array<number>} */\n\n const listStack = []\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n\n const context = {\n stack,\n tokenStack,\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n let index = -1\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length > 0) {\n const tail = tokenStack[tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n } // Figure out `root` position.\n\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n index = -1\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token|undefined} */\n\n let listItem\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number|undefined} */\n\n let firstBlankLineIndex\n /** @type {boolean|undefined} */\n\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n } // Fix position.\n\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n } // Create a new list item.\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n } // @ts-expect-error Patched.\n\n events[start][1]._spread = listSpread\n return length\n }\n /**\n * @type {CompileContext['setData']}\n * @param [value]\n */\n\n function setData(key, value) {\n data[key] = value\n }\n /**\n * @type {CompileContext['getData']}\n * @template {string} K\n * @param {K} key\n * @returns {CompileData[K]}\n */\n\n function getData(key) {\n return data[key]\n }\n /**\n * @param {Point} d\n * @returns {Point}\n */\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n }\n /**\n * @param {(token: Token) => Node} create\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function opener(create, and) {\n return open\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n /** @type {CompileContext['buffer']} */\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n /**\n * @type {CompileContext['enter']}\n * @template {Node} N\n * @this {CompileContext}\n * @param {N} node\n * @param {Token} token\n * @param {OnEnterError} [errorHandler]\n * @returns {N}\n */\n\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler]) // @ts-expect-error: `end` will be patched later.\n\n node.position = {\n start: point(token.start)\n }\n return node\n }\n /**\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function closer(and) {\n return close\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n /**\n * @type {CompileContext['exit']}\n * @this {CompileContext}\n * @param {Token} token\n * @param {OnExitError} [onExitError]\n * @returns {Node}\n */\n\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n\n node.position.end = point(token.end)\n return node\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n\n function resume() {\n return toString(this.stack.pop())\n } //\n // Handlers.\n //\n\n /** @type {Handle} */\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n /** @type {Handle} */\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor =\n /** @type {List} */\n this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n /** @type {Handle} */\n\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.lang = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.meta = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n /** @type {Handle} */\n\n function onexitcodefenced() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n /** @type {Handle} */\n\n function onexitcodeindented() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n /** @type {Handle} */\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n const label = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitatxheadingsequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n /** @type {Handle} */\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n /** @type {Handle} */\n\n function onexitsetextheadinglinesequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n /** @type {Handle} */\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n /** @type {Handle} */\n\n function onenterdata(token) {\n const parent =\n /** @type {Parent} */\n this.stack[this.stack.length - 1]\n /** @type {Node} */\n\n let tail = parent.children[parent.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text() // @ts-expect-error: we’ll add `end` later.\n\n tail.position = {\n start: point(token.start)\n } // @ts-expect-error: Assume `parent` accepts `text`.\n\n parent.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n /** @type {Handle} */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n /** @type {Handle} */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n /** @type {Handle} */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexithtmltext() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitcodetext() {\n const data = this.resume()\n const node =\n /** @type {InlineCode} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitlink() {\n const context =\n /** @type {Link & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitimage() {\n const context =\n /** @type {Image & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitlabeltext(token) {\n const ancestor =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 2]\n const string = this.sliceSerialize(token)\n ancestor.label = decodeString(string)\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitlabel() {\n const fragment =\n /** @type {Fragment} */\n this.stack[this.stack.length - 1]\n const value = this.resume()\n const node =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // Assume a reference.\n\n setData('inReference', true)\n\n if (node.type === 'link') {\n // @ts-expect-error: Assume static phrasing content.\n node.children = fragment.children\n } else {\n node.alt = value\n }\n }\n /** @type {Handle} */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitresource() {\n setData('inReference')\n }\n /** @type {Handle} */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n /** @type {Handle} */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node =\n /** @type {LinkReference|ImageReference} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n // @ts-expect-error `decodeNamedCharacterReference` can return false for\n // invalid named character references, but everything we’ve tokenized is\n // valid.\n value = decodeNamedCharacterReference(data)\n }\n\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n /** @type {Handle} */\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n } //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n /** @returns {Code} */\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n /** @returns {InlineCode} */\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n /** @returns {Definition} */\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n /** @returns {Emphasis} */\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n /** @returns {Heading} */\n\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n /** @returns {Break} */\n\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n /** @returns {HTML} */\n\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n /** @returns {Image} */\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n /** @returns {Link} */\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {List}\n */\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n /** @returns {Paragraph} */\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n /** @returns {Strong} */\n\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n /** @returns {Text} */\n\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n /** @returns {ThematicBreak} */\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n/**\n * @param {Extension} combined\n * @param {Array<Extension|Array<Extension>>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n\n return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n /** @type {string} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n const list = key === 'canContainEols' || key === 'transforms'\n const maybe = own.call(combined, key) ? combined[key] : undefined\n /* c8 ignore next */\n\n const left = maybe || (combined[key] = list ? [] : {})\n const right = extension[key]\n\n if (right) {\n if (list) {\n // @ts-expect-error: `left` is an array.\n combined[key] = [...left, ...right]\n } else {\n Object.assign(left, right)\n }\n }\n }\n }\n}\n/** @type {OnEnterError} */\n\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Event[]} events\n * @returns {Event[]}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n /**\n * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist').Literal} Literal\n * @typedef {Object.<string, unknown>} Props\n * @typedef {Array.<Node>|string} ChildrenOrValue\n *\n * @typedef {(<T extends string, P extends Record<string, unknown>, C extends Node[]>(type: T, props: P, children: C) => {type: T, children: C} & P)} BuildParentWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P, value: string) => {type: T, value: string} & P)} BuildLiteralWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P) => {type: T} & P)} BuildVoidWithProps\n * @typedef {(<T extends string, C extends Node[]>(type: T, children: C) => {type: T, children: C})} BuildParent\n * @typedef {(<T extends string>(type: T, value: string) => {type: T, value: string})} BuildLiteral\n * @typedef {(<T extends string>(type: T) => {type: T})} BuildVoid\n */\n\nexport var u = /**\n * @type {BuildVoid & BuildVoidWithProps & BuildLiteral & BuildLiteralWithProps & BuildParent & BuildParentWithProps}\n */ (\n /**\n * @param {string} type Type of node\n * @param {Props|ChildrenOrValue} [props] Additional properties for node (or `children` or `value`)\n * @param {ChildrenOrValue} [value] `children` or `value` of node\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n var node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== undefined && value !== null) {\n node.value = String(value)\n }\n\n return node\n }\n)\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types').Action} Action\n * @typedef {import('./complex-types').Index} Index\n * @typedef {import('./complex-types').ActionTuple} ActionTuple\n * @typedef {import('./complex-types').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test node, optional\n * @param visitor Function to run for each node\n * @param reverse Visit the tree in reverse order, defaults to false\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor<Node>} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.<string, unknown>} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array.<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test, optional\n * @param visitor Function to run for each node\n * @param reverse Fisit the tree in reverse, defaults to false\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial<Point>} PointLike\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\nexport var pointStart = point('start')\nexport var pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike} [node]\n * @returns {Position}\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n return point\n\n /**\n * Get the positional info of `node`.\n *\n * @param {NodeLike} [node]\n * @returns {Point}\n */\n function point(node) {\n /** @type {Point} */\n // @ts-ignore looks like a point\n var point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {CONTINUE|SKIP|EXIT} Action Union of the action types\n * @typedef {number} Index Move to the sibling at index next (after node itself is completely traversed). Useful if mutating the tree, such as removing the node the visitor is currently on, or any of its previous siblings (or next siblings, in case of reverse) Results less than 0 or greater than or equal to children.length stop traversing the parent\n * @typedef {[(Action|null|undefined|void)?, (Index|null|undefined)?]} ActionTuple List with one or two values, the first an action, the second an index.\n * @typedef {null|undefined|Action|Index|ActionTuple|void} VisitorResult Any value that can be returned from a visitor\n */\n\n/**\n * Invoked when a node (matching test, if given) is found.\n * Visitors are free to transform node.\n * They can also transform the parent of node (the last of ancestors).\n * Replacing node itself, if `SKIP` is not returned, still causes its descendants to be visited.\n * If adding or removing previous siblings (or next siblings, in case of reverse) of node,\n * visitor should return a new index (number) to specify the sibling to traverse after node is traversed.\n * Adding or removing next siblings of node (or previous siblings, in case of reverse)\n * is handled as expected without needing to return a new index.\n * Removing the children property of an ancestor still results in them being traversed.\n *\n * @template {Node} V\n * @callback Visitor\n * @param {V} node Found node\n * @param {Array.<Parent>} ancestors Ancestors of node\n * @returns {VisitorResult}\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\nexport const visitParents =\n /**\n * @type {(\n * (<T extends Node>(tree: Node, test: T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>>, visitor: Visitor<T>, reverse?: boolean) => void) &\n * ((tree: Node, test: Test, visitor: Visitor<Node>, reverse?: boolean) => void) &\n * ((tree: Node, visitor: Visitor<Node>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * Visit children of tree which pass a test\n *\n * @param {Node} tree Abstract syntax tree to walk\n * @param {Test} test test Test node\n * @param {Visitor<Node>} visitor Function to run for each node\n * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-ignore no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n var is = convert(test)\n var step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.<string, unknown>} */\n var value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string} */\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n var result = []\n /** @type {ActionTuple} */\n var subresult\n /** @type {number} */\n var offset\n /** @type {Array.<Parent>} */\n var grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n // @ts-ignore looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-ignore looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-ignore looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Invoked when a node (matching test, if given) is found.\n * Visitors are free to transform node.\n * They can also transform the parent of node (the last of ancestors).\n * Replacing node itself, if `SKIP` is not returned, still causes its descendants to be visited.\n * If adding or removing previous siblings (or next siblings, in case of reverse) of node,\n * visitor should return a new index (number) to specify the sibling to traverse after node is traversed.\n * Adding or removing next siblings of node (or previous siblings, in case of reverse)\n * is handled as expected without needing to return a new index.\n * Removing the children property of an ancestor still results in them being traversed.\n *\n * @template {Node} V\n * @callback Visitor\n * @param {V} node Found node\n * @param {number|null} index Position of `node` in `parent`\n * @param {Parent|null} parent Parent of `node`\n * @returns {VisitorResult}\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\nexport const visit =\n /**\n * @type {(\n * (<T extends Node>(tree: Node, test: T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>>, visitor: Visitor<T>, reverse?: boolean) => void) &\n * ((tree: Node, test: Test, visitor: Visitor<Node>, reverse?: boolean) => void) &\n * ((tree: Node, visitor: Visitor<Node>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * Visit children of tree which pass a test\n *\n * @param {Node} tree Abstract syntax tree to walk\n * @param {Test} test test Test node\n * @param {Visitor<Node>} visitor Function to run for each node\n * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.<Parent>} parents\n */\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('unist-util-visit').Visitor<Definition>} DefinitionVisitor\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n *\n * @param {Node} node\n */\nexport function definitions(node) {\n /** @type {Object.<string, Definition>} */\n const cache = Object.create(null)\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', ondefinition)\n\n return getDefinition\n\n /** @type {DefinitionVisitor} */\n function ondefinition(definition) {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n }\n\n /**\n * Get a node from the bound definition-cache.\n *\n * @param {string} identifier\n * @returns {Definition|null}\n */\n function getDefinition(identifier) {\n const id = clean(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('./index.js').H} H\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Transform an unknown node.\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction unknown(h, node) {\n const data = node.data || {}\n\n if (\n 'value' in node &&\n !(\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n )\n ) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nexport function one(h, node, parent) {\n const type = node && node.type\n /** @type {Handler} */\n let fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.includes(type)) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction returnNode(h, node) {\n // @ts-expect-error: Pass through custom node.\n return 'children' in node ? {...node, children: all(h, node)} : node\n}\n\n/**\n * @param {H} h\n * @param {MdastNode} parent\n */\nexport function all(h, parent) {\n /** @type {Array.<Content>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n\n while (++index < nodes.length) {\n const result = one(h, nodes[index], parent)\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n}\n","/**\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n */\n\n/**\n * @type {Handler}\n * @param {ThematicBreak} [node]\n * @returns {Element}\n */\nexport function thematicBreak(h, node) {\n return h(node, 'hr')\n}\n","/**\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Wrap `nodes` with line feeds between each entry.\n * Optionally adds line feeds at the start and end.\n *\n * @param {Array.<Content>} nodes\n * @param {boolean} [loose=false]\n * @returns {Array.<Content>}\n */\nexport function wrap(nodes, loose) {\n /** @type {Array.<Content>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < nodes.length) {\n if (index) result.push(u('text', '\\n'))\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {List} node\n * @returns {Element}\n */\nexport function list(h, node) {\n /** @type {Properties} */\n const props = {}\n const name = node.ordered ? 'ol' : 'ul'\n const items = all(h, node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < items.length) {\n const item = items[index]\n\n if (\n item.type === 'element' &&\n item.tagName === 'li' &&\n item.properties &&\n Array.isArray(item.properties.className) &&\n item.properties.className.includes('task-list-item')\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {FootnoteReference} node\n */\nexport function footnoteReference(h, node) {\n const footnoteOrder = h.footnoteOrder\n const identifier = String(node.identifier)\n const index = footnoteOrder.indexOf(identifier)\n const marker = String(\n index === -1 ? footnoteOrder.push(identifier) : index + 1\n )\n\n return h(\n node,\n 'a',\n {\n href: '#fn' + marker,\n className: ['footnote-ref'],\n id: 'fnref' + marker,\n role: 'doc-noteref'\n },\n [h(node.position, 'sup', [u('text', marker)])]\n )\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @type {Handler}\n * @param {ImageReference|LinkReference} node\n * @returns {Content|Array.<Content>}\n */\nexport function revert(h, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return u('text', '![' + node.alt + suffix)\n }\n\n const contents = all(h, node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push(u('text', suffix))\n }\n\n return contents\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {ListItem} node\n * @param {List} parent\n */\nexport function listItem(h, node, parent) {\n const result = all(h, node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const props = {}\n /** @type {Array.<Content>} */\n const wrapped = []\n\n if (typeof node.checked === 'boolean') {\n /** @type {Element} */\n let paragraph\n\n if (\n result[0] &&\n result[0].type === 'element' &&\n result[0].tagName === 'p'\n ) {\n paragraph = result[0]\n } else {\n paragraph = h(null, 'p', [])\n result.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift(u('text', ' '))\n }\n\n paragraph.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n props.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < result.length) {\n const child = result[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n wrapped.push(u('text', '\\n'))\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n wrapped.push(...child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n const tail = result[result.length - 1]\n\n // Add a final eol.\n if (tail && (loose || !('tagName' in tail) || tail.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\n/**\n * @param {List} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = node.spread\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n\n return Boolean(loose)\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return null\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Blockquote} node\n */\nexport function blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Break} node\n * @returns {Array<Element|Text>}\n */\nexport function hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Code} node\n */\nexport function code(h, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/)\n /** @type {Properties} */\n const props = {}\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n const code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Delete} node\n */\nexport function strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Emphasis} node\n */\nexport function emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n/**\n * @type {Handler}\n * @param {Footnote} node\n */\nexport function footnote(h, node) {\n const footnoteById = h.footnoteById\n const footnoteOrder = h.footnoteOrder\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n // No need to check if `identifier` exists in `footnoteOrder`, it’s guaranteed\n // to not exist because we just generated it.\n footnoteOrder.push(identifier)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Heading} node\n */\nexport function heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","/**\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Return either a `raw` node in dangerous mode, otherwise nothing.\n *\n * @type {Handler}\n * @param {HTML} node\n */\nexport function html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\n\n/**\n * @type {Handler}\n * @param {ImageReference} node\n */\nexport function imageReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {src: normalize(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\n\n/**\n * @type {Handler}\n * @param {Image} node\n */\nexport function image(h, node) {\n /** @type {Properties} */\n const props = {src: normalize(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {InlineCode} node\n */\nexport function inlineCode(h, node) {\n return h(node, 'code', [u('text', node.value.replace(/\\r?\\n|\\r/g, ' '))])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {LinkReference} node\n */\nexport function linkReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {href: normalize(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Link} node\n */\nexport function link(h, node) {\n /** @type {Properties} */\n const props = {href: normalize(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Paragraph} node\n */\nexport function paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\nimport {wrap} from '../wrap.js'\n\n/**\n * @type {Handler}\n * @param {Root} node\n */\nexport function root(h, node) {\n // @ts-expect-error `root`s are also fine.\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","/**\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Strong} node\n */\nexport function strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Table} node\n */\nexport function table(h, node) {\n const rows = node.children\n let index = -1\n const align = node.align || []\n /** @type {Array.<Element>} */\n const result = []\n\n while (++index < rows.length) {\n const row = rows[index].children\n const name = index === 0 ? 'th' : 'td'\n let pos = node.align ? align.length : row.length\n /** @type {Array.<Content>} */\n const out = []\n\n while (pos--) {\n const cell = row[pos]\n out[pos] = h(cell, name, {align: align[pos]}, cell ? all(h, cell) : [])\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: pointStart(result[1]),\n end: pointEnd(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\n}\n","/**\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Text} node\n */\nexport function text(h, node) {\n return h.augment(\n node,\n u('text', String(node.value).replace(/[ \\t]*(\\r?\\n|\\r)[ \\t]*/g, '$1'))\n )\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('hast').Root|import('hast').Parent['children'][number]} HastNode\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').ElementContent} Content\n * @typedef {import('unist-util-position').PositionLike} PositionLike\n *\n * @typedef EmbeddedHastFields\n * @property {string} [hName] Defines the tag name of an element\n * @property {Properties} [hProperties] Defines the properties of an element\n * @property {Array.<Content>} [hChildren] Defines the (hast) children of an element\n *\n * @typedef {Object.<string, unknown> & EmbeddedHastFields} Data unist data with embedded hast fields\n *\n * @typedef {MdastNode & {data?: Data}} NodeWithData unist node with embedded hast data\n *\n * @callback Handler\n * @param {H} h Handle context\n * @param {any} node mdast node to handle\n * @param {Parent|null} parent Parent of `node`\n * @returns {Content|Array.<Content>|null|undefined} hast node\n *\n * @callback HFunctionProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Properties} props Properties\n * @param {Array.<Content>?} [children] hast content\n * @returns {Element}\n *\n * @callback HFunctionNoProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Array.<Content>?} [children] hast content\n * @returns {Element}\n *\n * @typedef HFields\n * @property {boolean} dangerous Whether HTML is allowed\n * @property {(identifier: string) => Definition|null} definition Definition cache\n * @property {Object.<string, FootnoteDefinition>} footnoteById Footnote cache\n * @property {Array.<string>} footnoteOrder Order in which footnotes occur\n * @property {Handlers} handlers Applied handlers\n * @property {Handler} unknownHandler Handler for any none not in `passThrough` or otherwise handled\n * @property {(left: NodeWithData|PositionLike|null|undefined, right: Content) => Content} augment Like `h` but lower-level and usable on non-elements.\n * @property {Array.<string>} passThrough List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * @property {boolean} [allowDangerousHtml=false] Whether to allow `html` nodes and inject them as `raw` HTML\n * @property {Handlers} [handlers] Object mapping mdast nodes to functions handling them\n * @property {Array.<string>} [passThrough] List of custom mdast node types to pass through (keep) in hast\n * @property {Handler} [unknownHandler] Handler for all unknown nodes.\n *\n * @typedef {Record.<string, Handler>} Handlers Map of node types to handlers\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} H Handle context\n */\n\nimport {u} from 'unist-builder'\nimport {visit} from 'unist-util-visit'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {one} from './traverse.js'\nimport {footer} from './footer.js'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to transform.\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {H} `h` function\n */\nfunction factory(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Object.<string, FootnoteDefinition>} */\n const footnoteById = {}\n\n h.dangerous = dangerous\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n /** @type {Array.<string>} */\n h.footnoteOrder = []\n h.augment = augment\n h.handlers = {...handlers, ...settings.handlers}\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return h\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n * @param {(NodeWithData|PositionLike)?} left\n * @param {Content} right\n * @returns {Content}\n */\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {Data} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n function h(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n}\n\n/**\n * Transform `tree` (an mdast node) to a hast node.\n *\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {HastNode|null|undefined} hast node\n */\nexport function toHast(tree, options) {\n const h = factory(tree, options)\n const node = one(h, tree, null)\n const foot = footer(h)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push(u('text', '\\n'), foot)\n }\n\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {Object} PointLike\n * @property {number} [line]\n * @property {number} [column]\n * @property {number} [offset]\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\n/**\n * Check if `node` is *generated*.\n *\n * @param {NodeLike} [node]\n * @returns {boolean}\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('./index.js').H} H\n */\n\nimport {thematicBreak} from './handlers/thematic-break.js'\nimport {list} from './handlers/list.js'\nimport {wrap} from './wrap.js'\n\n/**\n * @param {H} h\n */\nexport function footer(h) {\n const footnoteById = h.footnoteById\n const footnoteOrder = h.footnoteOrder\n let index = -1\n /** @type {Array.<ListItem>} */\n const listItems = []\n\n while (++index < footnoteOrder.length) {\n const def = footnoteById[footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n const marker = String(index + 1)\n const content = [...def.children]\n /** @type {Link} */\n const backReference = {\n type: 'link',\n url: '#fnref' + marker,\n data: {hProperties: {className: ['footnote-back'], role: 'doc-backlink'}},\n children: [{type: 'text', value: '↩'}]\n }\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'paragraph') {\n tail.children.push(backReference)\n } else {\n // @ts-expect-error Indeed, link directly added in block content.\n // Which we do because that way at least the handlers will be called\n // for the other HTML we’re generating (as markdown).\n content.push(backReference)\n }\n\n listItems.push({\n type: 'listItem',\n data: {hProperties: {id: 'fn' + marker, role: 'doc-endnote'}},\n children: content,\n position: def.position\n })\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return h(\n null,\n 'section',\n {className: ['footnotes'], role: 'doc-endnotes'},\n wrap(\n [\n thematicBreak(h),\n list(h, {type: 'list', ordered: true, children: listItems})\n ],\n true\n )\n )\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin to bridge or mutate to rehype.\n *\n * If a destination is given, runs the destination with the new hast tree\n * (bridge-mode).\n * Without destination, returns the hast tree: further plugins run on that tree\n * (mutate-mode).\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further transformers run on the nlcst tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned for `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @param {unknown} thing\n * @returns {boolean}\n */\nexport function whitespace(thing) {\n /** @type {string} */\n var value =\n // @ts-ignore looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-ignore looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See <https://html.spec.whatwg.org/#space-character>.\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","export const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'table'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: boolean}} TableCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableCellProps>} TableCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableCellComponent|ReactMarkdownNames} td\n * @property {TableCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: <https://github.com/facebook/react/pull/7081>.\n // See: <https://github.com/facebook/react/pull/7515>.\n // See: <https://github.com/remarkjs/remark-react/issues/64>.\n // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = [\n name,\n position.start.line,\n position.start.column,\n index\n ].join('-')\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && options.transformLinkUri) {\n properties.href = options.transformLinkUri(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map((d) => String(d))\n .join('')\n}\n","/**\n * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n /** @type {Array.<string>} */\n var tokens = []\n var input = String(value || '')\n var index = input.indexOf(',')\n var start = 0\n /** @type {boolean} */\n var end\n /** @type {string} */\n var token\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n var settings = options || {}\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === '') {\n values = values.concat('')\n }\n\n return values\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} Tokens\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated tokens.\n *\n * @param {Array.<string|number>} values Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [plugins=[]] **deprecated**: use `remarkPlugins` instead\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {uriTransformer} from './uri-transformer.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n // TODO: deprecate `plugins` in v8.0.0.\n .use(options.remarkPlugins || options.plugins || [])\n .use(remarkRehype, {allowDangerousHtml: true})\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.defaultProps = {transformLinkUri: uriTransformer}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","export const SDK_VERSION = '6.18.2';\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString: () => void;\n\n/** Patch toString calls to return proper name for wrapped functions */\nexport class FunctionToString implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'FunctionToString';\n\n /**\n * @inheritDoc\n */\n public name: string = FunctionToString.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function (this: WrappedFunction, ...args: any[]): string {\n const context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Event, Integration, StackFrame } from '@sentry/types';\nimport { getEventDescription, isDebugBuild, isMatchingPattern, logger } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** JSDoc */\ninterface InboundFiltersOptions {\n allowUrls: Array<string | RegExp>;\n denyUrls: Array<string | RegExp>;\n ignoreErrors: Array<string | RegExp>;\n ignoreInternal: boolean;\n\n /** @deprecated use {@link InboundFiltersOptions.allowUrls} instead. */\n whitelistUrls: Array<string | RegExp>;\n /** @deprecated use {@link InboundFiltersOptions.denyUrls} instead. */\n blacklistUrls: Array<string | RegExp>;\n}\n\n/** Inbound filters configurable by the user */\nexport class InboundFilters implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'InboundFilters';\n\n /**\n * @inheritDoc\n */\n public name: string = InboundFilters.id;\n\n public constructor(private readonly _options: Partial<InboundFiltersOptions> = {}) {}\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n const hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n const self = hub.getIntegration(InboundFilters);\n if (self) {\n const client = hub.getClient();\n const clientOptions = client ? client.getOptions() : {};\n // This checks prevents most of the occurrences of the bug linked below:\n // https://github.com/getsentry/sentry-javascript/issues/2622\n // The bug is caused by multiple SDK instances, where one is minified and one is using non-mangled code.\n // Unfortunatelly we cannot fix it reliably (thus reserved property in rollup's terser config),\n // as we cannot force people using multiple instances in their apps to sync SDK versions.\n const options = typeof self._mergeOptions === 'function' ? self._mergeOptions(clientOptions) : {};\n if (typeof self._shouldDropEvent !== 'function') {\n return event;\n }\n return self._shouldDropEvent(event, options) ? null : event;\n }\n return event;\n });\n }\n\n /** JSDoc */\n private _shouldDropEvent(event: Event, options: Partial<InboundFiltersOptions>): boolean {\n if (this._isSentryError(event, options)) {\n if (isDebugBuild()) {\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n }\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n if (isDebugBuild()) {\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n }\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n if (isDebugBuild()) {\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${this._getEventFilterUrl(event)}`,\n );\n }\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n if (isDebugBuild()) {\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${this._getEventFilterUrl(event)}`,\n );\n }\n return true;\n }\n return false;\n }\n\n /** JSDoc */\n private _isSentryError(event: Event, options: Partial<InboundFiltersOptions>): boolean {\n if (!options.ignoreInternal) {\n return false;\n }\n\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n\n return false;\n }\n\n /** JSDoc */\n private _isIgnoredError(event: Event, options: Partial<InboundFiltersOptions>): boolean {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n\n return this._getPossibleEventMessages(event).some(message =>\n // Not sure why TypeScript complains here...\n (options.ignoreErrors as Array<RegExp | string>).some(pattern => isMatchingPattern(message, pattern)),\n );\n }\n\n /** JSDoc */\n private _isDeniedUrl(event: Event, options: Partial<InboundFiltersOptions>): boolean {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n const url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(pattern => isMatchingPattern(url, pattern));\n }\n\n /** JSDoc */\n private _isAllowedUrl(event: Event, options: Partial<InboundFiltersOptions>): boolean {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n const url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(pattern => isMatchingPattern(url, pattern));\n }\n\n /** JSDoc */\n private _mergeOptions(clientOptions: Partial<InboundFiltersOptions> = {}): Partial<InboundFiltersOptions> {\n return {\n allowUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(this._options.whitelistUrls || []),\n ...(this._options.allowUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.whitelistUrls || []),\n ...(clientOptions.allowUrls || []),\n ],\n denyUrls: [\n // eslint-disable-next-line deprecation/deprecation\n ...(this._options.blacklistUrls || []),\n ...(this._options.denyUrls || []),\n // eslint-disable-next-line deprecation/deprecation\n ...(clientOptions.blacklistUrls || []),\n ...(clientOptions.denyUrls || []),\n ],\n ignoreErrors: [\n ...(this._options.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n }\n\n /** JSDoc */\n private _getPossibleEventMessages(event: Event): string[] {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n if (isDebugBuild()) {\n logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n }\n return [];\n }\n }\n return [];\n }\n\n /** JSDoc */\n private _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n }\n\n /** JSDoc */\n private _getEventFilterUrl(event: Event): string | null {\n try {\n if (event.stacktrace) {\n return this._getLastValidUrl(event.stacktrace.frames);\n }\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? this._getLastValidUrl(frames) : null;\n } catch (oO) {\n if (isDebugBuild()) {\n logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n }\n return null;\n }\n }\n}\n","export const setPrototypeOf =\n Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf<TTarget extends object, TProto>(obj: TTarget, proto: TProto): TTarget & TProto {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj as TTarget & TProto;\n}\n\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties<TTarget extends object, TProto>(obj: TTarget, proto: TProto): TTarget & TProto {\n for (const prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n\n return obj as TTarget & TProto;\n}\n","import { setPrototypeOf } from './polyfill';\n\n/** An error emitted by Sentry SDKs and related utilities. */\nexport class SentryError extends Error {\n /** Display name of this error instance. */\n public name: string;\n\n public constructor(public message: string) {\n super(message);\n\n this.name = new.target.prototype.constructor.name;\n setPrototypeOf(this, new.target.prototype);\n }\n}\n","import { DsnComponents, DsnLike, DsnProtocol } from '@sentry/types';\n\nimport { isDebugBuild } from './env';\nimport { SentryError } from './error';\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\nfunction dsnFromString(str: string): DsnComponents {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n\n return {\n user: components.publicKey || '',\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean | void {\n if (!isDebugBuild()) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray<keyof DsnComponents> = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport function makeDsn(from: DsnLike): DsnComponents {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n\n validateDsn(components);\n\n return components;\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Integration, Options } from '@sentry/types';\nimport { addNonEnumerableProperty, logger } from '@sentry/utils';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n} & { initialized?: boolean };\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] as Integration[]);\n}\n\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n const userIntegrations = options.integrations;\n\n let integrations: Integration[] = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n const integrationsNames = integrations.map(i => i.name);\n const alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/** Setup given integration */\nexport function setupIntegration(integration: Integration): void {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(`Integration installed: ${integration.name}`);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations<O extends Options>(options: O): IntegrationIndex {\n const integrations: IntegrationIndex = {};\n getIntegrationsToSetup(options).forEach(integration => {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n addNonEnumerableProperty(integrations, 'initialized', true);\n return integrations;\n}\n","/* eslint-disable max-lines */\nimport { Scope, Session } from '@sentry/hub';\nimport {\n Client,\n DsnComponents,\n Event,\n EventHint,\n Integration,\n IntegrationClass,\n Options,\n Severity,\n Transport,\n} from '@sentry/types';\nimport {\n checkOrSetAlreadyCaught,\n dateTimestampInSeconds,\n isDebugBuild,\n isPlainObject,\n isPrimitive,\n isThenable,\n logger,\n makeDsn,\n normalize,\n rejectedSyncPromise,\n resolvedSyncPromise,\n SentryError,\n SyncPromise,\n truncate,\n uuid4,\n} from '@sentry/utils';\n\nimport { Backend, BackendClass } from './basebackend';\nimport { IntegrationIndex, setupIntegrations } from './integration';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeBackend, NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class BaseClient<B extends Backend, O extends Options> implements Client<O> {\n /**\n * The backend used to physically interact in the environment. Usually, this\n * will correspond to the client. When composing SDKs, however, the Backend\n * from the root SDK will be used.\n */\n protected readonly _backend: B;\n\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n /** Array of used integrations. */\n protected _integrations: IntegrationIndex = {};\n\n /** Number of calls being processed */\n protected _numProcessing: number = 0;\n\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n protected constructor(backendClass: BackendClass<B, O>, options: O) {\n this._backend = new backendClass(options);\n this._options = options;\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n }\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._getBackend()\n .eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureMessage(message: string, level?: Severity, hint?: EventHint, scope?: Scope): string | undefined {\n let eventId: string | undefined = hint && hint.event_id;\n\n const promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId: string | undefined = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n public captureSession(session: Session): void {\n if (!this._isEnabled()) {\n if (isDebugBuild()) {\n logger.warn('SDK not enabled, will not capture session.');\n }\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n if (isDebugBuild()) {\n logger.warn('Discarded session because of missing or non-string release');\n }\n } else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._getBackend().getTransport();\n }\n\n /**\n * @inheritDoc\n */\n public flush(timeout?: number): PromiseLike<boolean> {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return this.getTransport()\n .close(timeout)\n .then(transportFlushed => clientFinished && transportFlushed);\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike<boolean> {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n public setupIntegrations(): void {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n }\n\n /**\n * @inheritDoc\n */\n public getIntegration<T extends Integration>(integration: IntegrationClass<T>): T | null {\n try {\n return (this._integrations[integration.id] as T) || null;\n } catch (_oO) {\n logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n let crashed = false;\n let errored = false;\n const exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (const ex of exceptions) {\n const mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n session.update({\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /** Deliver captured session to Sentry */\n protected _sendSession(session: Session): void {\n this._getBackend().sendSession(session);\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected _isClientDoneProcessing(timeout?: number): PromiseLike<boolean> {\n return new SyncPromise(resolve => {\n let ticked: number = 0;\n const tick: number = 1;\n\n const interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Returns the current backend. */\n protected _getBackend(): B {\n return this._backend;\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null> {\n const { normalizeDepth = 3 } = this.getOptions();\n const prepared: Event = {\n ...event,\n event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise<Event | null>(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (evt) {\n // TODO this is more of the hack trying to solve https://github.com/getsentry/sentry-javascript/issues/2809\n // it is only attached as extra data to the event if the event somehow skips being normalized\n evt.sdkProcessingMetadata = { ...evt.sdkProcessingMetadata, normalizeDepth: normalize(normalizeDepth) };\n }\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n protected _normalizeEvent(event: Event | null, depth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth),\n }),\n };\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, baseClientNormalized: true };\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n protected _applyClientOptions(event: Event): void {\n const options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n const exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n const request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n protected _applyIntegrationsMetadata(event: Event): void {\n const integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n protected _sendEvent(event: Event): void {\n this._getBackend().sendEvent(event);\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike<string | undefined> {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n logger.error(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(event: Event, hint?: EventHint, scope?: Scope): PromiseLike<Event> {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { beforeSend, sampleRate } = this.getOptions();\n const transport = this.getTransport();\n\n type RecordLostEvent = NonNullable<Transport['recordLostEvent']>;\n type RecordLostEventParams = Parameters<RecordLostEvent>;\n\n function recordLostEvent(outcome: RecordLostEventParams[0], category: RecordLostEventParams[1]): void {\n if (transport.recordLostEvent) {\n transport.recordLostEvent(outcome, category);\n }\n }\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n const isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n recordLostEvent('sample_rate', 'event');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, scope, hint)\n .then(prepared => {\n if (prepared === null) {\n recordLostEvent('event_processor', event.type || 'event');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n const isInternalException = hint && hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n const beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n recordLostEvent('before_send', event.type || 'event');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n const session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason as Error,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process<T>(promise: PromiseLike<T>): void {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv: PromiseLike<Event | null> | Event | null): PromiseLike<Event | null> | Event | null {\n const nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n","import { Event, Response, Transport } from '@sentry/types';\nimport { resolvedSyncPromise } from '@sentry/utils';\n\n/** Noop transport */\nexport class NoopTransport implements Transport {\n /**\n * @inheritDoc\n */\n public sendEvent(_: Event): PromiseLike<Response> {\n return resolvedSyncPromise({\n reason: 'NoopTransport: Event has been skipped because no Dsn is configured.',\n status: 'skipped',\n });\n }\n\n /**\n * @inheritDoc\n */\n public close(_?: number): PromiseLike<boolean> {\n return resolvedSyncPromise(true);\n }\n}\n","import { Severity } from '@sentry/types';\n\nimport { SeverityLevel, SeverityLevels } from './enums';\n\nfunction isSupportedSeverity(level: string): level is Severity {\n return SeverityLevels.indexOf(level as SeverityLevel) !== -1;\n}\n/**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level: SeverityLevel | string): Severity {\n if (level === 'warn') return Severity.Warning;\n if (isSupportedSeverity(level)) {\n return level;\n }\n return Severity.Log;\n}\n","import { Event, EventHint, Options, Session, Severity, Transport } from '@sentry/types';\nimport { isDebugBuild, logger, SentryError } from '@sentry/utils';\n\nimport { NoopTransport } from './transports/noop';\n\n/**\n * Internal platform-dependent Sentry SDK Backend.\n *\n * While {@link Client} contains business logic specific to an SDK, the\n * Backend offers platform specific implementations for low-level operations.\n * These are persisting and loading information, sending events, and hooking\n * into the environment.\n *\n * Backends receive a handle to the Client in their constructor. When a\n * Backend automatically generates events, it must pass them to\n * the Client for validation and processing first.\n *\n * Usually, the Client will be of corresponding type, e.g. NodeBackend\n * receives NodeClient. However, higher-level SDKs can choose to instantiate\n * multiple Backends and delegate tasks between them. In this case, an event\n * generated by one backend might very well be sent by another one.\n *\n * The client also provides access to options via {@link Client.getOptions}.\n * @hidden\n */\nexport interface Backend {\n /** Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n eventFromException(exception: any, hint?: EventHint): PromiseLike<Event>;\n\n /** Creates an {@link Event} from primitive inputs to `captureMessage`. */\n eventFromMessage(message: string, level?: Severity, hint?: EventHint): PromiseLike<Event>;\n\n /** Submits the event to Sentry */\n sendEvent(event: Event): void;\n\n /** Submits the session to Sentry */\n sendSession(session: Session): void;\n\n /**\n * Returns the transport that is used by the backend.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n *\n * @returns The transport.\n */\n getTransport(): Transport;\n}\n\n/**\n * A class object that can instantiate Backend objects.\n * @hidden\n */\nexport type BackendClass<B extends Backend, O extends Options> = new (options: O) => B;\n\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nexport abstract class BaseBackend<O extends Options> implements Backend {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** Cached transport used internally. */\n protected _transport: Transport;\n\n /** Creates a new backend instance. */\n public constructor(options: O) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public eventFromException(_exception: any, _hint?: EventHint): PromiseLike<Event> {\n throw new SentryError('Backend has to implement `eventFromException` method');\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(_message: string, _level?: Severity, _hint?: EventHint): PromiseLike<Event> {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): void {\n void this._transport.sendEvent(event).then(null, reason => {\n if (isDebugBuild()) {\n logger.error('Error while sending event:', reason);\n }\n });\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): void {\n if (!this._transport.sendSession) {\n if (isDebugBuild()) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n }\n return;\n }\n\n void this._transport.sendSession(session).then(null, reason => {\n if (isDebugBuild()) {\n logger.error('Error while sending session:', reason);\n }\n });\n }\n\n /**\n * @inheritDoc\n */\n public getTransport(): Transport {\n return this._transport;\n }\n\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n protected _setupTransport(): Transport {\n return new NoopTransport();\n }\n}\n","import { StackFrame } from '@sentry/types';\nimport { StackLineParser, StackLineParserFn } from '@sentry/utils';\n\n// global reference to slice\nconst UNKNOWN_FUNCTION = '?';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n const frame: StackFrame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nconst chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nconst chrome: StackLineParserFn = line => {\n const parts = chromeRegex.exec(line);\n\n if (parts) {\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n const subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nexport const chromeStackParser: StackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n const parts = geckoREgex.exec(line);\n\n if (parts) {\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n const subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nexport const geckoStackParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n const parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nexport const winjsStackParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n const parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n const parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n const isSafariExtension = func.indexOf('safari-extension') !== -1;\n const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n","import { Event, EventHint, Exception, Severity, StackFrame } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addExceptionTypeValue,\n createStackParser,\n extractExceptionKeysForMessage,\n isDOMError,\n isDOMException,\n isError,\n isErrorEvent,\n isEvent,\n isPlainObject,\n normalizeToSize,\n resolvedSyncPromise,\n} from '@sentry/utils';\n\nimport {\n chromeStackParser,\n geckoStackParser,\n opera10StackParser,\n opera11StackParser,\n winjsStackParser,\n} from './stack-parsers';\n\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromError(ex: Error): Exception {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n const frames = parseStackFrames(ex);\n\n const exception: Exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nexport function eventFromPlainObject(\n exception: Record<string, unknown>,\n syntheticException?: Error,\n isUnhandledRejection?: boolean,\n): Event {\n const event: Event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromError(ex: Error): Event {\n return {\n exception: {\n values: [exceptionFromError(ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nexport function parseStackFrames(ex: Error & { framesToPop?: number; stacktrace?: string }): StackFrame[] {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n const stacktrace = ex.stacktrace || ex.stack || '';\n\n const popSize = getPopSize(ex);\n\n try {\n return createStackParser(\n opera10StackParser,\n opera11StackParser,\n chromeStackParser,\n winjsStackParser,\n geckoStackParser,\n )(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex: Error & { framesToPop?: number }): number {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex: Error & { message: { error?: Error } }): string {\n const message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n exception: unknown,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromUnknownInput(exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n message: string,\n level: Severity = Severity.Info,\n hint?: EventHint,\n attachStacktrace?: boolean,\n): PromiseLike<Event> {\n const syntheticException = (hint && hint.syntheticException) || undefined;\n const event = eventFromString(message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n exception: unknown,\n syntheticException?: Error,\n attachStacktrace?: boolean,\n isUnhandledRejection?: boolean,\n): Event {\n let event: Event;\n\n if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n const errorEvent = exception as ErrorEvent;\n return eventFromError(errorEvent.error as Error);\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception as DOMError) || isDOMException(exception as DOMException)) {\n const domException = exception as DOMException;\n\n if ('stack' in (exception as Error)) {\n event = eventFromError(exception as Error);\n } else {\n const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n const message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception as Error)) {\n // we have a real Error object, do nothing\n return eventFromError(exception as Error);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n const objectException = exception as Record<string, unknown>;\n event = eventFromPlainObject(objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception as string, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nexport function eventFromString(input: string, syntheticException?: Error, attachStacktrace?: boolean): Event {\n const event: Event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n const frames = parseStackFrames(syntheticException);\n if (frames.length) {\n event.stacktrace = { frames };\n }\n }\n\n return event;\n}\n","import { Envelope } from '@sentry/types';\n\nimport { isPrimitive } from './is';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope<E extends Envelope>(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope<E extends Envelope>(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as E;\n}\n\n/**\n * Serializes an envelope into a string.\n */\nexport function serializeEnvelope(envelope: Envelope): string {\n const [headers, items] = envelope;\n const serializedHeaders = JSON.stringify(headers);\n\n // Have to cast items to any here since Envelope is a union type\n // Fixed in Typescript 4.2\n // TODO: Remove any[] cast when we upgrade to TS 4.2\n // https://github.com/microsoft/TypeScript/issues/36390\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (items as any[]).reduce((acc, item: typeof items[number]) => {\n const [itemHeaders, payload] = item;\n // We do not serialize payloads that are primitives\n const serializedPayload = isPrimitive(payload) ? String(payload) : JSON.stringify(payload);\n return `${acc}\\n${JSON.stringify(itemHeaders)}\\n${serializedPayload}`;\n }, serializedHeaders);\n}\n","import {\n Event,\n EventEnvelope,\n EventItem,\n SdkInfo,\n SentryRequest,\n SentryRequestType,\n Session,\n SessionAggregates,\n SessionEnvelope,\n SessionItem,\n} from '@sentry/types';\nimport { createEnvelope, dsnToString, normalize, serializeEnvelope } from '@sentry/utils';\n\nimport { APIDetails, getEnvelopeEndpointWithUrlEncodedAuth, getStoreEndpointWithUrlEncodedAuth } from './api';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api: APIDetails): SdkInfo | undefined {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n const { name, version } = api.metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event: Event, sdkInfo?: SdkInfo): Event {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session: Session | SessionAggregates, api: APIDetails): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n\n // I know this is hacky but we don't want to add `sessions` to request type since it's never rate limited\n const type = 'aggregates' in session ? ('sessions' as SentryRequestType) : 'session';\n\n // TODO (v7) Have to cast type because envelope items do not accept a `SentryRequestType`\n const envelopeItem = [{ type } as { type: 'session' | 'sessions' }, session] as SessionItem;\n const envelope = createEnvelope<SessionEnvelope>(envelopeHeaders, [envelopeItem]);\n return {\n body: serializeEnvelope(envelope),\n type,\n url: getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel),\n };\n}\n\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event: Event, api: APIDetails): SentryRequest {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n const eventType = event.type || 'event';\n const useEnvelope = eventType === 'transaction' || !!api.tunnel;\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n\n let body;\n try {\n // 99.9% of events should get through just fine - no change in behavior for them\n body = JSON.stringify(event);\n } catch (err) {\n // Record data about the error without replacing original event data, then force renormalization\n event.tags.JSONStringifyError = true;\n event.extra.JSONStringifyError = err;\n try {\n body = JSON.stringify(normalize(event));\n } catch (newErr) {\n // At this point even renormalization hasn't worked, meaning something about the event data has gone very wrong.\n // Time to cut our losses and record only the new error. With luck, even in the problematic cases we're trying to\n // debug with this hack, we won't ever land here.\n const innerErr = newErr as Error;\n body = JSON.stringify({\n message: 'JSON.stringify error after renormalization',\n // setting `extra: { innerErr }` here for some reason results in an empty object, so unpack manually\n extra: { message: innerErr.message, stack: innerErr.stack },\n });\n }\n }\n\n const req: SentryRequest = {\n // this is the relevant line of code before the hack was added, to make it easy to undo said hack once we've solved\n // the mystery\n // body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n body,\n type: eventType,\n url: useEnvelope\n ? getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel)\n : getStoreEndpointWithUrlEncodedAuth(api.dsn),\n };\n\n // https://develop.sentry.dev/sdk/envelopes/\n\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n const envelopeHeaders = {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!api.tunnel && { dsn: dsnToString(api.dsn) }),\n };\n const eventItem: EventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n req.body,\n ];\n const envelope = createEnvelope<EventEnvelope>(envelopeHeaders, [eventItem]);\n req.body = serializeEnvelope(envelope);\n }\n\n return req;\n}\n","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer<T> {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: Array<PromiseLike<T>>;\n add(taskProducer: () => PromiseLike<T>): PromiseLike<T>;\n drain(timeout?: number): PromiseLike<boolean>;\n}\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer<T>(limit?: number): PromiseBuffer<T> {\n const buffer: Array<PromiseLike<T>> = [];\n\n function isReady(): boolean {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n function remove(task: PromiseLike<T>): PromiseLike<T> {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike<T>): PromiseLike<T> {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike<boolean> {\n return new SyncPromise<boolean>((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n const capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n","// Keeping the key broad until we add the new transports\nexport type RateLimits = Record<string, number>;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nexport function disabledUntil(limits: RateLimits, category: string): number {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, category: string, now: number = Date.now()): boolean {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n headers: Record<string, string | null | undefined>,\n now: number = Date.now(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers['x-sentry-rate-limits'];\n const retryAfterHeader = headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const parameters = limit.split(':', 2);\n const headerDelay = parseInt(parameters[0], 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!parameters[1]) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of parameters[1].split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n }\n\n return updatedRateLimits;\n}\n","import { forget, getGlobalObject, isDebugBuild, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nconst global = getGlobalObject<Window>();\nlet cachedFetchImpl: FetchImpl;\n\nexport type FetchImpl = typeof fetch;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation(): FetchImpl {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n /* eslint-disable @typescript-eslint/unbound-method */\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n const document = global.document;\n let fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n const sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n const contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n if (isDebugBuild()) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nexport function sendReport(url: string, body: string): void {\n const isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n const hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n const sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n return sendBeacon(url, body);\n }\n\n if (supportsFetch()) {\n const fetch = getNativeFetchImplementation();\n return forget(\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }),\n );\n }\n}\n","/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forget(promise: PromiseLike<any>): void {\n void promise.then(null, e => {\n // TODO: Use a better logging mechanism\n // eslint-disable-next-line no-console\n console.error(e);\n });\n}\n","import {\n APIDetails,\n eventToSentryRequest,\n getEnvelopeEndpointWithUrlEncodedAuth,\n getStoreEndpointWithUrlEncodedAuth,\n initAPIDetails,\n sessionToSentryRequest,\n} from '@sentry/core';\nimport {\n ClientReport,\n Event,\n Outcome,\n Response as SentryResponse,\n SentryRequest,\n SentryRequestType,\n Session,\n Transport,\n TransportOptions,\n} from '@sentry/types';\nimport {\n createClientReportEnvelope,\n dsnToString,\n eventStatusFromHttpCode,\n getGlobalObject,\n isDebugBuild,\n logger,\n makePromiseBuffer,\n parseRetryAfterHeader,\n PromiseBuffer,\n serializeEnvelope,\n} from '@sentry/utils';\n\nimport { sendReport } from './utils';\n\nfunction requestTypeToCategory(ty: SentryRequestType): string {\n const tyStr = ty as string;\n return tyStr === 'event' ? 'error' : tyStr;\n}\n\nconst global = getGlobalObject<Window>();\n\n/** Base Transport class implementation */\nexport abstract class BaseTransport implements Transport {\n /**\n * @deprecated\n */\n public url: string;\n\n /** Helper to get Sentry API endpoints. */\n protected readonly _api: APIDetails;\n\n /** A simple buffer holding all requests. */\n protected readonly _buffer: PromiseBuffer<SentryResponse> = makePromiseBuffer(30);\n\n /** Locks transport after receiving rate limits in a response */\n protected readonly _rateLimits: Record<string, Date> = {};\n\n protected _outcomes: { [key: string]: number } = {};\n\n public constructor(public options: TransportOptions) {\n this._api = initAPIDetails(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = getStoreEndpointWithUrlEncodedAuth(this._api.dsn);\n\n if (this.options.sendClientReports && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n if (global.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n public sendEvent(event: Event): PromiseLike<SentryResponse> {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n }\n\n /**\n * @inheritDoc\n */\n public sendSession(session: Session): PromiseLike<SentryResponse> {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n }\n\n /**\n * @inheritDoc\n */\n public close(timeout?: number): PromiseLike<boolean> {\n return this._buffer.drain(timeout);\n }\n\n /**\n * @inheritDoc\n */\n public recordLostEvent(reason: Outcome, category: SentryRequestType): void {\n if (!this.options.sendClientReports) {\n return;\n }\n // We want to track each category (event, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n const key = `${requestTypeToCategory(category)}:${reason}`;\n logger.log(`Adding outcome: ${key}`);\n this._outcomes[key] = (this._outcomes[key] ?? 0) + 1;\n }\n\n /**\n * Send outcomes as an envelope\n */\n protected _flushOutcomes(): void {\n if (!this.options.sendClientReports) {\n return;\n }\n\n const outcomes = this._outcomes;\n this._outcomes = {};\n\n // Nothing to send\n if (!Object.keys(outcomes).length) {\n logger.log('No outcomes to flush');\n return;\n }\n\n logger.log(`Flushing outcomes:\\n${JSON.stringify(outcomes, null, 2)}`);\n\n const url = getEnvelopeEndpointWithUrlEncodedAuth(this._api.dsn, this._api.tunnel);\n\n const discardedEvents = Object.keys(outcomes).map(key => {\n const [category, reason] = key.split(':');\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n // TODO: Improve types on discarded_events to get rid of cast\n }) as ClientReport['discarded_events'];\n const envelope = createClientReportEnvelope(discardedEvents, this._api.tunnel && dsnToString(this._api.dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n logger.error(e);\n }\n }\n\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n protected _handleResponse({\n requestType,\n response,\n headers,\n resolve,\n reject,\n }: {\n requestType: SentryRequestType;\n response: Response | XMLHttpRequest;\n headers: Record<string, string | null>;\n resolve: (value?: SentryResponse | PromiseLike<SentryResponse> | null | undefined) => void;\n reject: (reason?: unknown) => void;\n }): void {\n const status = eventStatusFromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n const limited = this._handleRateLimit(headers);\n if (limited && isDebugBuild()) {\n logger.warn(`Too many ${requestType} requests, backing off until: ${this._disabledUntil(requestType)}`);\n }\n\n if (status === 'success') {\n resolve({ status });\n return;\n }\n\n reject(response);\n }\n\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n protected _disabledUntil(requestType: SentryRequestType): Date {\n const category = requestTypeToCategory(requestType);\n return this._rateLimits[category] || this._rateLimits.all;\n }\n\n /**\n * Checks if a category is rate limited\n */\n protected _isRateLimited(requestType: SentryRequestType): boolean {\n return this._disabledUntil(requestType) > new Date(Date.now());\n }\n\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n protected _handleRateLimit(headers: Record<string, string | null>): boolean {\n const now = Date.now();\n const rlHeader = headers['x-sentry-rate-limits'];\n const raHeader = headers['retry-after'];\n\n if (rlHeader) {\n // rate limit headers are of the form\n // <header>,<header>,..\n // where each <header> is of the form\n // <retry_after>: <categories>: <scope>: <reason_code>\n // where\n // <retry_after> is a delay in ms\n // <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // <category>;<category>;...\n // <scope> is what's being limited (org, project, or key) - ignored by SDK\n // <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n for (const limit of rlHeader.trim().split(',')) {\n const parameters = limit.split(':', 2);\n const headerDelay = parseInt(parameters[0], 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n for (const category of parameters[1].split(';')) {\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n return true;\n } else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(raHeader, now));\n return true;\n }\n return false;\n }\n\n protected abstract _sendRequest(\n sentryRequest: SentryRequest,\n originalPayload: Event | Session,\n ): PromiseLike<SentryResponse>;\n}\n","import { ClientReport, ClientReportEnvelope, ClientReportItem } from '@sentry/types';\n\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope<ClientReportEnvelope>(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","import { EventStatus } from '@sentry/types';\n/**\n * Converts an HTTP status code to sentry status {@link EventStatus}.\n *\n * @param code number HTTP status code\n * @returns EventStatus\n */\nexport function eventStatusFromHttpCode(code: number): EventStatus {\n if (code >= 200 && code < 300) {\n return 'success';\n }\n\n if (code === 429) {\n return 'rate_limit';\n }\n\n if (code >= 400 && code < 500) {\n return 'invalid';\n }\n\n if (code >= 500) {\n return 'failed';\n }\n\n return 'unknown';\n}\n","import { Event, Response, SentryRequest, Session, TransportOptions } from '@sentry/types';\nimport { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\nimport { FetchImpl, getNativeFetchImplementation } from './utils';\n\n/** `fetch` based transport */\nexport class FetchTransport extends BaseTransport {\n /**\n * Fetch API reference which always points to native browser implementation.\n */\n private _fetch: typeof fetch;\n\n public constructor(options: TransportOptions, fetchImpl: FetchImpl = getNativeFetchImplementation()) {\n super(options);\n this._fetch = fetchImpl;\n }\n\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike<Response> {\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n const options: RequestInit = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : '') as ReferrerPolicy,\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise<Response>((resolve, reject) => {\n void this._fetch(sentryRequest.url, options)\n .then(response => {\n const headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n this._handleResponse({\n requestType: sentryRequest.type,\n response,\n headers,\n resolve,\n reject,\n });\n })\n .catch(reject);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { Event, Response, SentryRequest, Session } from '@sentry/types';\nimport { SentryError, SyncPromise } from '@sentry/utils';\n\nimport { BaseTransport } from './base';\n\n/** `XHR` based transport */\nexport class XHRTransport extends BaseTransport {\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n protected _sendRequest(sentryRequest: SentryRequest, originalPayload: Event | Session): PromiseLike<Response> {\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: `Transport for ${sentryRequest.type} requests locked till ${this._disabledUntil(\n sentryRequest.type,\n )} due to too many requests.`,\n status: 429,\n });\n }\n\n return this._buffer\n .add(\n () =>\n new SyncPromise<Response>((resolve, reject) => {\n const request = new XMLHttpRequest();\n\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n const headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n this._handleResponse({ requestType: sentryRequest.type, response: request, headers, resolve, reject });\n }\n };\n\n request.open('POST', sentryRequest.url);\n for (const header in this.options.headers) {\n if (Object.prototype.hasOwnProperty.call(this.options.headers, header)) {\n request.setRequestHeader(header, this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n }),\n )\n .then(undefined, reason => {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n this.recordLostEvent('queue_overflow', sentryRequest.type);\n } else {\n this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n }\n}\n","import { BaseBackend } from '@sentry/core';\nimport { Event, EventHint, Options, Severity, Transport } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\n\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see BrowserClient for more information.\n */\nexport interface BrowserOptions extends Options {\n /**\n * A pattern for error URLs which should exclusively be sent to Sentry.\n * This is the opposite of {@link Options.denyUrls}.\n * By default, all errors will be sent.\n */\n allowUrls?: Array<string | RegExp>;\n\n /**\n * A pattern for error URLs which should not be sent to Sentry.\n * To allow certain errors instead, use {@link Options.allowUrls}.\n * By default, all errors will be sent.\n */\n denyUrls?: Array<string | RegExp>;\n\n /** @deprecated use {@link Options.allowUrls} instead. */\n whitelistUrls?: Array<string | RegExp>;\n\n /** @deprecated use {@link Options.denyUrls} instead. */\n blacklistUrls?: Array<string | RegExp>;\n}\n\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nexport class BrowserBackend extends BaseBackend<BrowserOptions> {\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event> {\n return eventFromException(exception, hint, this._options.attachStacktrace);\n }\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike<Event> {\n return eventFromMessage(message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n protected _setupTransport(): Transport {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return super._setupTransport();\n }\n\n const transportOptions = {\n ...this._options.transportOptions,\n dsn: this._options.dsn,\n tunnel: this._options.tunnel,\n sendClientReports: this._options.sendClientReports,\n _metadata: this._options._metadata,\n };\n\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n }\n}\n","export const SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'] as const;\nexport type SeverityLevel = typeof SeverityLevels[number];\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, Integration, Severity } from '@sentry/types';\nimport {\n addInstrumentationHandler,\n getEventDescription,\n getGlobalObject,\n htmlTreeAsString,\n parseUrl,\n safeJoin,\n severityFromString,\n} from '@sentry/utils';\n\n/** JSDoc */\ninterface BreadcrumbsOptions {\n console: boolean;\n dom: boolean | { serializeAttribute: string | string[] };\n fetch: boolean;\n history: boolean;\n sentry: boolean;\n xhr: boolean;\n}\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nexport class Breadcrumbs implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Breadcrumbs';\n\n /**\n * @inheritDoc\n */\n public name: string = Breadcrumbs.id;\n\n /** JSDoc */\n private readonly _options: BreadcrumbsOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial<BreadcrumbsOptions>) {\n this._options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n public addSentryBreadcrumb(event: Event): void {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n public setupOnce(): void {\n if (this._options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this._options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this._options.dom));\n }\n if (this._options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this._options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this._options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n}\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: string]: any }) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData: { [key: string]: any }): void {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target as Node, keyAttrs)\n : htmlTreeAsString(handlerData.event as unknown as Node, keyAttrs);\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData: { [key: string]: any }): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData: { [key: string]: any }): void {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData: { [key: string]: any }): void {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData: { [key: string]: any }): void {\n const global = getGlobalObject<Window>();\n let from = handlerData.from;\n let to = handlerData.to;\n const parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n const parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n","import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { Event, EventHint } from '@sentry/types';\nimport { getGlobalObject, logger } from '@sentry/utils';\n\nimport { BrowserBackend, BrowserOptions } from './backend';\nimport { injectReportDialog, ReportDialogOptions } from './helpers';\nimport { Breadcrumbs } from './integrations';\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends BaseClient<BrowserBackend, BrowserOptions> {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n public constructor(options: BrowserOptions = {}) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(BrowserBackend, options);\n }\n\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n public showReportDialog(options: ReportDialogOptions = {}): void {\n // doesn't work without a document (React Native)\n const document = getGlobalObject<Window>().document;\n if (!document) {\n return;\n }\n\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n\n injectReportDialog({\n ...options,\n dsn: options.dsn || this.getDsn(),\n });\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null> {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * @inheritDoc\n */\n protected _sendEvent(event: Event): void {\n const integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n super._sendEvent(event);\n }\n}\n","import { Integration, WrappedFunction } from '@sentry/types';\nimport { fill, getFunctionName, getGlobalObject, getOriginalFunction } from '@sentry/utils';\n\nimport { wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\n/** JSDoc */\ninterface TryCatchOptions {\n setTimeout: boolean;\n setInterval: boolean;\n requestAnimationFrame: boolean;\n XMLHttpRequest: boolean;\n eventTarget: boolean | string[];\n}\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nexport class TryCatch implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'TryCatch';\n\n /**\n * @inheritDoc\n */\n public name: string = TryCatch.id;\n\n /** JSDoc */\n private readonly _options: TryCatchOptions;\n\n /**\n * @inheritDoc\n */\n public constructor(options?: Partial<TryCatchOptions>) {\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n public setupOnce(): void {\n const global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n const eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n}\n\n/** JSDoc */\nfunction _wrapTimeFunction(original: () => void): () => number {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, ...args: any[]): number {\n const originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original: any): (callback: () => void) => any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: any, callback: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(\n this,\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n );\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend: () => void): () => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (this: XMLHttpRequest, ...args: any[]): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const xhr = this;\n const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original: WrappedFunction): () => any {\n const wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n const originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target: string): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const global = getGlobalObject() as { [key: string]: any };\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const proto = global[target] && global[target].prototype;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original: () => void): (\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ) => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): (eventName: string, fn: EventListenerObject, capture?: boolean, secure?: boolean) => void {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.call(\n this,\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn as any as WrappedFunction, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n );\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener: () => void,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): (this: any, eventName: string, fn: EventListenerObject, options?: boolean | EventListenerOptions) => () => void {\n return function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this: any,\n eventName: string,\n fn: EventListenerObject,\n options?: boolean | EventListenerOptions,\n ): () => void {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n const wrappedEventHandler = fn as unknown as WrappedFunction;\n try {\n const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Hub, Integration, Primitive, Severity } from '@sentry/types';\nimport {\n addExceptionMechanism,\n addInstrumentationHandler,\n getLocationHref,\n isDebugBuild,\n isErrorEvent,\n isPrimitive,\n isString,\n logger,\n} from '@sentry/utils';\n\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\n/** JSDoc */\ntype GlobalHandlersIntegrations = Record<GlobalHandlersIntegrationsOptionKeys, boolean>;\n\n/** Global handlers */\nexport class GlobalHandlers implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'GlobalHandlers';\n\n /**\n * @inheritDoc\n */\n public name: string = GlobalHandlers.id;\n\n /** JSDoc */\n private readonly _options: GlobalHandlersIntegrations;\n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n private _installFunc: Record<GlobalHandlersIntegrationsOptionKeys, (() => void) | undefined> = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n\n /** JSDoc */\n public constructor(options?: GlobalHandlersIntegrations) {\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n Error.stackTraceLimit = 50;\n const options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (const key in options) {\n const installFunc = this._installFunc[key as GlobalHandlersIntegrationsOptionKeys];\n if (installFunc && options[key as GlobalHandlersIntegrationsOptionKeys]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key as GlobalHandlersIntegrationsOptionKeys] = undefined;\n }\n }\n }\n}\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler(): void {\n addInstrumentationHandler(\n 'error',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: { msg: any; url: any; line: any; column: any; error: any }) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n const event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler(): void {\n addInstrumentationHandler(\n 'unhandledrejection',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e: any) => {\n const [hub, attachStacktrace] = getHubAndAttachStacktrace();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n const event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, attachStacktrace, true);\n\n event.level = Severity.Error;\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg: any, url: any, line: any, column: any): Event {\n const ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n const groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n const event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event: Event, url: any, line: any, column: any): Event {\n // event.exception\n const e = (event.exception = event.exception || {});\n // event.exception.values\n const ev = (e.values = e.values || []);\n // event.exception.values[0]\n const ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n const colno = isNaN(parseInt(column, 10)) ? undefined : column;\n const lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n const filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n if (isDebugBuild()) {\n logger.log(`Global Handler attached: ${type}`);\n }\n}\n\nfunction addMechanismAndCapture(hub: Hub, error: EventHint['originalException'], event: Event, type: string): void {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndAttachStacktrace(): [Hub, boolean | undefined] {\n const hub = getCurrentHub();\n const client = hub.getClient();\n const attachStacktrace = client && client.getOptions().attachStacktrace;\n return [hub, attachStacktrace];\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, EventHint, Exception, ExtendedError, Integration } from '@sentry/types';\nimport { isInstanceOf } from '@sentry/utils';\n\nimport { exceptionFromError } from '../eventbuilder';\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\ninterface LinkedErrorsOptions {\n key: string;\n limit: number;\n}\n\n/** Adds SDK info to an event. */\nexport class LinkedErrors implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'LinkedErrors';\n\n /**\n * @inheritDoc\n */\n public readonly name: string = LinkedErrors.id;\n\n /**\n * @inheritDoc\n */\n private readonly _key: LinkedErrorsOptions['key'];\n\n /**\n * @inheritDoc\n */\n private readonly _limit: LinkedErrorsOptions['limit'];\n\n /**\n * @inheritDoc\n */\n public constructor(options: Partial<LinkedErrorsOptions> = {}) {\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event, hint?: EventHint) => {\n const self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(self._key, self._limit, event, hint) : event;\n });\n }\n}\n\n/**\n * @inheritDoc\n */\nexport function _handler(key: string, limit: number, event: Event, hint?: EventHint): Event | null {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n const linkedErrors = _walkErrorTree(limit, hint.originalException as ExtendedError, key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nexport function _walkErrorTree(limit: number, error: ExtendedError, key: string, stack: Exception[] = []): Exception[] {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n const exception = exceptionFromError(error[key]);\n return _walkErrorTree(limit, error[key], key, [exception, ...stack]);\n}\n","import { Event, EventProcessor, Exception, Hub, Integration, StackFrame } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nexport class Dedupe implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'Dedupe';\n\n /**\n * @inheritDoc\n */\n public name: string = Dedupe.id;\n\n /**\n * @inheritDoc\n */\n private _previousEvent?: Event;\n\n /**\n * @inheritDoc\n */\n public setupOnce(addGlobalEventProcessor: (callback: EventProcessor) => void, getCurrentHub: () => Hub): void {\n addGlobalEventProcessor((currentEvent: Event) => {\n const self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n }\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n const frameA = previousFrames[i];\n const frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n } else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n}\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { Event, Integration } from '@sentry/types';\nimport { getGlobalObject } from '@sentry/utils';\n\nconst global = getGlobalObject<Window>();\n\n/** UserAgent */\nexport class UserAgent implements Integration {\n /**\n * @inheritDoc\n */\n public static id: string = 'UserAgent';\n\n /**\n * @inheritDoc\n */\n public name: string = UserAgent.id;\n\n /**\n * @inheritDoc\n */\n public setupOnce(): void {\n addGlobalEventProcessor((event: Event) => {\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n const url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n const headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n const request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n}\n","import { BrowserOptions, init as browserInit, SDK_VERSION } from '@sentry/browser';\n\n/**\n * Inits the React SDK\n */\nexport function init(options: BrowserOptions): void {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.react',\n packages: [\n {\n name: 'npm:@sentry/react',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n browserInit(options);\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import lookup from 'void-elements'\nconst attrRE = /\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g\n\nexport default function stringify(tag) {\n const res = {\n type: 'tag',\n name: '',\n voidElement: false,\n attrs: {},\n children: [],\n }\n\n const tagMatch = tag.match(/<\\/?([^\\s]+?)[/\\s>]/)\n if (tagMatch) {\n res.name = tagMatch[1]\n if (\n lookup[tagMatch[1]] ||\n tag.charAt(tag.length - 2) === '/'\n ) {\n res.voidElement = true\n }\n\n // handle comment tag\n if (res.name.startsWith('!--')) {\n const endIndex = tag.indexOf('-->')\n return {\n type: 'comment',\n comment: endIndex !== -1 ? tag.slice(4, endIndex) : '',\n }\n }\n }\n\n const reg = new RegExp(attrRE)\n let result = null\n for (;;) {\n result = reg.exec(tag)\n\n if (result === null) {\n break\n }\n\n if (!result[0].trim()) {\n continue\n }\n\n if (result[1]) {\n const attr = result[1].trim()\n let arr = [attr, '']\n\n if (attr.indexOf('=') > -1) {\n arr = attr.split('=')\n }\n\n res.attrs[arr[0]] = arr[1]\n reg.lastIndex--\n } else if (result[2]) {\n res.attrs[result[2]] = result[3].trim().substring(1, result[3].length - 1)\n }\n }\n\n return res\n}\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '</' + current.name + '>') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith('<!--')\n const start = index + tag.length\n const nextChar = html.charAt(start)\n let parent\n\n if (isComment) {\n const comment = parseTag(tag)\n\n // if we're at root, push new base node\n if (level < 0) {\n result.push(comment)\n return result\n }\n parent = arr[level]\n parent.children.push(comment)\n return result\n }\n\n if (isOpen) {\n level++\n\n current = parseTag(tag)\n if (current.type === 'tag' && options.components[current.name]) {\n current.type = 'component'\n inComponent = true\n }\n\n if (\n !current.voidElement &&\n !inComponent &&\n nextChar &&\n nextChar !== '<'\n ) {\n current.children.push({\n type: 'text',\n content: html.slice(start, html.indexOf('<', start)),\n })\n }\n\n // if we're at root, push new base node\n if (level === 0) {\n result.push(current)\n }\n\n parent = arr[level - 1]\n\n if (parent) {\n parent.children.push(current)\n }\n\n arr[level] = current\n }\n\n if (!isOpen || current.voidElement) {\n if (\n level > -1 &&\n (current.voidElement || current.name === tag.slice(2, -1))\n ) {\n level--\n // move current up a level to match the end tag\n current = level === -1 ? result : arr[level]\n }\n if (!inComponent && nextChar !== '<' && nextChar) {\n // trailing text node\n // if we're at the root, push a base text node. otherwise add as\n // a child to the current node.\n parent = level === -1 ? result : arr[level].children\n\n // calculate correct end of the content slice in case there's\n // no tag after the text node.\n const end = html.indexOf('<', start)\n let content = html.slice(start, end === -1 ? undefined : end)\n // if a node is nothing but whitespace, collapse it as the spec states:\n // https://www.w3.org/TR/html4/struct/text.html#h-9.1\n if (whitespaceRE.test(content)) {\n content = ' '\n }\n // don't add whitespace-only text nodes if they would be trailing text nodes\n // or if they would be leading whitespace-only text nodes:\n // * end > -1 indicates this is not a trailing text node\n // * leading node is when level is -1 and parent has length 0\n if ((end > -1 && level + parent.length >= 0) || content !== ' ') {\n parent.push({\n type: 'text',\n content: content,\n })\n }\n }\n }\n })\n\n return result\n}\n","function attrString(attrs) {\n const buff = []\n for (let key in attrs) {\n buff.push(key + '=\"' + attrs[key] + '\"')\n }\n if (!buff.length) {\n return ''\n }\n return ' ' + buff.join(' ')\n}\n\nfunction stringify(buff, doc) {\n switch (doc.type) {\n case 'text':\n return buff + doc.content\n case 'tag':\n buff +=\n '<' +\n doc.name +\n (doc.attrs ? attrString(doc.attrs) : '') +\n (doc.voidElement ? '/>' : '>')\n if (doc.voidElement) {\n return buff\n }\n return buff + doc.children.reduce(stringify, '') + '</' + doc.name + '>'\n case 'comment':\n buff += '<!--' + doc.comment + '-->'\n return buff\n }\n}\n\nexport default function (doc) {\n return doc.reduce(function (token, rootEl) {\n return token + stringify('', rootEl)\n }, '')\n}\n","import parse from './parse'\nimport stringify from './stringify'\n\nexport default {\n parse,\n stringify,\n}\n","/**\n * Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection\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\nvar replace = ''.replace;\n\nvar ca = /[&<>'\"]/g;\nvar es = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g;\n\nvar esca = {\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"'\n};\nvar unes = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"'\n};\n\nexport function escape(es) {\n return replace.call(es, ca, pe);\n};\n\nexport function unescape(un) {\n return replace.call(un, es, cape);\n};\n\nfunction pe(m) {\n return esca[m];\n}\n\nfunction cape(m) {\n return unes[m];\n}\n","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"format\"],\n _excluded2 = [\"children\", \"count\", \"parent\", \"i18nKey\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\", \"shouldUnescape\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React, { useContext } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { unescape } from 'html-escaper';\nimport { getI18n, I18nContext, getDefaults } from './context';\nimport { warn, warnOnce } from './utils';\n\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n var base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\n\nfunction getChildren(node) {\n if (!node) return [];\n return node && node.children ? node.children : node.props && node.props.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return React.isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nfunction mergeProps(source, target) {\n var newTarget = _objectSpread({}, target);\n\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\n\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n var stringNode = '';\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (React.isValidElement(child)) {\n var childPropsCount = Object.keys(child.props).length;\n var shouldKeepChild = keepArray.indexOf(child.type) > -1;\n var childChildren = child.props.children;\n\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += \"<\".concat(child.type, \"/>\");\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += \"<\".concat(childIndex, \"></\").concat(childIndex, \">\");\n } else if (child.props.i18nIsDynamicList) {\n stringNode += \"<\".concat(childIndex, \"></\").concat(childIndex, \">\");\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += \"<\".concat(child.type, \">\").concat(childChildren, \"</\").concat(child.type, \">\");\n } else {\n var content = nodesToString(childChildren, i18nOptions);\n stringNode += \"<\".concat(childIndex, \">\").concat(content, \"</\").concat(childIndex, \">\");\n }\n } else if (child === null) {\n warn(\"Trans: the passed in value is invalid - seems you passed in a null child.\");\n } else if (_typeof(child) === 'object') {\n var format = child.format,\n clone = _objectWithoutProperties(child, _excluded);\n\n var keys = Object.keys(clone);\n\n if (keys.length === 1) {\n var value = format ? \"\".concat(keys[0], \", \").concat(format) : keys[0];\n stringNode += \"{{\".concat(value, \"}}\");\n } else {\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {\n if (targetString === '') return [];\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling) return [targetString];\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !React.isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var ast = HTML.parse(\"<0>\".concat(targetString, \"</0>\"));\n\n var opts = _objectSpread(_objectSpread({}, data), combinedTOpts);\n\n function renderInner(child, node, rootReactNode) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n }\n\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) child.children = inner;\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), isVoid ? undefined : inner));\n }\n\n function mapAST(reactNode, astNode, rootReactNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n\n if (node.type === 'tag') {\n var tmp = reactNodes[parseInt(node.name, 10)];\n if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n var child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n var isElement = React.isValidElement(child);\n var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;\n var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n\n if (typeof child === 'string') {\n var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n var inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n var _inner = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n var _inner2 = renderInner(child, node, rootReactNode);\n\n pushTranslatedJSX(child, _inner2, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner3 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(React.createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner3));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner4 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner4, \"</\").concat(node.name, \">\"));\n }\n } else if (_typeof(child) === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n var wrapTextNodes = i18nOptions.transWrapTextNodes;\n\n var _content = shouldUnescape ? unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n\n if (wrapTextNodes) {\n mem.push(React.createElement(wrapTextNodes, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _content));\n } else {\n mem.push(_content);\n }\n }\n\n return mem;\n }, []);\n }\n\n var result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n shouldUnescape = _ref.shouldUnescape,\n additionalProps = _objectWithoutProperties(_ref, _excluded2);\n\n var _ref2 = useContext(I18nContext) || {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n\n var t = tFromProps || i18n.t.bind(i18n) || function (k) {\n return k;\n };\n\n var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);\n\n var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n var hashTransKey = reactI18nextOptions.hashTransKey;\n var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);\n var interpolationOverride = values ? tOptions.interpolation : {\n interpolation: _objectSpread(_objectSpread({}, tOptions.interpolation), {}, {\n prefix: '#$?',\n suffix: '?$#'\n })\n };\n\n var combinedTOpts = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tOptions), {}, {\n count: count\n }, values), interpolationOverride), {}, {\n defaultValue: defaultValue,\n ns: namespaces\n });\n\n var translation = key ? t(key, combinedTOpts) : defaultValue;\n var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? React.createElement(useAsParent, additionalProps, content) : content;\n}"],"sourceRoot":""}